SlideShare a Scribd company logo
1 of 79
Download to read offline
@ t h e b e e b s
A Developer Primer on Blockchain
Martin Beeby
Principle Evangelist AWS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
A software developer since I was 16
Developer for 20 years
Work at Amazon Web Services
MARTIN BEEBY
@THEBEEBS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
THREE PEOPLE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
ALL WORK IN AN OFFICE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
NUSRET THE BAKER
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
THEY BUY
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
TERESA BUYS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
DONALD BUYS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
TERESA SELLS
@ t h e b e e b s
M a r t i n B e e b y
TERESANUSRET DONALD
@ t h e b e e b s
NUSRET ALSO BUYS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Handsome
Smart
Remote Worker
NEW PERSON
JOINS THE TEAM
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
MARTIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Transferring Money between them is now harder
Easy to lose track of who owes what
Lets build a database
MONEY IS A
PAIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Martin Controls it
Each cake sale is a transaction
The seller tells martin about the transaction. He records it
CREATE A
DATABASE
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
TRANSACTIONS
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Trust Required (Fraud)
Transparency
Central Control
WHAT’S THE
PROBLEM?
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Most Business run this way
Big Databases are not a problem
If there is Trust
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
MARTIN HAS A CAKE PROBLEM
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
DATABASE FOR EVERYONE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Hard to keep in sync
Hard to agree
Hard to reach consensus
PEOPLE COULD
STILL DEFRAUD
@ t h e b e e b s
@ t h e b e e b s
M a r t i n B e e b y
Blockchain builds trust in a network
Eliminates the need for central authority in business networks
Three main components: distributed ledger, consensus mechanism,
and “smart contract” execution environment
@ t h e b e e b s
M a r t i n B e e b y
Customers are experimenting in many industries
Proof of Ownership
Digital Security Trading
Documents/Contracts
Enterprise Platforms
Financial
Insurance
Mortgage Loans
Voting Mechanisms
Patient Records
Corporate Governance
HCLS
Real Estate
Legal
Agriculture
Gaming
M & E
Transportation
Digital Advertising
Power/Utilities
Retail
Capital Markets
Cloud
OWNERSHIPPRIVATE MARKETS
DERIVATIVES
WAGERS
GLOBAL PAYMENTS
REMITTANCE
NOTARISATION
EQUITY
MICROFINANCE
INTELLECTUAL PROPERTY
TITLE RECORD
ESCROW
DIGITAL RIGHTS
E-COMMERCE
DEBT
CROWDFUNDING
P2P LENDING
HEALTHCARE
VOTING
TRUSTEES
SMART
CONTRACTS
DIGITAL
CURRENCY
SECURITIES
RECORD
KEEPING
BLOCKCHAIN
TECHNOLOGY
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
PUBLIC AND PRIVATES OR CERTIFICATE
Private Key Private Key Private Key Private Key
Address 1 Address 2 Address 3
Address 6
Address 5
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
TRANSACTIONS
Sender Amount Receiver Signed
Address 1 5 Address 2 110101010
Address 2 4 Address 3 010101010
Address 3 3 Address 1 010011010
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Listen for transactions and validates them
Order transactions into a block
Creates and hashes blocks
PEERS LISTEN
FOR
TRANSACTIONS
Sender Receiver Signed
Address 1 5 Address 2 110101010
Address 2 4 Address 3 010101010
Address 3 3 Address 1 010011010
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
HASHING
SHA256
446F09C5D7DB665A
851077054EBC7067
56E372A32C8753F0
428B6671CA6CE449
In west Philidelphia
born and raised on
the play ground was
where I spent most of
my days. Chilling
223E8E360399E82A
C97B37A73FA1F532
071F03D8A174FA56
6D44F1770CC37D9A
Istanbul
@ t h e b e e b s
M a r t i n B e e b y
Suggest blocks to the
network
Other validating peers will
verify the block.
But how can they trust the new
block?
How do they reach consensus?
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Solve a complex problem involving the hashing of the block
Would be very expensive to try and present incorrect blocks
Miners on bitcoin spend huge sums of money on electric
PROOF OF
WORK
Jargon: A Consensus
Algorithm
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Proof of Stake
Proof of Elapsed Time
Byzantine fault tolerant
OTHER
CONSENSUS
ALGORITHM
@ t h e b e e b s
M a r t i n B e e b y
80801
72456
80801
98994
A series of blocks that
are hashed
And linked by the hash of the
previous block
80801
72456
34623
@ t h e b e e b s
M a r t i n B e e b y
DONALD MARTIN
@ t h e b e e b s
TERESANUSRET
OTHER PEERS VERIFY
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
PEERS THEN BUILD ANOTHER
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
A list of transactions grouped into blocks
Blocks chained together by knowing the previous hash
Nothing can be easily altered, the slightest modification
would be obvious
A BLOCKCHAIN IS
Jargon: Merkle Tree 80801
72456
80801
72456
34623
@ t h e b e e b s
M a r t i n B e e b y
What Can A Developer
Do?
Smart Contracts (chaincode)
and Build Distributed apps
@ t h e b e e b s
M a r t i n B e e b y
Public and permissioned networks
Public networks allow anyone to
participate in the network. Members are
incentivized to maintain the network
Permissioned networks limit
the members to known entities
@ t h e b e e b s
Network 1 – Managed Blockchain
VPC endpoint
VPC endpoint
Account A
Account B
@ t h e b e e b s
M a r t i n B e e b y
Chaincode basics
Code executed on the network, and can query and update ledger
Fabric supports chaincode in three languages:
Chaincode execute within a docker container on peer nodes
Chaincode has two operations in its interface:
• Init()—initializes the chaincode with parameters
• Invoke()—invokes the chaincode with parameters
@ t h e b e e b s
M a r t i n B e e b y
Peer nodes
Ordering service
blob3
blckNo
tx1
tx2
Block
forming
blob1
Verify endorsement, readset
If OK then apply writeset
Else invalid transaction (blob)
Genesis block
Submitting
client
Peer
Validated Ledger (VL)PeerLedger
PeerLedger Validated Ledger
blockblock seqNo=blckNo
3
4
seqNo
blob1
blob2
Orders
• Stores a copy of
the ledger database
• Executes chaincode and
endorses transactions
• Validates transactions
before the final commit
to ledger
@ t h e b e e b s
M a r t i n B e e b y
Endorsement policies
Endorsement policies allow
chaincode to specify which
members (or how many)
need to validate a transaction
before submitting
Endorsed transactions
then get submitted to
the ordering service and
assembled into blocks
Member 1
client
Hyperledger Fabric ordering service
Ledger LedgerMember 2
Peer
Member 1
Peer
1
3 2
1
3
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
From Sea to Table
Lots of Fraud
Could benefit from Transparency
THE TUNA
SUPPLY CHAIN
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Sarah is the fisherman who sustainably and legally catches tuna.
Regulators verify that the tuna has been legally/sustainably caught.
Miriam is a restaurant owner who wants legal/sustainable tuna
TUNA SUPPLY
CHAIN
Carl is another restaurant owner fisherman Sarah can sell tuna to.
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
Sarah sells at different prices
Privacy around deals
Carl shouldn’t see Miriams price
DEALS NEED TO
BE PRIVATE
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
Channels for access control
Channels allow isolation of
transactions among specific
members in the network
Create or update a
channel with configuration
transaction (configtx)
Member 1 Member 2 Member 3
Channel 2
Ledger
Channel 1
Ledger
Hyperledger Fabric ordering service
Channel 2Channel 1
Member 2
Peer
Member 3
Peer
Member 1
Peer
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CHAINCODE
package main
import (
"fmt"
"github.com/hyperledger/fabric/core/chaincode/shim"
"github.com/hyperledger/fabric/protos/peer"
)
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
TUNA STRUCT
type Tuna struct {
Vessel string ‘json:"vessel"’
Datetime string ‘json:"datetime"’
Location string ‘json:"location"’
Holder string ‘json:"holder"’
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
INIT
func (s *SmartContract) initLedger(APIstub shim.ChaincodeStubInterface) sc.Response {
tuna := []Tuna{
Tuna{Vessel: "923F", Location: "67.0006, -70.5476", Timestamp: "1504054225", Holder: "Miriam"},
Tuna{Vessel: "M83T", Location: "91.2395, -49.4594", Timestamp: "1504057825", Holder: "Dave"},
Tuna{Vessel: "T012", Location: "58.0148, 59.01391", Timestamp: "1493517025", Holder: "Igor"},
Tuna{Vessel: "P490", Location: "-45.0945, 0.7949", Timestamp: "1496105425", Holder: "Amalea"},
Tuna{Vessel: "S439", Location: "-107.6043, 19.5003", Timestamp: "1493512301", Holder: "Rafa"},
Tuna{Vessel: "J205", Location: "-155.2304, -15.8723", Timestamp: "1494117101", Holder: "Shen"},
Tuna{Vessel: "S22L", Location: "103.8842, 22.1277", Timestamp: "1496104301", Holder: "Leila"},
Tuna{Vessel: "EI89", Location: "-132.3207, -34.0983", Timestamp: "1485066691", Holder: "Yuan"},
Tuna{Vessel: "129R", Location: "153.0054, 12.6429", Timestamp: "1485153091", Holder: "Carlo"},
Tuna{Vessel: "49W4", Location: "51.9435, 8.2735", Timestamp: "1487745091", Holder: "Fatima"},
}
i := 0
for i < len(tuna) {
fmt.Println("i is ", i)
tunaAsBytes, _ := json.Marshal(tuna[i])
APIstub.PutState(strconv.Itoa(i+1), tunaAsBytes)
fmt.Println("Added", tuna[i])
i = i + 1
}
return shim.Success(nil)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
INVOKE
func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response {
// Retrieve the requested Smart Contract function and arguments
function, args := APIstub.GetFunctionAndParameters()
// Route to the appropriate handler function to interact with the ledger appropriately
if function == "queryTuna" {
return s.queryTuna(APIstub, args)
}
else if function == "initLedger" {
return s.initLedger(APIstub)
} else if function == "recordTuna" {
return s.recordTuna(APIstub, args)
} else if function == "queryAllTuna" {
return s.queryAllTuna(APIstub)
} else if function == "changeTunaHolder" {
return s.changeTunaHolder(APIstub, args)
}
return shim.Error("Invalid Smart Contract function name.")
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
QUERYTUNA
func (s *SmartContract) queryTuna(APIstub shim.ChaincodeStubInterface, args []string)
sc.Response {
if len(args) != 1 {
return shim.Error("Incorrect number of arguments. Expecting 1")
}
tunaAsBytes, _ := APIstub.GetState(args[0])
if tunaAsBytes == nil {
return shim.Error(“Could not locate tuna”)
}
return shim.Success(tunaAsBytes)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
RECORDTUNA
func (s *SmartContract) recordTuna(APIstub shim.ChaincodeStubInterface, args []string)
sc.Response {
if len(args) != 5 {
return shim.Error("Incorrect number of arguments. Expecting 5")
}
var tuna = Tuna{ Vessel: args[1], Location: args[2], Timestamp: args[3], Holder: args[4]}
tunaAsBytes, _ := json.Marshal(tuna)
err := APIstub.PutState(args[0], tunaAsBytes)
if err != nil {
return shim.Error(fmt.Sprintf("Failed to record tuna catch: %s", args[0]))
}
return shim.Success(nil)
}
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CHANGETUNAHOLDER
func (s *SmartContract) changeTunaHolder(APIstub shim.ChaincodeStubInterface, args []string) sc.Response {
if len(args) != 2 {
return shim.Error("Incorrect number of arguments. Expecting 2")
}
tunaAsBytes, _ := APIstub.GetState(args[0])
if tunaAsBytes != nil {
return shim.Error("Could not locate tuna")
}
tuna := Tuna{}
json.Unmarshal(tunaAsBytes, &tuna)
// Normally check that the specified argument is a valid holder of tuna but here we are skipping this check for this example.
tuna.Holder = args[1]
tunaAsBytes, _ = json.Marshal(tuna)
err := APIstub.PutState(args[0], tunaAsBytes)
if err != nil {
return shim.Error(fmt.Sprintf("Failed to change tuna holder: %s", args[0]))
}
return shim.Success(nil)
}
@ t h e b e e b s
Install Chain Code from the CLI
peer chaincode install –n tunachaincode –-v v0 -p src/chaincode_tuna/go
@ t h e b e e b s
Check Installed Chain Code from the CLI
peer chaincode list --instantiated  -o $ORDERER -C mychannel  --cafile
/opt/home/managedblockchain-tls-chain.pem –tls
Name: tunachaincode Version: v0 Path: src/chaincode_tuna/go
@ t h e b e e b s
Invoke
peer chaincode invoke -C mychannel  -n tunachaincode -c
'{"Args":["invoke",”queryTuna"]}'  -o $ORDERER --cafile /opt/home/managedblockchain-
tls-chain.pem --tls
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
M a r t i n B e e b y
@ t h e b e e b s
CALLING SOME CODE
// changeTunaHolder - requires 2 argument
var request = {
chaincodeId:’ tunachaincode’,
fcn: 'changeTunaHolder',
args: ['1', 'Alex'],
chainId: 'mychannel',
txId: tx_id
};
return channel.sendTransactionProposal(request);
@ t h e b e e b s
@ t h e b e e b s
M a r t i n B e e b y
Need for a ledger with centralized trust
DMV
Track vehicle
title history
Manufacturers
Track distribution of a
recalled product
HR & Payroll
Track changes to an
individual’s profile
Healthcare
Verify and track hospital
equipment inventory
LEDGERS WITH
CENTRALIZED TRUST1
@ t h e b e e b s
M a r t i n B e e b y
Need for running transactions with decentralized trust
2
Financial
institutions
Peer-to-peer payments
Mortgage
lenders
Process syndicated
loans
Supply Chain
Transact with suppliers
and distributers
Retail
Streamline customer
rewards
TRANSACTIONS WITH
DECENTRALIZED TRUST
@ t h e b e e b s
M a r t i n B e e b y
Blockchain services at AWS
Amazon Quantum Ledger
Database (QLDB)
Amazon Managed
Blockchain
@ t h e b e e b s
Amazon Quantum
Ledger Database (QLDB)
Fully managed ledger database with a
central trusted authority
@ t h e b e e b s
M a r t i n B e e b y
Challenges customers face
Building Ledgers with traditional databases
Difficult to
manage and scale
Impossible
to verify
Error prone and
incomplete
Resource
intensive
Blockchain approaches
Designed for a
different purpose
Adds unnecessary
complexity
@ t h e b e e b s
M a r t i n B e e b y
Amazon Quantum Ledger Database (QLDB) (Preview)
Fully managed ledger database
Track and verify history of all changes made to your application’s data
Maintains a sequenced
record of all changes to your
data, which cannot be
deleted or modified; you
have the ability to query and
analyze the full history
Immutable
Uses cryptography to
generate a secure output file
of your data’s history
Cryptographically
verifiable
Easy to use, letting you
use familiar database
capabilities like SQL APIs for
querying the data
Easy to useHighly scalable
Executes 2–3X as
many transactions as
ledgers in common
blockchain frameworks
@ t h e b e e b s
M a r t i n B e e b y
Blockchain components: Distributed Ledger database
The journal records an immutable log of all transactions
and is maintained by nodes in the blockchain network
Block 61
Block hash:
000044bf2efe32
Previous block hash:
000087ea2ffe94
Timestamp
Transaction
Transaction
Block 61
Block hash:
000087ea2ffe94
Previous block hash:
000057ec2fda71
Timestamp
Transaction
Transaction
Block 61
Block hash:
000057ec2fda71
Previous block hash:
0000d68b2f0a3b
Timestamp
Transaction
Transaction
@ t h e b e e b s
M a r t i n B e e b y
What is immutability?
1 Tracy buys a car on Aug 3, 2013
2 Tracy sells car to Ronnie
on Sept 10, 2014
DMV QLDB database will add Ronnie’s record
Journal Current stateDMV scenario
3 Ronnie’s car gets in an
accident and gets totaled
DMV QLDB Database adds new row, called “delete”
DELETE
DATE: 09/02/2016
ID Manufacturer Model Year VIN Owner
1 Tesla Model S 2012 123456789 Traci Russell
ID Manufacturer Model Year VIN Owner
1 Tesla Model S 2012 123456789 Ronnie Nash
ID Manufacturer Model Year VIN Owner
Built from ground-up in such a way that Journal cannot be modified or altered
Entire change history is easily accessible
DMV QLDB database will add Traci’s record
@ t h e b e e b s
M a r t i n B e e b y
“Healthdirect Australia operates in a heavily regulated industry, and it
is critical that our compliance data is correct and auditable. With
Amazon QLDB we look forward to having a complete and verifiable
history of every change in our system, making it simple to audit when
and how we arrived at our current state. Regulatory compliance is fact
of life for healthcare companies, and Amazon QLDB enables us to
easily track the controls we have in place and understand how they
have changed over time.”
—Bruce Haefele
General Manager, Technology, Healthdirect Australia
@ t h e b e e b s
Amazon
Managed Blockchain
Fully managed blockchain service, supporting both
Hyperledger Fabric and Ethereum frameworks
@ t h e b e e b s
M a r t i n B e e b y
Challenges with existing blockchain solutions
Complicated
to manage
Setup is hard Hard to scale Expensive
@ t h e b e e b s
M a r t i n B e e b y
Amazon Managed Blockchain
Easily create and manage scalable blockchain networks
Quickly create blockchain
networks that span multiple
AWS accounts. Easily add or
remove members and monitor
the network
Fully managed Choice of Hyperledger
Fabric or Ethereum
Improves reliabilityScalable and secure
Easily scale your blockchain
network as the usage grows.
Also, Managed Blockchain
secures your network
certificates with KMS
Choose the right framework for
your needs, whether you are
building a permissioned or
public network
Managed Blockchain improves
the reliability of the “ordering
service,” by replacing the
default technology with QLDB.
This improves durability
@ t h e b e e b s
M a r t i n B e e b y
Hyperledger Fabric and Ethereum benefits
Useful for a finite set of known users
Well-suited for applications that require stringent
privacy and permission controls with a known set
of members
For example, a financial application where certain
trade-related data is only shared with select banks
and other members in the network don’t have
access to the data
Hyperledger Fabric
Useful for an infinite number of unknown users
Well suited for highly distributed blockchain
networks where transparency of data for all
members is important
For example, a digital identity network comprising
of farmers and government organization, where an
infinite number of farmers can join the network and
information regarding their land, crop yields, etc., is
shared across all members on the blockchain
Ethereum
@ t h e b e e b s
M a r t i n B e e b y
How Amazon Managed Blockchain works
Amazon Managed
Blockchain
Create a network
Choose an open source
blockchain framework, set
up a new blockchain network
and your membership in
your AWS account with
just a few clicks
Invite members
Invite other AWS accounts to
join the network
Add nodes
Create and configure
blockchain peer nodes that
store a copy of the
distributed ledger
Deploy applications
Create and deploy
decentralized applications
to your network through
your per nodes. Transact
with other members on
the network
@ t h e b e e b s
M a r t i n B e e b y
“Given our vast partner ecosystem, we are exploring the decentralization and
immutable tracking benefits of blockchain for potential applications in our
insurance business. We believe blockchain can improve the transparency and
efficiency for stakeholders in these networks to transact, while still maintaining
an independently verifiable lineage of activities. However, blockchain frameworks
are complex and difficult to operate. With Amazon Managed Blockchain, we can
now easily create Hyperledger Fabric blockchain networks to test and learn
without worrying about managing the underlying infrastructure, networking,
and software configuration.”
—Daniel Johnson
CTO and Head of Innovation, Guardian Life Insurance Company
@ t h e b e e b s
M a r t i n B e e b y
Summary: helping customers identify the right
AWS blockchain service
Owned by a single, trusted authority
Addresses core need of a immutable and
verifiable transactional log
It’s a database, so its fast, as it doesn’t
require consent from members
Amazon QLDB Amazon Managed Blockchain
No single owner of the ledger. Joint
ownership by multiple parties
Addresses core need of enabling multiple parties to transact
transparently and with trust with each other
Removes intermediaries when a group of members needs to
transact. So it makes business processes more efficient
Ownership
Addresses Need
Key Benefit
@ t h e b e e b s
M a r t i n B e e b y
Next steps
• Learn more about our services and sign up for our preview today!
Amazon Managed Blockchain landing page: https://aws.amazon.com/managed-
blockchain
• How to deploy an app with Amazon Managed Blockchain :
https://aws.amazon.com/blogs/database/tag/amazon-managed-blockchain/
• Amazon QLDB landing page: https://aws.amazon.com/qldb
@ t h e b e e b s
M a r t i n B e e b y
Thank you!
@ t h e b e e b s
Martin Beeby
@thebeebs

More Related Content

Similar to A Developer Primer on Blockchain

BlockChain for the Banker
BlockChain for the BankerBlockChain for the Banker
BlockChain for the BankerBohdan Szymanik
 
Blockchain webinar 101 | Parkar Consulting & Labs
Blockchain webinar 101 | Parkar Consulting & LabsBlockchain webinar 101 | Parkar Consulting & Labs
Blockchain webinar 101 | Parkar Consulting & Labs►Ritesh Bhanushali
 
Introduction to Bitcoin & Blockchain @ darefest16
Introduction to Bitcoin & Blockchain @ darefest16Introduction to Bitcoin & Blockchain @ darefest16
Introduction to Bitcoin & Blockchain @ darefest16Sam Wouters
 
A beginners Guide to NFTs.pdf
A beginners Guide to NFTs.pdfA beginners Guide to NFTs.pdf
A beginners Guide to NFTs.pdfAkash Agrawal
 
Down the Rabbit Hole - Dhruv Bansal, Refactor Camp 2018
Down the Rabbit Hole - Dhruv Bansal,  Refactor Camp 2018Down the Rabbit Hole - Dhruv Bansal,  Refactor Camp 2018
Down the Rabbit Hole - Dhruv Bansal, Refactor Camp 2018refactorcamp
 
Bitcoin & Blockchain for Friends
Bitcoin & Blockchain for FriendsBitcoin & Blockchain for Friends
Bitcoin & Blockchain for FriendsSam Wouters
 
Understand Bitcoin in 5 minutes
Understand Bitcoin in 5 minutesUnderstand Bitcoin in 5 minutes
Understand Bitcoin in 5 minutesPatrick Bucquet
 
BlockChain BreakDown
BlockChain BreakDownBlockChain BreakDown
BlockChain BreakDownChris Black
 
CBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerCBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerBlockstrap.com
 
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014Alyse Killeen
 
CubeIT Bitcoin lecture
CubeIT Bitcoin lectureCubeIT Bitcoin lecture
CubeIT Bitcoin lectureMark Russell
 
State of Ethereum: uk parliament host blockchain roadshow copy
State of Ethereum: uk parliament host blockchain roadshow copyState of Ethereum: uk parliament host blockchain roadshow copy
State of Ethereum: uk parliament host blockchain roadshow copyBen Wilson
 
An Investigator’s Guide to Blockchain, Bitcoin and Wallet Transactions
An Investigator’s Guide to Blockchain, Bitcoin and Wallet TransactionsAn Investigator’s Guide to Blockchain, Bitcoin and Wallet Transactions
An Investigator’s Guide to Blockchain, Bitcoin and Wallet TransactionsCase IQ
 
Crypto currency secrets
Crypto currency secretsCrypto currency secrets
Crypto currency secretsSahir
 
Blockchain Introduction - Canada Nov 2017.pptx
Blockchain Introduction - Canada Nov 2017.pptxBlockchain Introduction - Canada Nov 2017.pptx
Blockchain Introduction - Canada Nov 2017.pptxAntony Welfare
 
What is Blockchain – a primer for market researchers
What is Blockchain – a primer for market researchersWhat is Blockchain – a primer for market researchers
What is Blockchain – a primer for market researchersRay Poynter
 
A Pharo story on blockchain technology
A Pharo story on blockchain technologyA Pharo story on blockchain technology
A Pharo story on blockchain technologyESUG
 

Similar to A Developer Primer on Blockchain (20)

BlockChain for the Banker
BlockChain for the BankerBlockChain for the Banker
BlockChain for the Banker
 
Blockchain webinar 101 | Parkar Consulting & Labs
Blockchain webinar 101 | Parkar Consulting & LabsBlockchain webinar 101 | Parkar Consulting & Labs
Blockchain webinar 101 | Parkar Consulting & Labs
 
Cryptocurrency
CryptocurrencyCryptocurrency
Cryptocurrency
 
Blockchain v Cryptocurrency: Talk for BridgeSF
Blockchain v Cryptocurrency: Talk for BridgeSF Blockchain v Cryptocurrency: Talk for BridgeSF
Blockchain v Cryptocurrency: Talk for BridgeSF
 
Introduction to Bitcoin & Blockchain @ darefest16
Introduction to Bitcoin & Blockchain @ darefest16Introduction to Bitcoin & Blockchain @ darefest16
Introduction to Bitcoin & Blockchain @ darefest16
 
A beginners Guide to NFTs.pdf
A beginners Guide to NFTs.pdfA beginners Guide to NFTs.pdf
A beginners Guide to NFTs.pdf
 
Down the Rabbit Hole - Dhruv Bansal, Refactor Camp 2018
Down the Rabbit Hole - Dhruv Bansal,  Refactor Camp 2018Down the Rabbit Hole - Dhruv Bansal,  Refactor Camp 2018
Down the Rabbit Hole - Dhruv Bansal, Refactor Camp 2018
 
Bitcoin & Blockchain for Friends
Bitcoin & Blockchain for FriendsBitcoin & Blockchain for Friends
Bitcoin & Blockchain for Friends
 
Understand Bitcoin in 5 minutes
Understand Bitcoin in 5 minutesUnderstand Bitcoin in 5 minutes
Understand Bitcoin in 5 minutes
 
BlockChain BreakDown
BlockChain BreakDownBlockChain BreakDown
BlockChain BreakDown
 
CBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primerCBGTBT - Part 1 - Workshop introduction & primer
CBGTBT - Part 1 - Workshop introduction & primer
 
Let’s Talk Crypto
Let’s Talk CryptoLet’s Talk Crypto
Let’s Talk Crypto
 
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014
Bitcoin and the Sharing Economy (Keynote) Coin Congress USA 7 2014
 
CubeIT Bitcoin lecture
CubeIT Bitcoin lectureCubeIT Bitcoin lecture
CubeIT Bitcoin lecture
 
State of Ethereum: uk parliament host blockchain roadshow copy
State of Ethereum: uk parliament host blockchain roadshow copyState of Ethereum: uk parliament host blockchain roadshow copy
State of Ethereum: uk parliament host blockchain roadshow copy
 
An Investigator’s Guide to Blockchain, Bitcoin and Wallet Transactions
An Investigator’s Guide to Blockchain, Bitcoin and Wallet TransactionsAn Investigator’s Guide to Blockchain, Bitcoin and Wallet Transactions
An Investigator’s Guide to Blockchain, Bitcoin and Wallet Transactions
 
Crypto currency secrets
Crypto currency secretsCrypto currency secrets
Crypto currency secrets
 
Blockchain Introduction - Canada Nov 2017.pptx
Blockchain Introduction - Canada Nov 2017.pptxBlockchain Introduction - Canada Nov 2017.pptx
Blockchain Introduction - Canada Nov 2017.pptx
 
What is Blockchain – a primer for market researchers
What is Blockchain – a primer for market researchersWhat is Blockchain – a primer for market researchers
What is Blockchain – a primer for market researchers
 
A Pharo story on blockchain technology
A Pharo story on blockchain technologyA Pharo story on blockchain technology
A Pharo story on blockchain technology
 

More from thebeebs

Blockchain Explain
Blockchain ExplainBlockchain Explain
Blockchain Explainthebeebs
 
HItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptHItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptthebeebs
 
HTML5 and Human Interaction
HTML5 and Human InteractionHTML5 and Human Interaction
HTML5 and Human Interactionthebeebs
 
Building apps why you should bet on the web
Building apps why you should bet on the webBuilding apps why you should bet on the web
Building apps why you should bet on the webthebeebs
 
The web as it should be
The web as it should beThe web as it should be
The web as it should bethebeebs
 
IE9 the story so far
IE9 the story so farIE9 the story so far
IE9 the story so farthebeebs
 
Using HTML5 and CSS3 today
Using HTML5 and CSS3 todayUsing HTML5 and CSS3 today
Using HTML5 and CSS3 todaythebeebs
 

More from thebeebs (7)

Blockchain Explain
Blockchain ExplainBlockchain Explain
Blockchain Explain
 
HItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptHItchhickers Guide to TypeScript
HItchhickers Guide to TypeScript
 
HTML5 and Human Interaction
HTML5 and Human InteractionHTML5 and Human Interaction
HTML5 and Human Interaction
 
Building apps why you should bet on the web
Building apps why you should bet on the webBuilding apps why you should bet on the web
Building apps why you should bet on the web
 
The web as it should be
The web as it should beThe web as it should be
The web as it should be
 
IE9 the story so far
IE9 the story so farIE9 the story so far
IE9 the story so far
 
Using HTML5 and CSS3 today
Using HTML5 and CSS3 todayUsing HTML5 and CSS3 today
Using HTML5 and CSS3 today
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

A Developer Primer on Blockchain

  • 1. @ t h e b e e b s A Developer Primer on Blockchain Martin Beeby Principle Evangelist AWS
  • 2. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s A software developer since I was 16 Developer for 20 years Work at Amazon Web Services MARTIN BEEBY @THEBEEBS
  • 3. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s THREE PEOPLE
  • 4. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s ALL WORK IN AN OFFICE
  • 5. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s NUSRET THE BAKER
  • 6. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s THEY BUY
  • 7. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s TERESA BUYS
  • 8. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s DONALD BUYS
  • 9. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s TERESA SELLS
  • 10. @ t h e b e e b s M a r t i n B e e b y TERESANUSRET DONALD @ t h e b e e b s NUSRET ALSO BUYS
  • 11. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Handsome Smart Remote Worker NEW PERSON JOINS THE TEAM
  • 12. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s MARTIN
  • 13. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Transferring Money between them is now harder Easy to lose track of who owes what Lets build a database MONEY IS A PAIN
  • 14. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Martin Controls it Each cake sale is a transaction The seller tells martin about the transaction. He records it CREATE A DATABASE
  • 15. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET TRANSACTIONS
  • 16. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Trust Required (Fraud) Transparency Central Control WHAT’S THE PROBLEM?
  • 17. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Most Business run this way Big Databases are not a problem If there is Trust
  • 18. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s MARTIN HAS A CAKE PROBLEM
  • 19. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET DATABASE FOR EVERYONE
  • 20. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Hard to keep in sync Hard to agree Hard to reach consensus PEOPLE COULD STILL DEFRAUD
  • 21. @ t h e b e e b s
  • 22. @ t h e b e e b s M a r t i n B e e b y Blockchain builds trust in a network Eliminates the need for central authority in business networks Three main components: distributed ledger, consensus mechanism, and “smart contract” execution environment
  • 23. @ t h e b e e b s M a r t i n B e e b y Customers are experimenting in many industries Proof of Ownership Digital Security Trading Documents/Contracts Enterprise Platforms Financial Insurance Mortgage Loans Voting Mechanisms Patient Records Corporate Governance HCLS Real Estate Legal Agriculture Gaming M & E Transportation Digital Advertising Power/Utilities Retail Capital Markets Cloud OWNERSHIPPRIVATE MARKETS DERIVATIVES WAGERS GLOBAL PAYMENTS REMITTANCE NOTARISATION EQUITY MICROFINANCE INTELLECTUAL PROPERTY TITLE RECORD ESCROW DIGITAL RIGHTS E-COMMERCE DEBT CROWDFUNDING P2P LENDING HEALTHCARE VOTING TRUSTEES SMART CONTRACTS DIGITAL CURRENCY SECURITIES RECORD KEEPING BLOCKCHAIN TECHNOLOGY
  • 24. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET PUBLIC AND PRIVATES OR CERTIFICATE Private Key Private Key Private Key Private Key Address 1 Address 2 Address 3 Address 6 Address 5
  • 25. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s TRANSACTIONS Sender Amount Receiver Signed Address 1 5 Address 2 110101010 Address 2 4 Address 3 010101010 Address 3 3 Address 1 010011010
  • 26. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Listen for transactions and validates them Order transactions into a block Creates and hashes blocks PEERS LISTEN FOR TRANSACTIONS Sender Receiver Signed Address 1 5 Address 2 110101010 Address 2 4 Address 3 010101010 Address 3 3 Address 1 010011010
  • 27. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s HASHING SHA256 446F09C5D7DB665A 851077054EBC7067 56E372A32C8753F0 428B6671CA6CE449 In west Philidelphia born and raised on the play ground was where I spent most of my days. Chilling 223E8E360399E82A C97B37A73FA1F532 071F03D8A174FA56 6D44F1770CC37D9A Istanbul
  • 28. @ t h e b e e b s M a r t i n B e e b y Suggest blocks to the network Other validating peers will verify the block. But how can they trust the new block? How do they reach consensus?
  • 29. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Solve a complex problem involving the hashing of the block Would be very expensive to try and present incorrect blocks Miners on bitcoin spend huge sums of money on electric PROOF OF WORK Jargon: A Consensus Algorithm
  • 30. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Proof of Stake Proof of Elapsed Time Byzantine fault tolerant OTHER CONSENSUS ALGORITHM
  • 31. @ t h e b e e b s M a r t i n B e e b y 80801 72456 80801 98994 A series of blocks that are hashed And linked by the hash of the previous block 80801 72456 34623
  • 32. @ t h e b e e b s M a r t i n B e e b y DONALD MARTIN @ t h e b e e b s TERESANUSRET OTHER PEERS VERIFY
  • 33. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s PEERS THEN BUILD ANOTHER
  • 34. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s A list of transactions grouped into blocks Blocks chained together by knowing the previous hash Nothing can be easily altered, the slightest modification would be obvious A BLOCKCHAIN IS Jargon: Merkle Tree 80801 72456 80801 72456 34623
  • 35. @ t h e b e e b s M a r t i n B e e b y What Can A Developer Do? Smart Contracts (chaincode) and Build Distributed apps
  • 36. @ t h e b e e b s M a r t i n B e e b y Public and permissioned networks Public networks allow anyone to participate in the network. Members are incentivized to maintain the network Permissioned networks limit the members to known entities
  • 37. @ t h e b e e b s
  • 38. Network 1 – Managed Blockchain VPC endpoint VPC endpoint Account A Account B
  • 39. @ t h e b e e b s M a r t i n B e e b y Chaincode basics Code executed on the network, and can query and update ledger Fabric supports chaincode in three languages: Chaincode execute within a docker container on peer nodes Chaincode has two operations in its interface: • Init()—initializes the chaincode with parameters • Invoke()—invokes the chaincode with parameters
  • 40. @ t h e b e e b s M a r t i n B e e b y Peer nodes Ordering service blob3 blckNo tx1 tx2 Block forming blob1 Verify endorsement, readset If OK then apply writeset Else invalid transaction (blob) Genesis block Submitting client Peer Validated Ledger (VL)PeerLedger PeerLedger Validated Ledger blockblock seqNo=blckNo 3 4 seqNo blob1 blob2 Orders • Stores a copy of the ledger database • Executes chaincode and endorses transactions • Validates transactions before the final commit to ledger
  • 41. @ t h e b e e b s M a r t i n B e e b y Endorsement policies Endorsement policies allow chaincode to specify which members (or how many) need to validate a transaction before submitting Endorsed transactions then get submitted to the ordering service and assembled into blocks Member 1 client Hyperledger Fabric ordering service Ledger LedgerMember 2 Peer Member 1 Peer 1 3 2 1 3
  • 42. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s From Sea to Table Lots of Fraud Could benefit from Transparency THE TUNA SUPPLY CHAIN
  • 43. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Sarah is the fisherman who sustainably and legally catches tuna. Regulators verify that the tuna has been legally/sustainably caught. Miriam is a restaurant owner who wants legal/sustainable tuna TUNA SUPPLY CHAIN Carl is another restaurant owner fisherman Sarah can sell tuna to.
  • 44. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s Sarah sells at different prices Privacy around deals Carl shouldn’t see Miriams price DEALS NEED TO BE PRIVATE
  • 45. @ t h e b e e b s M a r t i n B e e b y
  • 46. @ t h e b e e b s M a r t i n B e e b y Channels for access control Channels allow isolation of transactions among specific members in the network Create or update a channel with configuration transaction (configtx) Member 1 Member 2 Member 3 Channel 2 Ledger Channel 1 Ledger Hyperledger Fabric ordering service Channel 2Channel 1 Member 2 Peer Member 3 Peer Member 1 Peer
  • 47. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CHAINCODE package main import ( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric/protos/peer" )
  • 48. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s TUNA STRUCT type Tuna struct { Vessel string ‘json:"vessel"’ Datetime string ‘json:"datetime"’ Location string ‘json:"location"’ Holder string ‘json:"holder"’ }
  • 49. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s INIT func (s *SmartContract) initLedger(APIstub shim.ChaincodeStubInterface) sc.Response { tuna := []Tuna{ Tuna{Vessel: "923F", Location: "67.0006, -70.5476", Timestamp: "1504054225", Holder: "Miriam"}, Tuna{Vessel: "M83T", Location: "91.2395, -49.4594", Timestamp: "1504057825", Holder: "Dave"}, Tuna{Vessel: "T012", Location: "58.0148, 59.01391", Timestamp: "1493517025", Holder: "Igor"}, Tuna{Vessel: "P490", Location: "-45.0945, 0.7949", Timestamp: "1496105425", Holder: "Amalea"}, Tuna{Vessel: "S439", Location: "-107.6043, 19.5003", Timestamp: "1493512301", Holder: "Rafa"}, Tuna{Vessel: "J205", Location: "-155.2304, -15.8723", Timestamp: "1494117101", Holder: "Shen"}, Tuna{Vessel: "S22L", Location: "103.8842, 22.1277", Timestamp: "1496104301", Holder: "Leila"}, Tuna{Vessel: "EI89", Location: "-132.3207, -34.0983", Timestamp: "1485066691", Holder: "Yuan"}, Tuna{Vessel: "129R", Location: "153.0054, 12.6429", Timestamp: "1485153091", Holder: "Carlo"}, Tuna{Vessel: "49W4", Location: "51.9435, 8.2735", Timestamp: "1487745091", Holder: "Fatima"}, } i := 0 for i < len(tuna) { fmt.Println("i is ", i) tunaAsBytes, _ := json.Marshal(tuna[i]) APIstub.PutState(strconv.Itoa(i+1), tunaAsBytes) fmt.Println("Added", tuna[i]) i = i + 1 } return shim.Success(nil) }
  • 50. @ t h e b e e b s M a r t i n B e e b y
  • 51. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s INVOKE func (s *SmartContract) Invoke(APIstub shim.ChaincodeStubInterface) sc.Response { // Retrieve the requested Smart Contract function and arguments function, args := APIstub.GetFunctionAndParameters() // Route to the appropriate handler function to interact with the ledger appropriately if function == "queryTuna" { return s.queryTuna(APIstub, args) } else if function == "initLedger" { return s.initLedger(APIstub) } else if function == "recordTuna" { return s.recordTuna(APIstub, args) } else if function == "queryAllTuna" { return s.queryAllTuna(APIstub) } else if function == "changeTunaHolder" { return s.changeTunaHolder(APIstub, args) } return shim.Error("Invalid Smart Contract function name.") }
  • 52. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s QUERYTUNA func (s *SmartContract) queryTuna(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 1 { return shim.Error("Incorrect number of arguments. Expecting 1") } tunaAsBytes, _ := APIstub.GetState(args[0]) if tunaAsBytes == nil { return shim.Error(“Could not locate tuna”) } return shim.Success(tunaAsBytes) }
  • 53. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s RECORDTUNA func (s *SmartContract) recordTuna(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 5 { return shim.Error("Incorrect number of arguments. Expecting 5") } var tuna = Tuna{ Vessel: args[1], Location: args[2], Timestamp: args[3], Holder: args[4]} tunaAsBytes, _ := json.Marshal(tuna) err := APIstub.PutState(args[0], tunaAsBytes) if err != nil { return shim.Error(fmt.Sprintf("Failed to record tuna catch: %s", args[0])) } return shim.Success(nil) }
  • 54. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CHANGETUNAHOLDER func (s *SmartContract) changeTunaHolder(APIstub shim.ChaincodeStubInterface, args []string) sc.Response { if len(args) != 2 { return shim.Error("Incorrect number of arguments. Expecting 2") } tunaAsBytes, _ := APIstub.GetState(args[0]) if tunaAsBytes != nil { return shim.Error("Could not locate tuna") } tuna := Tuna{} json.Unmarshal(tunaAsBytes, &tuna) // Normally check that the specified argument is a valid holder of tuna but here we are skipping this check for this example. tuna.Holder = args[1] tunaAsBytes, _ = json.Marshal(tuna) err := APIstub.PutState(args[0], tunaAsBytes) if err != nil { return shim.Error(fmt.Sprintf("Failed to change tuna holder: %s", args[0])) } return shim.Success(nil) }
  • 55. @ t h e b e e b s Install Chain Code from the CLI peer chaincode install –n tunachaincode –-v v0 -p src/chaincode_tuna/go
  • 56. @ t h e b e e b s Check Installed Chain Code from the CLI peer chaincode list --instantiated -o $ORDERER -C mychannel --cafile /opt/home/managedblockchain-tls-chain.pem –tls Name: tunachaincode Version: v0 Path: src/chaincode_tuna/go
  • 57. @ t h e b e e b s Invoke peer chaincode invoke -C mychannel -n tunachaincode -c '{"Args":["invoke",”queryTuna"]}' -o $ORDERER --cafile /opt/home/managedblockchain- tls-chain.pem --tls
  • 58. @ t h e b e e b s M a r t i n B e e b y
  • 59. @ t h e b e e b s M a r t i n B e e b y
  • 60. @ t h e b e e b s M a r t i n B e e b y @ t h e b e e b s CALLING SOME CODE // changeTunaHolder - requires 2 argument var request = { chaincodeId:’ tunachaincode’, fcn: 'changeTunaHolder', args: ['1', 'Alex'], chainId: 'mychannel', txId: tx_id }; return channel.sendTransactionProposal(request);
  • 61. @ t h e b e e b s
  • 62. @ t h e b e e b s M a r t i n B e e b y Need for a ledger with centralized trust DMV Track vehicle title history Manufacturers Track distribution of a recalled product HR & Payroll Track changes to an individual’s profile Healthcare Verify and track hospital equipment inventory LEDGERS WITH CENTRALIZED TRUST1
  • 63. @ t h e b e e b s M a r t i n B e e b y Need for running transactions with decentralized trust 2 Financial institutions Peer-to-peer payments Mortgage lenders Process syndicated loans Supply Chain Transact with suppliers and distributers Retail Streamline customer rewards TRANSACTIONS WITH DECENTRALIZED TRUST
  • 64. @ t h e b e e b s M a r t i n B e e b y Blockchain services at AWS Amazon Quantum Ledger Database (QLDB) Amazon Managed Blockchain
  • 65. @ t h e b e e b s Amazon Quantum Ledger Database (QLDB) Fully managed ledger database with a central trusted authority
  • 66. @ t h e b e e b s M a r t i n B e e b y Challenges customers face Building Ledgers with traditional databases Difficult to manage and scale Impossible to verify Error prone and incomplete Resource intensive Blockchain approaches Designed for a different purpose Adds unnecessary complexity
  • 67. @ t h e b e e b s M a r t i n B e e b y Amazon Quantum Ledger Database (QLDB) (Preview) Fully managed ledger database Track and verify history of all changes made to your application’s data Maintains a sequenced record of all changes to your data, which cannot be deleted or modified; you have the ability to query and analyze the full history Immutable Uses cryptography to generate a secure output file of your data’s history Cryptographically verifiable Easy to use, letting you use familiar database capabilities like SQL APIs for querying the data Easy to useHighly scalable Executes 2–3X as many transactions as ledgers in common blockchain frameworks
  • 68. @ t h e b e e b s M a r t i n B e e b y Blockchain components: Distributed Ledger database The journal records an immutable log of all transactions and is maintained by nodes in the blockchain network Block 61 Block hash: 000044bf2efe32 Previous block hash: 000087ea2ffe94 Timestamp Transaction Transaction Block 61 Block hash: 000087ea2ffe94 Previous block hash: 000057ec2fda71 Timestamp Transaction Transaction Block 61 Block hash: 000057ec2fda71 Previous block hash: 0000d68b2f0a3b Timestamp Transaction Transaction
  • 69. @ t h e b e e b s M a r t i n B e e b y What is immutability? 1 Tracy buys a car on Aug 3, 2013 2 Tracy sells car to Ronnie on Sept 10, 2014 DMV QLDB database will add Ronnie’s record Journal Current stateDMV scenario 3 Ronnie’s car gets in an accident and gets totaled DMV QLDB Database adds new row, called “delete” DELETE DATE: 09/02/2016 ID Manufacturer Model Year VIN Owner 1 Tesla Model S 2012 123456789 Traci Russell ID Manufacturer Model Year VIN Owner 1 Tesla Model S 2012 123456789 Ronnie Nash ID Manufacturer Model Year VIN Owner Built from ground-up in such a way that Journal cannot be modified or altered Entire change history is easily accessible DMV QLDB database will add Traci’s record
  • 70. @ t h e b e e b s M a r t i n B e e b y “Healthdirect Australia operates in a heavily regulated industry, and it is critical that our compliance data is correct and auditable. With Amazon QLDB we look forward to having a complete and verifiable history of every change in our system, making it simple to audit when and how we arrived at our current state. Regulatory compliance is fact of life for healthcare companies, and Amazon QLDB enables us to easily track the controls we have in place and understand how they have changed over time.” —Bruce Haefele General Manager, Technology, Healthdirect Australia
  • 71. @ t h e b e e b s Amazon Managed Blockchain Fully managed blockchain service, supporting both Hyperledger Fabric and Ethereum frameworks
  • 72. @ t h e b e e b s M a r t i n B e e b y Challenges with existing blockchain solutions Complicated to manage Setup is hard Hard to scale Expensive
  • 73. @ t h e b e e b s M a r t i n B e e b y Amazon Managed Blockchain Easily create and manage scalable blockchain networks Quickly create blockchain networks that span multiple AWS accounts. Easily add or remove members and monitor the network Fully managed Choice of Hyperledger Fabric or Ethereum Improves reliabilityScalable and secure Easily scale your blockchain network as the usage grows. Also, Managed Blockchain secures your network certificates with KMS Choose the right framework for your needs, whether you are building a permissioned or public network Managed Blockchain improves the reliability of the “ordering service,” by replacing the default technology with QLDB. This improves durability
  • 74. @ t h e b e e b s M a r t i n B e e b y Hyperledger Fabric and Ethereum benefits Useful for a finite set of known users Well-suited for applications that require stringent privacy and permission controls with a known set of members For example, a financial application where certain trade-related data is only shared with select banks and other members in the network don’t have access to the data Hyperledger Fabric Useful for an infinite number of unknown users Well suited for highly distributed blockchain networks where transparency of data for all members is important For example, a digital identity network comprising of farmers and government organization, where an infinite number of farmers can join the network and information regarding their land, crop yields, etc., is shared across all members on the blockchain Ethereum
  • 75. @ t h e b e e b s M a r t i n B e e b y How Amazon Managed Blockchain works Amazon Managed Blockchain Create a network Choose an open source blockchain framework, set up a new blockchain network and your membership in your AWS account with just a few clicks Invite members Invite other AWS accounts to join the network Add nodes Create and configure blockchain peer nodes that store a copy of the distributed ledger Deploy applications Create and deploy decentralized applications to your network through your per nodes. Transact with other members on the network
  • 76. @ t h e b e e b s M a r t i n B e e b y “Given our vast partner ecosystem, we are exploring the decentralization and immutable tracking benefits of blockchain for potential applications in our insurance business. We believe blockchain can improve the transparency and efficiency for stakeholders in these networks to transact, while still maintaining an independently verifiable lineage of activities. However, blockchain frameworks are complex and difficult to operate. With Amazon Managed Blockchain, we can now easily create Hyperledger Fabric blockchain networks to test and learn without worrying about managing the underlying infrastructure, networking, and software configuration.” —Daniel Johnson CTO and Head of Innovation, Guardian Life Insurance Company
  • 77. @ t h e b e e b s M a r t i n B e e b y Summary: helping customers identify the right AWS blockchain service Owned by a single, trusted authority Addresses core need of a immutable and verifiable transactional log It’s a database, so its fast, as it doesn’t require consent from members Amazon QLDB Amazon Managed Blockchain No single owner of the ledger. Joint ownership by multiple parties Addresses core need of enabling multiple parties to transact transparently and with trust with each other Removes intermediaries when a group of members needs to transact. So it makes business processes more efficient Ownership Addresses Need Key Benefit
  • 78. @ t h e b e e b s M a r t i n B e e b y Next steps • Learn more about our services and sign up for our preview today! Amazon Managed Blockchain landing page: https://aws.amazon.com/managed- blockchain • How to deploy an app with Amazon Managed Blockchain : https://aws.amazon.com/blogs/database/tag/amazon-managed-blockchain/ • Amazon QLDB landing page: https://aws.amazon.com/qldb
  • 79. @ t h e b e e b s M a r t i n B e e b y Thank you! @ t h e b e e b s Martin Beeby @thebeebs