Bitcoin: Data flow.

Slides:



Advertisements
Similar presentations
Secure Multiparty Computations on Bitcoin
Advertisements

Bitcoin. What is Bitcoin? A P2P network for electronic payments Benefits: – Low fees – No middlemen – No central authority – Can be anonymous – Each payment.
Bitcoin Double Spending Attack Karame, Androulaki & Capkun Presented by Subhro Kar CSCE 715, Fall 2013.
Towards a More Democratic Mining in Bitcoins Goutam Paul R. C. Bose Centre for Cryptology & Security, Indian Statistical Institute Pratik Sarkar Indian.
BITCOIN An introduction to a decentralised and anonymous currency. By Andy Brodie.
The world’s first decentralized digital currency Meni Rosenfeld Bitcoil 29/11/2012Written by Meni Rosenfeld1.
RNJ 10/02/091 3 Computing System Fundamentals 3.6 Errors Prevention and Detection.
Bitcoin (what, why and how?)
BitCoin An overview. Why ? First crypto-currency.
Bitcoin Transaction Scripting Andy Ofiesh Senior Software Engineer Armory Technologies, Inc. MIT Bitcoin Expo, May 3rd, 2014 © Armory Technologies, Inc.
System Development Lifecycle Verification and Validation.
1 Bitcoin A Digital Currency. Functions of Money.
Bitcoin today (October 2, 2015)
Intro to Block Chain Bitcoin. Blocks ●Ethereum - block chain ●Dogecoin - block chain ●Ripple - not a block chain ●Stellar - not a block chain ●Bitcoin.
Deanonimization methods in Bitcoin Network Marko Marić.
SCP: A Computationally Scalable Byzantine Consensus Protocol for Blockchains Loi Luu, Viswesh Narayanan, Kunal Baweja, Chaodong Zheng, Seth Gilbert, Prateek.
Bitcoin Tech Talk Zehady Abdullah Khan (Andy) Graduate Assistant, Computer Science Department, Purdue University.
Section #9: Bitcoins. Digital currency Unique string of bits Use cryptography for security and privacy Not tied to names: hard to trace Finite set of.
Bitcoin Based on “Bitcoin Tutorial” presentation by Joseph Bonneau, Princeton University Bonneau slides marked “JB”
Bitcoin’s new Era OP_CSV, Segregated Witness And how it relates to Bitcoin at Visa’s scale.
First… What is Cryptocurrency? A Cryptocurrency is a digital currency that is created through mathematical engineering (algorithm). It is designed to.
Bitcoin Bitcoin is a cryptocurrency. The platform that hosts Bitcoin is a p2p system. Bitcoin can be abstracted as a digital file that records the account.
Block Chain 101 May 2017.
Blockchain & Bitcoin Notions fondamentales Lionel Brunie, Omar Hasan Institut National des Sciences Appliquées de Lyon
What Is Bitcoin? Launched in 2009 A p2p Electronic Cash System
Bitcoin and the Blockchain
Bitcoin Based on “Bitcoin Tutorial” presentation by
Mechanics of Bitcoin Part II
Virtual currency? Crypto-currency? Internet Money? Property?
Bitcoin - a distributed virtual currency system
Mechanics of Bitcoin Part I
Distributed Systems for Information Systems Management
Bitcoin and the Blockchain
Anonymity vs. Privacy Campbell R. Harvey Duke University, NBER and
So what is Blockchain anyway?
protocollo e casi studio

Blockchain Helpline Number
CS898AT – Bitcoins and Cryptocurrencies
Technical Overview of Bitcoin
Let’s build a Blockchain!
CS 240: Computing Systems and Concurrency Lecture 20 Marco Canini
Anonymity vs. Privacy Campbell R. Harvey Duke University, NBER and
NEECOM – May 16, 2018 Todd L. Gould, CEO
Bitcoin and the Blockchain
Campbell R. Harvey Duke University and NBER
Blockchains (2) slides have been taken from:
Campbell R. Harvey Duke University and NBER
Campbell R. Harvey Duke University and NBER
Nonce Making Sense of Nonces.
Campbell R. Harvey Duke University and NBER
Cryptocurrency as a payment option
Campbell R. Harvey Duke University and NBER
Campbell R. Harvey Duke University and NBER
Bitcoin & Blockchain Bina Ramamurthy 2/22/2019.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Teechain: Scalable Blockchain Payments using Trusted Execution Environments GIZEM AKDENIZ DECEMBER 13 , 2018.
Kai Bu 04 Blockchain Kai Bu
Blockchains and Auditing
Ethereum Virtual Machine
Blockchain & Bitcoin Notions fondamentales Lionel Brunie, Omar Hasan Institut National des Sciences Appliquées de Lyon
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Faculty Seminar Series Blockchain Technology
Proof of Work, “mining,” and P2Pool
Lightning or How to Pay Quickly with Bitcoin
Campbell R. Harvey Duke University and NBER
Campbell R. Harvey Duke University and NBER
Bitcoin and Blockchain
Explore Txs, block, blockchain in Bitcoin
Presentation transcript:

Bitcoin: Data flow

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Guess 2 Nonce Guess 3000 Nonce Guess 1 Nonce 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Timestamp: Timestamps are embedded in every calculation involved in generating the block. This makes the blockchain “immutable” as malicious actors can’t change previous blocks, especially after 6 blocks have been added to that block (i.e. which is why online retailers wait 60 minutes before accepting payment) Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

18iWVBbk8tA9bbipS1evviVLP4eE5ga51P Sender’s address 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P

Sender’s address Recipient's address 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK 

Transaction ID Sender’s address Recipient's address 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18

Transaction ID Sender’s address Recipient's address Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Sender’s address Recipient's address Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Pass Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Sender’s address Recipient's address Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Mining Node Transaction pool Pass Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Block 277298 Sender’s address Recipient's address Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Mining Node Transaction pool Pass Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Block 277298 Sender’s address Recipient's address Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) Mining Node Transaction pool Pass Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc Mining Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc Mining Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Mining Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Many nonce values can satisfy this condition; miners generate millions of values to “win” the bitcoins What is the Nonce? Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Guess 1 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID WRONG!!! Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty WRONG!!! Guess 1 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Guess 2 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID WRONG!!! Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty WRONG!!! Guess 2 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Guess 3000 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID WRONG!!! Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty WRONG!!! Guess 3000 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Guess 90,000 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID WRONG!!! Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty WRONG!!! Guess 90,000 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Winner! Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty Winner! 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Timestamp: Timestamps are embedded in every calculation involved in generating the block. This makes the blockchain “immutable” as malicious actors can’t change previous blocks, especially after 6 blocks have been added to that block (i.e. which is why online retailers wait 60 minutes before accepting payment) Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Transaction ID Mining Block 277298 Sender’s address Recipient's address Transaction ID Node checks the transaction for the following: The transaction’s syntax and data structure must be correct. Neither lists of inputs or outputs are empty. The transaction size in bytes is less than MAX_BLOCK_SIZE. Each output value, as well as the total, must be within the allowed range of values (less than 21m coins, more than 0). None of the inputs have hash=0, N=–1 (coinbase transactions should not be relayed). nLockTime is less than or equal to INT_MAX. The transaction size in bytes is greater than or equal to 100. The number of signature operations contained in the transaction is less than the signature operation limit. The unlocking script (scriptSig) can only push numbers on the stack, and the locking script (scriptPubkey) must match isStandard forms (this rejects "nonstandard" transactions). A matching transaction in the pool, or in a block in the main branch, must exist. For each input, if the referenced output exists in any other transaction in the pool, the transaction must be rejected. For each input, look in the main branch and the transaction pool to find the referenced output transaction. If the output transaction is missing for any input, this will be an orphan transaction. Add to the orphan transactions pool, if a matching transaction is not already in the pool. For each input, if the referenced output transaction is a coinbase output, it must have at least COINBASE_MATURITY (100) confirmations. For each input, the referenced output must exist and cannot already be spent. Using the referenced output transactions to get input values, check that each input value, as well as the sum, are in the allowed range of values (less than 21m coins, more than 0). Reject if the sum of input values is less than sum of output values. Reject if transaction fee would be too low to get into an empty block. The unlocking scripts for each input must validate against the corresponding output locking scripts. Initial Node 18iWVBbk8tA9bbipS1evviVLP4eE5ga51P 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK  7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 Each transaction contributes to the Merkle Root; enables Simple Payment Verification (SPV) ca0f8e21006b8e06753c8275b64786e26b5d0f81e6cd467b827447edb840aba5 Merkle Root Mining Node Transaction pool Pass 0000000000000002337910ad43f560f645b5a28d002cdc086405c57d6560a260 Previous Block Hash Block 277298 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 1d17177de4dc9b5ccaec6fb7aec6029039350ded6c6f0ab19cad1496df07001f 95dd94e5b91e75c74b936e991afbb6fbff5343c3563ce9acbe1242043d62e3a7 6b1495994a687dc3cede1975bbbe905665e600ccd24087aabf5662b3a2ed7e77 ce6ef83ae8128e91070178ec56674530603a52eebae4b17e07d507c98b52b781 07021d339fa764bd6157067f54acc1cb2fd88c2558cd47803102e96d9b0afeae etc 1,180,923,195.26 Difficulty 2998647156 Nonce Mining 0000000000000002f7de2a020d4934431bf1dc4b75ef11eed2eede55249f0472 Hash for Block 277298 Block propagates to the Bitcoin Network: Other nodes check the hash by running it through the SHA-256 hash function and confirm that the miner has properly checked the transaction. If more the 51% agree, then it is accepted as valid and added to shared blockchain ledger and it will become part of the immutable record. Note: Total unspent transactions (UTXO) for each wallet is determined by the movement of bitcoin from one address to another; i.e. bitcoin are not maintained in the wallet per se.

Notes See the following links for more info on the preceding transaction flow: https://blockchain.info/tx/7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18 https://blockchain.info/block-index/339670 Initial checks: Makes sure balance is non-zero UTXO, i.e. unspent transactions; ledger points from one movement to another to address, i.e. “the audit trail”, Also, transactions move back & forth, e.g. A  B to send 5, needs to send 10, and then B sends 5 back Proof of work: Consensus: Entire network comes to a consensus to the current state of the ledger Multiple nonces can satisfy the target hash; i.e. the target hash is not static, it’s criteria is floating Difficulty level is set based on parameters by the number of zeros below the target (https://en.bitcoin.it/wiki/Difficulty) Date & Time; for every calc of the mining bit, includes date and time; people call the immutability (also speak to block depth); 6 block concept, the say mathematical impossible to have a side chain that is longer than 6 blocks Incentives Work to generate a 51% attack is more expensive than trying to mine bitcoins, also get fees in addition to the mining reward. If attack is successful in creating counterfeit bitcoins, the attacker’s bitcoins worthless as people will lose faith in the system. Doesn’t account for attacker who is just trying to destroy the protocol who has no stake in the system. Open-source Bitcoin relies on consensus from the bitcoin developer community. i.e. there was a disagreement on how much memory each transaction should be allocated (currently 1MB; wanted to expand it to 2 or 5M, but the community decided to keep it as is) Private entities, consortiums would need greater control and likely need a permissioned blockchain where the network can be configured to meet their needs. Wallets: If private keys are compromised, then bitcoins can be stolne (e.g. Mt. Gox hack) have multi-signature wallets to prevent this. Simplified payment verification (SPV): Can use SPV to verify transactions instead of downloading the whole +70GB blockchain ledger