litecoin
Litecoin (LTC) $ 82.62 4.27%
monero
Monero (XMR) $ 118.33 3.63%
zcash
Zcash (ZEC) $ 22.61 4.92%
dash
Dash (DASH) $ 30.00 5.33%
ethereum
Ethereum (ETH) $ 3,066.96 1.87%
bitcoin-cash
Bitcoin Cash (BCH) $ 479.37 3.03%
bitcoin
Bitcoin (BTC) $ 64,147.52 3.09%
xrp
XRP (XRP) $ 0.514914 5.65%
ethereum-classic
Ethereum Classic (ETC) $ 26.38 3.87%
eos
EOS (EOS) $ 0.793154 5.64%
cardano
Cardano (ADA) $ 0.496371 11.98%
stellar
Stellar (XLM) $ 0.113549 4.09%
neo
Neo (NEO) $ 18.30 2.91%
iota
IOTA (IOTA) $ 0.229318 5.01%
nem
NEM (XEM) $ 0.037392 6.36%
tron
TRON (TRX) $ 0.110027 2.73%
vechain
VeChain (VET) $ 0.041234 5.85%
qtum
Qtum (QTUM) $ 4.03 0.91%
omg
OMG Network (OMG) $ 0.662337 3.80%
icon
ICON (ICX) $ 0.232904 1.01%
lisk
Lisk (LSK) $ 1.79 5.05%
ontology
Ontology (ONT) $ 0.383227 0.51%
verge
Verge (XVG) $ 0.005771 6.76%
bitcoin-gold
Bitcoin Gold (BTG) $ 35.72 4.52%
nano
Nano (XNO) $ 1.08 5.65%
bytecoin-bcn
Bytecoin (BCN) $ 0.000031 3.14%
siacoin
Siacoin (SC) $ 0.007081 4.23%
dogecoin
Dogecoin (DOGE) $ 0.15564 5.01%
zilliqa
Zilliqa (ZIL) $ 0.025208 5.35%
0x
0x Protocol (ZRX) $ 0.525845 4.77%
decred
Decred (DCR) $ 21.34 6.91%
basic-attention-token
Basic Attention Token (BAT) $ 0.249764 3.32%
golem-network-tokens
Golem (GLM) $ 0.380638 6.87%
digibyte
DigiByte (DGB) $ 0.012841 5.07%
acoin
Acoin (ACOIN) $ 0.005772 2.93%
maker
Maker (MKR) $ 3,022.77 2.95%
metaverse
Metaverse ETP (ETP) $ 0.013947 1.97%
adx-net
AdEx (ADX) $ 0.212247 2.49%
adshares
Adshares (ADS) $ 0.423219 2.12%
achain
Achain (ACT) $ 0.001603 2.89%
airswap
AirSwap (AST) $ 0.141534 5.92%
aeron
Aeron (ARNX) $ 0.000006 2.81%
bitcoin-diamond
Bitcoin Diamond (BCD) $ 0.104774 3.54%
multi-collateral-dai
Dai (DAI) $ 1.00 0.03%
tezos
Tezos (XTZ) $ 1.00 6.02%
aeternity
Æternity (AE) $ 0.037199 19.51%
ardor
Ardor (ARDR) $ 0.10433 4.90%
bitshares
BitShares (BTS) $ 0.003073 2.03%
electroneum
Electroneum (ETN) $ 0.004845 6.00%
komodo
Komodo (KMD) $ 0.413162 6.93%
chainlink
Chainlink (LINK) $ 14.00 5.23%
pundix-new
Pundi X (New) (PUNDIX) $ 0.754151 14.62%
qash
QASH (QASH) $ 0.027232 7.18%
augur
Augur (REP) $ 0.975841 16.39%
status
Status (SNT) $ 0.038694 3.80%
steem
Steem (STEEM) $ 0.26318 5.12%
waves
Waves (WAVES) $ 2.53 4.01%
wax
WAX (WAXP) $ 0.067637 6.30%
Автор:
23 февраля, 2018 13:30

Насколько идеальна технология блокчейн: процент отказов у Ethereum 0.36%

Исследователи изучили 1 миллион смарт-контрактов Ethereum: 3 686 из них были нарушены

«Блокчейн идеален — это самый безопасный способ проведения транзакций, позволяющий перевести деньги куда угодно за считанные минуты и более дешевый по сравнению с традиционными методами». Только вот до тех пор, пока он не дает сбой. А что происходит, если это случается? Процент отказов у эфириума (ETH) 0.36%.

«Докопаться до совершенства»

Блокчейн прославился своей безопасностью, прозрачностью, простотой использования, и считается настоящим совершенством мира технологий. Но бывают ли у него сбои?

Недавно исследователи изучили 1 миллион контрактов эфириума (ETH) и заявили, что 3 686 из них были нарушены. Это количество может показаться крохотным, ведь остальные 99.64% контрактов прошли без проблем; с таким показателем ETH получил бы 5+ в любой школе мира. Однако этот небольшой процент нарушенных контрактов может стоить миллионы долларов для тех, кто переводит средства через сеть. Неудивительно, что причиной проблемы является не блокчейн ETH, а люди, программирующие его.

В отчете под названием «Поиск жадных, щедрых и суицидных контрактов», составленном известными экспертами в сфере блокчейн, был изучен миллион контрактов ETH. Среди экспертов исследования были Ивица Николич из Школы информационных технологий в Сингапуре, а также ее коллеги Пратик Саксена и Аашиш Коллури. Другие видные авторы этого отчета — Илья Сергей из Университетского колледжа Лондона, Великобритания, и Акинас Хобор из Школы и колледжа информационных технологий Йельского университета.

Авторы отчета — это не просто среднестатистические разработчики, а настоящие лидеры в сфере блокчейна и других технологий. Тот факт, что они выделили свое время на изучение данного вопроса, показывает важность понимания, что значат неудавшиеся транзакции для блокчейна и его пользователей.

Исследователи выявили несколько типов «дефектных» контрактов. Все дефектные контракты делятся на три категории, в зависимости от природы проблем:

  •  «Жадные контракты»: выражаясь простыми словами, такие контракты можно использовать для блокировки находящихся в них ETH
  •  «Щедрые контракты»: контракт, который может использоваться для перевода ETH на другой адрес вместо указанного. Это может произойти случайно или умышленно
  •  «Суицидные контракты»: контракт, который может «уничтожить» кто-то посторонний

«Жадные контракты»

Название говорит само за себя. Жадный контракт не хочет отдавать находящиеся в нем ETH. Все ETH в контракте могут быть заморожены на неопределенное время. Исследователи нашли множество примеров в адресах контрактов, которые принимали, но не переводили ETH дальше.

Когда такой контракт получает ETH, средства будут «потеряны», потому что их нельзя перевести на другой адрес. Это может произойти случайно или по злому умыслу (зачем кому-то замораживать ETH в адресе контракта, который не сможет перевести средства дальше?). Причин немного, но одна из них — саботаж.

«Щедрые контракты»

В большинстве случаев, в конце операции смарт-контракты в сети ETH должны освободить средства. Большинство игр эфириума основаны на смарт-контрактах, где игрок может либо «выиграть», либо «купить» позицию. Если продажи или выигрыша не произошло, средства отправляются начальному пользователю.

Дефект щедрых контрактов заключается в том, что несвязанный адрес может найти способ снять средства, без наличия соответствующей причины в смарт-контракте. Такое снятие приводит к потере средств отправителя, и получатель так и не получает ожидаемую транзакцию.

Суицидные контракты

«Аварийные выключатели» вполне распространены в смарт-контрактах. Они используются, если контракт дает сбой, был выпущен случайно, или если возникли какие-то проблемы. Однако иногда такие механизмы дают сбой и затрагивают весь контракт.

Parity — наиболее частый пример суицидного контракта. Система не устанавливает правильное условие, запускающее выключатель, что позволяет любому, кто разбирается в блокчейне, управляют смарт-контрактом. Поэтому смарт-контракт больше не является действительно «смарт»!

Изучение четности

Parity — популярный кошелек эфириума, хранящий токены на онлайн платформе. Предполагалось, что благодаря такой онлайн платформе пользователь будет постоянно иметь контроль над своими токенами и их переводами.

Однако возникла большая проблема. Разработчик случайно или намеренно (в зависимости от того, у кого вы спросите) удалил контракт библиотеки Parity. Группа исследователей называет это «суицидным контрактом». Кроме того, Parity-кошельки — жадные, и могут навсегда заморозить ETH. Эпическая ошибка в программировании привела к потере сотен миллионов долларов в ETH.

Система Parity лежала в основе многих контрактов, что привело к возникновению «суицидных» и «жадных контрактах». Контракт библиотеки Parity был бы «суицидным», а контракт кошелька — «жадным».

Solidity: язык эфириума

Блокчейн эфириума уникален, поскольку он использует язык кодировки под названием Solidity. Самый большой недостаток продвинутых языков, таких как Solidity, заключается в том, что программистам приходится изучать абсолютно новый язык для создания контрактов ETH. Любая ошибка в коде может привести к непредвиденной ошибке. А иногда ошибка может намеренно добавляться в код в каких-то подлых целях. Учитывая стоимость ETH, ошибка, которая замораживает или позволяет снять средства, может стоить очень дорого.

Parity имеет одну из самых дорогих ошибок кодировки в истории. Но пока программисты изучают новые языки, невозможно избежать определенного процента ошибок. Solidity — язык, который полезно освоить для кодировки в сети эфириума, но если он освоен не на блестящем уровне, это может повлечь за собой неблагоприятные последствия.

Заключение: 99.6% успеха — это все равно чертовски хороший результат!

Почти в любой системе оценок 99.6% считается результатом намного выше среднего. Однако если даже меньше половины процента может привести к миллионным потерям, то, чтобы считаться положительным, результат должен быть 100%. Подобные исследования помогут разработчикам понять проблемы при использовании Solidity и выявить наиболее уязвимые места контрактов. Изначально исследователи планировали найти баги и ошибки в программах прежде, чем они станут использоваться. Но в результате они еще и составили классификацию дефектных  контрактов.

Эфириум — не самая простая сеть для кодировки, поскольку программисту приходится учить абсолютно новый язык — Solidity. Критики ETH утверждают, что такие криптовалюты как Cardano, DRGN, EOS, ICX, NEO и Stratis намного более простые в использовании или позволяют программировать смарт-контракты на уже знакомых разработчикам языках.

Хотелось бы надеяться, что всестороннее исследование выявило врожденные недостатки вовремя, пока пострадало не так много пользователей. Эфириум занимал очень сильные позиции в 2017. Но в 2018 году, который уже готовит множество вызовов, все будет не так стабильно. ETH — лидер по количеству запущенных на его платформе ICO и Dapps, поэтому несмотря на растущую конкуренцию, он имеет лучшие шансы захвата рынка.

ETH можно рассматривать как ценный ресурс в криптовалютном пространстве. Это надежная, долгосрочная игра, хотя в процентном соотношении эфириум может и не стать главным победителем в 2018.

Комментарии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *