NieuwsCryptoZcash-upgrade blokkeert Sprout-munten op block 3.543.405, zelfs met de juiste sleutels

Zcash-upgrade blokkeert Sprout-munten op block 3.543.405, zelfs met de juiste sleutels

Auteur: Coindoo·

Belangrijkste punten

  • •De activering van de NU7-upgrade bij block 3.543.405 beëindigt Sprout-uitgaven, aangezien geen van beide transactieformaten die daarna geldig blijven — versie 5 en versie 6 — de pool ondersteunt.
  • •Sprout-houders zijn aangewezen op recoverytools van derden zoals de door Sovright gebouwde Argos-app, omdat de afgeschafte zcashd de laatst onderhouden software was die Sprout-transacties kon bouwen.
  • •De snelheid van herstel hangt af van de backup: walletbestanden met besteedbare note-data kunnen in seconden worden gesweept, terwijl kale sleutels ketenbrede scans van circa 26 GB vereisen die uren duren.
  • •Achtergebleven Sprout-munten worden niet verbrand en blijven binnen de uitgegeven voorraad van Zcash, en ZIP 2003 stelt dat Sprout-uitgaven mogelijk nooit terugkeren.
  • •Bevestiging van elke Sprout-overdracht moet komen van NU7-geschikte node-software zoals Zebra 7.0.0, omdat verouderde nodes online kunnen blijven en een pre-NU7-keten volgen.
Zcash-upgrade blokkeert Sprout-munten op block 3.543.405, zelfs met de juiste sleutels

Ongeveer 12.226 ZEC bevond zich donderdagochtend nog in Zcash's Sprout shielded pool, tegen ongeveer 22.263 een week eerder, volgens ZecStats-cijfers die worden aangehaald in het rapport van CoinDesk. Het grootste deel van die uitstroom gebeurde op zondag, toen ongeveer 9.094 ZEC de pool verliet. Bij de prijs van $1.300 per munt die CoinDesk hanteerde, is wat overblijft ongeveer $16 miljoen waard.

De deadline is block 3.543.405 — de Mainnet-activeringshoogte vastgesteld in ZIP 259, de deploymentspecificatie voor de NU7-netwerkupgrade, en herhaald in de releaseaankondiging van de Zcash Foundation voor Zebra 7.0.0. CoinDesk meldde dat Blockchair de keten op block 3.542.391 toonde om 05:24 UTC donderdag, wat bij de huidige blocktijd van 75 seconden een activering rond 02:30 UTC vrijdag betekent. Miners bepalen het echte tempo, dus die schatting kan in beide richtingen afwijken. De datum is daarom een consensusgrens en geen gegarandeerde servicedeadline: het beslissende moment is het mijnen van de block, terwijl wallets en custodians hun eigen operationele deadlines kunnen hanteren.

Twee storingen die er in een wallet hetzelfde uitzien

De regel achter de deadline is breder dan Sprout. ZIP 2003 staat vanaf NU7 geen enkele versie-4-transactie meer toe, en ZIP 259 stelt dat dit ook transparante-only en Sapling-betalingen omvat. Sprout wordt geraakt omdat geen van beide overgebleven formaten het ondersteunt: versie 5, geïntroduceerd met NU5, en versie 6, geïntroduceerd met NU6.3.

Een wallet die weigert te verzenden, kan dus met een van twee problemen te maken hebben, en slechts één daarvan overleeft de activering:

Munten nog in Sprout. Wat er stukgaat: het enige transactieformaat dat ze kan uitgeven verliest zijn geldigheid. Na de block: er bestaat geen ondersteund vervangend formaat. Het venster sluit bij block 3.543.405.

Transparante of Sapling ZEC in een verouderde wallet. Wat er stukgaat: de software bouwt versie-4-betalingen die het netwerk afwijst. Na de block: het saldo blijft besteedbaar, en software die versie 5 of 6 bouwt kan de betaling opnieuw aanmaken — het oudedocument opnieuw ondertekenen werkt niet. Het venster blijft open met bijgewerkte software.

Vooraf voorbereide betalingen vereisen een eigen controle. ZIP 259 waarschuwt dat versie-5- en versie-6-transacties ook niet automatisch geldig zijn over de activering heen, omdat hun handteekeningen binden aan een consensus branch ID. Een betaling die vóór de upgrade offline is opgeslagen of ondertekend, kan mislukken als hij na de deadline in een block terechtkomt, welk formaat dan ook.

Saldi in bewaring liggen bij het platform dat ze beheert. De melding van de Zcash Foundation richt de versie-4-regel rechtstreeks tot wallets, exchanges en andere diensten die namens hun gebruikers transacties bouwen.

Het recoverymateriaal bepaalt de klok

Voor Sprout-houders is de moeilijkere opgave het vinden van software die de overdracht nog kan bouwen. ZIP 2003 merkt op dat de afschaffing van zcashd, kort vóór NU6.3, de enige onderhouden software verwijderde die nog Sprout-walletfunctionaliteit bood. De consensusregels accepteren Sprout-uitgaven tot de activering, maar houders zijn aangewezen op recoverytools van derden om ze te maken.

Het identificeren van de munten komt eerst. De adresdocumentatie van Zcash vermeldt Sprout shielded adressen met een zc-prefix en Sapling-adressen met zs. De prefix toont bij welke pool een adres hoort, niet of er nog saldo op staat.

De backup bepaalt meer dan het adres. De backupinstructies van Zcash behandelen legacy shielded sleutels apart van de seed achter Sapling-adressen. De ontwikkelaar van de Argos recovery-app voegt twee details toe in zijn documentatie: een ZecWallet Lite-seed kan de Sprout-sleutels die die wallet onafhankelijk genereerde niet reconstrueren, en een zcashd wallet.dat heeft helemaal geen master seed, omdat de sleutels er één voor één in zijn opgeslagen — alleen de sleutels in het bestand zijn eruit te herstellen.

Wat de backup bevat, bepaalt ook hoe lang een redding duurt. Volgens de release notes van Argos 1.2.0 kan een walletbestand dat al besteedbare Sprout note-data bevat in seconden worden gesweept, zonder scan. Sleutels zonder die note-data, zoals losse spending keys of sleutels die zonder rescan in zcashd zijn geïmporteerd, vereisen een scan die probeert elke shielded transactie in de ketengeschiedenis te ontsleutelen, omdat er geen index van Sprout-adressen bestaat. De site van de ontwikkelaar schat een Sprout-scan met een kale sleutel op grofweg 26 GB aan dataverkeer op Mainnet en waarschuwt dat scans uren duren. Met een deadline gemeten in uren kan dat verschil bepalen of een overdracht überhaupt mogelijk is.

De bestemming staat ook vast. Sprout-waarde kan alleen naar de Sapling-pool worden verplaatst, dus de release notes vereisen een zs1-adres of een Unified Address met een Sapling-ontvanger. Het funds verder verplaatsen naar Orchard is een aparte transactie die de houder daarna uitvoert.

Een reddingstool beoordelen onder tijdsdruk

Argos is een desktop-app van derden van Sovright, gebouwd nadat ZecWallet Lite stopte met worden onderhouden. De site van de ontwikkelaar zegt dat de app onafhankelijk is geauditeerd door Least Authority, seeds en sleutels lokaal verwerkt, en alleen verbinding maakt met het internet om publieke blockdata te lezen en de definitieve sweep te versturen. Voor grote saldi raadt de ontwikkelaar een gloednieuwe computer aan, omdat een fabrieksreset firmware-malware niet van een lang gebruikt apparaat verwijdert.

Voordat je op sweep drukt:

  • De download. macOS- en Windows-builds zijn code-signed. Elke GitHub-release bevat een SHA256SUMS-bestand en een build-attestatie, te controleren met gh attestation verify <file> --repo sovright/argos.
  • De splitsing. De sweep-review bevat een optionele donatie aan Sovright die standaard op 10% staat. Beide bedragen verschijnen vóór bevestiging, dus stel dat percentage bewust in.
  • Het kanaal. De ontwikkelaar zegt dat zijn support nooit om een seed, walletbestand, wachtzin of sleutel zal vragen. Elk verzoek daarnaar, op welk platform dan ook, is oplichting.

Zodra een sweep is bevestigd, raadt de ontwikkelaar aan het oude recoverymateriaal buiten gebruik te stellen, omdat malware op de recoverymachine het mogelijk heeft vastgelegd. Het oorspronkelijke walletbestand moet worden bewaard totdat elke pool die het bestrijkt volledig is geleegd.

Alleen een bijgewerkte node kan de verplaatsing bevestigen

Een ondertekende, uitgezonden Sprout-overdracht telt pas mee zodra deze vóór de activeringshoogte in een block is opgenomen. Waar die bevestiging wordt gelezen, is ook belangrijk. ZIP 259 schrijft de gebruikelijke eis dat oude node-software verloopt vóór een upgrade niet voor, en waarschuwt dat niet-ondersteunde nodes online kunnen blijven en een pre-NU7-branch volgen. De melding van de Zcash Foundation zegt dat nodes die niet zijn bijgewerkt een andere keten volgen. Een houder die een verouderde node raadpleegt, zou een overdracht kunnen zien die het bijgewerkte netwerk niet herkent; bevestiging moet daarom komen van NU7-geschikte software zoals Zebra 7.0.0, de eerste stabiele Zebra-release met Mainnet NU7-ondersteuning.

De uitstroom is ook publiek. De privacysectie van ZIP 2003 merkt op dat waarde die Sprout verlaagt het zichtbare saldo van de pool verandert, en dat een korte uitstroomperiode timing en opvallende bedragen makkelijker aan specifieke houders koppelt. Met slechts ongeveer 40 ZEC die woensdag bewoog, heeft een late opname weinig omliggend verkeer om in op te gaan.

De achtergebleven munten blijven op de boeken

ZIP 2003, geschreven door Daira-Emma Hopwood, maakt Sprout-munten niet ongeldig of verbrandt ze niet. Het saldo van de pool bij activering blijft binnen de uitgegeven voorraad van Zcash, inclusief voor de Network Sustainability Mechanism-berekeningen in ZIP 237. De voorraadadministratie van Zcash blijft dus munten tellen die momenteel niet kunnen bewegen.

Het voorstel laat een theoretische route terug open: het weer toestaan van versie-4-transacties of het toevoegen van een ander terughaalmechanisme, als de gemeenschap dat waardevol acht. Het stelt ook dat Sprout-uitgaven mogelijk nooit terugkeren.

Het argument om die kosten te accepteren rust op nodesecurity. ZIP 2003 merkt op dat Sprout sinds de Sapling-upgrade het Groth16-proofsysteem en de BLS12-381-curves van Sapling deelt. Zijn JoinSplit-circuit en de omgang met nullifiers en note commitments belasten nog steeds de code die nieuwe transacties accepteert, onder meer als denial-of-service-aangrijpingspunt. Omdat Sprout bijna niet wordt gebruikt, hebben node-implementaties weinig reden om dat pad te optimaliseren. Hoe de reikwijdte van de upgrade werd vastgesteld, is behandeld in Coindoo's rapport over de NU7-munthoudersstemming.

De kosten komen terecht bij een smalle groep: houders wiens Sprout-sleutels liggen in backups die ze niet hebben gecontroleerd, of zijn kwijtgeraakt. Het publieke poolsaldo kan de twee niet van elkaar onderscheiden. Het cijfer dat de kwestie beslist, is de waarde van de Sprout-pool in de ZecStats-data zodra block 3.543.405 is gemijnd, dat toont hoeveel ZEC de upgrade heeft achtergelaten. Een latere ZIP met een voorstel voor een terughaalmechanisme zou het enige teken zijn dat toegang mogelijk terugkeert.

Bron: Coindoo