Как биткойн-оракул должен проверять транзакцию перед подписанием?

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

Я предполагаю, что есть примерно 3 транзакции, но я не уверен, что кем подписано, и какая часть Tx подписана/не подписана.

1) Tx, который отправляется на новый адрес с точной суммой (опубликовано)

2) tx, который создан, но со временем 10 лет (не опубликован)

3) tx, который создан, но ожидает некоторой логики оракула (не опубликован)

Что меня интересует, так это № 3 и что конкретно подписывает оракул? Как выглядит этот Tx?

Ответы (1)

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

Другой способ — отправить оракулу(ам) запрос на поиск события. Затем они дают вам открытый ключ, и вы используете этот открытый ключ, чтобы заблокировать транзакцию. Когда придет время, оракулы опубликуют закрытый ключ для этого открытого, и вы используете его для разблокировки транзакции. Именно так работают RealityKeys . (хотя их код закрыт)

Второй вариант относительно прост в реализации, хотя я не уверен, что в настоящее время доступны реализации с открытым исходным кодом.

Первый вариант (подписание происходит на стороне оракула) немного сложнее, но, с другой стороны, позволяет более детализировать контракты. Например, вы можете попросить оракулов отправить 2030 (год события) BTC после того, как событие произойдет, а остаток вернуть отправителю. Оракулы также могут временно управлять средствами - например, вы можете сказать им отправить средства на новый адрес с мультиподписью, если один из оракулов умрет / потеряет свои ключи. И есть готовый код для обработки всего этого в репозитории Orisi на github .

Для получения дополнительной информации вы можете проверить технический документ Orisi / Distributed Oracles , в котором рассматривается пример реализации, и запись Bitcoin Wiki о контрактах.