Мимбл Вимбл: Как урезанная версия Биткойна могла бы улучшить конфиденциальность, взаимозаменяемость и масштабируемость — разом

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

Но, возможно, эти недостатки можно исправить. На прошлой неделе на канале, посвященному исследованию Биткойна, таинственным образом появился новый документ с техническим описанием, написанный анонимным автором «Томом Элвисом Жедюсором» (Tom Elvis Jedusor, Воландеморт — во французском издании романов о Гарри Поттере). Его предложение “Мимбл Вимбл” — ссылка на заклинание Гарри Поттера — представляет собой радикальное упрощение Биткойн-протокола, которое могло бы не только резко повысить уровень конфиденциальности и взаимозаменяемости, но также значительно повысить масштабируемость по сравнению с нынешней архитектурой блокчена Биткойна.

Мимбл Вимбл может поразить сразу двух гигантских зайцев одним выстрелом. И вот как.

Сокрытие сумм

Концепция Мимбл Вимбл базируется на некоторых знакомых нам функциях конфиденциальности Биткойна. Одной из таких функций являются Конфиденциальные Транзакции, которые в основном появились, благодаря разработчику Bitcoin Core и Blockstream Грегори Максвеллу (Gregory Maxwell) и в настоящее время реализованы в качестве альфа-версии так называемых сайдчейн-элементов от Blockstream.

Конфиденциальные Транзакции позволяют отправителям шифровать суммы пересылаемых биткойнов в транзакциях со случайными последовательностями чисел, называемыми «ослепляющими факторами». Этот процесс работает благодаря тому, что транзакции также содержат информацию с помощью которой (только) получатели могут расшифровать зашифрованные суммы. А за счет применения криптографического алгоритма/приема под названием “Обязательство Педерсена”, другие участники также могут выполнять математические действия с зашифрованными суммами. В частности, Биткойн-узлы могут вычитать зашифрованные суммы на отправляющей стороне транзакции («входы») из зашифрованных сумм на принимающей стороне транзакции («выходы»). Если это арифметическое действие приводят к нулю, это означает, что совокупные «входы» и совокупные «выходы» равны, и что биткойны не возникли из ниоткуда.

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

Подтверждение права собственности на сам ослепляющий фактор основано на серии криптографических трюков, являющихся ближайшим эквивалентом криптографических подписей Биткойна, хотя полное описание этих алгоритмов/приемов выходит за рамки данной статьи.

Важно отметить, что часть этих математических маневров и манипуляций включает в себя введение понятия своего рода «фиктивного выхода» (dummy output). Тогда как «выходы» (принимающие стороны) транзакции обычно указывают, при каких условиях получатель транзакции может впоследствии потратить биткойны, эти «фиктивные выходы» на самом деле просто случайные числа, предназначенные гарантировать, что только лицо, создавшее ослепляющий фактор, может потратить биткойны с реальных «выходов» (принимающих сторон).

Объединение транзакций

Другим известным Биткойн-трюком, вдохновившим Мимбл Вимбл, является CoinJoin, впервые предложенный (опять-таки) Максвеллом.

CoinJoin позволяет пользователям собирать их транзакции в одну более крупную, объединяя все «входы» (передающие части транзакции, “от кого”), а также все «выходы» (принимающие части транзакции, “кому”). Это потенциально усложняет понимание того, какие биткойны были отправлены с какого адреса на какой адрес, и мешает предполагать, что все «входы» принадлежат одному пользователю.

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

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

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

Масштабируемость

Необходимо отметить улучшение масштабируемости.

В настоящее время многие транзакции в сети Биткойн связаны между собой. Расходование биткойнов на самом деле не что иное, как превращение «выхода» предыдущей транзакции во «вход» новой. Это означает, что если предыдущая транзакция недействительна, то новая транзакция, являющаяся продолжением предыдущей транзакции, также недействительна. Поэтому, чтобы быть способными проверять все транзакции в сети Биткойн, узлы должны располагать данными обо всех транзакциях, которые когда-либо происходили; то есть отслеживать весь блокчейн. (В настоящее время его размер составляет около 80 гигабайт).

Но с Мимбл Вимбл больше не существует такого понятия, как история транзакции по каждой монете. Каждая монета имеет определенный блок, в котором она был впервые создана. Но с того момента, её значение просто становится частью объединенного множества неизрасходованных «выходов» (предыдущих) транзакций (UTXO), определяющего все «выходы», которые хранят монеты и которые потенциально могут быть потрачены в любое время.

Это означает, что для проверки новых транзакций, узлам больше не нужно заботиться (знать) о предыдущих транзакциях. Единственное о чем они должны заботиться – о том, что используемые ими конкретные «выходы» являются действительными.

Применяя более умные математические алгоритмы, узлы относительно легко могут устанавливать действительность «выходов». Для этого им нужны блок заголовков всех блоков (своего рода индекс блоков без данных обо всех транзакциях) и вышеупомянутые подписи, созданные на основе «фиктивных выходов». И то и другое — относительно компактные множества данных. Все остальные данные транзакций — почти весь блокчейн — можно без какого-либо риска отбросить.

Преимущество данного подхода по сравнению с другими методами анонимизации является существенным. Если бы Конфиденциальные Транзакции и CoinJoin использовались в сети Биткойн с первого дня ее работы, в настоящее время узлам потребовалось бы более 1 терабайта данных для работы. С Мимбл Вимбл им бы потребовалось лишь около 120 гигабайт. И, что может быть даже более интересным: тогда как блокчейн обязательно должен увеличиваться с течением времени, необходимому набору данных для Мимбл Вимбл этого не требуется, на самом деле он даже может уменьшаться в размере, если больше биткойнов будет храниться в меньшем количестве «выходов».

Совместимость

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

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

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

Полное техническое пояснение концепции Мимбл Вимбл, в том числе, математические подробности, см. в whitepaper.

Источник: Bitcoin Magazine



Categories: Инфраструктура, Разработчикам, Стандарты, Теория, Технологии

Tags: , ,

Leave a Reply

17 Комментарий на "Мимбл Вимбл: Как урезанная версия Биткойна могла бы улучшить конфиденциальность, взаимозаменяемость и масштабируемость — разом"

Notify of
avatar
trackback
Время распределяющей шляпы? MimbleWimble рассматривает запуск собственного блокчейна

[…] вы ещё не знакомы с MimbleWimble, то стоит отметить, что старт проекту […]

trackback
Взаимозаменяемость биткойнов в 2017 (и дальнейшем будущем) – Bit•Новости

[…] смешивания. Кроме того, в 2016 году было был создан протокол MimbleWimble, который позволит удалить из блокчейна транзакции, […]

trackback
Биткойн: цифровое золото или цифровая наличность? И то и другое! – Bit•Новости

[…] Буквально несколько лет назад мы даже не думали, что разработчики команды Bitcoin Core смогут создать что-то лучшее, чем просто корпоративная сеть поверх блокчейна; Технология, которая поистине устраняет потребность в доверенных лицах в качестве посредников. Я говорю о решениях второго уровня, таких как сеть Lightning, Сайдчейны и MimbleWimble. […]

trackback
Тур Деместр: 6 основных выводов из Круглого Стола Сатоши – Bit•Новости

[…] ни на секунду не прекращается. Lighting, Сайдчейны, Мимблвимбл, Умные Подписи, Joinmarket… каждый из этих проектов […]

Анонимно
Гость

Все остальные данные транзакций — почти весь блокчейн — можно без какого-либо риска отбросить

То есть нам предлагают доверять, что кто-то в прошлом проверил транзакции, вместо того, чтобы делать это самостоятельно?

Анонимно
Гость

Нет, Вы все также проверяете самостоятельно. Только теперь нет понятия «маленькая» транзакция. Теперь каждый блок блокчейна это одна большая транзакция. Эта большая транзакция включает в себя новые входы, если таковые созданны, с подписями и отсылкой на соответствующие выходы в предыдущем блоке, а так же данные о абсолютно всех выходах. И проверить соответствие этих данных может любой желающий самостоятельно. Теперь нет истории для каждой отдельной транзакции, теперь есть история, только одна большая, и общая для всех. Чтобы понять выше написанное разберитесь как создается coinjoin транзакция.

Анонимно
Гость
Теперь каждый блок блокчейна это одна большая транзакция. Эта большая транзакция включает в себя новые входы, если таковые созданны, с подписями и отсылкой на соответствующие выходы в предыдущем блоке, а так же данные о абсолютно всех выходах. Это не сократит размер блока и не сделает его ненужным в будущем, чтобы его можно было отбросить. Чтобы понять выше написанное разберитесь как создается coinjoin транзакция. Coinjoin транзакция ничем не отличается от обычной транзакции в которой ты отправляешь монеты с нескольких выходов (обычно так и происходит, связывая используемые адреса и уменьшая приватность) на несколько (даже в обычной транзакции монеты идут на два адреса… Read more »
Анонимно
Гость

А где говорится, что блоки не нужны в будущем?

Анонимно
Гость

Это означает, что для проверки новых транзакций, узлам больше не нужно заботиться (знать) о предыдущих транзакциях. Единственное о чем они должны заботиться – о том, что используемые ими конкретные «выходы» являются действительными.

Все остальные данные транзакций — почти весь блокчейн — можно без какого-либо риска отбросить.

Анонимно
Гость
Ну, и где здесь говорится, что блоки не нужны?? Если быть внимательным, то речь о уменьшении количества данных, то-есть, сократить размер блокчейна. Например, в текущей реализации сети каждая транзакция имеет свой ID — длинная строка хеша. В каждом блоке может быть тысяча, и более, транзакций, и у каждой свой ID хеш. Если избавится хотя-бы от этих данных, то блокчейн прилично похудеет. А еще, на входах каждой транзакции указывается с какой транзакции берется этот вход(отсылка на не потраченный выход и ID его транзакции) , а входов в транзакции может быть много, и того можно получить многократное упоминание одного и того же… Read more »
Анонимно
Гость

MimbleWimble несовместим с существующими приложениями на блокчейне Bitcoin, такими как цветные монеты. Получается, его если и можно внедрять, то только в качестве опциональной возможности, но не как замену классическим транзакциям.

Анонимно
Гость

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

trackback
Что крипто-децентралисты думают по поводу дебатов о размере блока | Заработок онлайн доступный каждому

[…] […]

Анонимно
Гость
«Все остальные данные транзакций — почти весь блокчейн — можно без какого-либо риска отбросить.» Насколько я понимаю, даже сейчас можно без ущерба для безопасности отбросить часть блокчейна. А именно — скачиваешь весь блокчейн на данный момент (около 80 Гб), проверяешь валидность всех транзакций, составляешь таблицу всех не потраченных выходов, отделяешь цепочку заголовков блоков от всего блокчейна. Таблицу всех не потраченных выходов и цепочку заголовков блоков оставляешь себе, остальное удаляешь. Если приходит новый блок, проверяешь по таблице все ли транзакции валидны. Если да, переписываешь таблицу и добавляешь заголовок нового валидного блока в цепочку заголовков блока. При форке, когда цепь раздвойняется, придется… Read more »
Анонимно
Гость

Насколько я понимаю, даже сейчас можно без ущерба для безопасности отбросить часть блокчейна. А именно – скачиваешь весь блокчейн на данный момент (около 80 Гб), проверяешь валидность всех транзакций, составляешь таблицу всех не потраченных выходов, отделяешь цепочку заголовков блоков от всего блокчейна.

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

Анонимно
Гость

Где Вы такое прочитали?

trackback
Четверть всех узлов биткойна уже используют код SegWit | Заработок онлайн доступный каждому

[…] […]

wpDiscuz