Wie funktioniert Merged Mining?

Wie wirkt sich die Implementierung von Merged Mining auf die globale Hash-Rate von Alt Chains aus?

Passt eine Lösung für alle? Passt eine Lösung zu einigen? Nimmt die Rate der "passenden Lösungen" ab, je mehr Forks getestet werden?

Eine Erklärung, wie Merged Mining tatsächlich funktioniert, wäre hervorragend.

Ich denke, die Antwort, die Sie akzeptiert haben, ist keine strenge Antwort auf Ihre Frage, wie sie im Titel erscheint, sondern eher auf "Wie funktioniert Merged Mining?". Können Sie Ihren Titel bearbeiten, um dies widerzuspiegeln?

Antworten (4)

Merged Mining ermöglicht es einem Miner, mehr als eine Blockchain gleichzeitig zu minen. Der Vorteil ist, dass jeder Hash, den der Miner durchführt, zur Gesamt-Hash-Rate beider (aller) Währungen beiträgt und sie dadurch alle sicherer sind.

Beginnend mit einer Erklärung auf hoher Ebene: Der Miner (oder der Mining-Controller im Fall des Pooled Mining) baut tatsächlich einen Block für beide Hash-Ketten so auf, dass die gleiche Hash-Berechnung beide Blöcke sichert. Arbeitseinheiten, die auf diesem Block basieren, werden dann Minern zugewiesen. Wenn ein Miner einen Block (im Schwierigkeitsgrad einer oder beider Blockchains) löst, wird der Block mit dem abgeschlossenen Arbeitsnachweis neu zusammengesetzt und an die richtige Blockchain übermittelt (oder beide Blöcke werden separat neu zusammengesetzt und jeweils an die entsprechende übermittelt Netzwerk, wenn es beide Schwierigkeitsanforderungen erfüllt).

Das einzige verwirrende Detail ist, wie der gleiche Hash beide Blockchains sichern kann. Ich werde das Beispiel von Bitcoin und Namecoin verwenden, wo Namecoin Merged Mining unterstützt und Bitcoin nicht:

Zunächst muss der Miner ein Transaktionsset für beide Blockchains zusammenstellen. Anschließend baut er den endgültigen Namecoin-Block zusammen und hasht ihn. Anschließend erstellt er eine Transaktion, die diesen Hash enthält, der in der Bitcoin-Kette gültig ist, und fügt sie in das Bitcoin-Transaktionsset an der Spitze des Baums ein. Anschließend stellt er den endgültigen Bitcoin-Header mit dieser Transaktion zusammen und versendet die Arbeitseinheiten.

Löst ein Miner den Hash im Bitcoin-Schwierigkeitsgrad, wird der Bitcoin-Block zusammengesetzt und an das Bitcoin-Netzwerk gesendet. Der Namecoin-Hash tut nichts und das Bitcoin-Netzwerk ignoriert ihn.

Löst ein Miner den Hash im Namecoin-Schwierigkeitsgrad, wird der Namecoin-Block zusammengesetzt. Es enthält den Namecoin-Transaktionssatz, den Namecoin-Blockheader, den Bitcoin-Blockheader und den Hash der restlichen Transaktionen im Bitcoin-Block. Dieses gesamte „Durcheinander“ wird dann an das Namecoin-System übermittelt. Das Namecoin-System, das Merged Mining unterstützt, akzeptiert dies als Arbeitsnachweis, da es Arbeit enthält, die nach dem Erstellen des Blockheaders und des Namecoin-Transaktionssatzes ausgeführt worden sein muss. (Denn Sie können das Bitcoin-Transaktionsset, das diesen Hash enthält, und damit den Bitcoin-Header, der ihn sichert, ohne diese Informationen nicht erstellen. Das beweist also, dass die Arbeit getan wurde.)

Beachten Sie, dass ein Miner beide Ketten gleichzeitig lösen kann, und er wird es tun, wenn er auf der höheren Schwierigkeitsstufe löst. Ein Block kann in der öffentlichen Kette „gewinnen“ und der andere nicht. Sie sind völlig unabhängig – nur das Mining wird zusammengeführt.

Drei wichtige Punkte, die Sie sich merken sollten:

  1. Die Bitcoin-Kette wird aufgrund des Merged Mining nicht mit Namecoin-Zeug überhäuft. Es wird höchstens ein winziger Hash in den Transaktionsbaum eingefügt.
  2. Die beiden Hash-Ketten bleiben völlig unabhängig. Das „Bitcoin-Zeug“, das in den Namecoin-Baum gelangt, wird grundsätzlich ignoriert und nur zur Validierung des Arbeitsnachweises verwendet. (Es wird die Namecoin-Kette etwas aufblähen, da es bedeutet, dass einige Blöcke einen zusätzlichen Header und einen zusätzlichen Hash haben.)
  3. Schließlich ist keine besondere Unterstützung von Bitcoin erforderlich.

Der Vorteil für Namecoin liegt auf der Hand. Viele Bitcoin-Miner werden wahrscheinlich Merged Mining betreiben, da es sie im Grunde nichts kostet und ihnen eine größere Rendite bringt, als Bitcoins allein zu schürfen. Infolgedessen wird das Timing der Blockgenerierung vorhersehbarer und ihre Transaktionen sicherer gegen einen 51-%-Angriff.

„Er erstellt dann eine Transaktion, die diesen Hash enthält, der in der Bitcoin-Kette gültig ist, und fügt sie in das Bitcoin-Transaktionsset an der Spitze des Baums ein.“ - Nur um das klarzustellen, man erstellt eine gefälschte Transaktion für 0BTC, die genau denselben Hash wie den Namecoin-Block hat, und gibt sie als letzte Transaktion in den Merkle-Baum ein, der gehasht wird? Benötigt das Generieren der gefälschten Transaktion nicht viele Ressourcen, wenn sie genau mit dem Hash übereinstimmen muss? Wenn es nur eingefügt wird, ohne generiert zu werden, wird der Block dadurch nicht ungültig, da er eine ungültige Transaktion enthält?
@ThePiachu: Es muss nicht mit dem Hash "übereinstimmen", es muss nur den Hash enthalten .
Der Schlüssel zum Verständnis ist also, dass Namecoin ausdrücklich Merged Mining unterstützt. Mit zwei Ketten, die dies nicht unterstützen, wäre dies unmöglich. Damit hatte ich zu kämpfen, danke! Übrigens, eine Referenz, in der Namecoins fusionierte Mining-Unterstützung dokumentiert ist, wäre großartig!
Wo erscheinen die Namecoin-Transaktionen im Bitcoin-Block? Sind sie in der Coinbase der Miner-Subventionstransaktion enthalten? Können Sie auf Tx in der Blockchain zeigen und es als Namecoin-Block-Hash identifizieren?
@pinhead Sie tun es nicht. Im Bitcoin-Block erscheint nur der Hash des Namecoin-Blocks.
@DavidSchwartz OK, aber WO wird der Namecoin-Block-Hash in den Bitcoin-Block eingefügt? Bei einer Transaktion? In der Coinbase? In einem anderen Datenfeld?
@pinhead Es geht in die ScriptSig der Coinbase-Transaktion. Die Spezifikation ist hier .
Warum ist das Timing der Blockgenerierung vorhersehbarer und kann 51 % Angriffe beim Merge-Mining verhindern? Danke.
ein weiteres Problem. Zum Beispiel ist Namecoin irgendwann schwieriger zu lösen als Bitcoin. Wenn sich also ein Miner entscheidet, sowohl Namecoin als auch Bitcoin zu lösen, hat er eine geringere Wahrscheinlichkeit, einen Bitcoin-Block zu lösen, als manche Miner einfach nur Bitcoin lösen.
@hqt Das macht keinen Sinn. Dass Sie auch versuchen, eine andere Art von Block zu minen, hat keinen Einfluss auf die Wahrscheinlichkeit, dass Sie einen Bitcoin-Block minen werden – diese Wahrscheinlichkeit wird vollständig von der Bitcoin-Schwierigkeit bestimmt.
@DavidSchwartz ja. es ist jetzt wahr. Aber ich erwähne in Zukunft, dass die Lösung eines Namecoin-Problems schwieriger sein kann als die Lösung eines Bitcoin-Problems (mit anderen Worten, eine Nonce von Namecoin ist größer als Bitcoin), sodass alle Miner, die beide Währungen lösen, eine geringere Wahrscheinlichkeit haben, einen Bitcoin-Block zu gewinnen als Nur-Bitcoin-Miner. (unwahrscheinlich, dass dies passieren wird, ich erwähne nur den technischen Aspekt)
zu meiner ersten frage. Ich verstehe nicht, warum das Timing der Blockgenerierung vorhersehbarer ist und 51% Angriffe beim Merge-Mining verhindern kann? Können Sie mir diesen Punkt klarer erklären, danke.
@hqt Ohne fusioniertes Mining werden die Leute nur dann eine Münze abbauen, wenn der Wert der Münze die Kosten der zu schürfenden Energie übersteigt. Beim Merged Mining fallen keine zusätzlichen Kosten für das Schürfen der Münze an, und die Leute werden sie abbauen, solange sie nicht wertlos sind. Dies macht die Hashing-Leistung sowohl größer als auch vorhersehbarer.
@hqt Die Wahrscheinlichkeit, dass Sie einen Block abbauen, hängt ausschließlich von der Schwierigkeit ab. Merged Mining hat keinen Einfluss auf die Schwierigkeit, sodass Ihre Chancen, einen der beiden Blöcke zu minen, die gleichen sind, als ob Sie kein Merged Mining wären. Jeder Hash ist wie zwei Lottoscheine statt einem.
Zum Beispiel. die Schwierigkeit der benannten Münze ist 10. und die Schwierigkeit der Bitcoin ist nur 8. Der Miner verwendet also die schwierige 10 sowohl für Bitcoin als auch für die Namensmünze. Im Vergleich zu einem Bergmann, der nur Bitcoin schürft, wird er/sie Bitcoin nur mit einer Schwierigkeit von 8 lösen. In diesem Fall verringert Merge Mining die Wahrscheinlichkeit, das Rennen zu gewinnen.
@hqt Warum sollte er etwas offensichtlich so Dummes tun? Für jeden Hash prüft er, ob er einen Bitcoin-Block und einen Namecoin-Block abbaut. Wenn es einen Bitcoin-Block abbaut, wird es einen Namecoin-Block abbauen. Wenn es zwischen die beiden Schwierigkeiten fällt, wird es nur einen Namecoin-Block abbauen. Warum sollte er einen gültigen Namecoin-Block wegwerfen, nur weil er die Schwierigkeit eines Bitcoin-Blocks nicht erfüllt?
„Warum sollte er einen gültigen Namecoin-Block wegwerfen, nur weil er die Schwierigkeit eines Bitcoin-Blocks nicht erfüllt?“ Ich verstehe diesen Punkt nicht. Da Sie Merge-Mining auf Bitcoin-Blockchain betreiben, wie können andere Miner Ihre Blockchain akzeptieren, wenn Sie die Schwierigkeiten für einen Bitcoin-Block nicht erfüllen?
@hqt Andere Bitcoin-Miner nicht, aber andere Namecoin-Miner, da sie die Namecoin-Schwierigkeit erfüllen. Wenn Sie meine zusammenführen, ist jeder Hash ein Versuch, zwei (oder mehr) gültige Blöcke für zwei (oder mehr) verschiedene Blockketten zu bilden.
@DavidSchwartz Ah, vielen Dank. Ich vermisse diese wichtige Information. Diese Namecoin-Blockchain wird ihre eigene Blockchain unterhalten.
Ich habe nicht alles gelesen, aber überprüfen Sie Blockstack-Papier, § 3.5 : „Eine unserer wichtigsten Erkenntnisse ist, dass Merged Mining derzeit in der Praxis versagt: Die führende Merged-Mining-Blockchain, Namecoin, ist anfällig für den 51%-Angriff. Außerdem , vermittelte Merged-Mining ein falsches Sicherheitsgefühl. F2Pool kontrolliert 30-35 % der Rechenleistung von Bitcoin, aber über 60 % der Rechenleistung von Namecoin durch Merged-Mining, wodurch Namecoin anfällig für einen 51-%-Angriff ist."
Ja, Merge Mining macht das Gegenteil, um einen 51%-Angriff zu verhindern, indem es die wirtschaftlichen Verluste im Falle eines Ausfalls beseitigt. bitcoinmagazine.com/articles/side-chains-challenges-potential

Grundsätzlich ist die Idee, dass Sie einen Namecoin-Block zusammenbauen und hashen und diesen Hash dann in einen Bitcoin-Block einfügen. Wenn Sie jetzt den Bitcoin-Block auf einem Schwierigkeitsgrad lösen, der größer oder gleich dem Namecoin-Schwierigkeitsgrad ist, ist dies ein Beweis dafür, dass diese Menge an Arbeit für den Namecoin-Block geleistet wurde. Das Namecoin-Protokoll wurde geändert, um einen Bitcoin-Block (gelöst auf oder über dem Namecoin-Schwierigkeitsgrad) zu akzeptieren, der einen Hash eines Namecoin-Blocks als Arbeitsnachweis für den Namecoin-Block enthält. Der Bitcoin-Block wird für das Bitcoin-Netzwerk nur dann akzeptabel sein, wenn er der Schwierigkeit des Bitcoin-Netzwerks entspricht.

Die Bitcoin-Blockkette erhält einen einzelnen zusätzlichen Hash, wenn ein zusammengeführter Mining-Block akzeptiert wird, und die Namecoin-Blockkette erhält etwas mehr (weil sie den Bitcoin-Block enthält), wenn ein zusammengeführter Mining-Block akzeptiert wird. Aufgrund des Merkle-Baums muss jedoch nicht der gesamte Bitcoin-Block in den Namecoin-Baum aufgenommen werden, sondern nur die Hashes der obersten Ebene (daher ist das zusätzliche Aufblähen der Namecoin-Kette kein großes Problem).

Da Sie mit dem Mining von Namecoins und Bitcoins mehr Geld verdienen, werden alle Miner schließlich Merged Mining betreiben, und der Schwierigkeitsgrad für alle Blockchains wird schließlich gleich sein.

Darüber hinaus wird der wirtschaftliche Anreiz zum Schürfen der kombinierte wirtschaftliche Anreiz aller Netzwerke sein, wodurch alle Netzwerke sicherer werden. Dadurch können konkurrierende Netze (mit unterschiedlichen Inflationsraten) natürlich schnell sicher werden. Dies setzt Bitcoin einem stärkeren Wettbewerb aus.

Letztendlich spiegelt der Wert von Bitcoin die Notwendigkeit wider, dass Bitcoins ausgetauscht werden müssen. Je mehr Menschen Bitcoin für Einkäufe verwenden, desto größer ist die Nachfrage nach Bitcoins und desto höher steigt der Preis von Bitcoins. (Spekulation erhöht auch den Preis, aber langfristige Spekulation ist im Wesentlichen eine Wette darauf, dass die Transaktionsnachfrage nach Bitcoin in Zukunft steigen wird.) Je höher der Preis, desto höher der Anreiz zum Schürfen.

Zu jedem Zeitpunkt besteht eine gewisse Nachfrage nach einer Bitcoin-ähnlichen Währung, um Transaktionen durchzuführen. Dieser Bedarf steigt nicht mit mehr Wettbewerb. Das bedeutet, dass die Transaktionsnachfrage nach Bitcoin wirklich dieselbe ist wie die Transaktionsnachfrage nach allen im Wesentlichen ähnlichen Zahlungsformen. Da mehr Währungen konkurrieren, um die gleiche Nachfrage zu befriedigen, verringern sie tatsächlich die Nachfrage nach den anderen Währungen, wenn sie häufiger verwendet werden.

Dies bedeutet, dass Merged Mining letztendlich nicht die Gesamtsicherheit der Netzwerke erhöht, soweit Währungen für Endbenutzer austauschbar sind. Die Nachfrage nach Währungen treibt den Preis (und damit den Wert der Belohnung). Eine erhöhte Nachfrage nach einer bestimmten Währung führt zu einer geringeren Nachfrage nach anderen Währungen, wodurch der Anreiz sinkt, nach anderen Währungen zu suchen. Der Gesamtanreiz ist eine Funktion der Gesamtnachfrage nach allen Bitcoin-ähnlichen Währungen.

Außer jetzt können sich konkurrierende Währungen als „so sicher wie Bitcoin, aber mit niedrigeren Transaktionsgebühren“ vermarkten. Mit anderen Worten, es gibt einen Wettlauf nach unten unter den konkurrierenden Währungen, um die niedrigsten Transaktionsgebühren anzubieten, da die Senkung der Transaktionsgebühr die Sicherheit des Netzwerks im Vergleich zu den anderen fusionierten Mining-Netzwerken nicht beeinträchtigt. Benutzer werden aus eigenem Interesse die Währung mit den niedrigsten Transaktionsgebühren übernehmen, solange sie die gleiche Sicherheit wie die der Konkurrenz hat.

Dies erhöht den Preis der Währung mit der niedrigsten Transaktionsgebühr (weil die Nachfrage nach der Währung höher ist) und senkt den Preis der Währungen mit höheren Transaktionsgebühren (weil die Nachfrage nach diesen Währungen sinkt, da sie durch die Nachfrage nach gefüllt wird). die konkurrierende Währung). Da die Währungen mit den höheren Transaktionsgebühren diejenigen waren, die den Anreiz zum Schürfen erzeugten, wird der allgemeine Anreiz zum Schürfen abnehmen. Solange das Mining einer Währung mit der Freeloading-Währung verschmolzen ist, ist es machtlos, die Anreize durch die Erhebung obligatorischer Transaktionsgebühren zu erhöhen.

Das Ergebnis wird ein Rückgang des Mining-Anreizes sein, ein Rückgang des Mining und letztendlich werden alle Netzwerke, die Merged Mining zulassen, unsicher.

Eine kleine Korrektur – nicht alle Bitcoin-ähnlichen Währungen werden die gleiche Nachfrage bedienen, und Namecoin ist ein hervorragendes Beispiel dafür. Die Nachfrage nach Namecoin basiert stark auf seinem alternativen DNS-System, das Bitcoin nicht bietet.
Sehr richtig. In dem Maße, in dem verschiedene Bitcoin-ähnliche Währungen wirklich unterschiedliche Anforderungen erfüllen, könnte Merged Mining die Gesamtsicherheit erhöhen. Aber in dem Maße, in dem Merged Mining einen Wettlauf der Transaktionsgebühren nach unten für jede unterschiedliche Art von Währung ermöglicht, wird es die allgemeine Sicherheit der Blockkette zerstören. (Vielleicht gibt es eine Möglichkeit zu kontrollieren, welche Währungen beim Bitcoin-Mining mitmachen können? Wenn ja, könnte Bitcoin nur Währungen einladen, die einen Mindestanreiz für die Miner bieten.)
„Im Grunde ist die Idee, dass Sie einen Namecoin-Block zusammenbauen und hashen und diesen Hash dann in einen Bitcoin-Block einfügen.“ - wo fügt man den Namecoin-Block-Hash genau ein?
Issac, ich interessiere mich auch dafür, wohin der Hash geht und ob es Beispiele auf Blockchain .info gibt. Danke @ThePiachu

Satoshi selbst scheint der Erfinder des Merged Mining zu sein. In seinen Worten ( bitcointalk.org ):

Ich denke, es wäre möglich, dass BitDNS ein vollständig separates Netzwerk und eine separate Blockkette ist, aber dennoch die CPU-Leistung mit Bitcoin teilt. Die einzige Überschneidung besteht darin, dass Miner gleichzeitig nach Proof-of-Work für beide Netzwerke suchen können.

Die Netzwerke müssten nicht koordiniert werden. Miner würden beide Netzwerke parallel abonnieren. Sie würden SHA so scannen, dass sie bei einem Treffer möglicherweise beide gleichzeitig lösen. Eine Lösung kann nur für eines der Netzwerke gelten, wenn ein Netzwerk eine geringere Schwierigkeit hat.

Ich denke, ein externer Miner könnte getwork auf beiden Programmen aufrufen und die Arbeit kombinieren. Rufen Sie vielleicht Bitcoin an, holen Sie sich Arbeit daraus, übergeben Sie es BitDNS getwork, um es zu einem kombinierten Werk zu kombinieren.

Anstelle einer Fragmentierung teilen und erweitern sich Netzwerke gegenseitig ihre gesamte CPU-Leistung. Dies würde das Problem lösen, dass sich mehrere Netzwerke gegenseitig gefährden, wenn sich die verfügbare CPU-Leistung auf eines konzentriert. Stattdessen würden sich alle Netzwerke der Welt die kombinierte CPU-Leistung teilen und die Gesamtstärke erhöhen. Es würde kleinen Netzwerken den Einstieg erleichtern, indem sie auf eine bereite Basis von Bergleuten zurückgreifen.

Eine Sache, die man beim Merged Mining beachten sollte, ist, dass der Block-Hash der Auxiliary-Chain (z. B. Namecoin) nicht unter der Aux-Chain-Schwelle liegen muss. vielmehr ist es der Block-Hash des Elternteils (z. B. Bitcoin), der unterhalb der Aux-Chain-Schwelle (Namecoin) liegen muss. Sehen Sie sich zum Beispiel an, was mit Namecoin passiert ist, als Merged Mining in Block 19200 eingeführt wurde :

nmc block height: 19199
nmc block hash: 000000000000b19f0ad5cd46859fe8c9662e8828d8a75ff6da73167ac09a9036

nmc block height: 19200
nmc block hash: d8a7c3e01e1e95bcee015e6fcc7583a2ca60b79e5a3aa0a171eddd344ada903d

Dies geschah nicht aufgrund einer Schwierigkeitsänderung bei Namecoin, und es geschah auch nicht , weil die Namecoin-Schwierigkeit durch Merged Mining irrelevant wurde. Vielmehr geschah es, weil sich die Kriterien für die Bewertung gültiger Blöcke aufgrund des Merged Mining geändert haben.

Dem Namecoin-Header wurden zusätzliche Felder hinzugefügt, mit denen wir überprüfen können, ob der Block validiert unter dem Namecoin-Schwellenwert liegt. Insbesondere ist der Block-Hash der übergeordneten Kette jetzt im Namecoin-Block-Header enthalten. Es ist dieser Block-Hash, der in der übergeordneten Kette abgebaut wird, und so können wir diesen Block-Hash einfach beobachten und jedes Ergebnis abrufen, das niedriger als die Namecoin-Schwelle ist.

Der Grund, warum dieser Block-Hash der übergeordneten Kette für die Hilfskette überhaupt relevant ist, liegt einfach darin, dass der Block-Hash der Hilfskette im Coinbase-Txin-Skript in der übergeordneten Kette enthalten ist. Dieses Coinbase-TXIN kann jeden beliebigen Wert annehmen – es muss kein gültiges Skript erzeugen . Es ist also ein guter Ort, um den übergeordneten Kettenblock-Hash abzulegen.

Um einen Merge-Mining-Block zu validieren, müssen wir also rückwärts arbeiten:

  1. Stellen Sie sicher, dass der Aux-Chain-Block-Hash (bevor Sie die Daten der übergeordneten Kette hinzufügen) im Coinbase-Txin-Skript vorhanden ist
  2. Stellen Sie sicher, dass der Coinbase-TX im Merkle-Baum des übergeordneten Elements vorhanden ist
  3. Stellen Sie sicher, dass die Merkle-Root des übergeordneten Elements im Block-Hash des übergeordneten Elements vorhanden ist
  4. Stellen Sie sicher, dass der Block-Hash des übergeordneten Elements niedriger als der Schwellenwert der Aux-Kette ist

und da jeder dieser Schritte eine Einweg-Hash-Funktion der Daten im vorherigen Schritt beinhaltet, dann verifiziert der Abschluss jedes Schrittes alle vorherigen Schritte.