Website-Icon BitcoinBlog.de – das Blog für Bitcoin und andere virtuelle Währungen

Programmierbares Geld: CSV per Softfork aktiviert

In Block 419.328 wurde Check Sequence Verify (CSV) per Softfork aktiviert. CSV erlaubt es, Bitcoins für einen bestimmten Zeitraum „einzufrieren“ und ermöglicht damit ganz neue Arten von Verträgen. Die Kryptowährung wurde damit ein Stückchen smarter.

Bitcoin Core 12.1 war und ist ein sehr spezielles Update. Nach dem „Mega-Release“ Core 12.0, der unter anderem eine neue Library für die Signaturen sah, wartete 12.1 mit unscheinbaren, aber komplexen Änderungen und gleich mehreren Softforks auf. Eine Softfork bedeutet, dass die Konsens-Regeln geändert werden, jedoch in einer Weise, die für Nicht-Miner abwärtskompatibel ist. Das bedeutet, dass nur die Miner zustimmen müssen, damit die Änderung aktiviert wird, und Knoten nur updaten müssen, wenn sie die Änderung benutzen wollen.

Den Anfang machte BIP9 – eine Softfork, die es erlaubt, dass die Miner über die Version Fields der Blöcke künftig nicht mehr nur noch über eine, sondern über 28 Softforks gleichzeitig abstimmen können. Dies soll Bitcoin eine deutlich größere Flexibilität geben, um in Zukunft mehr neue Features freizuschalten. „Mit Soft Forks kann alte und neue Software im Netzwerk koexistieren,“ so die Core-Entwickler auf ihrer Webseite, „Soft forks können neue Features ohne Disruption einführen, weil die User, die upgraden wollen, upgraden können, während es den anderen freisteht, wie bisher weiter zu machen.“ Aus diesen Gründen bevorzugt Core bis auf wenige Ausnahmen Softforks vor Hardforks.

Während BIP9 dieses Instrument der Softforks also flexibler gemacht hat, stellt Check Sequence Verify (CSV) die erste Softfork dar, die durch BIP9 aktiviert wurde. Die CSV-Softfork ändert dabei nicht nur eine, sondern drei Konsens-Regeln und beruht dementsprechend auf den drei Bitcoin Improvement Proposals (BIP) 68, 112 und 113. Nachdem bereits vor 13 Tagen genügend Miner zugestimmt haben, dass die Softfork aktiviert wurde, geschah dies nun. Damit ist CSV im Netzwerk aktiv.

Was macht CSV aber nun? Um dies zu verstehen, muss man wissen, dass Bitcoin-Transaktionen eine Skriptsprache benutzen. Eine ganz normale Transaktion überweist oberflächlich Geld an eine bestimmte Adresse, setzt aber unter der Haube in ein Output-Skrip die Regel, dass dieser Output nur durch eine Transaktion ausgegeben werden kann, die mit dem privaten Schlüssel einer bestimmten Adresse signiert ist. CSV erweitert nun diese Skriptsprache und ermöglicht es, das Sequenz-Feld einer Transaktion zu nutzen, um von Transaktionen ein bestimmtes „Alter“ zu fordern, bevor diese ausgegeben werden können. So kann man etwa definieren, dass eine Transaktion 1000 Blöcke – etwa eine Woche – alt sein muss, bevor der Empfänger mit dem empfangenen Geld woanders bezahlen kann.

Und was bringt das? CSV ist ein Instrument, um mit Bitcoins verschiedene Verträge zu bilden, die vorher nicht möglich waren. So ist es beipielsweise möglich, eine Multisig-Transaktion zu bilden, die für die ersten 30 Tage von zwei Personen signiert werden muss und danach nur noch von einer. Dies kann eine Art Rettungsanker sein, um die Bitcoins zu bergen, wenn der Multi-Sig Partner stirbt oder die Schlüssel verliert.

Vor allem aber erlaubt CSV die vom Lightning-Netzwerk vorgeschlagenen Konstruktionen, in denen eine Transaktion zurückgenommen werden kann. Eine ausführliche Erklärung findet ihr in diesem Artikel, hier nur soviel: Indem man mit CSV eine Transaktion für einen bestimmten Zeitraum einfriert, kann es möglich sein, ihren Inhalt unter bestimmten Bedingungen umzubiegen und sie damit rückgängig zu machen. Bidirektionale Payment-Channels können damit Betrug verhindern.

Auch für Sidechains ist CSV wichtig. Sidechains meint, dass man Bitcoins von einer Blockchain auf eine andere überträgt, indem sie auf einer bestimmten Adresse eingefroren werden. Trotz der zahlreichen ungeklärten Fragen rund um Sidechains hat das Konzept das Potenzial, die Skalierbarkeits-Probleme auf andere Chains zu übertragen, Transaktionen zu beschleunigen oder zu anonymisieren und mit den verschiedensten Smart Contracts zu experimentieren, ohne die Mainchain des Bitcoins in Gefahr zu bringen.

Für den „normalen“ User wird CSV vorerst vermutlich so gut wie keine Bedeutung haben. Die wenigsten Wallets sind im Allgemeinen dafür gerüstet, mit den erweiterten Skriptoptionen umzugehen, weshalb bislang auch noch eine einfach zu bedienende Implementierung von Multisig und P2SH-Transaktionen fehlt. Es ist aber hoffen, dass die Anbieter von Wallets CSV nutzen, um beispielsweise Adressen bzw. Transaktionen so zu konstruieren, dass Bitcoins im Normalfall nur gesendet werden können, wenn sowohl Wallet-Anbieter als auch User signieren, der User aber die Option hat, nach Ablauf einer bestimmten Zeit seine Guthabe ohne Hilfe der Wallet-Anbieter zu versenden. Dies würde die Sicherheits von etwa Online-Wallets erheblich erhöhen, während es dem Betreiber keinerlei Möglichkeit gibt, Bitcoins zu stehlen oder zu verlieren.

Die mobile Version verlassen