Drivechains ermöglichen es Betreibern von Sidechain-Knoten, Miner für das Mining zu bezahlen – und mehr! PlatoBlockchain-Datenintelligenz. Vertikale Suche. Ai.

Drivechains ermöglichen es Betreibern von Sidechain-Knoten, Miner für das Mining zu bezahlen – und mehr!

Dies ist ein Meinungsleitartikel von Shinobi, einem autodidaktischen Pädagogen im Bitcoin-Bereich und technisch orientierten Bitcoin-Podcast-Moderator.

Dieses Mal werde ich aufschlüsseln und diskutieren, wie Antriebsketten funktionieren; Sie wurden ursprünglich im Jahr 2015 vorgeschlagen. Von allen bisher diskutierten Vorschlägen sind Antriebsketten die ältesten und am weitesten ausgearbeitet in Bezug auf spezifische Implementierungsdetails und Design, die in BIPs dokumentiert sind 300 und 301. Paul Sztorc, der Schöpfer des Konzepts, hatte einige Hauptdesignziele im Sinn, und obwohl dies keineswegs umfassend ist, hier sind einige:

  • Isolieren Sie jede Sidechain, sodass ein Fehler oder Problem nur diejenigen betrifft, die sie verwenden.
  • Ermöglichen Sie das Hochfahren von Sidechains, ohne dass für jede eine neue Gabel erforderlich ist.
  • Ermöglichen Sie die Übertragung von Bitcoin in und aus einer Sidechain mit einem Zwei-Wege-Peg.
  • Ermöglichen Sie freies Experimentieren im Design, von dem er hofft, dass es die Notwendigkeit von Altcoins überflüssig machen würde.

Es gibt zwei Hauptaspekte des gesamten Designs, weshalb es zwei separate BIPs gibt. Der erste ist der Peg-Mechanismus (BIP300), der es ermöglicht, dass der Zwei-Wege-Peg funktioniert. Sztorc entwarf etwas, das als Hash-Raten-Treuhandkonto bezeichnet wird und es Minern im Grunde als amorphe Gruppe ermöglicht, die Coins in allen Sidechains gemeinsam zu verwahren. Das zweite ist ein „blindes“ verschmolzenes Mining-Schema, bei dem das Ziel darin besteht, Bitcoin-Minern zu ermöglichen, die Blockproduzenten auf Konsensebene zu sein, ohne dazu die Sidechain validieren zu müssen. Beide Teile zusammen stellen einen Zwei-Wege-Peg-Mechanismus und eine Möglichkeit für Bitcoin-Miner dar, sich am Mining der Sidechains zu beteiligen und gleichzeitig zu versuchen, das damit verbundene Zentralisierungsrisiko zu mindern.

BIP300 spezifiziert die Logik für den Vorschlag einer neuen Sidechain, die Aktivierung einer neuen Sidechain, den Vorschlag eines gebündelten Satzes von Auszahlungen, die Genehmigung eines solchen Satzes von Auszahlungen, die Validierungslogik für tatsächliche Auszahlungstransaktionen und die Validierung für Einzahlungstransaktionen.

Die Aktivierung einer neuen Sidechain unter dem Drivechain-Vorschlag ist dem Prozess einer Soft Fork, die durch Miner-Signalisierung aktiviert wird, sehr ähnlich. Der Hauptunterschied besteht natürlich darin, dass es sich nicht wirklich um eine Soft Fork handelt – eine einzelne Fork zur Aktivierung der Drivechain-Konsensregeln ermöglicht es Minern, jederzeit zu signalisieren, eine neue Sidechain zu aktivieren . Antriebsketten-Konsensregeln. Um die Aktivierung einer neuen Sidechain vorzuschlagen, muss ein Miner OP_RETURN-Daten in seine Coinbase-Ausgabe einfügen, die eine eindeutige Kennung für diese Sidechain, einen öffentlichen Schlüssel zur Verwendung bei Einzahlungsvorgängen, Versionsdaten, menschenlesbare Beschreibungen und Hashes des Software-Clients enthalten und die GitHub-Geschichte davon (hier gibt es keine Konsensdurchsetzung, nur Daten, auf die Menschen verweisen können).

Wenn ein Miner vorschlägt, eine neue Sidechain zu aktivieren und alle notwendigen Daten in seine Coinbase aufzunehmen, wird dies zu einer Art „Miner-Signalisierungszeitraum“, ob er diese neue Sidechain aus Sicht des Mainchain-Konsenses erstellen soll oder nicht. Ein Miner kann ein spezielles Format verwenden, um einen Vorschlag in seine Coinbase-Ausgaben aufzunehmen, und andere Miner können nach einem zweiten Format eine weitere Ausgabe erstellen, um die Aktivierung zu signalisieren. Ein neuer Sidechain-Vorschlag erfordert, dass 90 % der Blöcke in einem schwierigen Zeitraum ein Signal für die Aktivierung geben, damit eine neue Sidechain-Erstellung bestätigt werden kann. Dies schafft den Peg-Mechanismus, um die Sidechain zu aktivieren, aber die Interaktion zwischen Sidechain und Mainchain ist nuancierter als das.

An diesem Punkt kann jeder Coins in die Sidechain stecken. Um sich in die Sidechain einzuklinken, erstellt ein Benutzer einfach eine Zwei-Eingangs-Transaktion mit seiner eigenen Eingabe und dem UTXO, das dem Sidechain-Saldo entspricht, mit einem einzigen Ausgang, der alles der Sidechain zuweist. Dies garantiert, dass die Sidechain immer nur einen einzigen UTXO hat, der alle darin eingeschlossenen Gelder enthält. Auszahlungen werden durch Miner-Voting abgewickelt. Die Mainchain hat kein Verständnis dafür, wem was auf der Sidechain gehört, und die Mainchain wird jede von Minern im Rahmen des Abstimmungsmechanismus genehmigte Auszahlung als gültig betrachten. Aus diesem Grund gibt es eine lange Verzögerung beim Auszahlungsprozess. Es gibt zwei Phasen für den Austritt aus einer Sidechain: einen Austrittsvorschlag (Bündel) und dann die Austrittsabstimmungsphase. Miner müssen in ihrer Coinbase-Transaktion eine OP_RETURN-Ausgabe mit einem Hash der vorgeschlagenen Auszahlungstransaktion erstellen, um eine Auszahlung vorzuschlagen. Dieser Hash kennzeichnet jedoch ähnlich wie Sighash, dass nur ein Teil einer Transaktion statt der gesamten Sache festgeschrieben wird. Es verpflichtet sich nicht zum Eingabe-UTXO, das Gelder darstellt, die in einer Antriebskette gesperrt sind, oder zur Ausgabe, die alles zurückgibt, was nicht an ein spezielles Sidechain-UTXO zurückgezogen wird. Dies liegt daran, dass jede Einzahlung in die Antriebskette ein neues UTXO erzeugen und somit die Verpflichtung zur Auszahlungstransaktion ungültig machen würde, wenn die Leute zur Validierung gingen.

Ab hier beginnt die Miner-Abstimmungsperiode über den Rückzugsvorschlag. Nachdem ein Bündel vorgeschlagen wurde, können die Miner darüber abstimmen, ob sie es genehmigen oder nicht. Jeder abgebaute Block ermöglicht es diesem Miner, einen Genehmigungszähler um eins oder zwei zu erhöhen oder zu verringern, um nichts zu tun. Darüber hinaus gibt es einige spezifische Einschränkungen, da es möglich ist, mehr als ein Bündel für eine einzelne Seitenkette zu haben – wenn ein Miner mit „Ja“ stimmen (den Zähler um eins erhöhen) für ein Auszahlungsbündel für eine Seitenkette, dann sollen Stimmen Sie „nein“ (verringern Sie den Zähler um eins) für jedes andere Bundle, das mit dieser bestimmten Sidechain verknüpft ist.

Dies soll garantieren, dass es keine „doppelten Auszahlungen“ gibt, bei denen jemand eine Ausgabe in mehreren Bündeln hat, die ihm mehr Bitcoin auf der Mainchain auszahlen würden, als ihm geschuldet wird.

Auf der anderen Seite dürfen die Bergleute auch für jedes einzelne vorgeschlagene Bündel mit Nein stimmen. Dies soll als eine Art Alarm für alle fungieren, dass ein Miner, der diese Auszahlungen validiert (um sicherzustellen, dass es sich um legitime Coins auf der Sidechain handelt, die zurückgezogen werden) bemerkt hat, dass etwas Ungültiges passiert ist. Denken Sie daran, dass ein wichtiger Punkt dieses Designs darin besteht, dass Miner nichts auf der Sidechain validieren müssen. Wenn sie sich also nicht dafür entscheiden, können viele Miner Bundles positiv bewerten, die sie nicht verifizieren. Diese Alarmfunktion soll sie darauf aufmerksam machen, dass sie die Bündel überprüfen sollten, um sicherzustellen, dass keine betrügerische Auszahlung erfolgt.

Sobald ein Bündel die erforderliche Schwelle (13,150 Blöcke oder ungefähr 90 Tage) erreicht hat, wird die Transaktion, die die Auszahlung tatsächlich verarbeitet, gültig und kann bestätigt werden. Aber was tun die Leute, wenn Miner eine betrügerische Auszahlung genehmigen, die Geld aus der Sidechain stiehlt? Sztorcs Vorschlag besteht darin, sich an einer vom Benutzer aktivierten Soft Fork (UASF) zu beteiligen, um die ungültige Peg-Out-Transaktion ungültig zu machen. Dies stellt ein enormes Risiko in Bezug auf den Konsens für die Mainchain dar. Die UASF im Jahr 2017 war ein risikoreicher Schritt, der nur knapp gelang, und Bitcoin war viel kleiner als heute. Je größer Bitcoin wird, desto schwieriger wird es, solche Aktionen zu koordinieren.

Wenn Sie sich an die erinnern Artikel über Raumketten, basierte dieses Design auf Blind Merged Mining (BMM). Ruben Somsens BMM-Design ist eigentlich die zweite Variante davon, die erste ist Sztorcs Design, wie es in BIP301 dargelegt ist. Die BMM-Spezifikation in Antriebsketten besteht aus zwei Nachrichten: einer Anforderungsnachricht und einer Annahmenachricht. Beide werden jeweils durch einen speziellen Transaktionstyp auf der Mainchain und eine spezielle Ausgabe in einer Miner-Coinbase-Transaktion koordiniert.

Die Anforderungstransaktion wird von dem erstellt, der Sidechain-Blöcke erstellt. Der springende Punkt bei BMM ist, dass diese Person jemand sein kann, der nicht schürft, also ist die Anfragetransaktion dazu da, es ihnen zu ermöglichen, Miner zu bezahlen, um ihren vorgeschlagenen Sidechain-Block zu bestätigen. Der Sidechain-Block-Vorschlag erstellt eine Transaktion, die den Hash des Sidechain-Blocks, die der Sidechain bei ihrer Erstellung zugewiesene ID und die letzten vier Bytes des vorherigen Mainchain-Block-Headers enthält. Für diese Art von Transaktionen gelten drei zusätzliche Konsensregeln. Erstens ist eine Anfragetransaktion ungültig, es sei denn, es gibt auch eine übereinstimmende Accept-Ausgabe in der Coinbase-Transaktion dieses Blocks. Dies soll garantieren, dass Miner keine Gebühr von der Anfrage erheben können, ohne auch den Sidechain-Block zu akzeptieren und zu minen. Zweitens darf für jede Sidechain nur eine Anforderungstransaktion in einen Mainchain-Block aufgenommen werden. Dadurch soll sichergestellt werden, dass nur ein Block von jeder Sidechain pro Mainchain-Block tatsächlich abgebaut werden kann. Schließlich müssen die letzten vier Bytes des vorherigen Mainchain-Blocks übereinstimmen. Dadurch wird sichergestellt, dass eine Anfrage nur gültig ist, um im nächsten Block abgebaut zu werden, und solche Transaktionen können später nicht abgebaut werden und Geld von einem Sidechain-Blockvorschlager stehlen, nachdem der Block eines anderen abgebaut wurde.

Die Accept-Ausgabe ist sehr einfach: Header-Daten der Nachricht und der Hash des Sidechain-Blocks. Wenn ein Miner selbst einen Drivechain-Knoten betreibt, kann er Anfragetransaktionen einfach ignorieren und immer seine eigene Accept-Ausgabe in seine Coinbase aufnehmen, um seine eigenen Sidechain-Blöcke abzubauen. Zusammen ermöglichen diese beiden Aspekte Minern, entweder selbst einen Sidechain-Knoten zu betreiben, oder einen anderen Nicht-Miner, der dies tut und den Miner dafür bezahlt, seine Blöcke abzubauen. Die Idee ist, dass, wenn Miner selbst die Sidechains nicht betreiben und die zusätzlichen Validierungskosten auffressen, jemand anderes es für sie tun kann. Wenn es Konkurrenz unter Nicht-Minern gibt, die versuchen, Gebühren auf der Sidechain zu verdienen, werden sie wahrscheinlich die Gebühr, die sie bereit sind, Minern in ihrer Anfragetransaktion zu zahlen, weiter bieten, bis sie den Großteil der Gebühren darstellt, die sie verdienen, wobei die Nicht-Miner Der Bergmann behält nur einen kleinen Prozentsatz des Gewinns und zahlt den Rest an die Bergleute.

Das ist die Mechanik hinter der Funktionsweise von Antriebsketten. Als nächstes kommen föderierte Sidechains und danach eine Aufschlüsselung aller Nachteile und Nachteile, die jedes Design haben kann.

Dies ist ein Gastbeitrag von Shinobi. Die geäußerten Meinungen sind ausschließlich ihre eigenen und spiegeln nicht unbedingt die von BTC Inc oder Bitcoin Magazine wider.

Zeitstempel:

Mehr von Bitcoin Magazin