Přeskočit na obsah

Blockchain: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
Paxt (diskuse | příspěvky)
m Oprava: zamezit transakce, nikoli transakcím
Řešení problému vícenásobného utrácení: úprava nesprávné informace o možnosti úpravy transakcí a přidání nových informací, proč je 51% útok vysoce nepravděpodobný
Řádek 33: Řádek 33:
Různé ''kryptoměny'' se s tímto problémem vyrovnávají různými způsoby, nejčastěji použitím systémů decentralizovaných časových razítek a hlasování o pořadí ''transakcí'' založených na algoritmech [[proof of work]] (hlasování na základě prokázaného vlastnictví výpočetního výkonu) či [[proof of stake]] (hlasování na základě prokázání vlastnictví podílu ''kryptoměny'').
Různé ''kryptoměny'' se s tímto problémem vyrovnávají různými způsoby, nejčastěji použitím systémů decentralizovaných časových razítek a hlasování o pořadí ''transakcí'' založených na algoritmech [[proof of work]] (hlasování na základě prokázaného vlastnictví výpočetního výkonu) či [[proof of stake]] (hlasování na základě prokázání vlastnictví podílu ''kryptoměny'').


V obou případech může dojít k takzvanému 51% útoku<ref>{{Citace elektronického periodika
V obou případech může dojít k takzvanému 51% útoku, kdy vlastník víc jak 51% ''kryptoměny'' či výpočetního výkonu získává možnost falšovat či upravovat ''transakce''. Většina implementací ''kryptoměn'' tak obsahuje ještě další, dodatečné pojistky, které mají vést k diverzifikaci sítě ''těžařů'' (memory hard hashovací algoritmy), aby těmto útokům bylo možné předcházet.
| příjmení = Trade-Arena.cz
| titul = Co je a jak funguje 51% útok u Bitcoinu {{!}} Trade-Arena.cz
| periodikum = www.tradearena.cz
| url = https://www.tradearena.cz/rubriky/bitcoin/co-je-a-jak-funguje-51-utok-u-bitcoinu_383.html
| datum přístupu = 2018-02-26
}}</ref>, kdy vlastník víc jak 51% ''kryptoměny'' či výpočetního výkonu získává možnost i zpětně upravovat blockchain a zneplatnit již proběhnuté transakce tak, že svojí vytvořenou blockchainovou větví předstihne již existující větev. 51% útok ale neumožňuje vytvářet a podepisovat transakce u účtů, ke kterým nemá útočník přístup. Většina implementací ''kryptoměn'' tak obsahuje ještě další, dodatečné pojistky, které mají vést k diverzifikaci sítě ''těžařů'' (memory hard hashovací algoritmy), aby těmto útokům bylo možné předcházet. Demotivací pro samotné útočníky je vysoká vstupní investice, kdy je potřeba překonat množství držené kryptoměny nebo výpočetního výkonu celého zbytku sítě. I kdyby se ale takový útok skutečně podařil, klesla by důvěra v danou kryptoměnu a s ní i její hodnota, čímž by se stal útok velmi nevýhodným. Některá těžařská uskupení, takzvané mining pooly, která měla až moc vysoké procentuální zastoupení výkonu, sama svůj výkon snížila nebo jí opustili sami těžaři<ref>{{Citace periodika
| titul = Bitcoin Miners Ditch Ghash.io Pool Over Fears of 51% Attack
| periodikum = CoinDesk
| datum = 2014-01-09
| jazyk = en-US
| url = https://www.coindesk.com/bitcoin-miners-ditch-ghash-io-pool-51-attack/
| datum přístupu = 2018-02-26
}}</ref>, aby se zachovala důvěra v samotnou kryptoměnu bitcoin.


== Block time ==
== Block time ==

Verze z 26. 2. 2018, 16:45

Blockchain je v informatice speciální druh distribuované decentralizované databáze uchovávající neustále se rozšiřující počet záznamů, které jsou chráněny proti neoprávněnému zásahu jak z vnější strany, tak i ze strany samotných uzlů peer-to-peer sítě. Nejčastější aplikací technologie blockchainu je použití jako účetní kniha kryptoměn (např. bitcoinu), jež uchovává transakce provedené uživateli. Kombinace s kryptografií umožňuje zajistit anonymitu operací a zamezit neoprávněné transakce.

Jednoslovný český ekvivalent pro anglický termín „blockchain“ dlouho chyběl. Od začátku roku 2017 běžel na stránkách https://www.blockchain.cz projekt, který si kladl za cíl takové slovo vybrat. Nakonec bylo vybráno slovo "bločenka". Pracovní návrhy obsahovaly mj. slova blokčejn, bloksíť, bloknet apod.[1]

Hlavní výhody

Mezi hlavní výhody blockchainu patří:

  • Schopnost velkého počtu uzlů dospět k jednomu konsenzu ohledně nejaktuálnějšího stavu velkého množství dat, například záznamů v účetní knize. To platí i v případě, kdy jsou jednotlivé uzly anonymní, připojeny přes nespolehlivé spojení jeden k druhému, či vedeny podvodníky, kteří se snaží transakce upravovat ve svůj prospěch.
  • Schopnost kteréhokoliv uzlu rozhodnout se s přijatelnou mírou jistoty, že zadaná transakce do blockchainu spadá či nikoliv.
  • Schopnost libovolného uzlu, jenž vytvořil či přijímá transakci, po nějaké době rozhodnout s ucházející mírou jistoty, zda je transakce validní a začlenitelná do blockchainu natrvalo a zda nedošlo ke kolizi dvou transakcí. To je důležité k řešení problému double-spendigu (dvojutrácení).
  • Dostatečně velká překážka, která brání útočníkům v úpravách či přepsání transakcí.
  • Automatická forma řešení konfliktních transakcí, která zajišťuje, že nevalidní transakce (například snaha utratit částku na účtu vícekrát) se nikdy nestanou součástí potvrzeného datasetu.

Základní princip

Implementace blockchainu sestává ze dvou druhů záznamů: transakcí a bloků. Transakce představují data vložená do databáze uživateli, bloky pak záznamy potvrzující, kdy a jak byla konkrétní transakce přidána do databáze blockchainu. Transakce jsou vytvářeny uživateli, kteří systém používají jako databázi (v případě kryptoměn jako účetní knihu). Bloky oproti tomu vytváří těžaři, kteří používají software či hardware vytvořený specificky k vytváření bloků.

Transakce vytvořené uživateli jsou volně předávané od uzlu k uzlu podle toho, kdo má zrovna s kým navázané spojení. Definice validní transakce se liší v závislosti na standardu, jenž implementuje většina uzlů v síti. V případě většiny kryptoměn je za validní transakci většinou považována taková, která má správný elektronický podpis uživatele, utrácí peníze z existující peněženky, ke které uživatel podpisem prokazuje vlastnictví, a zároveň splňuje několik dalších podmínek, jako třeba patřičný honorář (fee) pro těžaře nebo uplynutí dostatečné doby od chvíle, kdy byla zadána poslední transakce s tímto kusem měny.

Těžaři se pak snaží vytvořit blok, který potvrzuje a začleňuje tyto transakce do blockchainu. V kryptoměnách založených na bitcoinu jsou těžaři motivováni k těžení dvěma druhy odměn: předdefinovanou odměnou za vytěžený blok a transakčními poplatky či honoráři (fee), které jsou vyplaceny kterémukoliv těžaři, který správně potvrdí transakci.

Decentralizace

Každý uzel v síti decentralizované kryptoměny obsahuje kompletní či částečnou kopii blockchainu. Tím je vyřešen problém centralizované databáze, kterou používají ostatní technologie, jako například bankovnictví nebo PayPal. Zatímco běžná účetní kniha pouze pasivně zaznamenává přesuny peněz, bankovních poukázek či příkazů k úhradě, které existují nezávisle na této knize, v případě kryptoměn jsou jednotky měny a blockchain pevně spojeny. Blockchain lze v těchto případech považovat za jediné místo, kde jednotky kryptoměny existují ve formě neutraceného součtu všech transakcí.

Transakce ve formě záznamů plátce X posílá Y jednotek měny příjemci Z jsou propagovány celou sítí použitím softwarových prostředků a asymetrické kryptografie. Kterýkoliv uzel sítě je schopen tuto transakci ověřit, přidat do kopie své účetní knihy a přeposlat tyto přírůstky ostatním uzlům.

Řešení problému vícenásobného utrácení

V decentralizovaných distribuovaných databázích vzniká nový druh problému, který je v případě klasických (centralizovaných) databází řešen atomicitou systémových operací. Jedná se o takzvaný double spending problém, česky též problém dvojutrácení, víceutrácení či problém vícenásobného utrácení. Tento problém bránil prakticky do vzniku bitcoinu vytvoření distribuovaných databází.

Problém vzniká, jestliže dva či více uzlů v topologicky vzdálených bodech sítě ve stejný okamžik zadají transakce přikazující přesun peněz ze stejného účtu tak, že ve výsledné sumě je přesunovaná částka větší než zůstatek. Stav, kdy by po určitém čase došlo k propagaci všech zadaných transakcí, by vedl k nekonzistenci zůstatků na účtech. Ty by se tak mohly dostat do mínusu, což by v konečném důsledku vedlo ke ztrátě důvěry v síť a její zánik.

Různé kryptoměny se s tímto problémem vyrovnávají různými způsoby, nejčastěji použitím systémů decentralizovaných časových razítek a hlasování o pořadí transakcí založených na algoritmech proof of work (hlasování na základě prokázaného vlastnictví výpočetního výkonu) či proof of stake (hlasování na základě prokázání vlastnictví podílu kryptoměny).

V obou případech může dojít k takzvanému 51% útoku[2], kdy vlastník víc jak 51% kryptoměny či výpočetního výkonu získává možnost i zpětně upravovat blockchain a zneplatnit již proběhnuté transakce tak, že svojí vytvořenou blockchainovou větví předstihne již existující větev. 51% útok ale neumožňuje vytvářet a podepisovat transakce u účtů, ke kterým nemá útočník přístup. Většina implementací kryptoměn tak obsahuje ještě další, dodatečné pojistky, které mají vést k diverzifikaci sítě těžařů (memory hard hashovací algoritmy), aby těmto útokům bylo možné předcházet. Demotivací pro samotné útočníky je vysoká vstupní investice, kdy je potřeba překonat množství držené kryptoměny nebo výpočetního výkonu celého zbytku sítě. I kdyby se ale takový útok skutečně podařil, klesla by důvěra v danou kryptoměnu a s ní i její hodnota, čímž by se stal útok velmi nevýhodným. Některá těžařská uskupení, takzvané mining pooly, která měla až moc vysoké procentuální zastoupení výkonu, sama svůj výkon snížila nebo jí opustili sami těžaři[3], aby se zachovala důvěra v samotnou kryptoměnu bitcoin.

Block time

Pojem block time představuje parametr udávající dobu mezi dvěma vydanými bloky. Většina kryptoměn používá block time v řádu desítek minut (10 minut v případě bitcoinu), poslední dobou se ale objevují nové systémy, které tuto dobu snižují na řádově desítky sekund. Příkladem takového systému je třeba Ethereum, které se pohybuje mezi 10-20 sekundami.

Parametr block time hraje důležitou roli při ověřování validity transakcí, neboť většina systémů považuje transakci kvůli problému vícenásobného utrácení za validní až po několika dalších blocích (v případě bitcoinu jich je šest), do kterých je transakce začleněna.

Obecně se tedy dá říci, že čím kratší čas mezi vydáním dvou bloků, tím rychleji mohou probíhat důvěryhodné obchodní transakce.

Implementace

Reference

V tomto článku byl použit překlad textu z článku Block chain (database) na anglické Wikipedii.

  1. https://www.blockchain.cz – přeložme „blockchain“ společně do češtiny!
  2. TRADE-ARENA.CZ. Co je a jak funguje 51% útok u Bitcoinu | Trade-Arena.cz. www.tradearena.cz [online]. [cit. 2018-02-26]. Dostupné online. 
  3. Bitcoin Miners Ditch Ghash.io Pool Over Fears of 51% Attack. CoinDesk. 2014-01-09. Dostupné online [cit. 2018-02-26]. (anglicky) 

Externí odkazy