.class="img-fluid clearfix"
Shrnutí pro vedení / Klíčové body
- Problém. Digitální hotovost vyžaduje vyřešení problému dvojí útraty: zabránit tomu, aby byla stejná jednotka utracena dvakrát bez důvěryhodné clearingové instituce. Bílá kniha Bitcoinu z roku 2008 to vyřešila nahrazením důvěryhodných prostředníků kryptografickým důkazem a distribuovaným konsenzem (Nakamoto, 2008).
- Datová struktura. Blockchain je spojový seznam bloků, kde hlavička každého bloku obsahuje hash SHA-256 předchozí hlavičky. Hashovací řetězec činí historii pouze přidávatelnou: úprava jakéhokoli minulého bloku zneplatní každý následující hash a nutí útočníka znovu provést veškerý následný proof-of-work.
- Merkleovy stromy. Transakce v bloku jsou hashovány do binárního Merkleova stromu. Kořenový hash uložený v hlavičce bloku umožňuje efektivní ověření kterékoli jednotlivé transakce bez stažení celého bloku, což je základ odlehčených klientů SPV.
- Rozšíření Etherea. Žlutá kniha Etherea (2014) představila EVM, deterministický zásobníkový stroj běžící na každém plném uzlu. Chytré kontrakty jsou bytecode nasazený na řetězec; vykonávají se identicky na všech uzlech a vypořádávají se atomicky, čímž nahrazují důvěryhodné prostředníky kódem, který sám sebe vynucuje (Wood, 2014).
- Praktický význam. Každé tokenizované aktivum, stablecoin a protokol DeFi nasazený od roku 2017 běží na těchto základech. Pochopení hashovacího řetězce, Merkleova stromu a prováděcího modelu EVM je předpokladem pro práci s jakýmkoli systémem založeným na Ethereu.
Problém, který blockchain vyřešil
Před Bitcoinem vyžadovaly digitální platby důvěryhodného prostředníka, banku, zpracovatele plateb nebo clearingové centrum, aby se zabránilo dvojí útratě. Pokud Alice poslala Bobovi digitální soubor představující 10 liber, samotný soubor jí nijak nebránil poslat identickou kopii Carol. Řešením ve všech tehdejších systémech bylo centralizované vedení záznamů: účetní kniha banky uváděla, že peníze byly utraceny, takže je nebylo možné utratit znovu.
Přínosem Bitcoinu bylo nahradit tuto důvěryhodnou účetní knihu distribuovanou, v níž je záznam všech transakcí replikován napříč tisíci nezávislých uzlů. Vzájemná nedůvěra mezi uzly se prostřednictvím dvou mechanismů proměnila v bezpečnost:
-
Kryptografické propojení. Každý blok transakcí obsahuje hash předchozího bloku. Hashovací funkce je jednosměrné deterministické zobrazení: pro libovolný vstup funkce vytvoří výstup pevné délky a změna byť jediného bitu vstupu vytvoří zcela odlišný výstup. To znamená, že jakákoli úprava historického bloku zneplatní každý blok po něm.
-
Konsenzus proof-of-work. Přidání nového bloku vyžaduje nalezení hodnoty nonce takové, aby hash bloku klesl pod cílovou prahovou hodnotu, což je výpočetně nákladné nalézt, ale triviálně levné ověřit. Tím se přepis historie stává nákladným úměrně hloubce upravovaného bloku, protože útočník musí znovu provést veškerý proof-of-work od tohoto bloku až po vrchol řetězce.
Tato kombinace znamená, že nejdelší řetězec s největším kumulativním proof-of-work je z podstaty svého návrhu ten, který udržují poctiví účastníci vynakládající reálné zdroje.
Kryptografické stavební kameny
Technologie blockchainu skládá tři již existující kryptografické primitivy do nové architektury:
Hashovací funkce SHA-256
SHA-256 (Secure Hash Algorithm 256-bit) je členem rodiny SHA-2 standardizované institutem NIST. Přijímá vstup libovolné délky a vytváří 256bitový výstup. Klíčové vlastnosti pro použití v blockchainu:
- Determinismus. Stejný vstup vždy vytvoří stejný výstup.
- Odolnost vůči nalezení vzoru. Ze zadaného hashovacího výstupu je výpočetně neproveditelné rekonstruovat vstup.
- Lavinový efekt. Změna jednoho bitu vstupu změní zhruba polovinu výstupních bitů, což činí vyhledávání hrubou silou neefektivním.
- Odolnost vůči kolizím. Je výpočetně neproveditelné najít dva různé vstupy, které vytvoří stejný hash.
Bitcoin aplikuje SHA-256 dvakrát (SHA-256d) pro zvýšenou bezpečnost proti útokům prodloužením délky. Ethereum používá Keccak-256, variantu finalisty SHA-3.
Merkleovy stromy
Merkleův strom je binární strom hashů. Každý listový uzel je hash transakce. Každý vnitřní uzel je hash svých dvou potomků. Kořen, tedy Merkleův kořen, shrnuje všechny transakce v bloku do jediné 32bajtové hodnoty uložené v hlavičce bloku.
Praktický důsledek: k ověření, že určitá transakce je zahrnuta v bloku, potřebujete pouze log₂(n) hashů, nikoli všech n transakcí. U bloku s 2 000 transakcemi vyžaduje ověření 11 hashů namísto 2 000, což je základ zjednodušeného ověřování plateb (SPV) v odlehčených klientech.
Digitální podpisy (ECDSA)
Autorizace transakcí v Bitcoinu a Ethereu využívá algoritmus digitálního podpisu na eliptických křivkách (ECDSA) nad křivkou secp256k1. Soukromý klíč podepíše transakci; kterýkoli uzel může podpis ověřit pomocí odpovídajícího veřejného klíče, aniž by znal soukromý klíč. Tím je zajištěno, že pouze držitel soukromého klíče může autorizovat útratu z adresy.
Adresy Etherea tvoří posledních 20 bajtů hashe Keccak-256 veřejného klíče. Toto odvození činí adresy kompaktní a přenositelné, přičemž zůstávají kryptograficky vázány na pár klíčů.
Jak funguje blockchain Bitcoinu
Blok Bitcoinu obsahuje tři logické komponenty:
Hlavička bloku představuje 80 bajtů zahrnujících: verzi protokolu, hash hlavičky předchozího bloku, Merkleův kořen transakcí, časové razítko Unix, aktuální cíl obtížnosti a nonce. Těžaři iterují nonce (a někdy časové razítko nebo extra-nonce v transakci coinbase), dokud dvojitý hash SHA-256 hlavičky neklesne pod cíl obtížnosti.
Seznam transakcí je uspořádaná množina transakcí zahrnutých v bloku. Transakce coinbase (první) přiděluje odměnu za blok a transakční poplatky na adresu těžaře.
Řetězec je propojení hlaviček. Kumulativní proof-of-work v řetězci (součet veškeré práce vykonané k vytvoření každého bloku) určuje, který fork je kanonickým řetězcem. Uzly vždy následují řetězec s největší kumulativní prací.
Doba bloku je u Bitcoinu cílena na 10 minut. Obtížnost se upravuje každých 2 016 bloků (přibližně dva týdny), aby se tento cíl udržel se změnami celkového hashovacího výkonu sítě.
Programovatelná vrstva Etherea
Ethereum zobecnilo transakční model Bitcoinu z „přenosu hodnoty" na „provedení kódu". Klíčové doplňky:
Virtuální stroj Etherea (EVM). Zásobníkový virtuální stroj se 256bitovým slovem, který se deterministicky vykonává na všech plných uzlech. Každý opcode má explicitní náklad na gas. Výpočet je omezen limitem gas na blok, což brání nekonečným smyčkám zastavit síť. Všechny uzly vykonávající stejný bytecode nad stejným stavem musí vytvořit stejný výstup; tento konsenzus nad prováděním je to, co činí chytré kontrakty bezdůvěrnými.
Účty. Ethereum má dva typy účtů: externě vlastněné účty (EOA) řízené soukromými klíči a účty kontraktů, jejichž kód je uložen na řetězci. Transakce odeslaná na adresu kontraktu spustí provedení bytecode kontraktu.
Stav. Globální stav Etherea je mapování adres na stavy účtů (nonce, zůstatek, úložiště, hash kódu). Kořen stavu, Merkleovo-Patriciovo trie všech stavů účtů, je zahrnut v každé hlavičce bloku a umožňuje efektivní důkaz stavu libovolného účtu v libovolné výšce bloku.
Gas. Uživatelé platí gas (v ETH) za každou operaci EVM. Gas plní dvě funkce: kompenzuje těžaře a validátory za výpočet a omezuje zdroje, které může jediná transakce spotřebovat, čímž brání útokům typu odepření služby prostřednictvím nákladných operací.
Psaní chytrých kontraktů v Solidity
Solidity je staticky typovaný, na kontrakty orientovaný jazyk, který se kompiluje do bytecode EVM. Základní koncepty ilustruje minimální kontrakt tokenu:
pragma solidity ^0.8.0;
contract MyToken {
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
event Transfer(address indexed from, address indexed to, uint256 value);
constructor(
string memory _name,
string memory _symbol,
uint8 _decimals,
uint256 _totalSupply
) {
name = _name;
symbol = _symbol;
decimals = _decimals;
totalSupply = _totalSupply;
balanceOf[msg.sender] = _totalSupply;
}
function transfer(address _to, uint256 _value) external returns (bool) {
require(balanceOf[msg.sender] >= _value, "Insufficient balance");
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
}
Klíčová pozorování: mapping(address => uint256) je rozvržení úložiště EVM, nikoli datová struktura v paměti; čtení a zápisy stojí gas. require při selhání vrátí celou transakci a vrací nevyužitý gas. event Transfer vyzařuje log, který indexery mimo řetězec využívají ke sledování převodů bez opětovného čtení celého stavu. constructor se spustí jednou při nasazení; následná volání směřují do pojmenovaných funkcí.
Standard ERC-20 formalizoval společné rozhraní pro zaměnitelné tokeny, transfer, transferFrom, approve, allowance, balanceOf, totalSupply, což umožňuje libovolnému tokenu vyhovujícímu ERC-20 fungovat s libovolnou burzou nebo peněženkou znající ERC-20 bez vlastní integrace.
Od účetní knihy k finanční infrastruktuře
Zde popsané primitivy blockchainu, hashovací řetězce, Merkleovy stromy, EVM a ERC-20, se staly základem pro širší soubor finančních aplikací mezi lety 2018 a 2026:
Decentralizované finance (DeFi). Zápůjční protokoly (Compound, Aave), automatizovaní tvůrci trhu (Uniswap) a agregátory výnosů běží všechny jako chytré kontrakty EVM. Nahrazují funkce clearingu, úschovy a vypořádání tradičních finančních prostředníků samočinně vykonávaným kódem a likviditními pooly na řetězci.
Tokenizovaná aktiva. Centrální banky a komerční banky pilotují tokenizované vklady, tokenizované dluhopisy a tokenizované fondy peněžního trhu na povolovaných variantách řetězců kompatibilních s EVM. Základní mechanika, hashem zabezpečené přechody stavů, atomické vypořádání a programovatelná pravidla převodů, je přímým potomkem architektury Etherea z roku 2014.
Digitální měny centrálních bank. Výzkum wholesale CBDC Bank of England, program digitálního eura ECB a Project Agorá zkoumají architektury DLT odvozené od základních návrhů v Bitcoinu a Ethereu nebo s nimi kompatibilní. Struktury konsenzu a hashovacího řetězce zůstávají relevantní i tam, kde se model povolování a správy zcela liší od veřejných blockchainů.
Cesta od bílé knihy Bitcoinu z roku 2008 k tokenizovaným financím roku 2026 se rozprostírá přes dvě desetiletí, ale běží po ucelené technické linii. Pochopení toho, jak hashovací řetězec SHA-256 vynucuje neměnnost, jak Merkleův strom umožňuje efektivní ověřování a jak EVM atomicky vykonává chytré kontrakty, je předpokladem pro posouzení jakéhokoli tvrzení o tom, co blockchain v regulovaných finančních službách dokáže a co ne.
Často kladené otázky
Jaký je rozdíl mezi blockchainem a distribuovanou databází?
Tradiční distribuovaná databáze replikuje data napříč uzly kvůli dostupnosti a výkonu, ale důvěra je centralizovaná; správce může záznamy měnit. Blockchain činí manipulaci výpočetně nákladnou prostřednictvím řetězení hashů a konsenzu: úprava jakéhokoli historického záznamu vyžaduje znovuprovedení veškerého následného proof-of-work nebo proof-of-stake a přesvědčení sítě, aby upravený fork přijala. Rozlišujícím rysem je průkaznost manipulace vynucená kryptografií a návrhem pobídek, nikoli řízením přístupu.
Proč Ethereum používá Keccak-256 místo SHA-256?
Ethereum přijalo Keccak-256 (finalistu SHA-3 před úpravami při standardizaci NIST) částečně proto, že jeho tvůrci chtěli nezávislost na linii SHA-2, na které již Bitcoin závisel. Keccak má také odlišné algebraické vlastnosti, které jej učinily atraktivním pro určité operace EVM. Praktickým dopadem pro vývojáře je, že odvození adres Etherea a hashování paměťových slotů používá Keccak-256, nikoli SHA-256d jako v Bitcoinu.
Čemu „gas" v EVM brání?
Gas brání dvěma kategoriím útoku. Zaprvé brání odepření služby prostřednictvím výpočetně nákladných operací: každý opcode stojí gas, takže útočník nemůže síť přinutit vykonávat nekonečné smyčky zdarma. Zadruhé limit gas na blok omezuje celkový výpočet na blok, čímž zajišťuje, že doba validace bloku zůstává omezená a předvídatelná pro plné uzly. Bez gasu by jediné volání kontraktu mohlo síť zastavit vykonáním neomezeného výpočtu.
Jak proof-of-stake mění bezpečnostní model ve srovnání s proof-of-work?
U proof-of-work zajišťuje bezpečnost vynaložení energie: útok na řetězec vyžaduje kontrolu nad více než 50 % hashovacího výkonu sítě, což znamená kontrolu nad více než 50 % jejího fyzického hardwaru a energie. U proof-of-stake (které Ethereum používá od Merge v roce 2022) zajišťuje bezpečnost ekonomický vklad: validátoři uzamykají ETH jako zástavu, která je zkrácena (slashing), pokud podepíší konfliktní bloky. Útok 51 % vyžaduje získání a vystavení riziku více než 50 % veškerého vsazeného ETH, což je kapitálový náklad, nikoli náklad na hardware a energii. Bezpečnostní model je odlišný, ale matematicky srovnatelný v ekonomických pojmech za předpokladu, že racionální validátoři preferují příjem z poplatků před zničením kapitálu.
Reference
- Nakamoto, S., (2008). Bitcoin: A Peer-to-Peer Electronic Cash System ⧉.
- Buterin, V., (2014). Ethereum: A Next-Generation Smart Contract and Decentralised Application Platform ⧉.
- Wood, G., (2014). Ethereum: A Secure Decentralised Generalised Transaction Ledger ⧉.
- NIST, (2015). SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions ⧉.
Naposledy revidováno .
Publikovat tento článek jinde
Kopírovat formát pro Medium
# Pochopení technologie za blockchainem — Sebastien Rousseau > Originally published at [https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/](https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/) Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva. Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/
Kopírovat formát pro Mastodon
Pochopení technologie za blockchainem — Sebastien Rousseau Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva. https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/
Zkopírovat formátované pro LinkedIn
Pochopení technologie za blockchainem — Sebastien Rousseau Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva. Zde jsou klíčové strategické poznatky: - Problém, který blockchain vyřešil. Před Bitcoinem vyžadovaly digitální platby důvěryhodného prostředníka, banku, zpracovatele plateb nebo clearingové centrum, aby se zabránilo dvojí útratě. - Kryptografické stavební kameny. Technologie blockchainu skládá tři již existující kryptografické primitivy do nové architektury:. - Jak funguje blockchain Bitcoinu. Blok Bitcoinu obsahuje tři logické komponenty:. - Programovatelná vrstva Etherea. Ethereum zobecnilo transakční model Bitcoinu z „přenosu hodnoty" na „provedení kódu". Jaký je přístup vaší organizace k výzvám popsaným v tomto článku? → https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/ #TechnologieBlockchainu #KryptografickýHash #MerkleůvStrom #DistribuovanýKonsenzus #ProofOfWork Sebastien Rousseau | CC-BY-4.0
Citovat tento článek
Pochopení technologie za blockchainem — Sebastien Rousseau
Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva.
BibTeX
@online{rousseau2018pochopení,
author = {Rousseau, Sebastien},
title = {{Pochopení technologie za blockchainem — Sebastien Rousseau}},
year = {2018},
url = {https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/},
urldate = {2018}
}RIS
TY - GEN AU - Rousseau, Sebastien TI - Pochopení technologie za blockchainem — Sebastien Rousseau PY - 2018 UR - https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/ ER -
Vancouver
Rousseau S. Pochopení technologie za blockchainem — Sebastien Rousseau. sebastienrousseau.com. 2018 Jan 9. Available from: https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/
Chicago
Rousseau, Sebastien. "Pochopení technologie za blockchainem — Sebastien Rousseau." sebastienrousseau.com. January 9, 2018. https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/.
APA
Rousseau, S. (2018, January 9). Pochopení technologie za blockchainem — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/
Znovu publikovat tento článek
Pochopení technologie za blockchainem — Sebastien Rousseau
Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva.
Tento článek je licencován pod Creative Commons Attribution 4.0 International. Při opětovné publikaci uveďte odkaz na kanonickou URL.
Pochopení technologie za blockchainem — Sebastien Rousseau Technický úvod do fungování blockchainu: kryptografické hashovací řetězce, Merkleovy stromy, distribuovaný konsenzus a proč programovatelná vrstva Etherea proměnila platební účetní knihu v platformu pro chytré kontrakty a tokenizovaná aktiva. Originally published at https://sebastienrousseau.com/cs/2018-01-09-pochopeni-technologie-za-blockchainem/ by Sebastien Rousseau. Licensed under CC-BY-4.0.