Komisch, ich dachte ich hätte in dem Thread schon mal was geschrieben, war aber wohl ein anderer Thread.
Ich bumpe mal aus dem Anlass, dass ich eine
neue Methode zur "trustless" Vererbung von Bitcoins entdeckt habe (das sogenannte "Broadcast Delay Bitcoin Inheritance Protocol"), die eigentlich ziemlich einfach und unkompliziert ist und auch letztes Jahr
testweise in einer Wallet implementiert wurde. Sie nutzt nur Bitcoin-native Möglichkeiten und ist nahezu 100% vertrauenslos, braucht also keinen Verwahrdienst.
Ausgangslage: Alice hat eine Cold Wallet mit Coins, die sie nicht oder nur selten bewegt, und möchte sicherstellen, dass ein Angehöriger, Bob, Zugriff darauf bekommt, wenn ihr etwas passiert (Tod, Pflegebedürftigkeit, etc.)
Methode: Alice erstellt eine Transaktion mit einem Timelock, ohne diese zu broadcasten. Diese bewirkt zweierlei (mit einer Verzweigung per OP_IF implementiert):
1) Die Coins werden auf die Adresse des Angehörigen Bob transferiert, diese kann sie jedoch erst nach einer langen Zeit (z.B. ein halbes Jahr) weitertransferieren. Dies wird mit CheckSequenceVerify (OP_CSV) erreicht.
2) Die Coins können mit Alices Private Key jederzeit verschoben werden.
Teil 2 stellt sicher, dass wenn Bob die Transaktion aus Versehen oder absichtlich broadcastet, Alice sich die Coins sofort zurückholen kann. Alice muss dafür alle paar Monate ihr Wallet prüfen. Aber Bob hat keinen Anreiz dies auszunutzen, denn sollte er diese Transaktion absichtlich broadcasten, wird das mit dem "Bitcoins erben" sicherlich nix mehr

Diese Funktionsweise erinnert an Lightning. Der Timelock gilt ab dem Zeitpunkt, wenn die Transaktion gebroadcastet wurde. Sie verschiebt sich also automatisch immer weiter in die Zukunft, wenn nichts passiert, was den Vorteil gegenüber der Methode mit nLocktime darstellt, die
hier beispielsweise von LoyceV vorgestellt wurde.
Ich halte das auf den ersten Blick für eine ziemlich gute Methode. Natürlich muss man, wenn man die Coins verschieben sollte, eine neue Transaktion erstellen.
Der Code dafür sieht so aus (ich quote dazu den Originalthread von Andriian):
OP_IF
<Alice's Public Key> OP_CHECKSIG
OP_ELSE
<N days> OP_CSV DROP <Bob's Public Key> OP_CHECKSIG
OP_ENDIF