В городе появится новый инструмент конфиденциальности: coinwaps цепочки состояний. Первоначальный дизайн цепочки состояний был предложен Рубеном Сомсеном на Scaling Bitcoin 2018 в Токио. Я быстро резюмирую, но Аарон ван Вирдум дает здесь очень подробное объяснение первоначальной концепции. Общая идея состоит в том, чтобы вспомогательный объект (оператор цепочки состояний) создавал с пользователем адрес с мультиподписью 2 из 2, чтобы облегчить передачу UTXO вне цепочки. Затем пользователь передает свой закрытый ключ для 2-из-2 новому пользователю. Сущность цепочки состояний будет проинформирована о том, когда это произойдет, и в этот момент только новому владельцу будет разрешено переводить средства. Таким образом, вся идея заключается в том, чтобы совершить транзакцию, буквально передавая сам закрытый ключ, и чтобы оператор цепочки состояний обеспечивал соблюдение текущего права собственности.
И так же, как и в каналах Lightning Network, у каждого пользователя есть предварительно подписанная транзакция, позволяющая им в одностороннем порядке контролировать UTXO после истечения времени блокировки. Таким образом, если бы оператор цепочки состояний исчез, средства не могли бы навсегда остаться в ловушке этих двух из двух. Но этот вариант резервного копирования должен быть сбалансирован с учетом риска того, что одна из сторон попытается неправомерно использовать свою предварительно подписанную транзакцию для кражи средств. Предложение Сомсена зависит от eltoo, чтобы помочь новому владельцу заменить предварительно подписанную транзакцию закрытия предыдущего владельца в случае, если предыдущий владелец попытается украсть средства. Последняя важная часть структуры цепочки состояний-это цепочка подписей от одного владельца к другому, которая начинается с первоначального владельца и продолжается до текущего. Он передается от одного владельца к другому и добавляется параллельно с каждой транзакцией, чтобы каждый мог сохранить локальную копию, подтверждающую законную передачу и, в случае текущего владельца, что он фактически является законным владельцем.
Из-за зависимости от eltoo и того факта, что софт-форки, как правило, не возникают в одночасье, CommerceBlock начал работу по внедрению варианта цепочек состояний в 2020 году, который не зависит от eltoo. Вместо eltoo, позволяющего самой последней транзакции заменять предыдущие, в них реализована уменьшающуюся схему nLocktime, называемую Mercury. Идея состоит в том, что транзакция закрытия первоначального владельца привязана по времени к периоду x блоков в будущем; они не могут выполнить свою транзакцию, чтобы забрать средства, пока блокчейн не достигнет этого порога. А затем при следующей передаче права собственности транзакция нового владельца фиксируется по времени на x-1. Это позволяет текущему владельцу отправить свою транзакцию закрытия в цепочку до того, как первоначальный владелец станет действительным для отправки. По мере дальнейшей передачи прав собственности временные рамки продолжают уменьшаться (x-2, x-3 и т. Д.), Гарантируя, что текущий владелец всегда может действовать до разблокировки любой из транзакций предыдущих владельцев. Это устраняет требование для eltoo, но вводит ограничение на передачу цепочек состояний между владельцами: вы можете уменьшать временные блоки только столько раз, чтобы их больше нельзя было уменьшить; в какой-то момент будущее за вычетом некоторого количества времени (блоков) становится равным настоящему (nLocktime-это текущая высота блока). На этом этапе пользователи должны закрыть цепочку состояний, иначе более старые владельцы смогут украсть монеты, когда эти более ранние транзакции nLocktime достигнут своего срока блокировки и станут действительными.
Еще одно ключевое различие между оригинальной разработкой Somsen и Mercury заключается в том, как происходит генерация ключей. Вместо использования очевидного сценария с мультиподписью 2 из 2, Mercury реализует ECDSA-MPC (многостороннее вычисление алгоритма цифровой подписи с эллиптической кривой). Вы можете думать об этом как о функциональном аналоге адреса MuSig с использованием Schnorr, за исключением того, что в случае с Schnorr пользователи просто складывают два открытых ключа вместе, чтобы создать адрес, для которого оба должны подписаться. В ECDSA-MPC генерация ключа представляет собой более интерактивный процесс, состоящий из нескольких шагов. В конце концов, они функционально дают один и тот же результат: единственный открытый ключ, который, очевидно, не является мультиподписью и где обе участвующие стороны имеют долю совпадающего закрытого ключа, необходимого для подписи транзакции.
Процесс передачи с использованием ECDSA-MPC представляет собой интерактивный процесс, в котором вместо явной передачи существующего закрытого ключа первоначальным владельцем, как описано в предложении Сомсена, оператор цепочки состояний и отправитель взаимодействуют через ECDSA-MPC для создания закрытый ключ через общие ключи. Важно отметить, что существует более одного набора возможных общих ключей, которые могут генерировать один и тот же закрытый ключ. Таким образом, оператор цепочки состояний затем воссоздает закрытый ключ с получателем, но путем создания другого совместного использования ключей. Затем оператор цепочки состояний удаляет принадлежащий им общий ключ, соответствующий предыдущему владельцу. CommerceBlock обеспечивает это с помощью HSM (аппаратного модуля безопасности), хотя это не отменяет полного доверия. Таким образом, если цепочка состояний работает честно, она буквально неспособна подписать транзакцию закрытия с прошлым владельцем, потому что общий доступ к ключам, который он держит в настоящее время, не работает с совместным использованием ключей прошлого владельца для создания действительной подписи. Также в случае такого сговора будет опубликовано публичное доказательство того, что субъект цепочки состояний действовал нечестно. Это сдерживает репутацию.
Как работает публичное доказательство? CommerceBlock ранее разработал вариант Opentimestamp под названием Mainstay. Opentimestamps-это просто протокол для получения любых произвольных данных и включения их в очень большое дерево Меркла с корнем, привязанным к транзакции Биткойн. Проблема с Opentimestamps заключается в том, что дерево полностью неупорядочено; вещи просто добавляются в конец дерева по мере их поступления. Это означает, что он не дает никаких гарантий, что конфликтующая информация не будет зафиксирована одной и той же транзакцией привязки в цепочке блоков. Mainstay эффективно назначает канонические «слоты» в дереве Меркла для определенных фрагментов данных, например оракула, подтверждающего результат спортивной игры. Каждый может знать, какой «слот» проверять для этого конкретного оракула, и затем может игнорировать любые конфликтующие отметки времени, не относящиеся к этому слоту. Это позволяет людям засвидетельствовать что-то с помощью отметки времени, не оставляя открытой возможность пометить конфликтующие вещи для выборочного выявления (если вы можете написать в любом месте дерева Меркла, вы можете иметь реальную отметку времени в одном месте, указывая на фальшивую в другом месте). Каждая передача цепочки состояний Mercury засвидетельствована в определенном основном слоте, чтобы предоставить подтверждение текущего владения с отметкой времени, которое может быть опубликовано, если объект цепочки состояний действует нечестно.
Теперь, когда детали реализации цепочки состояний не обсуждаются, перейдем к интересной части: обмену монетами. Общее различие, исторически проводившееся между коинджоинами и монетным обменом, заключается в том, что коинджоин является явным и публично видимым использованием методов повышения конфиденциальности, происходящих в одной транзакции, в то время как обмен монет обычно считается скрытым и, в случае кооперативного успеха, не является публично видимое использование метода обеспечения конфиденциальности в рамках нескольких отдельных транзакций. Весь мир может видеть, когда UTXO переходит в коин-джойн, но если он будет реализован, как в целом обсуждалось ранее, никто, кроме участников, не узнает, когда UTXO участвует в коин-обмене.
Реализация монетного обмена, построенная на основе цепочек состояний Mercury, устраняет это четкое различие между коинджоинами и монетным обменом с точки зрения этого явного и скрытого свойства конфиденциальности. Передачи цепочек состояний регистрируются в обязательствах Mainstay, поэтому вы должны исходить из того, что каждый раз, когда цепочка состояний меняет владельцев, об этом становится общедоступным. Но каждая передача также может быть обменом монет с любой другой цепочкой состояний, переданной в том же интервале блока. Таким образом, с точки зрения инструментов анонимности, это становится своего рода монстром Франкенштейна, сочетающим свойства анонимности коинджоинов с использованием механизма монетного обмена для проведения обмена UTXO вне сети. Он использует оффчейн «монетного обмена» поверх цепочки состояний, чтобы имитировать аналогичные свойства анонимности коинджоина без взимания внутричейн-комиссии за каждый своп.
Обмен монет в цепочках состояний Mercury по сути является обычным переводом цепочки состояний с помощью забавной криптографической магии , чтобы сделать их анонимными. Когда вы регистрируете UTXO для типичного коинджоина (например, Whirlpool или Wasabi), вы регистрируете UTXO в качестве входа, а затем получаете скрытые криптографические учетные данные, которые вы можете использовать для создания вывода в коинджоин, чтобы вернуть свои монеты через новое сетевое соединение. чтобы защитить вашу конфиденциальность от координатора. Такая же координация аппроксимируется в схеме Меркьюри путем регистрации цепочек состояний, получения слепых токенов и последующего запроса у координатора, которому случайным образом назначается новый адрес для передачи цепочки состояний. Есть даже шанс получить обратно свою собственную цепочку состояний. Это случайно. После этого, по сути, каждый подписывает свою цепочку состояний атомарно, точно так же, как при совместной работе.
В конечном итоге то, что мы имеем здесь, является чем-то очень противоречащим интуиции и находящимся в странной точке «спектра доверия» инструментов Биткойн, что люди, вероятно, не привыкли глубоко задумываться. Строго говоря, на техническом уровне происходит обмен монет; монеты меняются тайно, не оставляя прямого отпечатка в цепочке, что происходит обмен UTXO. Но из-за приверженности Mainstay ко всем переводам и возможности эвристического анализа того, какие стейтчейны передали владельцев в разные периоды времени, вы можете сделать вывод, что произошел обмен монет, тем самым уменьшая выигрыш от набора анонимности до уровня, эквивалентного стандартному коинджоингу. Но вам не нужно платить комиссию в сети за каждое «совместное объединение».
Чтобы действительно понять суть «странной точки», возможно, с одной сущностью, функционирующей в качестве оператора цепочки состояний, вы могли бы рассматривать это как приближение к соглашению о хранении. Но из-за принудительного удаления ключей HSM, аттестации Mainstay и предварительно подписанных транзакций закрытия у пользователей всегда есть возможность одностороннего выхода из системы, пока оператор не сотрудничает с предыдущим владельцем государственной цепочки, чтобы обмануть законного владельца..
Лучший способ описать модель доверия-это перефразировать Том Треветан из CommerceBlock: «Это нацелено на то, чтобы занять золотую середину между полностью контролирующим микшером и полностью ненадежным коинджоиндом с точки зрения инструментов обеспечения конфиденциальности». Несомненно, некоторая степень уверенности в том, что оператор цепочки состояний, в данном случае CommerceBlock, может действовать честно. Но существуют также механизмы, позволяющие публично предупреждать пользователей о их нечестном поведении и явных преимуществах конфиденциальности, которые могут быть получены за счет потенциальной экономии комиссионных по сравнению с чистыми коинджоингами в сети.
Это не совсем безнадежно, но и не совсем основано на доверии. Это новое место в спектре инструментов для обеспечения конфиденциальности. Лично, учитывая недооцененный факт того, насколько широко используются централизованные микшеры, мне интересно посмотреть, как это вписывается в эту экосистему. В городе новый ребенок.
Это гостевой пост Шиноби. Выраженные ими мнения являются полностью их собственными и не обязательно отражают мнения BTC, Inc. или Bitcoin Magazine.