<p>(elaborating on the comment I gave to the question)</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>You can consult Orisi Whitepaper ( <a href="https://github.com/orisi/wiki/wiki/Orisi-White-Paper/" rel="nofollow">https://github.com/orisi/wiki/wiki/Orisi-White-Paper/</a> ) or website (oracles.li) or github repo (<a href="https://github.com/orisi/orisi" rel="nofollow">https://github.com/orisi/orisi</a>) for more info.</p>

CC BY-SA 3.0
2014-06-23T17:42:46.177Z
2014-06-23T17:42:46.177Z
kolinko
<p>There's no nLockTime support currently so there's not way to limit the spend prior to the 18th birthday.</p>

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

<ul>
<li><a href="https://github.com/vbuterin/btckeysplit" rel="nofollow">https://github.com/vbuterin/btckeysplit</a></li>
</ul>

CC BY-SA 3.0
2013-02-27T14:36:35.303Z
Is this the same as MultiSig? M of N?https://blockchain.info/wallet/escrow ... do all the key holders know the total amount?
makerofthings7
CC BY-SA 3.0
2013-02-26T22:39:15.723Z
2013-02-26T22:39:15.723Z
Stephen Gornick
<p>Suppose I modify the requirements of the <a href="https://bitcoin.stackexchange.com/q/5953/1878">Inheritance Scripting Sample</a> 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:</p>

<ol>
<li>The 18th birthday arrives</li>
<li>The oracle verifies that the man is dead</li>
</ol>

<p>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?</p>

CC BY-SA 3.0
2013-02-26T16:35:24.370Z
The money can be in an account that only the oracle controls.
Nick ODell
CC BY-SA 3.0
2013-02-26T16:36:48.933Z
@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?
makerofthings7
CC BY-SA 3.0
2013-02-26T22:33:21.130Z
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.
Stephen Gornick
CC BY-SA 3.0
2014-06-23T17:37:36.333Z
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 ( https://github.com/orisi/wiki/wiki/Orisi-White-Paper/ ) or website (oracles.li) or github repo (https://github.com/orisi/orisi) for more info
kolinko
<script><oracle>
How can a Bitcoin Oracle ensure that the money can't be respent?
makerofthings7
# How can a Bitcoin Oracle ensure that the money can't be respent?

(Asked by: username_0 on 2013-02-26)

Suppose I modify the requirements of the [Inheritance Scripting Sample](https://bitcoin.stackexchange.com/q/5953/1878) 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?

**Tags:** script, oracle

> **Comments:**
> **username_1**: The money can be in an account that only the oracle controls.  
> **username_0**: @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?  
> **username_2**: 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.  
> **username_3**: 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 ( https://github.com/orisi/wiki/wiki/Orisi-White-Paper/ ) or website (oracles.li) or github repo (https://github.com/orisi/orisi) for more info  

---

## 2 answers

### Answer by username_3 on 2014-06-23. Score: 1

(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.


---

### Answer by username_2 on 2013-02-26. Score: 0

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.

* <https://github.com/vbuterin/btckeysplit>

> **Comments:**
> **username_0**: Is this the same as MultiSig? M of N?https://blockchain.info/wallet/escrow ... do all the key holders know the total amount?  

---

