Transaktionen mit Wartezeit (mit nLockTime)

Ich würde gerne wissen, ob es Transaktionen gibt, die nur zu einem vordefinierten Zeitpunkt stattfinden können. Grundsätzlich sollte es möglich sein, mit dem Parameter nLockTime auf eine bestimmte Blocknummer zu warten:

https://en.bitcoin.it/wiki/Protocol_specification#tx

Dies könnte in bestimmten Verträgen nützlich sein, aber der Ersatz wird noch nicht unterstützt:

Warum wird die Transaktionsersetzung nicht unterstützt?

Auf jeden Fall scheint es, dass Sie im Prinzip immer noch eine einfache, unersetzliche Transaktion mit einer Wartezeit erstellen können.

Gibt es ein Beispiel für eine solche Transaktion in der Blockchain? Wenn nicht, würde es vom Standard-Client akzeptiert oder müsste ein Miner davon überzeugt werden, es in einen seiner Blöcke aufzunehmen.

UPDATE: Eröffnete eine Diskussion in https://bitcointalk.org/index.php?topic=131443.0 , um weiter zu vertiefen.

Die Einrichtung Lock_time hat das Potenzial für eine Funktion vom Typ "Rente". IE Kaufen Sie heute 1 Bitcoin und verhindern Sie den Zugriff darauf für 10 Jahre. Gesendet an eine Brain-Wallet-Adresse, so dass Sie unabhängig davon, welchen Client Sie verwenden und wo auf der Welt Sie sich befinden, Ihre Bitcoin, Rente, Investition abholen können. Könnte es so modifiziert werden, dass es diese Investition bei sagen wir 1 % Beträgen alle X UTC Monate freigibt, so dass Sie jeden Monat 1 % an die Brainwallet-Adresse freigegeben bekommen. Auf diese Weise gibt es mindestens 10 Jahre BTC-Rentenzahlungen. Sie würden eine immer geringer werdende Rendite erwarten, aber da Bitcoin deflationär ist, vielleicht nein

Antworten (2)

Gelöst. Sie können Transaktionen mit einer Wartezeit vorbereiten und der Standard-Client akzeptiert sie.

Sie können einige Details überprüfen unter: https://bitcointalk.org/index.php?topic=131443.0

Im Wesentlichen konnte ich mit Bitcoin eine Rohtransaktion https://en.bitcoin.it/wiki/Raw_Transactions erstellen. Dann könnte ich vor dem Signieren die Bytes für die Sequenznummer und die Sperrzeit manuell ersetzen. Ich hatte eine harte Zeit mit Locktime. Zuerst setzen Sie den gewünschten UNIX-Zeitstempel, konvertieren ihn dann in Hex, kehren die Bytes um (Little Endian) und ersetzen die letzten Bytes der Hex-Transaktion. https://en.bitcoin.it/wiki/Protocol_specification#tx sagt Ihnen, welches die relevanten Bytes sind. Sie können die neue Transaktion später unterschreiben und versenden.

Ich habe die Anleitung in: https://people.xiph.org/~greg/signdemo.txt verwendet

Ich habe alles im Testnetz gemacht. Bei meinen ersten Versuchen war ich nicht vorsichtig mit meinem Wechselgeld und habe am Ende mein ganzes Portemonnaie für Gebühren ausgegeben. Sie sollten vorsichtig sein, wenn Sie dies mit echten Bitcoins versuchen.

OK. Das wurde schnell interessant. Ich habe einen kleinen Block-Explorer gebaut und 5 Transaktionen mit hohen nLockTime-Werten in Blöcken gefunden:

http://blockexplorer.com/rawblock/000000000000036a546044e094db778e1c146f051cd5d0e52fb0e6c43e63ea8c

http://blockexplorer.com/rawblock/000000000000049bd7c8aebf91efc907c880a35c05b7861b4eab3fc09655bb05

http://blockexplorer.com/rawblock/00000000000005f229df518de50c53616f4f2f895deca078dce1d74d5b79e39c

http://blockexplorer.com/rawblock/000000000000026e8536f6ffe741feeb30d7123e6435b3ad7db141833969b5bf

http://blockexplorer.com/rawblock/00000000000001d985839442aac0179713fc7f6e5b109d524a272d3d55600d7a

In jedem Block gibt es einen mit den Sperrzeitwerten 198370, 199000, 199000, 207150 und 207167. Keiner von ihnen ist noch abgelaufen.

Ich werde meine eigene Frage beantworten und einen Beitrag in Bitcointalk starten, um dies genauer zu sehen (wie die Transaktionen dorthin gekommen sind, was mit ihnen passiert, wenn sich die Kunden ändern usw.).