Prüfung der Vollständigkeit des Bitcoin-Skripts

Skripte sind für mich eines der interessantesten Features von Bitcoin. Sie bieten Möglichkeiten, die in klassischen Währungen keine Entsprechung haben. Allerdings, so das Wiki

Es ist absichtlich nicht Turing-vollständig, ohne Schleifen.

  1. Was ist die Begründung für diese Entscheidung?
  2. Gibt es Vorschläge für nützliche Verträge, die nur in einer vollständigen Skriptimplementierung von Turing möglich wären?
  3. Gibt es alternative Kryptowährungen mit Turing-Komplettskripten? Wenn ja, wie lösen sie die Probleme von 1?

Antworten (1)

Wenn Skripte Turing-vollständig wären, könnten Sie ein ziemlich kurzes Skript erstellen, dessen Ausführung extrem lange dauerte (wie Busy Beaver ) oder eine Endlosschleife enthielt. Dies würde tendenziell zu einem Denial-of-Service gegen alle im Netzwerk führen, wenn sie versuchen, die Transaktion zu verifizieren.

Und es gäbe keine allgemeine Möglichkeit zu sagen, ob ein Skript eine Endlosschleife durchlaufen oder schließlich enden würde: das ist das Halteproblem .

Man könnte versuchen, dies zu vermeiden, indem man eine Art Begrenzung dafür vorsieht, wie lange ein Kunde mit der Überprüfung einer Transaktion verbringen wird, aber es müsste sehr sorgfältig durchgeführt werden, um für alle Kunden einheitlich zu sein: wenn einige es akzeptieren und andere nicht , wird die Blockchain gegabelt.

Es scheint einfacher, die Situation alle zusammen zu vermeiden.

Wenn es ein Limit gäbe, wäre es besser, ein Limit dafür zu haben, wie viele Anweisungen ausgeführt werden könnten, anstatt die Zeit aufzuwenden, um Konsistenz zu gewährleisten
@RentFree: Was sich im Wesentlichen auf das reduziert, was wir jetzt haben. Wenn das gewünschte Skript eine Schleife hat, die garantiert innerhalb einer bestimmten Anzahl von Anweisungen endet, können Sie die Schleife zu einem geradlinigen Skript mit einer festen Anzahl von Anweisungen aufrollen. Tatsächlich sind die Anzahl der ausgeführten Anweisungen, die Anzahl der Bytes im Skript und die zu zahlende Gebühr ungefähr proportional.