Что такое оракул?
Что не совсем соответствует этому несколько «очевидному» названию, так это то, что оракул блокчейна — это сторонний источник информации, единственная функция которого — предоставлять данные в блокчейн, что позволяет создавать смарт-контракты.
По сути, смарт-контракт — это просто самоисполняющийся код. Смарт-контракт оценивает поступающие данные от оракула и инициирует выполнение на основе полученной информации.
Давайте возьмем пример: скажем, Джон и Джон делают ставку на цену биткойна в эту субботу. Чжан Сан считает, что цена Биткойна будет на уровне 8 500 долларов США или выше. Напротив, Сяо Хэй считает, что цена Биткойна будет на уровне 8 000 долларов США или ниже. Итак, они разработали смарт-контракт (в который обе стороны будут отправлять средства), и тот, кто предскажет цену, более близкую к фактической, получит средства.
Чтобы смарт-контракт определил цену Биткойна и, таким образом, заплатил победителю, он должен запросить цену Биткойна в эту субботу через оракула. Например, когда запрашиваются данные о цене биткойнов, возвращается значение, что цена биткойнов в субботу составляет 8600 долларов США, тогда смарт-контракт будет выполнен в соответствии с его условиями и отправит все средства Чжан Сану.
02 Виды оракулов
Оракулы предоставляют дополнительную функциональность смарт-контрактам, предоставляя им возможность общаться за пределами децентрализованной сети блокчейнов.
Оракулы блокчейна могут принимать разные формы, включая, помимо прочего:
1. Программный оракул
Эта форма оракула обычно включает в себя легкодоступные онлайн-источники информации, такие как веб-сайты и общедоступные базы данных. Обычно они предоставляют такую информацию, как показания температуры, информацию об общественном транспорте и текущие цены на различные финансовые активы.
Программные оракулы, вероятно, являются наиболее мощным типом доступных оракулов из-за присущей им взаимосвязи с Интернетом. Это соединение позволяет программным оракулам предоставлять актуальную информацию для смарт-контрактов.
2. Аппаратный Oracle
Эта форма оракула обычно отвечает за события, происходящие в физическом мире, и отправляет данные в смарт-контракты. Например, при управлении цепочкой поставок, если объект с RFID-меткой прибывает на определенный склад, эти данные могут быть отправлены в смарт-контракт, и аппаратная система оракула может отслеживать товары по всей цепочке поставок.
3. Ввод оракула
Эта форма предиктора позволяет просто предоставлять данные в смарт-контракт. Предоставленные данные являются внешними по отношению к смарт-контракту, и выполнение начинается после получения информации. Новостной веб-сайт, на котором представлены цены на биткойны в приведенном выше примере, можно классифицировать как входной оракул.
4. Выходной оракул
Эти оракулы доставляют данные смарт-контрактов во внешние источники. В приведенном выше примере, как только Джон будет определен победителем, смарт-контракт может передать эту информацию провайдеру кошелька, чтобы его баланс автоматически обновлялся, чтобы отразить увеличение средств.
В этом случае сам смарт-контракт может работать как выходной оракул.
5. Оракул, основанный на консенсусе
Функция такого оракула — запрашивать несколько источников информации и получать результаты на основе их консенсуса. Например, в приведенном выше примере можно также использовать 4 веб-сайта для поиска цены биткойнов. Если все источники Oracle (веб-сайты) возвращают одно и то же значение, смарт-контракт может быть выполнен успешно.
03 Oracle требует доверия
Хотя преимущества оракулов весьма очевидны, есть и недостаток: оракулы требуют доверия.
Источник данных, используемый оракулом для получения информации и передачи ее в смарт-контракт, должен считаться заслуживающим доверия. Продолжая приведенный выше пример, если бы Чжан Сан мог каким-то образом контролировать этот веб-сайт с ценами на биткойны, он мог бы легко сделать возвращаемую цену биткойнов равной 8600 долларов, тем самым выиграв игру.
Таким образом, если данные, предоставленные оракулом смарт-контракту, окажутся неверными, возникает проблема безопасности. Одним из возможных решений этой проблемы является запрос данных из нескольких баз данных Oracle вместо одной базы данных Oracle.
Например, если один оракул возвращает цену биткойнов в размере 8600 долларов США, а четыре других оракула возвращают цену 8000 долларов США, в смарт-контракт можно запрограммировать дополнительные условия для разрешения конфликта. Смарт-контракт может принять только мажоритарное значение, и в этом случае Джон Доу становится победителем.