Newsticker

BitVM ermöglicht frei programmierbare Bitcoin-Transaktionen

Ein Schaltkreis. Bild von bittbox via flickr.com. Lizenz: Creative Commons

Derzeit begeistert das Konzept einer „BitVM“ die Bitcoin-Community. Die Idee ist nicht frei von Problemen – kann aber einen epochalen Fortschritt für Bitcoin einleiten. Und das ist durchaus wörtlich zu verstehen.

Seit Satoshi mit seinem Whitepaper auf nur neun Seiten die Welt des Geldes aus den Angeln hob, gehört Kürze zum guten Ton in der Krypto-Welt. Das Paper „BitVM: Compute Anyting“ von Robin Linus bleibt mit acht Seiten dieser Regel treu – und das, was darin steht, könnte für Bitcoin zu einem beispiellosen Meilenstein werden.

Schach und Go auf Bitcoin

BitVM „ist ein Computing-Paradigma, um Turing-vollständige Bitcoin-Verträge auszudrücken“. Es erlaubt es, jede beliebige Rechenoperation in eine Bitcoin-Transaktion zu integrieren.

Man kann, schreibt Robin, „Spiele wie Schach, Go oder Poker“ in Bitcoin-Verträgen unterbringen, Bitcoin mit anderen Blockchains verbinden, Prediction-Markets bilden oder neue Opcodes emulieren. Und, vielleicht am besten: ganz ohne die Konsensregeln von Bitcoin zu verändern.

Das klingt zu phantastisch, um wahr zu sein. Wie ist es also möglich? Die Antwort ist, ihr ahnt es, etwas kompliziert.

Die einfache Erklärung

Zuerst die einfache Version: Seit dem Taproot-Upgrade ist in einer Bitcoin-Adresse die Essenz einer Datenstruktur, die man Merkle-Tree oder Hashbaum nennt. Diese Datenstruktur erlaubt es, Daten oder andere Transaktionsbedingungen einzupflegen.

Ordinals Inscription nutzen Taproot, um Bilder einzuspeichern, BRC-20, um die Logik von Token zu integrieren. BitVM geht radikal weiter: Es bildet in den Hashbäumen eine virtuelle Maschine ab, die beliebige Rechenoperationen erlaubt.

Wem dieser Erklärung reicht, der kann die folgenden Abschnitte überspringen. Für diejenigen, die es genauer wissen wollen, kommt nun die gründlichere Erklärung. Bei ihr werde ich mich streckenweise auf dünnes Eis begeben müssen.

Boolesche Schaltkreise

BitVM simuliert Datenverarbeitung auf einer sehr grundlegenden Ebene. Die genaue Erklärung ist daher etwas anspruchsvoll. Wir stellen im Folgenden die vier wichtigsten Bausteine vor.

Erstens, die „Booleschen Schaltkreise“: BitVM simuliert diese im Hashbaum. Boolesche Schaltkreise sind „digitale Schaltungen“: In einer physischen Schaltung fließt entweder Strom oder kein Strom, während eine digitale Schaltung entweder Null oder Eins ausgibt. Das ist ein Bit.

Mit solchen Bits werden Programme und Datensätze aufgebaut. Die Informationen fließen dabei durch sogenannte Gatter, die einen oder mehrere Bits als Inputs nehmen, mit einer simplen Logik verarbeiten und einen Output ausgeben, der entweder Null oder Eins lautet. BitVM verwendet das NAND-Gatter, das prinzipiell jede logische Verknüpfung erlaubt.

Hashbäume

Zweitens, der Hashbaum: Dieses kryptographische Konzept nimmt eine Schlüsselrolle bei Bitcoin ein. Ein Hashbaum besteht aus vielen „Blättern“ genannten Hashes, die solange kombiniert, gehasht, kombiniert und gehasht werden, bis nur noch ein Hash übrig bleibt. Das ist die Wurzel oder „Top Hash2. Man kann sich das wie eine Pyramide vorstellen. Ein Hashbaum erlaubt es, allein anhand der Wurzel die Validität einer irrsinnig großen Menge an Daten zu prüfen.

Dieser Hashbaum sieht wie ein umgedrehter Baum aus: Die Krone ist unten, die Wurzel oben. Bild von wikipedia.org.

Im Header eines Bitcoin-Blocks steckt über die Wurzel des Hashbaums auch ein Beweis für die Gültigkeit jeder einzelnen Transaktion darin. Taproot geht noch einen Schritt weiter: Es macht die Wurzel eines Hashbaums zum Bestandteil einer Adresse macht. So kann man nicht nur einzelne Daten, sondern ganze Strukturen in die Transaktionslogik von Bitcoin integrieren.

NAND-Schaltungen

Drittens nutzt BitVM nun die Blätter des Hashbaumes, um Bits zu simulieren. Dazu stellt BitVM jedes Bit durch zwei Hashes dar, hash0 und hash1. Wenn man das Preimages eines der Hashes enthüllt, also die ihm vorhergehenden Daten, wird das Bit zu einer 0 oder 1. Diese werden durch die NAND-Schaltungen verarbeitet.

BitVM bildet also einen digitalen Schaltkreis im Hashbaum ab. So kann man unendlich komplexe Bedingungen zu formulieren, wann die Wurzel des Hashbaums und damit eine Transaktion gültig ist. Das könnte der Sieg einer Partie Schach sein, die korrekten Namen und Geburtsdaten von einhundert Personen, eine summa cum laude bestandene Prüfung in theoretischer Quantenphysik oder was auch immer man sich vorstellen mag.

Prover und Verifier

Viertens jedoch ist noch ein Problem zu lösen: Wie schützt man sich vor Betrug? Was hindert eine Partei daran, das Programm nicht korrekt zu durchlaufen? Wenn man über die BitVM Geld empfängt – woher weiß man, dass der Sender die Adresse tatsächlich korrekt gebildet hat?

Dieser Baustein ist notwendig, aber etwas langweilig. BitVM definiert dazu zwei Rollen, Prover und Verifier: einer erhebt einen Anspruch, der andere prüft diesen. Dazu vereinbaren die beiden eine Sequenz von Fragen und Antworten (Challenges und Responses). Wenn der Prover eine Antwort verweigert, verliert er.

Diese Sequenz wird als vorsignierte Kette an Onchain-Transaktionen von beiden Parteien gespeichert. Kommt es zu einem Betrug, kann der Verifier diese Transaktionen onchain einlösen und sich die Guthaben auf der Adresse sichern. Ohne einen solchen Sicherheitsmechanismus würde die BitVM nicht funktionieren. Im Normalbetrieb kommt er aber nicht zum Einsatz. Er ist da, um nicht gebraucht zu werden.

Kein Altcoin-Killer

Wie soll man BitVM nun einschätzen? Ist sie, wie sich manche Bitcoiner wünschen, das Ende von Altcoins, DeFi und Krypto, weil man ja alles, was diese können, in die BitVM schreiben können?

Das gewiss nicht. BitVM ist bisher nur ein reines Konzept, von dem selbst Erfinder Robin Linus schreibt, dass es ineffizient und bisher auf zwei Parteien beschränkt sei. Zudem führt es eine gewaltige Komplexität für Wallets und User ein. Einen Altcoin in die BitVM zu stecken, ist etwa so, als würde man eine Dos-Box in einem Windows-Emulator auf Fedora Linux laufen lassen.

BitVM wird sicher nicht an der Existenz von Krypto und Altcoins rütteln. Aber das bedeutet nicht, dass das Konzept nicht fantastisch ist. Es hat das Zeug, Bitcoin um so vieles besser zu machen, dass einem schwindelig wird, wenn man ernsthaft darüber nachdenkt.

Proteine falten anstelle einer Signatur

Zunächst einmal erlaubt BitVM es, jede beliebige Transaktionslogik einzuführen. Man könnte Transaktionen an ein Schachspiel binden, an die Simulation der Proteinfaltung, die Durchführung von KI-Kalkulationen oder was immer man möchte.

Das ist äußerst faszinierend, wird aber in der Wirklichkeit an der enormen Ineffizienz leiden: Da jedes Bit durch ein Hash dargestellt wird, das aus 128 oder 256 Bits besteht, ist die Datenlast enorm. Für komplizierte Programme, die aus Milliarden von Bits und Gattern besteht, dürfte BitVM nur in absoluten Ausnahmefällen geeignet sein.

Backup-Strategien und Covenants

Realistischer sind neue Backup- oder Transaktionsstrategien. Grenzen setzt hierbei nur noch die Phantasie.

Man könnte ein Backup per Google-Authenticator machen, durch einen Verifizierungsdienstleister, durch Signaturen anderer Bitcoin-Adressen, PGP-Schlüssel, 10 Fragen, die man nur selbst beantworten kann, einen Tweet, ein Nostr-Post oder was auch immer einem einfällt. Mit BitVM kann Bitcoin viel bessere und intelligentere „Smart Wallet“ bekommen als alles, was man bei Ethereum derzeit mit „Account Abstractions“ feiert.

Man kann auch die „Covenants“ oder Whitelists einführen, für die vor einiger Zeit die BIP-119-Softfork verlangt (und abgelehnt) wurde, also dass Auszahlungen nur an bestimmte Adressen möglich sind. Mit BitVM kann man dazu noch viel umfangreichere White- oder auch Blacklists führen, als sie die Onchain-Covenants jemals ermöglicht hätten.

Man kann tägliche Ausgabengrenzen bestimmen (die beispielsweise durch eine Signatur eines Dienstleisters angehoben werden können), Transaktionen an einen Altersnachweis oder einen Proof-of-Human binden und so weiter.

Anonymität, Sidechains und mehr

Es wäre möglich, eine Transaktion durch eine andere Bitcoin-Transaktion zu triggern. Das könnte es erlauben, ohne dritte Partei die Kette der Transaktionen zu durchbrechen, also Anonymität herzustellen. Auch Ringsignaturen wie bei Monero wären denkbar.

Theoretisch wäre es auch möglich, eine minimalistische Wallet für andere Kryptowährungen oder Blockchains in den Hashbaum einzuflechten. Damit könnte Bitcoin endlich bei den anderen Coins zuhören. Man könnte dezentral Coins wechseln oder Sidechains bilden, die wie beim Drivechain-Konzept keinen Mittelsmann benötigen, dem man vertrauen muss.

Vielleicht könnte man BitVM auch ins Lightning-Netzwerk integrieren, um das Liquiditätsmanagement zu verbessern. Man könnte sie auch mit Ordinals Inscriptions, BRC-20-Token oder der dezentralen Twitter-Alternative Nostr verbinden. Und mit Sicherheit wird die Szene spannende Anwendungen finden, an die wir hier noch nicht mal denken.

Um diese Möglichkeiten zu erschließen wird allerdings noch sehr viel Arbeit nötig sein. Es gibt noch nicht mal einen Proof-of-Concept. Daher werden noch Jahre vergehen, bis wir BitVM in den Wallets sehen werden – falls Interesse und Durchhaltevermögen bis dahin nicht im Tagesgeschäft erlahmen. Das könnte passieren, wäre aber eine Tragödie. Denn theoretisch ist BitVM ein epochaler Meilenstein für Bitcoin.

Über Christoph Bergmann (2807 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

8 Kommentare zu BitVM ermöglicht frei programmierbare Bitcoin-Transaktionen

  1. Witzig. Als Satoshi aka Craig S. Wright bereits 2014 davon sprach das Bitcoin Turing Complete sei, wurde er erst belächelt, später beschimpft und nun bestätigt.

    Auf BSV ist das jedenfalls ein alter Hut. Die entsprechenden Opcodes vorausgesetzt sogar wesentlich simpler umzusetzen.
    https://medium.com/coinmonks/turing-machine-on-bitcoin-7f0ebe0d52b1
    https://www.bsvblockchain.org/news/bitcoin-as-turing-complete-system-for-building-smart-contracts-tokens

  2. Wolfgang Lohmann // 11. Oktober 2023 um 21:32 // Antworten

    Warum einfach, wenn es auch kompliziert geht? 😉
    Man schaue mal, was für OP Codes von Bitcoin Script in BTC disabled bleiben. In BSV sind sie logischer Weise (pun intended) restored.
    Hatte ‚Ihr wisst schon wer‘ also wieder mal recht? https://youtu.be/LdvQTwjVmrE?t=1021
    Nebenbei, man kann Merkelized Abstract Trees auch mit original Bitcoin OP Codes simulieren. https://xiaohuiliu.medium.com/taproot-on-bitcoin-d52fce9201e4. Sowas wie Rollups wurden übrigens auch schon demonstriert. Und Ringsignaturen. Aber man möchte es ja nicht glauben. 😉
    PS: Vielleicht etwas unklar in der Formulierung im Beitrag: Merkletrees werden in Bitcoin seit Beginn für Transaktionen in Blöcken verwendet und sind die Basis für SPV (WP S 8).

  3. Hm, ich meine mal gelesen zu haben, dass Bitcoins Stackmaschine nicht Turing Complete ist. Satoshi hat Iteration und Schleifen als Konstrukt mit voller Absicht weggelassen, da man mit Ihnen auch extrem effiziente Geldverbrennungsmaschinen programmieren kann, vor allem aus Versehen in undurchsichtigen Finanzkonstrukten (bzw. Smart Contracts).

    Ethereum, meine ich, beherrscht diese hingegen und ist damit auch wirklich Turing complete.

    Ich bin nicht ganz sicher, führt BitVM diese weggelassenen IterationsOps hier wieder in Bitcoin ein? Wenn ja, wie?

    • Alles nur eine Definitionsfrage. In der Theorie läuft eine Turing Maschine in einer Endlosschleife. Das kann man nie realisieren. Auch die Schleifen auf einem Computer/VM sind determiniert und haben eine endliche Anzahl an Wiederholungen. Wichtiger in der Praxis ist das (endliche) Ergebnis.

      Stell dir die Blockchain (Kette von Transaktionen) einfach als CPU vor. Jede neue Transaktion ist ein Takt, in denen man Daten und Logik (wie man die Daten verarbeitet) hinterlegen kann.

      Solange das Bitcoinsysytem läuft, solange gibt es eine ablaufende Programmschleife. Der Input/Output erfolgt durch die Menschen.

      Natürlich braucht es dann noch ein externes Programm, welches diese Daten und Anweisungen entsprechend interpretiert und darstellt (analog zu einer Wallet).

      siehe auch https://medium.com/coinmonks/stateful-smart-contracts-on-bitcoin-sv-c24f83a0f783

      • Tom MAyer // 12. Oktober 2023 um 21:48 //

        Naja, solang der Takt im 10 Minuten Abstand schlägt (und bei jedem Taktschlag eine Gebühr kostet), habe ich vor einer versehentlich programmierten Geldverbrennungsmaschinen keine große Sorge.

        Das Bitcoin eingeschränkte Smartcontracts mit State kann, aber ohne Iterationen (aka, mache die letztgenannte Aktion auf dem Stack 10 oder mehre Male …), war mir schon bewusst. Würde jetzt aber nicht sagen, dass BitVM diese mächtige Schleifenoperatoren in Bitcoin einführt, bzw. überhaupt einführen kann.

        Nichtsdestotrotz faszinierend.

    • Nachtrag. BitVM macht es natürlich nicht so elegant, sondern umständlicher und komplexer in einem Layer2. Deswegen auch zum scheitern verurteilt.

    • Wolfgang Lohmann // 12. Oktober 2023 um 16:09 // Antworten

      Die Stackmaschine alleine reicht nicht aus, das stimmt meines Wissens. Man muss aber keine expliziten Schleifen haben, für die Berechenbarkeit äquivalent zu einer TM reicht ein 2. Stapel (2PDA = TM), und der kann sich auch „im System“ verbergen, durch die Arbeit der Knoten. An dieser Stelle gibt es auch oft Widerspruch, ob man Bitcoin dann TC nennen darf, wenn der Miner den Stepper macht. Ehrlicherweise bin ich mir für eine korrekte Einstufung auch nicht 100% sicher, solange ich nicht selber ein Programm programmiert habe, welches TC erfordert. Für persönlich ist das auch nicht so wichtig, weil es normalerweise auch ausreicht, alles Mögliche damit berechnen lassen zu können. Loop Unrolling reicht in vielen Fällen aus. Lagerst Du Teile eines SmartContracts in einzelne Trx aus, so bist Du durch unendliches Arbeiten dadurch geschützt, dass jede Trx ja Gebühren erfordert. Aber das wäre ein schwacher Trost. Aber auch hier gibts wieder die Diskussion über die Rolle externer Akteure.

Kommentar verfassen

Entdecke mehr von BitcoinBlog.de - das Blog für Bitcoin und andere virtuelle Währungen

Jetzt abonnieren, um weiterzulesen und auf das gesamte Archiv zuzugreifen.

Weiterlesen