Установите доверие на биткойнах: посмотрите, как предварительно подписанные деревья транзакций защищают контракты

Установите доверие на биткойнах: посмотрите, как предварительно подписанные деревья транзакций защищают контракты

8 июля 2025 г.

Аннотация и 1. Введение

  1. В цепочке контракты
  2. Контракты вне цепи
  3. Выводы и ссылки

2. Контракты на цепь

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

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

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

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

Пример: Best of-3 ставки мы иллюстрируем выполнение контракта в ходе цепь через пример. Дерево транзакций, представленное на рисунке 2, внедряет лучшую ставку между Алисой и Бобом, на каком-то повторяющемся матче между двумя командами. До начала конкурса Oracle совершает хэши из шести секретных сообщений: три из них обозначают, что первая команда выиграла матч, в то время как остальные три обозначают, что он проиграл [1]. После каждого матча Oracle подтверждает победу или потерю команды, раскрывая подходящее секретное сообщение. Эти секреты могут затем использоваться Алисой и Бобом для обновления состояния контракта, добавив новую транзакцию в блокчейн. Транзакции в контракте

Figure 1: Example of a contract. 𝑠𝑖𝑔P labels require an authorization by P (signature on the redeeming transaction). rev: S labels require revealing the secret 𝑆 whose hash was previously committed. wait: t labels require waiting for at least 𝑡 blocks

Figure 2: Best-of-3 Bet

Назван для представления записи о победе, связанной с соответствующим состоянием, с точки зрения первой команды, что означает, что W ?? Представляет штат, в котором первая команда выиграла один раз, и два матча еще нужно сыграть, в то время как LWL представляет состояние, в котором проиграла первая команда, затем выиграла, а затем снова проиграл. Контракт заканчивается, когда любая команда выиграла два из трех матчей, или когда и Алиса, и Боб соглашаются на ранние выплаты, завершив ставку до того, как были сыграны три матча. Контракт имеет 10 возможных терминов, показанных на дереве как 10 листьев.

Figure 3: A possible execution path. Every time the oracle de-commits one of the hashes, a participant can exhibit its preimage in the contract, moving to the next state.

Авторы:

(1) Дарио Маддалони, Università Degli Studi Di Trento (Dariomaddaloni.6@gmail.com);

(2) Riccardo Marchesin, Università Degli Studi di Trento (riccardo.marchesin@unitn.it);

(3) Роберто Зунино, Università Degli Studi Di Trento (roberto.zunino@unitn.it).


Эта статья естьДоступно на ArxivПод CC по лицензии 4.0.

[1] 6 сообщений содержат строки 𝑊1, 𝑊2, 𝑊3, 𝐿1, 𝐿2, 𝐿3 и сочетаются с нереей для безопасности. Обратите внимание, что Oracle не является участником контракта, и не нужно знать о ставке между Алисой и Бобом. Действительно, его роль может быть выполнена тремя различными оракулами, по одному для каждого матча.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE