Код — это закон? Объяснение смарт-контрактов
Изучение концепции «код — это закон» через призму смарт-контрактов в Эфириуме и DeFi. В этом видео рассказывается о том, что такое смарт-контракты, как они работают, и рассматривается философский вопрос о том, должен ли код быть высшим судьей.
Date published: 18 ноября 2020 г.
Объясняющее видео от Файнматикс, исследующее концепцию «код — это закон» через призму смарт-контрактов в Эфириуме. В нем рассказывается о том, что такое смарт-контракты, как они работают, в чем их преимущества перед традиционными контрактами и почему они являются строительными блоками децентрализованных финансов (DeFi).
Эта стенограмма является доступной копией оригинальной стенограммы видео (opens in a new tab), опубликованной Файнматикс. Она была слегка отредактирована для удобства чтения.
Введение (0:00)
Вы когда-нибудь слышали выражение «код — это закон», когда технологии используются для обеспечения соблюдения правил? В таком случае, нужны ли нам вообще юристы? Или, может быть, мы сможем жить в полностью автоматизированном мире, где код диктует, что мы можем и чего не можем делать. С учетом текущего развития смарт-контрактов этот футуристический сценарий может быть ближе, чем мы думаем.
Смарт-контракт — это фрагмент кода, который может выполняться автоматически и детерминированным образом. Код смарт-контракта обычно хранится и выполняется в блокчейне, чтобы сделать его не требующим доверия и безопасным. Смарт-контракты также обладают способностью получать, хранить и отправлять средства — и даже вызывать другие смарт-контракты. Они следуют семантике «если-то», что делает их программирование довольно простым.
Смарт-контракты нацелены на устранение человеческого фактора из процесса принятия решений. Человеческий фактор часто оказывается самым подверженным ошибкам и ненадежным элементом стандартных традиционных контрактов.
Торговый автомат очень часто приводится в качестве хорошей аналогии смарт-контракту, поскольку у них есть некоторые сходства. Типичный торговый автомат запрограммирован таким образом, что допускает определенные действия и переходы состояний на основе ввода. Он также работает полностью детерминированным образом. Например, если вы хотите купить банку колы, которая стоит 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) до цепочек поставок и краудфандинга. Смарт-контракты также являются базовыми строительными блоками для децентрализованных приложений (dapp).
DeFi (9:07)
Децентрализованные финансы (DeFi) — это одна из новых отраслей, которая в значительной степени опирается на смарт-контракты. Некоторые из вещей, которые уже были созданы в этой сфере, включают:
- Децентрализованные стейблкоины — благодаря грамотному использованию смарт-контрактов и определенных стимулов мы можем создать стейблкоин, привязанный к доллару США, без необходимости хранить доллары в реальном мире. MakerDAO — один из проектов, который делает это возможным.
- Автоматизированное предоставление ликвидности — набор смарт-контрактов может позволить пользователям предоставлять ликвидность и обменивать токены полностью общедоступным и децентрализованным способом. Юнисвоп и Kyber Network являются хорошими примерами таких протоколов.
Краудфандинг и цепочки поставок (10:05)
Другой вариант использования — обеспечение большей прозрачности цепочек поставок, где в игру вступают такие протоколы, как OriginTrail. Что касается краудфандинга, вы можете представить себе контракт, который разблокирует средства, как только определенные цели будут достигнуты и проверены сообществом.
Смарт-контракты будущего (10:29)
Что, если бы смарт-контракты могли способствовать таким вещам, как совместные поездки, аренда квартир и многое другое? Как насчет благотворительности? Вы можете представить себе полностью автоматизированный фонд, который отправлял бы деньги напрямую людям, которые в них больше всего нуждаются, без каких-либо посредников. Например, фонд мог бы определить, что определенный регион пострадал от урагана, и перенаправить средства в эту часть мира. Пока это звучит совершенно невыполнимо, но все необходимые элементы для того, чтобы нечто подобное произошло, создаются прямо сейчас.
Варианты использования смарт-контрактов почти безграничны, но прежде чем мы сможем достичь всего этого, нам нужно решить несколько проблем:
- Ошибки — один из главных рисков, когда дело доходит до смарт-контрактов, это то, что преследует любое другое программное обеспечение. Лучшим примером является взлом The DAO, который привел к потере эфира на миллионы долларов, поскольку злоумышленник смог вывести средства из смарт-контракта. Это привело к хардфорку Эфириума и вызвало много разногласий в сообществе Эфириума. Со времен взлома The DAO сообщество Эфириума разработало множество дополнительных мер безопасности. В наши дни почти все популярные смарт-контракты прошли аудит безопасности, часто проводимый несколькими командами. Также существует тенденция к использованию методов формальной верификации, чтобы доказать, что определенные контракты всегда будут вести себя ожидаемым образом.
- Изменения протокола — даже если смарт-контракт не имеет ошибок и прошел аудит, мы все равно не можем гарантировать, что изменение на уровне платформы не вызовет проблем. Обновление самого протокола может привести к тому, что некоторые смарт-контракты начнут вести себя иначе, чем ожидалось.
- Данные из реального мира — сервисы оракулов могут обеспечить надежный способ получения информации из реального мира в блокчейн. Но представьте, что вы арендовали квартиру или машину и случайно нанесли какой-то ущерб. Как смарт-контракт без какого-либо вмешательства человека мог бы узнать об этом? Есть множество примеров, когда трудно представить, как что-то неожиданное, происходящее в реальном мире, может быть видно смарт-контракту.
Помимо вышеперечисленного, существуют также риски, связанные с регулированием и налогами, но все они в конечном итоге могут быть решены.
Можем ли мы заменить юристов? (13:58)
Так можем ли мы на самом деле заменить юристов кодом? Не совсем — по крайней мере, не прямо сейчас. В будущем все больше и больше контрактов, вероятно, будут автоматизированы, особенно в финансах. Но даже в полностью автоматизированном мире юристы могут предоставить ценные знания, которые можно перевести в код. Вокруг индустрии криптовалют также существует множество нормативных проблем, которые еще долго будут занимать юристов. Тем не менее, если бы я был юристом, я бы начал изучать смарт-контракты и программирование, поскольку они будут играть большую роль в будущем.
Краткие итоги (14:53)
Плюсы смарт-контрактов:
- Полностью автоматизированные
- Детерминированные результаты
- Не требующие доверия
- Быстрые, точные и безопасные
- Экономичные и прозрачные
Минусы смарт-контрактов:
- Программные ошибки
- Изменения протокола
- Нормативная и налоговая неопределенность
Несмотря на то, что смарт-контракты несут определенные риски, мы все еще находимся на очень раннем этапе, и большинство текущих проблем решаемы.