# 1 of 3 / Alex Petrov for forklog / Headline::Taproot
Кратко:
Само обновление c возможностями было уже выпущено 14 Jan 2021 под версией 0.21 bitcoin core.
# release docs https://bitcoincore.org/en/releases/0.21.0/ имплементируюя BIP 340/341/342 схемы (Schnorr/taproot/tapscript) – но без активации эти изменения были пока недоступны.
после этого в сети было начато голосование, и 12 Илюя 2021 Taproot soft-fork набрав необходимое количество голосов майнеров перевело софт-форк в состояние активизации (https://twitter.com/bitentrepreneur/status/1403694009734909961),
которое произойдет по достижению высоты блока – block height 709632 (прогнозируемо через 2 дня 3 часа ~ 14 Ноя 1:05 UTC)
# taproot clock count down timer here https://taproot.watch/ and here https://www.nicehash.com/countdown/btc-forking-2021-11-15-12-00
Taproot это продолжение развитие технологий на платформе SegWit, оно активизирует новые возможности смарт контрактов на биткойне с помощью taproot и MAST,
новые более компактные и гибкие цифровые подписи Schnorr позволит в некоторых случаях в разы компактнее записывать всю информацию, в том числе для нескольких транзакций формировать одну общую подпись, улучшат работу лайтинг сети, ее транзакции станут неотличимы от остальных. это позволит снизить размер транзакций за счет более компактной записи что также снизит фии за новые транзакции p2tr/schorr и увеличит пропускную способность сети.
как soft-fork taproot по комплексности изменений пожалуй один из самых комплексных и сложных на текущий момент.
прямо после доступности многие возможности можно будет использовать сразу, но пройдет время, думаю полгода/год+ пока появятся новые интересные и стабильно работающие продукты, кошельки и сервисы.
https://beincrypto.ru/learn/chto-takoe-taproot/
#примеры tapscript можно посмотреть тут
https://github.com/bitcoin-core/btcdeb/blob/master/doc/tapscript-example-with-tap.md
## History 2017, SegWit. / Немного истории SegWit 2017.
краткая предыстория, после голосования и флаговой сигнализации майнерами по общему согласию первого этапа NYC/Segwit2x – 21 July 2017 на высоте блока #477120 by BATPOOL, сам SegWit как софт форк был активирован 24 Августа 2017 года на высоте блока
#481824 by BTCC pool и стал доступен для использования и применения. 25 Aug 2017 был создан первый исторический SegWit block#481,947 size: 1.032Mb mined by BitFury-pool https://twitter.com/sysmannet/status/900992234123911168
в том 2017 же году от BTC отщипился форк BCH aka BitcoinCash на высоте блока #478559 / 1 August 2017, создав свою сеть которая не верила в LN/SegWit и считала что масштабирование возможно путем простого увеличения размера блока, без сложностей с компактной записью.
##
Активация SegWit активировала код в клиентах который позволял исправить ошибку гибкости (aka malleability bug) + позволяя надстраивать поэтапно и использовать расширенные протоколы второго уровня – такие как Lightning Network, атомарные свопы, потом soft-forkов активируя в последующие расширения и обновления, такие как – MAST, taproot, coinjoin и другие. Именно присутствие самой ошибки гибкости сильно (aka malleability bug)мешало вообще существованию многих сервисов в том числе делало невозможным либо сложно реализуемыми – LN/MAST/Taproot & etc)
также заменяло ограничение размера блока Биткойна, пределом веса блока (weight), который более компактной записью позволял в существующий физический блок записывать теоретически 3.6-3.8х раз больше информации.
# 2 of 3 / Alex Petrov for forklog
# Headline::Taproot:: tech
Taproot в 2018 году описал разработчик Bitcoin Core, Грегори Максвелл/ Greg Maxwell, как BIP-341. Обновление позволяет ввести новый тип cкpиптa – Paу-to-Taproot (P2TR).
Помимо этого в этом taproot soft-форке: Подписи Шнорра (BIP 340) и Tapscript (BIP 342).
Taproot базируется на MAST. Используя компактную древовидную структуру данных, все условия контракта индивидуально хешируются и собираются в единое дерево, когда условие исполнения контракта раскрываются в блокчейне, то они могут быть верифицированы в пути хеш-дерева Merkle пройдя до основного рут-хеша.
Это позволяет без оставлять без разглашения других условий трат, поскольку большинство скрипт-кодов, включенных в Merkle, остаются хэшированными до момента раскрытия.
Taproot BIP включает и базируется на изменение Merkle Abstract Syntax Tees (MAST), слияние 18 политик pay-to-pubkey и pay-to-scripthash, отключение кодов операции OP_checkmultisig и OP_checkmultisigverify, а также несколько других незначительных, в основном технических, изменений для повышения эффективности скрипта в транзакциях Bitcoin.
Второе большое обновление – схема подписей Schnorr.
Подписи Шнорра (названные в честь Клауса Шнорра , математическая работа которого заложила основы этой подписи) решают все эти проблемы, поскольку они позволяют объединить несколько подписей и соответствующих им ключей в одну. В результате транзакции Schnorr MultiSig неотличимы от обычных транзакций («MonoSig») и, следовательно, не влияют на конфиденциальность, размер транзакции и комиссии. Проверка MultiSig выполняется на уровне криптографии, а не на уровне сценариев, что устраняет проблемы безопасности, связанные с ошибками сценариев.
Основное различие между подписями Шнорра и текущими подписями Биткойн (ECDSA) заключается в том, что подписи Шнорра являются линейными , а подписи ECDSA – нет.
Наиболее важным свойством линейности для нашей цели является то, что когда вы добавляете две (или более) подписи Шнорра вместе, результатом также является действительная подпись Шнорра!
Электронные подписи Schnorr легковесные/менее ресурсоемкий в проверке, это должно сократить время верификации транзакций. Schnorr позволяет использовать мульти-подписи(multi-sign) в блокчейне биткоина.
До настоящего момента Биткойн использовал только ECDSA, к сожалению ECDSA алгоритм подписи изначально не поддерживает транзакции с мультиподписью, поэтому приходилось мудрить.
Схема подписи Шнорра может объединять несколько подписей и выводить их как одну подпись в разы сокращая размер.
# более технически про подписи Шнорра / Schnorr signature
До начала 2014 года в цепочке блоков можно было наблюдать распределение примерно 25% 73-байтовых, 50% 72-байтовых и около 25% 71-байтовых подписей.
Подписи Шнорра с SIGHASH_ALL флагом по умолчанию имеют длину ровно 64 байта. Подписи с другим флагом SigHash имеют длину 65 байт.
По сравнению с подписями ECDSA, подписи Шнорра на 6–9 байт короче, также это технически проще в реализации логики, экономия связана с удалением накладных расходов на кодирование и установленным по умолчанию флагом SigHash.
Но далеко не единственная экономия, за счет возможностей объединения подписей для множества транзакций в одну.
для примера 3-5-7 выходов с подписями, дадут экономию в 154/300/446 байтов соответственно, а для 1000 – экономия будет уже 73кб. При использовании подписи Шнорра на уровне ~20% и при условии, скажем для 800 000 входов в день будет экономится более 1 МБ пространства блокчейна, в год более 0.4гб размера базы и соответственно меньше трафика.
## почитать про schnorr signature больше
https://hackernoon.com/a-brief-intro-to-bitcoin-schnorr-multi-signatures-b9ef052374c5
https://b10c.me/blog/006-evolution-of-the-bitcoin-signature-length/
# 3 of 3 / Alex Petrov for forklog taproot
# Headline::Taproot:: MAST tech / multi-sig / mono-sign.
Мультиподпись (часто называемая мультиподписью/Multi-Sign ) – это форма технологии, которая используется для дополнительной безопасности транзакций с криптовалютой. Адреса с множественной подписью требуют, чтобы другой пользователь или пользователи подписали транзакцию, прежде чем ее можно будет транслировать в блокчейн
В настоящее время большинство блокчейнов реализуют этот механизм множественной блокировки с фактическими множественными подписями и некоторыми сценариями или смарт-контрактами для проверки того, что действительно все подписано. Однако у этой конструкции есть несколько недостатков:
Безопасность : сценарии подвержены ошибкам. В Ethereum только контакт Parity MultiSig пострадал от двух разных уязвимостей, что привело к убыткам более 800 миллионов долларов с 2016 года.
https://finance.yahoo.com/news/victims-30m-parity-wallet-hack-170550649.html
https://blog.openzeppelin.com/on-the-parity-wallet-multisig-hack-405a8c12e8f7/
https://hackernoon.com/parity-wallet-hack-2-electric-boogaloo-e493f2365303
Эффективность : наличие нескольких явных подписей увеличивает размер транзакций и связанных с ними комиссий.
Конфиденциальность : явные множественные подписи выявляют тот факт, что этот адрес является MultiSig, и могут привлечь к нему ненужное внимание.
Безопасность:
Taproot улучшит возможности сценариев и конфиденциальность за счет реализации MAST (Merkelized Abstract Syntax Tree), которое заменит используемый в настоящее время P2SH (оплата хеша сценария).
P2SH и MAST – это способы блокировки транзакций с условиями до тех пор, пока они не будут выполнены. конструкция P2SH использовавшаяся до этого позволяет другим пользователям видеть условия и всевозможные способы выполнения условий.
В то время как MAST скрывает все условия, кроме тех, которые раскрываются только при публикации транзакций с попыткой траты.
Такое закрытое состояние taproot + MAST защищает неопубликованные контракты и может противостоять форе-ран – атакам смарт контрактов как в эфире (https://cryptooffensive.com/ethereum-это-тёмный-лес/)
Авторы «The Impact of Taproot and Schnorr on Address Clustering Analysis of Bitcoin Transactions» Алекси Анания и Кен Ходлер пишут:
«Предполагается, что на вышеупомянутые BIP будет оказано незначительное влияние. С введением Taproot и Schnorr кластеризация останется методом отслеживания транзакций», — считают исследователи.
По данным Glassnode, на сегодняшний день существует порядка 33 млн биткоин-адресов с ненулевым балансом, а в общем их насчитывается порядка 460 млн. С одной стороны, правила сети позволяют компаниям, занимающимся анализом блокчейнов контролировать потоки монет, выявлять частные компании, которые инвестируют в криптовалюту и т. д.
С другой стороны, при проведении транзакций в сети публикуются адреса, откуда и на которые направляется сумма. Каждый адрес имеет буквенно-цифровые обозначения (P2PKH, Bech32, P2SH) по аналогии с банковскими счетами. Таким образом соблюдается псевдо анонимность, приравниваемая к юридическому адресу владельца, считают Анания и Ходлер. Что, снова таки, оставляет критику блокчейна биткоина актуальной.
«Мы не можем согласиться с Bitcoin Core, разработчики которого утверждают, что Taproot увеличит конфиденциальность Bitcoin», — заявляют исследователи.
Ведущий разработчик Blockchair Никита Журавлев также выступает критиком обновлений. В частности, Taproot. По его мнению, добавление новых типов адресов приводит к ухудшению конфиденциальности.
(споры тут
Никита тут https://raw.githubusercontent.com/Har01d/talks/master/20201127-Taproot.pdf