Home » Основи » Що таке SMART-контракти?

Що таке SMART-контракти?

Публічний блокчейн можна представити наступним чином:

  • одна і та ж угода записується у вигляді набору “чарівних” документів;
  • будь-хто, хто володіє одним з таких документів, може брати участь у підтримці актуальності цієї угоди;
  • зміни, які можна вносити в документ, регламентовані особливими правилами;
  • будь-яка правоздатна зміна в одному з “чарівних” документів автоматично поширюється на всі інші документи.

Завдяки цим властивостям, у кожного учасника зберігаються однакові копії угоди, незважаючи на те, що вона постійно змінюється.

Аналогія вище описує набір “чарівних” документів (блокчейн), для якого прописаний один набір правил. Для інших наборів “чарівних” документів діють інші правила щодо допустимих змін. Вихідний набір “чарівних” документів називається Біткойном. Правила для набору документів звучать так:

  • у кожному “чарівному” документі міститься список всіх рахунків і залишків на них;
  • рахунки належать людям, які можуть відправляти біткойни зі свого рахунку на інші рахунки.

По суті, на основі цих правил створюються електронні гроші. Нижче наведена ілюстрація одного з “чарівних” документів в мережі, скажімо біткойна. Число поруч з кожним рахунком позначає залишок BTC на ньому.

smart-in-cryptocurrency

Інший набір документів називається, допустимо Ethereum. Правила для “чарівних” документів, з яких складається ефір, дуже схожі на правила для документів біткойна:

  • у кожному “чарівному” документі міститься список всіх рахунків і залишків на них;
  • власники рахунків можуть надсилати кошти зі свого рахунку на інші рахунки.

Можна помітити невеликі відмінності у формулюваннях між другими правилами Ефіріума і Біткойна. Різниця полягає в тому, що деякими рахунками в блокчейні Ефіріума керують не люди. Дії цих рахунків контролюються набором інструкцій, який їм належить.

Нижче наведена ілюстрація одного з “чарівних” документів в блокчейні Ефіріума. Тут рахунками B, E і G керують інструкції, а не люди:

smart-ETH

Коли одному з цих рахунків приписується набір інструкцій, він стає смарт-контрактом. Інструкції – це програмний код, звичайний алгоритм. Отримавши кошти з іншого рахунку, смарт-контракт може:

  • виконати обчислення;
  • зберегти інформацію;
  • відправити транзакції на інші рахунки.

Як згадувалося раніше, рахунки з кодом не управляються користувачами – вони повністю автономні! Вихідний код пише людина, але як тільки код смарт-контракту завантажується в блокчейн, дії рахунку визначає лише прописана для нього логіка.

Багато людей критикують назву «смарт-контракт», тому що ці контракти складно назвати розумними. Це всього лише набори інструкцій, які здатний написати будь-хто. І люди цілком можуть створювати абсолютно безглузді смарт-контракти.

Це назва вводить в оману ще й тому, що це не зовсім контракт, по крайній мірі, в тому сенсі, що він є обов’язковим до виконання. За ігнорування умов традиційного контракту доводиться нести юридичні наслідки в реальному світі. Якщо контрагент контракту не виконує свою частину угоди, можна скористатися правовою системою, щоб притягнути порушника до відповідальності. Умови смарт-контракту, навпаки, ніхто не повинен виконувати. Це набір інструкцій, які виконуються самостійно. Смарт-контакт не має особливої юридичної сили в реальному світі. Він може тільки відправляти гроші на інші рахунки в блокчейні. Щоб надати йому юридичну силу, необхідно створити навколо угод в блокчейні якесь правове поле.

Код є закон

При укладенні звичайного контракту ваш рівень довіри до того, що ви підписуєте, визначається кількома чинниками. Найочевидніший з них – це розуміння змісту контракту. В контракті мовою юристів викладаються умови угоди, які ви зобов’язуєтеся виконувати. Тому важливо розуміти цю мову і те, як зміст контракту інтерпретується правовою системою. Ось чому ви завжди уважно вивчаєте умови угоди  і т. д. Ви б ніколи не підписали угоду, яка зобов’язує вас надати свого первістка в якості оплати за використання їхніх послуг, як це не зробили б 98 % людей.

pidpys-contract

Наступний фактор: умови, викладені в контракті, обмежені величезним масивом діючого законодавства. Тобто, просто глянувши на зміст контракту, неможливо зрозуміти, яким чином він буде виконаний. Існують закони, які забороняють використовувати первістків як засіб оплати, навіть якщо ви на це погодилися. Тому важливо розуміти, яку роль відіграє подібний правовий контекст.

Ці контекстуальні закони часто служать мірою обережності, і іноді змушують виконувати контракти як належить за законом, а не як записано в договорі. Журналіст Метт Левін написав статтю про те, як компанія JPMorgan отримала величезний штраф, незважаючи на виконання умов, викладених у контракті. Згаданий в ній контракт регулював ринок електроенергії, а представники JPMorgan знайшли спосіб обійти його умови. Вони не порушили правил, викладених у контракті. Представники JPMorgan ретельно їх дотримувалися, але проігнорували призначення контракту і були піймані в павутину законів про маніпуляції на ринку.

Буває так, що навіть продажу первістка в рабство – у спробі виконати свою частину контракту може бути недостатньо. Ви могли б продати всі свої речі і залишити сім’ю на боргову кабалу, але це як і раніше не може покрити свої зобов’язання, і тому інша сторона не отримає плату. Ризик укладення договору з людиною, який може не виконати свою частину угоди, називається ризиком контрагента. Його також слід брати до уваги.

Нарешті, навіть якщо ви розумієте зміст контракту і правовий контекст, вам все одно доводиться покладатися на верховенство закону. Але іноді де-юре ≠ де-факто. Саме тому вас можуть мучити сумніви при укладенні угоди з сином президента ВАТ «Корупція». Такий контракт не буде коштувати навіть того паперу, на якому він написаний.

Але як ці фактори співвідносяться зі смарт-контрактами? Смарт-контракт по суті складається з двох елементів, які вам потрібно розуміти і на які слід покладатися:

  • код та його інтерпретація;
  • незмінюваність блокчейну.

Як і у випадку із звичайними контрактами, маючи справу зі смарт-контрактом, важливо розуміти, що в ньому написано. Але на відміну від звичайного контракту, який написаний на мові юристів і інтерпретується правовою системою, зміст смарт-контракту прописується кодом і інтерпретується комп’ютерами. Як же насправді виглядає код смарт-контракту? Нижче наведено фрагмент:

function payOut(address _recipient, uint _amount) returns (bool) {
if (msg.sender != owner || msg.value > 0 || (payOwnerOnly && _recipient != owner))
throw;
if (_recipient.call.value(_amount)()) {
PayOut(_recipient, _amount);
return true;
} else {
return false;
}
}

Код – це ті умови, які ви приймаєте при взаємодії зі смарт-контрактом. Поки ви покладаєтеся на блокчейн, в якому знаходиться смарт-контракт, ви можете бути впевнені, що код буде виконаний так, як він написаний. Тому ніякого порушення домовленостей тут бути не може. Однак це не означає, що код спрацює належним чином, якщо в ньому є помилки.

Застосування смарт-контрактів

Смарт-контракти – це набори інструкцій, що зберігаються в блокчейне і записані у вигляді комп’ютерного коду. Цей код можна записати нескінченним числом способів, точно так само, як і слова, що визначають умови традиційного контракту. Але, як і у випадку зі словами в реченні, це не має сенсу. Це нікому не цікаво. Інша справа – способи організації логіки. Що ж тут цікавого?

Перш ніж відповісти, розглянемо потенційні сценарії використання блокчейнів.

Після публікації оригінального white paper Біткойна люди почали розуміти, що на базі тієї ж технології можна реалізувати і інші типи угод. Люди придумували угоди, в яких можна вказувати права власності на різні види активів і правила оновлення цих угод. Ось деякі з таких сценаріїв:

  • цифрова ідентифікація особистості (наприклад, на сайтах);
  • нецифрові активи – наприклад, золото, нафту та нерухомість;
  • валюта країни та інші, нові типи валют;
  • фінансові інструменти – наприклад, акції, іпотечні кредити та облігації;
  • доказово чесні азартні ігри і ставки;
  • правила для ринку зберігання даних;
  • правила для ринку обчислювальних ресурсів.

Проблема полягала в тому, що кожен блокчейн створювався з урахуванням одного сценарію. Для кожного нового сценарію був потрібен цілий новий блокчейн, а для створення нового блокчейну необхідно багато ресурсів, так як нова угода повинна підтримуватися достатнім числом учасників.

Смарт-контракти все змінили. Чарівні правила, що визначають функціональність одного блокчейну, тепер можна продублювати в смарт-контрактах, записаних в існуючому блокчейні, в якому передбачена така можливість. Це означає, що замість створення нового блокчейну для кожного сценарію, можна додати кілька сценаріїв в один блокчейн з допомогою смарт-контрактів. По суті, ви створюєте безліч блокчейнів всередині одного.

blockchaine-system

Візьмемо, приміром, блокчейн, в якому прописуються права власності на різні активи. Цей “чарівний” документ – просто список, який вказує, що кому належить. Замість використання цілого блокчейну для цієї мети, відповідну інформацію можна включати в смарт-контракт. Як і блокчейн, смарт-контракт буде являти собою звичайний список рахунків і залишків на них, але з правилами, які описують допустимі умови і способи оновлення цього списку.

Смарт-контракти можна застосовувати так само, як і блокчейни.

Але крім того, смарт-контракти дозволяють створювати більш дрібні нішеві угоди, для яких ніхто б не став розробляти новий блокчейн. Уявіть, що ми захотіли би зіграти в азартну гру з людьми, яких зустріли на інтернет-форумі. Ми могли б створити смарт-контракт, який блокує наші кошти на 10 днів, а потім випадковим чином виплачує суму одному з нас. Створення нового блокчейну для такої мети було б дурістю. Але створення смарт-контракту, який використовує інфраструктуру існуючого блокчейна, було б виправданим.

Можливості блокчейнів з підтримкою смарт-контрактів в повній мірі розкриваються у взаємодіях між різними областями застосування. Наприклад, візьмемо два смарт-контракти: один визначає і прописує права власності на долари, а інший – права власності на нерухомість. Ми можемо використовувати третій смарт-контракт для умовного депонування, що дозволить купувати нерухомість без посередника.

Блокчейн технології відкривають безліч можливостей, а їх реалізація у формі смарт-контрактів на одній і тій же платформі створює екосистему подібних сценаріїв, які доповнюють один одного.

Програмована угода

Блокчейн-технологія – це новий спосіб дотримання умов контракту на децентралізованій основі. Смарт-контракти дозволяють кожному задавати власні умови в рамках більш масштабної угоди.

Невідомо, які угоди будуть підтримуватися блокчейнами надалі, але зараз смарт-контракти дозволяють будь-кому створювати додатки, які він вважає багатообіцяючими. Якщо говорити про створення грошових коштів – ймовірно, основного сценарію використання блокчейн-технологій тут ми віддаємо перевагу абстрагуватися і розглядати загальну картину.

З самого зародження цивілізації, коли гроші були тільки винайдені, вони належали людям. З часом, різні форми організації, придумані людьми, наприклад, держави і компанії, змогли заволодіти грошима. Тепер, уперше в історії, самостійно розпоряджатися грошима може машина (логіка).

Наслідки цього важко уявити, але можна справедливо стверджувати, що попереду нас чекають цікаві часи.



Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *