✅✅✅
К
стеку биткоина. Сегодня обращусь к Smarts Contracs, а именно к решению
Scriptless Scripts.
Scriptless Scripts ("Скрипты без скриптов")
⬇️⬇️⬇️
Смарт-контракты в сети BTC существуют и существовали до этого. Например
Musig или
смарт-контракты Lightning Network.
Но есть проблемка, и при чем не одна:
1) Ресурсы
Чем сложнее смарт-контракт, тем больше требуется ресурсов. Ведь все узлы сети должны исполнить контракт, а не только участники сделки.
2) Конфедициальность
Если все узлы сети испольняют контракт, то и об условиях контракта знает вся сеть.
Вообщем, почему я решил перескочить на решение "скрипты без скриптов". Все дело в том, что нужно опять немножко зацепить
подписи Шнорра.
Суть:
Подписи Шнорра меньше, чем
ECDSA, и могут быть объединены при помощи агрегации подписей. Это ведет к совместному использованию подписей несколькими входами. А это приводит к повышению конфиденциальности и масштабируемости сети.
Вот мы и у сути повествования:
Andrew Poelstra из BlockStream онаружил, что сами подписи могут быть сконструированы и модифицированы специальными способами для обеспечения выполнения различных соглашений между сторонами. Вводятся условия расходов, которые полностью скрыты от блокчейна. Только вовлеченные стороны знают об условиях договора или о том, что договор вообще существует. Для остальных транзакции выглядят совершенно обычными и неотличимыми от обычных.
Изучая
протокол MimbleWimble, где вообще отсутсвуют скрипты, а весь блокчейн функционирует только на подписях и обязательствах, которые представляют собой расходуемые монеты, он выяснил, как при помощи скриптов обеспечить функциональность без необходимости их присутствия в блокчейне.
Отсюда и название собственно говоря...
Большая часть контрактов просто перемещается за пределы блокчейна. Вместо исполнения контракта всей сетью, этим займутся только участвующие стороны. А выполнение результатов контракта, производится при требуемых условиях.
Чтобы смарт-контракты применяли только подписи, используются преимущества агрегации подписей Шнорра. Подписи могут добавляться и вычитаться, и результатом является допустимая подпись, соответствующая тому же добавлению или вычитанию открытых ключей.
Как это работает?
pubkey1 + pubkey2 + pubkey3 = pubkey Y
signature1 + signature2 + signature3 = signature Y
Мы привязываем биткоин к pubkey Y, который не является ключом и к которому у кого-либо есть доступ, но на самом деле он представляет собой сумму pubkeys. Подписи от каждого из ключей 1, 2 и 3 можно суммировать, чтобы создать подпись для pubkey Y, и сеть не будет в курсе, что на самом деле было три ключа, участвующих в создании подписи. Она будет выглядеть так же, как обычная подпись из pubkey Y, но сеть будет воспринимать ее как разрешение на расходование.
Сценарии без скриптов масштабируются лучше, чем обычные смарт-контракты, потому что выполнение условий контракта происходит вне цепочки, а следовательно и нет необходимости хранения данных контракта и выполнения его условий.
#SmartContracts