В среднесрочной перспективе в протоколе биткоина может быть реализована поддержка технологии Taproot, ориентированной на повышенную гибкость смарт-контрактов при сохранении достаточно высокого уровня приватности. Предполагается, что пользователи не смогут отличить простые транзакции даже от самых сложных смарт-контрактов.

Изначально Taproot спроектировал разработчик Bitcoin Core и бывший CTO компании Blockstream Грегори Максвелл. На данный момент ведущие представители сообщества разработчиков в лице Питера Велле, Энтони Тоунса, Джонсона Лау, Йонаса Ника, Эндрю Поэлстры, Тима Раффинга и Расти Рассела работают над имплементацией подписей Шнорра, которая включает в себя и технологию Taproot.

Ниже представлен адаптированный перевод статьи Аарона ван Вирдума, опубликованной в Bitcoin Magazine, о принципах работы Taproot и почему это решение сделает биткоин сильнее.


P2SH

Все существующие биткоины «заперты» в скриптах; это несколько строчек кода в транзакции, определяющих, каким образом монеты могут быть потрачены в следующей транзакции. Необходимым условием для траты является подпись, подтверждающая право собственности на монеты. Тем не менее не стоит забывать о существовании временных меток [трата только после генерации определенного блока] и мультиподписей [трата только при условии авторизации достаточным числом приватных ключей].

Для создания комплексных смарт-контрактов можно комбинировать различные условия траты. Например, монеты могут быть потрачены тогда и только тогда, когда Боб и Алиса подпишут транзакцию, или Алиса подпишет ее самолично по истечению недели, или это сделает Боб, предоставив при этом секретное число. Так, условие, которое первым активирует транзакцию, определяет то, как монеты могут быть потрачены.

С 2012 года только новый держатель биткоинов знает, как можно их потратить, а сторонние наблюдатели не осведомлены об условиях траты до ее реализации. Это стало возможным за счет реализации решения P2SH [pay to script hash], предполагающего включение в блокчейн лишь хешей скриптов. Это, казалось бы, случайное число определяет право собственности на монеты. В момент траты держатель раскрывает скрипт и ключ для расшифровки хеша одновременно. Затем каждый пользователь может использовать изначальный хеш для проверки истинности скрипта и исполнения условий траты.

Однако при этом пользователи должны раскрывать все условия траты, включая и те, которые не были выполнены. У такого подхода есть два основных недостатка: много данных для обработки и удар по приватности. Если каждый пользователь получит доступ к информации о том, как средства могли быть потрачены, то он теоретически сможет вычислить используемый кошелек и другие данные.

MAST

Потенциальным решением этих недостатков стало абстрактное синтаксическое дерево на базе дерева Меркла [или MAST] для более эффективной обработки массивов данных. MAST предполагает генерацию отдельных хешей для каждого условия траты монет с последующем их включением в дерево Меркла, которое и производит единый хеш или так называемый корень Меркла. Последний и «запирает» монеты.

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

Тем не менее Taproot в комбинации с подписями Шнорра может и вовсе скрыть факт существования такого абстрактного синтаксического дерева.

Подписи Шнорра

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

Реализация подписей Шнорра в протоколе биткоина позволит агрегировать несколько подписей для одной транзакции в единую за счет заложенной в схеме линейной математики. Такой же подход можно применить для транзакций с мультиподписью: комбинируя публичные ключи и подписи в “пороговые публичные ключи” или “пороговые подписи”, можно сделать такие переводы неотличимыми от обычных.

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

Продолжение https://forklog.com/taproot-blizko-i...tsii-bitkoina/



Источник Forklog.com