Suppose I modify the requirements of the Inheritance Scripting Sample where I need to make sure that the prior BTC is "guaranteed" to be available and not reduced or re-spent prior to either of the preceding events:

  1. The 18th birthday arrives
  2. The oracle verifies that the man is dead

With the additional requirement that the Oracle can't hold the transaction hostage for a ransom (since it would know how much is due to the payee), is there any way to use scripting to cover the condition that the previous funds can't be respent? How can this be done?

  • The money can be in an account that only the oracle controls.
    – Nick ODell
    Feb 26, 2013 at 16:35
  • @NickODell - Perhaps I should update the question... is there a way that the Oracle could prevent "knowing" the amount of inheritance and holding the transaction hostage for a ransom? Feb 26, 2013 at 16:36
  • Let's say the Oracle has a partial key (created with BTCKeySplit) and doesn't know the underlying transaction. If the amount has already been spent then who cares if the Oracle tries to hold the transaction for hostage, it is already spent. Feb 26, 2013 at 22:33
  • You can use distributed oracles - i.e. a set of independent oracles. That way it would be much harder for oracles to hold your funds illegally. You can consult Orisi Whitepaper ( github.com/orisi/wiki/wiki/Orisi-White-Paper ) or website (oracles.li) or github repo (github.com/orisi/orisi) for more info
    – kolinko
    Jun 23, 2014 at 17:37

2 Answers 2


(elaborating on the comment I gave to the question)

You do this by wiring the funds to an address controlled by both you and an oracle (or a set of oracles). You do this by utilizing a bitcoin multisig address.

That way there's no way for you to move the funds away without oracle's permission, and there's no way for oracle to run away with funds.

As for preventing oracles from holding the transaction hostage, you can use distributed oracles - i.e. a set of independent oracles. So, to withdraw the funds you'd need a signature of both yourself, and say 8 out of 15 oracles. If you choose oracles wisely, the chance for them to collude and hold your funds for ransom should be minimal.

You can consult Orisi Whitepaper ( https://github.com/orisi/wiki/wiki/Orisi-White-Paper/ ) or website (oracles.li) or github repo (https://github.com/orisi/orisi) for more info.


There's no nLockTime support currently so there's not way to limit the spend prior to the 18th birthday.

But as far as giving the Oracle access to spend the funds without knowing the transaction, that can be done with key splitting.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.