Wie P2P-Protokolle versuchen, die Zentralisierung von Bitcoin Mining zu lösen PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wie P2P-Protokolle versuchen, die Bitcoin-Mining-Zentralisierung zu lösen

Bitcoin-Mining-Pools sind auf Zentralisierung angewiesen, aber P2Pool und andere Protokolle haben versucht, die Notwendigkeit des Vertrauens in Dritte zu verringern.

In einer vorheriger Artikelhabe ich über die Natur der Dezentralisierung im Vergleich zur Zentralisierung im Bitcoin-Mining geschrieben und wie man dies in einem hauptsächlich qualitativen Sinne konzeptualisiert. Der Artikel hat den gesamten Mining-Stack aufgeschlüsselt, von der Pool-Koordination bis hin zur Energieerzeugung, um ein Gefühl für die Beziehung zwischen den verschiedenen Schichten des Mining-Stacks und das Potenzial zur Maximierung der Dezentralisierung zu vermitteln, und darauf hingewiesen, dass Sie je weiter unten im Stack sind in Richtung Energieerzeugung gehen, desto schwieriger und kapitalintensiver wird es, ein sinnvolles Maß an Dezentralisierung in diese Schicht zu bringen.

In diesem Artikel beabsichtige ich, tiefer auf das Thema Mining-Pools und Miner-Koordination einzugehen, um unabhängige Mining-Betriebe zu erleichtern, die zusammenarbeiten, um Blöcke abzubauen, die an die Blockchain angehängt werden.

Die Erstellung von Mining-Pools

Das Mining hat sich seit den Tagen, als Sie einfach auf eine Schaltfläche klicken und Blöcke zuverlässig selbst auf einer Laptop-CPU abbauen konnten, weit entwickelt. Damals war es praktisch ein Amateur-Hobby-Unterfangen, das keine wirklichen Kapitalinvestitionen oder Fachkenntnisse erforderte, aber heute ist es ein professioneller Markt von mehreren Milliarden Dollar, der massive Kapitalinvestitionen in großem Maßstab erfordert. Es ist ein ganz anderes Ballspiel.

Eine der natürlichen Folgen dieser Veränderung in der Natur der Bergbauindustrie war die sehr frühe Schaffung von Bergbaupools. Als beim Mining ein Laptop effektiv in der Ecke lief, war die Varianz und Unvorhersehbarkeit, wann Sie einen Block finden würden, nicht wirklich eine große Sache – schließlich würden Sie es tun, und die Stromkosten für den Betrieb eines Laptops waren nicht wirklich wirtschaftlich Bedeutung.

Als sich die Dinge auf GPUs und ASICs verlagerten, gab es im Voraus materielle Investitionskosten und viel bedeutendere Stromkosten, um sie am Laufen zu halten. Diese Unvorhersehbarkeit, wann Sie einen Block finden würden, wurde zu einem viel größeren Problem für Bergleute, die versuchten, eine Rendite aus ihren Kapitalinvestitionen zu erzielen und profitabel zu arbeiten. Hier kommen Mining-Pools ins Spiel.

Sie ermöglichen den Minern, zusammenzuarbeiten, um einen gültigen Block-Header zu finden, der gemeinsam am selben Block arbeitet, und senden die Coinbase-Belohnung an den Mining-Pool, der sie dann proportional unter allen teilnehmenden Minern verteilt, je nachdem, wie viel Arbeit sie beim Finden geleistet haben der Block. Dies wird bewiesen, indem „Anteile“ an den Mining-Pool abgegeben werden; Blöcke, die das Netzwerkschwierigkeitsziel nicht erfüllen, aber hoch genug sind, um zu beweisen, dass ein Miner nicht lügt und tatsächlich Hardware ausführt und versucht, einen gültigen Block zu finden.

Mining-Pool-Zentralisierung

Zentralisierte Mining-Pools haben große Auswirkungen auf einzelne Miner. Sie sind ein Zentralisierungspunkt im Prozess der Auswahl (oder, was noch wichtiger ist, des Ausschlusses) von Transaktionen für die Aufnahme in einen Block. Dies gibt jedem Mining-Pool-Betreiber die vollständige Kontrolle über die Transaktionen, die er auf der Blockchain verarbeiten möchte, ohne dass die tatsächlichen Eigentümer der Mining-Hardware ein Mitspracherecht haben, außer indem sie den Pool verlassen, wenn sie mit den Kriterien nicht einverstanden sind Bediener entscheidet sich für die Einstellung.

Sie verwahren auch die Bitcoins einzelner Miner, bis diese Miner entscheiden, sie aus dem Pool zurückzuziehen, sodass der Pool-Betreiber als Verwahrer und zentraler Punkt fungiert, der Miner, die den Pool nutzen, betrügen oder von Regierungen unter Druck gesetzt werden könnte, einzelne Miner-Gelder zu beschlagnahmen oder KYC anzuwenden Anforderungen an sie.

Welche Lösungen gibt es also, um dieses Problem anzugehen?

P2Pool: Der ursprüngliche dezentrale Mining-Pool

P2Pool ist das ursprüngliche dezentralisierte Mining-Pool-Protokoll. Es ist ein Peer-to-Peer-Protokoll, bei dem Miner sich untereinander koordinieren, um die Mining-Belohnungen aufzuteilen, während sie zusammenarbeiten, um einen gültigen Block zu finden, der dem Schwierigkeitsziel entspricht. Diese Koordination wird durch das erreicht, was das Protokolldesign als „Sharechain“ bezeichnet.

Bergleute im P2Pool nehmen Blöcke, die das Schwierigkeitsziel des Netzwerks nicht erfüllen, und schürfen effektiv ihre eigene Blockchain, die aus allen Kopien des einzelnen Blocks besteht, an dem der Pool arbeitet. Wenn sie das kleinere Schwierigkeitsziel erreichen, bei dem der Block in einen Pool umgewandelt würde, um zu beweisen, dass sie in einem zentralisierten Modell abbauen, übertragen sie diesen Block an den Rest der Miner. Die „Share Difficulty“ von P2Pool war darauf ausgerichtet, dass Miner etwa alle dreißig Sekunden eine Aktie finden würden.

Ich bin mir sicher, dass sich die Leser fragen, wie die Auszahlung an einzelne Miner funktioniert. Die Coinbase-Transaktion ist so strukturiert, dass für jeden einzelnen Miner im P2Pool eine Ausgabe erstellt wird, die die Gelder direkt aus der Coinbase-Transaktion aufteilt. Miner im P2Pool überprüfen, ob alle Auszahlungen an sich selbst und alle am Pool Beteiligten korrekt sind und dass jeder Miner, der einen Anteil zur Sharechain beigetragen hat, für seine Arbeit in jedem neu hinzugefügten Anteil korrekt ausgezahlt wird. Wenn ein teilnehmender Miner die Auszahlungen an alle in seinem letzten Anteil nicht korrekt strukturiert, hören alle anderen Miner im P2Pool auf, sie in ihre eigenen Auszahlungen aufzunehmen, und „vertreiben“ diesen Miner effektiv aus dem Pool, weil er sich nicht fair verhalten hat.

Dieses Design führte zu einigen Skalierungsproblemen, weshalb es nicht mehr verwendet wird. Mit zunehmender Beteiligung an einem P2Pool wächst auch das aggregierte Schwierigkeitsziel für Aktien in der Sharechain, die ungefähr alle dreißig Sekunden anvisiert werden. Dies bedeutet, dass es für kleinere Miner schwieriger wird, die Sharechain-Schwierigkeit innerhalb von 2 Sekunden zu erreichen. Dies bedeutet, dass für kleinere Bergleute die Varianz oder Unvorhersehbarkeit ihres Einkommens zunimmt, wenn die aggregierte Hash-Rate in einem P2Pool zunimmt. Dies führt auch zu einer größeren Anzahl veralteter Blöcke, da mehr Bergleute ungefähr zur gleichen Zeit konkurrierende Aktien für die Sharechain finden, wenn mehr Bergleute dem PXNUMXPool beitreten, was aus Sicht der einzelnen Bergleute, die nur bekommen, zu „verschwendeter Arbeit“ führt vergütet, wenn ihr Anteil in die Sharechain aufgenommen wird.

Das andere Hauptproblem bei der Skalierbarkeit sind die Auszahlungen, die von der Coinbase-Transaktion selbst direkt an einzelne Miner gehen. Da jeder Miner im Verhältnis zu den von ihm geschürften Anteilen, die in der Sharechain enthalten sind, ausgezahlt wird, benötigt jeder Miner im P2Pool einen neuen Output, der in der Coinbase-Transaktion hinzugefügt wird.

Dies hat zwei Konsequenzen. Erstens: Bergleute erhalten kleine, geringwertige UTXOs in jedem Block, den der P2Pool findet, was mit den Kosten für die spätere Verdichtung dieser Ausgaben und/oder den Kosten viel größerer Transaktionen verbunden ist, wenn sie ihre Münzen ausgeben zahlreiche einzelne UTXOs, mit denen sie am Ende landen, anstatt eines einzigen, wenn sie sich nach einer bestimmten Zeit aus einem herkömmlichen Pool zurückziehen. Zweitens: Jede neue Coinbase-Ausgabe nimmt Blockspace ein, der von den Transaktionen anderer Personen verbraucht werden könnte, und bringt dem P2Pool mehr Gebühreneinnahmen ein. Es ist ein doppelter Verlust für die Miner, die an dem Protokoll teilnehmen.

Diese beiden Probleme trugen dazu bei, dass das Protokoll langsam absterbte und schließlich in einen Zustand der Nichtnutzung geriet. Nach allen Anzeichen meiner besten Bemühungen, genaue und aktuelle Statistiken aufzuspüren (viele alte Block-Explorer, die die Mining-Pool-Anteile verfolgen, wurden im Laufe der Jahre geschlossen), scheint es, als ob der letzte von P2Pool abgebaute Block eingeschaltet war 12. Februar 2019.

P2Pool mit Zahlungskanalauszahlungen

Im Jahr 2017, einen Monat nach der SegWit-Aktivierung, machte Chris Belcher einen Angebot Verbesserung der Skalierbarkeit von P2Pool durch die Verwendung von Einweg-Zahlungskanälen und einer Gruppe von Hubs, die Auszahlungen an die Bergleute abwickeln.

Der Hauptzweck des Vorschlags besteht darin, das Problem anzugehen, dass größere Coinbase-Transaktionen das Geld der Bergleute auf zwei verschiedene Arten verlieren. Auf hoher Ebene besteht die Idee einfach darin, die gesamte Coinbase-Transaktion an einen Hub mit Zahlungskanälen auszuzahlen, die den einzelnen Bergleuten offen stehen, und zu garantieren, dass die Möglichkeit, die Gelder aus der Coinbase-Transaktion zu beanspruchen, atomar mit der Entschädigung der Bergleute verbunden ist ihre Anteile über die Zahlungskanäle.

Um das Ziel der Atomarität zwischen der Coinbase-Transaktion und den Zahlungskanälen für Auszahlungen zu erreichen, muss das Ausgabeskript der Coinbase-Transaktion angepasst werden. In Belchers Vorschlag ist es als ein mehrzweigiges Skript mit drei Ausgabebedingungen strukturiert:

  • Ein Zwei-von-Zwei-Multisig. Schlüssel eins: die Nabe (Hc). Schlüssel zwei: Miner, der den Block gefunden hat (Mc).
  • Ein einziger Schlüssel und ein Hashlock. Schlüssel: die Nabe (H). Hashlock: ein vom Hub (X) generierter Zufallswert.
  • Ein einziger Schlüssel und ein Zeitschloss. Schlüssel: der Bergmann, der den Block gefunden hat (M). Zeitsperre: eine CSV-relative Zeitsperre von sechs Monaten.

Jede dieser Ausgabebedingungen kann verwendet werden, um die Coinbase-Transaktionsausgabe freizuschalten. Schauen wir uns nun das Skript des Zahlungskanals für die Miner an, damit wir sehen können, wie die beiden Dinge interagieren:

  • Ein Zwei-von-Zwei-Multisig. Schlüssel eins: der Hub (Hc1). Schlüssel zwei: der Miner (Mc1).
  • Ein Zwei-von-Zwei-Multisig und ein Hashlock. Schlüssel eins: der Hub (Hu1). Schlüssel zwei: der Miner (Mu1). Hashlock: Der zufällige Wert, der vom Hub generiert wird, der in der Coinbase (X) verwendet wird.

Lassen Sie uns nun durchgehen, wie diese beiden Dinge miteinander interagieren.

Während Miner Aktien produzieren, um sie der Sharechain hinzuzufügen, überwacht der Hub den Fortschritt. Für jede Aktie aktualisiert der Hub den Zustand des Kanals mit Bergleuten, die eine Aktie abgeben, um sie proportional zu der Menge an Arbeit zu bezahlen, die sie leisten. Sie geben ihnen jedoch nur eine Signatur für den zweiten Skriptpfad, für den das Hashlock-Preimage ausgegeben werden muss – dies garantiert, dass sie diese Gelder standardmäßig nicht beanspruchen können, ohne dass der Hub ihnen eine Signatur für den ersten Pfad gibt, es sei denn, der Hub gibt die Coinbase aus Ausgabe selbst unter Verwendung des Skriptpfads mit dem Hashlock, der erfordert, dass sie das Preimage veröffentlichen.

Nun findet irgendwann einer der Miner im P2Pool einen gültigen Block und veröffentlicht ihn im Netzwerk. An diesem Punkt kann der Hub alle Zahlungskanäle mit den Minern aktualisieren und die Signatur für den ersten Skriptpfad im Kanal bereitstellen, sodass jeder Miner seinen Kanal schließen und die verdienten Belohnungen sammeln kann, wann immer er will, ohne den Hashlock zu benötigen Vorbild.

An diesem Punkt signiert der Miner, der den Block gefunden hat, den ersten Skriptpfad in der Coinbase, sodass der Hub die Gelder aus der Coinbase beanspruchen kann. Dieser Miner erhält einen kleinen Bonus aus den Mining-Belohnungen, um ihn dazu anzuregen, kooperativ zu unterschreiben. Aber denken Sie daran: Wenn der Miner sich weigert zu kooperieren, kann der Hub einfach selbst Geld ausgeben, indem er den Hashlock-Pfad verwendet und das Preimage aufdeckt, sodass alle Miner ihren gerechten Anteil an der Belohnung erhalten können.

Dies hat nur den Nachteil, dass alle Kanäle gezwungen werden, sich in der Kette zu schließen, und wieder geöffnet werden müssen, um das Mining fortzusetzen. Die letzte Option besteht für den Fall, dass der Hub-Betreiber die Verarbeitung von Auszahlungen einstellt oder verschwindet. Nach sechs Monaten kann der Miner, der den Block gefunden hat, die Gelder vollständig für sich beanspruchen, wenn der Hub nicht auf eine Zusammenarbeit reagiert oder die Coins mit dem Hashlock-Pfad ausgegeben hat.

Dies lässt zwei spezifische Probleme in Bezug auf das Bedrohungsmodell mit den von Belcher vorgeschlagenen Verbesserungen. Die Entscheidung, welche Transaktionen in einen Block aufgenommen werden sollen, lässt Spielraum für Abweichungen, wie viel der gesamten Blockbelohnung davon abhängt, was einzelne Miner in die Blockvorlagen aufnehmen, die sie abbauen.

Bei der Einführung von Zahlungskanälen schafft dies einen Spielraum für Fehler, dh die tatsächliche Belohnung für geminte Blöcke entspricht nicht dem, wozu sich ein Mining-Hub in den Zahlungskanälen gegenüber Minern verpflichtet. Für den Fall, dass die tatsächlichen Gebührenschätzungen kleiner sind als die Blockbelohnung, kann der Hub einfach die Zahlungskanäle aktualisieren, die den kooperativen Ausgabenpfad mit dem geringeren Betrag verwenden, und solange sie die Coinbase-Ausgabe nicht mit dem Hashlock-Pfad beanspruchen, Die Miner haben keine andere Wahl, als die geringere Auszahlung zu akzeptieren, die der tatsächlichen Mining-Belohnung entspricht.

Für den Fall, dass die Mining-Belohnung etwas höher war als die Schätzung, ist es immer noch im besten Interesse des Hubs, die Kanäle zu den Minern zu aktualisieren, um dies widerzuspiegeln, da Miner, die der Hub unehrlich behandelt, jederzeit einfach gehen können. Der einzige Grenzfall, in dem es für den Hub sinnvoll sein könnte, zu überlaufen und die zusätzliche Belohnung zu behalten, wäre, wenn jemand eine ungewöhnlich hohe Miner-Gebühr zahlt, aber abgesehen von dieser Situation ist es im Interesse des Hubs und der Miner, sich auf jede Diskrepanz zwischen ihnen einzustellen die Prämienschätzung und die tatsächliche Blockprämie.

Das zweite Problem ist die Tatsache, dass der Hub ein zentraler Punkt ist, der DDoS-angegriffen und gezwungen werden kann, den P2Pool am Funktionieren zu hindern. Belchers Vorschlag beinhaltet die Verwendung mehrerer Hubs und das Senden jeder Coinbase-Transaktion von verschiedenen Blöcken an verschiedene Hubs. Dies erfordert jedoch, dass Miner Kanäle von allen Hubs öffnen, die sie verwenden, was nach Belchers Schätzung, dass ein Hub das 50-fache der Blockbelohnung (etwa 650 BTC) benötigt, um Liquidität für Miner bereitzustellen, unglaublich kapitalineffizient wird.

Braidpool: Eine weitere Iteration

Enter Zopfpool (Achtung: Link ist ein direkter PDF-Download von GitHub). Braidpool ist ein Vorschlag von Bob McElrath und Kulpreet Singh, der auf Belchers Vorschlag unter Verwendung von Zahlungskanälen aufbaut. Es wurden zwei wesentliche Änderungen eingeführt, die die noch offenen Punkte verbessern, die bei Belchers Vorschlag übrig geblieben sind.

Die erste ist eine Änderung in der Art und Weise, wie die Hubs und Miner miteinander kommunizieren. Sie schlagen vor, dass Miner jeder der Shares, die sie an den Pool senden, eine Tor v3-Adresse beifügen. Auf diese Weise kann der Hub betrieben werden, ohne dass ein Netzwerkendpunkt offengelegt wird, der für DoS-Angriffe anfällig ist.

Der Hub-Betreiber kann sich dann mit Minern verbinden, um Kanäle mit ihnen zu öffnen und zu aktualisieren, wodurch die Notwendigkeit für Miner verringert wird, mehrere Hubs zu verwenden, um einen einzigen Angriffspunkt zu vermeiden. Dadurch kann ein Braidpool mit einem einzigen Hub betrieben werden, wodurch das gesamte System robuster und kapitaleffizienter wird.

Wie P2P-Protokolle versuchen, die Zentralisierung von Bitcoin Mining zu lösen PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
Quelle: Whitepaper von Braidpool

Die zweite Änderung ist die Verwendung eines gerichteten azyklischen Graphen (DAG) anstelle einer Sharechain. Das Problem mit der Sharechain bestand darin, dass mit dem XNUMX-Sekunden-Share-Time-Ziel die für Shares erforderliche Schwierigkeit mit zunehmender Größe des Pools zunahm, was es für kleinere Miner schwieriger machte. Die Verwendung eines DAG wie Ethereum, bei dem es sich nicht um ein Nullsummenspiel handelt, bei dem eine einzelne Aktie in die Sharechain gelangt und andere verwaisen, ermöglicht es Minern, dynamisch eine Schwierigkeit für Aktien festzulegen, die basierend auf der Hash-Rate, die sie haben, und wie sie angepasst werden können häufig können sie Aktien damit finden.

Die DAG-Struktur umfasst alle, die zwischen tatsächlich gefundenen Bitcoin-Blöcken daran teilgenommen haben, und verteilt die Belohnungen proportional zwischen allen, basierend auf der Arbeit, die sie für die DAG geleistet haben. Dies löst das Skalierungsproblem der Varianz für einzelne Miner, wenn die Pools größer werden.

Abgesehen von diesen beiden Änderungen ist der Rest der Struktur genau wie Belchers Vorschlag, die Münzbasis und die Kanalskripte sind gleich.

Abschließende Überlegungen

Einige Leser fragen sich vielleicht, warum Betterhash in diesem Artikel nicht angesprochen wurde. Während die Auswahl der Transaktionen für die Aufnahme in einen Block dezentralisiert wird, werden nicht alle Funktionen des Pools vollständig dezentralisiert – vor allem die Verwahrungsnatur von Pools, die Gelder verwalten. Dies lässt Miner anfällig für Zwang durch die Weigerung, Gelder auszuzahlen, wenn der Miner Transaktionen auswählt, die der Pool nicht genehmigt. Daher würde ich es nicht als dezentralen Mining-Pool betrachten, obwohl es die Situation in einem feindlichen, aber nicht ganz vollständig gegnerischen Umfeld geringfügig verbessert.

Dieser Artikel konzentrierte sich auf P2Pool und schlug Iterationen vor, um seine Skalierungsbeschränkungen zu verbessern. Um kein ganzes Buch zu schreiben, habe ich andere bestehende oder potenzielle Designs nicht angesprochen. Sobald ich dazu in der Lage bin, plane ich, einen Folgeartikel zu schreiben, der sich mit anderen Mechanismen zur Dezentralisierung von Mining-Pools befasst.

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 . wider Bitcoin Magazin.

Zeitstempel:

Mehr von Bitcoin Magazin