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:
- Dowolna osoba mogła go odczytać
- Nie było centralnego serwera, któremu trzeba ufać.
- Po otrzymaniu danych chcemy móc zweryfikować ich poprawność
- 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