blockchain - university of belgrade · microsoft powerpoint - 11 blockchain author: pv created...
TRANSCRIPT
Blockchain
(bitcoin tip)
Centralizovana i decentralizovana
provera transakcija
Decentralizovana provera transakcija
• Ne postoji jedan entitet koji je zadužen za održavanje i verifikaciju spiska transakcija
• Svi učesnici su zaduženi za održavanje spiska i zajedno ga čuvaju
• Mehanizam kojim se garantuje autentičnost i vrši provera transakcija održava više učesnika i zasniva se na kriptografskim algoritmima
• Blockchain je struktura podataka kojima se omogućava distribuirana provera transakcija
Struktura blockchaina
• Blockchain je linearna sekvenca blokova u kojima se nalaze podaci o transakcijama (događajima) koje su se desile u nekom vremenskom periodu
• Svaki blok ima jednog pretka i jednog naslednika
• Novi blok se dodaje na kraj blockchain niza – blockchain uvek raste
• Napadaču je računski teško da izvrši promenu sadržaja bilo kog bloka zbog postojanja kriptografskih mehanizama
Mehanizam funkcionisanja
• Korisnik ima svoj novčanik (wallet) u kojem ima neku svotu bitcoin-a
• Wallet ima adresu (oznaku korisnika – hash javnog ključa base58), log transakcija i par asimetričnih ključeva (za 256-bit EC DSA)
• Sve se čuva u wallet fajlu
• https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html
Transakcija
• Jednostavna transakcija prenosa 50 BTC
• Input – hash prethodne transakcije (ili više tx)
• Prenosi se iz outputa 0 50 BTC ka 0x4043...
• scriptSig – javni ključ i potpis onoga koji plaća
• Potpis (previous tx, Index, Value, scriptPubKey)
• scriptPubKey – identifikator onoga kome se plaća
Sadržaj bloka
Veza između blokova
• Magic Number: 0xD9B4BEF9
• Mining difficulty –težina hashcash problema
• Nonce se menja dok se ne dobije odgovarajući hash
• Ako je neparan broj transakcija poslednja transakcija se duplira kako bi se izračunali hash-evi Merkle stabla
„Rudarenje“ bitcoina – potvrda
transakcija
• Pronalaženje nonce vrednosti koja zadovoljava mining difficulty.
• Mining difficulty mora da se povećava sa rastom broja učesnika
• Primer – 30 vodećih 0 u hash-u– Hash 256 bita
– 230 pokušaja da se dobije odgovarajući hash
• Sigurnost:– Napadač želi da promeni neku transakciju i ubaci je u
blockchain. Treba da napravi takvu promenu koja daje isti hash.
– Collision resistance attack – zbog birthday paradoksa potrebno mu je 2128 pokušaja.
Drugi mehanizmi potvrde transakcija
(konsenzusa)
• Proof-of-work – Bitcoin
• Proof-of-stake – peercoin, nxt, blackcoin,
Ethereum
• Proof-of-Burn - Slimcoin
• Proof-of-Retrievability - permacoin
Grananja blockchaina
• Ako dva minera u
približno isto vreme
pronađu nonce može da
dođe do grananja lanca
• Ovo nije regularna
situacija i rešava se
vremenom
Veličina bitcoin blockchaina
• Ne mora svaki korisnik da ima kompletnu
kopiju blockchaina (različite vrste klijenata)
Broj bitcoin nodova
• https://bitnodes.earn.com/
Podaci o transakcijama (maj 2019)
• https://www.blockchain.com/en/charts
• 1,2MB veličina jednog bloka
• ≈ 2600 transakcija u bloku
• 38.000.000 walleta
• Najveći mineri:
Vreme potvrde transakcije
Razne primene
• Smart contracts
• Razne vrste poslovnih transakcija
• Identity management
• IoT digitalni identiteti
• ...
Literatura
• Sav sadržaj prezentacije je preuzet iz:
A Blockchain Tutorial (strane 2-25):
– http://ipj.dreamhosters.com/wp-
content/uploads/2017/12/ipj20-3.pdf