Ethereum: як працуюць смарт-кантракты?

Разумныя кантракты - галоўная асаблівасць, якая зрабіла Ethereum такім паспяховым. 

Што такое смарт-кантракты і для чаго яны патрэбныя

Пратакол Bitcoin не прадугледжвае магчымасці стварэнне сапраўды складаных разумных кантрактаў, таму што ён у асноўным быў распрацаваны толькі для забеспячэння транзакцый. 

Наадварот, Ethereum, які нарадзіўся праз 6 гадоў пасля біткойна, з самага пачатку быў распрацаваны як сетка, здольная размяшчэнне і выкананне смарт-кантрактаў

У 2014 годзе сузаснавальнік Ethereum Віталік Бутерин пісаў прама ў ст афіцыйны дакумент што сетка, якую ён распрацоўваў, была a платформа наступнага пакалення на аснове смарт-кантрактаў, і што альтэрнатыўныя дадаткі для біткойнаў, заснаваныя на тэхналогіі блокчейн, таксама ўключалі выкарыстанне лічбавых актываў для прадстаўлення карыстацкіх валют і фінансавых інструментаў, незаменных актываў і больш складаных прыкладанняў. 

У прыватнасці, апошнія, г.зн. смарт-кантракты, былі вызначаны як прыкладанні, якія прадугледжваюць прамы кантроль лічбавых актываў кодам, які рэалізуе адвольныя правілы, або дэцэнтралізаваныя аўтаномныя арганізацыі, заснаваныя на блокчейне, т.зв. DAO.  

Віталік напісаў: 

«Тое, што Ethereum мае намер забяспечыць, - гэта блокчейн з убудаванай мовай праграмавання, поўнай Цьюрынга, якую можна выкарыстоўваць для стварэння «кантрактаў», якія можна выкарыстоўваць для кадавання адвольных функцый пераходу стану, дазваляючы карыстальнікам ствараць любую з сістэм, апісаных вышэй – а таксама многія іншыя, якія мы яшчэ не ўяўлялі – проста напісаўшы логіку ў некалькіх радках кода».

Такім чынам, смарт-кантракты на Ethereum - гэта радкі кода, з дапамогай якіх можна запраграмаваць аўтаматычнае выкананне інструкцый сеткай, пры выкананні пэўных умоў, без неабходнасці давяраць іх выкананне пасярэдніку.

Фактычна, сам Бутэрын узяў тэрмін «кантракты» ў двукоссе, таму што гэта не рэальныя кантракты паміж бакамі, а кампутарныя праграмы, якія выконваюцца дэцэнтралізаваным сетку. 

Такім чынам, з агульнага пункту гледжання іх эксплуатацыя не вельмі складаная. 

разумны кантракт
Разумныя кантракты выконваюцца пасля праверкі ўмоў, якія змяшчаюцца ў іх

Разгортванне смарт-кантрактаў на блокчейне Ethereum

Перш за ўсё, адзін або некалькі распрацоўшчыкаў павінны, відавочна, стварыць смарт-кантракт, напісаўшы адпаведныя радкі кода, а затым яны павінны адправіць яго ў сетку Ethereum. 

З тэхнічнага пункту гледжання, публікацыя ў блокчейне Ethereum азначае прымусіць усе вузлы ў сетцы атрымліваць і выконваць яго. Пасля публікацыі ўсе інструкцыі ў ім заўсёды будуць выконвацца ўсімі вузламі сапраўды такім жа чынам. 

Таму не толькі яго выданне, але і выкананне інструкцый незваротна як толькі ён будзе апублікаваны ў блокчейне. 

Такім чынам, тое, што сапраўды мае значэнне, - гэта інструкцыі, якія ён змяшчае - якія могуць быць самымі разнастайнымі - і колькі людзей ім карыстаецца. Сапраўды, для таго, каб інструкцыі смарт-кантракту сапраўды выконваліся, яны павінны быць адна або некалькі транзакцый, якія іх выклікаюць

Варта таксама памятаць, што гэтыя інструкцыі звычайна ўключаюць выкарыстанне рэсурсаў, такіх як даныя або токены, таму для іх рэальнага выканання, усе неабходныя ўмовы павінны быць выкананы. 

Часам гэтыя даныя паступаюць звонку, дзякуючы так званым аракулам, а часам яны паступаюць проста з транзакцый у блокчейне. 

Звычайна транзакцыя, якая запускае выкананне інструкцый, якія змяшчаюцца ў смарт-кантракце прадугледжвае выплату а плата ў ETH, і ў многіх выпадках для фактычнага запуску выканання таксама патрабуецца аплата або адпраўка токенаў, характэрных для самога смарт-кантракту або іншых смарт-кантрактаў. 

Тэхнічна разумныя кантракты - гэта тып уліковага запісу на Блокчэйн Ethereum, «кантраляваны» сеткай, а не цэнтральнай арганізацыяй. Яны могуць захоўваць ETH або токены, а таксама могуць адпраўляць транзакцыі ў сетцы аўтаномна.

Як узаемадзейнічаць з кодам і ўвогуле з dApps

Карыстальнікі могуць узаемадзейнічаць са смарт-кантрактамі, адпраўляючы транзакцыі, якія запускаць адну з функцый, вызначаных у іх кодзе. 

Такім чынам, функцыянаванне смарт-кантрактаў на Ethereum у цэлым вельмі простае: проста адпраўце транзакцыю пэўнага тыпу ў смарт-кантракт, і гэта запусціць выкананне вузламі ўсіх інструкцый, якія змяшчаюцца ў функцыі смарт-кантракту, выкліканай сама транзакцыя. 

Відавочна, што ў залежнасці ад таго, якія інструкцыі ўтрымліваюцца ў выкліканай функцыі, могуць быць створаны вельмі розныя наступствы, якія адрозніваюцца не толькі ад смарт-кантракту да смарт-кантракту, але і ад функцыі да функцыі. 

Такім чынам, велізарная складанасць смарт-кантрактаў вынікае менавіта з таго, што робяць асобныя смарт-кантракты, а не ў цэлым з таго факту, што сетка Ethereum іх падтрымлівае і выконвае. Больш за тое, абсалютна немагчыма пералічыць, як на самай справе працуюць усе віды смарт-кантрактаў у сетцы. 


Крыніца: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/