Bitcoin.com

Čo je skriptovací jazyk Bitcoin?

Jazyk Bitcoin Script riadi každú transakciu s BTC. Zistite, ako fungujú opkódy, uzamykacie skripty a Taproot – vysvetlené jednoduchou rečou.

Posledná aktualizácia
Publikované
Čas čítaniaČas čítania: 3 minúty
Skontroloval
Graham Stone Author Image
Graham Stone
What is the Bitcoin Script Language?

Bitcoin Script je programovací jazyk, ktorý riadi každú transakciu v sieti Bitcoin. Ide o jednoduchý jazyk založený na zásobníku, ktorý definuje presné podmienky, za ktorých je možné bitcoiny minúť, a každý plnohodnotný uzol v sieti ho spúšťa pri každom overení transakcie. Bez neho by Bitcoin bol len zoznamom čísel bez mechanizmu, ktorý by zabezpečoval, kto čo vlastní.

Väčšina používateľov sa so skriptovacím jazykom bitcoinu nikdy priamo nestretne. Ich peňaženky to vybavujú neviditeľne. Zakaždým, keď však posielate alebo prijímajte BTC, na tisícoch počítačov sa súčasne spúšťajú dva malé programy, ktoré kontrolujú, či boli splnené podmienky transakcie. Pochopenie toho, ako to funguje, do veľkej miery vysvetľuje, prečo je Bitcoin štruktúrovaný práve tak, ako je, a čo dokáže a nedokáže v porovnaní s platformami ako Ethereum.

Tento článok sa zaoberá fungovaním skriptov v bitcoine, podrobne popisuje hlavné typy transakcií, ktoré umožňujú, vysvetľuje aktualizáciu Taproot, ktorá v roku 2021 modernizovala skriptovú vrstvu, a informuje o aktuálnom stave diskusie o opkóde „covenant“ k júnu 2026.

Spravujte svoje bitcoiny bezpečne v rámci vlastnej správy Aplikácia Bitcoin.com Wallet.

Hlavné body

  • Bitcoin Script je programovací jazyk založený na zásobníku, ktorý je integrovaný do protokolu Bitcoin a definuje podmienky, za ktorých je možné minúť akýkoľvek bitcoinový výstup.
  • Každá bitcoinová transakcia obsahuje dva skripty: skript na uzamknutie (ScriptPubKey), ktorý nastaví príjemca, a skript na odomknutie (ScriptSig), ktorý poskytne odosielateľ. Aby bola transakcia platná, musia sa oba skripty úspešne vykonať.
  • Bitcoin Script nie je zámerne Turingovo úplný. Neobsahuje žiadne slučky, medzi jednotlivými spusteniami si nezachováva stav a má prísne obmedzenia veľkosti skriptu. Vďaka tomu je zaručené, že každý skript sa ukončí, čo je bezpečnostná funkcia, nie obmedzenie.
  • Skriptovací jazyk prešiel vývojom piatich hlavných formátov: P2PK, P2PKH, P2SH, SegWit (P2WPKH/P2WSH) a Taproot (P2TR), pričom každý z nich rozširuje možnosti systému a zároveň zachováva spätnú kompatibilitu.
  • Taproot (november 2021) priniesol Schnorr-podpisy, výdavkové cesty založené na MAST na ochranu súkromia a Tapscript ako aktualizovaný skriptovací jazyk s integrovaným mechanizmom pre hladšie budúce aktualizácie.
  • Medzi reálne príklady využitia postavené na Bitcoin Script patria peňaženky s viacnásobným podpisom, transakcie s časovým uzamknutím, zmluvy s časovým uzamknutím na základe hashovej hodnoty (základ siete Lightning), úschova a zmluvy s diskrétnym protokolom.
  • Na rozdiel od inteligentných zmlúv v sieti Ethereum je Bitcoin Script bezstavový: každý skript beží úplne izolovane a nemá žiadne informácie o žiadnej inej transakcii. Ide o zámernú architektonickú voľbu.
  • Najaktívnejšou oblasťou vývoja skriptov pre Bitcoin v roku 2026 sú opkódy zmluvných podmienok, najmä OP_CTV (BIP-119) a OP_CAT (BIP-347), ktoré by skriptom umožnili obmedziť, ako musí vyzerať transakcia s výdavkom. Žiadny z nich zatiaľ nebol aktivovaný v hlavnej sieti.

Čo je to Bitcoin Script?

Bitcoin Script je skriptovací jazyk založený na zásobníku a bezstavový, ktorý je integrovaný do protokolu Bitcoin. Každý výstup transakcie v sieti Bitcoin obsahuje uzamykací skript (nazývaný ScriptPubKey), ktorý špecifikuje podmienky na čerpanie prostriedkov. Každý, kto chce tieto prostriedky čerpať, musí poskytnúť odomykací skript (nazývaný ScriptSig, alebo v transakciách SegWit a Taproot – svedecké údaje), ktorý spĺňa uvedené podmienky.

Tento jazyk čerpá svoju štruktúru z jazyka Forth, minimalistického programovacieho jazyka založeného na zásobníku, ktorý bol vyvinutý v 60. rokoch 20. storočia. Podobne ako Forth, aj Bitcoin Script sa číta zľava doprava, pracuje s dátovou štruktúrou nazývanou zásobník a používa reverznú poľskú notáciu (RPN), v ktorej operátory nasledujú za svojimi operandmi, a nie pred nimi. Vykonáva vždy len jednu inštrukciu, nemá žiadne slučky a medzi jednotlivými vykonaniami si neuchováva žiadne trvalé údaje v pamäti.

Práve tento posledný bod je tým, s čím sa väčšina ľudí stretne ako prvým, keď sa zoznamujú s Bitcoin Scriptom vysvetleným na úrovni protokolu: tento jazyk je zámerne neturingovský. Turingovský jazyk dokáže pri dostatočnom čase a zdrojoch vykonať akýkoľvek výpočet. Bitcoin Script to však vzhľadom na svoju konštrukciu nedokáže, a dôvody tohto rozhodnutia majú veľký vplyv na fungovanie siete.

Ako funguje skript v bitcoine: Model zásobníka

Aby ste pochopili, ako funguje Bitcoin Script, musíte pochopiť zásobník. Zásobník je dátová štruktúra, ktorá funguje na princípe „posledný dovnútra, prvý von“ (LIFO). Predstavte si stoh tanierov: pridávať alebo odoberať môžete len z vrchu. V skripte Bitcoin sa dáta vkladajú na stoh a operačné kódy (opcodes) manipulujú s tým, čo sa nachádza na vrchu.

Keď uzol bitcoinu overuje transakciu, postupne spustí dva skripty:

  1. Skript na odblokovanie (ScriptSig alebo witness) poskytnuté osobou, ktorá mince utráca. Tým sa na zásobník vložia údaje, zvyčajne digitálny podpis a verejný kľúč.
  2. Skript na uzamknutie (ScriptPubKey) viazané na výstup, ktorý sa míňa. Obsahuje operačné kódy, ktoré pracujú s údajmi na zásobníku a overujú, či sú splnené podmienky na minutie.

Ak sa skript spustí bez chýb a na konci zanechá na zásobníku hodnotu odlišnú od nuly (TRUE), transakcia je platná. Ak zlyhá alebo zanechá hodnotu FALSE, uzol transakciu odmietne a tá sa nikdy nedostane do bloku.

Toto vykonanie je úplne bezstavové. Skript nemá žiadne informácie o predchádzajúcich transakciách, nepozná aktuálne zostatky a nemá žiadnu pamäť, ktorá by pretrvávala po ukončení jeho behu. Každý skript sa zakaždým spúšťa od začiatku a izolovane.

Krok za krokom: Štandardná transakcia P2PKH

Pay-to-Public-Key-Hash (P2PKH) je pôvodný typ bitcoinovej transakcie, ktorý sa používa od roku 2009. Adresy typu P2PKH začínajú číslicou „1“. Takto vyzerajú v praxi polia ScriptPubKey a ScriptSig:

Skript na odblokovanie (ScriptSig):

<podpis> <verejný kľúč>

Skript na uzamknutie (ScriptPubKey):

OP_DUP OP_HASH160 <hash verejného kľúča> OP_EQUALVERIFY OP_CHECKSIG

Keď uzol zlučuje a vykonáva obe operácie súčasne, operácie so zásobníkom prebiehajú krok za krokom:

  • Podpis a verejný kľúč zo ScriptSig sa vložia do zásobníka
  • OP_DUP duplikuje verejný kľúč nachádzajúci sa na vrchole zásobníka
  • OP_HASH160 vypočíta hash duplicitného záznamu (najskôr SHA-256 a potom RIPEMD-160), čím vznikne 20-bajtový hash
  • Hash verejného kľúča zo skriptu na uzamknutie sa vloží do zásobníka
  • OP_EQUALVERIFY skontroluje, či sa oba hashové hodnoty zhodujú. Ak sa nezhodujú, vykonávanie sa zastaví a transakcia zlyhá.
  • OP_CHECKSIG overí, či je podpis platný pre verejný kľúč

Ak sú všetky kroky úspešné, zásobník sa uzavrie hodnotou TRUE a prostriedky sa uvoľnia. Celý proces trvá milisekundy a prebieha rovnako na každom uzle v sieti.

Vysvetlenie opkódov bitcoinu

Opkódy bitcoinu sú jednotlivé príkazy, z ktorých sa skladá skript. Každý z nich má veľkosť jedného bajtu, čo dáva 256 možných slotov pre opkódy. Z nich je v súčasnosti v mainnete aktívnych približne 80. Zvyšné sú buď vyhradené, deaktivované alebo priradené k mechanizmu zabezpečenia spätnej kompatibility OP_SUCCESS, ktorý bol zavedený spolu s Tapscriptom.

Operčné kódy sa delia do niekoľkých kategórií:

  • Operčné kódy na odosielanie dát vložiť hodnoty, ako sú verejné kľúče, podpisy a hashové hodnoty, na zásobník
  • Aritmetické operačné kódy vykonávať operácie sčítania, odčítania a porovnávania. Je potrebné poznamenať, že násobenie a delenie sú deaktivované.
  • Kryptografické operačné kódy patria medzi ne OP_SHA256, OP_HASH160, OP_SHA1 na výpočet hashovej hodnoty a OP_CHECKSIG na overenie podpisu
  • Operčné kódy na riadenie toku aktivovať podmienenú logiku: OP_IF, OP_ELSE, OP_ENDIF, OP_NOTIF
  • Operčné kódy na manipuláciu so zásobníkom patria medzi ne OP_DUP (duplikácia prvého prvku), OP_DROP (odstránenie prvého prvku) a OP_SWAP (vymenenie dvoch prvých prvkov)

V roku 2010 Satoshi Nakamoto deaktivoval niekoľko opkódov po tom, čo boli v ich pôvodných implementáciách objavené zraniteľnosti. Medzi ne patria OP_CAT (zlučovanie dvoch položiek zo zásobníka), OP_MUL (násobenie) a OP_DIV (delenie). Ich absencia mala trvalé dôsledky na to, čo dokáže Bitcoin Script vyjadriť, a viaceré z najaktívnejšie diskutovaných návrhov na vylepšenie Bitcoinu v roku 2026 sa týkajú práve toho, či by sa niektoré z nich mali opäť povoliť.

Úplný zoznam operačných kódov vrátane hexadecimálnych hodnôt a popisov nájdete v Stránka skriptu Bitcoin Wiki je autoritatívnym zdrojom.

Prečo je „ne-Turingova úplnosť“ výhodou

Bežné vysvetlenie znie, že skriptovací jazyk Bitcoin Script neobsahuje žiadne slučky, takže je zaručené, že skripty sa ukončia, a sieť je tak chránená pred nekonečným vykonávaním. To je síce pravda, ale tento pohľad podceňuje podstatu veci.

Hlbšia pointa sa týka plochy útoku. Turingovo úplný jazyk dokáže vyjadriť ľubovoľný výpočet. Práve táto vyjadrovacia schopnosť je zároveň priestorom, v ktorom sa skrývajú chyby. Jazyk Solidity v sieti Ethereum spôsobil niektoré z najdrahších softvérových zraniteľností v histórii. Hack DAO z roku 2016 využil chybu reentrancie v inteligentnej zmluve a spôsobil straty vo výške približne 60 miliónov dolárov podľa vtedajších cien, čo nakoniec viedlo ku kontroverznému hard forku siete Ethereum. V širšom ekosystéme DeFi došlo v priebehu viacerých rokov k úniku stoviek miliónov dolárov v dôsledku zneužitia inteligentných zmlúv.

Bitcoin Script štrukturálne znemožňuje túto kategóriu útokov. Nie je možné napísať bitcoinový skript, ktorý by volal iné skripty, opakoval sa v slučke, kým sa nezmení podmienka, alebo ukladal stav medzi transakciami. Každý skript je ohraničený, ukončiteľný a kontrolovateľný program. Maximálna veľkosť skriptu je 10 000 bajtov. Maximálny počet opkódov, ktoré nie sú typu „push“, na jeden skript je 201. Validátor môže vždy vypočítať náklady na vykonanie v najhoršom prípade ešte pred spustením skriptu.

Pre sieť, ktorej hodnota dosahuje stovky miliárd dolárov, má táto predvídateľnosť väčšiu hodnotu ako flexibilita, ktorej sa vzdávate. Ethereum rieši problém neobmedzeného výpočtového výkonu pomocou limitov plynu, pričom účtuje používateľom poplatky za každý vykonaný opkód a zastavuje skripty, ktorým dôjde rozpočet. To funguje, ale prináša to so sebou vlastnú zložitosť a možnosti zlyhania. Bitcoin sa tomuto problému úplne vyhýba už svojou samotnou konštrukciou.

To však neznamená, že „nie je Turingovo kompletný“ znamená „nie je schopný komplexnej logiky“. Bitcoin Script podporuje požiadavky na výdavky viacerých strán, podmienky založené na čase, odhalenie predobrazu hašov a kombinácie všetkých týchto prvkov. Sieť Lightning Network, ktorá spracováva milióny platieb denne, je postavená výlučne na primitívach Bitcoin Scriptu.

Typy skriptov: Vývoj od P2PKH po Taproot

Skriptovacia vrstva bitcoinu sa od roku 2009 výrazne vyvinula, pričom každá aktualizácia zaviedla nový formát transakcií, pričom bola zachovaná spätná kompatibilita so všetkým, čo existovalo predtým.

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

Pôvodný formát, ktorý sa používal pri prvých bitcoinových transakciách, vrátane platby od Satoshiho pre Hala Finneyho v bloku 170. Finančné prostriedky boli viazané priamo na celý verejný kľúč, a nie na jeho hash. V súčasnosti sa v nových transakciách používa len zriedka, pretože pred uskutočnením transakcie odhaľuje verejný kľúč v reťazci, čo sa považuje za slabšie bezpečnostné opatrenie v porovnaní s predchádzajúcim hashovaním kľúča.

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

Štandardný formát používaný už viac ako desať rokov. P2PKH viaže prostriedky na hash verejného kľúča, a nie na samotný kľúč, čím sa verejný kľúč udrží v tajnosti až do momentu utratenia, vytvára kratšiu 20-bajtovú adresu a tvorí základ všetkých adries začínajúcich číslicou „1“. Podľa údajov z reťaze od spoločnosti Unchained (apríl 2026) adresy P2PKH v súčasnosti držia približne 43 % ťažených bitcoinov.

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

Systém P2SH, zavedený prostredníctvom soft forku 1. apríla 2012, presunul bremeno zložitých skriptov na výdavky z odosielateľa na príjemcu. Namiesto vloženia úplného uzamykacieho skriptu do výstupu sa výstupy P2SH viažu na 20-bajtový hash „redeem skriptu“. Úplný skript sa odhalí až v momente, keď sa mince minú. Vďaka tomu sa multisig stal praktickým riešením aj pre bežných používateľov: pri nastavení multisigu typu 2 z 3 už nebolo potrebné, aby boli všetky tri verejné kľúče viditeľné pre odosielateľa v čase platby. Adresy P2SH začínajú číslicou „3“.

Podrobný popis toho, ako funguje overovanie P2SH na úrovni protokolu, Príručka k transakciám na developer.bitcoin.org krok za krokom vysvetľuje fungovanie skriptu „redeem“.

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

Funkcia Segregated Witness, aktivovaná v auguste 2017 v bloku č. 481 824, presunula údaje o podpise mimo hlavného tela transakcie do samostatnej štruktúry „witness“. Údaje „witness“ majú 75 % zľavu z váhy, vďaka čomu sú transakcie SegWit výrazne lacnejšie. Štandardná transakcia P2WPKH s jedným vstupom a dvoma výstupmi má hmotnosť približne 141 virtuálnych bajtov, v porovnaní s 226 vbytes pri ekvivalentnej transakcii P2PKH, podľa Analýza typov bitcoinových adries od spoločnosti Spark od marca 2026. SegWit tiež vyriešil problém s deformovateľnosťou transakcií, čo bola nevyhnutná podmienka pre vznik siete Lightning Network. Natívne adresy SegWit začínajú na „bc1q.“

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

Taproot bol aktivovaný v novembri 2021 v bloku č. 709 632 a predstavuje najvýznamnejšiu aktualizáciu skriptovacej vrstvy bitcoinu od zavedenia SegWitu. Priniesol Schnorr-ove podpisy, nový typ výstupu s podporou MAST a Tapscript ako aktualizovaný skriptovací jazyk. Adresy Taproot začínajú znakmi „bc1p.“

Taproot a Tapscript: Ako sa v roku 2021 zmenil skriptovací jazyk bitcoinu

Taproot nie je jedna zmena. Ide o tri návrhy na vylepšenie bitcoinu (Bitcoin Improvement Proposals), ktoré boli navrhnuté spoločne a aktivované súčasne.

BIP 340: Schnorrove podpisy

Bitcoin pôvodne používal algoritmus ECDSA (Elliptic Curve Digital Signature Algorithm). Satoshi si ho vybral čiastočne preto, lebo Schnorrove podpisy boli v tom čase chránené patentom. Platnosť tohto patentu vypršala v roku 2008 a Taproot konečne zaviedol Schnorrove podpisy do protokolu.

Schnorrove podpisy sú menšie – majú veľkosť 64 bajtov v porovnaní s 71–73 bajtmi v prípade ECDSA. Ešte dôležitejšie je, že podporujú agregáciu kľúčov prostredníctvom schémy nazývanej MuSig2. Agregácia kľúčov umožňuje viacerým signatárom zlúčiť svoje individuálne kľúče a podpisy do jedného agregovaného kľúča a podpisu, ktorý je v reťazci nerozoznateľný od bežnej platby s jedným podpisom. Transakcia z peňaženky s multisigom typu 2 z 3 prostredníctvom kooperatívnej kľúčovej cesty Taproot vyzerá v blockchainu identicky ako štandardná platba. To predstavuje skutočný prínos pre súkromie každého, kto drží bitcoiny v rámci komplexného usporiadania úschovy.

BIP 341: Pay-to-Taproot a MAST

P2TR zavádza nový typ výstupu s dvoma spôsobmi čerpania prostriedkov:

  • A kľúčová cesta vykonávať transakciu pomocou Schnorr-ovho podpisu, ktorý sa používa v prípade, že sa všetky strany zhodnú a uprednostňujú najjednoduchší a najlacnejší postup
  • A cesta k skriptu vykonávať pomocou MAST (Merkelized Abstract Syntax Tree, čo je implementácia tohto konceptu v rámci Taproot)

MAST umožňuje, aby sa jeden výstup viazal na strom viacerých skriptov výdavkov prostredníctvom Merkleho koreňa. Pri výdavku sa v reťazci odhalí len konkrétna podmienka, ktorá sa skutočne použila. Všetky ostatné možné cesty výdavkov v strome zostávajú natrvalo skryté. V prípade používateľa, ktorý si nastavil komplexnú politiku výdavkov, napríklad „Môžem utrácať bežne, alebo dvaja z troch správcov môžu utrácať po šiestich mesiacoch, alebo obnovovací kľúč môže utrácať po dvoch rokoch“, sa v blockchainu objaví iba tá cesta, ktorá sa skutočne vykoná.

Podľa údajov spoločnosti Glassnode, na ktoré sa v marci 2026 odvolala spoločnosť Spark, sa podiel Taproot na bitcoinových transakciách do roku 2024 zvýšil na približne 42 %, a to najmä vďaka aktivite súvisiacej s Ordinals a vpisovaním BRC-20. Tento podiel sa odvtedy menil v závislosti od podmienok na trhu, avšak táto infraštruktúra je dnes štandardnou súčasťou všetkých hlavných peňaženiek a búrz. Tematická stránka spoločnosti Bitcoin Optech venovaná Taprootu sleduje priebeh vývoja protokolu Taproot.

BIP 342: Tapscript

Tapscript je aktualizovaný skriptovací jazyk používaný na transakcie typu „script-path“ v rámci Taproot. Zdieľa väčšinu operačných kódov so starším Bitcoin Scriptom, prináša však niekoľko významných zmien:

  • OP_CHECKMULTISIG a OP_CHECKMULTISIGVERIFY sú zastarané. Starý opkód multisig mal zvláštnosť, ktorá si ako dočasné riešenie vyžadovala vloženie fiktívneho prvku do zásobníka. Tapscript ho odstraňuje a nahrádza ho OP_CHECKSIGADD, ktorý overuje Schnorr-ove podpisy po jednom a pritom zaznamenáva počet. Schémy multisig s prahovou hodnotou sa stávajú prehľadnejšími a ich vykonávanie je lacnejšie.
  • Obmedzenia veľkosti skriptov na jednotlivé listy MAST boli zrušené. Jednotlivé skripty v rámci vetvy Taproot môžu mať ľubovoľnú veľkosť.
  • Opkódy OP_SUCCESS predstavujú najprogresívnejšiu zmenu. V pôvodnom skripte narazenie na nedefinovaný opkód spôsobí zlyhanie skriptu. V Tapscripte opkódy v rozsahu OP_SUCCESS zabezpečujú, že skript bude bezpodmienečne úspešný. Budúce soft forky môžu týmto opkódom priradiť skutočné správanie pridaním obmedzení na to, kedy budú úspešné, bez toho, aby bola potrebná nová verzia skriptu alebo úplný cyklus opätovného nasadenia v celom ekosystéme. Nové funkcie je možné pridávať do skriptovacej vrstvy Bitcoinu prehľadnejšie než kedykoľvek predtým v histórii protokolu.

Miniskript

Popri Tapscripte sa pre vývojárov stáva čoraz dôležitejším aj súvisiaci projekt s názvom Miniscript. Miniscript predstavuje štruktúrovaný spôsob písania podmnožiny jazyka Bitcoin Script, ktorá je analyzovateľná, kombinovateľná a všeobecne podpisovateľná. Kým surový Script vyžaduje ručné vytváranie a je ťažké ho kontrolovať, skripty v Miniscripte je možné automaticky overovať z hľadiska správnosti a kombinovať do rozsiahlejších pravidiel. Nerozširuje možnosti jazyka Script, ale výrazne sprístupňuje jeho existujúce funkcie vývojárom, ktorí vytvárajú peňaženky a nástroje na správu aktív.

Čo umožňuje skript v bitcoine: Príklady využitia v praxi

V hlavnej sieti bitcoinu sú dnes aktívne nasledujúce typy transakcií, ktoré sú všetky postavené na primitívach jazyka Bitcoin Script:

Peňaženky s viacnásobným podpisom (multisig) na autorizáciu výdavku je potrebných M z N súkromných kľúčov. Finančné oddelenie spoločnosti môže vyžadovať 3 z 5 schválení pre akýkoľvek výber. Manželský pár môže používať 2 z 2 pre spoločné úspory. Vďaka Taproot a agregácii kľúčov Schnorr sú kooperatívne výdavky s viacnásobným podpisom v reťazci teraz nerozoznateľné od štandardných transakcií s jedným podpisom.

Transakcie s časovým uzamknutím Použite OP_CHECKLOCKTIMEVERIFY (CheckLockTimeVerify, skrátene CLTV) a OP_CHECKSEQUENCEVERIFY (CheckSequenceVerify, skrátene CSV), aby ste zabránili presunu prostriedkov pred dosiahnutím určitej výšky bloku alebo uplynutím stanoveného času. Medzi oblasti použitia patria plánovanie dedičstva, harmonogramy nadobúdania práv na tokeny zamestnancov, mechanizmy núteného sporenia a transakcie s pokutami používané v kanáloch siete Lightning Network.

Zmluvy s časovým uzamknutím založené na hash (HTLC) kombinujú požiadavku na predobraz hashovacej funkcie s časovým zámkom. Podmienka čerpania prostriedkov funguje takto: ak sa predobraz tohto hashu nezverejní pred dosiahnutím určenej výšky bloku, prostriedky sa vrátia odosielateľovi. HTLC sú základným prvkom siete Lightning Network, ktorý umožňuje bezdôverové smerovanie platieb cez reťazce kanálov medzi stranami, ktoré nemajú priamy vzťah.

Úschova Tieto mechanizmy zablokujú prostriedky v skripte P2SH alebo Taproot, pričom na ich uvoľnenie je potrebný súhlas viacerých strán; zvyčajne má kľúč na rozhodovanie v prípade rovnosti hlasov tretia strana, ktorá vystupuje ako rozhodca.

Zmluvy o diskrétnom protokolovaní (DLC) využívajú podpisy adaptéra Schnorr založené na orákulách, aby umožnili uzatváranie finančných zmlúv vypořádaných na základe reálnych údajov, ako sú cenové kanály alebo výsledky udalostí, bez toho, aby orákulum muselo prevziať správu akýchkoľvek finančných prostriedkov. DLC sú v prevádzke v hlavnej sieti bitcoinu a používajú sa pre opčné a futures produkty vypořádané v bitcoinoch.

Bitcoin Script verzus inteligentné zmluvy v sieti Ethereum

Skript Bitcoin a Solidity v Ethereu síce oba definujú podmienky, za ktorých môžu prebiehať prevody prostriedkov, predstavujú však zásadne odlišné architektonické riešenia. Stojí za to tieto systémy priamo porovnať, pretože tieto rozdiely veľa vysvetľujú o kompromisoch, ktoré každá sieť akceptovala.

Funkcia
Bitcoinový skript
Inteligentné zmluvy v sieti Ethereum
Model realizácie
Založené na zásobníku, bezstavové, ohraničené
Založené na zásobníku (EVM), so stavom, s meraním spotreby plynu
Je to Turingovo kompletné?
Nie. Žiadne slučky, ukončenie je zaručené.
Áno. Voľný výpočet.
Trvalosť stavu
Žiadne. Každý skript beží izolovane.
Zmluvy ukladajú a menia stav priamo v reťazci.
Hlavný účel
Podmienené čerpanie UTXO
Programovateľné aplikácie všeobecného určenia
Ochrana proti DoS útokom
Štrukturálne: žiadne slučky, prísne obmedzenia veľkosti
Vplyv ceny plynu na náklady na realizáciu
Ochrana súkromia v základnej vrstve
Vylepšené pomocou Taproot a MAST
Všetky sú štátne a verejné (predvolené nastavenie)
História v oblasti bezpečnosti
Za posledných 16 rokov nedošlo k žiadnym zneužitiam na úrovni konsenzu
Významné bezpečnostné chyby na úrovni zmlúv, straty v hodnote miliárd
Nástroje pre vývojárov
Operčné kódy nízkej úrovne; Miniscript; Tapscript
Solidity (vysoká úroveň), skompilované do bajtkódu EVM
Funkcia
Model realizácie
Bitcoinový skript
Založené na zásobníku, bezstavové, ohraničené
Inteligentné zmluvy v sieti Ethereum
Založené na zásobníku (EVM), so stavom, s meraním spotreby plynu
Funkcia
Je to Turingovo kompletné?
Bitcoinový skript
Nie. Žiadne slučky, ukončenie je zaručené.
Inteligentné zmluvy v sieti Ethereum
Áno. Voľný výpočet.
Funkcia
Trvalosť stavu
Bitcoinový skript
Žiadne. Každý skript beží izolovane.
Inteligentné zmluvy v sieti Ethereum
Zmluvy ukladajú a menia stav priamo v reťazci.
Funkcia
Hlavný účel
Bitcoinový skript
Podmienené čerpanie UTXO
Inteligentné zmluvy v sieti Ethereum
Programovateľné aplikácie všeobecného určenia
Funkcia
Ochrana proti DoS útokom
Bitcoinový skript
Štrukturálne: žiadne slučky, prísne obmedzenia veľkosti
Inteligentné zmluvy v sieti Ethereum
Vplyv ceny plynu na náklady na realizáciu
Funkcia
Ochrana súkromia v základnej vrstve
Bitcoinový skript
Vylepšené pomocou Taproot a MAST
Inteligentné zmluvy v sieti Ethereum
Všetky sú štátne a verejné (predvolené nastavenie)
Funkcia
História v oblasti bezpečnosti
Bitcoinový skript
Za posledných 16 rokov nedošlo k žiadnym zneužitiam na úrovni konsenzu
Inteligentné zmluvy v sieti Ethereum
Významné bezpečnostné chyby na úrovni zmlúv, straty v hodnote miliárd
Funkcia
Nástroje pre vývojárov
Bitcoinový skript
Operčné kódy nízkej úrovne; Miniscript; Tapscript
Inteligentné zmluvy v sieti Ethereum
Solidity (vysoká úroveň), skompilované do bajtkódu EVM

Základným rozdielom je stavovosť. Zmluvy v sieti Ethereum ukladajú a upravujú údaje, ktoré pretrvávajú aj medzi jednotlivými transakciami, čím umožňujú fungovanie protokolov na poskytovanie pôžičiek, decentralizovaných búrz, správy v rámci reťazca a štandardov tokenov. Bitcoin Script nemá žiadny ekvivalent. Každý skript beží izolovane, bez vedomia o akýchkoľvek iných transakciách.

Ide o zámerné architektonické rozhodnutie, nie o medzeru, ktorá čaká na vyplnenie. Skriptovacia vrstva bitcoinu bola navrhnutá na jeden konkrétny účel: vynucovať podmienky pre utrácanie bitcoinov predvídateľným a bezpečným spôsobom vo veľkom meradle. Pre túto úlohu je bezstavovosť výhodou. Útoková plocha je menšia, vykonávanie je deterministické naprieč miliónmi nezávislých validátorov a na úrovni protokolu neexistuje žiadna kategória zneužitia inteligentných zmlúv, pretože na úrovni protokolu neexistujú žiadne zmluvy so stavom.

Projekty, ktoré si v rámci bitcoinu vyžadujú väčšiu programovateľnosť, ju budujú vo vrstvách. Sieť Lightning Network spracováva platby. Protokoly DLC spracovávajú finančné zmluvy, ktoré odkazujú na externé údaje. Systémy vrstvy 2, ako sú Ark a Liquid Network, riešia rôzne profily škálovateľnosti. Nič z toho si nevyžaduje úpravu skriptovacieho modelu základnej vrstvy.

Diskusia o zmluve: Čo by sa mohlo zmeniť v skripte bitcoinu

Vývoj skriptu bitcoinu bol vždy pomalý a konzervatívny. Najaktívnejšou oblasťou vývoja sú v súčasnosti opkódy „covenant“, ktoré predstavujú návrhy, ktoré by skriptu umožnili obmedziť nielen to, kto môže minúť výstup, ale aj to, ako musí výsledná transakcia vyzerať. Ide o významné rozšírenie vyjadrovacích možností skriptu.

K júnu 2026 sú najvýznamnejšími návrhmi:

  • OP_CTV (BIP-119, CheckTemplateVerify), ktorého autorom je Jeremy Rubin, pridáva jediný opkód, ktorý priradí UTXO ku konkrétnej, vopred určenej šablóne výdavkov, ktorá zahŕňa verziu transakcie, locktime, počet vstupov, sekvencie, počet výstupov a samotné výstupy. Je navrhnutý ako nerekurzívny, považuje sa za najkonzervatívnejší z hlavných návrhov a zameriava sa predovšetkým na trezory, riadenie preťaženia a určité vylepšenia siete Lightning. K aprílu 2026 má OP_CTV na stole konkrétne parametre nasadenia, ktoré špecifikujú signalizačné okno „Speedy Trial“, nedosiahol však široký konsenzus komunity potrebný na aktiváciu, podľa Analýza zmluvných podmienok spoločnosti BlockEden z apríla 2026.
  • OP_CAT (BIP-347), navrhnutý Ethanom Heilmanom a Arminom Sabourim, by opäť aktivoval operačný kód, ktorý Satoshi v roku 2010 deaktivoval. OP_CAT spája dve položky zo zásobníka, čo je síce jednoduché v popise, ale má široké dôsledky. V kombinácii so Schnorr-ovými podpismi umožňuje introspekciu transakcií podobnú mechanizmu „covenant“. Podľa analýzy reťazca od sCrypt z konca roka 2024 vygeneroval OP_CAT v testovacej sieti Bitcoin Signet výrazne viac transakcií vývojárov ako APO alebo CTV. OP_CAT je už aktívny v sieťach Liquid Network a Fractal Bitcoin, pričom mu neboli pripísané žiadne zneužitia. BIP-347 má oficiálne číslo návrhu a stojí za ním aktívny výskum, avšak aktivácia v hlavnej sieti si vyžaduje konsenzus komunity, ktorý zatiaľ neexistuje.
  • LNHANCE kombinuje OP_CTV s OP_CHECKSIGFROMSTACK (CSFS) a OP_INTERNALKEY, pričom sa zameriava na konkrétne vylepšenia pri vytváraní kanálov v sieti Lightning Network, vrátane neinteraktívneho otvárania kanálov a efektívnejšej správy kanálov s viacerými účastníkmi.

K júnu 2026 sa žiadna z nich v hlavnej sieti Bitcoinu neaktivovala. Technické nezhody medzi nimi sú z veľkej časti riešiteľné. Zložitejším problémom je mechanizmus aktivácie. Proces soft forku bitcoinu vyžaduje široký konsenzus a debata o dohode v sebe nesie zvyškové napätie z predchádzajúcich sporných aktualizácií. Z debaty jasne vyplýva, že skriptovacia vrstva bitcoinu má v rámci svojho konzervatívneho rámca významný priestor na rast. Otázkou, na ktorej sa pracuje, je postupnosť krokov a dohoda komunity, nie to, či má skriptovací jazyk budúcnosť.

Záver

Bitcoin Script je neviditeľná infraštruktúra, na ktorej stojí každá transakcia v sieti. Väčšina používateľov sa s ním nikdy priamo nestretne. Peňaženky vytvárajú platné skripty, podpisujú ich a vysielajú bez toho, aby kedykoľvek odhalili ich fungovanie. Každá platba, každý kanál Lightning, každý plán s časovým uzamknutím a každý trezor s viacnásobným podpisom však prechádza cez ten istý skriptovací jazyk Bitcoin založený na zásobníku, ktorý bol súčasťou protokolu už v roku 2009.

Odvtedy sa skriptovacia vrstva výrazne rozvinula – technológia P2SH umožnila praktické využívanie zložitých transakcií, SegWit znížil poplatky a umožnil fungovanie siete Lightning, a Taproot priniesol Schnorr-ove podpisy, ochranu súkromia založenú na MAST a dizajn operačných kódov Tapscriptu kompatibilný s budúcimi verziami. Návrhy zmlúv, o ktorých sa v súčasnosti aktívne diskutuje, predstavujú ďalšiu potenciálnu kapitolu. Či sa niektorý z nich aktivuje a v akom časovom horizonte, zostáva v polovici roka 2026 skutočne otvorené.

Na pochopenie skriptu nie je potrebné byť vývojárom. Je však potrebné si uvedomiť, že konzervatívnosť bitcoinu, zámerné obmedzenia, pomalé tempo aktualizácií a ne-Turingova úplnosť nie sú nedostatkom. Vlastnosti, vďaka ktorým je bitcoinový skript predvídateľný, sú tie isté vlastnosti, ktoré už šestnásť rokov udržujú konsenzuálnu vrstvu čistú.

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čnite bezpečne investovať s peňaženkou Bitcoin.com

Doposiaľ bolo vytvorených viac ako 85 miliónov peňaženiek. Všetko, čo potrebujete na bezpečný nákup, predaj, obchodovanie a investovanie do bitcoinu a kryptomien.

A screenshot of the Bitcoin.com Wallet app

Naskenujte a stiahnite si peňaženku Bitcoin.com

Naskenujte tento QR kód pomocou svojho mobilného zariadenia a budete automaticky presmerovaní na príslušnú stránku obchodu.