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 пари
  • JavaScript Tutorial for Zero-Knowledge Proofs Користење на snarkjs и circom
  • Како го изградив системот за анонимно гласање на блокчејнот на Ethereum со користење на доказ за нула знаење


На кратко, Tornado Cash работи со тоа што корисникот има депозит ETH или друг токен во паметниот договор Tornado Cash, заедно соcommitmentСекоја заедница има придружникnullifier, која е позната само на корисникот. Паметниот договор ја чува обврската во дрво на Меркл. Подоцна, корисникот може да ги повлече средствата од друга адреса со откривање на нулфиерот.


Бидејќи само корисникот го знае поништувачот, никој не може да го поврзе повлекувањето со оригиналниот депозит. Сепак, паметниот договор сè уште треба да провери дека поништувачот е поврзан со валидна обврска.zero-knowledge proofОва го покажува:


  1. Обврската е дел од дрвото Меркл (корисник навистина депозиран во договорот), и
  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, што го прави практична и скалабилна основа за апликации за зачувување на приватноста во поширокиот Етереум екосистем.

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