Как концептуально работает Tornado Cash, который попал под санкции США?

HabrXuất bản vào 2022-08-24Cập nhật gần nhất vào 2022-08-24

Tóm tắt

8 августа 2022 года Управление по контролю за иностранными активами Министерства финансов США (OFAC) наложило санкции на Tornado Cash, миксер криптовалюты, что вызвало шквал обсуждений в криптосреде. В этой статье разберем как концептуально работает криптомиксер Tornado Cash, что было понять, что есть в этой технологии, что против нее вводят санкции.

Что такое Tornado Cash?

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

Tornado Cash — это сервис, который смешивает разные потоки потенциально идентифицируемой криптовалюты и таким образом не дает отследить переход криптовалюты с одного адреса на другой.

Tornado Cash — является децентрализованным криптомиксером, это значит, что он использует смарт-контракты, которые принимают криптовалюту, а затем позволяют выводить их на другие адреса. Поскольку вывод средств производится из пулов ликвидности смарт-контрактов проекта, невозможно узнать, кто является первоначальным отправителем. Это скрывает поток средств и затрудняет их отслеживание.

Анонимная связка адреса отправителя и адреса получателя возможна благодаря технологии доказательства с нулевым разглашением (Zero-knowledge proof). Доказательство с нулевым разглашением позволяет вам доказать истинность утверждения, не раскрывая содержание утверждения и не раскрывая, как вы обнаружили истину. Конкретно Tornado Cash использует протокол zk-SNARK.

Важно отметить, что, используя zk-SNARK, Tornado Cash позволяет вам вносить в контракт фиксированные суммы ETH, DAI, USDC или USDT. Когда вы вносите деньги (Deposit), вы получите резервный код, который вам понадобится для вывода (Withdrawal) средств позже.

Почему фиксированные суммы? Например, вы внесли 0,1 ETH, а также помимо вас это сделали еще 303 человека. А поскольку процес передачи средств в смарт-контракт являтся общедоступной информацией, когда вы вносите 0,1 ETH, эти 0,1 ETH позже можно будет отследить до этой группы из 303 человек, но не до вас напрямую.

Алгоритм работы

Размещение (Deposit)

Прежде чем Алиса вложит деньги в Tornado Cash, ей нужно будет выбрать два случайных числа: secret и nulifier, а затем она вычислит хэш этих двух случайных чисел.

Чтобы внести(разместить) депозит в Tornado Cash, Алиса отправит 1 ETH и хэш чисел secret и nulifier. Пускай в нашем примере это будет 0x404.

⠀⠀

Отправленный эфериум хранится в смарт-контракте, как и хэши, которые необходимы для определения обязательств, хэш позже будет использоваться для вывода этого 1 ETH из Tornado Cash.

⠀⠀

Вывод средств

⠀⠀

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

⠀⠀

Итак, неправильный путь это когда выводящий средства, передаст в смарт контракт числа secret и nulifier, а смарт-контракт проверит, что хэш есть в хранилище смарт-контракта и отдаст нужное кол-во ETH. Подобный процесс раскрывает личность выводящего деньги из смарт-контракта. Например, мы знаем, что Алиса разместила в смарт-контракте хэш 0x404,а позже появляется анонимный пользователь передающий secret и nulifier, так что хеш secret и nulifier равен 0x404, но поскольку хеш-функция является односторонней функцией, это означает, что единственный человек, который знает secret и nulifier, который хэширует в 0x404 - это Алиса. Именно так личность пользователя раскрывается при снятии средств. Итак, как мы можем решить эту проблему.

⠀⠀

Если каким-то образом есть возможность доказать, что я знаю secret и nulifier, так что hash (secret,nulifier) есть в смарт-контракте, но без раскрытия secret и nulifier. Тогда анонимный пользователь мог бы отсылать в смарт-контракт некое доказательство что он знает secret и nulifier без фактической отправки этих чисел или хэша, а смарт-контракт проверял бы, действительно ли доказательство, при этом смарт-контракт не знал бы, предназначено ли доказательство для 0x404 или для 0x403 или 0x505, которые также записаны в смарт-контракт, другими словами, доказательство не раскрывало бы личность анонимного пользователя.

⠀⠀

⠀⠀

Подобный механизм называется доказательством с нулевым разглашением, то есть, когда вы можете доказать, что вам известна какая-то информация, не раскрывая ничего о фактической информации. Конкретно Tornado Cash использует криптографический протокол zk-SNARK.

⠀⠀

Что за nulifier?

⠀⠀

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

⠀⠀

⠀⠀

И тогда "внутри" zk-SNARK будет проверятся:

⠀⠀

— что hash(secret,nulifier) есть в смарт-контракте;

— корректность, что хэш от nulifier == hash(nulifier).

⠀⠀

После этих проверок, смарт-контракт отдаст ETH и "запишет", что вывод средств был произведен.

⠀⠀

Хранение данных

⠀⠀

Для того, чтобы осуществлять большое количество проверок хэшей в Tornado Cash данные хранится в Merkle tree.

⠀⠀

Использование хеш-деревьев позволяет "малыми" затратами проверять принадлежности определённого блока данных к множеству.

⠀⠀

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

⠀⠀

Зеленым отмечены хэши которые понадобятся нам для проверки, что синий элемент принадлежит к множеству средств внутри Tornado Cash

⠀⠀

Доказательства с нулевым разглашением ZKPs

⠀⠀

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

⠀⠀

⠀⠀

Концептуальный пример для интуитивного понимания данных доказательства в условиях нулевого разглашения это представить себе пещеру с одним входом, но двумя путями (путь A и B), которые соединяются через общую дверь, запертую кодовой фразой. Алиса хочет доказать Бобу, что она знает код доступа к двери, но не раскрывая код Бобу. Для этого Боб стоит снаружи пещеры, а Алиса идет внутрь пещеры, выбирая один из двух путей (при этом Боб не знает, какой путь был выбран). Затем Боб просит Алису вернуться к входу в пещеру по одному из двух путей (выбранных случайным образом). Если Алиса изначально выбрала путь А к двери, но затем Боб просит ее вернуться по пути Б, единственный способ решить головоломку для Алисы — это знать код доступа к запертой двери. Этот процесс может быть повторен несколько раз, чтобы доказать, что Алиса знает код доступа к двери и не выбрала правильный путь изначально с высокой степенью вероятности.

⠀⠀

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

⠀⠀

Итог

⠀⠀

Теперь у нас есть все, чтобы понять, как работает Tornado Cash (TC). Когда вы вносите 1 ETH по контракту Tornado Cash , вы представляете хэш доказательство. Этот хэш будет храниться в Merkle. Когда вы снимаете этот 1 ETH с другой учетной записи, вы должны предоставить 2 доказательства с нулевым разглашением. Первый доказывает, что дерево Меркель содержит ваши хэши. Это доказательство является доказательством с нулевым разглашением. Но этого недостаточно, потому что вам должно быть разрешено снять этот 1 ETH только один раз. Из-за этого вы должны предоставить nulifier, уникальный для доказательства. Контракт хранит этот nulifier,и это гарантирует, что вы не сможете снять внесенные деньги более одного раза.

⠀⠀

Заключение

⠀⠀

Санкции на смарт-контракт являются интересным прецедентом, так как смарт-контракт сам по себе автономен, и пока не ясно к каким образом должна выглядеть, например, полная блокировка сервиса на уровне сети Ethereum.

IvanRomanovich для Habr.com.

Nội dung Liên quan

Các Nhóm Công Giáo Và Thực Thi Pháp Luật Cảnh Báo Đạo Luật CLARITY Có Thể Làm Suy Yếu Các Biện Pháp Bảo Vệ Chống Tội Phạm Tiền Mã Hóa

Một liên minh gồm các nhà lãnh đạo Công giáo, nhóm vận động thực thi pháp luật và chống buôn người cảnh báo rằng Đạo luật CLARITY có thể làm suy yếu các biện pháp bảo vệ được sử dụng để chống lại tội phạm sử dụng tiền mã hóa. Chỉ trích tập trung vào các điều khoản bảo vệ nhà phát triển phần mềm phi lưu ký khỏi việc bị đối xử như tổ chức chuyển tiền. Phản đối này chạm đến một trong những câu hỏi khó nhất trong quy định về tiền mã hóa: làm thế nào để phân biệt phần mềm trung lập với hoạt động trung gian tài chính. Phần mềm phi lưu ký, như ví và giao thức phi tập trung, là trung tâm của DeFi nhưng cũng tạo ra thách thức cho cơ quan thực thi khi bị kẻ xấu lợi dụng. Đạo luật CLARITY nhằm tạo ra các quy tắc cấu trúc thị trường rõ ràng hơn, nhưng sự phản đối cho thấy một số nhà làm luật sẽ cân nhắc các yếu tố như buôn người, lẩn tránh trừng phạt và khả năng hiển thị với cơ quan thực thi khi quyết định phạm vi bảo vệ cho nhà phát triển. Sự phản đối không có nghĩa đạo luật bị loại bỏ, nhưng có thể dẫn đến các sửa đổi, phạm vi bảo vệ hẹp hơn hoặc yêu cầu báo cáo bổ sung. Đối với các công ty tiền mã hóa, luật rõ ràng có thể thúc đẩy đầu tư, nhưng nếu bị coi là làm suy yếu chống tội phạm, con đường chính trị sẽ khó khăn hơn.

bitcoinist4 giờ trước

Các Nhóm Công Giáo Và Thực Thi Pháp Luật Cảnh Báo Đạo Luật CLARITY Có Thể Làm Suy Yếu Các Biện Pháp Bảo Vệ Chống Tội Phạm Tiền Mã Hóa

bitcoinist4 giờ trước

Vụ Bê Bối Gian Lận Nghiêm Trọng Của Kỳ Lân Mã Hóa Blockstream: Toàn Bộ Cốt Truyện

Từ đầu năm, Blockstream - công ty do Bitcoin tiên phong Adam Back đồng sáng lập - liên tục đối mặt với tranh cãi. Gần đây, tài khoản điều tra NatInfoSec đưa ra cáo buộc nghiêm trọng rằng các ghi chú khai thác Bitcoin (BMN) của Blockstream có dấu hiệu lừa đảo hình xoắn ốc (Ponzi). Cáo buộc tập trung vào bốn điểm chính: 1. **Năng lực khai thác và thanh toán bị nghi ngờ:** NatInfoSec tính toán để đáp ứng nghĩa vụ BMN, Blockstream cần vận hành công suất khai thác (hashrate) từ 20-45 EH/s, nhưng bảng điều khiển của họ chỉ hiển thị 15 EH/s. Không có bằng chứng công khai nào (hồ sơ lưới điện, dữ liệu hải quan, chia sẻ từ mining pool) xác nhận công suất khai thác đủ lớn như vậy. Điều khoản "Substitute Performance BTC" trong hợp đồng cho phép Blockstream sử dụng BTC từ bất kỳ nguồn nào để thanh toán, làm dấy lên lo ngại về tính minh bạch của nguồn tiền. 2. **Lợi suất cao bất thường:** Các ghi chú BMN được phát hành thông qua nền tảng STOKR với lợi suất cố định lên tới gần 20%/năm, một mức rất cao và khó duy trì trong ngành khai thác Bitcoin vốn biến động mạnh. 3. **Tiền sử pháp lý của lãnh đạo và vấn đề công bố thông tin:** Christopher William Cook, cựu lãnh đạo quan trọng trong mảng khai thác của Blockstream và hiện là CEO của Exacore (công ty được tách ra từ hoạt động khai thác), có tiền án lừa đảo qua thư từ năm 2008. Thông tin này không được tiết lộ trong các tài liệu phát hành BMN. Hồ sơ của Cook tại NASA trong tài liệu marketing cũng bị thổi phồng. 4. **Liên hệ đến BSTR và việc phát hành SPAC:** Có lo ngại rủi ro từ BMN có thể ảnh hưởng đến Bitcoin Standard Treasury Company (BSTR) - một công ty liên quan đến Adam Back đang chuẩn bị niêm yết qua SPAC. Tuy nhiên, BitMEX Research chỉ ra rằng về mặt pháp lý, các rủi ro này có thể được tách biệt nếu không có điều khoản bảo lãnh tập đoàn. Phản ứng từ cộng đồng và BitMEX: BitMEX Research thừa nhận tiền án của Cook là có thật và bày tỏ lo ngại về lợi suất cao, nhưng cho rằng nhiều cáo buộc khác thiếu bằng chứng hoặc gây hiểu nhầm, đặc biệt là về mối liên hệ pháp lý giữa BMN và BSTR. Samson Mow, cựu CSO của Blockstream, bảo vệ hoạt động khai thác là có thật. Tuy nhiên, các nhà phê bình như Matthew R. Kratter và Chris Guida tiếp tục đặt câu hỏi về khả năng xác minh độc lập công suất khai thác và nguồn thanh toán thực tế. Tóm lại, mặc dù chưa có bằng chứng kết luận về hành vi lừa đảo, sản phẩm BMN của Blockstream vẫn còn nhiều câu hỏi cần làm rõ về quy mô thực tế, năng lực khai thác đủ để chi trả, nguồn gốc của lợi suất cao cố định, tính minh bạch trong thanh toán và mức độ ảnh hưởng của cá nhân có tiền án. Blockstream chưa có phản hồi chính thức toàn diện về các cáo buộc này.

marsbit8 giờ trước

Vụ Bê Bối Gian Lận Nghiêm Trọng Của Kỳ Lân Mã Hóa Blockstream: Toàn Bộ Cốt Truyện

marsbit8 giờ trước

Nhóm Reddit từng gây 'ép buộc mua vào' phố Wall, đã tìm ra GME tiếp theo?

Tóm tắt: Vào ngày 24/6, cổ phiếu Wendy's (WEN) đã tăng mạnh sau khi một bài đăng trên cộng đồng Reddit r/wallstreetbets với tiêu đề "We need to save Wendy's" thu hút sự chú ý và được thảo luận như một ứng cử viên "meme squeeze" mới. Bài đăng khai thác một meme văn hóa lâu năm trong WSB về việc làm tại Wendy's sau khi thua lỗ. WEN hiển thị một số đặc điểm bề ngoài của cổ phiếu meme: giá gần mức thấp nhất trong năm, tỷ lệ bán khống công khai khá cao ở mức 31.83%, và khối lượng giao dịch tăng đột biến. Tuy nhiên, phân tích cho thấy cấu trúc hiện tại khác xa so với đợt bức ép bán khống (short squeeze) có hệ thống như GameStop (GME) năm 2021. Mặc dù tỷ lệ bán khống đủ cao để tạo ra một đợt bức ép nhẹ, nó không ở mức cực đoan như GME trước đây. Yếu tố then chốt để biến động giá kéo dài - một vòng xoáy gamma squeeze từ việc các nhà tạo lập thị trường phải mua cổ phiếu để phòng ngừa rủi ro khi nhà đầu tư bán lẻ mua ồ ạt quyền chọn mua - vẫn chưa có đủ bằng chứng chắc chắn. Lịch sử cho thấy Wendy's từng là chủ đề meme trước đây nhưng không duy trì được đà tăng. Sức hấp dẫn của câu chuyện "cứu Wendy's" có thể dễ lan truyền, nhưng khả năng biến thành hành động nắm giữ kỷ luật lâu dài của cộng đồng vẫn chưa rõ. Về cơ bản, không có dấu hiệu công ty gần phá sản. Kết luận, đợt biến động này chứng minh sức ảnh hưởng của dòng tiền nhà đầu tư bán lẻ vẫn có thể kích hoạt biến động giá ngắn hạn cho cổ phiếu có thanh khoản trung bình. Tuy nhiên, WEN hiện giống một đợt tăng giá meme (meme pop) nhanh chóng được thúc đẩy bởi sự chú ý hơn là một đợt bức ép bán khống bền vững. Câu trả lời cuối cùng sẽ phụ thuộc vào việc khối lượng giao dịch cao và sự nhiệt tình trên diễn đàn có được duy trì trong những ngày tới hay không, và liệu hoạt động trên thị trường quyền chọn có tạo ra hiệu ứng gamma mạnh mẽ hay không.

marsbit8 giờ trước

Nhóm Reddit từng gây 'ép buộc mua vào' phố Wall, đã tìm ra GME tiếp theo?

marsbit8 giờ trước

Giao dịch

Giao ngay
Hợp đồng Tương lai
活动图片