Что такое смарт-контракт?
Смарт-контракт — это компьютерная программа, которая хранится и работает в децентрализованной «ненадежной» сети, такой как блокчейн. Под ненадежностью мы подразумеваем, что достоверность информации в сети может быть проверена кем угодно. Многие люди думают, что смарт-контракты применимы только к более новым сетям блокчейна, таким как Ethereum, но Биткойн также использует смарт-контракты, хотя и с ограниченной функциональностью.
Эфириум изначально задумывался частично как способ обобщить функциональность смарт-контрактов Биткойн. Таким образом, сеть Ethereum — это «полная конечная машина Тьюринга», что является академическим способом сказать, что это компьютер общего назначения, который также децентрализован. Смарт-контракты такой сети могут предположительно «вычислять» все, что может программа на обычном компьютере. Это означает, что в сети, по крайней мере теоретически, может быть размещено приложение для обмена сообщениями, видеоигра или даже целая платформа для социальных сетей. Однако в своем нынешнем состоянии децентрализованные сети сильно ограничены в типах приложений, которые они могут поддерживать, при этом скорость и стоимость являются основными ограничивающими факторами. Также важно отметить, что Ethereum был лишь первой из многих сетей, в которой была создана децентрализованная вычислительная машина общего назначения.
Почему кто-то решил развернуть смарт-контракт в децентрализованной сети поверх централизованной сети облачных вычислений, такой как Amazon Web Services (AWS)? В конце концов, облачные вычисления намного быстрее и дешевле, чем их децентрализованные аналоги. Ответ заключается в том, что централизованные сети идут на компромиссы в плане скорости и стоимости.
Поскольку смарт-контракты существуют в децентрализованной сети без доверия, они обеспечивают большую гарантию честного выполнения программ. Например, вы должны доверять своему банку, чтобы добросовестно выполнять транзакции онлайн-банка. Даже если банк заслуживает доверия, возможно, сотрудник банка злонамерен, хакер проник в сеть банка или неисправно само компьютерное оборудование. Не говоря уже о том, что у вас почти нет прямого способа проверить транзакции банка, не говоря уже о программном обеспечении, которое они используют. Смарт-контракты и децентрализованные сети, в которых они живут, значительно снижают потребность в этих предположениях о доверии.
Во многих случаях преимущества прозрачности, недоверия и гарантий целостности выполнения не нужны. Например, программа, которая моделирует погоду, или программа мониторинга управления воздушным движением, скорее всего, получит очень мало пользы от смарт-контрактов и повлечет за собой серьезные штрафы с точки зрения скорости и стоимости. Однако во многих случаях использования, связанных с деньгами или имуществом, компромисс между скоростью и стоимостью, вероятно, имеет смысл. Например, цифровая карточная игра, биржа активов или программа для отправки и получения криптоактивов.
Как работают смарт-контракты
Децентрализованные сети без доверия, такие как Ethereum, можно рассматривать как общий компьютер, а смарт-контракты — это программы, которые работают на общем компьютере. Разработчики пишут смарт-контракты на языке программирования, а затем развертывают их на общем компьютере. Когда вы развертываете смарт-контракт на «компьютере», на самом деле вы регистрируете специальный адрес в сети. Любой может взаимодействовать с развернутым смарт-контрактом, отправив собственный токен этой сети на адрес контракта. В случае сети Ethereum вы бы использовали ETH. Это запускает выполнение кода в контракте в соответствии с его логикой. Код выполняется автоматически по модели «если это, то это», как и любой другой язык программирования.
Например, в сети Ethereum простой смарт-контракт может быть написан так, что когда вы отправляете ему 1 ETH, ваш 1 ETH делится на 12 равных частей, каждая из которых отправляется на указанный адрес с интервалом в один месяц. Это фактически создало бы что-то похожее на трастовый фонд.
Для вариантов использования, которые существуют полностью в цифровом мире, смарт-контракты позволяют людям вообще обходить посредников. Например, в приведенном выше примере с «трастовым фондом» мы фактически устранили необходимость в юристах и управляли счетами условного депонирования. Вместо этого мы просто отправляем ETH в контракт и уверены, что он будет отправлен получателю трастового фонда точно так, как указано в контракте, и без каких-либо дополнительных данных.
Смарт-контракты используются гораздо более сложными способами для создания децентрализованных приложений (DApps), чтобы делать такие вещи, как неограниченный обмен крипто-активами или даже игры с цифровой собственностью, которыми игроки действительно могут владеть.