Оригинальное название: «Bitlayer Core Technology: DLC и соображения по его оптимизации».
Первоначальный автор: Мутуренд Линнделл, Bitlayer Research Group
1. Введение
Discreet Log Contract (DLC) — это платформа исполнения контрактов на основе Oracle, предложенная Таджем Дриджа из Массачусетского технологического института в 2018 году. DLC позволяет двум сторонам совершать условные платежи на основе заранее определенных условий. Обе стороны заранее определяют и подписывают возможные результаты и используют эти предварительные подписи для выполнения платежа, когда оракул подписывает результаты. Таким образом, DLC позволяет создавать новые децентрализованные финансовые приложения, обеспечивая при этом безопасность депозитов в биткойнах.
В предыдущей статье «Анализ принципов DLC и мыслей по оптимизации» были обобщены преимущества DLC с точки зрения защиты конфиденциальности, сложных контрактов и низкого риска активов. Также было проанализировано существование ключевых рисков, рисков децентрализованного доверия, рисков сговора и т. д. проблемы DLC и внедрить в DLC децентрализованные оракулы, пороговые подписи, механизмы оптимистического вызова и т. д. для решения различных проблем, с которыми ему придется столкнуться. Поскольку в DLC участвуют три стороны: оракул, Алиса и Боб, различным сторонам относительно сложно вступить в сговор для исчерпывающей атаки, что приводит к относительно сложной стратегии предотвращения. Сложные стратегии защиты несовершенны, не соответствуют принципу простоты и лишены красоты простоты.
В Биткойне любое поведение любого участника должно реализовываться через UTXO. Следовательно, использование механизма консенсуса для обеспечения корректности UTXO может противостоять произвольным атакам. Аналогично, в DLC любое поведение любого участника необходимо реализовывать через CET (транзакцию выполнения контракта). Следовательно, использование механизма оптимистического запроса для проверки правильности CET может противостоять любой атаке. В частности, после того, как оракул обещает 2B TC, он может подписать CET. Добавьте в CET механизм оптимистического вызова. Если CET не оспорен или успешно отвечает на вызов, тогда CET верен и расчет может быть завершен, а оракул снимает ставку и получает комиссию за обработку. Если оракул пытается совершить зло, любой может успешно оспорить, а CET — нет; будет рассчитан, и оракул проиграет. Депозит внесен, и оракул не может снова подписать тот же CET. Наряду с великой простотой, он обладает красотой простоты.
2.Принцип DLC
Алиса и Боб подписывают соглашение о ставках: заключают пари, что хеш-значение ξ-го блока будет нечетным или четным числом. Если это нечетное число, Алиса выигрывает игру и может вывести активы; если это четное число, Боб выигрывает игру и может вывести активы. Используя DLC, информация о ξ-м блоке передается через оракул для создания условной подписи, чтобы правильный победитель выиграл все активы.
Генератор эллиптической кривой — G, порядок — q. Ключевыми парами оракула, Алисы и Боба являются (z, Z), (x, X), (y, Y) соответственно.
Транзакция финансирования (ончейн): Алиса и Боб вместе создают транзакцию финансирования, каждая из которых блокирует 10 BTC в виде мультиподписи 2 из 2 (один открытый ключ X принадлежит Алисе, а один открытый ключ Y принадлежит Бобу). .
Построение CET (оффчейн): Алиса и Боб создают CET 1 и CET 2 для транзакций вливания капитала.
Оракул вычисляет обязательство R = k · G, затем вычисляет S и S'
S := R - хеш(НечетноеЧисло, R) · Z
S' := R - хэш(EvenNumber, R) · Z
Тогда новые открытые ключи, соответствующие Алисе и Бобу, будут следующими:
ПК^{Алиса} := X + S
ПК^{Боб} := Y + S'.
Расчет (оффчейн -> ончейн): когда ξ-й блок успешно сгенерирован, оракул подпишет соответствующий CET 1 или CET 2 на основе хэш-значения блока.
Если хэш нечетный, оракул подписывает s следующим образом:
s := k - хэш(OddNumber, R) z
Трансляция CET 1.
Если хэш четный, оракул подписывает s'
s' := k - хэш(EvenNumber, R) z
Трансляция CET 2.
Вывод монет (ончейн): если оракул передает CET 1, Алиса может вычислить новый закрытый ключ и потратить заблокированные 20 BTC.
sk^{Алиса} = x + s
Если оракул передает CET 2, Боб может вычислить новый закрытый ключ и потратить заблокированные 20 BTC.
sk^{Боб} = y + s'
Исследовательская группа Bitlayer обнаружила, что в описанном выше процессе любое поведение должно реализовываться через CET. Следовательно, необходимо использовать механизм оптимистического вызова только для того, чтобы убедиться, что CET корректен и может противостоять любой атаке. Неправильные CET будут оспорены и не выполнены, тогда как правильные CET будут выполнены. Кроме того, оракулу приходится платить за злонамеренное поведение.
Испытуемой программой является f(t), тогда CET следует построить следующим образом:
s = k - hash(f(t), R) z.
Предположим, что реальная ситуация такова, что хэш-значение ξ-го блока представляет собой нечетное число, то есть f(ξ) = OddNumber, и оракул должен подписать CET 1.
s := k - хэш(OddNumber, R) z.
Однако оракул сделал что-то злое и изменил значение функции на Even, подписав CET 2:
s' := k - хэш(EvenNumber, R) z.
Следовательно, любой пользователь может победить это вредоносное поведение согласно f(ξ) ≠ OddNumber.
3.OP-DLC 2
OP-DLC включает в себя следующие 5 положений:
Оракул состоит из альянса. В альянсе n участников, и любой участник может подписать CET. Только внося 2B TC, машина оракула может выдавать подписи и получать комиссию за обработку. Если участник совершает зло, ставка теряется. Другие участники могут продолжать подписывать CET, чтобы гарантировать, что пользователи смогут выводить средства. Алиса и Боб также могут стать оракулами, по-настоящему доверяя только себе и сводя доверие к минимуму.
Если оракул сделает что-то злое и изменит результат, это неизбежно приведет к ситуации, когда f 1(ξ) ≠ z 1, f 2(z 1) ≠ z 2. Таким образом, любой участник может инициировать вызов, то есть провести транзакцию Disprove-CET 1.
Если оракул честно подписывает CET, ни одна из сторон не сможет инициировать действительную транзакцию Disprove. Через 1 неделю центральноевропейское время может быть рассчитано правильно. Кроме того, машина-оракул получает вознаграждение в размере 0,05 BTC в качестве недельного использования обещанных 2B TC и комиссию за обработку за честное подписание CET.
Любой участник может бросить вызов Oracle_sign:
Если Oracle_sign честен, транзакция Disprove-CET 1 не может быть инициирована, и расчет CET будет выполнен через 1 неделю. Кроме того, машина оракула обязана разблокировать и получать комиссию за обработку;
Если Oracle_sign является нечестным, то есть кто-либо успешно инициирует транзакцию Disprove-CET 1 и успешно тратит выходные данные коннектора A, подпись оракула будет недействительна, а заложенные 2B TC будут потеряны, и оракул больше не сможет использовать его в будущем. Контракт DLC инициирует подпись с тем же результатом, поскольку выход Settle-CET 1, использующий разъем A, будет постоянно недействителен.
Вызовы в OP-DLC не требуют разрешений, то есть любой участник может контролировать, правильно ли выполняется контракт в OP-DLC. Поэтому доверие к оракулу сведено к минимуму. По сравнению с сетью Lightning, Алиса и Боб также могут находиться в автономном режиме. Потому что оракул урегулирует ЦЕТ только честными подписями, а злым оракулам будет брошен вызов и наказан кто угодно.
преимущество:
Имейте высокий контроль над активами и доверяйте только себе: Алиса и Боб могут стать оракулами и подписать CET. Механизм оптимистического вызова победит неправильный CET, поэтому зло сделать невозможно. Поэтому OP-DLC позволяет пользователям верить только в себя. В BitVM пользователи должны действовать как Операторы и должны участвовать во всех последующих депозитах, чтобы доверять только себе. Если пользователь в качестве Оператора участвует только в одном депозите UTXO в BitVM, и UTXO может быть законно возмещен любым другим (n-1) Оператором, пользователю все равно придется доверять другим Операторам для внесения средств в будущем. Разрешения оператора BitVM на возмещение заблокированы для каждого отдельного депозита UTXO.
Высокая загрузка капитала: если пользователи доверяют только себе, требуемая сумма средств будет другой. В OP-DLC пользователи полагаются на свои собственные выплаты, и им не нужно вносить равную сумму средств, в BitVM пользователям необходимо внести равную сумму средств, а затем получить возмещение; Это создает большее финансовое давление.
Оракула, который может подписывать, необходимо определить при внесении депозита в OP-DLC, но пользователь также может стать оракулом и подписать от себя.
недостаток:
Время вывода занимает 1 неделю: по сути, капитальные затраты на OP-DLC и BitVM существуют и равны. Вывод средств OP-DLC должен пройти период проверки, прежде чем средства смогут быть получены; если BitVM полагается на то, что пользователи будут продвигать себя, такая же сумма авансированных средств также должна пройти период проверки, прежде чем они могут быть успешно возмещены. Если BitVM полагается на других операторов для быстрого выделения средств, это означает, что оператору необходимо оплатить ту же сумму средств и временных затрат, что и комиссию за обработку.
Количество подписей, требующих предварительного подписания, быстро растет и линейно связано с количеством CET. Для подсчета всех результатов вывода необходимо как можно больше CET.
4. Вывод
OP-DLC вводит в CET механизм оптимистического запроса, чтобы гарантировать, что неправильный CET не будет рассчитан и соответствующий злонамеренный оракул потеряет свой залог; он гарантирует, что правильный CET будет выполнен, а залог оракула разблокирован и будет получена плата за обработку; Этот метод может противостоять любой атаке и отличается простотой.
Рекомендации
Спецификация для контрактов дискретного журнала
Контракты дискретного журнала
Анализ принципов DLC и соображения по оптимизации
Оптимистичный накопительный пакет
BitVM 2: несанкционированная проверка биткойнов