Bitcoin.com

Co je to skriptovací jazyk Bitcoin?

Jazyk Bitcoin Script řídí každou transakci v BTC. Zjistěte, jak fungují opkódy, uzamykací skripty a Taproot – vše vysvětleno srozumitelným jazykem.

Naposledy aktualizováno
Publikováno
Doba čteníČas na přečtení: 3 minuty
Zkontroloval
Graham Stone Author Image
Graham Stone
What is the Bitcoin Script Language?

Bitcoin Script je programovací jazyk, který řídí každou transakci v síti Bitcoin. Jedná se o jednoduchý jazyk založený na zásobníku, který definuje přesné podmínky, za nichž lze bitcoiny utratit, a každý plnohodnotný uzel v síti jej spouští při každém ověření transakce. Bez něj by Bitcoin byl pouze účetní knihou čísel bez mechanismu, který by zajišťoval, komu co patří.

Většina uživatelů se se skriptovacím jazykem bitcoinu nikdy přímo nesetká. Jejich peněženky to za ně zpracovávají neviditelně. Pokaždé, když však posíláte nebo přijímáte BTC, spouštějí se na tisících počítačích současně dva malé programy, které kontrolují, zda byly splněny podmínky pro utracení. Pochopení toho, jak to funguje, do značné míry vysvětluje, proč je Bitcoin strukturován právě tak, jak je, a co dokáže a nedokáže ve srovnání s platformami, jako je Ethereum.

Tento článek popisuje, jak funguje Bitcoin Script, představuje hlavní typy transakcí, které umožňuje, vysvětluje aktualizaci Taproot, která v roce 2021 modernizovala skriptovací vrstvu, a zabývá se aktuálním stavem debaty ohledně opkódu „covenant“ k červnu 2026.

Spravujte své bitcoiny bezpečně díky vlastní správě Aplikace Bitcoin.com Wallet.

Hlavní body

  • Bitcoin Script je programovací jazyk založený na zásobníku, který je zabudován do protokolu Bitcoin a definuje podmínky, za kterých lze jakýkoli bitcoinový výstup utratit.
  • Každá bitcoinová transakce obsahuje dva skripty: skript pro uzamčení (ScriptPubKey), který nastaví příjemce, a skript pro odemčení (ScriptSig), který poskytne odesílatel. Aby byla transakce platná, musí se oba skripty úspěšně provést.
  • Bitcoin Script není záměrně Turingově úplný. Neobsahuje žádné smyčky, mezi jednotlivými spuštěními neuchovává žádný trvalý stav a má přísná omezení velikosti skriptu. Díky tomu je zaručeno, že každý skript bude ukončen, což je bezpečnostní prvek, nikoli omezení.
  • Skriptovací jazyk prošel vývojem v pěti hlavních formátech: P2PK, P2PKH, P2SH, SegWit (P2WPKH/P2WSH) a Taproot (P2TR), z nichž každý rozšiřuje možnosti systému a zároveň zachovává zpětnou kompatibilitu.
  • Taproot (listopad 2021) zavedl Schnorrovy podpisy, výdajové cesty založené na MAST pro ochranu soukromí a Tapscript jako vylepšený skriptovací jazyk s integrovaným mechanismem pro hladší budoucí aktualizace.
  • Mezi praktické příklady využití založené na Bitcoin Scriptu patří peněženky s vícenásobným podpisem, transakce s časovým zámkem, smlouvy s časovým zámkem založené na hashových hodnotách (základ sítě Lightning), úschova a smlouvy s diskrétním záznamem.
  • Na rozdíl od inteligentních smluv v síti Ethereum je Bitcoin Script bezstavový: každý skript běží zcela izolovaně a nemá žádné informace o jakékoli jiné transakci. Jedná se o záměrnou architektonickou volbu.
  • Nejaktivnější oblastí vývoje skriptů pro Bitcoin v roce 2026 jsou opkódy smluv (covenant opcodes), zejména OP_CTV (BIP-119) a OP_CAT (BIP-347), které by skriptům umožnily stanovit, jak musí vypadat transakce s výdajem. Žádný z nich zatím nebyl v mainnetu aktivován.

Co je to Bitcoin Script?

Bitcoin Script je skriptovací jazyk založený na zásobníku a bezstavový, který je zabudován do protokolu Bitcoin. Každý výstup transakce v síti Bitcoin obsahuje uzamykací skript (nazývaný ScriptPubKey), který specifikuje podmínky pro utracení prostředků. Kdokoli, kdo chce tyto prostředky utratit, musí poskytnout odemykací skript (nazývaný ScriptSig, nebo v transakcích SegWit a Taproot tzv. witness data), který tyto podmínky splňuje.

Tento jazyk čerpá svou strukturu z jazyka Forth, minimalistického programovacího jazyka založeného na zásobníku, který byl vyvinut v 60. letech 20. století. Stejně jako Forth se i Bitcoin Script čte zleva doprava, pracuje s datovou strukturou zvanou zásobník a používá reverzní polskou notaci (RPN), ve které operátory následují po svých operandech, nikoli před nimi. Provádí vždy pouze jeden příkaz, neobsahuje žádné smyčky a mezi jednotlivými provedeními neuchovává žádné trvalé údaje v paměti.

Právě tento poslední bod je tím, s čím se většina lidí setká jako první, když se seznamují s jazykem Bitcoin Script na úrovni protokolu: tento jazyk není záměrně Turingově úplný. Turingově úplný jazyk dokáže provést jakýkoli výpočet, pokud má k dispozici dostatek času a zdrojů. Bitcoin Script to však ze své podstaty nedokáže a důvody této volby mají zásadní vliv na fungování sítě.

Jak funguje skript v bitcoinu: model zásobníku

Abyste pochopili, jak funguje Bitcoin Script, musíte pochopit princip zásobníku. Zásobník je datová struktura, která funguje na principu „poslední dovnitř, první ven“ (LIFO). Představte si hromadu talířů: přidávat nebo odebírat můžete pouze z vrchu. V Bitcoin Scriptu se data vkládají na zásobník a operační kódy (opcodes) manipulují s tím, co se právě nachází na vrcholu.

Když bitcoinový uzel ověřuje transakci, postupně spustí dva skripty:

  1. Skript pro odemknutí (ScriptSig nebo witness) poskytnuté osobou, která mince utrácí. Tím se na zásobník vloží data, obvykle digitální podpis a veřejný klíč.
  2. Skript pro uzamčení (ScriptPubKey) spojené s realizací výstupu. Obsahuje opkódy, které pracují s daty na zásobníku a ověřují, zda jsou splněny podmínky pro realizaci.

Pokud se skript spustí bez chyb a na konci zanechá na zásobníku hodnotu odlišnou od nuly (TRUE), je transakce platná. Pokud dojde k selhání nebo je na zásobníku zanechána hodnota FALSE, je transakce uzlem zamítnuta a nikdy se nedostane do bloku.

Toto provedení je zcela bezstavové. Skript nemá žádné informace o předchozích transakcích, nezná aktuální zůstatky a po dokončení svého běhu si nic nepamatuje. Každý skript se pokaždé spouští zcela od začátku a izolovaně.

Krok za krokem: Standardní transakce P2PKH

Pay-to-Public-Key-Hash (P2PKH) je původní typ bitcoinové transakce, který se používá od roku 2009. Adresy typu P2PKH začínají číslicí „1“. Takto vypadají v praxi pole ScriptPubKey a ScriptSig:

Skript pro odemknutí (ScriptSig):

<podpis> <veřejný klíč>

Zabezpečovací skript (ScriptPubKey):

OP_DUP OP_HASH160 <hash veřejného klíče> OP_EQUALVERIFY OP_CHECKSIG

Když uzel spojí oba příkazy a provede je společně, operace se zásobníkem probíhají krok za krokem:

  • Podpis a veřejný klíč ze ScriptSig se vloží na zásobník
  • OP_DUP zkopíruje veřejný klíč na vrchol zásobníku
  • OP_HASH160 vypočítá hash duplicitního záznamu (nejprve SHA-256 a poté RIPEMD-160), čímž vznikne 20-byteový hash
  • Hash veřejného klíče ze skriptu pro uzamčení se vloží na zásobník
  • OP_EQUALVERIFY zkontroluje, zda se oba hashové hodnoty shodují. Pokud se neshodují, provádění se zastaví a transakce selže.
  • OP_CHECKSIG ověří, zda je podpis platný pro daný veřejný klíč

Pokud jsou všechny kroky úspěšné, zásobník končí hodnotou TRUE a prostředky jsou uvolněny. Celý proces trvá milisekundy a probíhá stejně na každém uzlu v síti.

Vysvětlení opkódů bitcoinu

Opkódy bitcoinu jsou jednotlivé příkazy, z nichž se skládá skript. Každý z nich má velikost jednoho bajtu, což dává celkem 256 možných slotů pro opkódy. Z nich je v současné době v mainnetu aktivních přibližně 80. Zbytek je buď vyhrazen, deaktivován, nebo přiřazen k mechanismu zpětné kompatibility OP_SUCCESS, který byl zaveden spolu s Tapscriptem.

Opkódy se dělí do několika kategorií:

  • Operace pro odesílání dat vložit hodnoty, jako jsou veřejné klíče, podpisy a hashové hodnoty, na zásobník
  • Aritmetické operační kódy provádět operace sčítání, odčítání a porovnávání. Je třeba poznamenat, že násobení a dělení jsou zakázány.
  • Kryptografické operační kódy zahrnují OP_SHA256, OP_HASH160 a OP_SHA1 pro výpočet hashů a OP_CHECKSIG pro ověření podpisu
  • Operace pro řízení toku povolit podmíněnou logiku: OP_IF, OP_ELSE, OP_ENDIF, OP_NOTIF
  • Operace pro práci se zásobníkem mezi ně patří OP_DUP (duplikace prvního prvku), OP_DROP (odstranění prvního prvku) a OP_SWAP (výměna prvních dvou prvků)

V roce 2010 Satoshi Nakamoto deaktivoval několik opkódů poté, co byly v jejich původních implementacích objeveny bezpečnostní chyby. Mezi ně patří OP_CAT (zřetězení dvou položek zásobníku), OP_MUL (násobení) a OP_DIV (dělení). Jejich absence měla trvalé důsledky pro možnosti jazyka Bitcoin Script a několik z nejaktivněji diskutovaných návrhů na vylepšení bitcoinu v roce 2026 se týká právě toho, zda některé z nich znovu povolit.

Kompletní přehled operačních kódů včetně hexadecimálních hodnot a popisů najdete v Stránka skriptu Bitcoin Wiki je autoritativní zdroj.

Proč je „neturingovská úplnost“ výhodou

Obvyklé vysvětlení zní, že Bitcoin Script neobsahuje žádné smyčky, takže je zaručeno, že skripty budou ukončeny, a síť je tak chráněna před nekonečným prováděním. To je sice pravda, ale tento výklad podstatu věci podceňuje.

Hlubší problém se týká útočné plochy. Turingovsky úplný jazyk dokáže vyjádřit libovolný výpočet. Právě tato expresivita je však zároveň prostorem, kde se skrývají chyby. Jazyk Solidity v síti Ethereum způsobil některé z nejnákladnějších softwarových zranitelností v historii. Hack DAO z roku 2016 zneužil chybu reentrancy ve smart kontraktu a způsobil ztráty ve výši přibližně 60 milionů dolarů podle tehdejších cen, což nakonec vedlo ke kontroverznímu hard forku sítě Ethereum. V širším ekosystému DeFi došlo v průběhu několika let k odlivu stovek milionů dolarů v důsledku zneužití smart kontraktů.

Bitcoin Script činí tento typ útoku strukturálně nemožným. Nelze napsat bitcoinový skript, který by volal jiné skripty, opakoval se v smyčce, dokud se nezmění určitá podmínka, nebo ukládal stav mezi transakcemi. Každý skript je ohraničený, ukončitelný a kontrolovatelný program. Maximální velikost skriptu je 10 000 bajtů. Maximální počet opkódů jiných než „push“ na jeden skript je 201. Validátor může vždy před spuštěním skriptu vypočítat náklady na provedení v nejhorším případě.

Pro síť, jejíž hodnota dosahuje stovek miliard dolarů, má tato předvídatelnost větší cenu než flexibilita, o kterou přicházíte. Ethereum řeší problém neomezeného výpočtu pomocí limitů plynu, přičemž uživatelům účtuje poplatek za každý provedený opcode a zastavuje skripty, kterým dojde rozpočet. To sice funguje, ale přináší to vlastní složitost a možnosti selhání. Bitcoin se tomuto problému díky svému designu zcela vyhýbá.

To však neznamená, že „není Turingově úplný“ by znamenalo „není schopen komplexní logiky“. Bitcoin Script podporuje požadavky na výdaje s více stranami, časové podmínky, odhalení preobrazu hashů a kombinace všech těchto prvků. Síť Lightning Network, která denně zpracovává miliony plateb, je postavena výhradně na primitivních prvcích Bitcoin Scriptu.

Typy skriptů: Vývoj od P2PKH k Taproot

Skriptovací vrstva bitcoinu prošla od roku 2009 významným vývojem, přičemž každá aktualizace zavedla nový formát transakcí, přičemž však zůstala zpětně kompatibilní se vším, co jí předcházelo.

P2PK (Pay-to-Public-Key, 2009)

Původní formát, který se používal při prvních bitcoinových transakcích, včetně platby Satoshiho Halovi Finneymu v bloku 170. Prostředky byly vázány přímo na úplný veřejný klíč, nikoli na jeho hash. V současnosti se v nových transakcích používá jen zřídka, protože před provedením transakce odhaluje veřejný klíč v řetězci, což je považováno za slabější bezpečnostní opatření než nejprve provést hashování klíče.

P2PKH (Pay-to-Public-Key-Hash, 2009)

Standardní formát používaný již více než deset let. Formát P2PKH váže prostředky na hash veřejného klíče, nikoli na samotný klíč, čímž udržuje veřejný klíč v tajnosti až do okamžiku utracení, vytváří kratší 20-bajtovou adresu a tvoří základ všech adres začínajících číslicí „1“. Podle on-chain dat od Unchained (duben 2026) se na adresách P2PKH v současné době nachází přibližně 43 % vytěžených bitcoinů.

P2SH (Pay-to-Script-Hash, 2012, BIP 16)

Systém P2SH, zavedený prostřednictvím soft forku 1. dubna 2012, přesunul břemeno složitých výdajových skriptů z odesílatele na příjemce. Místo vložení úplného uzamykacího skriptu do výstupu se výstupy P2SH omezují na 20-bajtový hash „redeem skriptu“. Úplný skript se odhalí až při utracení mincí. Díky tomu se multisig stal praktickým řešením i pro běžné uživatele: u nastavení multisigu typu 2 z 3 již nebylo nutné, aby měl odesílatel v okamžiku platby k dispozici všechny tři veřejné klíče. Adresy P2SH začínají číslicí „3“.

Podrobný popis toho, jak funguje ověřování P2SH na úrovni protokolu, najdete zde: Průvodce transakcemi na developer.bitcoin.org podrobně vysvětluje mechanismus skriptu „redeem“.

P2WPKH a P2WSH (nativní SegWit, 2017, BIP 141)

Funkce Segregated Witness, aktivovaná v srpnu 2017 v bloku č. 481 824, přesunula data podpisu mimo hlavní tělo transakce do samostatné struktury „witness“. Data „witness“ mají 75% slevu na váhu, díky čemuž jsou transakce SegWit výrazně levnější. Standardní transakce P2WPKH s jedním vstupem a dvěma výstupy má váhu přibližně 141 virtuálních bajtů, zatímco ekvivalentní transakce P2PKH má váhu 226 vbytes, podle Analýza typů bitcoinových adres od společnosti Spark od března 2026. SegWit také vyřešil problém s malleabilitou transakcí, což byl předpoklad pro vznik sítě Lightning Network. Nativní adresy SegWit začínají znaky „bc1q.“

P2TR (Pay-to-Taproot, 2021, BIP 340/341/342)

Taproot byl aktivován v listopadu 2021 v bloku č. 709 632 a představuje nejvýznamnější vylepšení skriptovací vrstvy bitcoinu od zavedení SegWitu. Zavedl Schnorrův podpis, nový typ výstupu s podporou MAST a Tapscript jako vylepšený skriptovací jazyk. Adresy Taproot začínají znaky „bc1p.“

Taproot a Tapscript: Jak se v roce 2021 změnil skriptovací jazyk bitcoinu

Taproot není jedna jediná změna. Jedná se o tři návrhy na vylepšení bitcoinu (Bitcoin Improvement Proposals), které byly navrženy společně a aktivovány současně.

BIP 340: Schnorrovy podpisy

Bitcoin původně používal algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm). Satoshi si jej vybral částečně proto, že Schnorrovy podpisy byly v té době chráněny patentem. Platnost tohoto patentu vypršela v roce 2008 a díky aktualizaci Taproot byly Schnorrovy podpisy konečně začleněny do protokolu.

Schnorrův podpis je menší – má 64 bajtů oproti 71–73 bajtům u ECDSA. Ještě důležitější je, že podporují agregaci klíčů prostřednictvím schématu zvaného MuSig2. Agregace klíčů umožňuje více podepisujícím osobám kombinovat jejich individuální klíče a podpisy do jediného agregovaného klíče a podpisu, který je v řetězci k nerozeznání od běžné platby s jedním podpisem. Transakce z peněženky s multisig 2 z 3 provedená prostřednictvím kooperativní klíčové cesty Taproot vypadá v blockchainu stejně jako standardní platba. To představuje skutečný přínos pro soukromí každého, kdo drží bitcoiny v rámci komplexního uspořádání úschovy.

BIP 341: Pay-to-Taproot a MAST

P2TR zavádí nový typ výstupu se dvěma výdajovými cestami:

  • A klíčová cesta provést transakci pomocí Schnorrův podpis, který se používá v případě, že se všechny strany shodnou a chtějí zvolit nejjednodušší a nejlevnější způsob
  • A cesta ke skriptu provádět pomocí MAST (Merkelized Abstract Syntax Tree, což je implementace tohoto konceptu v rámci Taproot)

MAST umožňuje, aby se jeden výstup prostřednictvím Merkleho kořene připojil ke stromu obsahujícímu více skriptů pro čerpání prostředků. Při čerpání prostředků se v řetězci odhalí pouze konkrétní podmínka, která byla skutečně použita. Všechny ostatní možné cesty čerpání v stromu zůstávají trvale skryté. V případě uživatele, který si nastavil komplexní pravidla pro utrácení, například „Mohu utrácet normálně, nebo mohou utrácet dva ze tří správců po šesti měsících, nebo může utrácet obnovovací klíč po dvou letech“, se v blockchainu objeví pouze ta cesta, která je skutečně provedena.

Podle údajů společnosti Glassnode, na které se v březnu 2026 odvolával Spark, vzrostl podíl Taproot na bitcoinových transakcích do roku 2024 na přibližně 42 %, a to především díky aktivitám souvisejícím s Ordinals a vpisováním BRC-20. Tento podíl od té doby kolísal v závislosti na tržních podmínkách, ale infrastruktura je nyní standardem u všech hlavních peněženek a burz. Tematická stránka společnosti Bitcoin Optech věnovaná Taprootu sleduje průběh vývoje protokolu Taproot.

BIP 342: Tapscript

Tapscript je aktualizovaný skriptovací jazyk používaný pro transakce typu „script-path“ v rámci Taproot. Sdílejí většinu opkódů se starším Bitcoin Scriptem, ale přináší několik významných změn:

  • OP_CHECKMULTISIG a OP_CHECKMULTISIGVERIFY jsou zastaralé. Starý opcode multisig měl zvláštnost, která jako dočasné řešení vyžadovala vložení fiktivního prvku na zásobník. Tapscript jej odstraňuje a nahrazuje ho OP_CHECKSIGADD, který ověřuje Schnorrův podpis po jednom a sčítá počet ověření. Schémata multisig s prahovou hodnotou se tak stávají přehlednějšími a jejich provádění je levnější.
  • Byla odstraněna omezení velikosti skriptů pro jednotlivé listy MAST. Jednotlivé skripty v rámci větve Taproot mohou mít libovolnou velikost.
  • Opkódy OP_SUCCESS představují nejprogresivnější změnu. Ve starším skriptovacím jazyce vede narazení na nedefinovaný opcode k selhání skriptu. V Tapscriptu opcodes v rozsahu OP_SUCCESS způsobí, že skript bezpodmínečně uspěje. Budoucí soft forky mohou těmto opkódům přiřadit skutečné chování přidáním omezení, za jakých podmínek budou úspěšné, aniž by to vyžadovalo novou verzi skriptu nebo úplný cyklus opětovného nasazení v celém ekosystému. Nové funkce lze do skriptovací vrstvy bitcoinu přidávat čistěji než kdykoli předtím v historii protokolu.

Miniscript

Vedle Tapscriptu nabývá pro vývojáře stále většího významu i související projekt s názvem Miniscript. Miniscript představuje strukturovaný způsob psaní podmnožiny jazyka Bitcoin Script, která je analyzovatelná, kombinovatelná a obecně podepisovatelná. Zatímco surový skript vyžaduje ruční tvorbu a je obtížné jej auditovat, skripty v Miniscriptu lze automaticky ověřit z hlediska správnosti a kombinovat do rozsáhlejších pravidel. Nejde o rozšíření funkcí skriptu, ale o to, že to, co již skript umí, je pro vývojáře vytvářející peněženky a nástroje pro správu aktiv výrazně přístupnější.

Co umožňuje Bitcoin Script: Příklady využití v praxi

V hlavní síti bitcoinu jsou dnes aktivní následující typy transakcí, které všechny vycházejí z primitiv jazyka Bitcoin Script:

Peněženky s více podpisy (multisig) k autorizaci výdaje je zapotřebí M z N soukromých klíčů. Finanční oddělení společnosti může pro jakýkoli výběr vyžadovat 3 ze 5 schválení. Manželský pár může pro společné úspory používat schéma 2 ze 2. Díky Taproot a agregaci klíčů Schnorr jsou nyní společné výdaje s více podpisy v řetězci k nerozeznání od standardních transakcí s jedním podpisem.

Transakce s časovým zámkem Použijte OP_CHECKLOCKTIMEVERIFY (CheckLockTimeVerify, zkráceně CLTV) a OP_CHECKSEQUENCEVERIFY (CheckSequenceVerify, zkráceně CSV), abyste zabránili přesunu prostředků před dosažením určité výšky bloku nebo uplynutím stanovené doby. Mezi příklady použití patří plánování dědictví, harmonogramy nabývání práv na tokeny pro zaměstnance, mechanismy nuceného spoření a transakce s pokutami používané v kanálech sítě Lightning Network.

Smlouvy s časovým zámkem založené na hashových hodnotách (HTLC) kombinují požadavek na předobraz hashové hodnoty s časovým zámkem. Podmínka pro čerpání prostředků funguje takto: je-li předobraz této hashové hodnoty odhalen před dosažením dané výšky bloku, prostředky se vrátí odesílateli. HTLC jsou základním prvkem sítě Lightning Network a umožňují bezdůvěrné směrování plateb prostřednictvím řetězců kanálů mezi stranami, které mezi sebou nemají žádný přímý vztah.

Úschova Tato řešení blokují prostředky ve skriptu P2SH nebo Taproot, přičemž k jejich uvolnění je nutný souhlas více stran; klíč k rozřešení rovnosti hlasů obvykle drží nezávislý arbitr.

Smlouvy o diskrétním protokolu (DLC) využívají podpisy adaptéru Schnorr založené na orákulu, aby umožnily vypořádání finančních smluv na základě reálných dat, jako jsou cenové údaje nebo výsledky událostí, aniž by bylo nutné, aby orákulum spravovalo jakékoli finanční prostředky. DLC jsou v provozu v hlavní síti bitcoinu a používají se pro opční a futures produkty vypořádávané v bitcoinech.

Bitcoin Script versus chytré smlouvy v síti Ethereum

Skript jazyka Bitcoin i Solidity v síti Ethereum sice definují podmínky, za kterých lze prostředky převádět, představují však zásadně odlišné architektonické přístupy. Stojí za to provést přímé srovnání, protože tyto rozdíly do značné míry vysvětlují kompromisy, které každá z těchto sítí přijala.

Funkce
Bitcoinový skript
Chytré smlouvy v síti Ethereum
Model provádění
Založené na zásobníku, bezstavové, ohraničené
Založeno na zásobníku (EVM), se stavem, s měřením spotřeby plynu
Je to Turingově úplné?
Ne. Žádné smyčky, ukončení je zaručeno.
Ano. Libovolný výpočet.
Trvalost stavu
Žádné. Každý skript běží izolovaně.
Smlouvy ukládají a upravují stav přímo v blockchainu.
Hlavní účel
Podmíněné utrácení UTXO
Programovatelné aplikace pro všeobecné účely
Ochrana proti útokům typu DoS
Struktura: žádné smyčky, přísná omezení velikosti
Omezení nákladů na realizaci plynu
Ochrana soukromí v základní vrstvě
Vylepšeno díky Taproot a MAST
Ve výchozím nastavení jsou všechny státní instituce veřejné
Historie v oblasti bezpečnosti
Za posledních 16 let nedošlo k žádnému zneužití na úrovni konsensu
Závažné bezpečnostní chyby na úrovni smluv, ztráty v řádu miliard
Nástroje pro vývojáře
Nízkoúrovňové operační kódy; Miniscript; Tapscript
Solidity (vysoká úroveň), zkompilované do bajtkódu EVM
Funkce
Model provádění
Bitcoinový skript
Založené na zásobníku, bezstavové, ohraničené
Chytré smlouvy v síti Ethereum
Založeno na zásobníku (EVM), se stavem, s měřením spotřeby plynu
Funkce
Je to Turingově úplné?
Bitcoinový skript
Ne. Žádné smyčky, ukončení je zaručeno.
Chytré smlouvy v síti Ethereum
Ano. Libovolný výpočet.
Funkce
Trvalost stavu
Bitcoinový skript
Žádné. Každý skript běží izolovaně.
Chytré smlouvy v síti Ethereum
Smlouvy ukládají a upravují stav přímo v blockchainu.
Funkce
Hlavní účel
Bitcoinový skript
Podmíněné utrácení UTXO
Chytré smlouvy v síti Ethereum
Programovatelné aplikace pro všeobecné účely
Funkce
Ochrana proti útokům typu DoS
Bitcoinový skript
Struktura: žádné smyčky, přísná omezení velikosti
Chytré smlouvy v síti Ethereum
Omezení nákladů na realizaci plynu
Funkce
Ochrana soukromí v základní vrstvě
Bitcoinový skript
Vylepšeno díky Taproot a MAST
Chytré smlouvy v síti Ethereum
Ve výchozím nastavení jsou všechny státní instituce veřejné
Funkce
Historie v oblasti bezpečnosti
Bitcoinový skript
Za posledních 16 let nedošlo k žádnému zneužití na úrovni konsensu
Chytré smlouvy v síti Ethereum
Závažné bezpečnostní chyby na úrovni smluv, ztráty v řádu miliard
Funkce
Nástroje pro vývojáře
Bitcoinový skript
Nízkoúrovňové operační kódy; Miniscript; Tapscript
Chytré smlouvy v síti Ethereum
Solidity (vysoká úroveň), zkompilované do bajtkódu EVM

Zásadní rozdíl spočívá ve stavovosti. Smlouvy v síti Ethereum ukládají a upravují data, která přetrvávají napříč transakcemi, což umožňuje fungování úvěrových protokolů, decentralizovaných burz, správy v rámci řetězce a standardů tokenů. Bitcoin Script nic podobného nemá. Každý skript běží izolovaně, aniž by měl jakékoli informace o jiných transakcích.

Jedná se o záměrné architektonické rozhodnutí, nikoli o mezeru, která čeká na zaplnění. Skriptovací vrstva bitcoinu byla navržena pro jeden konkrétní úkol: prosazovat podmínky pro utrácení bitcoinů předvídatelným a bezpečným způsobem ve velkém měřítku. Pro tento účel je bezstavovost výhodou. Útoková plocha je menší, provádění je deterministické napříč miliony nezávislých validátorů a na úrovni protokolu neexistuje žádná kategorie zneužití smart kontraktů, protože na úrovni protokolu neexistují žádné stavové kontrakty.

Projekty, které chtějí v rámci bitcoinu dosáhnout větší programovatelnosti, ji budují ve vrstvách. Síť Lightning Network zajišťuje zpracování plateb. Protokoly DLC se zabývají finančními smlouvami vázanými na externí data. Systémy druhé vrstvy, jako jsou Ark a Liquid Network, řeší různé profily škálovatelnosti. Nic z toho nevyžaduje úpravu skriptovacího modelu základní vrstvy.

Debata o smlouvě: Co by se mohlo změnit ve skriptu bitcoinu

Vývoj skriptu bitcoinu byl vždy pomalý a konzervativní. Nejaktivnější oblastí vývoje jsou v současné době opkódy „covenant“ – jedná se o návrhy, které by skriptu umožnily omezit nejen to, kdo může utratit výstup, ale i to, jak musí výsledná transakce vypadat. Jedná se o významné rozšíření výrazových možností skriptu.

Mezi nejvýznamnější návrhy k červnu 2026 patří:

  • OP_CTV (BIP-119, CheckTemplateVerify), jehož autorem je Jeremy Rubin, přidává jediný opcode, který přiřadí UTXO ke konkrétní, předem stanovené šabloně výdaje, zahrnující verzi transakce, locktime, počet vstupů, sekvence, počet výstupů a samotné výstupy. Je z koncepčního hlediska nerekurzivní, je považován za nejkonzervativnější významný návrh a zaměřuje se především na trezory, řízení přetížení sítě a určitá vylepšení sítě Lightning. K dubnu 2026 má OP_CTV na stole konkrétní parametry nasazení, které specifikují signální okno „Speedy Trial“, ale podle Analýza smluvních podmínek společnosti BlockEden z dubna 2026.
  • OP_CAT (BIP-347), navržený Ethanem Heilmanem a Arminem Sabourim, by znovu aktivoval opcode, který Satoshi v roce 2010 deaktivoval. OP_CAT spojuje dvě položky zásobníku, což je sice jednoduché na popisu, ale má dalekosáhlé důsledky. V kombinaci se Schnorrůvými podpisy umožňuje introspekci transakcí podobnou mechanismu „covenant“. Podle on-chain analýzy společnosti sCrypt z konce roku 2024 vygeneroval OP_CAT v testovací síti Bitcoin Signet výrazně více transakcí vývojářů než APO nebo CTV. OP_CAT je již aktivní v sítích Liquid Network a Fractal Bitcoin, aniž by s ním byly spojeny jakékoli bezpečnostní exploity. BIP-347 má oficiální číslo návrhu a je podložen aktivním výzkumem, avšak jeho aktivace v mainnetu vyžaduje konsenzus komunity, který zatím neexistuje.
  • LNHANCE kombinuje OP_CTV s OP_CHECKSIGFROMSTACK (CSFS) a OP_INTERNALKEY, přičemž se zaměřuje na konkrétní vylepšení při vytváření kanálů v síti Lightning Network, včetně neinteraktivního otevírání kanálů a efektivnější správy kanálů s více účastníky.

K červnu 2026 nebyla žádná z těchto funkcí v hlavní síti bitcoinu aktivována. Technické neshody mezi nimi jsou z velké části řešitelné. Složitějším problémem je mechanismus aktivace. Proces soft forku bitcoinu vyžaduje široký konsenzus a debata o smlouvě s sebou nese zbytkové napětí z předchozích sporných aktualizací. Z debaty jasně vyplývá, že skriptovací vrstva bitcoinu má v rámci svého konzervativního rámce významný prostor pro růst. Otázkou, na které se pracuje, je pořadí kroků a shoda komunity, nikoli to, zda má skriptovací jazyk budoucnost.

Závěr

Bitcoin Script je neviditelná infrastruktura, na níž spočívá každá transakce v síti. Většina uživatelů s ním nikdy nepřijde do přímého kontaktu. Peněženky vytvářejí platné skripty, podepisují je a vysílají, aniž by kdy odhalily jejich vnitřní fungování. Každá platba, každý kanál Lightning, každý plán s časovým zámkem i každý trezor s více podpisy však probíhá prostřednictvím stejného skriptovacího jazyka bitcoinu založeného na zásobníku, který byl součástí protokolu již v roce 2009.

Od té doby se skriptovací vrstva značně rozrostla: technologie P2SH umožnila praktické provádění složitých transakcí, SegWit snížil poplatky a umožnil fungování sítě Lightning, zatímco Taproot přinesl Schnorrův podpis, ochranu soukromí založenou na MAST a návrh opkódů Tapscriptu kompatibilní s budoucími verzemi. Návrhy smluv, o nichž se nyní aktivně diskutuje, představují další potenciální kapitolu. Zda se některé z nich aktivují a v jakém časovém horizontu, zůstává v polovině roku 2026 skutečně otevřené.

K pochopení skriptu není třeba být vývojářem. Je však třeba si uvědomit, že konzervativnost bitcoinu, záměrná omezení, pomalé tempo aktualizací i jeho neturingovská úplnost nejsou žádnou nevýhodou. Vlastnosti, díky nimž je bitcoinový skript předvídatelný, jsou ty samé, které již šestnáct let udržují konsensuální vrstvu v čistotě.

Frequently Asked Questions

What does Bitcoin Script actually do?
Bitcoin Script defines the spending conditions attached to every transaction output on the network. When you receive bitcoin, the transaction includes a locking script specifying what must be provided to spend those funds. When you spend them, your wallet produces an unlocking script satisfying those conditions. Every full node validates this independently.
Why doesn't Bitcoin Script have loops?
What is the difference between ScriptSig and ScriptPubKey?
How did Taproot change Bitcoin Script?
Can Bitcoin do smart contracts?
What are Bitcoin covenant opcodes?
What is a UTXO and how does it relate to Bitcoin Script?
What is Miniscript?

Začněte bezpečně investovat s peněženkou Bitcoin.com

Dosud bylo vytvořeno více než 85 milionů peněženek. Vše, co potřebujete k bezpečnému nákupu, prodeji, obchodování a investování do bitcoinů a kryptoměn.

A screenshot of the Bitcoin.com Wallet app

Naskenujte a stáhněte si peněženku Bitcoin.com

Naskenujte tento QR kód pomocí svého mobilního zařízení a budete automaticky přesměrováni na stránku příslušného obchodu.