Könnte der Mining-Zentralisierung entgegengewirkt werden, indem überprüft wird, ob sich der Knoten mit vielen ASICs anstelle von einem verbindet?

In einem Mining-Pool verbinden sich viele ASICs und GPU/CPU aus der ganzen Welt mit dem Knoten des Pools. Ist es möglich, die Client-Software jedes Knotens zu zwingen, zu prüfen, ob ein Knoten mit nur einer Recheneinheit verbunden ist, bevor der Knoten schürfen darf? Oder übersehe ich etwas darüber, wie der Mining-Pool-Knoten funktioniert?

Wenn ich richtig liege, würden einige sagen, dass wir nicht wissen können, ob der Client oder die Hardware so manipuliert sind, dass der Client immer sagt, dass es nur eine Recheneinheit gibt. Wie wäre es, wenn Sie den Client und die Hardware in eine Trusted Execution Environment (TEE) stellen, damit sie nicht manipuliert werden können?

Antworten (2)

Nein das ist nicht möglich. Miner müssen dem Netzwerk ohne Genehmigung beitreten dürfen, da sonst die Position eines „Entscheidungsträgers“ notwendig wird. Dies bedeutet nicht unbedingt, dass der Entscheidungsträger nur eine einzelne Person (oder eine Gruppe von Personen usw.) ist, aber in jedem Fall stellt dies eine zusätzliche Eintrittsbarriere in das Netzwerk dar.

Bedenken Sie: Wenn ich ein Miner wäre, warum würde ich meinem Knoten erlauben, jedem anderen Miner die Erlaubnis zu erteilen, dem Netzwerk beizutreten? Indem ich niemandem den Beitritt erlaube, hätte ich weniger Konkurrenz beim Mining. Also wäre ich schlau, alles zu tun, um andere daran zu hindern, sich anzuschließen.

Wie kommt das Netzwerk außerdem zu einem Konsens darüber, welche Nodes minen dürfen? Dies ist ein nicht triviales Problem, tatsächlich ist es das Mining selbst, das es dem Netzwerk ermöglicht, einen Konsens aufrechtzuerhalten. Sie müssten ein ganz neues System und eine Ebene des Konsens schaffen, die dem Akt des Mining vorausgehen würden.

Ebenfalls erwähnenswert: Selbst wenn es möglich wäre, ist der Betrieb eines Knotens kostengünstig, sodass eine einzelne Entität nicht daran gehindert werden kann, nur viele Knoten zu betreiben, um viele Mining-Hardwaregeräte zu betreiben.

Wie Sie bereits erwähnt haben, gibt es auch keine Möglichkeit, einen Benutzer zu zwingen, eine bestimmte Softwareimplementierung zu verwenden. Eine vertrauenswürdige Ausführungsumgebung ist in diesem Fall keine Lösung: So etwas zu erzwingen, würde die Entscheidung darüber zentralisieren, was innerhalb des TEE läuft, was in krassem Gegensatz zu den genehmigungsfreien und Open-Source-Kryptowährungen steht. Ohne diese Eigenschaften wird das Wertversprechen einer Kryptowährung wie Bitcoin zerstört. Was ist, wenn der Entscheidungsträger oder Hardwarehersteller kompromittiert wird? Situationen wie diese stellen enorme existenzielle Risiken für das Netzwerk dar.

Wie wäre es, wenn Sie den Client und die Hardware in eine Trusted Execution Environment (TEE) stellen, damit sie nicht manipuliert werden können?

Das ist im Grunde die einzige Möglichkeit, dies zu erreichen. Aber es bedeutet, dass der Code signiert werden muss und Sie eine zentralisierte Autorität benötigen, um die Signierung vorzunehmen. Diese Behörde hätte die vollständige Kontrolle darüber, wie Bitcoin funktioniert.

Eines der wichtigsten Designziele von Bitcoin war jedoch die Vermeidung einer Zentralisierung, sodass Entscheidungen über die Funktionsweise der Währung im Konsens getroffen werden und nicht von einer einzelnen Behörde. (Sie können einen Text direkt im Genesis-Block sehen, der Satoshis Skepsis gegenüber Zentralbanken zum Ausdruck bringt.) Sie könnten also eine Währung entwerfen, die nur mit TEEs betrieben werden kann, und sie könnte Ihre gewünschten Bergbaubeschränkungen haben, aber ich denke, Sie würden das finden Der größte Teil der aktuellen Bitcoin-Benutzerbasis hätte kein Interesse daran, eine solche Währung zu verwenden.

Hallo, ich verstehe den Code-Signing-Teil nicht. Welcher Code muss von der Behörde signiert werden?
@Danny: Ich denke, es hängt davon ab, welche Art von TEE Sie im Sinn haben. Eine Möglichkeit ist Hardware, die Code nur dann ausführt, wenn sie über eine gültige digitale Signatur verfügt, die von einem bestimmten Schlüssel (oder Satz von Schlüsseln) erstellt wurde. Wer diese Schlüssel besitzt, entscheidet dann, welche Software das Gerät ausführen kann, und die Frage ist, wer sie besitzt. Sie könnten auch ein Gerät haben, bei dem die Software "eingebrannt" ist und nicht geändert werden kann - dann müssen Sie entscheiden, wer die Geräte herstellen darf.