Softchains brengen tweerichtingspinnen en potentiële ruimte voor gebruiksgevallen - maar niet zonder beveiligingskosten

By Bitcoin Tijdschrift - 1 jaar geleden - Leestijd: 6 minuten

Softchains brengen tweerichtingspinnen en potentiële ruimte voor gebruiksgevallen - maar niet zonder beveiligingskosten

Softchains zijn een sidechain-implementatie die op een dieper niveau interageert met consensusmechanismen, wat zowel voordelen als risico's met zich mee kan brengen.

Dit is een opinieredactioneel commentaar van Shinobi, een autodidactische opvoeder in de Bitcoin ruimte- en technologiegericht Bitcoin podcast-host.

In dit volgende stuk kijken we naar verschillende ontwerpen voor sidechain-implementatie, die we gaan doornemen zachte kettingen. Dit is er weer een van Ruben Somsen's voorstellen voor een zijketenmechanisme. Dit verschilt sterk van spacechains, het ontwerp behandeld in mijn vorige artikel. Het vereist een specifieke wijziging van de Bitcoin Kernprotocol dat specifiek is gestructureerd om een ​​zijketen te implementeren, legt nieuwe validatiekosten op Bitcoin volledige knooppunten, en heeft ondersteuning voor een tweerichtingskoppelingsmechanisme dat niet afhankelijk is van een federatie voor bewaarfondsen.

De bouwsteen

De kern van het idee bouwt voort op een eerder voorstel van Somsen genaamd PoW fraude bewijzen, een mechanisme om de beveiliging van vereenvoudigde betalingsverificatie (SPV) voor portefeuilles te verbeteren. Het idee bouwt voort op een simpele observatie over een blockchain - als er een ongeldig blok wordt geproduceerd, zal er waarschijnlijk een vork in de blockchain zijn, aangezien alle eerlijke mijnwerkers zullen weigeren om op het ongeldige blok te bouwen en uiteindelijk een geldig blok te mijnen. Een ongeldig blok dat wordt geproduceerd en geen vork die wordt gemaakt door eerlijke mijnwerkers, betekent in feite dat er een volledige storing is opgetreden in het consensusproces van het netwerk, dus de statistische kans dat dat gebeurt, is onbeduidend klein. Daarom kan een optredende vork worden gezien als een soort signaal dat "Hé, hier zou iets kunnen zijn gebeurd, dus je moet dit eens bekijken." Klanten kunnen vorken als deze gebruiken als een soort alarm dat ze deze blokken daadwerkelijk moeten downloaden en verifiëren wat er aan de hand is.

Dit levert echter een fundamenteel probleem op: om een ​​blok te verifiëren, moet je een UTXO-set hebben. Om een ​​UTXO-set te hebben, moet je alle voorgaande blokken in de keten hebben geverifieerd om het te bouwen. Dus hoe werkt dit als een SPV-mechanisme? Het antwoord is UTXO-toezeggingen.

Elk blok moet worden gevalideerd tegen de UTXO-set, een database van elk bitcoin dat bestaat dat nog niet is uitgegeven en momenteel is dit slechts een lokale database die elk knooppunt construeert en opslaat terwijl het vanaf het begin door de blockchain scant. Een UTXO-setcommitment neemt de UTXO-set, bouwt er een Merkle-boom van en legt idealiter de hash ervan vast in elk blok. Hierdoor kunt u een blok met wat extra gegevens ontvangen - een Merkle-tak voor elke invoer van elke transactie die bewijst dat het in de laatste UTXO-settoezegging was - en op die manier verifiëren. Als een systeem vanaf het allereerste begin zo'n commitment-schema zou gebruiken en het daadwerkelijk zou worden gebruikt door een groot aantal gebruikers die de keten volledig verifiëren, dan zouden ze een beveiligingsgarantie bieden die bijna gelijk is aan een volledig knooppunt. Wanneer er een kettingsplitsing plaatsvindt, kun je alle betrokken blokken downloaden en ervoor zorgen dat de ketting die je volgt geldig is. Als beide zijden van de splitsing geldig zijn, wint de langste nog steeds. Als een van hen echter ongeldig was, zou u dit meteen kunnen detecteren.

De tweerichtingspen

Als onderdeel van het ontwerp van de softchain zouden mainchain-knooppunten de blokheaders voor elke softchain moeten downloaden en valideren, en in het geval van een chainsplit die blokken moeten downloaden en valideren met behulp van de UTXO-settoezeggingen. Dit zou de basis vormen van het pegout-mechanisme om een ​​tweewegskoppeling mogelijk te maken. Om munten naar de sidechain te migreren, zou de gebruiker een mainchain-transactie maken door deze toe te wijzen aan een specifieke softchain en vervolgens naar die transactie verwijzen wanneer bevestigd om munten op de sidechain te claimen. Omgekeerd zou u het tegenovergestelde doen wanneer u probeert uit de zijketen te pinnen. Dit is waar de PoW-fraudebewijzen in het spel komen. Tijdens een pegout is het idee om een ​​transactie op de mainchain te creëren die verwijst naar een opnametransactie op de sidechain. Die munten zouden pas na een lange bevestigingsperiode (zeg een jaar) kunnen worden uitgegeven en zouden "opgesloten in de softchain" blijven als de opnametransactie op de zijketen opnieuw zou worden uitgevoerd of ongeldig zou worden bevonden. Dit laatste zou worden ontdekt omdat in het geval van een kettingsplitsing, het mainchain-knooppunt alle blokken aan elke kant van de splitsing downloadt en ze verifieert met behulp van UTXO-settoezeggingen.

Het lange bevestigingsvenster voor pegouts is zo dat zelfs een klein percentage eerlijke mijnwerkers genoeg tijd kan hebben om een ​​enkel geldig blok te produceren dat de keten splitst en vanaf dat moment een validatie van alles activeert met door UTXO vastgestelde toezeggingen. Hierdoor kunnen de mainchain-knooppunten frauduleuze sidechain-pegouts opvangen voordat de terugtrekking op de mainchain wordt bevestigd, waardoor die transactie ongeldig wordt zonder dat ze de hele sidechain moeten valideren - wat niet anders zou zijn dan een toename van de blokgrootte.

Beveiligingsparameters en risico's

Dit ontwerp roept enkele vragen op over het beveiligingsniveau op basis van bepaalde variabelen en hoe zo'n zijketen zou omgaan met mijnwerkers. Allereerst moet elke softchain worden ingezet met een minimale moeilijkheidsvereiste voor blokken, zodat als de hash-snelheid te laag wordt in plaats van de moeilijkheidsgraad om onder dit minimum aan te passen, het langer duurt om blokken op de zijketen te vinden - dat wil zeggen, het blokinterval zou toenemen. Dit is nodig vanwege de PoW-fraudebestendige validatie die mainchain-knooppunten moeten uitvoeren als onderdeel van dit ontwerp. Als de moeilijkheidsgraad van de softchain te laag is, zou het voor mijnwerkers gemakkelijk worden om de softchain regelmatig kwaadwillig te splitsen en effectief een denial-of-service (DoS)-aanval uit te voeren op mainchain-knooppunten door de hoeveelheid extra gegevens die ze moeten valideren.

Samengevoegde mijnbouw is een oplossing voor dit probleem. Als alle Bitcoin mijnwerkers ontgonnen ook blokken op de zijketen, waarna het probleem van DoS-aanvallen op de hoofdketen door het creëren van kettingsplitsingen op de softchain zo goed als mogelijk is opgelost. Het zou evenveel werk vergen om de softchain te splitsen als de mainchain, waardoor willekeurige en goedkope aanvallen worden voorkomen om de hoeveelheid gegevens te vergroten die nodig is om de mainchain te valideren. Bij het oplossen van het DoS-aanvalsprobleem creëert het echter een ander probleem: het verhogen van de validatiekosten van mijnwerkers.

Als miners ook de softchains gaan minen, moeten ze de knooppunten voor hen uitvoeren om ervoor te zorgen dat de blokken die ze minen geldig zijn. Als ze dat niet zijn, lopen ze het risico wees te worden en de vergoedingsinkomsten van een ongeldig blok te verliezen. Als er veel duur te verifiëren softchains zouden worden geactiveerd, zoals Ethereum-kloonketens of grote blokketens, zou dit mijnbouw meer gecentraliseerd en duurder kunnen maken om eraan deel te nemen. Mijnwerkers moeten een keten valideren om te weten dat ze niet op een ongeldig blok bouwen en geld verliezen, dus dit is niet echt optioneel. Validatie duurder maken ondermijnt inspanningen om de decentralisatie van de mijnbouw te maximaliseren.

Het grootste probleem is het risico dat een consensusbug op een softchain daadwerkelijk een consensussplitsing van de mainchain zelf veroorzaakt. Het risico bestaat dat grote sidechain-reorgs een geldige pegout-transactie aan de sidechain-zijde ongeldig maken, aangezien de mainchain-zijde op het punt staat geldig te worden. Vergeet niet dat mainchain-knooppunten ook de softchain-headers volgen. Dit kan leiden tot het splitsen van de mainchain als verschillende delen van het netwerk zich aan verschillende kanten van een softchain-splitsing bevinden, terwijl een sidechain-pegout wordt gevalideerd op de mainchain. Niet-deterministische consensusbugs op de softchain kunnen ook leiden tot een splitsing van de mainchain, dwz als sommige nodes een pegout als ongeldig beschouwen, maar andere als geldig.

Deze diepere verbinding met de mainchain-consensus maakt dit sidechain-ontwerp enigszins riskant en mogelijk iets dat niet zou moeten worden gedaan. Softchains moeten op zijn minst één voor één worden geactiveerd in afzonderlijke vorken, in plaats van een enkele vork in te zetten waarmee softchains naar believen kunnen worden geactiveerd. Het feit dat chainsplits in dit ontwerp ervoor zorgen dat mainchain-nodes meer gegevens verifiëren, maakt de mogelijkheid om simpelweg veel softchains tegelijk aan te zetten een aanvalsvector op de mainchain.

Softchains raken meer betrokken bij de consensuslaag van de mainchain dan spacechains, wat veel risico's met zich meebrengt, maar ze zorgen voor een native tweerichtingskoppeling en dus meer potentiële ruimte voor verschillende use-cases. Vervolgens zal ik aandrijfketens doornemen, en daarna enkele laatste gedachten over zijketens in het algemeen.

Dit is een gastpost van Shinobi. De geuite meningen zijn geheel van henzelf en komen niet noodzakelijk overeen met die van BTC Inc of Bitcoin Tijdschrift.

Originele bron: Bitcoin Magazine