Тема сэлфмодерейт чтобы залетных набивателей копипасты отсеивать. Посты пользователя
investgroup будут удаляться не глядя на содержание.
Теперь по теме.Буквально недавно, на днях, в код биткоина был сделан интересный
pull request. Он добавляет в код функциональность которая описана в ставших теперь официальными бипах:
BIP340,
BIP341,
BIP342.
Предлагаю тем, кто понял о чем это все, поделиться своими знаниями в данной теме. Просьба писать своими словами или, если переводы, то с вашими комментариями.
В английской ветке
сабж обсуждают с прошлого года, а в нашей локали я ничего подобного не видел.
Вот что пишут те кто все это придумал:
Оригинал* Taproot to make all outputs and cooperative spends indistinguishable
from eachother.
Перевод:* Taproot делает все выходы и общие траты неотлечимыми друг от друга.
Комментарий:Что они черт возьми имеют в виду
Я понимаю, что речь идет об выходах транзакции, а "общие траты" это наверное что-то про лайтинг нетворк. Про лайтинг я мало что знаю, но на примере обычных транзакций -
что именно они собираются сделать?Идем дальше.
Оригинал:* Merkle branches to hide the unexecuted branches in scripts.
Перевод:Использовать дерево меркла чтобы скрыть неиспозьзованные части скриптов.
Комментарий:Ну тут более или менее понятно, что речь видимо идет о тратящем скрипте. Тратящий скрипт может быть большим со многими ветвлениями, а реально для подтверждения транзакции нужно только одно условие. Видимо придумали способ скрыть ненужные условия в дерево меркла с целью уменьшить размер транзакции в блокчейне.
Оригинал:* Schnorr signatures enable wallet software to use key aggregation/thresholds within one input.
Перевод:Использование в мультисиг транзакциях для подписи вместо ECDSA другого алгоритма: подпись Шнора.
Комментарий:Это видимо как раз для первого пункта. Я так понимаю, что эта вундервафля позволяет в тратящем скрипте мультисиг транзакции использовать всего одну общую подпись вместо кучи подписей от всех контрагентов.
То есть например есть транзакция с условием "потратить битки можно только если тратящий скрипт подпишет Алиса и Боб"... То есть чтобы потратить такой выход сейчас, в транзакцию по любому надо записывать две подписи. А новый подход позволяет эти две подписи объединить в одну. Вот тут более или менее нормально объясняют
https://bitcoin.stackexchange.com/questions/77234/schnorr-vs-ecdsaОригинал:* Improvements to the signature hashing algorithm (including signing all input amounts).
Перевод:Улучшение алгоритма хэширования подписи (добавление возможности подписать все входы)
Комментарий:Судя по всему, это на случай когда в транзакции есть несколько входов каждый из которых требует свою подпись. Сейчас стандартным клиентом такую транзакцию видимо невозможно потратить за один раз. Тут я не в курсе дел. Если так, то понятно, что давно пора такое сделать.
Оригинал:* Replacing OP_CHECKMULTISIG(VERIFY) with OP_CHECKSIGADD, to support batch validation.
Перевод:Замена одного опкода OP_CHECKMULTISIG(VERIFY) на другой OP_CHECKSIGADD чтобы обеспечить возможность групповой проверки.
Комментарий:Сейчас OP_CHECKMULTISIG работает для проверки всех подписей. я так понимаю, что если сделают подпись Шнора, то OP_CHECKSIGADD будет уметь проверять ее.
Оригинал:* Tagged hashing for domain separation (avoiding issues like CVE-2012-2459 in Merkle trees).
Перевод:Использование тэгов в разделении доменов при хэшировании (чтобы избежать инцидентов подобных CVE-2012-2459 для дерева Меркла)
Комментарий:Тут ничего не могу сказать. Это что-то про безопасность алгоритмов хэширования при формировании дерева Меркла. Думаю не профессиональным криптоаналитикам это не особо интересно.
Оригинал:* Extensibility through leaf versions, OP_SUCCESS opcodes, and upgradable pubkey types.
Перевод:Добавление новых возможностей таких как новый опкод OP_SUCCESS и обновляемые типы публичных ключей.
Комментарий:Тут надо читать бипы, что они там добавляют. Я пока по диагонали прочитал и понял, что там хотят объединить p2sh и segwit адреса чтобы они не отличались друг от друга.