Skip to content

Instantly share code, notes, and snippets.

@jki127
Last active December 12, 2018 19:18
Show Gist options
  • Save jki127/9b2d571c04ef5f91601ed12e64b4748d to your computer and use it in GitHub Desktop.
Save jki127/9b2d571c04ef5f91601ed12e64b4748d to your computer and use it in GitHub Desktop.

Blockchain - DistSys Lecture - Dec 6th, 2018

m = number of traitors n = number of nodes

n > 3m

Message Signing

Public Key & Private Key

encode(privatekey, message) -> ciphertext decode(publickey, cipherkey) -> v

send original message + signature(encrypted hash of message)

RSA Algorithm

Signed Messaging Algorithm

Decentralized Replicated Nodes

  • No one point of failure

Blockchain

  • A block is a set of transactions that happended during a window of time
  • Every node has the history of every transaction that has ever happened in the blockchain
  • Since this is a decentralized network, a malicious node can create malicious transactions — ex: transferring money that you don’t have haved
    • If a traitorous transcaction is sent out, honest nodes will ignore it
    • Honest nodes only accept valid transactions
  • We want to artificially slow down the addition of blocks to the chain
    • Adding a block to the chain requires solving a mathematical problem that requires some computational power
    • This slows down the addition of blocks
    • At any time there are multiple nodes trying to solve the same problem to add a node

Math Problem

uninversible hash function hash(block + nonce) = 00000…..

51% Attack

What if we have supercomputers that can solve math problems faster that the loyal nodes?

  • If you own more than 50% of the computing power in the blockchain network, then you can start inputting malicious blocks into the chain

#dist-sys-f18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment