На даний момент у мережі Ethereum опубліковано більш ніж 1700 децентралізованих програм (DApps), і їх кількість не перестає збільшуватися. І хоча всі Dapps покладаються на смарт контракти, надійність самих смарт контрактів стоїть під питанням – кіберзлочинці заробили вже понад...
мільярд доларів на їхніх зломах.
Для того, щоб створити життєздатний смарт контракт, програмісту потрібно вивчити зовсім нову мову програмування Solidity, найменша помилка при написанні смарт контракту на Solidity може призвести до катастрофічних наслідків - витоку інформації та/або високої вартості транзакції. Нещодавно виявлений баг у смарт контрактах Parity призвів до того, що компанія втратила понад півмільйона ефіру (ETH) вартістю понад $169 мільйонів. Чи варто звинувачувати Solidity? Смарт контракти, написані на Solidity мають проблеми безпеки, особливо проблему цілісного переповнення. Хакери без особливих труднощів знаходять недоліки в контрактах і крадуть мільйони доларів. Багато з цих зламів сталися через помилки, зроблені програмістами при написанні коду на Solidity.
Наприклад, Beauty Chain (BEC) була дуже відомою криптовалютою в Китаї, в перший день продажів на біржі OKeX її ціна зросла на 4000%. З максимальної ринкової вартості $70 мільярдів компанія в один момент опустилася до $2 мільярдів, коли ціна її токенів стала дорівнює нулю. Це сталося через багу в смарт контракті ECR20. У випадку BEC розробник додав до контракту метод під назвою batchTransfer(). Цей метод був призначений для полегшення передачі токена відразу декільком особам. Проте розробник зробив критичну помилку в наступному рядку коду:
uint256 amount = uint256(cnt) * _value;
Вирішення проблеми перед смарт-контрактами, написаними на Solidity, було створено мову під назвою "Lity". Ця мова використовується для розробки смарт контрактів та децентралізованих програм на блокчейні CyberMiles. Lity складається з мови, компілятора і роботи віртуальної машини, що динамічно розширюється. Це означає, що всі існуючі програми на Solidity тепер можуть працювати без змін на віртуальній машині CyberMiles (CVM).
Мова Lity більш гнучкий, надійніший і безпечніший, ніж Solidity. Наприклад, Lity підтримує функції нової мови, які можна додати за допомогою технології over-the-air. Наприклад, алгоритми публічних/приватних ключів на мережі Ethereum дуже довгі та дорогі. Мережа просто не може підтримувати багато видів програм... За допомогою однієї з нових функцій, відомої як “libENI” час, необхідне здійснення цих операцій може бути скорочено до пари мілісекунд (у 10000 разів швидше, ніж зараз). Ці операції також коштуватимуть значно дешевше.
Поліпшення обчислювальної здатності Lity має величезний потенціал для застосування в обміні криптоактивами між блокчейнами, а також для включення офф-чейн даних у блокчейн транзакції.
Зрештою компілятор Lity перевіряє коди в контрактах ERC 20 та ERC 721 на всі відомі баги та помилки. А віртуальна машина автоматично запобігає проблемам на кшталт цілісного переповнення чи анулювання власника контракту.
Майбутнє смарт контрактів
На жаль, Solidity став цапом-відбувайлом для всіх проблем, знайдених у сучасних смарт контрактах. Для того, щоб у майбутньому забезпечити надійну роботу подібних контактів, були створені нові мови програмування на кшталт Lity.
Відомо також, що фонд Ethereum і сам шукає шляхів для вирішення цих проблем. Його голова працює над використанням “Casper” - механізму, за допомогою якого Ethereum поступово перейде на консенсус PoS. Керівництво фонду вважає ці зміни необхідними для вирішення багатьох проблем, пов'язаних з PoW. Фонд CyberMiles, однак, уже повідомив про те, що він знайшов вирішення проблеми – робоча модель DPoS.
Ці модифікації, безсумнівно, матимуть низку застосувань для мережі Ethereum та для одного з найважливіших її компонентів - смарт контракту.
За матеріалами hackernoon.com
Читайте також
Хакери викрали понад 20 мільйонів доларів у користувачів мережі Ethereum
За даними китайської компанії з кібербезпеки Qihoo 360 Netlab, група хакерів викрала із додатків мережі Ethereum монети на суму понад 20 мільйонів доларів. Атака стала можлива через незахищені мережні порти нод Ethereum (RPC порт за замовчуванням :8545) .
Аналіз криптовалютних пар BTC/USD, ETH/USD, XRP/USD на 17.08.2018
Рівні опору не дали змоги вчора розвинути зростання криптовалютних пар. Якщо обсяги покупок не збільшаться, щоб подолати ці рівні, ринок повернеться до загального зниження
