Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ITT 2019 - Martin Beeby - A Developer Primer on Blockchain

ITT 2019 - Martin Beeby - A Developer Primer on Blockchain

Come find out how developers can use Blockchain to build software. Understand through code how to create “smart contracts” and "chain code" and develop a different type of application that establishes trust, accountability and transparency, while streamlining business processes.

Istanbul Tech Talks

April 02, 2019
Tweet

More Decks by Istanbul Tech Talks

Other Decks in Technology

Transcript

  1. @ t h e b e e b s
    A Developer Primer on Blockchain
    Martin Beeby
    Principle Evangelist AWS

    View Slide

  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

    View Slide

  3. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    THREE PEOPLE

    View Slide

  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

    View Slide

  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

    View Slide

  6. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    THEY BUY

    View Slide

  7. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    TERESA BUYS

    View Slide

  8. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    DONALD BUYS

    View Slide

  9. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    TERESA SELLS

    View Slide

  10. @ t h e b e e b s
    M a r t i n B e e b y
    TERESA
    NUSRET DONALD
    @ t h e b e e b s
    NUSRET ALSO BUYS

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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
    TERESA
    NUSRET
    TRANSACTIONS

    View Slide

  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?

    View Slide

  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

    View Slide

  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

    View Slide

  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
    TERESA
    NUSRET
    DATABASE FOR EVERYONE

    View Slide

  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

    View Slide

  21. @ t h e b e e b s

    View Slide

  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

    View Slide

  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
    OWNERSHIP
    PRIVATE 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

    View Slide

  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
    TERESA
    NUSRET
    PUBLIC AND PRIVATES OR CERTIFICATE
    Private Key Private Key Private Key Private Key
    Address 1 Address 2 Address 3
    Address 6
    Address 5

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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?

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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
    TERESA
    NUSRET
    OTHER PEERS VERIFY

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  37. @ t h e b e e b s

    View Slide

  38. Network 1 – Managed Blockchain
    VPC endpoint
    VPC endpoint
    Account A
    Account B

    View Slide

  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

    View Slide

  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
    block
    block 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

    View Slide

  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 Ledger
    Member 2
    Peer
    Member 1
    Peer
    1
    3 2
    1
    3

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  45. @ t h e b e e b s
    M a r t i n B e e b y

    View Slide

  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 2
    Channel 1
    Member 2
    Peer
    Member 3
    Peer
    Member 1
    Peer

    View Slide

  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"
    )

    View Slide

  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"’
    }

    View Slide

  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)
    }

    View Slide

  50. @ t h e b e e b s
    M a r t i n B e e b y

    View Slide

  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.")
    }

    View Slide

  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)
    }

    View Slide

  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)
    }

    View Slide

  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)
    }

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  58. @ t h e b e e b s
    M a r t i n B e e b y

    View Slide

  59. @ t h e b e e b s
    M a r t i n B e e b y

    View Slide

  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);

    View Slide

  61. @ t h e b e e b s

    View Slide

  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 TRUST
    1

    View Slide

  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

    View Slide

  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

    View Slide

  65. @ t h e b e e b s
    Amazon Quantum
    Ledger Database (QLDB)
    Fully managed ledger database with a
    central trusted authority

    View Slide

  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

    View Slide

  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 use
    Highly scalable
    Executes 2–3X as
    many transactions as
    ledgers in common
    blockchain frameworks

    View Slide

  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

    View Slide

  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 state
    DMV 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

    View Slide

  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

    View Slide

  71. @ t h e b e e b s
    Amazon
    Managed Blockchain
    Fully managed blockchain service, supporting both
    Hyperledger Fabric and Ethereum frameworks

    View Slide

  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

    View Slide

  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 reliability
    Scalable 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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide