Контракты Ethereum Oracle: можем ли мы доверять Oracle?

Опубликовано: 2022-03-11

Эта статья является заключительной частью серии из трех частей об использовании контрактов оракула Ethereum.

  • Первая часть была введением в настройку, запуск и тестирование кода с помощью трюфельного фреймворка.
  • Во второй части мы немного рассмотрели код и использовали его в качестве отправной точки для обсуждения некоторых особенностей кода и дизайна Solidity.

Теперь, в этой заключительной части, я хотел бы задать вопросы: что мы только что сделали и почему? И постарайтесь предоставить некоторые, надеюсь, наводящие на размышления пути размышлений. Присяжные все еще очень далеки от того, как использование оракулов связано с отсутствием доверия, и что на самом деле означает слово «недоверие» в отношении блокчейна в реальном мире. Когда мы перенесем некоторые из этих идей из их концептуальной формы в практическое применение, мы будем вынуждены бороться и приходить к соглашению с подобными вопросами. Итак, начнем.

Резюме: зачем нам нужен оракул Ethereum?

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

Для большинства программистов этот факт вводит очень неестественный способ мышления. Если нам откуда-то нужны данные, обычно мы просто подключаемся к этому месту и извлекаем их. Смарт-контракт, которому нужны данные прогноза погоды? Просто подключитесь к каналу погоды. Но нет; смарт-контракт на блокчейне абсолютно не может этого сделать; если каких-то данных еще нет в блокчейне, код контракта не имеет к ним доступа в момент исполнения. Таким образом, решение состоит в том, чтобы уже иметь необходимые данные в блокчейне во время выполнения контракта. Для этого требуется внешний механизм, который вместо того, чтобы втягивать данные в цепочку, проталкивает данные в цепочку, специально для использования другими контрактами. Этот внешний механизм — оракул. Данные, передаваемые в цепочку, помещаются в контракт оракула, который затем, предположительно, предусматривает их совместное использование с другими контрактами. Пример такой установки — это именно то, что мы построили и рассмотрели в предыдущих двух частях этой трилогии статей.

Иллюстрация оракула Ethereum

Вопиющие дыры в безопасности

Для меня центральная проблема, связанная со всем публичным блокчейном, — это слово на букву «Т»: доверие. В чистом виде эти системы делают все возможное, чтобы гарантировать (в этом мире невозможна полная гарантия, но как можно более близкая), что нам не нужно слепо доверять каким-либо сторонам. Проницательный читатель, возможно, уже усомнился в некоторых вопиющих дырах в безопасности в примере со ставками на бокс. Я хотел бы сосредоточиться на тех, которые будут наиболее важны для нашего обсуждения недоверия и того, как оно связано с использованием оракулов со смарт-контрактами.

1. Владелец/держатель букмекерского контракта может быть коррумпирован.

Начиная со строки 58 BoxingBets.sol у нас есть следующая функция:

 /// @notice sets the address of the boxing oracle contract to use /// @dev setting a wrong address may result in false return value, or error /// @param _oracleAddress the address of the boxing oracle /// @return true if connection to the new oracle address was successful function setOracleAddress(address _oracleAddress) external onlyOwner returns (bool) { boxingOracleAddr = _oracleAddress; boxingOracle = OracleInterface(boxingOracleAddr); return boxingOracle.testConnection(); }

Должно быть довольно ясно, что это позволяет. Владелец контракта (и только владелец контракта) может в любое время и без каких-либо ограничений изменить оракула, который используется для обслуживания боксерских поединков, и определить победителей. Почему это проблема? Если это еще не очевидно для вас, это позволяет владельцу контракта намеренно злоупотреблять контрактом для собственной выгоды.

Пример: Ближайший боксерский поединок — Сода Попински против Гласса Джо. Газировка — явный фаворит с большим отрывом. Все делают ставку на газировку. Куча денег на нем. Я, владелец контракта, решаю тянуть быстро. Непосредственно перед тем, как исход матча будет решен, я меняю оракула на своего собственного вредоносного оракула, который идентичен официальному оракулу, за исключением того, что он жестко закодирован, чтобы объявить Гласса Джо победителем. Он заявляет, что Гласс Джо зарабатывает все деньги, и никто не может меня остановить. После этого, может быть, никто больше не будет доверять моему контракту, но, допустим, мне все равно; может быть, я написал и опубликовал контракт только для того, чтобы провернуть это ограбление.

Какие есть альтернативы?

1. Не позволяйте изменять оракула

Проблема, которую мы определили выше, возникает из-за того, что мы позволяем владельцу контракта изменять оракула. Итак, предположим, мы просто жестко закодировали адрес оракула и вообще не позволяем его изменять? Ну, мы на самом деле можем сделать это, это не исключено. Но тогда возникает вопрос, а что, если этот оракул перестанет предоставлять данные по какой-либо причине? Тогда нам понадобится новый оракул. Или что, если этот оракул, которому изначально доверяли, окажется коррумпированным и ему больше не доверяют? Опять же, мы хотим перейти на новый оракул. Если мы жестко закодировали оракул, то единственный способ изменить оракул — выпустить новый контракт, использующий другой оракул. Хорошо, опять же, мы можем сделать это. Это не исключено. Обратите внимание, конечно, что смарт-контракты не могут быть легко обновлены так же легко, как, скажем, веб-сайт. Разве это не было бы легко? Если вы заметили ошибку или дыру в системе безопасности, вы просто исправляете ее, и никто не узнает об этом. Модель развертывания смарт-контрактов немного ближе к модели программного обеспечения в термоусадочной упаковке; как только программное обеспечение оказывается в руках пользователя, оно там, и вы не можете его исправить. Вы должны предложить пользователю обновить себя вручную. Смарт-контракты немного похожи. Как только этот контракт находится в блокчейне, он становится неизменным, как и остальная часть блокчейна, за исключением тех частей, где вы написали логику, чтобы сделать его изменяемым.

Однако это не обязательно блокировщик; сейчас существует множество моделей и направлений мысли о том, как сделать смарт-контракт модифицируемым. Эта тема сама по себе могла бы стать достойной статьей, но пока вы можете ознакомиться с этой статьей на Hackernoon, а также с этой статьей о стратегиях смарт-контрактов.

Как это будет выглядеть с точки зрения пользователя? Допустим, я рассматриваю возможность сделать ставку на предстоящий матч «Дон Фламенко». Я ясно вижу, что контракт несложно жестко закодировал оракула, которого я уже знаю и которому доверяю (ну, достаточно доверяю, чтобы сделать ставку определенного размера). Итак, это все. Довольно просто. Если владелец контракта выпускает новую версию контракта с новым оракулом, я все еще (должен) иметь право продолжать использовать старый. Ну, может быть. Это зависит от того, как было выполнено обновление. Если контракт был отключен или уничтожен, мне может не повезти. Но в ванильном корпусе он все равно должен стоять.

2. Заблокируйте оракула на время

Мы можем добавить некоторое усложнение в код (на самом деле нежелательно, чтобы пример был слишком сложным, но для реального решения нам может понадобиться преимущество, которое приносит эта сложность), чтобы смягчить махинации, подобные описанной выше. Я думаю, что очень разумно было бы добавить код, который бы «запирал» оракула на время ставки. Иными словами, логика контракта может гарантировать очень ясным и простым способом, что любой оракул, который присутствовал, когда я делал ставку, должен быть тем же самым оракулом, который использовался для определения победителя. Так что, даже если оракул тем временем изменится, для других матчей, для моего матча и для моей ставки он должен оставаться все время одним и тем же. Это идет рука об руку с предоставлением пользователю возможности узнать, кто такой оракул.

Давайте рассмотрим быстрый пример, чтобы проиллюстрировать это. Я пользователь. Я подумываю сделать ставку на предстоящий бой с Литтл Маком. В контракте есть возможность проверить оракула, который будет использован для определения победителя этого матча. Я подтверждаю, что контракт является известным контрактом, представленным Nintendo Sports. Я чувствую себя достаточно уверенно в этом оракуле. (Чтобы добавить немного больше сложности, возможно, контракт позволяет пользователям выбирать из множества доступных оракулов для данного совпадения). Теперь я могу проверить код оракула и убедиться, что логика оракула гарантирует, что тот же самый оракул будет использоваться для определения исхода матча. Так что у меня, как у игрока, есть по крайней мере такая уверенность. Это не исключает того факта, что мой оракул может быть плохим (то есть поврежденным или ненадежным), но, по крайней мере, гарантирует мне, что его нельзя изменить в фоновом режиме.

Риск здесь будет заключаться в том, что оракул выйдет из строя (перестанет поддерживаться или обновляться) между моментом, когда я размещаю ставку, и моментом, когда определяется матч. Деньги могут быть заперты в контракте и стать невозвратными. Для этого мы могли бы (возможно) включить в контракт пункт, активируемый временем, в котором, если матч не определен к определенному времени или дате (может быть частью определения матча), он считается «мертвым», и все деньги заблокированы внутри возвращается игрокам.

3. Пусть оракул определяется пользователем

Еще более сложным (но, возможно, более интересным) было бы оставить адрес оракула «пустым», в некотором смысле, чтобы позволить пользователям указывать свои собственные оракулы и формировать свои собственные пулы ставок (посредством контракта) вокруг этих оракулов. Группы пользователей, использующих один и тот же оракул, могут делать ставки вместе, следуя логике контракта. Это возлагает на пользователя обязанность выбрать оракула, которому он доверяет, и поделиться этим оракулом с другими пользователями-единомышленниками. По сути, это фрагментирует сообщество ставок, поэтому оно будет работать только при наличии большой базы пользователей; в противном случае было бы слишком мало игроков, чтобы делать ставки действительно интересными и прибыльными. Если я единственный, кто делает ставки с моим любимым оракулом, в этом нет большого стимула! Но, с другой стороны, он берет на себя ответственность за выбор надежного оракула от владельца контракта, и он может умыть руки в этом. Если некоторые пользователи сочтут оракул ненадежным, они просто перестанут его использовать и перейдут на другой, и никто не будет злиться на владельца контракта. Он просто предоставил площадку для ставок и с честью выполнил свою службу.

Усложняет эту стратегию тот факт, что нам нужно каким-то образом позволить органической группе оракулов «вырасти» в дикой природе, и именно они соответствуют этому решению. Нам пришлось бы сообщить миру точный интерфейс, которого должны придерживаться потенциальные оракулы, и надеяться, что их появится достаточно приличное количество, чтобы действительно предоставить пользователю какой-то выбор. Может быть, мы могли бы пополнить партию одним или двумя своими собственными. Если не возьмут, то у нас нет DApp для ставок. Но если это так, я должен признать, что идея органически выращенных оракулов, выбранных пользователями в дикой природе, является интересным и привлекательным решением.

2. Владелец/сопровождающий оракула может быть коррумпирован

Коррумпированный, то есть в смысле ненадежный; что владелец/сопровождающий/менеджер оракула, вероятно, объявит неверный исход матча, чтобы обогатиться.

Пример: я являюсь владельцем/сопровождающим фактического оракула, который передает данные бокса в блокчейн для использования в контракте ставок. Мой оракул не принимает непосредственного участия ни в размещении ставок, ни в управлении ставками. Его работа состоит в том, чтобы просто предоставить данные, которые может использовать контракт на ставки (и, возможно, любое количество других контрактов). Тем не менее, я могу лично разместить ставку, используя договор о ставках, который, в свою очередь, использует мой оракул; Я в любом случае анонимен, поэтому не боюсь возмездия. Как только я сделал ставку на такой контракт, возникает явный конфликт интересов. В частности, честность, с которой я обновляю свой оракул достоверной и точной информацией, может противоречить моим действиям по ставкам.

Итак, допустим, что в предстоящем матче Песочного человека и фон Кайзера, в котором фон Кайзер в значительной степени является аутсайдером, я делаю крупную ставку на фон Кайзера. Когда фон Кайзер проигрывает, как и ожидалось, я использую свой оракул, чтобы вместо этого ложно объявить его победителем! Контракт пари исполняется как надо (на данный момент его никак не остановить), я выигрываю на матче, нет никакого права регресса и никакого способа наказать меня, и жизнь продолжается. Возможно, после этого люди больше не будут пользоваться моим оракулом; возможно, мне все равно.

Как мы можем предотвратить это?

Теперь мы подошли к гораздо более серьезному вопросу, который затрагивает самую суть так называемого недоверия в отношении оракулов. Оракулу доверяют как нейтральному третьему лицу или даже доверенному третьему лицу. Проблема в том, что оракулом управляют люди. Еще одна проблема заключается в том, что оракул осуществляет большой контроль над тем, как клиентский контракт выполняет свои обязанности, поскольку он предоставляет данные, на которых действует контракт. Откуда мы можем знать, что можем доверять данному оракулу?

Почему мы должны доверять любому оракулу?

Если вся идея смарт-контрактов на блокчейне состоит в том, чтобы устранить необходимость кому-либо доверять, то не является ли тот факт, что мы должны «доверять» оракулу, противоречащим недоверию? Ну, я бы сказал: пора взрослеть, сынок (или дочка)! Не существует такой вещи, как чистая безнадежность, и блокчейн не обеспечивает безнадежной среды. Блокчейн — это слой, облегчающий взаимодействие между людьми. Человеческие взаимодействия по-прежнему являются ядром или конечным результатом, а человеческие взаимодействия не могут быть ненадежными.

Ссылка: Проблема с оракулом

Эволюция доверия

На заре времен, как я мог доверять другому человеку? Предположим, я охочусь на мамонта, и этот парень говорит, что поможет мне охотиться на мамонта в обмен на половину мяса? Как он может быть уверен, что я дам половину? Как я могу быть уверен, что он не ударит меня по голове и не заберет мамонта целиком, как только охота закончится?

В те времена угроза насилия, вероятно, лежала в основе многих видов социально-экономического доверия. Если я попытаюсь украсть долю этого парня, я уверен, что он попытается напасть на меня, а это подвергает меня риску. Даже если я уверен, что выиграю с ним бой, я (как пещерный человек) знаю о боях достаточно, чтобы знать, что может случиться все, что угодно, и я легко могу получить опасную для жизни травму, даже если технически выиграю. Это всегда риск и вложение энергии. В том мире этого могло быть достаточно, чтобы люди оставались честными.

В общем, я не буду жульничать, потому что это не в моих интересах , в общем и целом, это делать. Другими словами, ожидаемый результат обмана меньше, чем ожидаемый результат сотрудничества.

Если это не так или если актеры поймут, что это не так, возможно, один или несколько человек просто предпочтут не участвовать. Например, если я увижу, что другой парень — 9-футовый великан с рогами и чудовищными зубами, я могу просто убежать и не заключать никаких сделок; этот парень выглядит слишком опасным для меня, чтобы иметь с ним дело, он может просто безнаказанно украсть то, что ему нравится. Если мы примерно одинаково подобраны, то мы понимаем, что находимся в ситуации, в которой ни одна из сторон не заинтересована в обмане, а в наших интересах сотрудничать, и поэтому, предполагая, что обе стороны в здравом уме и разумны, обе стороны будут сотрудничать.

Контракты Oracle и эволюция доверия

По мере развития культуры развивались и человеческие отношения. Они стали менее жестокими, хотя неявная угроза применения силы не исчезла. Культурные нравы давали людям больший стимул к сотрудничеству и различные виды сдерживающих факторов для обмана.

Перенесемся во времена ранней цивилизации; Я заключаю сделку, чтобы купить 100 бушелей пшеницы. Это своего рода примитивный фьючерсный контракт; Я плачу сегодня за зерно, которое я получу, когда оно будет собрано в следующем месяце. Я отдаю парню свою медную монету, мы обмениваемся рукопожатием, выпиваем ячменного пива и расходимся до следующего месяца для заключения контракта. Кажется, все в порядке.

Я отдал себя на милость этого парня; у него есть вся сумма моих денег, а у меня пока ничего нет. Так что же вселяет в меня уверенность, что он выполнит контракт? Несколько вещей. Он бизнесмен; он регулярно ведет дела с местным населением. Он вел дела с людьми, которых я знаю, и всегда доставлял добро и вовремя. Он имеет репутацию честного человека. Кроме того, я знаю, что у него есть сдерживающий фактор для обмана. Он зарабатывает на жизнь в основном тем, что известен как честный торговец. Если бы он обманул меня, я бы сообщил всем, и это нанесло бы ущерб его доброй репутации, а значит, и его бизнесу. Сумма денег, которую он зарабатывает на обмане меня, будет небольшой по сравнению с будущей суммой, которую он мог бы не заработать, если бы его клиентская база отказалась от него. Так что я знаю, что обманывать меня не обязательно в его интересах.

Это здорово; угроза силы или насилия отсутствует на этой картинке выше. За исключением двух вещей:

  1. Угроза силой не полностью отсутствует. Еще одним препятствием для измены может быть мысль о том, что сделает обманутый парень. У меня есть оружие и верные мне друзья. Я, как разгневанная обманутая сторона, мог прибегнуть к силе. Вот так и начинаются клановые войны!
  2. Также может существовать какая-то система управления, которая оценит детали дела и, возможно, оштрафует торговца или посадит его в тюрьму. Ваше стандартное средство сдерживания, поддерживаемое правительством, всегда подкрепляется угрозой применения силы, потому что основным наказанием за отказ платить штраф, отказ попасть в тюрьму, отказ соблюдать все меры является, в конечном счете, применение силы. И это сохраняется до наших дней. Если я откажусь платить штраф, меня могут арестовать. Если я откажусь быть арестованным, ко мне будет применена сила, и меня могут посадить в тюрьму против моей воли или даже убить (если мое сопротивление будет достаточно упорным). Там мы видим угрозу силой всего в двух шагах, даже за незначительное нарушение!

Децентрализованный траст сегодня

Перенесемся в сегодняшний день. Что является препятствием для разрыва контракта? Сильно ли они отличаются от предыдущего сценария?

Компания X имеет скидку на покупку этого продукта по почте. Почему вы верите, что они справятся с этим? То же, что и в предыдущем примере; компания мало что выиграет, обманув небольшую сумму, и многое потеряет, нанеся ущерб своей репутации. Это лежит в основе многих сценариев доверия и существует уже долгое время. И опять же, как в примере с торговцем зерном, есть угроза силой, хотя в данном случае до этого не дойдет. Компания может быть оштрафована или наказана коллективным иском, и компания должна заплатить штраф или понести более суровые наказания. Эти наказания поддерживаются правительством, которое, в свою очередь, поддерживается угрозой применения силы, как экономической, так и военной, хотя мы могли бы предположить, что угроза экономической силой, в свою очередь, поддерживается военной силой, т. е. насилием.

Традиционные системы

Модель контрактов, подкрепленных санкционированным правительством применением силы, хорошо служила человечеству на протяжении тысячелетий? Или имеет? Ну, так оно и есть, но это естественный прогресс. В отсутствие правительства группы людей формируют правительства. Кажется, что вы не можете помешать людям формировать правительства; они сформируются.

Итак, как насчет смарт-контрактов на блокчейне? Как блокчейн и модель смарт-контрактов обеспечивают надежность или препятствуют мошенничеству? Не говорите просто «ненадежность», это не ответ! В наших предыдущих примерах мошенничество каким-то образом не поощряется.

Давайте подробнее рассмотрим, как блокчейн выполняет (или заменяет) эту функцию.

Блокчейн-системы: Биткойн

Чтобы разбить этот большой вопрос на более мелкие, давайте начнем с биткойна. Как биткойн препятствует мошенничеству? Я могу запускать любое программное обеспечение биткойн-узла, какое захочу, если оно соответствует протоколам сети биткойн. Никто не отговаривает меня от запуска собственной самодельной биткойн-узлы, которая делает то, что хочет, придерживаясь сетевых протоколов; есть ли способ, которым я могу использовать это для незаконной выгоды?

Конечно, я могу опубликовать любые транзакции в сети биткойнов для одобрения. Я могу запустить транзакцию, которая отправит мне все ваши биткойны, выпустить их в сеть, подождать, пока они будут добавлены в блок, и вау, теперь все ваши биткойны принадлежат мне ? Нет, из-за шифрования.

У меня нет вашего закрытого ключа, и такая транзакция должна быть подписана вашим закрытым ключом. Так вот, я заблокирован там криптографией. Или я? Кто сказал, что такая сделка должна быть подписана? Что будет, если я попробую? Конечно, произойдет то, что вся биткойн-сеть отклонит мою транзакцию. Зачем кому-то это принимать? Помимо того факта, что все они работают со стандартными узлами, которые сразу отвергнут его, зачем им помогать мне обманывать? Это, безусловно, подорвет целостность сети биткойнов и тем самым подорвет их собственное крипто-богатство. Так что им нет смысла помогать мне, анонимному незнакомцу, обмануть другого анонимного незнакомца. Даже если один иррациональный субъект каким-то образом примет мою недействительную транзакцию, подавляющее большинство биткойн-сети отклонит ее, и у нее нет шансов. Он снова побежден, на этот раз просто числом.

Что если, однако, я являюсь мощной горнодобывающей компанией? Несомненно, теперь у меня больше возможностей придумывать что-то в свою пользу. Да, но это все еще не дает мне ничего близкого к абсолютной власти. Даже будучи мощным майнером, если я контролирую менее 50% сети, я мало что могу сделать. У меня есть некоторая власть выбирать порядок, в котором транзакции добавляются в блоки, но вряд ли у меня есть возможность чеканить или красть монеты. Даже если я контролирую более 50% сети (при условии, что читатель знает об известной атаке 51% в отношении доказательства работы, как в случае с биткойнами), моя основная сила будет заключаться в двойных тратах. Хотя это своего рода крутая сила, очень сомнительно, будет ли это в моих интересах, поскольку это подорвет целостность биткойна. Кажется вероятным, что мне лучше использовать свой контроль, чтобы добывать все монеты, таким образом зарабатывая больше денег и поддерживая почву, на которой стоит это богатство. Таким образом, я не побежден, но мой порыв к жульничеству сдерживается сдерживающим фактором, органически встроенным в протокол. И этот сдерживающий фактор в основном поддерживается силой чисел; подавляющее большинство участников сети биткойн.

Смарт-контракты блокчейна и контракты Oracle

Что такое смарт-контракты? Предположим, я развернул вводящий в заблуждение контракт, чтобы заставить людей прислать мне свои деньги? Или предположим, что я развернул букмекерский контракт и использовал одну из атак (если их можно так назвать), описанных ранее? Я могу это сделать, это может одурачить некоторых людей; Я, как нечестный актер, мог бы получить небольшую прибыль от такого предприятия. Защита от этого заключается в том, чтобы каждый участник тщательно обдумал (как это следует делать с любым договором) договор, стороной которого он собирается стать, и возможные способы злоупотребления им. Они также должны учитывать источник — что они знают о стороне, которая публикует и поддерживает контракт, и любых связанных оракулах или связанных контрактах. Можно было бы надеяться, что нечестный контракт не продлится долго, прежде чем сеть неофициально пометит его как нечестный, что заставит участников добровольно избегать его, отключив его. Сеть большая, и информация распространяется быстро.

За исключением того, что в какой-то момент вам все равно нужно доверять человеку. Данные для букмекерского контракта предоставляет оракул. Оракул поддерживается человеком. Независимо от того, сколько слоев вы добавляете, пытаясь сохранить честность сети, в какой-то момент она все равно возвращается к человеку. Итак, какому типу оракула вы бы доверяли, учитывая наш пример со ставками? Я бы доверился оракулу, который может больше потерять, чем выиграть, обманывая. Пример: представьте, что ESPN или подобная сеть были спонсорами оракула. Вы ожидаете, что они, как никто другой, предоставят честные данные, поскольку незаконный выигрыш небольшой суммы в боксерском пари будет омрачен последующей потерей репутации. В этом случае ваше доверие оправдано по той же причине, по которой мы доверяем честному торговцу зерном. Этот тип трастового соглашения является древним и хорошо зарекомендовавшим себя.

Итак, что мы получили от использования смарт-контрактов? Чем смарт-контракты отличаются от управления или предыдущих методов соблюдения контрактов?

Подведение итогов

Просто чтобы подчеркнуть, дать пищу для размышлений и дискуссий, а также завершить статью, я собираюсь представить несколько простых наблюдений вместо жестких выводов. Потому что для темы такой сложности краткий вывод кажется своего рода простой историей и чрезмерным упрощением. Наблюдения, которые я собираюсь высказать (и, пожалуйста, не стесняйтесь обсуждать/опровергать/противоречить им), таковы:

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

Я призываю коллег-разработчиков Ethereum сделать две вещи:

  1. Как ни крути, в системах общедоступных блокчейнов (таких как биткойн или эфириум), в которых что-либо навязывается посредством скрытой или явной угрозы применения силы.
  2. Подумайте о любой крупной системе правил в современном договорном или финансовом праве, которая каким -либо образом не обеспечивается ни явной, ни скрытой угрозой применения силы.

Иллюстрация эволюции доверия и государственной власти

Что-то старое, что-то новое

И я думаю, что здесь мы подошли к главному отличию и, действительно, к истинной причине, по которой мы говорим, что системы блокчейна являются «революционными» по сравнению с системами прошлого. На мой взгляд, это вовсе не недоверие, а скорее более стабильная платформа для доверия и, что особенно важно, такая, которая вообще не зависит от угрозы силы или насилия.

С одной стороны, у нас есть старая и проверенная временем гарантия взаимной выгоды в ситуациях, когда нет стимула для обмана. Ничего нового. Что нового, так это введение консенсуса с помощью шифрования, который помогает предотвратить мошенничество и сохранить честность системы. И синтез этих двух элементов дал нечто поистине замечательное, возможное впервые в истории человечества: систему, пригодную для использования большими анонимными группами, в которой нигде не встречается явная или неявная угроза применения силы в качестве сдерживающего фактора или наказания. . И это, я считаю, то, что действительно удивительно. Если этот аспект упустить из виду, то у нас есть отличная новая технология (которая, я признаю, и так достаточно крутая). Но если принять во внимание этот аспект, становится очевидным, что мы вступили в новую эру управления.