Обратимые транзакции в Ethereum: ERC-20R и ERC-721R

Обратимые транзакции в Ethereum: ERC-20R и ERC-721R

Just Some Ghost

Неизменность транзакций блокчейна - это и благословение, и проклятие.

Фишинг BAYC. Атака PolyNetwork. Компрометация моста Harmony. Кража Ronin. 14 миллиардов долларов в криптовалюте украдено только в 2021 году. Это - и многое другое - кражи с вескими доказательствами.

Но нет кнопки "отмены" (как, например, отмена платежа по кредитной карте).


А что, если бы существовал обратимый тип токенов?

Это вопрос, на который мы в Стэнфорде (Дэн Боне, Цинчен Ван и я) пытались ответить в течение последних нескольких месяцев.

Мы разработали стандарт токенов "opt-in", которые похожи на ERC-20 и ERC-721 и поддерживают обратные транзакции (при наличии достаточных оснований для этого), написали о них документ и реализовали несколько прототипов. Мы назвали эти стандарты токенов ERC-20R и ERC-721R, соответственно.

Теперь, возможно, вы задумались: Обратимые токены? Разве это не противоречит цели блокчейна?

На самом деле - нет. Это предназначено не для того, чтобы заменить токены ERC-20 или сделать все транзакции в Ethereum обратимыми - а чтобы оспаривать их и, возможно, возвращать украденные средства в течение короткого промежутка времени после осуществления транзакции.

Обратите внимание, что транзакция может быть заморожена только на короткий промежуток времени (скажем, на 3 дня), после чего она становится необратимой. На протяжении большей части своего срока службы средства ERC-20R - необратимы.


Обратимость при обмене

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

Однако обмен обратимого токена на необратимый может быть завершен только после закрытия временного окна для отмены транзакции.

Это означает, что обмен "обратимые→необратимые" будет иметь задержку до тех пор, пока средства не станут необратимыми.

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

В зависимости от реализации, можно немедленно продать активы, для которых закрылось временное окно для отмены транзакции (например, продать активы, которые вы получили 3 дня назад).

В этом случае нет необходимости в задержке между обратимыми и необратимыми токенами.


Вот как это работает:

Процесс обратимой транзакции


Предположим, злоумышленник крадет средства у жертвы.

Далее средства могут быть переведены на другие адреса, как показано ниже на рисунке 1. Произойдет следующее:

1. Жертва просит заморозить украденные средства.

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

Оспариваемая транзакция должна быть совершена недавно (существует фиксированное временное окно для отмены транзакции).

2. Судьи принимают или отклоняют запрос на заморозку.

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

Если они отклоняют запрос, процесс останавливается и жертва теряет свой залог. Если они принимают запрос, то контракт управления объявляет freeze (заморозку) контракта ERC-20R/ERC-721R.

3. Выполнение заморозки.

Для НФТ - просто блокирует передачу НФТ. Для ERC-20R - позволит отследить похищенные средства и запретить их перевод.

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

4. Судебный процесс.

Обе стороны могут представить доказательства децентрализованной группе судей. В конечном итоге судьи принимают решение, после чего дают указание контракту управления вызвать функцию reverse или rejectReverse для затронутого контракта ERC-20R или ERC-721R.

Если вызывается функция rejectReverse, то заморозка спорных активов снимается. Процесс может быть длительным, возможно, займет несколько недель.

5. Обратимость, если необходимо.

Функция reverse отправляет замороженные активы обратно жертве.


Рисунок 1: пример графа транзакций.


Отслеживание похищенных средств

Когда средства украдены, они редко просто лежат в одном месте.

Злоумышленник часто перемещает их с одного аккаунта на другой, как "горячую картошку".

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

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

Но мы не можем просто отключить все учетные записи, которые касались активов, так как же нам решить, что и кому заморозить?

Если это НФТ, то заморозка, к счастью, довольно проста: достаточно посмотреть, кто в настоящее время владеет НФТ, и заморозить эту учетную запись.

Однако "делимый" характер денег делает заморозку ERC-20 гораздо более сложной. Средства могут быть разделены между десятками счетов, запущены в миксер анонимности, такой как Tornado, или обменяны на другие цифровые активы.

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

Невозможно всегда правильно определить степень вины каждого аккаунта.

Поэтому мы предусмотрели стандартный процесс заморозки для отслеживания и блокировки украденных средств.


Наш алгоритм гарантирует, что:
  1. При отсутствии сжигания - будет заморожено достаточно активов, чтобы покрыть украденную сумму. (Сожженные активы вычитаются из возвращенной суммы).
  2. Средства на счете будут заморожены только в том случае, если существует прямой поток транзакций от совершенной кражи.
  3. Алгоритм работает в разумной сложности по времени выполнения относительно графа транзакций.

Более подробно алгоритм рассматривается в документе.


Децентрализованная судебная система

Более неоднозначная часть этой головоломки касается "децентрализованного кворума судей".

Кто эти судьи? Как они голосуют? Как они получают вознаграждение?

Эти вопросы в конечном итоге решаются руководством, т.е. тем, кто создает экземпляр ERC-20R/ERC-721R.

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

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


Хотите узнать больше?

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

Если вам интересно, советуем ознакомиться.

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


Оригинал вы найдете здесь.

Перевод подготовлен командой Telegram-канала

@Ghost_In_The_Block

Report Page