MimbleWimble в Litecoin – как это будет смотреться?

Изучаем обновление (LIP 0002 и LIP 0003) для Litecoin с поддержкой MimbleWimble, развернутое пока в испытательной сети.

На 30 сентября был намечен пуск реализации MimbleWimble в испытательной сети Litecoin – опыта с новеньким увлекательным протоколом, потенциально способным повысить взаимозаменяемость токенов и масштабируемость сети, поддержка которого реализована через блоки расширения (extension blocks). MimbleWimble (дальше, ради сокращенности, MW) – многообещающий протокол, так как он привносит компонент, которого недостает почти всем криптовалютам, таковым как Bitcoin либо Litecoin: взаимозаменяемость цифровых монет.

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

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

Хотя владение скрытыми ключами как и раньше гарантирует право принадлежности на выходы транзакций, подтверждение владения скрытым ключом в MW достигается не через конкретное подписание транзакции. Оно достигается при помощи способов, схожих CoinJoin и Confidential Transactions. Обладатели входа и выхода сформировывают мультиподпись для подписания всякого блока, устраняя необходимость в адресах, скрывая суммы отдельных транзакций и при всем этом существенно повышая масштабируемость в сопоставлении с существующими распределенными регистрами на базе UTXO (где UTXO расшифровывается как Unspent Transaction Output, неизрасходованный выход транзакции).

Что такое MimbleWimble?

MimbleWimble (MW) – это сравнимо новейший протокол, повышающий не только лишь конфиденциальность, да и масштабируемость блокчейнов. Заглавие протокола происходит из серии книжек о Гарри Поттере; «Мимбл вимбл» – это заклятие, мешающее противнику верно произнести свои заклинания (понятно также как «заклятие косноязычия»).

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

Как и Биткойн, этот протокол был размещен неведомым создателем под псевдонимом Tom Elvis Jedusor (истинное имя Волан-де-Морта во французском переводе). Псевдонимы из вселенной Гарри Поттера совершенно оказались всераспространены посреди разрабов, внесших собственный вклад в развитие протокола, а первую реализацию MW, Grin, запустил Игнотус Певерелл (у Роулинг – открыватель плаща-невидимки).

Ниже приведена короткая хронология истории протокола MimbleWimble (подробнее о ней мы писали тут):

Короткая история MimbleWimble

  • 2 августа 2016 г.: Tom Elvis Jedusor постит в IRC .onion-ссылку на текстовый файл, озаглавленный MimbleWimble и датированный 19 июля.
  • Август 2016: Эндрю Поэлстра и Брайан Бишоп инспектируют файл и повторно выкладывают статью. В последовавшем обсуждении остальные создатели дали MW положительную оценку и признали плюсы протокола. Эндрю Поэлстра и Ави Кулкарни разработали версию протокола с усовершенствованным масштабированием.
  • 8 октября 2016 г.: Эндрю Поэлстра выпускает статью о масштабировании Биткойна.
  • 20 октября 2016 г.: человек под псевдонимом Игнотус Певерелл в IRC анонсировал проект на базе MW, нареченный Grin.
  • Март 2017: Игнотус Певерелл опубликовал на Github техническое введение к MW и Grin.
  • Ноябрь 2017: запущена тестовая сеть проекта Grin.
  • Март 2018: релиз 2-ой версии тестнета Grin, также возникновение очередной реализации MW, BEAM.
  • 15 января 2019: пуск главный сети Grin, первой реализации MW.
  • 17 января 2019: релиз главный сети BEAM.
  • 20 октября 2019: публикация предложений (LIP 0002 и 0003) по добавлению MW в Litecoin через блоки расширения.
  • 30 сентября 2020: активация MW с блоками расширения в испытательной сети Litecoin.

MW дает, может быть, наилучший соглашение меж конфиденциальностью и масштабируемостью в сопоставлении с другими решениями, таковыми как Confidential Transactions и ZK-STARKs.

При наилучшей конфиденциальности, эти другие способы предполагают повышение размера транзакций, так что на нынешний денек они масштабируются ужаснее, чем MW. Как следует, увеличение конфиденциальности таковыми методами существенно ускорило бы разрастание блокчейна Litecoin. Гарантии приватности, предлагаемые MW, не безупречны, но они лучше, чем в имеющихся UTXO-блокчейнах.

Еще одна принципиальная изюминка MW состоит в том, что он основывается на испытанной десятилетиями эллиптической криптографии. Это значит, что сохранность протокола основывается на тех же допущениях, что и в Биткойне, а конкретно на вычислительной трудности задачки дискретного логарифмирования.

Главный недочет MW состоят в том, что транзакции должны проводиться в интерактивном режиме, при всем этом отказ от концепции адресов просит для совершения транзакции взаимодействия и коммуникации 2-ух сторон. Не считая того, в MW отсутствуют скрипты, что делает неосуществимым развертывание через софт-форк, также внедрение с Lightning Network в сети Litecoin (хотя работа над решением данной препядствия ведется).

Как работает MimbleWimble?

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

Для передачи BTC, входы транзакций делают выходы, которые разрешают юзеру растрачивать средства, ассоциируемые с теми адресами, скрытый ключ от которых он контролирует. При отправке 5 ₿, если у вас нет входа, содержащего ровно 5 ₿, ваш кошелек собирает достаточное количество входов, чтоб выслать бóльшую сумму – скажем, 7 ₿ – и получить сдачу в размере 2 ₿. Все данные транзакций являются общедоступными: в блок-эксплорере можно узреть использованные входы, информацию о выходах и сумму для каждой определенной транзакции.

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

Для транзакций MW тоже употребляются списки входов и выходов, но разница с биткойн-транзакциями состоит в том, что MW поддерживает технологию Confidential Transactions (дальше, ради сокращенности, CT), шифрующую все данные транзакций, заместо того, чтоб демонстрировать их в ординарном текстовом формате. В итоге суммы транзакций в MW оказываются укрыты.

В CT употребляется криптографический примитив под заглавием «схема обязанностей Педерсена», где сумму транзакции могут созидать лишь ее участники. Заместо открытия для проверки всего набора UTXO, схема гарантирует, что суммы входов и выходов являются достоверно равными.

Входы и выходы транзакций можно представить в виде последующей формулы:

C = rG+vH

где C – это обязательство Педерсена, G и H – точки на эллиптической кривой, v – значение UTXO, а r – ослепляющий фактор, играющий роль секретного ключа для обфускации (запутывания) значения UTXO. Совместно rG представляет собой открытый ключ.

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

К примеру, транзакция с 2-мя входами и одним выходом быть может представлена последующим образом:

  • входы = (G+2H) + (2G+4H)
  • выход = (7G+3H)

Транзакция проверяется и валидируется, гарантируя, что (7G + 3H) — (3G + 6H) = 4G3H = 0, и в итоге мы получаем достоверное познание, что никаких новейших средств в обход правил протокола в рамках транзакции сотворено не было.

Чтоб издержать выход в MW, нужно знать случайный коэффициент ослепления r и значение выхода v. Значение r понятно лишь отправителю транзакции, и потому никто иной этот выход издержать не может. Кроме этого, употребляется также разработка rangeproof («подтверждение спектра»), гарантирующая, что полное количество монет в сети не превосходит данного правилами протокола. В 2-ух словах, rangeproof являются подтверждениями того, что сумма выходов (хоть и они и зашифрованы) не является отрицательным значением либо таковым значением, которое даст плохой результат при сложении с иными значениями.

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

Кроме входов и выходов, блоки MW имеют также ядро, которое служит двум целям:

  • это ключ с мультиподписью для всех хозяев входов и всех хозяев выходов, обеспечивающий аутентификацию (другими словами что все входы подписаны) и доказывающий отсутствие инфляции;
  • и это также подтверждение того, что транзакции складываются в нулевое значение, другими словами разница меж входами и выходами равна нулю.
  • MW привносит в UTXO-модель очередное изменение, повышая приватность транзакций средством интеграции CoinJoin для агрегирования транзакций в единый блок. CoinJoin – это способ сохранения конфиденциальности, когда входы от нескольких юзеров соединяются воединыжды для сотворения анонимного огромного количества, а потом перемешиваются меж собой, что значительно затрудняет построение графа транзакций.

    Графическое представление CoinJoin. : Wikipedia.

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

    Но MW – это в том числе и включение CoinJoin по дефлоту. Одно из следствий этого состоит в том, что две валидные MW-транзакции могут быть объединены в одну, как это показано на рисунке ниже.

    Набросок 1: MimbleWimble-транзакции состоят из входов, выходов и ядер. Любые две валидные MimbleWimble-транзакции могут быть объединены в одну.

    Применительно ко всему блокчейну, это дозволяет соединить меж собой все транзакции, сжав таковым образом общий регистр. Любой блок – это отдельная транзакция, и любой блок содержит в себе набор входов, набор выходов и набор ядер. Данные из старенькых блоков могут быть удалены, что уменьшает размер регистра, и новеньким участникам нет необходимости закачивать все данные. Полное содержимое транзакций удаляется, но заглавия блоков остаются.

    Так как все входы формируются из старенькых выходов, любой отдельный вход и любой потраченный выход можно без утрат стереть. Так как сумма входов минус сумма выходов равна ядру, мы можем удалить схожие входы и выходы. Ядро – это общая транзакция, аутентифицируемая всеми участниками 2-ух транзакций, показанных на рисунках 1 и 2. Как следует, входы и выходы могут быть алгебраически сокращены, как показано на рисунке 2 ниже.

    Набросок 2: входы и выходы могут быть алгебраически сокращены, чтоб удалить промежные шаги и уменьшить размер блокчейна.

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

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

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

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

    Все в блокчейне стирается, кроме:

    • coinbase-входов – фиксированного количества монет на блок, добавляемых к имеющейся валютной массе;
    • непотраченных выходов, дающих нам информацию о конечном состоянии системы;
    • ядер транзакций.

    До сего времени мы гласили о различиях MW-регистров от UTXO-модели и о методах, используемых в MW для обеспечения большей приватности и эффективности. Спецификации MW, применяемые в Litecoin, описаны в LIP 0003. Но Litecoin не будет подменять собственный UTXO-блокчейн сиим новеньким протоколом. То, как конкретно активизируется в Litecoin поддержка MW, разъясняется в LIP 0002: это реализуется через блоки расширения, о которых я расскажу ниже.

    Что такое блоки расширения?

    Блоки расширения (дальше, ради сокращенности, БР) были предложены Джонсоном Лау в 2017 году как метод ввода и вывода средств из доп блока с внедрением особых опкодов (операционных кодов), построенных на базе предшествующего предложения Лау от 2013 года.

    БР необходимы для включения в блокчейн-сеть новейших протоколов без необходимости конфигурации правил консенсуса. А именно, внедрение БР дозволит Лайткойну воплотить поддержку протокола MW без конфигурации архитектуры основного UTXO-блокчейна. Так как протокол MW не является скриптовым, софт-форк был бы неосуществим.

    Заместо этого, он, подобно сайдчейну, будет работать как отдельный слой, наряду с обыкновенными блоками, и майнеры будут коммитить в корневой хеш доп блока транзакций. MW-блоки будут формироваться параллельно обыкновенной цепочке с этим же средним интервалом в 2,5 минутки.

    Таковым образом, MW-транзакции предоставляют юзерам Litecoin возможность избрать уровень конфиденциальности: можно применять прозрачный UTXO-регистр или MW-слой, обеспечивающий наиболее суровый уровень приватности. Опосля активации MW в главный сети юзеры сумеют перемещать свои LTC в MW-слой при помощи транзакций ввода (привязки, peg-in), чтоб пользоваться преимуществами наилучшей взаимозаменяемости цифровых монет и масштабируемости сети.

    Транзакции peg-in

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

    Для peg-in транзакций, входы в обыкновенном блоке разрешаются или как выходы в обыкновенном блоке, или они могут быть высланы на bech32-адрес, содержащий сумму и обязательство соответственного ядра на стороне MW.

    В интегрирующей транзакции майнер посылает переводимые в MW монеты на Хогвартс-адрес (aka адресок расширения), который дублирует обязательство в заголовок БР.

    Peg-in транзакции предполагают отправку LTC-входа в ядро MW-транзакции. Интегрирующая транзакция добавляется к любому блоку главный цепочки, и майнеры посылают переводимые в MW монеты на Хогвартс-адрес, который дублирует обязательство в заголовок блока расширения в MW.

    Чтоб майнеры не причисляли монеты сторонним получателям (припоминаю, что в протоколе MW отсутствует понятие адресов), обязательство ядра coinbase-транзакции кодируется в bech32-адресе. В итоге peg-in транзакция быть может верифицирована в главном блокчейне Лайткойна.

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

    Сейчас, когда мы узрели, как работают транзакции ввода, давайте поглядим, как работают транзакции вывода монет со слоя MW в основную UTXO-цепочку Лайткойна.

    Транзакции peg-out

    Вывести LTC из блоков расширения можно средством транзакции вывода (peg-out). Это делается методом сотворения MW-транзакции, содержащей peg-out ядро с указанием суммы вывода и адресок, на который должны быть высланы монеты. Выводимые монеты отправляются на LTC-адрес как часть интегрирующей транзакции.

    Для peg-out транзакций, монеты в БР должны быть разрушены, а потом высланы из Хогвартс-адреса. Предел эмиссии Лайткойна в 84 миллиона монет не должен нарушаться, потому, чтоб вывести LTC из слоя MW назад на основную цепочку, на MW-слое эти LTC должны быть уничтожены. Неважно какая сокрытая инфляция будет ограничиваться слоем MW и блоков расширения и может привести к разнице в обменном курсе меж монетами с обеих сторон, хотя для поддержки MW-LTC никакого обмена не требуется.

    Litecoin-адрес получателя сохраняется в ядре peg-out транзакции на слое MW. Таковым образом, peg-out адреса на основном блокчейне могут быть сопоставлены с Litecoin-адресами в MW-ядрах в блоках расширения.

    Peg-out выходы на основном блокчейне должны быть заблокированы до получения 6 подтверждений (в среднем, приблизительно на 15 минут). Определение рационального времени блокировки, также размера блоков расширения, просит доп исследовательских работ.

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

    Кратко, лишь освеженные MW-ноды могут валидировать как обыденные litecoin-транзакции, так и peg-in/peg-out транзакции и MW-транзакции снутри блоков расширения. Необновленные ноды могут лишь на стороне основного блокчейна валидировать обыденные LTC-транзакции и количество монет, вводимых и выводимых из блоков расширения.

    Заключение

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

    Для юзеров LTC достоинства явны: увеличение конфиденциальности и эффективности, плюс понижение издержек на пуск и поддержку ноды (за счет оптимизации размера блокчейна и сокращения времени, нужного для синхронизации и проверки его истории). Притом что MW и блоки расширения обеспечивают приватность по дефлоту, большая часть пользовательской активности, по-видимому, еще длительное время будет происходить в прозрачном UTXO-блокчейне. Как мы лицезреем на примере SegWit, принятие экосистемой новейшего технического решения просит времени. И LIP 0002, и LIP 0003, будут активированы по схеме BIP 8, согласно которой у майнеров будет возможность активировать конфигурации досрочно, с нижним порогом сигнализации 75%.

    Есть в этом определенные достоинства и для Биткойна. Беря во внимание конструктивно отличающийся дизайн MW, то, что блоки расширения еще не были протестированы «в боевых критериях», также консерватизм Биткойна в отношении обновлений протокола, опыты Лайткойна с MimbleWimble могут стать для Биткойна ценным источником инфы о том, когда и каким образом будет лучше включить в Биткойне поддержку Confidential Transactions либо MimbleWimble.

     

    Author: Anonim