Как замести следы в блокчейне? Наш концепт миксера для транзакций

в 14:22, , рубрики: end2end, блокчейн, децентрализованные сети, криптовалюта, криптография, миксеры, Системы обмена сообщениями, токены

Привет!

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

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

Как замести следы в блокчейне? Наш концепт миксера для транзакций - 1

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

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

Принцип работы: собрать и поделить

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

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

Миксер копит сообщения и переводы, и рассылает их адресатам со своего адреса. Пользователь Б получит сообщение не от пользователя А, а от миксера.

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

Никому нельзя верить

В Интернете нельзя доверять никому, в том числе миксеру. Поэтому мы сделали так, чтобы посредник не мог расшифровать текст сообщения – только адрес получателя. Это достигается тем, что сообщение шифруется два раза.
Как замести следы в блокчейне? Наш концепт миксера для транзакций - 2
Классический механизм отправки

Как замести следы в блокчейне? Наш концепт миксера для транзакций - 3
Механизм отправки через миксер

Поясню словами, как происходит процесс.

  1. Алиса первый раз шифрует ключом Боба текст сообщения.
  2. Потом добавляет адрес Боба и шифрует еще раз ключом Миксера.
  3. Миксер может расшифровать только свою часть и получить адрес Боба.
  4. После этого Миксер добавляет к зашифрованному Алисой сообщению ее адрес и шифрует ключом Боба.
  5. Боб извлекает сообщение из блокчейна, при первой расшифровке он узнает отправителя, при второй — текст сообщения.

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

Еще немного высокой кухни

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

Как замести следы в блокчейне? Наш концепт миксера для транзакций - 4

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

У основателей миксера будет выбор, делать ли его публичным (доступным для всех), при этом брать плату за транзакции и получать прибыль. Либо не регистрировать его в общем реестре.Тогда миксер будет анонимным, но и получать профит от транзакций он не будет. Это вариант для тех, кто хочет настроить сервис для себя – например, для переписки сотрудников компании.

Если мы успешно внедрим концепт, чуть позже сделаю «технический» пост на эту же тему.

Автор: JustDeveloper

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js