Блокчейн

Основание на Taproot: пулы платежей могут стать следующим протоколом второго уровня Биткойна

Эта статья посвящена технологической концепции, основанной на предлагаемом обновлении протокола Taproot. Если вы еще не знакомы с основами работы Taproot, рекомендуется сначала прочитать этот объяснитель.

стержневой кореньпотенциальное обновление протокола Биткойн, впервые предложенное участником Bitcoin Core Грегори Максвеллом, находится на поздних стадиях разработки. Технология состоит из умной комбинации криптографических приемов, которые позволят пользователям скрывать сложные смарт-контракты внутри обычных транзакций - сложность раскрывается только в том случае, если стороны контракта отказываются сотрудничать.

Используя эту идею, участники Bitcoin Core, включая (но не ограничиваясь ими) Джереми Рубина, Антуана Риара, Глеба Науменко и самого Грегори Максвелла, размышляли об общей концепции, называемой пулы платежей, объединенные пулы или монеты, Эти пулы - пока мы будем называть их платежными пулами - позволят группам пользователей совместно использовать одни и те же монеты (технически: UTXO), как записано в блокчейне Биткойн, при этом позволяя любому из этих пользователей совершать (или получать) платежи. с ними. Поскольку группа и ее отдельные члены «прячутся» в структуре Taproot, все они пользуются большей конфиденциальностью, гибкостью смарт-контрактов и другими преимуществами ... и они потенциально могут пользоваться этими преимуществами вне сети, что делает пулы платежей новым решением второго уровня.

Хотя специфика дизайна немного отличается от одного предложения по пулу платежей к другому, общая концепция остается той же. Вот основная идея ...

Обмен монетой

Во-первых, чтобы создать пул платежей, пользователи объединяют свои (доли) монет, объединяя их в общий адрес Taproot. Итак, предположим, что Алиса владеет тремя монетами, Боб владеет двумя монетами, а Кэрол владеет одной монетой, всего шесть. Вместе они создают транзакцию, которая отправляет эти монеты на общий адрес, превращая его в пул платежей с шестью монетами.

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

Это связано с тем, что есть только два основных варианта потратить монеты с адреса.

Первый вариант - тратить прямо с адреса, технически говоря, по ключевому пути Taproot. Это требует сотрудничества (то есть криптографических подписей) всех трех участников. Если Алиса, Боб и Кэрол все согласны, шесть монет можно потратить, как им нравится, и это будет похоже на любую другую обычную транзакцию в сети Биткойн. Трио может, например, решить отправить свои балансы обратно на отдельные адреса: три для Алисы, два для Боба и один для Кэрол. Но если они захотят, они также могут сотрудничать, чтобы пожертвовать все шесть монет Джулиану, или потратить их любым другим способом, на который они согласятся. Важно то, что все трое должны участвовать, поэтому никто не тратит баланс без его или ее собственного сотрудничества.

Второй основной вариант фактически состоит из нескольких подвариантов. Перед отправкой своих монет в пул платежей Алиса, Боб и Кэрол что-то спрятали в криптографическом дереве за адресом Taproot: они включили альтернативные способы отправки средств из пула платежей. (В настоящее время это может быть реализовано, если все три участника предварительно подписывают транзакции с этих путей, что потребует некоторой сложности для настройки всех параметров и не очень хорошо масштабируется; предлагаемые обновления протокола потенциально могут упростить это в будущем. .)

Если один из участников решит потратить монеты в пуле платежей через альтернативный путь Taproot, он обычно отправляет сумму, соответствующую балансу этого участника, на адрес по своему выбору, например, индивидуальный адрес, который они контролируют. (В случае Алисы три монеты на ее собственный адрес, в случае Боба две на его адрес и в случае Кэрол один.)

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

Самое простое решение - отправить каждому другому участнику свою долю монет на адрес по их выбору. Другими словами: если один пользователь выходит из пула, все выходят из пула.

Второе решение, предпочитаемое Риардом и Науменко, - отправить все оставшиеся монеты в new пул платежей, который выглядит точно так же, как первый пул платежей, только что удален от всего, что касалось уже вышедшего пользователя. Этот дизайн предлагает лучший пользовательский интерфейс, но его сложнее всего масштабировать, что наиболее важно потому, что необходимо подготовиться ко всем возможным сценариям выхода, включая все возможные сценарии выхода для всех потенциальных новых пулов. Однако масштаб может быть достигнут с помощью еще не названного потенциального обновления протокола Биткойн, чтобы гарантировать, что правила из предыдущего пула платежей будут перенесены в любой новый пул платежей.

Однако Рубин считает, что это второе решение непрактично, и предпочитает использовать что-то среднее между первым и вторым решениями: некоторые участники немедленно получают свои монеты на адрес по своему выбору, другие участники отправляют свои монеты в новый пул платежей. Этот дизайн предлагает менее идеальный пользовательский интерфейс, но лучше масштабируется, а потенциальное обновление протокола OP_CHECKTEMPLATEVERIFY поможет упростить дизайн и еще больше увеличить масштаб. (Выходы будут происходить через Tree Payments; эти типы платежей рассматриваются далее в этой статье.)

(Между вторым и третьим решениями есть больше компромиссов, но детали всех плюсов и минусов выходят за рамки этой статьи; прочтите обсуждение списка рассылки bitcoin-dev для уточнения.)

Чтобы увидеть, что это означает, когда оставшиеся монеты отправляются в новый пул платежей, предположим, что Алиса, Боб и Кэрол выбрали второй вариант, где Найти оставшиеся монеты отправляются в новый пул платежей. Если в этой схеме Алиса выходит из первого пула платежей, три монеты отправляются на выбранный ею адрес, а остальные три монеты отправляются в новый пул платежей между Бобом и Кэрол. В этот момент Алиса снова имеет единоличный контроль над своими монетами, в то время как для Боба и Кэрол мало что изменилось. Эти двое все еще могут сотрудничать, чтобы потратить три оставшиеся монеты, как захотят, или любой из них может выйти в одностороннем порядке, как это сделала Алиса раньше.

Если Боб затем в одностороннем порядке выходит из второго пула платежей, он отправляет две монеты на адрес по своему выбору и одну монету в еще более новый пул платежей (третий), оставив только Кэрол. (Конечно, в этом упрощенном примере дизайн, в котором последний пул платежей заменяется адресом по выбору Кэрол, на самом деле имеет больше смысла, но это деталь реализации.)

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

Внесение платежа в пул платежей

Итак, мы установили, что все участники могут индивидуально вывести свой баланс из пула платежей или, если все они согласны, потратить из пула. Именно этот второй вариант на самом деле позволяет сделать кое-что хитроумное: пул платежей может быть динамическим. Пока все участники согласны, они могут не просто вернуть свои средства или заплатить другим (например, Джулиану), но они могут сделать что-то еще более интересное. Они могут переводить свои средства в более новые версии пула платежей с другим дизайном.

Это, например, позволяет любому из них тратить деньги из пула.

См. также

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

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

Между тем транзакция выглядела как любая другая обычная транзакция биткойнов. Автосалон (или шпионы блокчейна) могут заключить, что Алиса владела всеми шестью монетами и просто использовала одну для покупки автомобиля, а остальные пять оставила в качестве сдачи. Они бы не знали, что некоторые монеты принадлежат Бобу и Кэрол, или что они вообще участвовали в транзакции.

В следующий раз, когда Боб производит платеж, а Алиса и Кэрол сотрудничают, это делается из того же пула платежей, что снова выглядит как обычная биткойн-транзакция для внешнего мира. В итоговой итерации пула платежей Боб может выйти с одной монетой вместо двух. Между тем, те же шпионы блокчейна могли подумать, что Алиса снова совершает платеж, еще больше запутав их. (И даже если шпионы блокчейна каким-то образом выяснят, что адрес на самом деле является пулом платежей между Алисой, Бобом и Кэрол, они все равно не смогут сказать, кто из трех произвел последний платеж.)

Каждый раз, когда Алиса, Боб или Кэрол тратят монеты, транзакция могла исходить от любого из них, и никто за пределами пула платежей не может заметить разницу.

Платежные пулы не позволяют просто тратить. Если Алиса хочет пополнить свой «баланс» в пуле платежей, она тоже может это сделать. Алиса, Боб и Кэрол в этом случае будут сотрудничать, чтобы переместить текущие пять монет на новый адрес Taproot, на который Алиса в той же транзакции отправит одну дополнительную монету с одного из своих (индивидуальных) адресов. Новый адрес Taproot снова будет содержать шесть монет, три из которых принадлежат Алисе, что отражено в ее варианте одностороннего выхода.

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

Кроме того, участники пула платежей могут платить друг другу. Если Алиса, например, заплатит Бобу одну монету, эти трое могут сотрудничать, чтобы отправить средства в новый пул платежей, где у Алисы вычитается монета из ее баланса, а у Боба добавляется монета. Опять же, в блокчейне это будет выглядеть как обычный платеж, и шпионы блокчейна не будут знать, кто кому заплатил и сколько. (Стоит отметить, что Дейв мог аналогичным образом войти в пул, получив внутренний платеж от одного из существующих участников.)

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

Подобно более старой идее, известной как Канальные заводыэти типы платежных пулов могут в конечном итоге даже использоваться для размещения каналов Lightning, хранилищ или других протоколов второго уровня. Это может дать возможность «обернуть» любой тип дополнительного уровня протокола в такие пулы, тем самым скрывая всю их сложность в идентичных и обычных транзакциях.

Источник: https://bitcoinmagazine.com/articles/building-on-taproot-payment-pools-could-be-bitcoins-next-layer-two-protocol?utm_source=rss&utm_medium=rss&utm_campaign=building-on-taproot-payment- Пулы-могли-быть-биткойны-протокол следующего уровня-два