Chytrý kontrakt

Jako „chytrý kontrakt“ (anglicky smart contract) je označován protokol či software, jenž zajišťuje, ověřuje anebo vynucuje vyjednání či provedení kontraktu (smlouvy, dohody). To může být provedeno způsobem, který eliminuje nutnost skutečné smlouvy uzavřené mezi lidmi. Chytré kontrakty obvykle poskytují uživatelské rozhraní a často emulují logiku smluvních ujednání. Zastánci chytrých kontraktů tvrdí, že díky této vlastnosti může být spousta smluvních ujednání částečně či úplně sebe-vykonávající, sebe-vynucující, nebo oboje. Chytré kontrakty mají potenciál za nižších nákladů poskytovat větší bezpečnost a vymahatelnost než klasické právo.

Princip

Nick Szabo, průkopník termínu chytrý kontrakt, uvádí[1] jako typický a snadno představitelný příklad běžný automat na pití. Po vhození mince dojde buďto k vydání nápoje, nebo k vrácení peněz. Na to, aby vše proběhlo jak má, dohlíží jednoduchý program běžící v elektronice automatu, který kontroluje validitu mincí a velikost sumy, provádí vrácení přeplatků či případné stornování nabídky. Tento program můžeme označit chytrým kontraktem, jenž uzavírá smlouvu garantující komukoliv s dostatkem mincí získání nápoje.

Dalším triviálním příkladem může být účetní program, jenž dohlíží na stav kreditu SIM karty mobilního telefonu. Dokud je kredit dostatečný, program umožňuje telefonovat, posílat SMS a jinak využívat služeb mobilní sítě. Jakmile stav kreditu poklesne na nulu, program tyto možnosti zruší a uživateli odešle hlášení o nedostatečném kreditu, který je později možno obnovit. To vše automatizovaně, bez zásahu člověka.

Důvěryhodnost kontraktu

Oba dva uvedené příklady principu chytrých kontraktů nesplňují definici úplně a neodpovídají tedy chápání pojmu tak, jak se ustálil v poslední době. K tomu chybí ještě dostupnost znění kontraktu a důvěryhodná platforma, obecně tedy možnost formální verifikace ještě před samotným přistoupením na smlouvu.

V příkladě automatu na pití neexistuje žádná možnost, jak se s chytrým kontraktem seznámit před započetím transakce. Zdrojový kód programu a výpočetní platforma není dostupná oběma stranám a uživatel je tak nucen spoléhat na tvrzení výrobce automatu. To nemusí nutně vadit v případě automatu na pití, kde se jedná o minimální částky, problém by však mohl nastat v případě bankovního automatu, kam by si chtěl uživatel uložit celé své jmění.

Tento nedostatek může být odstraněn díky asymetrické kryptografii a technologii blockchainu, jíž lze vytvořit důvěryhodnou platformu, která zajistí (matematicky) zaručené a transparentní (oběma stranami ověřitelné) vykonání kódu.

Příklad

Příkladem skutečného chytrého kontraktu může být například program (dále jen kontrakt) nahraný do virtuálního stroje sítě Ethereum. U tohoto kontraktu je garantováno sítí, že bude proveden dle podmínek jeho zdrojového kódu, který je veřejně dostupný. Uživatelé mají možnost si zdrojový kód prostudovat a pozorovat jeho běh díky veřejnému blockchainu.

Kontrakt umožní dvěma samostatným uživatelům vložit na účet kontraktu[jaký?] částku 1000 Etherů, dohromady tedy 2000 Etherů sloužících jako jistina. Tuto částku poté uživatelům vrátí pouze v případě, že oba potvrdí úspěšné uskutečnění na kontraktu nezávislé transakce T.

Poté, co oba uživatelé tuto částku uhradí na účet kontraktu, dá tento oběma uživatelům vědět, že obdržel jistinu a nyní očekává potvrzení transakce T od obou z nich. Uživatelé poté mohou provést transakci T, například doručení zboží či nějaký jiný finančně riskantní podnik, u kterého existuje pravděpodobnost podvodu.

Pokud transakce T proběhne v pořádku, oba uživatelé dají kontraktu vědět, že transakce proběhla v pořádku. V tom případě jim oběma kontrakt vrátí vložené Ethery, které byly předtím zaslány na jeho účet.

Jestliže však transakce T proběhne špatně, tj. například kupující se pokusí okrást prodávajícího, nebo naopak, kontrakt peníze nevyplatí a po nějaké době je převede na svůj účet. Oba dva uživatelé tedy přijdou o veškeré vložené Ethery.

Pokud je vložená částka větší než předpokládaná hodnota transakce T, oba uživatelé jsou ekonomicky motivováni transakci provést správně. Tím je zajištěna sebe-vymahatelnost kontraktu. Kontrakt navíc představuje Distribuovanou Autonomní Organizaci, neboť získává peníze, které uživatelé nechají propadnout a tedy i prostředky na svůj vlastní běh.

Výše uvedený kontrakt se dá chápat jako nástroj k navázání důvěry ve výši složené částky mezi jinak nedůvěryhodnými stranami v nedůvěryhodném prostředí. Každá ze stran může důvěřovat do úrovně složené částky, že druhá strana má zájem transakci korektně dokončit a získat zpět záruku, kterou poskytla na korektní provedení transakce.

Implementace

  • Ethereum - Decentralizovaná kryptoměna a virtuální stroj pro běh chytrých kontraktů

Související články

Externí odkazy

Reference

V tomto článku byl použit překlad textu z článku Smart contract na anglické Wikipedii.

  1. SZABO, Nick. The Idea of Smart Contracts [online]. 1997. Dostupné v archivu pořízeném z originálu. (anglicky)