- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Смарт-контракты на основе блокчейна нуждаются в новом виде комплексной проверки
Два эксперта по правовым вопросам утверждают, что нам необходимо усилить комплексную проверку, прежде чем транзакции по смарт-контрактам будут записаны на «блокчейн-камне».
Более 20 лет назад Ник Сабо предложил использовать «умный контракт» для снижения расходов на мошенничество и принудительное исполнение, связанных с традиционными бумажными контрактами. Его умный контракт будет реализован как «компьютеризированный протокол транзакций, который выполняет условия контракта» — другими словами, компьютерная программа.
Как и любое другое программное обеспечение, компьютерная программа «умного контракта» будет получать входные данные, выполнять ряд шагов программы и поставлять выходные данные. Например, умный контракт может ждать наступления заранее определенного условия (например, акции достигают определенной цены), автоматически считать условия контракта выполненными и запускать заранее определенную серию шагов исполнения (например, платеж), которые будут автоматически выполнены. Задолго до своего времени эта идея не прижилась.
Перенесемся в 2016 год. Блокчейны широко распространены, и вновь возрос интерес к смарт-контрактам, особенно к децентрализованному исполнению контрактов: смарт-контрактам на блокчейне.
Блокчейн Bitcoin работает с 2009 года, но, несмотря на различные усилия, он, похоже, не подходит для удобной реализации смарт-контрактов. Напротив, оригинальный блокчейн Ethereum , анонсированный в 2014 году и запущенный в 2015 году, был специально разработан для реализации смарт-контрактов.
Проблемы в раю
С момента запуска смарт-контракты начали распространяться в экосистеме Ethereum . Однако будущая неизменяемость смарт-контрактов Ethereum остается неопределенной после широко разрекламированного «хард-форк» EthereumСуществующий эфир фактически стал «E[i]ther» — классический эфир (ETC) и *новый* эфир (ETH) — предоставив рыночным силам решать, выживет ли один из них или оба.
Система Ethereum , как и Bitcoin, связывает владение валютой (ether) с адресом. Однако, в отличие от Bitcoin , Ethereum также предоставляет адрес для исполняемого кода контракта, который работает в блокчейне. Когда адрес контракта получает подходящее сообщение от пользователя или другого контракта, код выполняется. Смарт-контракты Ethereum хранятся в блокчейне и выполняются на «виртуальных машинах Ethereum » (EVM) самостоятельно выбранными компьютерными узлами, обычно известными как «майнеры». Эти узлы выполняют обработку, необходимую для выполнения соответствующих шагов программы. За плату, конечно.
Плата за обработку каждого смарт-контракта Ethereum пропорциональна его сложности и использованию вычислительных ресурсов. Взимание пропорциональной платы препятствует ресурсоемкому нецелевому использованию системы Ethereum .
Но чрезмерное использование ресурсов Ethereum — не единственный возможный тип злоупотребления. В недавней статье отмечалось, что среди примерно 19 000 изученных смарт-контрактов Ethereum 44% содержали уязвимости. Поскольку код смарт-контракта копировался снова и снова, а некорректные методы составления повторялись, код, полный ошибок, распространялся. Старый, некорректный код, по-видимому, стал неустойчивой основой для возвышающихся новых смарт-контрактов.
Как мы все болезненно знаем, ошибки программного обеспечения и уязвимости системы не являются чем-то новым. Самые популярные операционные системы и прикладное программное обеспечение часто «обновляются». И все время обнаруживается все больше ошибок. Типичное лицензионное соглашение на программное обеспечение включает годы «бесплатных» обновлений.
Как исправить неизменяемую систему?
Как потребитель программного обеспечения, ваша «должная осмотрительность» довольно проста, поскольку процесс исправления ошибок встроен в лицензию программного обеспечения. Когда (а не если) что-то идет не так, у вас есть надежда, что кто-то пытается решить проблему.
Но смарт-контракты — это не обычное программное обеспечение. Смарт-контракт должен автоматически реализовывать реальный контракт: фактическое соглашение между двумя (или более) сторонами. После того, как договаривающиеся стороны соглашаются с условиями сделки, эти условия преобразуются в смарт-контракт — например, передаются программисту для создания кода смарт-контракта. Так как же стороны узнают, что согласованные условия были правильно запрограммированы?
Более того, если смарт-контракт хранится на неизменяемом блокчейне, то, по определению, его сохраненный программный код не изменяется. Уверенность, которая возникает из-за такого постоянства, становится ценной функцией. Но эта уверенность также означает, что неизменяемые смарт-контракты лишены традиционных возможностей исправления ошибок. Программный код, реализующий смарт-контракт, не может быть легко отлажен после хранения на неизменяемом блокчейне. Любые ошибки или уязвимости запечатлены в «камень блокчейна».
Смарт-контракт должен быть безошибочным, устойчивым к ошибкам или, по крайней мере, каким-то образом корректируемым. Полагаться на «формальные» контракты не является гарантией безопасности — особенно для смарт-контрактов. Старое, глючное программное обеспечение, безусловно, может быть использовано и имело большой эффект. Посмотрите наВзлом DAOСообщается, что более 50 миллионов долларов в эфире были украдены из-за уязвимости смарт-контракта.
Для этого нового типа контракта должен быть новый вид должной осмотрительности. Смарт-контракты сочетают в себе право и информатику. Должное осмотрительность в отношении смарт-контрактов должна делать то же самое.
Комплексная проверка в эпоху блокчейна
Какая комплексная проверка необходима для смарт-контракта?
Традиционный анализ предлагаемой транзакции и согласованных условий контракта должен выявить практические и юридические проблемы. Анализ исходного кода должен выявить недостатки в программировании смарт-контракта до его компиляции.
Кроме того, предлагаемый смарт-контракт следует запустить на симуляторе, чтобы увидеть, как он работает в ответ на ожидаемые и неожиданные сообщения от пользователей и других контрактов. И юридические вопросы, и вопросы программирования могут быть затем решены вместе. Ожидаемые и неожиданные непредвиденные обстоятельства могут быть идентифицированы, оценены и смягчены.
К разочарованию некоторых, использование смарт-контрактов на блокчейне T устранит необходимость в юристах. Скорее всего, это просто изменит то, что юристам нужно делать.
Мы прогнозируем, что этот новый тип комплексной проверки объединит специализированных юристов по сделкам, которые смогут изучить условия конкретной сделки, экспертов по программному обеспечению, которые смогут проанализировать программный код смарт-контракта и его работу в блокчейне, а также юристов по «смарт-контрактам», которые смогут преодолеть разрыв между этими двумя направлениями.
Очевидно, что команда должной осмотрительности должна быть задействована задолго до того, как смарт-контракт будет добавлен в блокчейн – даже до того, как будет заключена базовая сделка – чтобы избежать предсказуемых ошибок. Проводя этот новый тип должной осмотрительности с надлежащей командой, смарт-договаривающиеся стороны могут быть гораздо более уверены в достижении своих предполагаемых результатов.
Более тщательная проверка смарт-контрактов может наконец принести душевное спокойствие.
Аудитизображение через Shutterstock
Примечание: мнения, выраженные в этой колонке, принадлежат автору и не обязательно отражают мнение CoinDesk, Inc. или ее владельцев и аффилированных лиц.