Úvod do práva smart kontraktů - část 1.
Kryptoměny s sebou přinesly technologii blockchainu, která má, byť zatím spíše teoretické, využití i v řadě jiných oblastí mimo alternativní internetová platidla – například k účetnictví,[1] správě identity[2] či vedení katastru nemovitostí[3] (a dalších registrů).
Využití smart kontraků je omezeno na transakce, jejichž provedení může nastat zápisem do blockchainu. Nedávalo by tedy smysl například uzavřít smart kontrakt na převod vlastnictví nemovitosti, protože převod vlastnictví nastává zápisem do katastru nemovitostí, takže smart kontrakt nemůže smlouvu automaticky provést. K rozsáhlejšímu využití smart kontraktů je tedy nutné nejdříve zajistit, aby obchody z různých oblastí mohly být uskutečňovány zápisem do blockchainu. Právě o to se snaží několik iniciativ, například Enterprise Ethereum Alliance, jejímiž členy jsou desítky velkých bank a technologických gigantů – mimo jiné JPMorgan Chase, Microsoft, Intel a ING.[5]
Kvůli velkému zájmu ze strany technologických lídrů lze předpokládat, že smart kontrakty budou využívány čím dál častěji. Zkoumání právních aspektů smart kontraktů je nezbytné pro jejich další využívání v praxi. V této práci se snažím shrnout základní poznatky o nich a vyvodit právně relevantní závěry. Právními aspekty smart kontraktů se česká právní literatura zatím nezabývala, proto čerpám z té zahraniční.
Pojem „smart kontrakt“
Definice pojmu smart kontrakt není nikterak pevná a různými autory jsou používány odlišné definice.[6] Zjednodušeně lze říci, že smart kontrakt je „kontrakt, který je automaticky prováděn programem.“[7] Takové vymezení je ale dle mého názoru příliš obecné (spadaly by do něj například i automaty na nápoje) a pro účely této práce proto budu využívat přesnější definici: „Smart kontrakt je dohoda stran uchovaná v podobě zdrojového kódu zaznamenaného na blockchainové platformě, která zajišťuje nezávislost a automatické provedení smart kontraktu na základě předem určených podmínek.“[8]
Některé definiční znaky je vhodné blíže vysvětlit:
- Podmínky smart kontraktu jsou vyjádřeny ve zdrojovém kódu. Již dnes je běžné, že některé smlouvy jsou uzavírány pomocí počítačových programů – typicky licenční smlouva u krabicového software či kupní smlouva na zboží prodávané přes e-shop. U těchto běžných smluv počítačový program ale pouze slouží k tomu, aby uživateli zobrazil smluvní podmínky a případně mu umožnil s nimi souhlasit kliknutím na tlačítko. Oproti tomu smluvní podmínky smart kontraktu jsou přímo vyjádřeny zdrojovým kódem – tedy ne běžnou řečí, ale programovacím jazykem.[9]
- Zdrojový kód je uchován na blockchainové platformě. Blockchainová platforma je taková platforma, která pro svůj chod využívá blockchain a zároveň umožňuje používat smart kontrakty. Například bitcoin v tomto smyslu není blockchainovou platformou. Na svém blockchainu totiž umožňuje uchovávat pouze záznamy o převodech bitcoinu z jednoho účtu na druhý. Aby mohl být považován za blockchainovou platformu, musel by kromě toho umožňovat i uchovávání záznamů v podobě zdrojového kódu, tedy smart kontraktů, a jejich provádění podle podmínek ve zdrojovém kódu stanovených. Implementace na blockchainové platformě je z hlediska definice smart kontraktu důležitá, protože blockchain zajišťuje zpětnou nezměnitelnost smart kontraktu (technologicky zajištěná důvěryhodnost je jednou z hlavních výhod blockchainu). Bez této implementace by smluvní strana musela důvěřovat té druhé, že software následně neupraví. Dnes nejvýznamnější (z hlediska tržní kapitalizace) blockchainovou platformou je ethereum.[10]
- Smart kontrakt je nezávislý. To znamená, že jeho další existence není závislá na vůli stran či nějaké vnější autoritě. Běžné smlouvy lze na základě dohody stran měnit či rušit, případně jednostranně vypovídat nebo od nich odstupovat. Když se strany nedohodnou, mohou se obrátit na rozhodce či soud, který autoritativně rozhodne o obsahu závazků. Zdrojový kód smart kontraktu je oproti tomu uložen jako záznam v blockchainové databázi a je nezměnitelný. Strany smart kontraktu se nanejvýš mohou dohodnout na uzavření nového smart kontraktu, který bude de facto změnou toho původního. Provedení původního kontraktu při splnění stanovených podmínek tím ale nebude dotčeno.
- Za předem (ve zdrojovém kódu) stanovených podmínek se jednotlivá ustanovení smart kontraktu automaticky provedou bez vůle stran. Tuto vlastnost blíže rozeberu v dalším textu.
První zvláštností smart kontraktů je, že jsou automaticky prováděné. U běžné smlouvy nehledě na právní zásadu „smlouvy mají být splněny“ závisí na vůli strany, zda svůj závazek vyplývající ze smlouvy splní. Pokud tak neučiní, může k tomu být druhou stranou donucena skrze soudní systém, ale až se značným zpožděním a nemalými náklady. Na rozdíl od toho smart kontrakt je sám sobě „exekutorem“ – dohodnutá ujednání jsou provedena nezávisle na vůli smluvních stran (důležitá je jen vůle při uzavírání smart kontraktu). Tato vlastnost je na smart kontraktech asi nejatraktivnější, protože snižuje potřebu důvěry v to, že druhá smluvní strana splní svou část závazku. Zároveň ale snaha o umožnění automatického provedení smluvních podmínek smart kontraktu přináší jedno obrovské úskalí: jak totiž ilustruji v dalších odstavcích, je složité zajistit, aby smart kontrakt vůbec mohl tuto vlastnost mít.
V současné době je reálné využití smart kontraktů omezeno na velmi málo případů, resp. na velmi málo smluvních typů. Důvodem je právě nemožnost zajistit automatické provedení smluvních podmínek. Využití smart kontraktů je technicky omezeno tím, že jejich nepřímým předmětem mohou být jen věci, jejichž vlastnictví či ovládání je digitalizované.[11] Jen s takovými věcmi je totiž možné pomocí blockchainu operovat a jen u nich tak může být automaticky proveden smluvní závazek, který se jich týká.[12] Příkladem možného využití smart kontraktu je crowdfunding, což je způsob získávání peněz formou sbírky na určitý projekt. V rámci crowdfundingu je většinou stanovena minimální částka, kterou musí dárci dohromady poslat, aby byl projekt považován za úspěšný a jeho autorovi byla vybraná částka předána. Podmínky jednoduchého smart kontraktu pro crowdfunding mohou znít zhruba takto: „Uživatel A pošle částku X na projekt P. Pokud součet darů na projekt P dosáhne minimálně částky H, budou peníze vyplaceny na účet autora projektu, jinak budou vráceny na účet uživatele A.“ Nicméně crowdfundingové projekty dnes typicky nebývají postaveny na principu čistého darování. Autoři projektu své potenciální podporovatele motivují stanovením odměn, které jim za zaslání peněžní částky pošlou (čím vyšší peněžní částka, tím lepší odměna). A už tato drobná změna smluvních podmínek znamená, že smart kontrakt nelze využít. Nelze totiž pomocí počítačového programu automaticky vykonat tu část smlouvy, kdy autor projektu zašle svému podporovateli odměnu.
Ani takovou právně jednoduchou smlouvu, jakou je smlouva o zápůjčce peněz, nelze dost dobře realizovat pomocí smart kontraktu. Honza a Petr spolu sice mohou uzavřít „smart kontrakt“ s následujícími podmínkami: „Honza půjčí Petrovi 100 etherů. Petr na oplátku bude každý měsíc po dobu následujících 12 měsíců Honzovi zasílat 10 etherů.“ Jenže k tomu, aby Petrův závazek mohl být automaticky splněn (přesněji, aby existovala jistota, že bude automaticky splněn), musel by smart kontrakt na Petrově účtu od počátku zablokovat 120 etherů. Taková smlouva by najednou pro Petra ztratila smysl. Přitom právě existence jistoty, že smlouva bude automaticky provedena, a nikoli pouhé možnosti, že se tak stane, je pro smart kontrakt klíčová (absence této vlastnosti znamená, že se o smart kontrakt podle výše uvedené definice vůbec nejedná). Ze smlouvy o zápůjčce peněz lze funkční smart kontrakt (nejen technicky funkční, ale i takový, že by dávalo smysl ho uzavřít) vytvořit zajištěním půjčky zástavním právem. Smart kontrakt by pak nemusel celou dlužnou částku blokovat, protože v případě nesplacení dluhu by se Honza mohl uspokojit ze zástavy.
Druhou zvláštností smart kontraktů je exaktnost smluvních ujednání. Jak již bylo zmíněno výše, podmínky smart kontraktu jsou vyjádřeny zdrojovým kódem a ne běžnou řečí. Zatímco běžná řeč často umožňuje více výkladů, zdrojový kód je všemi počítači vyložen vždy jen jedním způsobem. Ten, kdo danému programovacímu jazyku rozumí, tak bude přesně vědět, co a za jakých podmínek smart kontrakt provede. Smart kontrakt bude asi typicky vytvořen kombinací několika podmínek KDYŽ [je splněna nějaká podmínka], PAK [se něco stane]. Například „KDYŽ Honza zaplatí 3 bitcoiny na Petrův účet, PAK se převádí vlastnictví automobilu z Petra na Honzu.“ Jeden zdrojový kód povede ve všech právních systémech ke stejným výsledkům, což u právního textu platit nemusí. Na druhou stranu je zřejmé, že takto exaktní zápis lze použít jen u některých typů smluv a jen na některá ustanovení smlouvy. Například těžko lze počítačovým programem ověřit, že nějaký výrobek je bezvadný.
Třetí zvláštností je nezměnitelnost smart kontraktu po jeho uzavření. Jak jsem již uvedl výše, jednou vytvořený záznam (v našem případě smart kontrakt) v blockchainu již nelze zpětně měnit. To může působit značné potíže, zvlášť když strany po uzavření smart kontraktu zjistí, že v jeho zdrojovém kódu byla chyba, nebo prostě jen chtějí smluvní vztah mezi sebou změnit. Je ale možné do zdrojového kódu zanést možnost, aby byla jeho budoucí změna umožněna.[13]
[2] ARUN, Jai Singh. Reimagining the Future of Identity Management With Blockchain. Security Intelligence. 2017. [online]. K dispozici >>> zde [cit. 2017-03-07]
[3] CHAVEZ - DREYFUSS, Gertrude. Honduras to build land title registry using bitcoin technology. Reuters. 2015. [online]. K dispozici >>> zde [cit. 2017-04-16]
[4] V práci používám pojem smart kontrakty; jedná se o terminus technicus, který zatím nemá ustálený český ekvivalent.
[5] HACKETT, Robert. Big Business Giants From Microsoft to J.P. Morgan Are Getting Behind Ethereum. Fortune. 2017. K dispozici >>> zde [cit. 2017-04-16].
[6] STARK, Josh. Making Sense of Blockchain Smart Contracts. CoinDesk, 2016. K dispozici >>> zde [cit. 2017-04-16].
[7] MORINI, Massimo. From “Blockchain hype” to a real business case for Financial Markets. SSRN, 2016. Str. 2. K dispozici >>> zde [cit. 2017-04-16].
[8] SAVELYEV, Alexander. Contract Law 2.0: «Smart» Contracts As the Beginning of the End of Classic Contract Law. National Research University Higher School of Economics, 2016. str. 2. K dispozici >>> zde [cit. 2017-04-16].
[9] Morini, M. 2016. op. cit. str. 3
[10] Platforma ethereum na rozdíl od bitcoinu umožňuje jeho uživatelům uzavírat smart kontrakty. POPPER, Nathaniel. Ethereum, a Virtual Currency, Enables Transactions That Rival Bitcoin’s. The New York Times. 2016. K dispozici >>> zde [cit. 2017-04-16].
[11] Do první kategorie mohou patřit například zaknihované akcie či virtuální měny, do druhé například zámek od dveří, který lze zablokovat přes internet.
[12] PERUGINI, Maria Letizia; DAL CHECCO, Paolo. Smart Contracts: a preliminary evaluation. 2015. str. 10. K dispozici >>> zde [cit. 2017-04-16].
[13] Hess, Tjaden. Upgradeable smart contracts. K dispozici >>> zde [cit. 2017-04-16].