Satoshi Nakamoto
satoshin@gmx.com
www.bitcoin.org
Prevedeno na hrvatski jezik sa bitcoin.org/bitcoin.pdf by LuxBTC
Potpuna peer-to-peer (svaki sa svakim) verzija elektroničkog novca omogućila bi izravno plaćanje preko interneta između dvije stranke bez posredovanja financijske ustanove. Digitalni potpisi pružaju dio rješenja, ali glavne se prednosti gube ako je za sprečavanje duple potrošnje (double spending) još uvijek potrebna pouzdana treća stranka. Predlažemo rješenje problema duple potrošnje koristeći peer-to-peer mrežu.
Mreža vremenski označuje (timestamp) transakcije hashiranjem u kontinuirani lanac dokaza o radu (proof-of-work) temeljen na hashu, stvarajući zapis koji se ne može izmijeniti bez ponovnog obavljanja dokaza o radu. Najdulji lanac ne služi samo kao dokaz tj. svjedočanstvo o slijedu događaja, već i kao dokaz da je potekao iz najvećeg skupa procesorske snage (CPU). Sve dok većinskom procesorskom snagom upravljaju računala tj. čvorovi (nodes) koji ne planiraju u suradnji napasti mrežu, oni će proizvoditi najdulji lanac i nadjačati napadače. Sama mreža zahtijeva minimalnu strukturu. Poruke se prenose u najboljem nastojanju, a čvorovi po volji mogu napustiti mrežu i ponovno se pridružiti mreži, prihvaćajući najdulji lanac dokaza o radu kao dokaz onoga što se dogodilo dok ih nije bilo.
Trgovina putem Interneta oslanja se gotovo isključivo na financijske ustanove koje služe kao pouzdana treća stranka za obradu elektroničkih plaćanja. Iako sustav funkcionira dovoljno dobro za većinu transakcija, i dalje trpi od nerazdvojivih nedostataka modela utemeljenog na povjerenju. Potpuno nepovratne transakcije nisu moguće jer financijske ustanove ne mogu izbjeći posredovanje u sporovima. Troškovi posredovanja povećavaju troškove transakcija, ograničavaju minimalnu praktičnu veličinu transakcija i onemogućuju male usputne transakcije te postoji širi trošak u gubitku mogućnosti vršenja nepovratnih plaćanja za nepovratne usluge. Potreba za povjerenjem povećava se s mogućnošću povrata plaćanja. Trgovci moraju biti na oprezu prema svojim kupcima, tražeći od njih više informacija nego što bi inače bilo potrebno. Određeni postotak prijevara je neizbježan. Ovi troškovi i nepouzdanost plaćanja mogu se izbjeći plaćanjem osobno gotovinom, ali ne postoji mehanizam za plaćanje putem komunikacijskog kanala bez pouzdane treće stranke.
Stoga je potreban elektronički sustav plaćanja temeljen na kriptografskom dokazu umjesto na povjerenju, koji omogućava da bilo koje dvije dobrovoljne stranke posluju izravno međusobno bez potrebe za pouzdanom trećom strankom. Transakcije koje su izračunljivo nepovratne bi zaštitile prodavače od prijevara, a rutinski založni mehanizam lako bi se mogao primijeniti za zaštitu kupaca. U ovom radu predlažemo rješenje problema duple potrošnje putem peer-to-peer distribuiranog poslužitelja vremenskih oznaka za generiranje računalnog dokaza o
kronološkom redoslijedu transakcija. Sustav je siguran sve dok pošteni čvorovi zajedno kontroliraju više procesorske snage od surađujuće grupe napadačkih čvorova.
Definiramo elektronički novčić kao lanac digitalnih potpisa. Svaki vlasnik prenosi novčić na sljedećeg digitalnim potpisivanjem hasha prethodne transakcije i javnog ključa sljedećeg vlasnika te ih dodaje na kraju novčića. Primatelj može provjeriti potpise kako bi potvrdio lanac vlasništva.
Problem je naravno što primatelj ne može provjeriti da jedan od vlasnika nije dvaput potrošio novac. Uobičajeno rješenje bi bilo uvođenje pouzdanog središnjeg tijela ili kovnice koja bi vršila provjeru svake transakcije na duplu potrošnju. Nakon svake transakcije, novčić se mora vratiti u kovnicu kako bi se izdao novi novčić, a samo kovanice izdane izravno iz kovnice su pouzdane da nisu duplo potrošene. Problem s ovim rješenjem je što sudbina cijelog novčanog sustava ovisi o tvrtki koja vodi kovnicu i kroz koju svaka transakcija mora proći, baš kao i u slučaju banke.
Trebamo način koji će primatelju dati do znanja da prethodni vlasnici nisu potpisali nikakve ranije transakcije. Za naše potrebe, najranija transakcija je ona koja se broji, tako da nas ne zanimaju kasniji pokušaji dvostruke potrošnje. Jedini način da provjerimo izostanak transakcije je da imamo informacije o svim transakcijama. U modelu temeljenom na kovnici, kovnica je imala informacije o svim transakcijama i odlučivala je koja transakcija je prva stigla. Da bismo to postigli bez pouzdane treće stranke, transakcije moraju biti javno objavljene [1] te nam je potreban sustav da se sudionici slože oko jedinstvene povijesti redoslijeda kojim su transakcije primljene. Primatelj treba dokaz da se za vrijeme svake transakcije većina čvorova složila da je prva primljena.
Rješenje koje predlažemo započinje s poslužiteljem vremenskih oznaka. Poslužitelj vremenskih oznaka djeluje tako da se uzme hash bloka članova kojem će se dodijeliti vremenska oznaka i objavi taj hash u primjerice novine ili Usenet [2–5]. Vremenska oznaka dokazuje da su podaci zacijelo postojali u to vrijeme, kako bi mogli ući u hash. Svaka vremenska oznaka sadrži prethodnu vremensku oznaku u svojem hashu, tvoreći lanac, pri čemu svaka dodatna vremenska oznaka ojačava one prije nje.
Da bismo implementirali distribuirani poslužitelj vremenskih oznaka na osnovi peer-to-peer, trebat ćemo koristiti sustav dokaza o radu sličan Hashcashu Adama Backa [6] umjesto Useneta ili novinskih objava. Dokaz o radu uključuje pretraživanje vrijednosti koja nakon hashiranja, primjerice s SHA-256, tvori hash koji započinje s određenim brojem nula. Prosječna količina potrebnog rada eksponencionalna je s brojem potrebnih nula i može se provjeriti izvršavanjem jednog hasha.
Za našu mrežu vremenskih oznaka izvršavamo dokaz o radu povećanjem nonce broja u bloku dok se ne nađe vrijednost hasha tog bloka koja započinje s potrebnim brojem nula. Jednom kada se procesorska snaga utroši kako bi se zadovoljio dokaz o radu, blok se ne može izmijeniti bez da se ponovno utroši procesorska snaga. Kako se daljnji blokovi vežu na taj blok, rad potreban da se on izmijeni uključivao bi ponovno obrađivanje svih blokova nakon njega.
Dokaz o radu također rješava problem utvrđivanja zastupljenosti u većinskom odlučivanju. Ako bi se većina temeljila na principu jednog glasa po IP adresi, mogao bi je narušiti svatko tko može prikupiti više IP adresa. Dokaz o radu stoga predstavlja jedan glas po CPU. Većinsku odluku predstavlja najdulji lanac koji ujedno sadrži najveći uloženi dokaz o radu. Ako većinom procesorske snage upravljaju pošteni čvorovi, tada će pošteni lanac najbrže rasti i nadmašiti bilo koje konkurentne lance. Da bi izmijenio prethodni blok, napadač bi morao ponovno obaviti dokaz o radu za taj blok i sve blokove nakon njega, a zatim prestići rad poštenih čvorova. Kasnije ćemo pokazati da se vjerojatnost sporijeg napadača, koji pokušava sustići pošteni lanac, eksponencijalno smanjuje s dodavanjem novih blokova.
Kako bi se nadoknadio rast brzine hardvera i promjenjiv interes za pokretanjem čvora tijekom vremena, težina obavljanja dokaza o radu (proof-of-work difficulty) određuje se prema prosječnom broju stvorenih blokova po satu. Ako se blokovi stvaraju prebrzo, težina se povećava.
Koraci za pokretanje mreže:
1. Nove transakcije emitiraju se na sve čvorove.
2. Svaki čvor sakuplja nove transakcije u blok.
3. Svaki čvor radi na pronalaženju teškog dokaza o radu za svoj blok.
4. Kad čvor pronađe dokaz o radu, on emitira blok svim čvorovima.
5. Čvorovi prihvaćaju blok samo ako su sve transakcije u njemu važeće i nisu već potrošene.
6. Čvorovi iskazuju prihvaćanje bloka tako da rade na stvaranju sljedećeg bloka u lancu uz korištenje
hasha prihvaćenog bloka kao prethodni hash.
Čvorovi uvijek smatraju da je najdulji lanac ispravan i nastavit će raditi na njegovom produljenju. Ako dva čvora istodobno emitiraju različite verzije sljedećeg bloka, neki čvorovi prvo mogu primiti ili jedan ili drugi blok. U tom slučaju rade na prvom kojeg su dobili, ali zadržavaju drugu kariku lanca u slučaju da ona postane dulja. Spor će biti prekinut kada se pronađe slijedeći dokaz o radu te jedna karika lanca postane dulja; tada će se čvorovi koji su radili na drugoj karici lanca prebaciti na dulju.
Nova emitiranja transakcija ne moraju nužno doprijeti do svih čvorova. Dokle god dođu do više čvorova, ući će u blok. Emitiranje blokova tolerantno je i na propuštene poruke. Ako čvor ne primi blok, zatražit će ga kada primi sljedeći blok i shvati da je propustio jedan.
Prva transakcija u bloku je posebna po dogovoru i njome se stvara novi novčić koji pripada tvorcu bloka. Time se stvara poticaj za čvorove da sudjeluju u mreži i pruža način za početnu distribuciju novčića u optjecaj jer ne postoji središnja vlast za njihovo izdavanje. Kontinuirano dodavanje konstantne količine novih novčića analogno je rudarima zlata koji ulažu resurse kako bi dodali zlato u optjecaj. U našem slučaju ulaže se vrijeme procesorske snage čvora i električna energija.
Poticaj također može biti financiran i transakcijskim naknadama. Ako je izlazni iznos transakcije manji od njenog ulaznog iznosa, razliku čini naknada za transakciju pridodana poticajnom iznosu za blok koji sadrži transakciju (block reward). Nakon što predodređeni broj novčića uđe u optjecaj, poticaj može prijeći isključivo na naknadu za transakcije i biti potpuno bez inflacije.
Čvorovi su na taj način potaknuti da ostanu pošteni. Ako pohlepni napadač uspije prikupiti više procesorske snage od svih poštenih čvorova, morao bi birati između toga da povrati svoje uplate i time prevari ljude ili da procesorsku snagu koristi za stvaranje novih novčića. Trebao bi uvidjeti da mu je isplativije igrati po pravilima, takvim pravilima koja ga stavljaju u prednost s više novih novčića od svih ostalih zajedno, nego da potkopava sustav i vrijednost vlastitog bogatstva.
Nakon što je zadnja transakcija zakopana pod dovoljno velikim brojem blokova, potrošene transakcije prije nje se mogu odbaciti kako bi se oslobodio prostor na disku. Kako bi se to ostvarilo bez rušenja hasha bloka, transakcije se hashiraju u Merkleovo stablo [7] [2] [5] gdje je samo korijen uključen u hash bloka. Stari blokovi tada se mogu stisnuti uklanjanjem grana stabla. Unutarnje hashove nije potrebno pohranjivati.
Veličina zaglavlja bloka bez transakcija bila bi oko 80 bajtova. Ako pretpostavimo da se blokovi stvaraju svakih 10 minuta, 80 bajtova * 6 * 24 * 365 = 4.2 MB godišnje. Uz računalne sustave obično s 2 GB RAM-a od 2008. i Mooreov zakon koji predviđa trenutni rast od 1,2 GB godišnje, pohrana podataka ne bi trebala biti problem čak i ako zaglavlja blokova moraju biti sačuvana u memoriji računala.
Plaćanje je moguće provjeriti bez pokretanja čitavog čvora mreže. Korisnik samo mora zadržati kopiju zaglavlja bloka najduljeg lanca, koju može saznati od čvorova mreže sve dok se ne uvjeri da ima najdulji lanac te pribaviti Merkleovu granu koja povezuje transakciju s blokom u kojem joj je dodijeljena vremenska oznaka. Ne može osobno provjeriti transakciju , ali povezujući je s mjestom u lancu može vidjeti da je prihvaćena od strane čvora mreže i da su na njen blok dodani naknadni blokovi što dalje potvrđuje da ju je mreža prihvatila.
Provjera je kao takva pouzdana dok god pošteni čvorovi kontroliraju mrežu, ali je ranjivija ako napadač nadvlada mrežom. Iako čvorovi mreže mogu sami provjeriti transakcije, napadačeve lažne transakcije mogu ovu pojednostavljenu metodu zavarati sve dok je on u stanju nadvladavati mrežom. Jedna od strategija zaštite od toga bilo bi prihvaćanje upozorenja čvorova mreže kada otkriju nevažeći blok, što će korisnikov softver prisiliti da preuzme cijeli blok i sporne transakcije kako bi potvrdio nedosljednost. Tvrtke koje primaju česte uplate vjerojatno će htjeti pokretati vlastite čvorove radi neovisnije sigurnosti i brže provjere.
Iako bi se s novčićima moglo zasebno rukovati, bilo bi nezgrapno raditi zasebnu transakciju za svaki cent u prijenosu. Kako bi se omogućilo razdvajanje i kombiniranje vrijednosti, transakcije sadržavaju više ulaza i izlaza. Obično postoji jedan ulaz iz veće prethodne transakcije ili više ulaza koji kombiniraju manje iznose te najviše dva izlaza: jedan za isplatu i jedan koji vraća novčani ostatak, ako postoji, natrag pošiljatelju.
Treba napomenuti da izlazna lepeza (fan-out), gdje transakcija ovisi o nekoliko transakcija koje ovise o mnogim drugima, ovdje nije problem. Ne postoji potreba za izvodom kompletne samostalne kopije povijesti transakcije.
Tradicionalni bankarski model postiže razinu privatnosti ograničavanjem pristupa podacima na povezane stranke te pouzdanu treću stranku. Potreba za javnim objavljivanjem svih transakcija isključuje ovu metodu, ali privatnost se i dalje može zadržati prekidom protoka podataka na drugom mjestu: anonimno čuvanje javnih ključeva (public key). Javno se može vidjeti da netko šalje iznos nekom drugom, ali bez informacija koje povezuju transakciju s nekim. To je slično razini informacija koje objavljuju burze, gdje se vrijeme i veličina pojedinog trgovanja objavljuju, ali bez navođenja imena stranaka.
Za dodatnu zaštitu bi se trebao koristiti novi par ključeva za svaku transakciju kako bi se spriječilo povezivanje sa zajedničkim vlasnikom. Neko je povezivanje još uvijek neizbježno, primjerice kod transakcija s više ulaza, koje nužno otkrivaju da je njihov ulaz pripadao istom vlasniku. Rizik je taj da ako je vlasnik ključa razotkriven, povezivanjem se mogu otkriti ostale transakcije koje su pripadale tom vlasniku.
Razmatramo scenarij napadača koji pokušava stvoriti alternativni lanac brže od poštenog lanca. Čak i ako se to postigne, ne ostavlja sustav ranjivim za proizvoljne promjene, poput stvaranja novca iz ničega ili uzimanja novca koji nikada nije pripadao napadaču. Pošteni čvorovi neće prihvatiti nevažeće transakcije kao uplatu te nikada neće prihvatiti blok koji ih sadrži. Napadač može pokušati promijeniti samo jednu od svojih transakcija kako bi povratio novac koji je nedavno potrošio.
Utrka između poštenog lanca i napadačkog lanca može se okarakterizirati kao Binomna slučajna šetnja. Uspješni ishod je pošteni lanac koji se produljuje za jedan blok, povećavajući svoje vodstvo za +1, a neuspješni ishod je da se lanac napadača produlji za jedan blok, smanjujući raskorak za -1. Vjerojatnost da će napadač sustići pošteni lanac analogna je Problemu kockareve propasti. Pretpostavimo da
kockar s neograničenim iznosom novca počinje s gubitkom i igra potencijalno beskonačan broj pokušaja kako bi pokušao doći na nulu. Možemo izračunati vjerojatnost za povratak na nulu ili za napadača da uhvati pošten lanac,
kako slijedi [8]:
𝒑 = vjerojatnost da pošten čvor pronađe sljedeći blok
𝒒 = vjerojatnost da napadač pronađe sljedeći blok
𝒒𝒛 = vjerojatnost da će napadač ikada sustići z zaostalih blokova
Uzimajući u obzir pretpostavku da je 𝒑 > 𝒒, vjerojatnost opada eksponencijalno kako se povećava broj blokova koje napadač mora sustići. S izgledima protiv njega, ako mu se u startu ne posreći, njegove šanse postaju sve manje i manje s povećanjem zaostalih blokova. Razmotrimo sada koliko dugo primatelj nove transakcije treba čekati prije nego što bude dovoljno siguran da pošiljatelj ne može promijeniti transakciju. Pretpostavljamo da je pošiljatelj napadač koji želi uvjeriti primatelja da je nedavno izvršio uplatu, a zatim izvršiti tu uplatu sebi nakon nekog vrijeme. Primatelj će biti upozoren kada se to dogodi, ali pošiljatelj se nada da će biti prekasno.
Primatelj generira novi par ključeva i daje javni ključ pošiljatelju neposredno prije potpisivanja. Ovo sprječava pošiljatelja da unaprijed pripremi lanac blokova radeći na njemu neprekidno dok ne stekne dovoljnu prednost te u tom trenutku izvrši transakciju. Nakon slanja transakcije, nepošteni pošiljatelj započinje potajno raditi na paralelnom lancu koji sadrži alternativnu verziju njegove transakcije.
Primatelj čeka dok transakcija nije dodana u blok i dok z blokova nije povezano na taj blok. Nije siguran koliki napredak je napadač postigao, ali pod pretpostavkom da su pošteni blokovi kreirani u prosječnom očekivanom vremenu po bloku, potencijalni napredak napadača bit će Poissonova raspodjela s očekivanom vrijednošću:
Kako bismo dobili vjerojatnost sustizanja napadača, množimo Poissonovu gustoću, za svaki iznos napretka koji je mogao postići, s vjerojatnošću sustizanja od te pozicije:
Preuređujemo kako bismo izbjegli sumiranje beskonačnog niza razdiobe …
Pretvaramo u C programski kod…
#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
double p = 1.0 – q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 – pow(q / p, z – k));
}
return sum;
}
Dobivanjem rezultata vidimo da vjerojatnost eksponencijalno opada sa z.
q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
Rješavamo za p manji od 0.1%…
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
Predložili smo sustav elektroničkih transakcija koji se ne oslanjanja na povjerenje. Započeli smo s uobičajenim okvirom novčića nastalih iz digitalnih potpisa, koji pruža snažnu kontrolu nad vlasništvom, ali je nepotpun bez načina sprječavanja dvostruke potrošnje. Kako bismo to riješili, predložili smo peer-to-peer mrežu koristeći dokaz o radu da bi zabilježili javnu povijest transakcija čija izmjena napadačima brzo postaje računalno nepraktična ako pošteni čvorovi kontroliraju većinu procesorske snage. Robusnost mreže čini njena nestrukturirana jednostavnost.
Svi čvorovi rade istovremeno uz malo koordinacije. Ne moraju se identificirati jer se poruke ne preusmjeravaju na neko određeno mjesto nego samo trebaju biti prenešene u najboljem nastojanju. Čvorovi mogu napustiti mrežu i ponovno se pridružiti mreži prihvaćajući najdulji lanac dokaza o radu kao dokaz onoga što se dogodilo dok ih nije bilo. Glasaju svojom procesorskom snagom, radeći na produljenju lanca blokova izražavaju svoje prihvaćanje valjanih blokova i odbacuju nevažeće blokove odbijanjem njihove obrade. Bilo koja potrebna pravila i poticaji
mogu se provesti ovim mehanizmom konsenzusa.
REFERENCE
[1] W. Dai, “b–money,” http://www.weidai.com/bmoney.txt, 1998.
[2] H. Massias, X.S. Avila, and J.–J. Quisquater, “Design of a secure timestamping service with minimal trust
requirements,” In 20th Symposium on Information Theory in the Benelux, May 1999.
[3] S. Haber, W.S. Stornetta, “How to time–stamp a digital document,” In Journal of Cryptology, vol 3, no 2, pages 99–
111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, “Improving the efficiency and reliability of digital time–stamping,” In Sequences
II: Methods in Communication, Security and Computer Science, pages 329–334, 1993.
[5] S. Haber, W.S. Stornetta, “Secure names for bit–strings,” In Proceedings of the 4th ACM Conference on Computer and
Communications Security, pages 28–35, April 1997.
[6] A. Back, “Hashcash – a denial of service counter–measure,”
http://www.hashcash.org/papers/hashcash.pdf, 2002.
[7] R.C. Merkle, “Protocols for public key cryptosystems,” In Proc. 1980 Symposium on Security and Privacy, IEEE
Computer Society, pages 122–133, April 1980.
[8] W. Feller, “An introduction to probability theory and its applications,” 1957.
Preuzimanje:
https://bitcoin.org/files/bitcoin-paper/bitcoin_hr.pdf
Preuzimanje:
Lightning white paper na Engleskom jeziku
O Blockchain tehnologiji pročitatje u ovom blogu
Blockchaini su suštinski dizajnirani kao velike javne baze podataka koje. Pretraživači blokova (block exploreri) omogućavaju pregled i upravljanje digitalnom imovinom na blockchainu. Tradicionalno, vlasnici bitcoina koriste blockchain Koristeći block explorer vlasnici bitcoina ih koriste za provjeru statusa poslanih i primljenih transakcija. Međutim, blockchain exploreri imaju širok raspon mogućnosti upotrebe i u osnovi služe kao tražilica za blockchain.
Exploreri pružaju uvid u razne podatkovne informacije vezane uz transakcije na blockchainu. Neki od važnih detalja koje možete pronaći s blockchain explorerom uključuju datum, naknade za transakciju, visinu bloka, dolazne i odlazne adrese i iznose povezan s transakcijama. Sa sve većim prihvaćanjem blockchaina, mnogi ljudi žele pristupati najpopularnijim blockchain explorerima koji su nabrojani u nastavku.
Računalo na kojem je pokrenut Bitcoin softver naziva se node (čvor). Vaš node je vaša osobna verzija blockchaina i skup pravila Bitcoina. Možete to smatrati i vlastitom pristupnom točkom odnosno ulazom u Bitcoin ekosustav. Bitcoin node objavljuje transakcije, verificira legitimnost bitcoina koji primate i štiti vašu privatnost omogućujući vam da neovisno i samostalno sudjelujete u aktivnostima na mreži.
Vaš node znači vaša pravila kao i kod uzrečice „vaša kuća vaša pravila“. Jednom kada povežete vaš novčanik sa vašim nodom prestajete se oslanjati na treću stranu koja je zadužena da validira vaše transakcije. Nodovi mrežu održavaju decentraliziranom dok vas također brane od zlonamjernih aktera koji se na mreži mogu pojaviti. Ako nemate vlastiti node, oslanjate se na tuđi koji je zadužen za objavljivanje transakcija i validiranje stanja vašeg bitcoin novčanika.
Nodovi su zamišljeni da rade kontinuirano 24/7/365, stoga, ovisno o računalnoj opremi koja se koristi, postoje određeni troškovi energije koji nastaju prilikom njihovog rada. Operativni troškovi su minimalni jer većina nodova koristi računala male snage kao što je npr. Raspberry Pi. Osim toga, potrebno je imati i internetsku vezu bez ograničenja na količinu podataka jer nodovi koriste i više od 20 GB prometa svaki mjesec. Bitno je da prilikom pokretanja noda budete sigurni da se preuzeli cijeli blockchain ledger (IBD – initial block download). Nakon što se novi node priključi mreži, njegov prvi posao je preuzimanje i provjera valjanosti cijelog blockchaina. Ovo je osnovni korak prema distribuiranoj prirodi bitcoina jer samo na taj način node može tvrditi da je neovisno potvrdio sve transakcije.
Generalno govoreći postoje 4 osnovna tipa bitcoin noda. Full node, super node, light node i mining ili „rudarski“ node. Prva tri tipa noda imaju slične funkcije dok rudarski node imaju potpuno drugačiju funkciju. Ukratko će biti objašnjeno što svaki node radi ali bitno je za znati da svi nodovi sudjeluju u izgradnji i održavaju bitcoin ledgera odnosno liste svih bitcoin transakcija. Full ili „cijeli“ node, kao što mu ime govori, zadužen je za održavanje i distribuciju kopija cijelog bitcoin ledgera. Kao rezultat toga, ovi nodovi su ključni za mrežu budući da služe kao primarni izvor za potvrđivanje autentičnosti povijesti blockchaina. Full node ima mogućnost provjere transakcija sve do prvog bloka ili bloka nastanka (genesis block). Pretpostavlja se da je trenutno u produkciji više od 13.000 full nodova i da je cijeli blockchain veći od 410GB.
Ovisno o broju dolaznih i odlaznih veza koje full node ima, može se također nazivati još i super node. Super nodovi općenito rade besprekidno 24/7/365 kako bi pomogli međusobno povezati druge full nodove i distribuirali blockchain po cijeloj mreži. Super nodovi služe kao informacijski ili redistribucijski releji kako bi se osiguralo da svatko ima pravu kopiju blockchaina.
Light nodovi obavljaju sličnu funkciju kao full nodovi, ali umjesto da drže cijelu kopiju blockchaina, oni sadrže samo njegov dio. Općenito govoreći, light nodovi povezani su sa „roditeljskim“ parent nodom, obično full nodom koji održava potpunu kopiju blockchaina. Budući da light nodovi obrađuju manje blokova u lancu i ne sudjeluju u distribuiranju velikih količina podataka putem mreže, ne moraju biti toliko računalno moćni te su mnogo jeftiniji za posjedovanje i održavanje od full ili super nodova. Light nodovi preuzimaju samo zaglavlje bloka prethodnih transakcija, kako bi potvrdili valjanost lanca blokova i prenijeli te informacije drugim nodovima. Zaglavlje bloka je sažetak danog bloka, uključuje informacije o prethodnom bloku na koji je vezan, vrijeme kada je otkriven i jedinstveni identifikacijski broj, koji se naziva nonce.
Mining ili rudarski nodovi su nodovi koji jednostavno proizvode nove blokove koji se dodaju u blockchain.
Opcija ima mnogo i to uvelike ovisi o konfiguraciji noda kojeg održavate. Neke uobičajene dodatne značajke uključuju lightning node, electrum server, block explorer ili pretraživač, mempool viewer ili preglednik ili infrastrukturu za plaćanja kao što je npr. BTC Pay Server.
Kada prvi put pokrenete vlastiti node, dolazi do početnog preuzimanje blokova (IBD – initial block download). Vaša kopija programa preuzima cijeli Bitcoin blockchain, čime se potvrđuje cjelokupna povijest transakcija. Kada se sinkronizira, vaš node tada ima mogućnost provjere valjanosti bitcoina koji primate i mogućnost odbijanja svakoga tko pokuša izigravati sustav. Brzina hardvera i internetske veze utjecat će na brzinu sinkronizacije procesa, ali općenito govoreći, zbog veličine danas je za taj proces potrebno od 4 do 7 dana.
Skraćeni ili pruned nodovi su vrsta full noda koji omogućuje korištenje sigurnosnih značajki full noda ali smanjuje zahtjeve za pohranom podataka cijelog blockchaina tako da se mogu pokrenuti gotovo na bilo kakvom računalu. To znači da pruned nodovi lokalno nemaju pohranjen cijeli blockchain.
Lightning node je najnovija nadogradnja na Bitcoin mreži čiji primarni zadatak je skaliranje bitcoin transakcija u smislu mogućeg broja pojedinačnih transakcija u jedini vremena i značajnog smanjenja transakcijskih naknada. Lightning node uz interakciju sa ostalim Lightning nodovima također prati i bitcoin mrežu/bitcoin blockchain na kojoj se zapravo i temelji. Lightning node predstavlja vašu točku pristupa u ekosustav Lightning mreže. Da biste mogli učiniti bilo kakvu transakciju putem Lightning mreže, morate imati pokrenut Lightning node. Lightning node omogućava pristup brzim, jeftinim i privatnim plaćanjima.
Da, možete se spojiti na tuđi node. Ovo je osnovna postavka u mnogim bitcoin novčanicima, ali već bi trebali biti svjesni prednosti i mana korištenja vlastitog noda. Ukoliko imate osobu od povjerenja koji upravlja nodom, to je svakako bolja alternativa nego da vaše transakcije idu preko noda treće strane odnosno osobe koju ne poznate. Svakako je primarni cilj korištenja bitcoina i Bitcoin mreže pokretanje vlastitog noda.
Lightning mreža je rješenje za skaliranje koje egzistira na Bitcoin protokolu. Može se još objasniti kao mreža koja egzistira u sloju iznad (Layer 2) osnovne Bitcoin mreže. Omogućuje manje transakcije i gotovo trenutna plaćanja između korisnika uz vrlo male transakcijske troškove. Sve dok je vrijednost koja se prenosi u skladu s temeljnim načelima Bitcoin mreže, izbjegava se potreba da se svaka transakcija događa na “baznom odnosno temeljnom sloju” Bitcoina. Lightning mreža također ne dopušta transakcije bez da dokažete vlasništvo nad bitcoinom koji želite nekome poslati.
Trenutačno, čak i ako želite brzo vrijeme potvrde transakcije, standardne bitcoin transakcije – poznate i kao on-chain transakcije imaju male iznose naknada te se stoga može reći da Lightning mreža zapravo nije niti potrebna. Lightning mreža će do punog izražaja doći kada puno više korisnika počne koristit bitcoin. Isto tako, sa smanjenjem nagrada za otkrivanje novih blokova transakcijske naknade će rasti pa će Lightning mreža postati nezaobilazno rješenje za svakodnevno korištenje bitcoina.
Korisnik 1 mora otvoriti platni kanal s korisnikom 2 u kojem započinje s transakcijom financiranja. Veličina ove transakcije određuje koliki iznos korisnik 1 može putem Lightning mreže transferirati. Nakon što je ta transakcija financiranja potvrđena na osnovnoj Bitcoin mreži – na bazičnom Bitcoin sloju (Layer 1), korisnik 1 je slobodan da sa korisnikom 2 bez ograničenja šalje i prima sredstva dokle god se jedan ili obadva ta korisnika ne odluče da taj kanal žele zatvoriti. Svaka Lightning transakcija ažurira trenutno stanje otvorenog kanala tako da niti jedan korisnik ne može prevarom doći do sredstava koja mu zapravo ne pripadaju. Kada se Lightning kanal zatvori, najnovije ili završno „stanje kanala“ emitira se prema temeljnoj Bitcoin mreži te oba korisnika u svoj novčanik primaju završni saldo natrag.
Što ako npr. korisnik 1 svoj bitcoin želi poslati nekom drugom korisniku s kojim nema otvoren kanal. Ovo je situacija u kojoj Lightning mreža zapravo briljira. Do krajnjeg korisnika se može doći i povezivanjem otvorenih kanala tako da svaki korisnik ne mora imati otvoren kanal sa svakim drugim korisnikom s kojim obavlja transakcije. Mreža će samostalno pronaći optimalan put od jednog korisnika do drugog. Ovakve transakcije su također kriptografski zaštićene tako da ne može doći do situacije da netko ukrade sredstva koja mu zapravo ne pripadaju.
Baš kao i na osnovnoj bitcoin mreži, Lightning mrežu nitko ne kontrolira jer je ona također bazirana na open source načelu. Svatko može pokrenuti vlastiti node i s njim se potpuno ravnopravno priključiti na mrežu bez potrebe za nečijim odobrenjem. Neke od najpopularnijih Lightning implementacija su LND, c-lightning, Electrum Lightning i Eclair. Međusobno su ove različite implementacije gotovo 100% kompatibilne.
Ne, na Lightning mreže nema rudarenja. Lightning mreža egzistira kao sloj iznad (Layer 2) osnovne bitcoin mreže preuzimajući od nje sve sigurnosne postavke. Minimalne naknade koje se plaćaju za transakcije na Lightning mreži idu korisnicima koji sa svojim pokrenutim nodovima sudjeluju u povezivanju ruta kojima transakcije prolaze od korisnika do korisnika.
Ne, Lightning mreža je mreža međusobno povezanih otvorenih platnih kanala među korisnicima. Sve transakcije otvaranja i zatvaranja platnih kanala dešavaju se na osnovnoj Bitcoin mreži od koje Lightning mreža preuzima sve sigurnosne značajke.
Likvidnost na mreži može biti problematična za nekoga tko danas Ligntning mreži koristi intenzivno upotrebljavajući mnogo otvorenih platnih kanala. S obzirom da je Lightning mreža jako mlada i još nema dovoljno velik broj korisnika ponekad transakcije mogu biti neuspješne. Kako se na razvoju Lightning mreže intenzivno radi i kako se mreži priključuje sve veći broj korisnika ovakvi slučajevi se dešavaju iznimno rijetko. Zbog strukture same hijerarhije mreže, Lightning mreža nije pogodna za veće transfere zbog likvidnosti pojedinih platnih kanala. S povećanjem broja korisnika na mreži ovi problemi će uskoro bit prevladani.
Ulazna likvidnost je mjera koja kaže koliko bitcoina se može primiti putem Lightning mreže. Pojednostavljeno rečeno, ulazna likvidnost je količina satoshija koju određeni kanal može primiti od drugog Lightning noda. Ulazni kapacitet vašeg noda je ulazna likvidnost svih kanala zajedno. Ako npr. otvorite kanal za 100.000 satoshija i zatim potrošite 25.000, vaša ulazna likvidnost bila bi 25.000 satoshija. Najbolji način da dobijete ulaznu likvidnost je da prema vama netko otvori kanal, na taj način bi sav saldo bio na njihovoj strani kanala.
Izlazna likvidnost je mjera koliko bitcoina možete poslati preko Lightning mreže. Ako otvorite kanal za 100.000 satoshija i potrošite 75.000, vaša izlazna likvidnost sada iznosi 25.000 satoshija. Dobivanje izlazne likvidnosti proizlazi iz primanja satoshija putem vašeg postojećeg kanala ili možete otvoriti novih kanal sa više satoshija. Bitno je za zapamtiti, nikada ne možete potrošiti više od ukupne količine satoshija vašeg najvećeg otvorenog kanala.
DvadesetJedan je neformalna grupa bitcoin entuzijasta sa ex-yu prostora koja za cilj ima edukaciju, poticanje poduzetništva i širenje bitcoin mreže kroz različite projekte. Grupa trenutno broji stotine članova i organizira redovne sastanke (MeetUp) širom regije. Dobrodošli su svi koji razumiju posebnost i značaj bitcoina, ali i oni koji bi o tome željeli da uče.
Kolačić | Trajanje | Opis |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
svaka 2 tjedna direktno na vaš email