Что такое блокчейн-оракул и какие проблемы решает?

4 сентября, 2020 / Новичкам

блокчейн

Блокчейн-оракул – это любое устройство или объект, соединяющий определенный блокчейн с данными вне сети. Чтобы понять, что такое оракул в блокчейне и зачем он нам нужен, давайте рассмотрим одну из основных функций блокчейна – децентрализацию.

Проблемы блокчейна

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

Однако, детерминизм в блокчейне легко проверяется другими нодами:

Determinism in blockchain is easy to validate by other nodes.

Как видим при отправке $5 от Боба Алисе, на балансе Алисы появляется эта сумма, в то время как с баланса Боба она снимается. Каждая нода в сети может легко воспроизвести это действие и получить одинаковые результаты.

Но что, если это не так? Представим себе блокчейн, в котором для проверки транзакций используется API. Допустим, Боб намерен отправить определенную сумму долларов в ETH Алисе. Сперва контракт должен вызвать API, чтобы узнать цену ETH, а затем отправить эту сумму Бобу. Когда все остальные ноды проверяют транзакцию, им также нужно вызывать этот же API.

Blockchain Oracles are needed, as validating variables breaks determanism and consensus.

Но что происходит на самом деле? Если они вызовут API немного позже, то API может быть изменен, взломан и т.д. В итоге все ноды получат другой результат, таким образом, ни одна из нод не сможет договориться о фактическом состоянии цепочки блоков.

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

В блокчейне механизм согласования значения данных называется консенсусом, и детерминизм важен для того, чтобы ноды могли достичь его. Ранее мы уже рассматривали некоторые из них, например, Proof of Work (PoW) или Proof of Stake (PoS). Консенсус – одна из ключевых факторов, который заставляет блокчейн работать.

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

Как оракулы решают эту проблему

Блокчейн-оракул – это любое устройство или объект, который соединяет детерминированный блокчейн с данными вне сети. Augur, Chainlink, Gnosis – наиболее яркие примеры платформ на базе Ethereum, использующие оракулы для получения данных.

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

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

Актуально