TumbleBit: улучшаем приватность и масштабируемость Биткойна

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

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

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

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

Вопрос масштабируемости Биткойна
Что касается масштабируемости, Биткойн сталкивается с проблемой, которую многие разработчики протоколов мечтали бы иметь: слишком много пользователей желают его использовать. “О масштабировании децентрализованных блокчейнов (документ излагающий позицию)” объясняет эту проблему следующим образом:

Сегодняшним блокчейнам, таким как Биткойн, требуется 10 минут или даже больше для подтверждения транзакций, при этом пропускная способность сети составляет около 7 транзакций в секунду. Для сравнения, широко распространенные платежные процессоры, такие как Visa, подтверждают транзакцию в течение нескольких секунд и обрабатывают в среднем 2000 транзакций в секунду, а пиковая скорость обработки достигает 56 000 транзакций в секунду. Очевидно, что существует большой разрыв между тем, где Биткойн находится сегодня, и уровнем масштабируемости основных платежных процессоров.

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

Как работает TumbleBit?
TumbleBit реализуется в виде слоя поверх протокола Биткойна, и потому полностью совместим с сегодняшним протоколом Биткойна (это аналогично тому, как работает Tor, выстроенный поверх протокола IP). Платежи через TumbleBit отправляются через посредника, называемого Тамблер (Tumbler). В нашей документации, мы описываем как ядро протокола TumbleBit может быть запущено в двух режимах. Первый режим являет собой классический Биткойн тамблер (также называемый сервисом микширования или смешивания). В этом посте я расскажу только о втором режиме, где TumbleBit используется в качестве непривязываемого платежного узла.

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

Для того чтобы обеспечить анонимность, TumbleBit требует от всех пользователей открытия платежных каналов (в “фазе сделки”) и закрытия своих платежных каналов (в “фазе высвобождения денег”). Эти две фазы относительно медленны, потому что они требуют, чтобы каждый пользователь разместил на блокчейне Биткойна транзакцию, которая потребует около 10 минут на подтверждение. Тем не менее, между этими двумя фазами, в “платежной фазе”, пользователи могут отправлять быстрые оффчейн платежи. Платежи через TumbleBit могут быть совершены в считанные секунды, что положительно скажется на масштабировании скорости биткойн платежей. Возможно еще более важным является то, что оффчейн платежи не занимают места в блокчейне Биткойна. Это позволяет Биткойну обрабатывать множество оффчейн транзакций, ценой лишь двух транзакций в блокчейне (открывающая и закрывающая платежный канал транзакции). Это также улучшит пропускную способность Биткойна.

У платежных узлов в Биткойне длинная история. Главной инновацией TumbleBit является обеспечение несвязываемости.

Несвязываемость определяется следующим образом. Неформально, несвязываемость гарантирует, что никто не может сказать какой плательщик (Элис) перевел средства какому получателю (Бобу) в течение платежной фазы TumbleBit. Более формально, количество биткойнов, которое каждый пользователь депонировал на блокчейне в течение фазы сделки, является публичным. Количество биткойнов, полученных каждым пользователем в течение “фазы высвобождения денег” также является публичным. Граф взаимодействия произвольно отражает платежи от плательщиков использующих TumbleBit (Элис1,…,ЭлисN) к получателям, использующим TumbleBit (Боб1,…, БобM). Граф взаимодействия является согласованным если он объясняет перевод средств из “фазы сделки” в “фазу высвобождения средств”. Несвязываемость требует, чтобы все согласованные графы взаимодействия были одинаково вероятны. Платежи TumbleBit несвязываемы, поскольку протокол TumbleBit гарантирует, что все согласованные графы взаимодействия одинаково вероятны. Анонимность, обеспечиваемая TumbleBit, растет с числом согласованных графов взаимодействия.

Для достижения несвязываемости без ущерба для безопасности и защищенности биткойн-платежей, TumbleBit также должен гарантировать, что узел не может воровать биткойны от пользователей или “печатать деньги” для себя лично. Для этого, TumbleBit использует два чередующихся протокола: протокол головоломки-обещания и RSA-протокол решения головоломки. Я кратко расскажу о каждом из них. Документация содержит их полное описание.

Краткий обзор TumbleBit
TumbleBit заменяет платежи на блокчейне на решение оффчейн головоломки, где Элис платит Бобу, предоставляя Бобу решение для головоломки. Головоломка генерируется посредством взаимодействия между Бобом и Tumbler (протоколом головоломки-обещания), а решается путем взаимодействия между Элис и Tumbler (протокол решения головоломки). Каждый раз, когда головоломка решается, 1 биткойн переводится от Элис к Tumbler, и каждый раз, когда Боб узнает её решение, 1 биткойн переводится от Tumbler к Бобу. Головоломка представляет собой простое RSA шифрование значения ϵ открытым ключом (pk, N):

z = ϵᵖᵏ mod N

В протоколе головоломки-обещания, Боб убежден, что он получил верное решения для головоломки $z$, и это решение позволит ему увеличить ценность его счета условного депонирования на 1 биткойн. Протокол решения головоломки позволит Tumbler взять 1 биткойн со счета условного депонирования от Элис только в том случае, если узел раскрыл решение RSA-головоломки с разрешения Элис. Вместе, эти два протокола позволяют Элис купить решения для головоломок у Tumbler, позволяя совершить криптографически защищенный справедливый обмен, при котором 1 биткойн (от Элис) обменивается на 1 решение головоломки (от Tumbler). Приобретая решение к головоломке Боба, Элис в сущности платит 1 биткойн Бобу, используя Tumbler в качестве посредника.

Естественно, если Элис дает Tumber точно такую же головоломку, которую Боб получил от Tumbler, Tumbler узнает, что Элис совершает платеж Бобу. Чтобы решить даннную проблему, мы позаимствовали технику под названием RSA-маскировка из оригинальной документации на eCash Чаума под названием ”Слепые подписи для неотслеживаемых платежей“. Боб маскирует головоломку (путем её умножения на случайную величину) перед тем как отправить её Элис. Таким образом, никто кроме Элис и Боба (даже Тамблер) не может провести связь между раскрытой головоломкой Боба и замаскированной головоломкой, которой Элис заплатит Тамблеру. Такая маскировка информации теоретически безопасна. Когда Боб получит решение к замаскированной головоломке, он может раскрыть её и узнать решение к настоящей (оригинальной) RSA головоломке, которую ему выдал Тамблер.

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

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

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

Мы также работаем над улучшением протоколов и ищем новые сферы применения. В текущем протоколе TumbleBit все платежи должны быть одного номинала. Если номинал платежа выставлен в 0,01 биткойна, то если Элис пожелает заплатить Бобу 0,05 биткойна, ей придется совершить пять платежей. В настоящее время мы рассматриваем возможность улучшения протоколов, чтобы позволить TumbleBit проводить платежи произвольных номиналов и при этом не потерять свойство несвязываемости. Мы также изучаем другие сферы применения для TumbleBit, как например повышение конфиденциальности сеть Lightning или при проведении несвязываемой торговли между блокчейнами.

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Чтобы иметь возможность оставлять комментарии, вы должны войти.


Для того , чтобы не регистрироватся, и оставить комментарий , вы можете это сделать через гостевой аккаунт : логин gussar , пароль 123123
Яндекс.Метрика