Літи. Нова мова смарт-контрактів

Літи. Нова мова смарт-контрактів

На даний момент у мережі 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

Читайте також

02018-09-25

Джастін Сан: вистачить використовувати Ethereum, Tron у 100 разів швидше

Засновник і генеральний директор Tron, Джастін Сан заявив, що розробники повинні створювати децентралізовані програми для блокчейну Tron, а не Ethereum. Ця заява з'явилася незадовго після оголошення, що Ethereum вже заповнений до максимальної межі.

Ethereum,
02018-06-06

1 млн транзакцій за секунду в мережі Ethereum? Це можливо

На сесії OmiseGO AMA, що відбулася, Віталій Бутерін заявив, що знайшов абсолютно нове рішення проблем масштабованості. Автор Ефіра анонсував його вдосконалення, яке дозволить здійснити стрибок від обробки 15 транзакцій в секунду, на даний момент, до обробки 1 млн. транзакці...

Ethereum

Останні статті з розділу Ethereum

Нове відео на каналі