Werden allgemeine Nicht-Standard-Transaktionen jemals erlaubt sein?

Nach meinem besten Wissen akzeptieren derzeit "Satoshi"-Client-Relays und die meisten Pools nur Standardtransaktionen (Übertragung oder Generierung) . Außerdem arbeitet die Community am M-of-N-Transaktionstyp . Das Hinzufügen von Nicht-Standard-Transaktionen zur Blockchain ist heutzutage ziemlich problematisch.

Während das derzeitige Aktivieren beliebiger Skripte in Transaktionen aufgrund möglicher Fehler im Code (oder im Skriptsystem selbst) katastrophal sein könnte, frage ich mich, ob es geplant ist, beliebige Transaktionen irgendwann in der Zukunft zuzulassen, oder wird der größte Teil des Netzwerks immer darauf beschränkt sein einige "gute" Transaktionsvorlagen?

möglicherweise hier beantwortet: bitcoin.stackexchange.com/questions/4486/…
@kirian Könntest du bitte ein genaues Zitat posten? Ich kann nichts über die Pläne zum Umgang mit nicht standardmäßigen Transaktionen in der Zukunft finden oder darüber, ob " IsStandard" das Einchecken des "Standard" -Clients als vorübergehend oder dauerhaft angesehen wird.
Entschuldigung, Sie haben recht. Ich weiß nicht, was die Pläne für nicht standardmäßige Transaktionen im Satoshi-Client sind.

Antworten (3)

Die aktuelle Entwicklungsrichtung (Januar 2013) sieht vor, die IsStandard()-Prüfungen noch weiter zu verschärfen. Beispielsweise möchten wir, dass alle Signaturen einer sehr strengen, kanonischen Verschlüsselung entsprechen, um potenziellen Angreifern das Leben schwer zu machen.

Zuzulassen, dass mehr Opcodes oder Opcode-Muster (oder alle Opcodes/Muster) als IsStandard() betrachtet werden, ist sicherlich möglich; Bevor ich das tue, würde ich gerne eine gründliche Analyse der Möglichkeit von Unfug mit dem aktuellen Satz von Opcodes und viel Prototyping im Testnetzwerk sehen (wo die IsStandard()-Prüfung bereits alle aktivierten Opcodes zulässt).

Welche Risiken sind mit der Weitergabe von nicht standardmäßigen Transaktionstypen verbunden?

Ab 2014 wurde die isStandard()Prüfung gelockert. Sie können nun verschiedenste Skripte in Transaktionen einbinden.

Lesen Sie hier mehr: Was ist mit „entspannten Standards“ für P2SH-Einlöseskripte in Bitcoin Core 0.10.0 gemeint?

Damit das Bitcoin-Protokoll seinen Zweck erfüllen kann, muss jeder Kunde Transaktionen in derselben Angelegenheit verarbeiten. Damit eine neue Art von Transaktion eingeführt und ausgegeben werden kann, muss sie entweder den aktuellen Regeln entsprechen (z. B. mit dem Skript ausgeführt werden können ) oder (idealerweise) von jedem Client akzeptiert werden. Wenn man eine neue Transaktionsart implementieren würde, ohne dass sich die Leute daran halten, würde die Transaktion im besten Fall unbrauchbar, im schlimmsten Fall - sie würde von den Clients nicht verarbeitet.

Um eine Option zum Erstellen "beliebiger Arten von Transaktionen" einzuführen, müsste man eine neue Version des Skripts oder etwas Ähnliches erstellen. Darüber hinaus müsste dieses Skript immer noch resistent gegen böswillige Angriffe sein (z. B. keine Schleifen oder ähnliche Methoden, die dazu führen, dass viele Clients viele Rechenressourcen verlieren, die die Gültigkeit der Transaktion überprüfen).

Alles in allem wäre es möglich, mit einigen Änderungen des Protokolls ein breites Spektrum an Transaktionen zu verallgemeinern, aber diese Änderungen müssten von allen akzeptiert werden. Es ist höchst unwahrscheinlich, dass man jemals in der Lage sein wird, aus einer Laune heraus eine neue Art von Transaktion zu erstellen.

Danke für deine Antwort. Ich war jedoch mehr daran interessiert, bestehende Protokolle nicht zu erweitern, sondern Einschränkungen zu entfernen, die es dem Standardclient erlauben, nur Transaktionen mit Skripten zu verbreiten, die einer bestimmten Vorlage entsprechen, und nicht irgendwelche technisch gültigen Transaktionen. Beispielsweise macht das Hinzufügen OP_DUP OP_DROPam Anfang des Skripts die Transaktion nicht ungültig, aber derzeit senden die meisten Clients sie nicht, und die meisten Pools fügen sie nicht zum abgebauten Block hinzu.
ThePiachu: Was passiert, wenn ich ein Miner bin und die von mir ausgeführte Software so ändere, dass sie nicht standardmäßige Transaktionen akzeptiert, und ich dann erfolgreich einen Block schürfe, der Transaktionen mit meinem nicht standardmäßigen Skript enthält?
@Loourr - Sie erstellen eine Hardfork, die im Allgemeinen von allen anderen abgelehnt wird, die diese nicht standardmäßigen Transaktionen nicht akzeptieren.