10.02.2016 Views

Bitcoin and Cryptocurrency Technologies

1Qqc4BN

1Qqc4BN

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Bitcoin</strong>, Alice can remotely transfer ownership to Bob with the block chain used by the car, <strong>and</strong> Bob<br />

can drive away with his new car.<br />

However, such transactions carry a certain risk. If Bob sends payment first, Alice might keep the<br />

money <strong>and</strong> not transfer ownership. If Alice transfers ownership first, Bob might drive away without<br />

paying for the car. Even if Alice is physically present, one party might abort <strong>and</strong> it could be difficult for<br />

a third party who was not present to mediate the dispute.<br />

We’ve encountered this problem several times before, including in Coinjoin (Chapter 6), <strong>and</strong> in<br />

Namecoin (Chapter 10). The solution in all these cases uses the same principle. As long as the<br />

currency used for payment <strong>and</strong> the car ownership co‐exist on the same block chain, Alice <strong>and</strong> Bob can<br />

form a single atomic transaction that simultaneously transfers ownership of the car <strong>and</strong> the payment<br />

for the car. Specifically, the transaction would specify two inputs: Alice’s ownership <strong>and</strong> Bob’s<br />

payment; <strong>and</strong> specify two outputs: the ownership to Bob <strong>and</strong> the payment to Alice. The transaction<br />

requires both parties to sign because both are providing inputs. If one signs <strong>and</strong> the other does not,<br />

the transaction is not valid. Once one party signs, the transaction details cannot be changed without<br />

invalidating the signature. Once the signed transaction is broadcast to the block chain, the car will<br />

wait for a preset number of confirmations (say, 6) <strong>and</strong> then allow Bob access. Simultaneously, Bob’s<br />

payment to Alice will be confirmed. One cannot happen without the other.<br />

The diligent reader might notice a subtle problem. Bob could accept a transaction signed by Alice, sign<br />

it, but not actually broadcast it (yet). If the price of what Alice is selling changes, Bob can then<br />

broadcast the old transaction at the original price. More complicated atomic transactions have been<br />

proposed that include a time‐out. Alice can also simply spend the input to a new address she controls<br />

to invalidate the signed transaction she gave to Bob as a means of revoking it.<br />

This is the first of many examples that we’ll see in this lecture that allows us to use block chain<br />

technologies to decentralize a variety of different types of real‐world protocols, <strong>and</strong> we’ll achieve<br />

different types of decentralization. But this idea of ​atomicity​is common to most of them, that is,<br />

coupling together the deliverables of each side of a transaction so they all happen simultaneously (or<br />

not at all). Atomicity is an important security concept with applications outside of block chain<br />

technology.<br />

11.2 Routes to Block Chain Integration<br />

Because <strong>Bitcoin</strong>’s block chain has been tailored for currency, it can be challenging to repurpose it to<br />

represent the semantics of other applications. In the <strong>Bitcoin</strong> community, you will find many people<br />

who are quite partial to either <strong>Bitcoin</strong> or alternative block chains as a platform for decentralization.<br />

We will try to neutrally examine the two alternatives in this section.<br />

295

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!