bitcoin transaction malleability theory in …...additional mining goals bitcoin – what we’ve...

73
BITCOIN TRANSACTION MALLEABILITY THEORY IN PRACTICE Daniel Chechik, Rami Kogan Security Researchers

Upload: others

Post on 12-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

BITCOIN TRANSACTION MALLEABILITY THEORY IN PRACTICE Daniel Chechik, Rami Kogan Security Researchers

Page 2: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

• What is Bitcoin • Bitcoin Transactions • Transaction Malleability Vulnerability • What Happened in MT.Gox • Live Demo

Agenda

Page 3: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

WHAT IS BITCOIN?

Page 4: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 5: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 6: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 7: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 8: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 9: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record
Page 10: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is Bitcoin?

• Bitcoin is a payment system introduced as an open-source software in 2009 by a developer known as Satoshi Nakamoto • P2P network – Trust is a result of data transparency

• Decentralization – No institution is controlling your money/coins. • Anonymous Virtual currency.

Page 11: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is a Block?

• A container of Transactions

• Can’t be changed or removed

• Reference to the previous block

z

Page 12: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Block Chain

• The network data history

• Block

• Transactions

PreviousBlockHash

• Block

• Transactions

PreviousBlockHash

• Block

• Transactions

PreviousBlockHash

Page 13: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is a Block?

• All the peers share the Block-Chain

• Transparency

Page 14: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is a Block?

• Structure

Field Description Size

Blocksize Number of bytes following up to end of block

4 bytes

Transaction counter Positive integer VI = VarInt 1 - 9 bytes

Blockheader Consists of 6 items 80 bytes

Transactions The (non empty) list of <Transaction counter>-many

transactions transactions

Magic No Value Always 0xD9B4BEF9 4 bytes

Page 15: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Block Header Structure

Field Purpose Updated when... Size (Bytes)

Version Block version number You upgrade the software and it specifies a new version

4

hashMerkleRoot 256-bit hash based on all of the transactions in the block

A transaction is accepted 32

Time Current timestamp as seconds since 1970-01- 01T00:00 UTC

Every few seconds 4

Bits Current target in compact format

The difficulty is adjusted

4

Nonce 32-bit number (starts at 0) A hash is tried 4

hashPrevBlock 256-bit hash of the previous A new block comes in 32

Page 16: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What Is Mining?

Page 17: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is Mining?

Memory

Pending

Pending

Pending

Transaction

Transaction

Transaction

Transaction

Page 18: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is Mining?

Page 19: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is Mining?

$

Page 20: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

What is Mining?

Page 21: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

LET’S SIMULATE MINING RIGHT NOW!

Page 22: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

0x02000

Page 23: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Keep a steady network

Record all coin data

Additional Mining Goals

Page 24: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Bitcoin – what we’ve learned so far …

• Block – container of transactions • Block chain - record of all coin data from the beginning • Block “Solving” – a process used to keep the network steady and to generate blocks.

Page 25: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

TRANSACTIONS

Page 26: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transactions

Alice Bob Broadcasted to network

Collected by miners

Confirmed

(Block Solved)

100 BTC

Page 27: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Alice Bob

Bob’s Wallet

100 MYC

Transactions

Page 28: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Broadcasted to network

Alice Bob

100 MYC

Transactions

Page 29: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Collected by miners

Broadcasted to network

Alice Bob

100 MYC

Transactions

Page 30: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Confirmed

(Block Solved) Collected by

miners

100 MYC Broadcasted to network

Alice Bob

Transactions

Page 31: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transactions

Page 32: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transactions are built from two main components

• Source of coins (Ref to Txout in block chain) Inputs

• Redeemer’s Bitcoin address

• Amount Outputs

Transactions

Page 33: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

• Prove you have the coins (by including a reference) • Include the Bitcoin wallet address of the recipient • Sign the transaction

Transactions

Page 34: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

TRANSACTION MALLEABILITY

Page 35: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

P2P Lottery

MessageID (sha256)

From: Lottery Prize: You won a Car!

To: “Rami”

Length …

Sig

na

ture

(D

ER

)

Length …

Life supply of

Vegemite

Page 36: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

P2P Lottery

MessageID (sha256)

From: Lottery Prize: You won a Car!

To: “Rami”

Length …

Sig

na

ture

(D

ER

)

… ID CAR SUPPLIED

f5d8ee... ✓

Length

5e67s… ✓

Page 37: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

P2P Lottery

Page 38: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

P2P Lottery

Page 39: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

ScriptSig

TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemer’s address)

Page 40: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

1

byt

e

Length TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemer’s address)

Page 41: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

2

byt

e

Length TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemer’s address)

Page 42: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

2

byte pushdata2

opcode

(1 byte) TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemer’s address)

Page 43: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

0x3

0

Length TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemers address)

Page 44: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

0x3

0

pushdata2 TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemers address)

0x4D

Page 45: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

0x3

0

pushdata2 TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemers address)

0x4D 0x00

Page 46: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

pushdata2 TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemers address)

0x4D 0x3000

Little Endian:

0x3000 0x0030

0x0030 ==

0x30

Page 47: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Transaction

ScriptSig

Inp

ut

Signature

Public Key

Ou

tpu

t

Source of Coins

Redeemer + Amount of Coins

pushdata2 TxId (sha256*2)

Amount of Coins

ScriptPubKey (Redeemers address)

0x4D 0x3000

Page 48: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Standard Vs Mutated

Mutated TxId = dc34efd49ed738bf4500db367292164166989cb1577302

6e9e185b78292bbc89

TxId = c6cfe6e4f129a34671d10c1bbe158eff05197d388

727e331951b0ec2637c194e

Page 49: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transaction Malleability

• Two different transactions • Same amount of coins • Same destination and source

• Mutated wins and gets in a Block RACE!

Page 50: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Rejected Transactions

• Invalid transaction data

• Already spent out-point

• Identical transactions

• Invalid signature

Page 51: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

WHAT HAPPENED IN MT.GOX?

Page 52: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

MT.Gox Announcement

Page 53: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

P2P Bitcoin

Mt.Gox

30BTC -> Attacker’s Wallet

B330….…5088

Attacker

Attacker’s Wallet

Page 54: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

ScriptSig

ScriptPubkey

B330….…5088

0x19

0x30 …

30BTC …

Page 55: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

ScriptSig

ScriptPubkey

B330….…5088

0x19

0x30 …

30BTC …

Page 56: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

ScriptSig

ScriptPubkey

B330….…5088

0x19

0x30 …

30BT

C …

Mutated Transaction

Valid Signature

0x30 …

C3a8…….03f8

Page 57: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

Mutated Transaction

Valid Signature

0x30 …

C3a8…….03f8

Page 58: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

C3a8…….03f8

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W

Page 59: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

C3a8…….03f8

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W

ScriptSig

ScriptPubkey

B330…….5088

0x19

0x30 …

30BTC …

Unconfirmed Tx

Page 60: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W Transaction (B330….…5088) Failed?!?

Unconfirmed

30BTC -> Attacker’s Wallet

C3a8…….03f8

Page 61: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

C3a8…….03f8

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W Transaction (B330….…5088) Failed?!?

Generate Another Transaction!

Unconfirmed

Page 62: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

C3a8…….03f8

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W Transaction (B330….…5088) Failed?!?

Unconfirmed

Generate Another Transaction!

Page 63: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

30BTC -> Attacker’s Wallet

C3a8…….03f8

30BTC -> Attacker’s Wallet

B330….…5088

P2P Bitcoin

Mt.Gox

Attacker

Attacker’s Wallet

W Transaction (B330….…5088) Failed?!?

Unconfirmed

Generate Another Transaction!

Page 64: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

DEMO

Page 65: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

BLOCKCHAIN OPINION

Page 66: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

PUSHDATA Mutated Transaction

0

1000

2000

3000

4000

5000

6000

De

c-1

2

Jan

-13

Fe

b-1

3

Ma

r-1

3

Ap

r-1

3

Ma

y-1

3

Jun

-13

Jul-1

3

Au

g-1

3

Se

p-1

3

Oct-

13

No

v-1

3

De

c-1

3

Jan

-14

Fe

b-1

4

Ma

r-1

4

Ap

r-1

4

Ma

y-1

4

Jun

-14

Jul-1

4

Au

g-1

4

Malleable

Transaction

Page 67: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

PUSHDATA Mutated Transaction

0 0 79

1900

3569

2 2 11 0 22

Malleable

Transaction

Mt.Gox announcement

Page 68: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Who was The Target?!

• Bitcoins betting

• Trading websites

• Testing

• Wrong usage of the attack

Page 69: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

MALLEABILITY FIX

Page 70: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transaction Malleability Fix

Page 71: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Transaction Malleability Fix

Page 72: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

Daniel Chechik – [email protected] (@danielchechik)

Rami Kogan – [email protected]

Ben Hayak – [email protected] (@benhayak)

Thank You!

BTC: 12qPtFhw9UPL8HvfSsSjvqxeFXp4hRiWym

Page 73: BITCOIN TRANSACTION MALLEABILITY THEORY IN …...Additional Mining Goals Bitcoin – what we’ve learned so far … • Block – container of transactions • lock chain - record

References

Github - https://github.com/sipa/bitcoin/commit/87fe71e1fc810ee120a10063fdd26c3245686d54 Spiderlabs – http://www.spiderlabs.com Bitcoin official document - https://bitcoin.org/bitcoin.pdf Bitcoin Wiki - https://en.bitcoin.it/wiki Bitcoin Transaction Malleability Wiki - https://en.bitcoin.it/wiki/Transaction_Malleability Ken Shirriff - http://www.righto.com/2014/02/bitcoin-transaction-malleability.html