Date post: | 16-May-2018 |
Category: |
Documents |
Upload: | trinhkhanh |
View: | 217 times |
Download: | 2 times |
BLOCKCHAIN AS A SERVICE Building Blocks of Blockchain Gary White
@garypwhitejr
Who dis? Gary White Jr. DELL EMC DOJO Blockchain Enthusiast DevOps Evangelist CF Committer Tweet @ Me @garypwhitejr Tweet @ The Dojo @DellEMCDojo
@garypwhitejr
AGENDA WHAT IS A BLOCKCHAIN?
WHY DO I CARE?
MAKE IT A SERVICE!
DEEP DIVE AND INVESTIGATION
SECURING, ACCESSING, AND MONETIZING DATA
BLOCKCHAIN AS A SERVICE
@garypwhitejr
DEEP DIVE What is a Blockchain?
@garypwhitejr
What ISN’T a blockchain? BITCOIN BITCOIN USES BLOCKCHAIN ENFORCING SECURITY AND CREDIBILITY. THE BLOCKCHAIN ITSELF IS HOLDING DATA.
CURRENCY BLOCKCHAINS HOLD DATA. DATABASES HOLD DATA. MYSQL AND MONGO ARE NOT CURRENCY, EVEN IF PAYPAL MAY USE THEM TO KEEP TRACK OF CURRENCY
AN OVERLORD THERE IS NO SUCH THING AS “THE BLOCKCHAIN” THERE IS SUCH THING AS “A BLOCKCHAIN”
@garypwhitejr
Distributed Ledger Technology
OPEN READ
ACCESS
OPEN WRITE
PROPOSALS
SECURE WRITE VALIDATION
PROCESS
ANON USER
INTERACTION
@garypwhitejr
Didn’t We Solve This?
REPLICATION FASTER READ TIMES
DATA SYNC REQUIRES CA OVERSIGHT
FAMILIARITY SEAMLESS APPLICATION LAYER
FAULT TOLERANCE* HARDWARE FAULTS /=/ SYSTEM FAILURES
@garypwhitejr
Didn’t We Solve This?
FAULT TOLERANCE SOFTWARE FAILURE = SYSTEM FAILURES
(SOME) HARDWARE FAILURES = SYSTEM FAILURES
@garypwhitejr
Byzantine Faults
https://www.safaribooksonline.com/library/view/cassandra-the-definitive/9781449399764/ch01.html “Byzantine Fault Tolerance is not a Bigtable goal” RETREAT ATTACK OR
@garypwhitejr
Byzantine Faults
DATA MASTER
IF WE DON’T PLAN FOR THIS, ALL FAULTS BECOME FAILURES.
“Many of the Byzantine failures Resulted in 4-way splits. Some of the nodes saw a good message, some saw the same message arriving late, some nodes saw a checksum error in that message, and some saw both types of errors.” https://c3.nasa.gov/dashlink/static/media/other/ObservedFailures14.html
@garypwhitejr
Who do we trust?
NOBODY.
@garypwhitejr
When do we trust them?
NEVER! (Just kidding)
@garypwhitejr
Proof of validity Use tight encryption methods
When do we trust them? RULES
Proof of contribution to SYSTEM INTEGRITY
Proof of identity
Data should have full integrity. (first take, no rewrites) Data Access should be EASY.
@garypwhitejr
Brainstorm: @garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
Creating Transactions
WHO SENT IT? TRANSACTIONS ARE SIGNED
WHAT’S THE PLAN? GIVE DATA FOR THE TRANSACTION (TRANSFER 20 TO BERT, ETC..)
WHO KNOWS? TRANSACTIONS PROPOGATE THROUGHOUT THE NETWORK
IS IT SECURE? TRANSACTION DATA IS HASHED ENSURING DATA INTEGRITY
@garypwhitejr
Validating Transactions / Blocks PERSISTENT STATE
“IS THIS VALID?” IS AN EASY YES/NO OPENLY AVAILABLE
ANYONE CAN (IN)VALIDATE ANY TRANSACTION
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
Merkle Tree? T1 T2 T3 T4
HASH 0-0 hash(T1)
HASH 0-1 hash(T2)
HASH 0 hash(HASH0-0 – HASH0-1)
HASH 1-0 hash(T3)
HASH 1-1 hash(T4)
HASH 1 hash(HASH1-0 – HASH1-1)
“TOP HASH” hash(HASH0 – HASH1)
SECURE CONTENT CHANGING ONE HASH CHANGES THE TOP
QUICK VALIDATION HASHING SOME HASHES ISN’T HARD. TOP HASH IS DEPENDENT ON LOWER
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
“NONCE”? https://en.bitcoin.it/wiki/Nonce
RANDOM VALUE TRANSACTION HASHES AND TREES
FAST GUESSING HASHING IS A SWIFT PROCESS
VARIABLE DIFFICULTY DIFFICULTY CHANGES BASED ON PARTICIPATION
“INFEASIBLE TO PREDICT” HASHING MAGIC
@garypwhitejr
Generating “NONCE” GENERATED BLOCK HASH
“GOLDEN NONCE” UNIQUE BLOCK HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
What’s in a Block? Previous Block Hash
“NONCE”
TRANSACTIONS + HASHES
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
INFORMATION DATA
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
PLUS TREE HASH
@garypwhitejr
BITCOIN A WELL KNOWN USE CASE FOR SECURE BLOCKCHAIN TECHNOLOGY
@garypwhitejr
PAYLOAD EX: ALICE SENDS 2 BC TO BOB
01001100 01001001 01010100
VALIDATION CHECK LEDGER STATE, KEYS, HASH
INCENTIVE “GOLDEN” NONCES ARE PAID BITCOIN
ANONYMOUS BITCOIN USERS EXIST AS A HASH ID
DIFFICULTY BLOCKS RETREIVED CONSISTENTLY
ADOPTION EXISTING USER BASE
@garypwhitejr
RESOLVING CONFLICT THE LONGEST CHAIN IS THE WINNER.
NODES PREFER THE LEAST EFFORT TO BE THE FARTHEST ALONG
@garypwhitejr
Extending our Blockchain’s use Previous Block Hash
“NONCE”
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE SENDS BOB 5 COINS 2: BOB SENDS CHARLIE 3 COINS 3: CHARLIE SENDS DEE 2 COINS
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
TRANSACTIONS + HASHES
PLUS TREE HASH
DATA AS INFORMATION
@garypwhitejr
Extending our Blockchain’s use Previous Block Hash
“NONCE”
UNIQUE BLOCK HASH
HA
SH
TOG
ETH
ER
TRANSACTIONS 1: ALICE PUBLISHED AN APP 2: CHARLIE USED AN APP
DATA AS INFORMATION, AND DATA AS APPLICATIONS
H(A) H(B) H(C) H(D)
H(H(A)-H(B)) H(H(C)-H(D))
AND SO ON
“MERKLE TREE”
TRANSACTIONS + HASHES
PLUS TREE HASH
@garypwhitejr
COOL, WHY DO I CARE? The Value of using blockchain
@garypwhitejr
Distributed Ledger Security @garypwhitejr
Smart Contracts/Dapps @garypwhitejr
Multi-Cloud/NHC Integration
WEB UI
@garypwhitejr @garypwhitejr
Multi-Cloud/NHC Integration
WEB UI
@garypwhitejr
Multi-Cloud/NHC Integration
WEB UI
FEE TRANSACTIONS CAN BE CHARGED FOR USE OF APPS
$
@garypwhitejr
ETHEREUM AS A SERVICE Blockchain in Cloud Foundry
@garypwhitejr
Web UI
“bootnode”
@garypwhitejr
CF Service Broker API
Web UI
“bootnode”
@garypwhitejr
CF Service Broker API
BOSH VM
Web UI leveraging
DApps
@garypwhitejr
CF Service Broker API
BOSH VM
BLOCKCHAIN AS A SERVICE Building Blocks of Blockchain Gary White
@garypwhitejr