239 показания

Новият слой за поверителност на Ethereum работи като zCash - но без да напуска веригата

от thebojda...5m2025/05/05
Read on Terminal Reader

Твърде дълго; Чета

Тази статия представя инспириран от zCash слой за поверителност на Ethereum, използвайки интелигентни договори, доказателства за нулеви знания и операции за разделяне / сливане, за да се даде възможност за напълно анонимни прехвърляния на активи по веригата без фиксирани деноминации.
featured image - Новият слой за поверителност на Ethereum работи като zCash - но без да напуска веригата
Laszlo Fazekas HackerNoon profile picture

Написах подробна статия, която обясняваКак работи Tornado Cashпреди няколко години. Този проект беше първата ми истинска среща с технологията с нулеви познания и ми помогна да разбера вътрешното й функциониране. В тази нова статия ще представя концепция, която се основава на Tornado Cash – по същество zCash-подобен „вграден блокчейн“. Това не е истинско решение Layer 2, тъй като цялата дейност се извършва изцяло на веригата.

Как работи Tornado Cash?

Тъй като вече съм написал подробна статия по темата, ще дам обобщение тук.Ако се интересувате от техническото дълбоко гмуркане, препоръчвам да прочетете предишните ми статии:


  • Магията на доказателствата за нулеви знания чрез изходния код на Tornado Cash
  • JavaScript Tutorial for Zero-Knowledge Proofs Използване на snarkjs и цирк
  • Как изградих анонимна система за гласуване върху блокчейна на Ethereum, използвайки доказателство за нулеви знания


Накратко, Tornado Cash работи, като има потребителски депозит ETH или друг токен в интелигентния договор Tornado Cash, заедно сcommitmentВсяка организация има асоцииранnullifier, което е известно само на потребителя. Умният договор съхранява ангажимента в Merkle дърво. По-късно потребителят може да изтегли средствата от различен адрес, като разкрие нулиращия.


Тъй като само потребителят знае обезсилвателя, никой не може да свърже изтеглянето с първоначалния депозит. Въпреки това, интелигентният договор все още трябва да провери, че обезсилвателят е свързан с валиден ангажимент.zero-knowledge proofТова показва:


  1. Ангажиментът е част от Merkle дървото (потребителят наистина е депозиран в договора), и
  2. Нивото на обезщетение произтича от този ангажимент.


Всеки анулиращ може да се използва само веднъж, като се гарантира, че средствата не могат да бъдат изтеглени повече от веднъж.


В Tornado Cash хашите за ангажимент и нулиране се изчисляват, както следва:


commitment_hash = HASH(nullifier, secret)
nullifier_hash  = HASH(nullifier)


Тъй като криптографските хаши са еднопосочни функции (не можете да определите първоначалния вход от хаша без брутна сила), е невъзможно да свържетеcommitment_hashи наnullifier_hashВъпреки това, връзката им може да бъде доказана с помощта на доказателство за нулево знание.


Основното ограничение на тази система е, че прехвърлената сума може да изтича информация. Например, ако депозирате 12.34 ETH и по-късно изтеглите точно 12.34 ETH, някой може разумно да предположи, че двете са свързани.


Концепцията, която ще опиша в следващия раздел, се занимава с това ограничение, като черпи вдъхновение от това как zCash решава проблема.

Решаване на проблема с фиксираното наименование

Ограничението на фиксираните суми за депозит може да бъде преодоляно чрез въвеждане на два допълнителни метода заедно с депозит и теглене:splitиmerge.


наsplitФункцията работи подобно на теглене, но вместо да посочи адрес на Ethereum, потребителят предоставя два нови ангажимента. разделянето позволява на потребителя да раздели съхранената сума на две части - и важното е, че това се случва, без да разкрива новите суми на всеки, който наблюдава блокчейна.


В актуализираната система ангажиментът е структуриран по следния начин:


commitment_hash = HASH(amount, nullifier, secret)


Тази структура е от съществено значение, защото по време на разделяне потребителят трябва да докаже, че двата нови ангажимента съдържат суми, които се добавят точно към сумата на първоначалния ангажимент. Лесно е да се види как този механизъм се справя с проблема с фиксираната деноминация в Tornado Cash. Например, потребителят може да депозира произволна сума като 100 ETH, да я раздели на части (например 60 ETH и 40 ETH) и по-късно да ги изтегли на различни адреси. Тъй като стойностите са скрити в ангажиментите, никой не може да свърже изтеглянето с първоначалния депозит въз основа само на сумата.


Също така не е необходимо незабавно да се изтеглят средства.store value in the smart contract itself, функционира като вид виртуален портфейл.mergeОперация, която позволява два съхранени ангажимента (препратени чрез техните нулификатори) да бъдат комбинирани в един нов ангажимент.


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


Това поражда един видembedded ledger, където всеки потребител има частен баланс и може свободно да изпраща средства на други. Изтеглянията са необходими само когато някой иска да излезе от системата и да похарчи активите си извън този частен слой.

Защита на неприкосновеността на личния живот в Ethereum

Нека да разгледаме един пример, за да видим как този слой за поверителност работи на практика:


  • Алис създава 100 ETH на интелигентния договор, като депозира 100 ETH заедно с ангажимент.
  • Боб прави същото, създавайки басейн от 10 ETH със собствен ангажимент.
  • Алис иска да изпрати 10 ETH на Боб. Тя използва функцията за разделяне, която консумира нейния нулифьор и разделя оригиналните 100 ETH на две нови ангажименти: едно за 10 ETH и едно за 90 ETH.
  • Алис криптира 10 ETH нулиращия с помощта на публичния ключ на Боб и го записва в блокчейна.
  • Боб дешифрира съобщението с помощта на своя частен ключ и получава нулевият ключ. Сега той може да изтегли 10 ETH или да го обедини със съществуващия си баланс.
  • Боб избира да запази средствата в системата, така че използва операцията за сливане. Той осигурява нулевият от собствения си ангажимент от 10 ETH и този, получен от Алис, след което създава нов ангажимент за 20 ETH.


След приключване на сделката:

  • Алис има остатъчен баланс от 90 ETH,
  • Боб сега контролира 20 ETH в слоя за поверителност.


Тъй като нулификаторите и ангажиментите не носят публично видима информация, а съобщенията между потребителите са криптирани, всички тези транзакции се случват.completely anonymously.


Тъй като потребителите могат свободно да прехвърлят стойност в системата, без да разкриват суми или идентичности, често няма нужда да се изтеглят.Layer 2 blockchainС една ключова разлика:everything happens on-chain.

Conclusion

Заключението

С помощта на две прости процедури -splitиmerge— можем значително да подобрим оригиналната концепция Tornado Cash и да я превърнем в пълноценнаprivacy-preserving transaction layerЗа разлика от традиционните миксери, ограничени до фиксирани деноминации, този подобрен модел поддържаarbitrary amounts, което позволява на потребителите да разделят, сливат и прехвърлят стойност гъвкаво и анонимно.


В основата си системата разчита наzero-knowledge proofs,commitmentsиnullifiersЧрез вграждане на сумата директно в ангажимента, потребителите могат да докажат коректността на операциите за запазване на стойността като разделяне и сливане, без да разкриват действителните суми или участниците.


Резултатът е един видembedded blockchainТова функционира изцялоon-chainПотребителите могат да съхраняват средства частно, да изпращат активи един на друг с помощта на криптирани съобщения и да се оттеглят само когато трябва да си взаимодействат с обществения слой на Ethereum.privacy features of zCashС това наsmart contract capabilities of EthereumСъздаване на мощна рамка за анонимен, програмируем трансфер на стойност.


Най-важното е, че този модел е съвместим сany EVM-based blockchain, което го прави практична и мащабируема основа за приложения за защита на неприкосновеността на личния живот в по-широката екосистема на Ethereum.

L O A D I N G
. . . comments & more!

About Author

Laszlo Fazekas HackerNoon profile picture
Laszlo Fazekas@thebojda
Developer, Tech Writer, my GitHub profile: https://github.com/TheBojda

ЗАКАЧВАЙТЕ ЕТИКЕТИ

ТАЗИ СТАТИЯ Е ПРЕДСТАВЕНА В...

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks