**Nutileping** ehk lepingumonitor (ingl *Smart Contract*) on arvestusraamatu kirje, mis esitab mingit kasutajatevahelist lepingut. Nutilepingud võimaldavad kasutajatel luua ja kinnitada digitaalseid lepinguid ning jõustada ja kontrollida nende lepingute täitmist. Nutilepingute abil loodud lepingud ja tehtud tehingud on plokiahela peal avalikult jälgitavad ning neid ei ole võimalik pärast tehingu sooritamist enam muuta ega tagasi võtta. Nutilepinguid esitles esmakordselt Nick Szabo, kes kasutas seda terminit 1994. aastal.

Nutilepingute eesmärgiks on pakkuda kasutajatele traditsiooniliste lepingutega võrreldes suuremat turvalisust, paremat ökonoomsust ja kiirust ning väiksemaid tehingukulusid. Samuti on täheldatud, et paljude traditsiooniliste lepingute tingimusi ja punkte on võimalik kas osaliselt või täielikult teisendada isetäituvaks ja isejõustuvaks.

Ajalugu
-------

Kui esimesena mainiti nutilepinguid 1994. aastal, siis praktilised lahendused said võimalikuks alles tänu plokiahela tehnoloogiate tekkimisele 2008. aastal. Esimesed taolised tehnoloogiad, näiteks Bitcoin, toetasid küll nutilepinguid, kuid seda vaid algeliselt. Puudus Turingi-täielikkus ja lihtne viis nutilepingute loomiseks. Selle probleemi lahendamiseks tuli 2013. aastal oma ideega välja Vitalik Buterin, kes võttis eesmärgiks luua keskkond detsentraliseeritud rakenduste jaoks. Selle projekti nimeks sai Ethereum, mis võimaldas luua Turing-täielikke rakendusi, kasutades samal ajal detsentraliseeritud plokiahela tehnoloogiat.

Tingimused nutilepingu loomiseks
--------------------------------

Nutilepingute olemasolu eelduseks on teatavad tingimused:

1. Avaliku võtme krüptograafia kasutamine *–* peamiselt turvaliste juurdepääsuvõtmete loomiseks, mille abil saab plokiahela keskkonnas kasutajat omada ja enda tehinguid allkirjastada.
2. Avatud ja detsentraliseeritud infokeskkonna ehk plokiahela olemasolu *–* koht, kus turvaliselt hoiustada nutilepingut ning mis loob nutilepingule töötamiseks vajalikud sisend- ja väljundinfokanalid.
3. Detsentraliseeritud Turing-täieliku täitmiskeskonna olemasolu *–* koht, kus turvaliselt nutilepingu programmi täita, näiteks Ethereum, Codius, Counterparty.

Turvaprobleemid
---------------

Kuna nutilepingute loomise üheks eelduseks on detsentraliseeritud ja avaliku plokiahela kasutamine, siis on sinna üles pandud nutileping kõigile nähtav ja kättesaadav. See loob aga olukorra, kus nutilepingus olevad vead, sealhulgas ka turvaaugud, on kõigile nähtavad. Samuti ei ole enamasti võimalik nutilepingut hiljem muuta, seega leitud vead jäävadki plokiahelasse ja lepingusse alles.

Üks selline rünnak viidi edukalt läbi 2016. aasta juunis The DAO vastu, kus ründaja sai enda kontrolli alla 50 miljoni USA dollari väärtuses Etherit firma Ethereumi kontodelt. The DAO nutilepingute tingimuste tõttu pidi ründaja aga 28 päeva ootama, et raha täielikult enda valdusse saada. Selle aja jooksul otsustasid Ethereumi arendajad lõhestada plokiahela (ingl *hard fork*), mille abil liigutati varastatud raha tagasi nende omanikele.

Nutilepingute turvaprobleemid tulenevadki enamasti nutilepingu enda koodi, kompilaatori ja täitmiskeskonna vigadest, võimalik on ka rünnata plokiahelat ennast. Keerulisust lisavad ka asjaolud, et nutilepingud on kõigile nähtavad, neid ei saa hiljem muuta ning puudub keskne allikas dokumenteerimaks leitud turvaauke, teadaolevaid rünnakuid ja problemaatilisi praktikaid.

Viited
------

1. ↑  AS Cybernetica. "Krüptograafiliste algoritmide elutsükli uuring (2017)". Originaali arhiivikoopia seisuga 4.12.2018. Vaadatud 03.11.2018.
2. 1 2  Cointelegraph. "Smart Contracts, Explained". Vaadatud 03.11.2018.
3. ↑  Nick Szabo. "Smart Contracts". Vaadatud 03.11.2018.
4. ↑  Satoshi Nakamoto. "Bitcoin: A Peer-to-Peer Electronic Cash System" (PDF). Vaadatud 03.11.2018.
5. ↑  "White Paper ethereum/wiki Wiki - GitHub". Vaadatud 03.11.2018.
6. ↑  Cryptonet. "Смарт-контракты: как использовать и насколько надежны для сделок". Vaadatud 03.11.2018.[*alaline kõdulink*]
7. ↑  IEEE Spectrum. "Ethereum's $150-Million Blockchain-Powered Fund Opens Just as Researchers Call For a Halt". Vaadatud 03.11.2018.
8. ↑  Quinn DuPont. "Experiments in Algorithmic Governance: A history and ethnography of "The DAO," a failed Decentralized Autonomous Organization" (PDF). Originaali (PDF) arhiivikoopia seisuga 30. juuli 2017. Vaadatud 03.11.2018.
9. ↑  "Report of Investigation Pursuant to Section 21(a) of the Securities Exchange Act of 1934: The DAO" (PDF). Vaadatud 03.11.2018.
10. ↑  Ardit Dika. "Ethereum Smart Contracts: Security Vulnerabilities and Security Tools" (PDF). Originaali (PDF) arhiivikoopia seisuga 11.08.2018. Vaadatud 29.11.2018.