Три наиболее распространенных заблуждения умного контракта
Как разработчики популярной блокчейн-платформы, нас иногда спрашивают, заключаются ли умные контракты, подобные Ethereum, многоцепочечного дорожная карта. Ответ, который я всегда даю: нет или по крайней мере пока.
Но в мире шуток, наполненных шумихой, умные контракты - все в моде, так почему же нет? Проблема в том, что, хотя мы теперь знаем три убедительных варианта использования разрешенных блокчейнов в биткойн-стиле (происхождение, межфирменные записи и легкие финансы), нам еще предстоит найти эквивалент для умных контрактов в стиле Эфириума.
Нельзя сказать, что людям не хватает представлений о том, что они хотят, чтобы умные контракты делали Скорее, это так много из этих идей просто невозможно, Видите ли, когда умные люди слышат термин «умные контракты», их воображение начинает сходить с ума. Они вызывают в воображении мечты об автономном интеллектуальном программном обеспечении, уходящем в мир, забирающем свои данные для поездки.
К сожалению, реальность умных контрактов гораздо более приземленная, чем все это:
Интеллектуальный контракт - это фрагмент кода, который хранится в блокчейне, запускается транзакциями блокчейна и считывает и записывает данные в базу данных этого блокчейна.
Вот и все. В самом деле. Умный контракт - это просто причудливое имя для кода, который выполняется в блокчейне и взаимодействует с состоянием этого блокчейна. И что is код? Это Паскаль, это Питон, это PHP. Это Java, это Fortran, это C ++. Если мы говорим о базах данных, это хранимые процедуры написано в расширении SQL. Все эти языки в основном эквивалентны, решая одни и те же проблемы одним и тем же способом. Конечно, у каждого есть свои сильные и слабые стороны - вы с ума сошли бы, создав веб-сайт на C или сжав HD-видео в Ruby. Но в принципе, по крайней мере, вы могли бы, если бы, Вы бы просто заплатили высокую цену за удобство, производительность и, скорее всего, за свои волосы.
Проблема умных контрактов заключается не только в том, что ожидания людей преувеличены. Именно из-за этих ожиданий многие тратят время и деньги на идеи, которые невозможно реализовать. Кажется, что у крупных компаний достаточно ресурсов, чтобы пройти длинный путь - с момента, когда высшее руководство сталкивается с новой технологией, до того момента, когда достоинства и недостатки этой технологии действительно понятны. Возможно, наш собственный опыт поможет сократить это время.
За последние девять месяцев мы разбили множество умных вариантов использования контрактов и снова и снова отвечали, что их просто невозможно выполнить. В результате мы определили три умных неправильных представления о контракте, которые чаще всего встречаются. Эти идеи не ошибаются, потому что технология незрелая, или инструменты еще не доступны. Скорее, они неправильно понимают фундаментальные свойства кода, который живет в базе данных и работает децентрализованно.
Обращение в сторонние службы
Часто первым предложенным вариантом использования является умный контракт, который меняет свое поведение в ответ на какое-то внешнее событие. Например, сельскохозяйственный страховой полис, который выплачивается условно в зависимости от количества осадков в данном месяце. Воображаемый процесс происходит примерно так: умный контракт ожидает до заданного времени, извлекает отчет о погоде из внешней службы и ведет себя соответствующим образом на основе полученных данных.
Все это звучит достаточно просто, но это также невозможно. Зачем? Поскольку блокчейн является системой, основанной на консенсусе, это означает, что она работает, только если каждый узел достигает идентичного состояния после обработки каждой транзакции и блока. Все, что происходит в блокчейне, должно быть полностью детерминированным, без каких-либо возможных путей различий. В тот момент, когда два честных узла расходятся во мнениях о состоянии цепи, вся система становится бесполезной.
Теперь напомним, что умные контракты выполняются независимо каждым узлом цепочки. Следовательно, если интеллектуальный контракт извлекает некоторую информацию из внешнего источника, этот поиск выполняется повторно и отдельно каждым узлом. Но поскольку этот источник находится за пределами блокчейна, нет никакой гарантии, что каждый узел получит одинаковый ответ, Возможно, источник изменит свой ответ во время между запросами от разных узлов, или, возможно, он станет временно недоступным. В любом случае, консенсус нарушается, и весь блокчейн умирает.
Так в чем же обход? На самом деле, это довольно просто. Вместо смарт-контракта, инициирующего поиск внешних данных, одна или несколько доверенных сторон («оракулы») создают транзакцию, которая встраивает эти данные в цепочку. Каждый узел будет иметь одинаковую копию этих данных, поэтому его можно безопасно использовать при умном вычислении контракта. Другими словами, оракул выталкивает данные на блокчейн, а не умный контракт тянущий это внутри.
Когда дело доходит до умных контрактов, вызывающих события во внешнем мире, возникает аналогичная проблема. Например, многим нравится идея умного контракта, который вызывает API банка для перевода денег. Но если каждый узел независимо выполняет код в цепочке, кто отвечает за вызов этого API? Если ответом является только один узел, что произойдет, если этот конкретный узел неисправен, умышленно или нет? И если ответом является каждый узел, можем ли мы доверять каждому узлу пароль этого API? И действительно ли мы хотим, чтобы API вызывался сотни раз? Еще хуже, если умный контракт должен знать, был ли вызов API успешным, мы снова возвращаемся к проблеме зависимости от внешних данных.
Как и раньше, доступен простой обходной путь. Вместо умного контракта, вызывающего внешний API, мы используем доверенный сервис, который отслеживает состояние блокчейна и выполняет определенные действия в ответ. Например, банк может предварительно отслеживать блокчейн и осуществлять денежные переводы, которые отражают транзакции внутри сети. Это не представляет риска для консенсуса блокчейна, потому что цепь играет полностью пассивную роль.
Глядя на эти два обходных пути, мы можем сделать некоторые наблюдения. Во-первых, им обоим требуется доверенный объект для управления взаимодействиями между блокчейном и внешним миром. Хотя это технически возможно, это подрывает цель децентрализованной системы. Во-вторых, механизмы, используемые в этих обходных путях, являются прямыми примерами чтение и запись базы данных, Оракул, который предоставляет внешнюю информацию, просто записывает эту информацию в цепочку. А сервис, который отражает состояние блокчейна в реальном мире, делает только чтение из этой цепочки. Другими словами, любое взаимодействие между блокчейном и внешним миром ограничено регулярными операциями с базой данных. Мы поговорим об этом подробнее позже.
Обеспечение платежей внутри сети
Вот еще одно предложение, которое мы часто слышим: использование умного контракта для автоматизации выплаты купонов на так называемую «умную облигацию». Идея заключается в том, чтобы код смарт-контракта автоматически инициировал платежи в соответствующее время, избегая ручных процессов и гарантируя, что эмитент не сможет выполнить дефолт.
Конечно, для того, чтобы это работало, средства, используемые для осуществления платежей, должны также находиться внутри блокчейна, иначе умный контракт не сможет гарантировать их оплату. Теперь напомним, что блокчейн - это просто база данных, в данном случае финансовая книга, содержащая выпущенные облигации и немного денежных средств. Поэтому, когда мы говорим о купонных выплатах, мы на самом деле говорим об операциях с базами данных, которые выполняются автоматически в согласованное время.
Хотя эта автоматизация технически возможна, она страдает от финансовых трудностей. Если средства, используемые для купонных выплат, контролируются умным контрактом облигации, то эти платежи действительно могут быть гарантированы. Но это также означает, что эти средства не может быть использован эмитентом облигаций ни для чего другого, И если эти средства не под контролем смарт-контракта, то нет способа гарантировать платеж.
Другими словами, умная облигация либо бессмысленна для эмитента, либо бессмысленна для инвестора. И если вы думаете об этом, это совершенно очевидный результат. С точки зрения инвестора, весь смысл облигации заключается в ее привлекательной ставке доходности за счет некоторого риска дефолта. А для эмитента цель облигации - собрать средства для продуктивной, но несколько рискованной деятельности, такой как строительство нового завода. Эмитент облигаций не может использовать привлеченные средства, одновременно гарантируя, что инвестор будет погашен. Не должно быть сюрпризом, что связь между риском и доходностью не является проблемой, которую могут решить блокчейны.
Сокрытие конфиденциальных данных
Как я написано о ранееСамой большой проблемой при развертывании блокчейнов является радикальная прозрачность, которую они обеспечивают. Например, если десять банков создают блокчейн вместе, и два банка проводят двустороннюю транзакцию, это будет сразу же видно остальным восьми. Хотя существуют различные стратегии для решения этой проблемы, ни одна из них не превосходит простоту и эффективность централизованной базы данных, в которой доверенный администратор имеет полный контроль над тем, кто что может видеть.
Некоторые люди думают, что умные контракты могут решить эту проблему. Они начинают с того, что каждый умный контракт содержит свою собственную миниатюрную базу данных, над которой он имеет полный контроль. Все операции чтения и записи в этой базе данных выполняются кодом контракта, что делает невозможным для одного контракта непосредственное чтение данных другого. (Эта тесная связь между данными и кодом называется инкапсуляцией и является основой популярного объектно-ориентированного программирования парадигма.)
Итак, если один умный контракт не может получить доступ к данным другого, решили ли мы проблему конфиденциальности блокчейна? Имеет ли смысл говорить о сокрытии информации в умном контракте? К сожалению, ответ - нет. Потому что даже если один умный контракт не может прочитать данные другого, эти данные все еще хранятся на каждом узле в цепочке. Для каждого участника блокчейна он находится в памяти или на диске система, которую этот участник полностью контролирует, И ничто не мешает им читать информацию из собственной системы, если и когда они захотят это сделать.
Скрытие данных в смарт-контракте примерно так же безопасно, как и их скрытие в HTML-коде веб-страницы. Конечно, обычные веб-пользователи не увидят его, потому что он не отображается в окне браузера. Но все, что требуется, это добавить в веб-браузер функцию «Просмотр источника» (как они все имеют), и скрытая информация становится универсально видимой. Точно так же, для данных, скрытых в интеллектуальных контрактах, все, что нужно, - это чтобы кто-то изменил свое программное обеспечение блокчейна, чтобы отобразить полное состояние контракта, и все подобие секретности будет потеряно. Приличный программист может сделать это за час или около того.
Для чего нужны умные контракты
С таким количеством вещей, которые умные контракты не могут сделать, можно спросить, для чего они на самом деле. Но чтобы ответить на этот вопрос, нам необходимо вернуться к основам самих блокчейнов. Напомним, что блокчейн позволяет напрямую и безопасно совместно использовать базу данных субъектам, которые не доверяют друг другу, без необходимости в центральном администраторе. Блокчейны обеспечивают дезинтермедиацию данных, что может привести к значительной экономии сложности и стоимости.
Любая база данных модифицируется с помощью «транзакций», которые содержат набор изменений в этой базе данных, которые должны завершиться успешно или потерпеть неудачу в целом. Например, в бухгалтерской книге платеж от Алисы к Бобу представлен транзакцией, которая (а) проверяет, достаточно ли у Алисы средств, (б) вычитает сумму со счета Алисы и (в) добавляет такое же количество к счету Боба. ,
В обычной централизованной базе данных эти транзакции создаются одним доверенным органом. В общей базе данных, управляемой блокчейном, транзакции могут создавать любые пользователи этой блокчейна. И поскольку эти пользователи не полностью доверяют друг другу, база данных должна содержать правила, которые ограничивают выполняемые транзакции. Например, в одноранговой финансовой книге каждая транзакция должна сохранять общее количество средств, в противном случае участники могут свободно отдавать себе столько денег, сколько им нравится.
Можно представить различные способы выражения этих правил, но на данный момент есть две доминирующие парадигмы, вдохновленные биткойнами и эфириумом соответственно. Метод Биткойн, который мы могли бы назвать «ограничениями транзакций», оценивает каждую транзакцию с точки зрения: (a) записей базы данных, удаленных этой транзакцией, и (b) созданных записей. В бухгалтерской книге правило гласит, что общее количество средств в удаленных записях должно совпадать с общим количеством созданных. (Мы считаем, что изменение существующей записи эквивалентно удалению этой записи и созданию новой вместо нее.)
Вторая парадигма, которая исходит от Ethereum, это умные контракты. В нем говорится, что все модификации данных контракта должны выполняться его кодом. (В контексте традиционных баз данных мы можем думать об этом как о исполнение хранимая процедура.) Чтобы изменить данные контракта, пользователи блокчейна отправляют Запросы к его коду, который определяет, выполнять ли эти запросы и как. Как в этот примеринтеллектуальный контракт для финансовой книги выполняет те же три задачи, что и администратор централизованной базы данных: проверка наличия достаточных средств, вычитание с одного счета и добавление к другому.
Обе эти парадигмы эффективны, и у каждой есть свои преимущества и недостатки, как я подробно обсуждалось ранее, Подводя итог, можно сказать, что ограничения транзакций в стиле Биткойн обеспечивают превосходный параллелизм и производительность, а интеллектуальные контракты в стиле Эфириума обеспечивают большую гибкость. Итак, вернемся к вопросу о том, для чего нужны умные контракты:
Интеллектуальные контракты предназначены для случаев использования блокчейна, которые не могут быть реализованы с ограничениями транзакций.
Учитывая этот критерий для использования умных контрактов, мне еще предстоит увидеть убедительный пример использования разрешенных блокчейнов, который квалифицируется. Все известные мне блокчейн-приложения могут быть реализованы с помощью транзакций в стиле Биткойн, которые могут обрабатывать разрешения и общее хранение данных, а также создавать активы, передавать, хранить, обмениваться и уничтожать. Тем не менее, новые варианты использования все еще появляются, и я не удивлюсь, если некоторые do требуют силы умных контрактов. Или, по крайней мере, расширение парадигмы биткойнов.
Каким бы ни был ответ, ключом для запоминания является то, что умные контракты - это просто один из способов ограничения транзакций, выполняемых в базе данных. Это, несомненно, полезная вещь, и она необходима для обеспечения безопасности этой базы данных для совместного использования. Но умные контракты не могут делать ничего другого, и они, конечно, не могут выйти за границы базы данных, в которой они находятся.
Пожалуйста, оставьте любые комментарии в LinkedIn.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://www.multichain.com/blog/2016/04/beware-impossible-smart-contract/
- :имеет
- :является
- :нет
- $UP
- a
- О нас
- об этом
- доступ
- Учетная запись
- действия
- деятельность
- на самом деле
- Добавить
- добавить
- Добавляет
- Преимущества
- После
- снова
- решено
- сельскохозяйственное
- Алиса
- Все
- вдоль
- причислены
- всегда
- an
- и
- Другой
- ответ
- любой
- все
- API
- появляется
- Приложения
- соответствующий
- надлежащим образом
- МЫ
- AS
- спросить
- активы
- At
- привлекательный
- власть
- автоматизировать
- автоматически
- автоматизация
- автономный
- доступен
- избегающий
- b
- назад
- Банка
- Банки
- основанный
- BE
- бить
- , так как:
- становиться
- становится
- было
- до
- начинать
- поведение
- между
- берегись
- Крупнейшая
- Bitcoin
- биткойн и эфирум
- Заблокировать
- блокчейн
- блокчейн-приложения
- блокчейн платформа
- блокчейн транзакции
- Примеры использования блокчейна
- блокчейны
- зерно
- связь
- изоферменты печени
- Границы
- Сломанный
- браузер
- строить
- Строительство
- но
- by
- C + +
- призывают
- под названием
- вызова
- Объявления
- CAN
- не могу
- случаев
- случаев
- Наличный расчёт
- Причинение
- центральный
- централизованная
- определенный
- конечно
- цепь
- вызов
- изменение
- изменения
- контроль
- Проверки
- Выберите
- код
- как
- выходит
- Комментарии
- Общий
- обычно
- Компании
- неотразимый
- полностью
- сложность
- вычисление
- Проводить
- конфиденциальность
- связи
- Консенсус
- Рассматривать
- ограничения
- содержать
- содержит
- контекст
- контракт
- контрактов
- контраст
- контроль
- контроль
- удобство
- Цена
- может
- купон
- курс
- сумасшедший
- создали
- создает
- Создающий
- создание
- данным
- хранение данных
- База данных
- базы данных
- децентрализованная
- По умолчанию
- в зависимости
- развертывание
- глубина
- определяет
- застройщиков
- Различия
- различный
- Трудность
- непосредственно
- Дисплей
- отображается
- do
- приносит
- дело
- доминирующий
- сделанный
- мечты
- каждый
- Эффективный
- затрат
- или
- еще
- включить
- позволяет
- достаточно
- Весь
- полностью
- лиц
- организация
- запись
- Эквивалент
- бежать
- условное депонирование
- существенный
- Эфириума
- Даже
- События
- События
- НИКОГДА
- Каждая
- многое
- пример
- Примеры
- обмена
- выполненный
- проведение
- существующий
- ожидания
- опыт
- расширение
- и, что лучший способ
- факт
- завод
- FAIL
- далеко
- выполнимый
- финансы
- финансовый
- Найдите
- Во-первых,
- Трансформируемость
- Что касается
- найденный
- Год основания
- свободно
- от
- Выполнять
- полный
- полностью
- функция
- принципиально
- Основы
- средства
- Общие
- Общие данные
- получить
- Дайте
- данный
- Go
- цель
- идет
- будет
- большой
- гарантия
- гарантированный
- Hair
- обрабатывать
- происходит
- Есть
- слышать
- тяжелый
- Герой
- помощь
- Скрытый
- честный
- час
- Как
- How To
- HTML
- HTTP
- HTTPS
- Сотни
- i
- идея
- идеи
- идентичный
- идентифицированный
- if
- воображение
- картина
- представить
- немедленно
- в XNUMX году
- что она
- in
- В других
- самостоятельно
- информация
- инициировать
- инициирование
- внутри
- вдохновленный
- вместо
- страхование
- Умный
- взаимодействие
- взаимодействие
- взаимодействует
- в
- инвестор
- Выпущен
- эмитент
- IT
- ЕГО
- Java
- всего
- только один
- Основные
- Знать
- Отсутствие
- Языки
- большой
- новее
- вести
- ведущий
- наименее
- Ledger
- легкий
- такое как
- недостатки
- жить
- Живет
- потерянный
- серия
- сделать
- Создание
- неисправности
- управлять
- управление
- руководство
- многих
- Совпадение
- смысл
- означает
- механизмы
- Память
- метод
- может быть
- зеркало
- неправильные представления
- смягчающим
- изменения
- модифицировало
- изменять
- момент
- деньги
- Денежные переводы
- Мониторы
- Месяц
- месяцев
- БОЛЕЕ
- самых
- много
- мультицепь
- должен
- имя
- Необходимость
- потребности
- Новые
- 9
- нет
- узел
- узлы
- Ничто
- ничего
- сейчас
- наблюдения
- Очевидный
- of
- от
- предлагают
- on
- В сети
- ONE
- только
- Операционный отдел
- or
- оракул
- заказ
- Другое
- в противном случае
- наши
- себя
- внешний
- Результат
- внешнюю
- за
- раздутый
- собственный
- страница
- парадигма
- парадигмы
- участник
- новыми участниками
- особый
- Стороны
- пассивный
- Пароль
- мимо
- путь
- ОПЛАТИТЬ
- оплата
- платежи
- страна
- пиринговых
- Люди
- народный
- выполнять
- производительность
- выполнены
- выполняет
- возможно
- Разрешенные
- перспектива
- PHP
- кусок
- стан
- Часть
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- играет
- Точка
- политика
- Популярное
- возможное
- возможно
- После
- мощностью
- разрабатывает
- цена
- принцип
- вероятно
- Проблема
- проблемам
- процедуры
- процесс
- Процессы
- обработка
- производительный
- Программист
- свойства
- рассматривается
- предложило
- происхождение
- обеспечивать
- приводит
- цель
- Питон
- количество
- вопрос
- вполне
- радикальный
- Rage
- повышение
- поднятый
- Обменный курс
- скорее
- доходит до
- Читать
- Reading
- реальные
- реальный мир
- Реальность
- на самом деле
- резюме
- Получать
- получила
- учет
- регулярный
- помнить
- НЕОДНОКРАТНО
- отчету
- представленный
- Запросы
- требовать
- Полезные ресурсы
- соответственно
- ответ
- ответ
- ответственный
- ограничивать
- ограниченный
- ограничение
- результат
- возвращают
- Ездить
- правую
- Снижение
- рискованный
- Дорожная карта
- Роли
- Правило
- условиями,
- Run
- работает
- безопасный
- безопасно
- то же
- экономия
- Во-вторых
- безопасный
- посмотреть
- кажется
- Отправить
- старший
- смысл
- обслуживание
- набор
- настройки
- общие
- разделение
- должен
- значительный
- аналогичный
- Аналогичным образом
- просто
- простота
- просто
- одновременно
- с
- одинарной
- умный
- умный контракт
- Смарт-контракты
- So
- Software
- РЕШАТЬ
- решить
- Решение
- некоторые
- Кто-то
- удалось
- иногда
- в некотором роде
- Источник
- тратить
- SQL
- Начало
- Область
- Области
- По-прежнему
- Stop
- диск
- хранить
- простой
- стратегий
- сильные
- сильный
- быть успешными
- успешный
- такие
- Страдает
- достаточный
- суммировать
- топ
- Убедитесь
- сюрприз
- удивлен
- система
- взять
- принимает
- с
- Говорить
- говорить
- задачи
- технически
- Технологии
- 10
- Тенденцию
- срок
- terms
- чем
- который
- Ассоциация
- информация
- Источник
- мир
- их
- Их
- сами
- тогда
- Там.
- следовательно
- Эти
- они
- задача
- вещи
- think
- этой
- те
- три
- время
- раз
- в
- вместе
- инструменты
- Всего
- традиционный
- сделка
- Сделки
- перевод
- переводы
- Прозрачность
- путешествовать
- срабатывает
- по-настоящему
- Доверие
- надежных
- Получается
- два
- под
- понимать
- несомненно
- К сожалению
- универсально
- до
- использование
- прецедент
- используемый
- пользователей
- через
- различный
- очень
- с помощью
- Видео
- видимый
- ждет
- хотеть
- стремятся
- законопроект
- Смотреть
- Путь..
- способы
- we
- Погода
- Web
- веб-браузер
- Вебсайт
- ЧТО Ж
- Что
- когда
- будь то
- , которые
- в то время как
- КТО
- все
- зачем
- Википедия.
- Дикий
- будете
- окно
- без
- слова
- Работа
- работает
- Мир
- хуже
- записывать
- письмо
- письменный
- Неправильно
- еще
- являетесь
- ВАШЕ
- зефирнет