2017-02-03

Skaliranje bitkoina, 3. deo – Segregated Witness

Kao što sam pisao u prošlom članku, prostim povećanjem veličine bloka se problem skaliranja bitkoina ne rešava trajno već se samo kupuje vreme. Da bi rešenje bilo dugoročno, potrebna je promena pristupa, a za to je potrebno malo kreativnosti. Na sreću, rešenje već postoji! Na nesreću, potrebno je da 95% bitkoin rudara prihvati to rešenje kako bi ono zaživelo. Tu se ponovo vraćamo na problem „preterane demokratije“ koji sam već pominjao u uvodnom članku ovog serijala, a koji otežava implementaciju bilo kojeg unapređenja bitkoin protokola.

To rešenje, koje već relativno dugo postoji i koje čeka da bude implementirano, naziva se „Segregated Witness“ (SegWit). Priča o SegWit-u je dosta opširna i puna tehničkih detalja, ali ja ću ovde pokušati da je maksimalno pojednostavim i fokusiraću se na samo dva glavna (od mnogih) unapređenja protokola koja SegWit donosi.

 

Izbacivanje informacija o potpisima

Pominjao sam ranije da je prosečna veličina bitkoin transakcije oko 500 bajtova. U tih 500 bajtova imamo dve glavne grupe podataka: 1) Podaci pomoću kojih se prate stanja na bitkoin adresama i 2) Podaci vezani za verifikaciju transakcije. Prva grupa sadrži adrese pošiljalaca i primalaca i iznos. Bitno je da svi full nod-ovi (FN) bitkoin mreže čuvaju ove podatke, jer isključivo na osnovu njih oni znaju koliko se bitkoina u svakom trenutku nalazi na određenoj bitkoin adresi. Međutim, druga grupa podataka je bitna samo u trenutku izvršavanja transakcije i neposredno nakon toga (dok transakcija ne dobije 3-6 potvrda od strane mreže). Proveravati validnost potpisa pošiljaoca kod transakcije koja se dogodila pre nekoliko meseci ili godina je besmisleno. To znači da nema potrebe čuvati zauvek sve te podatke o verifikacijama transakcija. SegWit predviđa da veličina bloka ostane 1 MB, ali da „obični“ FN-ovi ne čuvaju podatke o potpisima već samo podatke o adresama učesnika transakcije i iznosima. Na taj način bi se uštedelo na prostoru i u tih 1 MB bi se umesto dosadašnjih 2000 transakcija moglo smestiti oko 3400, to jest 70% više. SegWit predviđa postojanje druge vrste FN-ova koji bi čuvali i podatke o potpisima i kojima bi blokčein zauzimao više mesta na hard disku. Međutim, te FN-ove bi uglavnom imali rudari, koji od verifikacije transakcija dobro zarađuju, pa im nije problem ako veličina bloka malo poraste. Neko će pomisliti „mnogo buke ni oko čega“, jer povećanje kapaciteta mreže za 70% zaista i ne rešava problem dugoročno. Ipak, to je samo deo onoga što nam SegWit donosi.

 

„Transaction malleability bug“

Ako je neko od vas izgubio novac na poznatoj MtGox berzi, verovatno se seća da je MtGox pokušao da krivicu za to što su hakovani svali upravo na ovaj bag. Taj bag zaista postoji, ali je utvrđeno da je tek neznatan deo bitkoina nestalih sa MtGox-a posledica ovog baga. Taj bag dozvoljava da pošiljalac promeni TXID (Transaction ID) nakon što je poslao transakciju, a dok je ona još nepotvrđena od strane mreže. Ako primalac čeka 3-6 potvrda transakcije (što je praksa), on je imun na ovaj bag. Međutim, da bi se dobilo na brzini, za neke aplikacije je zgodno da bitkoini mogu da se proslede dalje čim se transakcija pojavi na blokčeinu, dok još nema potvrda. Otklanjanjem ovog baga se otklanja i rizik da pošiljalac promeni TXID, što znači da se primljeni bitkoini mogu dalje koristiti bez potrebe da se čekaju potvrde. Otklanjanje ovog baga samo po sebi ne predstavlja ništa revolucionarno, jer su i bitkoin berze i oni koji razvijaju bitkoin novčanike odavno učinili ono što je trebalo da bi se od tog baga zaštitili. Međutim, otklanjanje ovog baga omogućuje dalju nadogradnju bitkoin protokola koja bi učinila da bitkoin mreža može da obradi praktično neograničen broj transakcija bez potrebe za drastičnim povećavanjem veličine bloka. Ta nadogradnja je već spremna… potrebno je još malo razvoja i testiranja, ali idejno rešenje je tu. Detaljnije o tome u sledećem članku.

2017-10-04

Blokčein dodaci: Zašto je blokčein tehnologija toliko dobra

2017-08-23

Itirijum (ETH) na ECD servisu - Akcija !!!

2017-08-02

Sve usluge opet dostupne

2017-07-28

Privremena obustava rada (28.07.2017.)

2017-07-27

Moguće poteškoće u radu tokom naredne nedelje

2017-07-24

Plaćanje bitkoinima u Beogradu

2017-07-04

Prvi dvosmerni bitkoin automat u Srbiji

2017-06-10

Utisci sa prve bitkoin edukacije

2017-04-03

Zamke za investitore

2017-03-06

Bitkoin kao sredstvo plaćanja u Srbiji?

2017-02-22

Utisci sa tribine o bitkoinu, održane na Mašinskom fakultetu u Beogradu 21.02.2017.

2017-01-24

Skaliranje bitkoina, 2. deo – promena veličine bloka