Код — це закон? Пояснення смарт-контрактів
Дослідження концепції «код — це закон» крізь призму смарт-контрактів в Етеріумі та DeFi. Це відео розповідає про те, що таке смарт-контракти, як вони працюють, і розглядає філософське питання про те, чи повинен код бути остаточним арбітром.
Date published: 18 листопада 2020 р.
Пояснювальне відео від Файнматікс, що досліджує концепцію «код — це закон» крізь призму смарт-контрактів в Етеріумі, охоплюючи те, що таке смарт-контракти, як вони працюють, їхні переваги над традиційними контрактами та чому вони є базовими блоками децентралізованих фінансів (DeFi).
Ця стенограма є доступною копією оригінальної стенограми відео (opens in a new tab), опублікованої Файнматікс. Її було трохи відредаговано для зручності читання.
Вступ (0:00)
Ви коли-небудь чули вислів «код — це закон», де технології використовуються для забезпечення дотримання правил? У такому разі, чи потрібні нам узагалі юристи? Або, можливо, ми можемо жити в повністю автоматизованому світі, де код диктує, що ми можемо і чого не можемо робити. З огляду на поточний розвиток смарт-контрактів, цей футуристичний сценарій може бути ближчим, ніж ми думаємо.
Смарт-контракт — це фрагмент коду, який може виконуватися автоматично та детерміновано. Код смарт-контракту зазвичай зберігається та виконується в блокчейні, щоб зробити його бездовірчим та безпечним. Смарт-контракти також мають здатність отримувати, зберігати та надсилати кошти — і навіть викликати інші смарт-контракти. Вони дотримуються семантики «якщо-то» (if-then), що робить їх досить простими для програмування.
Смарт-контракти мають на меті усунути людський фактор із процесу прийняття рішень. Людський фактор часто виявляється найбільш схильним до помилок і ненадійним елементом стандартних традиційних контрактів.
Торговельний автомат дуже часто наводять як хорошу аналогію смарт-контракту, оскільки він має деякі спільні риси. Типовий торговельний автомат запрограмований таким чином, що дозволяє певні дії та переходи стану на основі введених даних. Він також працює повністю детерміновано. Наприклад, якщо ви хочете купити банку коли, яка коштує 2 долари, а у вас є лише 1 долар, скільки б разів ви не намагалися, ви не зможете отримати напій. З іншого боку, якщо ви вставите 3 долари, автомат видасть вам банку коли та відповідну решту. Навіть видана решта вибирається заздалегідь визначеним і запрограмованим способом на основі того, які монети є в наявності та яких монет автомат хоче позбутися в першу чергу.
Смарт-контракт може покладатися виключно на інформацію, доступну в блокчейні — наприклад, «якщо ви дасте мені 10 токенів A, я дам вам 10 токенів B». Або він може покладатися на зовнішнє джерело даних, наприклад, на ціну ETH або S&P 500. Останній приклад робить смарт-контракти складнішими, оскільки вони повинні довіряти даним з реального світу. Необхідну довіру можна мінімізувати за допомогою сервісів оракулів, але навіть сервісам оракулів потрібно довіряти. Вже існує кілька проєктів, які за допомогою певних стимулів підвищують імовірність того, що оракули надаватимуть правильні дані. Чейнлінк — це проєкт, який чітко виділяється в цій категорії.
Смарт-контракти в Етеріумі (3:09)
Етеріум — це блокчейн, який підтримує смарт-контракти та дає можливість програмісту реалізовувати власні смарт-контракти. Смарт-контракт може бути написаний мовою програмування під назвою Solidity, яка була створена спеціально для цієї мети. В Етеріумі всі розгорнуті смарт-контракти є незмінними — це означає, що після розгортання їх неможливо змінити, що створює певні ризики, які ми обговоримо пізніше.
Смарт-контракти в Етеріумі також є децентралізованими, що означає відсутність єдиної машини, яка контролює контракт. Фактично, всі вузли в мережі Етеріум зберігають один і той самий контракт із абсолютно однаковим станом. Хоча Етеріум наразі є найпопулярнішою платформою смарт-контрактів загального призначення, він не єдиний і має кілька конкурентів, серед яких Cardano, Tezos, EOS та Tron — але не всі вони мають однакові характеристики.
Визначення смарт-контракту (4:23)
Термін «смарт-контракт» був запропонований відомим криптографом Ніком Сабо на початку 1990-х років. Назва, хоч і не є найбільш самозрозумілою, прижилася і широко використовується, особливо в індустрії блокчейну. Щоб побачити переваги смарт-контрактів, давайте порівняємо гіпотетичний смарт-контракт з його еквівалентом у традиційному просторі.
Приклад смарт-контракту (4:46)
Припустімо, ми хочемо написати такий контракт: якщо Аліса надсилає X токенів A, а Боб надсилає таку ж кількість токенів B, токени будуть обміняні — Аліса отримає токени Боба, а Боб отримає токени Аліси.
У світі без смарт-контрактів одним із способів досягти цього без необхідності Алісі довіряти Бобу, а Бобу довіряти Алісі, було б створення ескроу-контракту з третьою стороною. Третя сторона зібрала б токени A від Аліси, дочекалася б такої ж кількості токенів B від Боба і надіслала б Алісі та Бобу відповідні обміняні токени.
Проблеми смарт-контрактів (5:45)
Цей підхід уже демонструє кілька проблем, з якими можуть зіткнутися Аліса та Боб:
- Довіра до посередників — немає жодної гарантії, що третя сторона не втече з токенами після отримання коштів від Аліси та Боба. Нам доводиться покладатися на репутацію посередника та потенційне страхування.
- Недетерміновані результати — якщо щось піде не так, це може мати різні наслідки залежно від багатьох факторів, включаючи юрисдикцію, де буде розглядатися потенційна справа.
З іншого боку, смарт-контракт працював би повністю автоматизовано та детерміновано, гарантуючи, що обидві сторони отримають кошти, коли вони виконають початкові критерії внесення токенів. Смарт-контракти також можуть зберігати кошти всередині себе, чого неможливо досягти в традиційному світі.
Швидкість (6:47)
Залежно від посередника, Алісі та Бобу, можливо, доведеться чекати навіть кілька днів або тижнів, щоб завершити переказ токенів. Що, якщо вони хочуть обміняти токени в неділю, а посередник не працює? Зі смарт-контрактами такі проблеми зникають, і контракт може бути виконаний за лічені секунди після виконання початкових критеріїв.
Вартість (7:16)
Традиційні контракти є дорогими не лише через посередника, який має отримувати прибуток — існує також величезний ризик прихованих витрат на такі речі, як арбітраж та примусове виконання, якщо з контрактом виникнуть якісь проблеми.
Можливість повторного використання — ще одна перевага: той самий смарт-контракт, який відповідає за обмін токенів Аліси та Боба, може бути використаний будь-ким іншим, хто хоче обміняти токени. У традиційному світі їм усім довелося б підписувати окремі контракти та сплачувати відповідні комісії посереднику.
Шахрайство (7:58)
Шахрайство — це ще одна прихована стаття витрат, цього разу для самого посередника. Посередник повинен був би переконатися, що токени Аліси та Боба є справжніми, перш ніж ініціювати обмін. Шахрайство дуже поширене в традиційних фінансах, і більшість компаній мають величезні команди, які працюють виключно над запобіганням шахрайству. Зі смарт-контрактами токени можна перевірити в блокчейні, а за допомогою цифрових підписів відразу стає зрозуміло, чи мають Аліса та Боб право витрачати свої токени.
Варіанти використання (8:42)
Смарт-контракти мають дедалі більшу кількість варіантів використання: від платежів і децентралізованих фінансів (DeFi) до ланцюгів постачання та краудфандингу. Смарт-контракти також є основними будівельними блоками для децентралізованих застосунків (dapps).
DeFi (9:07)
Децентралізовані фінанси (DeFi) — це одна з нових галузей, яка значною мірою покладається на смарт-контракти. Деякі з речей, які вже були створені в цьому просторі, включають:
- Децентралізовані стейблкоїни — завдяки розумному використанню смарт-контрактів і певних стимулів ми можемо створити стейблкоїн, прив'язаний до долара США, без необхідності зберігати долари в реальному світі. MakerDAO — один із проєктів, який робить це можливим.
- Автоматизоване забезпечення ліквідності — набір смарт-контрактів може дозволити користувачам надавати ліквідність та обмінювати токени повністю бездозвільним і децентралізованим способом. Юнісвоп та Kyber Network є хорошими прикладами таких протоколів.
Краудфандинг та ланцюги постачання (10:05)
Іншим варіантом використання є забезпечення більшої прозорості ланцюгів постачання, де в гру вступають такі протоколи, як OriginTrail. Що стосується краудфандингу, ви можете уявити контракт, який розблоковує кошти, щойно певні цілі будуть досягнуті та перевірені спільнотою.
Смарт-контракти майбутнього (10:29)
Що, якби смарт-контракти могли сприяти таким речам, як спільні поїздки, оренда квартир та багато іншого? А як щодо благодійності? Ви можете уявити повністю автоматизований фонд, який надсилав би гроші безпосередньо тим людям, які їх найбільше потребують, без жодних посередників. Наприклад, фонд міг би визначити, що певний регіон постраждав від урагану, і перенаправити кошти в цю частину світу. Поки що це звучить досить неможливо, але всі необхідні елементи для того, щоб щось подібне стало реальністю, створюються просто зараз.
Варіанти використання смарт-контрактів майже нескінченні, але перш ніж ми зможемо досягти всього цього, нам потрібно вирішити кілька проблем:
- Баги — один із головних ризиків, коли йдеться про смарт-контракти, це те, що переслідує будь-яке інше програмне забезпечення. Найкращим прикладом є злам The DAO, який призвів до втрати етеру на мільйони доларів, оскільки зловмисник зміг вивести кошти зі смарт-контракту. Це спричинило хардфорк Етеріуму та викликало багато розбіжностей у спільноті Етеріуму. З моменту зламу The DAO спільнота Етеріуму розробила багато додаткових заходів безпеки. Сьогодні майже всі популярні смарт-контракти проходять аудит безпеки, часто кількома командами. Також існує тенденція до використання методів формальної верифікації, щоб довести, що певні контракти завжди поводитимуться очікуваним чином.
- Зміни протоколу — навіть якщо смарт-контракт не має жодних багів і пройшов аудит, ми все одно не можемо гарантувати, що зміна на рівні платформи не викличе проблем. Оновлення самого протоколу може призвести до того, що певні смарт-контракти почнуть поводитися інакше, ніж очікувалося.
- Дані з реального світу — сервіси оракулів можуть забезпечити надійний спосіб отримання інформації з реального світу в блокчейн. Але уявіть, що ви орендували квартиру або автомобіль і випадково завдали шкоди. Як смарт-контракт без будь-якого втручання людини міг би про це дізнатися? Є багато прикладів, коли важко уявити, як щось несподіване, що відбувається в реальному світі, може бути видимим для смарт-контракту.
Крім вищезазначеного, існують також ризики, пов'язані з регулюванням та податками, але всі вони з часом можуть бути вирішені.
Чи можемо ми замінити юристів? (13:58)
Тож чи можемо ми насправді замінити юристів кодом? Не зовсім — принаймні не зараз. У майбутньому все більше контрактів, імовірно, будуть автоматизовані, особливо у фінансах. Але навіть у повністю автоматизованому світі юристи можуть надати цінні знання, які можна перетворити на код. Навколо криптоіндустрії також існує багато регуляторних викликів, які ще довго триматимуть юристів дуже зайнятими. Тим не менш, якби я був юристом, я б почав вивчати смарт-контракти та програмування, оскільки вони відіграватимуть велику роль у майбутньому.
Підсумок (14:53)
Переваги смарт-контрактів:
- Повністю автоматизовані
- Детерміновані результати
- Бездовірчі
- Швидкі, точні та безпечні
- Економічно вигідні та прозорі
Недоліки смарт-контрактів:
- Програмні баги
- Зміни протоколу
- Регуляторна та податкова невизначеність
Хоча смарт-контракти несуть певні ризики, ми все ще знаходимося на дуже ранньому етапі, і більшість поточних проблем можна вирішити.