Wrocław Blockchain Meetup

#19 Meetup, 20 May 2019

Agenda

  • 18:15 - [PL] Introduction (for the first-timers)
  • 19:10 - Talk(s)
  • 21:00 - Networking and drinks
  • 21:30 - After Party

Talks

  • The Evolution to CBC Casper
    Kent Shikama (RChain)
  • What should developer and PM know before starting blockchain project
    Agnieszka Hołownia-Niedzielska i Mateusz Kuś (ProtectAuth)
  • Skype with Jon Hearty
    Jon Hearty (Origin Protocol)

Lightning Talks

(up to 5 minutes, no prep required)

None yet, just let me know during the break.

Call for talks

Let us know if you want to be a speaker next time.

 

Also suggest who we should invite.

#BUIDL

Discount 10%: "meetup-wroclaw-10"

#BIZ

Czym jest Blockchain?

  • Rozproszona struktura danych - organizująca "transakcję"/zdarzenia - rejestr
  • Algorytm Konsensusu - aby zdecydować kto może tę strukturę modyfikować
  • Trochę kryptografi - żeby to było bezpieczne/odporne na modyfikacje (tamperproof)
  • Zachęty (Incentives) - żeby mogło działać bez nadzoru i zaufania

Problem

Zakodować aktualny stan świata* w taki sposób:

  1. Dowolna osoba mogła go odczytać
  2. Nie było centralnego serwera, któremu trzeba ufać.
  3. Po otrzymaniu danych chcemy móc zweryfikować ich poprawność
  4. Aktualizacja ma być "szybka" i niecenzorowalna

Lista zmian

Lista zmian

Lista zmian

Metadane/ poprzedni stan

Metadane/ poprzedni stan

Metadane/ poprzedni stan

Genesis State

Blockchain

Niemutowalna struktura danych zawierająca wszystkie zmiany który zostały zaplikowane do danego punktu w czasie

Aktualny

"stan świata"

Blockchain

Komputer 1

Komputer 2

Komputer 3

Przykład

Stan:
Kto ile ma (arkusz Excel)
 

Transakcja:
Przelew z A do B

Blockchain

Hashes - prevent tampering (e.g. KECCAK256)

Signatures - authorize the actions (e.g. ECDSA)

Parent = hash(B0)
Timestamp = 150..000
Number = 1
Hash = hash(B1)
transfer(A, B, 5)
sig(A)
transfer(C, B, 1)
sig(C)
Parent = hash(B1)
Timestamp = 150..000
Number = 2
Hash = hash(B2)
transfer(B, A, 5)
sig(B)

Jak to działa?

(Boot) Node 1

Node 2

New Node

Hey! Could you give me all your peers?

Jak to działa?

(Boot) Node 1

Node 2

New Node

Hey! Send me all them blocks, will ya?

Block 5

Block 4

Block 0

Jak to działa?

(Boot) Node 1

Node 2

New Node

Hey! I've got a transaction to include in block.

Block 5

Block 5

Block 5

transfer(N, B, 5)
sig(N)

Kto tworzy nowe bloki?

I dlaczego?

Musimy to ustalić przed startem sieci.

Może warto te osoby wynagrodzić?
(zachęty = incentives)

Algorytm Konsensusu

Kto może tworzyć nowe bloki?

sig(Authority1)
hash(B0)
hash(B1)
sig(Authority2)
hash(B2)
sig(Authority1)

Proof of Authority

Akceptujemy bloki tylko podpisane przez pre-definiowaną listę adresów.

Bloki muszą być podpisywane na przemian, maksymalnie jeden blok na 3 s.

Algorytm Konsensusu

Kto może tworzyć nowe bloki?

Difficulty=2
Sol.=0b001..
SolvedBy=A
hash(B0)
hash(B1)
hash(B2)

Proof of Work

Akceptujemy tylko bloki, które zawierają rozwiązanie matematycznej zagadki.

Trudność zagadki dopasowuje się do szybkości rozwiązań, tak żeby mieć stabilny czas bloku.

Difficulty=4
Sol.=0b00001..
SolvedBy=B
Difficulty=3
Sol.=0b0001..
SolvedBy=A

Jak to działa?

(Boot) Node 1

Node 2

New Node

Block 5

Block 5

Block 5

transfer(N, B, 5)
sig(N)
transfer(N, B, 5)
sig(N)

Cool, I'm mining and will include the tx for a small fee.

Jak to działa?

(Boot) Node 1

Node 2

New Node

Block 6

Block 5

Block 5

transfer(N, B, 5)
sig(N)
transfer(N, B, 5)
sig(N)
Block 6

Managed to mine new block, here it is guys!

Jak to działa?

(Boot) Node 1

Node 2

New Node

Block 6

Block 6

Block 6

Łańcuch kanoniczny

Co jeżeli powstaną dwa bloki z tym samym hashem rodzica?
Który powinienem wybrać?

Block 1

Block 2

Block 3

Block 3

"Fork"

Łańcuch kanoniczny

Wybieramy "najdłuższy" łańcuch.

Ethereum wybiera łańcuch z największą trudnością.

Block 1

Block 2

Block 3

Block 3

Block 4

Do zapamiętania: najnowszy stan może się zmieniać, to co widzisz może zostać odwrócone - czekaj na potwierdzenia

Czym jest Bitcoin?

Bitcoin to pierwszy publiczny Blockchain.

Block Time 10 minutes
Consensus Proof of Work - hashcash
State Account Balances of BTC / UTXO*
Transactions Value Transfers*
Launched 2009
Block Reward 12BTC (halving) ~ 21M total coins

Czym jest Ethereum?

Ethereum to "The World Computer"

Block Time 14 seconds
Consensus Proof of Work - ethash*
State Arbitrary
Transactions Turing-complete / programmable
Launched 2015
Block Reward 2ETH (+uncles) ~ Unlimited coins

Pytania?

Blockchain pozwala na transakcje pomiędzy wieloma stronami, które nie muszą sobie ufać.

Lista innych ważnych pojęć

  • Genesis Block
  • Blockchain
  • Protocol
  • Consensus
  • Incentives
  • Miner
  • Hashing Power
  • Hard/Soft Fork
  • Canonical Chain
  • Chain re-org
  • Decentralization
  • Distributed Ledger
  • Bitcoin
  • UTXO
  • Ethereum / EVM
  • Smart Contracts
  • Altcoins
  • Tokens
  • Fiat currency

Wrocław Blokchain Meetup #19

By Tomasz Drwięga

Wrocław Blokchain Meetup #19

  • 408