Core 0.13.1 veröffentlicht: Plan für Aktivierung von SegWit
Nach langem, langem Warten ist es soweit: Mit dem Release von Bitcoin Core 0.13.1 sind die Weichen für das Update zu Segregated Witness gelegt. Seit heute kann man die neue Version herunterladen. Aktiviert wird das neue Transaktionsformat aber frühestens Ende November.
Es dürfte in der Geschichte des Bitcoins kein Update geben, das so sehnsüchtig erwartet wurde wie Core 0.13.1. Denn diese Version hat eine kleine, aber wichtige Änderung: Sie aktiviert das bereits in 13.0 implementierte Segregated Witness.
Segregated Witness, um noch einmal kurz auszuholen, bedeutet, den Zeugen, also die Signatur, von der Transaktion zu trennen. Diese Idee wurde auf der ersten Scaling Bitcoin Konferenz vor bald einem Jahr erstmal durch Pieter Wuille publik gemacht. SegWit, so die Kurzform, ist auf den ersten Blick nur eine kleine Formalität: Die Signaturen werden nicht mehr in Transaktionen gespeichert, sondern als Extra-Paket versendet. Diese kleine Verlagerung von Daten hat eine Reihe von schlagenden Vorteilen. Die wichtigsten sind:
- SegWit beseitigt alle bekannten Formen von Transaction Malleability (was die Konstruktion verschiedener Arten von Smart Contracts, unter anderem für das Lightning Network, wesentlich vereinfacht)
- es verringert die formelle Größe von Transaktionen. Indem Teile der Transktion nicht mehr in die Berechnung der Blocksize einfließen, wird diese faktisch erhöht. Wenn alle Transaktionen im SegWit-Format geschehen, wird die tatsächliche Blocksize bei 1,7-2,0 MB liegen. SegWit bringt also die lange erwartete Erhöhung der Kapazität.
- Indem Signaturen getrennt werden, ändert sich die Berechnung von Gebühren. Damit wird ein Anreiz beseitigt, das UTXO-Set durch Transaktionen mit wenig inputs aber vielen outputs zu verschmutzen, während das Aufräumen des UTXO-Sets günstiger wird.
SegWit macht zudem künftige Softforks einfacher, wodurch die Einführung von Schnorr-Signaturen und anderen Konzepten möglich wird. Darüber hinaus skalieren die Sighash-Operationen von SegWit linear, was verhindert, dass spezielle, sehr große Transaktionen die Knoten abstürzen lassen. Schließlich vereinfach SegWit en Betrieb von Hardware-Wallets und erhöht die Sicherheit von Multisig-Transaktionen.
Ein Grund, weshalb die Core-Entwickler die Kapazität mit SegWit anstatt mit einem Anheben des Blocksize-Limits erhöhen wollen, ist, dass sich SegWit als Softfork implementieren lässt. Es kann also von Knoten, die wollen, aktiviert werden, während die Knoten, die nicht wollen, die Signaturen ignorieren können. Während eine Hardfork alle Knoten zwingt, upzudaten, müssen für eine Softfork wie SegWit lediglich alle Miner mitmachen.
Angesichts der vielen Vorteile, die SegWit bietet, ist sich Core recht sicher, dass die Miner updaten werden. Version 0.13.1 sieht einen sehr genauen Upgrade-Plan vor, der, wenn alles glatt läuft, Ende November zur Aktivierung von SegWit führt. Und zwar müssen, wie bei allen Softforks, 95 Prozent der Miner ihre Zustimmung signalisieren, damit SegWit aktiv wird. Hierfür wird ab dem 15. November eine Art Abstimmung beginnen, in der in Perioden von 2.016 Blöcke – etwa zwei Wochen – gemessen wird, wie viel Prozent der Miner für SegWit stimmen. Erreicht die Rate 95 Prozent, wird SegWit aktiviert. Erreicht sie es nicht, beginnt eine neue Periode von 2.016 Blöcken. Sollte nach einem Jahr noch immer keine Zustimmung erfolgt sein, wird SegWit niemals aktiviert werden.
Nach den Ereignissen der letzten Wochen ist mit einer Verzögerung der Aktivierung zu rechnen. Denn sowohl ViaBTC als auch der Pool von Bitcoin.com nutzen den alternativen Bitcoin-Client Bitcoin Unlimited, dessen Entwickler bisher noch keine Bereitschaft gezeigt hat, Segregated Witness zu implementieren. Da die beiden Pools zusammen rund 10-15 Prozent der Hashrate stellen, können sie, zumindest am Anfang, die Aktivierung verhindern.
Auf Dauer kann eine Änderung im Verhältnis der Hashrate oder schlicht und einfach die ganz normale Varianz von Pech und Glück beim Minen jedoch dazu führen, dass SegWit trotz des Widerstands der beiden Pools aktiviert wird. Möglich – und wahrscheinlicher – ist jedoch, dass die SegWit-Aktivierung von den Pools als Geisel benutzt wird, um Core auf die im Hongkong-Agreement versprochene Hardfork festzunageln.
Wie viel kb/mb Speicherplatz speichert segwit eigentlich nochmal genau ein per Block ? (Also wie groß ist diese Signatur)
Kann ich nur schätzen … jeder input hat eine Signatur …
Hier ist eine tx mit 1 input & 2 output –> 225 byte
https://blockchain.info/tx/8110e604204f04c3bdc5d15f6c121c5463fd7f1003a6447fdfcbdedaf2f27e51
Hier noch eine mit 1 input & 2 output –> 226 byte
https://blockchain.info/tx/3bbf6bec6a596cb1799f30fa6a8343f12ae9df65a3714ccb5c510031fbec0c7e
Hier eine mit 2 input & 2 output –> 373 byte
https://blockchain.info/tx/693f71624a0d8b7a48d12d0daa0738874e438fe250fc1d67667d3b58dec9c4a2
Hier haben wir eine Transaktion mit 1 input & 34 outputs –> 1313 byte
https://blockchain.info/de/tx/01c80ff4df04bd4138a552ee684e19c88f7b9e819102f0d36591da62493334fe
Hier eine mit 21 inputs und 1 output –> 3584 bytes
https://blockchain.info/de/tx/5abfe9a02a5a0e3c32c9402264becdb8c6800123b06e66e65a8e1923d34d8a6e
Das hilft vielleicht, die Relation zu verstehen. Ich glaube, die Schätzung einer faktischen Blockgröße von 1,7 – 2 MB ist noch relativ vorsichtig, da Signaturen die größten Teile von transaktionen sind.
Es besteht auch die Möglichkeit, dass Miner von den Pools ViaBTC und bitcoin.com zu anderen Pools wechseln, die SegWit unterstützen, und so 95 Prozent oder mehr ihre Zustimmung signalisieren.
Nicht diie Pools, sondern die Miner bestimmen letztendlich, ob SegWit aktiviert werden soll, oder nicht.