Vad är Bulletproofs i Monero?
Bulletproofs i Monero är korta icke-interaktiva nollkunskapsbevis utan betrodd setup som bevisar dolda belopp i konfidentiella transaktioner. Bevisstorleken är endast logaritmisk i vittnesstorleken och i Moneros kontext krympte det kryptografiska beviset från över 10 kB till under 1 kB. Bulletproofs gick in på Moneros huvudnät vid uppgraderingen i oktober 2018 och därefter sjönk den genomsnittliga transaktionsstorleken med minst 80 procent liksom avgifterna.
Innehåll
Hur fungerar Bulletproofs i Monero?
Bulletproofs i Monero fungerar som effektiva intervallbevis där en commitment visas ligga i ett intervall utan att beloppet avslöjas. Hans RingCT döljer transaktionsbeloppen och beviset visar att summan av inputs minus outputs är lika med 0 samt att alla outputs är positiva tal. Hans konstruktion bygger endast på antagandet om diskret logaritm och kräver därför ingen betrodd start.
Bevisgenerering och verifieringstid är linjär i n medan ett intervallbevis för ett n-bitars intervall använder 2 log2(n) plus 9 grupp- och fältelement. Aggregering av m intervallbevis lägger endast till O(log m) gruppelement utöver grundkostnaden. Storleken växer därmed endast logaritmiskt med både intervallstorlek och antal outputs.
Varför infördes Bulletproofs i Monero?
Bulletproofs i Monero infördes för att krympa transaktioner och sänka avgifter samtidigt som utbudet skyddas mot inflation genom negativa belopp. Äldre intervallbevis skalade linjärt med antal outputs och 64 bitars intervall medan Bulletproofs växer endast logaritmiskt. En typisk transaktion med två outputs var cirka 13,2 kB med dåvarande intervallbevis men blev cirka 2,5 kB med single-output-bulletproofs.
Skattningen 2017 gav cirka 80 procent mindre transaktionsstorlek och avgift och block med Bulletproofs-transaktioner verifierades cirka fyrtio gånger snabbare än Borromean. Enskilda transaktioner verifierades nästan fem gånger snabbare efter bytet. Skyddet kompletteras av stealth addresses och ringsignaturer eftersom avsändare och mottagare döljs genom Moneros integritet i sin helhet med tre tekniker tillsammans.
Vad är Bulletproofs plus i Monero?
Bulletproofs plus i Monero är ett nollkunskapssystem som kan ersätta befintliga Bulletproofs i protokollet och vars intervallbevis är 96 byte mindre oavsett outputantal. Hans preprint skrevs av Chung, Han, Ju, Kim och Seo och ett 64-bitars positivt heltal ger 576 byte bevis vid 128-bitars säkerhet. Outputantalet rundas upp till nästa tvåpotens med max 16 outputs per transaktion.
Fluorine Fermi-uppgraderingen införde Bulletproofs plus omkring 13 augusti 2022 vid block 2688888 och skulle minska typisk transaktionsstorlek med cirka 5 till 7 procent. Förbättringen skulle även höja typisk verifieringsprestanda med cirka 5 till 7 procent. Ett 2-output Bulletproofs plus-intervallbevis genereras 10,2 procent snabbare än föregångaren.
Hur granskades Bulletproofs i Monero?
Bulletproofs i Monero granskades av QuarksLab och Kudelski Security som valdes som publika auditorer och vars slutrapporter släpptes sommaren 2018 med rättelser före huvudnätet. Quarkslab hittade flera problem varav vissa var möjligen kritiska i implementationen. Inom auditens tidsram ledde inget funnet fel till praktiskt exploit för falskt bevis eller läckt belopp.
Protokolluppgraderingen Beryllium Bullet släpptes 2018-10-18 efter granskningen. Jämfört med SNARKs kräver Bulletproofs ingen betrodd setup men verifiering av ett bulletproof tar mer tid än verifiering av ett SNARK-bevis. En senare rättelse efter Trail of Bits gäller Fiat-Shamir-sektionen i avsnitt 4.4 i Bulletproofs-pappret.
Vanliga frågor och svar
Behöver Bulletproofs betrodd setup i Monero?
Nej, de behöver ingen betrodd setup eftersom de endast bygger på antagandet om diskret logaritm. Det skiljer dem från SNARKs som kräver en sådan procedur.
Ersatte Bulletproofs ringsignaturer i Monero?
Nej, de ersatte dem inte eftersom de är effektiva intervallbevis medan ringsignaturer gör outputs ospårbara genom att dölja vilken nyckel som signerade.
Döljer Bulletproofs mottagaradressen i Monero?
Nej, de döljer beloppsintervallet medan stealth addresses gör att bara sändare och mottagare kan se vart en betalning gick.
