Odottaessamme tuomiota Storm-oikeudenkäynnissä, on hyvä muistuttaa siitä, että suoja-altaat ovat vain matematiikkaa, eivätkä niitä ole kovin vaikea ymmärtää. Kuka tahansa voi toteuttaa sellaisen. Joten tässä on ketju, jossa on perusintuitio siitä, miten ne toimivat:
Tavoitteena on rakentaa järjestelmä, jossa kaikki tieto jokaisessa tapahtumassa pysyy täysin yksityisenä käyttäjille. Meidän ei pitäisi odottaa vähempää transaktiojärjestelmiltämme. Tämä on perustavanlaatuinen ihmisoikeus yksityisyyteen.
Ongelmana on, että jos kaikki tiedot ovat yksityisiä, mistä lohkoketju tietää, että tx on kelvollinen? Mistä se tietää, että käyttäjällä on todella varat, jotka hän aikoo lähettää? Etteivät he käytä kaksinkertaista rahaa? Ilmeinen vastaus on: zk-todisteet. Mutta onko se todella niin yksinkertaista?
Oletetaan, että sinulla on tili, jonka saldo on 10. Haluat lähettää 5 Romanin puolustukseen. Joten teet zk-proofin, joka osoittaa, että sinulla on 10, ja tapahtumasi lähettää 5. Vaikuttaa tarpeeksi helpolta!
Mutta odota! Kun teit todistuksen siitä, että sinulla on 10, se todiste koski jotakin menneisyyden osavaltiota, ennen viimeisintä lohkoa, johon tx:si sisällytettiin. Ehkä olet sen jälkeen käyttänyt kaikki kolikot! Kuinka voit todistaa, että sinulla on vielä 10 viimeisimmässä lohkossa?
Tämä on itse asiassa melko hankalaa, ja siksi suojatut poolit eivät todellakaan toimi tilipohjaisten järjestelmien kanssa - ei ole suoraviivaista, luotettavaa tapaa todistaa lohkoketjulle uusinta tilaa reaaliajassa. Ratkaisu? Käytä UTXO:ita. Bitcoinin kuuluisat "käyttämättömät Tx-tuotokset".
UTXO:iden avulla sinulla ei ole yhtä päivitettävää tiliä, vaan sinulla on yksittäisiä "muistiinpanoja", jotka voidaan käyttää vain kerran, kokonaan (kuten oikea kolikko). UTXO-järjestelmiä on yleisesti ottaen ärsyttävää kehittää, mutta tämä "vietä kerran" -ominaisuus tekee niistä erittäin hyödyllisiä suojatuille uima-altaille
Bitcoinin kaltaisessa UTXO-järjestelmässä, kun menet kuluttamaan UTXO:ta, kaikki täydet solmut voivat tarkistaa, että UTXO on olemassa (se luotiin aiemmin) ja että sitä ei ole vielä käytetty. Tämä on suoraviivaista. Mutta jos kaikki UTXO:n tiedot on salattu, miten voimme tarkistaa tämän?
Tiedot eivät ole vain salattuja, mutta emme edes halua paljastaa *mitä* UTXO:ta käytetään. Jos tekisimme, kuka tahansa lähettäisi sinulle UTXO:n, tietäisi, milloin käytit sen. Ihanteellisessa suojatussa uima-altaan suunnittelussa NOLLA tietoa vuotaa tapahtuman seurauksena.
Suojattujen poolien ydintemppu on ottaa käyttöön "nullifier"-arvo, joka voidaan paljastaa julkisesti, mutta jonka kuluttaja johtaa yksilöllisesti kullekin UTXO:lle. UTXO:n käyttämiseksi lohkoketju tarkistaa, että mitätöijää ei ole jo olemassa. Tämä edellyttää, että jokainen UTXO voidaan käyttää vain kerran
Nyt voimme palata zk-proofiin. Meidän on yksinkertaisesti todistettava, että käyttämämme UTXO on todella olemassa ketjussa ja että sille paljastamamme mitätöijä on johdettu oikein käyttämästämme UTXO:sta. Se siitä!
Käytännössä tämä tarkoittaa, että suojatut allasjärjestelmät pitävät tyypillisesti kahta erillistä Merkle-puuta. Toinen sisältää UTXO:iden hajautusarvot (UTXO:ita kutsutaan usein "muistiinpanoiksi" ja niiden hajautusarvoja "muistiinpanositoumuksiksi") ja toinen sisältää mitätöinnit. Molemmat puut ovat vain liitteenä!
Kun uusi muistiinpano luodaan, sen hajautusarvo tallennetaan Merkle-muistiinpanopuuhun. Itse muistiinpano on salattu. Kun käyttäjä myöhemmin menee kuluttamaan kyseisen muistiinpanon, hän laskee muistiinpanon mitätöijän ja tekee zk-todistuksen, joka osoittaa, että muistiinpano on Merkle-puussa ja mitätöijä on oikea
Mitätöijä paljastetaan julkisesti ja ketju tarkistaa, ettei sitä ole jo olemassa mitätöintipuussa. Sen jälkeen se tallennetaan sinne, joten muistiinpanoa ei voi käyttää uudelleen. Kukaan ei voi itse asiassa sanoa, mikä nuotti on käytetty, koska alkuperäinen nuotti jätetään yksin muistiinpanopuuhun!
Siinä se on, kaikkien suojattujen uima-altaiden perussuunnittelu nykyään, mukaan lukien @Zcash, @TornadoCash, @penumbrazone, @namada ja paljon muuta Suojatun uima-altaan suunnitteluun liittyy tietysti paljon muutakin. Pysy kuulolla saadaksesi lisää ketjuja, joissa sukeltaamme syvemmälle näihin mekaniikkoihin
@AThryver @0xkaiserkarel Yleinen väärinkäsitys ja luultavasti harhaanjohtava termin "zk" käyttö tässä. Nähdä
Ethan Buchman (🐝,🦇)
Ethan Buchman (🐝,🦇)24.7.2024
TEE? ZKP? MPC? FHE? Everything you need to know about the most important three letter acronyms in crypto Or, how you win friends and TEE-fluence people 🧵
2,03K