Wie sollte ein Bitcoin Oracle eine Transaktion vor der Unterzeichnung überprüfen?

Was sind die spezifischen Teile einer Transaktion, die im „ Vererbungsskripting-Beispiel “ signiert werden müssen? Kann jemand genauere Angaben dazu machen, was genau von den Transaktionen unterzeichnet wird?

Ich gehe davon aus, dass es ungefähr 3 Transaktionen gibt, bin mir aber nicht sicher, was von wem signiert ist und welcher Teil des Tx signiert/nicht signiert ist.

1) Die tx, die an eine neue Adresse gesendet wird, mit dem genauen Betrag (veröffentlicht)

2) Der tx, der erstellt wird, aber mit einer Zeit von 10 Jahren (nicht veröffentlicht)

3) Der TX, der erstellt wird, aber auf eine Orakellogik wartet (nicht veröffentlicht)

Was mich interessiert, ist Nr. 3 und was signiert das Orakel konkret? Wie sieht dieser Tx aus?

Antworten (1)

Dazu gibt es zwei Möglichkeiten. Die erste besteht darin, dass Sie eine Multisig-Transaktion erstellen und sie an ein Orakel/Orakel senden, zusammen mit einer Aufforderung an sie, die Transaktion zu signieren, wenn sie feststellen, dass ein Ereignis aufgetreten ist. Wenn die Zeit gekommen ist, signieren das/die Orakel die Transaktion und geben sie an Sie frei. So funktioniert Orisi

Eine andere Möglichkeit besteht darin, an das/die Orakel eine Anfrage zu senden, um nach einem Ereignis zu suchen. Dann geben sie Ihnen einen öffentlichen Schlüssel, und Sie verwenden diesen öffentlichen Schlüssel, um die Transaktion zu sperren. Wenn die Zeit gekommen ist, veröffentlichen die Orakel einen privaten Schlüssel zu diesem öffentlichen, und Sie verwenden ihn, um die Transaktion freizuschalten. So funktionieren RealityKeys . (obwohl ihr Code Closed Source ist)

Die zweite Option ist relativ einfach zu implementieren, obwohl ich nicht sicher bin, ob derzeit Open-Source-Implementierungen verfügbar sind.

Die erste Option (die Unterzeichnung erfolgt auf der Seite des Orakels) ist etwas komplizierter, ermöglicht aber andererseits eine größere Granularität der Verträge. Beispielsweise können Sie Orakel bitten, 2030 (Jahr des Ereignisses) BTC zu senden, sobald das Ereignis eintritt, und den Rest an den Absender zurücksenden. Die Orakel können vorerst auch die Gelder verwalten - Sie können ihnen zB sagen, dass sie Gelder an eine neue Multisig-Adresse senden sollen, wenn eines der Orakel stirbt / seine Schlüssel verliert. Und es gibt einen Code, der bereit ist, all das in Orisis Github-Repo zu handhaben .

Weitere Informationen finden Sie im Whitepaper Orisi / Distributed Oracles , das sich mit Beispielimplementierungen befasst, und im Bitcoin-Wiki - Eintrag zu Verträgen