• Nebyly nalezeny žádné výsledky

Bc.PavelBeran Anal´yzaIOTAprotokoluajehopˇr´ıpadyuˇzit´ı Diplomov´apr´ace

N/A
N/A
Protected

Academic year: 2022

Podíl "Bc.PavelBeran Anal´yzaIOTAprotokoluajehopˇr´ıpadyuˇzit´ı Diplomov´apr´ace"

Copied!
117
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Ing. Michal Valenta, Ph.D.

vedoucí katedry doc. RNDr. Ing. Marcel Jiřina, Ph.D.

děkan Název: Analýza protokolu IOTA a jeho případy užití

Student: Bc. Pavel Beran

Vedoucí: Ing. Petra Pavlíčková, Ph.D.

Studijní program: Informatika

Studijní obor: Webové a softwarové inženýrství Katedra: Katedra softwarového inženýrství Platnost zadání: Do konce letního semestru 2019/20

Pokyny pro vypracování

Cílem práce je analyzovat protokol IOTA včetně jeho výhod a nevýhod se zaměřením především na oblast Internet of Things. Současně s tím zanalyzovat možné případy užití protokolu a služby, které díky němu mohou vzniknout. V poslední řadě implementovat jádro jednoho z probraných případů užití.

1) Zanalyzujte Internet of Things, jeho dopady a problémy, se kterými se potýká.

2) Zanalyzujte protokol IOTA a vysvětlete hlavní podstatu jeho fungování.

3) Zhodnoťte vhodnost protokolu IOTA pro využití v rámci Internet of Things, vzhledem k jeho specifickým požadavkům na technologie.

4) Prozkoumejte možné případy užití protokolu IOTA, případně v kombinaci s IoT a obchodní modely a aplikace, které díky nim mohou vzniknout.

5) Zanalyzujte možnosti vývoje pomocí protokolu IOTA.

6) Vyberte jednu uvedenou aplikaci a technicky ji zanalyzujte a implementujte jádro daného systému s použitím protokolu IOTA.

7) Implementaci ekonomicky zhodnoťte a doporučte další vývoj/postup.

Seznam odborné literatury

Dodá vedoucí práce.

(2)
(3)

Anal´ yza IOTA protokolu a jeho pˇ r´ıpady zit´ı

Bc. Pavel Beran

Katedra Softwarov´eho Inˇzen´yrstv´ı

Vedouc´ı pr´ace: Ing. Petra Pavl´ıˇckov´a, Ph.D.

29. dubna 2019

(4)
(5)

M´e podˇekov´an´ı patˇr´ı pan´ı Ing. Petˇre Pavl´ıˇckov´e, Ph.D. za konzultace pˇri zpra- cov´av´an´ı t´eto pr´ace a za jej´ı celkov´e veden´ı.

(6)
(7)

Prohlaˇsuji, ˇze jsem pˇredloˇzenou pr´aci vypracoval(a) samostatnˇe a ˇze jsem uvedl(a) veˇsker´e pouˇzit´e informaˇcn´ı zdroje v souladu s Metodick´ym pokynem o etick´e pˇr´ıpravˇe vysokoˇskolsk´ych z´avˇereˇcn´ych prac´ı.

Beru na vˇedom´ı, ˇze se na moji pr´aci vztahuj´ı pr´ava a povinnosti vypl´yvaj´ıc´ı ze z´akona ˇc. 121/2000 Sb., autorsk´eho z´akona, ve znˇen´ı pozdˇejˇs´ıch pˇredpis˚u.

V souladu s ust.§46 odst. 6 tohoto z´akona t´ımto udˇeluji nev´yhradn´ı opr´avnˇen´ı (licenci) k uˇzit´ı t´eto moj´ı pr´ace, a to vˇcetnˇe vˇsech poˇc´ıtaˇcov´ych program˚u, jeˇz jsou jej´ı souˇc´ast´ı ˇci pˇr´ılohou, a veˇsker´e jejich dokumentace (d´ale souhrnnˇe jen

”D´ılo“), a to vˇsem osob´am, kter´e si pˇrej´ı D´ılo uˇz´ıt. Tyto osoby jsou opr´avnˇeny D´ılo uˇz´ıt jak´ymkoli zp˚usobem, kter´y nesniˇzuje hodnotu D´ıla, a za jak´ymkoli

´

uˇcelem (vˇcetnˇe uˇzit´ı k v´ydˇeleˇcn´ym ´uˇcel˚um). Toto opr´avnˇen´ı je ˇcasovˇe, teri- tori´alnˇe i mnoˇzstevnˇe neomezen´e. Kaˇzd´a osoba, kter´a vyuˇzije v´yˇse uvedenou licenci, se vˇsak zavazuje udˇelit ke kaˇzd´emu d´ılu, kter´e vznikne (byt’ jen zˇc´asti) na z´akladˇe D´ıla, ´upravou D´ıla, spojen´ım D´ıla s jin´ym d´ılem, zaˇrazen´ım D´ıla do d´ıla souborn´eho ˇci zpracov´an´ım D´ıla (vˇcetnˇe pˇrekladu), licenci alespoˇn ve v´yˇse uveden´em rozsahu a z´aroveˇn zpˇr´ıstupnit zdrojov´y k´od takov´eho d´ıla ale- spoˇn srovnateln´ym zp˚usobem a ve srovnateln´em rozsahu, jako je zpˇr´ıstupnˇen zdrojov´y k´od D´ıla.

V Praze dne 29. dubna 2019 . . . .

(8)

c 2019 Pavel Beran. Vˇsechna pr´ava vyhrazena.

Tato pr´ace vznikla jako ˇskoln´ı d´ılo na ˇCesk´em vysok´em uˇcen´ı technick´em v Praze, Fakultˇe informaˇcn´ıch technologi´ı. Pr´ace je chr´anˇena pr´avn´ımi pˇredpisy a mezin´arodn´ımi ´umluvami o pr´avu autorsk´em a pr´avech souvisej´ıc´ıch s pr´avem autorsk´ym. K jej´ımu uˇzit´ı, s v´yjimkou bez´uplatn´ych z´akonn´ych licenc´ı a nad r´amec opr´avnˇen´ı uveden´ych v Prohl´aˇsen´ı na pˇredchoz´ı stranˇe, je nezbytn´y sou- hlas autora.

Odkaz na tuto pr´aci

Beran, Pavel.Anal´yza IOTA protokolu a jeho pˇr´ıpady uˇzit´ı. Diplomov´a pr´ace.

Praha: ˇCesk´e vysok´e uˇcen´ı technick´e v Praze, Fakulta informaˇcn´ıch techno- logi´ı, 2019.

(9)

Internet vˇec´ı je jedn´ım z modern´ıch koncept˚u, kter´y vˇsak st´ale hled´a techno- logie, o kter´e by se v budoucnu op´ıral. D˚uvodem jsou pˇredevˇs´ım jeho rozs´ahl´e poˇzadavky, kter´e na dan´e technologie klade. Jednou z tˇechto technologi´ı, kter´e si kladou za c´ıl st´at se standardem v r´amci Internetu vˇec´ı, je protokol IOTA.

Jedn´a se o jednu z implementac´ı distribuovan´e ´uˇcetn´ı knihy. V r´amci pr´ace je nejprve pˇredstavena samotn´a technologie a koncepty, na kter´ych je zaloˇzena.

N´aslednˇe je protokol analyzov´an z hlediska pouˇzitelnosti v r´amci Internetu vˇec´ı a to pˇredevˇs´ım z hlediska specifick´ych vlastnost´ı, kter´e by mˇel splˇnovat.

Z´aroveˇn jsou pˇredstaveny nov´e obchodn´ı modely a aplikace, kter´e d´ıky vlast- nostem protokolu mohou vzniknout. Jedna z tˇechto aplikac´ı je n´aslednˇe imple- mentov´ana a tato implementace je vyuˇzita ke zhodnocen´ı moˇznost´ı v´yvoje nad danou technologi´ı. Pr´ace tedy pˇredstavuje nov´y protokol IOTA a hodnot´ı jej jako technologii pro IoT, projekt jako celek a z´aroveˇn jako technologii urˇcenou pro stavbu dalˇs´ıch aplikac´ı.

Kl´ıˇcov´a slova IOTA protokol, anal´yza, distribuovan´a ´uˇcetn´ı kniha, Internet vˇec´ı, Node.js

(10)

The Internet of Things is one of the modern concepts that are still searching for its future main technologies. The reason for this are mainly its extensive technological requirements. One of these technologies that aims to become one of the IoT standards is IOTA protocol. It is one of the implementations of distributed ledger. In the first part this thesis presents the protocol itself and the main technologies and concepts it is based on. After that the protocol is analysed, especially its usability for the Internet of Things due to its specific requirements. The thesis also presents some new business models and appli- cations that can be created thanks to the protocol. One of these applications is implemented in the last part and the implementation serves as a basis for the analysis of the development upon the protocol. Overall the thesis presents the IOTA protocol and analyses it as a new technology for IoT, as a project itself and also as a technology intended to be used for application development.

Keywords IOTA protocol, analysis, distributed ledger, Internet of Things, Node.js

(11)

Uvod´ 1

1 C´ıle a metodika 3

1.1 C´ıle . . . 3

1.2 Metodika . . . 3

1.3 Doba vzniku pr´ace . . . 4

2 Reˇserˇsn´ı ˇc´ast 5 2.1 Internet vˇec´ı . . . 5

2.2 IOTA . . . 10

2.3 Shrnut´ı kapitoly . . . 28

3 Analytick´a ˇc´ast 29 3.1 Dopady a probl´emy Internetu vˇec´ı . . . 29

3.2 Vhodnost IOTA protokolu v r´amci IoT ekosyst´emu . . . 30

3.3 Aplikace IOTA protokolu a obchodn´ı modely . . . 41

3.4 Shrnut´ı kapitoly . . . 45

4 Implementace 47 4.1 Uvod k implementaci . . . .´ 47

4.2 Analytick´a ˇc´ast . . . 47

4.3 Implementaˇcn´ı ˇc´ast . . . 67

4.4 Zhodnocen´ı a ovˇeˇren´ı ˇreˇsen´ı . . . 83

4.5 Shrnut´ı kapitoly . . . 85

5 Doporuˇcen´ı dalˇs´ıho postupu 87 5.1 Implementovan´y syst´em . . . 87

5.2 IOTA jako projekt . . . 88

Z´avˇer 91

(12)

A Seznam pouˇzit´ych zkratek 99

B Obsah pˇriloˇzen´eho CD 101

(13)

2.1 Orientovan´y acyklick´y graf . . . 12

2.2 L´ın´a transakce 14 potvrzuj´ıc´ı transakce star´e . . . 14

4.1 Diagram pˇr´ıpad˚u uˇzit´ı . . . 52

4.2 Diagram propojen´ı infrastruktury . . . 63

4.3 Sch´ema datab´aze . . . 66

4.4 Rozloˇzen´ı aplikace . . . 71

4.5 Algoritmus zpracov´an´ı nov´e transakce v Tangle . . . 79

(14)
(15)

2.1 Pˇrevody jednotek IOTA . . . 19

(16)
(17)

Internet se od sv´eho vzniku v ˇsedes´at´ych, ˇci sedmdes´at´ych letech (n´azory na rok vzniku internetu se ˇcasto r˚uzn´ı, o ˇcemˇz se zmiˇnuji v kapitole o struˇcn´e historii internetu) pomˇernˇe z´asadnˇe vyvinul. Z jednoduch´e komunikaˇcn´ı s´ıtˇe pro vyvolen´a zaˇr´ızen´ı se stal hromadnˇe pouˇz´ıvanou technologi´ı, bez kter´e by si velk´a ˇc´ast populace nedok´azala ˇzivot pˇredstavit.

V souˇcasn´e dobˇe je na internetu v´ıce neˇz 4 miliardy uˇzivatel˚u a dennˇe je na internetu vyprodukov´ano v´ıce neˇz 2,3 miliardy gigabyt˚u dat. Tento objem dat s kaˇzd´ym dalˇs´ım rokem roste a tempo r˚ustu se zrychluje. Toto je hlavn´ım d˚uvodem raketov´eho vzestupu obor˚u jako jsou obory zab´yvaj´ıc´ı se anal´yzou a zpracov´an´ım Velk´ych dat (Big data - datov´e soubory takov´e velikosti, kter´a neumoˇzˇnuje jejich zpracov´an´ı v norm´aln´ım ˇcase), nebo napˇr´ıklad strojov´eho uˇcen´ı. Vzestup tˇechto obor˚u nevych´az´ı, jak se obˇcas mylnˇe domn´ıv´a, z r˚ustu v´ypoˇcetn´ı kapacity hardware. Ten se naopak postupnˇe zpomaluje a Moor˚uv z´akon jiˇz nˇekolik posledn´ıch let neplat´ı. Vych´az´ı ale hlavnˇe pr´avˇe z expo- nenci´aln´ıho r˚ustu vyprodukovan´ych dat ve svˇetˇe. D´ıky tomu se stroje mohou uˇcit na velk´em poˇctu uk´azkov´ych dat a t´ım se efektivnˇe zlepˇsovat. St´ale vˇsak nejsou kapacity na efektivn´ı zpracov´an´ı vˇsech produkovan´ych dat a re´alnˇe vyuˇzit´ych je z tohoto d˚uvodu ve v´ysledku pouh´y zlomek.

S internetem a produkovan´ymi daty je ´uzce spojen obor informaˇcn´ıch tech- nologi´ı, kter´y se stal velk´ym fenom´enem posledn´ıch nˇekolika let a to Inter- net vˇec´ı (Internet of Things). Z´akladn´ı myˇslenkou IoT je propojen´ı fyzick´ych zaˇr´ızen´ı pomoc´ı jedn´e s´ıtˇe, nebo skupiny v´ıce propojen´ych s´ıt´ı. Zaˇr´ızen´ı po- tom budou moci komunikovat, vymˇeˇnovat si data a na jejich z´akladˇe prov´adˇet urˇcit´e ´ukony. Podle odhad˚u by mˇelo b´yt v roce 2020 v IoT pˇripojeno kolem 30 miliard zaˇr´ızen´ı. Budouc´ım c´ılem je to, aby prakticky kaˇzd´a vˇec byla pˇripojena do IoT, sb´ırala data o sobˇe a o okol´ı a tyto data pot´e nˇekam odes´ılala, pˇr´ıpadnˇe pˇrij´ımala data a na jejich z´akladˇe se rozhodovala, co dˇelat. Z toho je oˇcividn´e, ˇ

ze v dohledn´e budoucnosti budou internetem, pˇr´ıpadnˇe dalˇs´ımi s´ıtˇemi, proudit obrovsk´e objemy dat, nesrovnateln´e s t´ım, co jimi proud´ı nyn´ı. Toto je tak´e

(18)

jedna z pˇrek´aˇzek, s kter´ymi se IoT pot´yk´a. Aktu´aln´ı standardn´ı komunikaˇcn´ı technologie nejsou schopn´e efektivnˇe zvl´adat tyto objemy dat. A toto je pouze jeden z probl´em˚u, kter´y mus´ı IoT do budoucna nˇejak´ym zp˚usobem vyˇreˇsit, pokud m´a b´yt dosaˇzeno toho, co se oˇcek´av´a.

Vedle IoT je dalˇs´ım fenom´enem posledn´ı doby blockchain 1 a dalˇs´ı jin´e implementace decentralizovan´ych ´uˇcetn´ıch knih. Jednou z nich je takzvan´y Tangle, tedy orientovan´y acyklick´y graf vytvoˇren´y spoleˇcnost´ı IOTA. Tangle a technologie s n´ım spojen´e by d´ıky sv´ym vlastnostem mˇely b´yt vhodn´e jako protokol pr´avˇe pro IoT. IOTA se snaˇz´ı sv˚uj IOTA protokol zaloˇzen´y pr´avˇe na technologii orientovan´eho acyklick´eho grafu ustanovit jako nepsan´y standard pro Internet vˇec´ı. Protokol je zat´ım v testovac´ı f´azi a velkou ˇc´ast v´yvoje m´a st´ale pˇred sebou. IOTA Foundation, neziskov´a organizace stoj´ıc´ı za protoko- lem, s n´ım m´a ale pomˇernˇe velik´e pl´any a jak uˇz bylo avizov´ano, usiluj´ı o to, aby se z nˇej stal standard pro IoT. Z tohoto d˚uvodu jsem se rozhodl v r´amci pr´ace zamˇeˇrit na IOTA protokol, jak´ym zp˚usobem funguje a jestli je vhodn´ym ˇreˇsen´ım pro Internet vˇec´ı.

1Cesk´ˇ ym ekvivalentem slova blockchain byl dle volby na port´alu blockchain.cz zvolen yraz

bloˇcenka“

(19)

Kapitola 1

C´ıle a metodika

1.1 C´ıle

Hlavn´ımi c´ıli pr´ace je prov´est anal´yzu protokolu IOTA a moˇznost´ı jeho vyuˇzit´ı v r´amci Internetu vˇec´ı, probrat moˇzn´e pˇr´ıpady uˇzit´ı dan´eho protokolu a nov´e obchodn´ı modely a aplikace, kter´e mohou d´ıky nˇemu vzniknout a v posledn´ı ˇradˇe vybrat jednu z tˇechto aplikac´ı a implementovat j´adro syst´emu, kter´y bude aplikace vyuˇz´ıvat.

Za ´uˇcelem anal´yzy vyuˇzit´ı IOTA protokolu pro Internet vˇec´ı je nutn´e za- nalyzovat Internet vˇec´ı jako takov´y a zamˇeˇrit se prim´arnˇe na hlavn´ı koncepty o kter´e se op´ır´a. U tˇechto koncept˚u a poˇzadavk˚u, kter´e klade na vyuˇz´ıvan´e technologie zanalyzovat, jestli IOTA poˇzadavky splˇnuje a na z´akladˇe toho rozhodnout o vhodnosti projektu pro pouˇzit´ı v r´amci IoT ekosyst´emu.

Jelikoˇz je protokol jeˇstˇe ve v´yvoji a jeho fin´aln´ı podoba se vˇsemi funk- cemi by mˇela b´yt aˇz v budoucnosti, je tak´e potˇreba zamˇeˇrit se na roadmapu projektu.

Za ´uˇcelem vyvinut´ı j´adra aplikace na protokolu IOTA bude potˇreba zana- lyzovat i moˇznosti v´yvoje na t´eto technologii. Aktu´alnˇe je ve v´yvoji nˇekolik knihoven pro r˚uzn´e jazyky a z´aroveˇn vznik´a pˇr´ımo nov´y funkcion´aln´ı jazyk pro tento protokol. Bude tedy tˇreba rozhodnout, jak´e technologie budou pro v´yvoj vyuˇzity a jejich volbu od˚uvodnit.

Veskrze jsou c´ıle pr´ace pˇredevˇs´ım analytick´eho a reˇserˇsn´ıho charakteru.

Jelikoˇz se jedn´a o velmi novou technologii, vyuˇz´ıvaj´ıc´ı pomˇernˇe nezn´am´e a no- v´e principy, je anal´yza rozhodnˇe na m´ıstˇe. Prim´arn´ım c´ılem pr´ace je tedy sezn´amit ˇcten´aˇre s protokolem IOTA a d´at mu vhled do toho, jak funguje a proˇc by mˇel, pˇr´ıpadnˇe nemˇel b´yt vyuˇz´ıv´an pro Internet vˇec´ı.

1.2 Metodika

Metodika na z´akladˇe kter´e bude tato diplomov´a pr´ace vznikat pˇr´ımo vych´az´ı z c´ıl˚u. Pr´ace bude m´ıt tˇri hlavn´ı ˇc´asti a to ˇc´ast reˇserˇsn´ı, analytickou a imple-

(20)

mentaˇcn´ı.

Prvn´ı, reˇserˇsn´ı ˇc´ast by mˇela sezn´amit ˇcten´aˇre s histori´ı hlavn´ıch technologi´ı o kter´ych se bude d´ale v pr´aci mluvit, tedy internetu samotn´eho, n´aslednˇe Internetu vˇec´ı a nakonec IOTA protokolu. Tam kde je to potˇreba by tak´e mˇelo b´yt vysvˇetleno, jak dan´a technologie funguje, tedy na ˇcem je zaloˇzen´a.

Tato ˇc´ast by mˇela slouˇzit jako podklad pro dalˇs´ı analytickou ˇc´ast.

Analytick´a ˇc´ast, kter´a bude navazovat na reˇserˇsi by mˇela jiˇz prob´ırat jed- notliv´e ot´azky, kter´e byly vytyˇceny v r´amci c´ıl˚u pr´ace. Hlavn´ımi t´ematy tedy budou probl´emy s kter´ymi se Internet vˇec´ı pot´yk´a a v n´avaznosti na to anal´yza IOTA protokolu a jeho vhodnosti jako standardu pro Internet vˇec´ı. Pot´e bu- dou probr´any jednotliv´e uk´azkov´e obchodn´ı modely a aplikace, kter´e d´ıky protokolu mohou vzniknout.

V posledn´ı hlavn´ı ˇc´asti, tedy ˇc´asti implementaˇcn´ı se bude implementovat j´adro jedn´e z aplikac´ı z analytick´e ˇc´asti. Tato ˇc´ast bude m´ıt tak´e svou analy- tickou ˇc´ast, kter´a se ale bude uˇz zab´yvat pˇr´ımo ot´azkami spjat´ymi s v´yvojem, tedy architekturou syst´emu, pouˇzit´ymi technologiemi a dalˇs´ımi vˇecmi potˇreb- n´ymi pro v´yvoj. N´aslednˇe bude vysvˇetlena implementace jako takov´a, coˇz bude obohaceno uk´azkami k´odu, pˇr´ıpadnˇe pseudok´od˚u a dalˇs´ıch vˇec´ı, kter´e ˇcten´aˇri daj´ı alespoˇn ˇc´asteˇcn´y vhled do implementace. Na z´avˇer kapitoly bude samozˇrejmˇe zhodnocena implementace a doporuˇceny dalˇs´ı kroky pro v´yvoj aplikace.

1.3 Doba vzniku pr´ ace

Jelikoˇz je IOTA velmi mlad´a technologie a celkov´y ekosyst´em spjat´y s decen- tralizovan´ymi technologiemi, kryptomˇenami a internetem vˇec´ı se vyv´ıj´ı velmi rychle, je tˇreba upozornit na to, kdy tato pr´ace vznikla, jelikoˇz je moˇzn´e, ˇze ˇc´ast informac´ı, kter´e budou rozeb´ır´any, jiˇz nebudou platn´e v dobˇe, kdy tuto pr´aci ˇctete. Z tohoto d˚uvodu zde uv´ad´ım, ˇze vˇsechny informace v pr´aci uve- den´e jsou platn´e ke dni 30.11.2018 a informace t´ykaj´ıc´ı se implementace, tedy knihovny a zp˚usoby pr´ace s nimi jsou platn´e ke dni 31.12.2018.

(21)

Kapitola 2

Reˇ serˇ sn´ı ˇ ast

2.1 Internet vˇ ec´ı

2.1.1 Internet

2.1.1.1 Historie internetu

Aˇckoliv se dodnes vedou spory o pˇresn´em roce, kdy vznikl internet tak, jak ho zn´ame dnes, jeho historie, aˇckoliv ˇcasovˇe pomˇernˇe dlouh´a, nen´ı zase tak sloˇzit´a a d´a se jednoduˇse shrnout na p´ar ˇr´adc´ıch. O to se tak´e v n´asleduj´ıc´ı ˇ

c´asti pokus´ım.

Prvn´ı zm´ınky o nˇeˇcem, co by mˇelo pˇripom´ınat internet, tedy moˇznost soci´aln´ı interakce pomoc´ı s´ıt’ov´an´ı, vznikly v roce 1962. Za zpr´avami, kter´e po- jedn´avaly o

”Galaktick´e s´ıti“ (

”Galactic network“) st´al J.C.R. Licklider z MIT.

Podaˇrilo se mu pˇresvˇedˇcit sv´e profesn´ı okol´ı o d˚uleˇzitosti tohoto konceptu.

Pocit nutnosti vyvinout nˇeco podobn´eho jeˇstˇe podpoˇril strach ze Sovˇetsk´eho svazu a toho, ˇze by jednoduˇse mohl vyˇradit cel´y americk´y telefonn´ı syst´em, kter´y byl v t´e dobˇe hlavn´ı komunikaˇcn´ı technologi´ı. Galaktick´a s´ıt’ by umoˇz- ˇ

novala komunikaci i v pˇr´ıpadˇe napaden´ı telefonn´ıho syst´emu. N´aslednˇe v roce 1964 vydala RAND2 skupina, v r´amci arm´ady spojen´ych st´at˚u, pojedn´an´ı zab´yvaj´ıc´ı se technologi´ı pˇrep´ın´an´ı paket˚u (packet switching). Tato technologie umoˇznila pˇren´aˇsen´a data rozdˇelit na ˇc´asti, takzvan´e pakety a ty pak jednotlivˇe pos´ılat r˚uzn´ymi cestami, coˇz zajist´ı lepˇs´ı dostupnost a horˇs´ı napadnutelnost s´ıtˇe. Bˇehem toho prob´ıhal n´avrh a diskuze o prvn´ı s´ıti nazvan´e ARPANET.

V roce 1968 byl jej´ı n´avrh znaˇcnˇe upraven a zaˇcal v´yvoj prvn´ıch komponent.

Prvn´ı pˇripojen´e zaˇr´ızen´ı bylo pot´e v roce 1969 a jednalo se o poˇc´ıtaˇc UCLA (Kalifornsk´a univerzita v Los Angeles). Na konci roku k ARPANETu byly pˇripojen´e jiˇz ˇctyˇri zaˇr´ızen´ı a s postupem ˇcasu jejich poˇcet nar˚ustal. S ros- touc´ım poˇctem ale pˇrest´aval b´yt p˚uvodn´ı komunikaˇcn´ı protokol vyhovuj´ıc´ı, pˇredevˇs´ım z d˚uvodu nemoˇznosti ˇreˇsit chyby pˇri pˇrenosech, kter´e v d˚usledku

2Americk´a neziskov´a v´yzkumn´a skupina

(22)

mohly zastavit celou s´ıt’. Z tohoto d˚uvodu vyˇslo v roce 1974 pojedn´an´ı od Vinta Cerfa a Boba Kahna, kde byl pops´an princip, z kter´eho n´aslednˇe vznikl TCP/IP protokol, tak jak ho zn´ame dnes. Internet se postupnˇe technologicky vyv´ıjel, ale hlavn´ı krok pˇriˇsel v roce 1991, kdy Tim Berners-Lee v CERNu vy- tvoˇril HTML (jazyk pro tvorbu webov´ych str´anek) a HTTP (protokol urˇcen´y pro v´ymˇenu hypertextov´ych HTML dokument˚u), coˇz dalo vzniknout syst´emu World Wide Web (www), kter´y n´am umoˇzˇnuje internet vyuˇz´ıvat tak, jak jsme na to dnes zvykl´ı, tedy pˇredevˇs´ım vytv´aˇret a propojovat jednotliv´e webov´e str´anky. Od tohoto okamˇziku doch´az´ı jiˇz pouze k minoritn´ım zlepˇsov´an´ım, ale samotn´a podstata internetu a www byla dokonˇcena pr´avˇe v roce 1991. [1]

2.1.1.2 Technologie internetu

Kdyˇz se budeme zab´yvat ot´azkou, na jak´ych technologi´ıch je internet zaloˇzen a jak funguje, mus´ıme se zab´yvat dvˇema ˇc´astmi, kter´e spolu ale velmi bl´ızce souvis´ı - hardwarovou infrastrukturou a protokoly. Tyto dvˇe ˇc´asti spolu pln´ı prim´arn´ı a vlastnˇe jedinou funkci internetu, kterou je pˇrenos dat mezi dvˇema zaˇr´ızen´ımi v nˇem. Internet vyuˇz´ıv´a velkou spoustu r˚uzn´ych protokol˚u, kter´e, aˇckoliv jsou ˇcasto samy o sobˇe velmi zaj´ımav´e, tak´e vˇetˇsinou pln´ı pouze velmi specifick´y ´ukol, napˇr´ıklad jako protokol SMTP, kter´y umoˇzˇnuje pos´ıl´an´ı e- mail˚u. Z tohoto d˚uvodu se zamˇeˇr´ım v t´eto kapitole pouze na opravdu z´akladn´ı protokoly, kter´e jsou k pˇrenosu dat nezbytn´e.

Kdyˇz se zamˇeˇr´ıme na samotn´y pˇrenos dat, mluv´ıme o pos´ıl´an´ı dat z jed- noho zaˇr´ızen´ı do druh´eho. Obˇe tyto zaˇr´ızen´ı mus´ı b´yt v s´ıti identifikov´any unik´atn´ım identifik´atorem. V tomto pˇr´ıpadˇe IP adresou, jej´ıˇz form´at, ani dalˇs´ı specifick´e informace nejsou pro pochopen´ı d˚uleˇzit´e. K pˇrenosu se pouˇz´ıv´a hlavn´ı skupina protokolu nazvan´a TCP/IP. Tuto skupinu rozdˇelujeme do ˇctyˇr vrstev:

1. Aplikaˇcn´ı vrstva - protokoly pro specifick´e aplikace, jako napˇr´ıklad SMTP

2. Transportn´ı vrstva - poskytuje kan´al pro pˇrenos dat a jejich pˇr´ıpadnou kontrolu

3. S´ıt’ov´a vrstva - zajiˇst’uje smˇerov´an´ı pˇren´aˇsen´ych dat

4. Vrstva s´ıt’ov´eho rozhran´ı - zajiˇst’uje samotn´y pˇrenos, tedy zak´odov´an´ı a pˇr´ıstup k pˇrenosov´emu m´ediu

Pˇri komunikaci je zpr´ava v pˇr´ıpadˇe potˇreby rozdˇelena na v´ıce ˇc´ast´ı a ty jsou pos´ıl´any oddˇelenˇe. Kaˇzd´a ˇc´ast ale pˇri pˇrenosu nejprve projde vˇsemi vrstvami, od aplikaˇcn´ı do vrstvy s´ıt’ov´eho rozhran´ı. V kaˇzd´e ˇc´asti je s daty proveden specifick´y ´ukon a vˇetˇsinou jsou data

”obalena“ hlaviˇckou specifickou pro danou vrstvu, kter´a nese informace d˚uleˇzit´e k doruˇcen´ı. N´aslednˇe je obalen´y kus dat posl´an po internetu a na druh´e stranˇe proch´az´ı opˇet vrstvami, ale v opaˇcn´em

(23)

sledu, tedy od s´ıt’ov´eho rozhran´ı po aplikaˇcn´ı vrstvu. Toto je velice struˇcnˇe popsan´y princip pˇrenosu dat s pouˇzit´ım TCP/IP protokolu. K pˇrenosu ale potˇrebujeme jeˇstˇe druhou ˇc´ast a to hardwarovou infrastrukturu.

Hardwarov´a infrastruktura je vlastnˇe fyzickou kostrou internetu, kter´a je vyuˇz´ıv´ana k veˇsker´e komunikaci. Z´akladem s´ıtˇe je takzvan´a Internetov´a p´ateˇr.

Jedn´a se o velkou skupinu navz´ajem propojen´ych s´ıt´ı, kter´e jsou vˇetˇsinou provozov´any vl´adn´ımi nebo akademick´ymi celky, pˇr´ıpadnˇe velk´ymi technolo- gick´ymi subjekty. Tato p´ateˇr se star´a pˇredevˇs´ım o hlavn´ı pokryt´ı svˇeta a pˇrenos dat mezi kontinenty. V pˇr´ıpadˇe, ˇze je tˇreba poslat data z jednoho zaˇr´ızen´ı do druh´eho, je potom hlavn´ım vyuˇz´ıvan´ym zaˇr´ızen´ym takzvan´y smˇerovaˇc (rou- ter). Toto zaˇr´ızen´ı m´a uloˇzenou smˇerovac´ı tabulku, kter´a obsahuje jednotliv´e IP adresy zaˇr´ızen´ı a k nim odpov´ıdaj´ıc´ı porty, kam data poslat. V pˇr´ıpadˇe, ˇ

ze pro danou adresu nem´a odpov´ıdaj´ıc´ı port, poˇsle data na v´ychoz´ı adresu, na kter´e je vˇetˇsinou dalˇs´ı router. Toto umoˇzˇnuje vytvoˇrit hierarchii router˚u a v d˚usledku toho hierarchii s´ıt´ı. Pokud jsou tedy odesl´ana data a maj´ı b´yt doruˇcena na urˇcitou adresu, jsou postupnˇe pos´ıl´ana mezi routery v hierarchii smˇerem nahoru, dokud nen´ı nalezen router, kter´y ve sv´e tabulce danou adresu m´a a adresa je tedy v jeho subs´ıti. Toto je v podstatˇe ve zkratce hlavn´ı princip internetu.

Internet jako takov´y vyuˇz´ıv´a samozˇrejmˇe pro sv´e fungov´an´ı velkou ˇradu protokol˚u, kter´e nebyly zm´ınˇeny, jelikoˇz jako takov´e nejsou d˚uleˇzit´e pro tuto pr´aci. Hlavn´ı d˚uleˇzit´a informace je ta, ˇze internet jako takov´y je jedna velk´a s´ıt’, sloˇzen´a ze subs´ıt´ı, kter´e umoˇzˇnuj´ı pˇrenos dat mezi zaˇr´ızen´ımi v nich. K tomuto je vyuˇz´ıv´ana urˇcit´a hardwarov´a infrastruktura a pˇredevˇs´ım skupina protokol˚u, kter´a definuje, jak jednotliv´e komponenty pracuj´ı a jak jsou data pos´ıl´ana. Je z´aroveˇn d˚uleˇzit´e sledovat stav s´ıtˇe a ch´apat, ˇze existuj´ı urˇcit´e metriky, jako napˇr´ıklad rychlost pˇrenosu, kter´e ovlivˇnuj´ı celkovou pouˇzitelnost s´ıtˇe. [2]

2.1.2 Internet vˇec´ı

Internet vˇec´ı je posledn´ı dobou velmi skloˇnovan´e t´ema, avˇsak st´ale nen´ı ucelen´a definice, kter´a by ˇr´ıkala, co pˇresnˇe IoT je. N´azory se velmi liˇs´ı a na jedn´e stranˇe jsou pˇredstavy, ˇze cel´y Internet vˇec´ı je prakticky pouze nejniˇzˇs´ı fyzick´a vrstva, kter´a umoˇzˇnuje s´ıt’ov´e propojen´ı zaˇr´ızen´ı se senzory a na stranˇe druh´e po- tom pˇredstava Internetu vˇec´ı jako vˇseobj´ımaj´ıc´ıho konstruktu, prostupuj´ıc´ıho nejenom technologiemi, ale i celou spoleˇcnost´ı a svˇetem. Mezi tˇemito dvˇema protip´oly je potom spousta dalˇs´ıch definic, kter´e se pˇrikl´anˇej´ı sp´ıˇse k jedn´e, nebo druh´e stranˇe mince.

Z tohoto d˚uvodu budu v r´amci t´eto pr´ace vych´azet z dokumentu Towards a definition of the Internet of Things (IoT), od organizace IEEE, coˇz je ne- ziskov´a organizace, kter´a si klade za c´ıl technologick´y rozvoj v oblasti elek- trick´eho a elektronick´eho inˇzen´yrstv´ı a v oblastech s nimi souvisej´ıc´ıch. Tento dokument byl pˇredloˇzen veˇrejnosti v roce 2015 a jeho c´ılem je bl´ıˇze specifiko- vat oblast IoT. Veˇrejnost byla v r´amci vyd´an´ı tohoto dokumentu vyzv´ana, aby

(24)

se na definici spolupod´ılela a na z´akladˇe toho by se mˇel dokument rozr˚ustat a upravovat. Aˇckoliv tedy dokument ani definice v nˇem obsaˇzen´e nejsou fin´aln´ı, budu z nˇej v r´amci t´eto pr´ace vych´azet, jelikoˇz se dle m´eho n´azoru jedn´a o jednu z nejdetailnˇejˇs´ıch a nejl´epe strukturovan´ych definic t´eto problematiky a z´aroveˇn je jej´ım autorem organizace IEEE, tedy instituce, kter´a stoj´ı za jiˇz nespoˇctem podobn´ych obecnˇe uzn´avan´ych definic a standard˚u.

Pokud tedy budeme vych´azet z v´yˇse uveden´eho dokumentu, budeme br´at IoT jako obor, kter´y se zab´yv´a propojen´ım r˚uzn´ych technologi´ı a spoleˇcen- sk´ych obor˚u. Ve velice obecn´em smyslu tedy praktick´ym propojen´ım svˇeta v r´amci jedn´e s´ıtˇe. Jelikoˇz se jedn´a o opravdu ˇsirok´y z´abˇer, rozdˇelujeme IoT do nˇekolika hlavn´ıch oblast´ı, kter´e mohou b´yt reprezentov´any jako jednot- liv´e vrstvy IoT. Nejniˇzˇs´ı vrstvou je oblast t´ykaj´ıc´ı se syst´emov´e architek- tury a technologi´ı, kter´e v˚ubec umoˇzˇnuj´ı Internet vˇec´ı. Zde mluv´ıme o protokolech, senzorech, nap´ajen´ı a dalˇs´ıch nejd˚uleˇzitˇejˇs´ıch technologi´ıch pro samotn´e fungov´an´ı ekosyst´emu. Nad touto vrstvou je vrstva softwarov´e ar- chitektury. Do n´ı spadaj´ı pˇredevˇs´ım operaˇcn´ı syst´emy, middleware, big data, API a dalˇs´ı technologie, kter´e umoˇzˇnuj´ı udrˇzovat ekosyst´em z hlediska soft- warov´eho. Nad n´ı se nach´az´ı posledn´ı technologick´a vrstva a to vrstva sluˇzeb a aplikac´ı. Sem spadaj´ı uˇz samotn´a ˇreˇsen´ı postaven´a nad technologiemi.

Reˇˇ sen´ı, kter´a pˇrivedou Internet vˇec´ı ke koncov´emu uˇzivateli. Jedn´a se o sa- motn´e aplikace a sluˇzby, jako napˇr´ıklad chytr´a mˇesta, aplikace bˇeˇz´ıc´ı na do- m´ac´ıch spotˇrebiˇc´ıch a spoustu dalˇs´ıch, kter´ymi se ˇc´asteˇcnˇe budu zab´yvat v bu- douc´ıch kapitol´ach. Toto byly tˇri hlavn´ı technologick´e vrstvy. Nad aplikaˇcn´ı vrstvou jsou vˇsak jeˇstˇe dalˇs´ı dvˇe vrstvy, kter´e jsou s IoT ´uzce spojen´e. Nejsou technick´eho r´azu, avˇsak z hlediska ekosyst´emu, jeho vyuˇzit´ı a budoucnosti nejsou o nic m´enˇe d˚uleˇzit´e. Pˇr´ımo nad aplikaˇcn´ı vrstvou se nach´az´ı vrstvaob- chodn´ıch model˚u a ekosyst´emu. Sem spadaj´ı pˇredevˇs´ım vˇeci t´ykaj´ıc´ı se ob- chodn´ıch model˚u, vyuˇz´ıvaj´ıc´ıch aplikac´ı z niˇzˇs´ı vrstvy koncov´ymi uˇzivateli, coˇz je v d˚usledku velmi d˚uleˇzit´e, protoˇze to umoˇzn´ı provoz samotn´eho ekosyst´emu.

Kaˇzd´y stroj v s´ıti mus´ı b´yt nˇeˇc´ım poh´anˇen a obchodn´ı modely by mˇely za- jistit, ˇze stroj, pˇr´ıpadnˇe jeho provozovatel bude m´ıt dostatek prostˇredk˚u, aby mohl bˇeˇzet. Nejvyˇsˇs´ı a tak´e nejv´ıce abstraktn´ı vrstvou je vrstva soci´aln´ıho dopadu IoT. Tato vrstva je uˇz velmi vzd´alen´a od samotn´ych technologi´ı.

Jedn´a se o dopady, kter´e bude m´ıt Internet vˇec´ı na spoleˇcnost, zmˇeny kter´e d´ıky tˇemto technologi´ım budou moci probˇehnout a to, jak se zmˇen´ı fungov´an´ı spousty obor˚u, instituc´ı a celkovˇe obraz svˇeta. Jak je tedy z t´eto hierarchie vidˇet, IoT v podstatˇe zaˇc´ın´a u nejjednoduˇsˇs´ıch senzor˚u a pomoc´ı jejich inte- grace a hromadn´eho vyuˇzit´ı se snaˇz´ı vylepˇsit spoustu odvˇetv´ı a celkovˇe ˇzivot tak jak ho zn´ame.[3]

2.1.2.1 Poˇzadavky na IoT syst´em

Vzhledem k tomu, ˇze Internet vˇec´ı m´a b´yt obrovsk´y ekosyst´em, kter´y m´a pro- pojovat opravdu velk´e mnoˇzstv´ı zaˇr´ızen´ı, d´a se pˇredpokl´adat, ˇze po s´ıti budou

(25)

proudit obrovsk´e objemy dat. Kaˇzd´e zaˇr´ızen´ı si bude vymˇeˇnovat informace se spoustou dalˇs´ıch a to vˇse optim´alnˇe v re´aln´em ˇcase, aby mohly dalˇs´ı zaˇr´ızen´ı okamˇzitˇe reagovat. Do toho vˇseho je potˇreba tyto data zpracov´avat a analy- zovat pro provozovatele syst´em˚u a z´aroveˇn data urˇcit´ym zp˚usobem agregovat a prezentovat koncov´ym uˇzivatel˚um. Toto klade pomˇernˇe specifick´e poˇzadavky na infrastrukturu, protokoly, senzory a prakticky vˇsechny technologick´e sub- jekty, kter´e se nˇejakou m´ırou do provozu ekosyst´emu zapojuj´ı.

Bezpeˇcnost Hlavn´ım poˇzadavkem na syst´emy bˇeˇz´ıc´ı v r´amci Internetu vˇec´ı je bezpeˇcnost. Vzhledem k jednoduchosti vˇetˇsiny syst´em˚u bˇeˇz´ıc´ıch na chytr´ych zaˇr´ızen´ıch, jako je napˇr´ıklad chytr´y k´avovar, je ˇcasto bezpeˇcnost pˇrehl´ıˇzen´a.

Prvn´ı bˇeˇznou myˇslenkou je fakt, ˇze ´utoˇcn´ık nem´a nic, co by z chytr´eho k´a- vovaru ukradl. V nejhorˇs´ım pˇr´ıpadˇe by pˇreprogramoval syst´em tak, ˇze by m´ısto espressa dˇelal lungo. Probl´emem je vˇsak fakt, ˇze k´avovar je pˇripojen´y k lok´aln´ı s´ıti a t´ım, ˇze se jej ´utoˇcn´ıkovi podaˇrilo kv˚uli slab´emu zabezpeˇcen´ı napadnout, dostal pˇr´ıstup do lok´aln´ı s´ıtˇe a d´ıky tomu je n´aslednˇe schopn´y na- padnout i dalˇs´ı zaˇr´ızen´ı, kter´a uˇz mohou pro provozovatele, nebo vlastn´ıka s´ıtˇe pˇredstavovat vˇetˇs´ı probl´em. Napˇr´ıklad smˇerovaˇc. Z´aroveˇn vzhledem k tomu, ˇ

ze v budoucnu bude zpracov´an´ı velk´ych dat na o mnoho lepˇs´ı ´urovni, budou m´ıt data pomˇernˇe velkou cenu. Vzhledem k tomu, kolik dat bude proudit v IoT s´ıti, bude urˇcitˇe snaha tyto data zcizit. Z tohoto d˚uvodu bude d˚uleˇzit´e i za- bezpeˇcen´ı samotn´ych pˇren´aˇsen´ych dat. Proto je bezpeˇcnost jedn´ım z hlavn´ıch poˇzadavk˚u, avˇsak nejedn´a se pˇr´ımo o poˇzadavek vych´azej´ıc´ı z podstaty Inter- netu vˇec´ı. Jde o obecn´y poˇzadavek na vˇsechny informaˇcn´ı syst´emy a hardware.

Pouze je zat´ım v r´amci IoT zaˇr´ızen´ı ˇcasto lehce opom´ın´an a z tohoto d˚uvodu jej povaˇzuji za velmi d˚uleˇzit´y.

Propojitelnost Jelikoˇz m´a v r´amci s´ıtˇe komunikovat spoustu zaˇr´ızen´ı, je d˚uleˇzit´e, aby byly syst´emy vytvoˇreny tak, aby se s jejich rozhran´ım dalo jed- noduˇse komunikovat. V budoucnu se pˇredpokl´ad´a, ˇze kaˇzd´e zaˇr´ızen´ı bude spo- lupracovat s mnoha odliˇsn´ymi typy syst´em˚u a dalˇs´ıch zaˇr´ızen´ı. Ledniˇcky bu- dou komunikovat s drony, rozhran´ımi obchod˚u, k´avovary a dalˇs´ımi podobn´ymi syst´emy. Z tohoto d˚uvodu je tˇreba je vytv´aˇret takov´ym zp˚usobem, aby jejich propojen´ı nebylo sloˇzit´e a nebyla vyˇzadov´ana spousta r˚uzn´ych komunikaˇcn´ıch protokol˚u a pˇrekladaˇc˚u rozhran´ı.

Rychlost Rychlost je jednou z dalˇs´ıch hlavn´ıch promˇenn´ych, kter´e do fun- gov´an´ı ekosyst´emu vstupuj´ı. Jednotliv´a zaˇr´ızen´ı potˇrebuj´ı rychle reagovat na okoln´ı dˇen´ı, nebo na dalˇs´ı pro nˇe d˚uleˇzit´e informace. Z tohoto d˚uvodu nem˚uˇze doch´azet k zahlcen´ı s´ıtˇe a front´am, kdy by trvalo nˇekolik sekund, nebo i v´ıce, neˇz se dostane informace ze senzoru jednoho zaˇr´ızen´ı do druh´eho. S´ıt’ a vˇsechny jej´ı ˇc´asti mus´ı fungovat rychle a nezdrˇzovat komunikaci.

(26)

ˇSk´alovatelnost Na rychlost navazuje dalˇs´ı poˇzadavek a t´ım je ˇsk´alovatel- nost. Jedn´a se o jednu z aktu´alnˇe nejd˚uleˇzitˇejˇs´ıch vlastnost´ı a z´aroveˇn vlast- nost, kter´a zat´ım p˚usob´ı nejvˇetˇs´ı pot´ıˇze pˇri snaze o v´yvoj funkˇcn´ıho IoT. Je- likoˇz se v budoucnu poˇc´ıt´a s velk´ym poˇctem zaˇr´ızen´ı a z´aroveˇn s t´ım, ˇze poˇcet se bude postupnˇe zvyˇsovat, je tˇreba m´ıt moˇznost s´ıt’ jednoduˇse ˇsk´alovat. Op- tim´alnˇe tak, aby se s´ıt’ nezpomalovala s rostouc´ım poˇctem zaˇr´ızen´ı v n´ı.

Spotˇreba S velk´ym poˇctem zaˇr´ızen´ı se d´a oˇcek´avat i velk´a spotˇreba ener- gie. Zde jsou dva hlavn´ı probl´emy. Prvn´ım je ekologick´y dopad, kter´y bude m´ıt provoz takto velk´e s´ıtˇe. V´yroba energie na svˇetˇe zat´ım nen´ı v takov´em stavu, abychom byli schopn´ı produkovat jej´ı neomezen´e mnoˇzstv´ı. Provoz IoT se m˚uˇze tedy nepˇr´ıznivˇe podepsat na energetick´em pr˚umyslu a v d˚usledku toho na samotn´e Zemi. Druh´ym probl´emem jsou pak i samotn´a zaˇr´ızen´ı. D´a se poˇc´ıtat s t´ım, ˇze spousta zaˇr´ızen´ı operuj´ıc´ıch v s´ıti bude mobiln´ı. L´etaj´ıc´ı, poj´ızdn´a a dalˇs´ı zaˇr´ızen´ı, kter´a nebudou m´ıt moˇznost b´yt neust´ale pˇripojena ke zdroji energie. Z tohoto d˚uvodu je tˇreba, aby jejich spotˇreba byla co nejmenˇs´ı, jelikoˇz mohou plnit svoje posl´an´ı pouze ve chv´ıli, kdy mohou cestovat a nemus´ı b´yt na m´ıstˇe a ˇcekat na dobit´ı.

Poˇzadavk˚u je samozˇrejmˇe mnohem v´ıce, ale tyto povaˇzuji za hlavn´ı. Z´aroveˇn spousta dalˇs´ıch poˇzadavk˚u se d´a povaˇzovat za souˇc´ast jednoho z v´yˇse vy- psan´ych. Ve v´ysledku je tedy tˇreba, aby pˇri v´yvoji syst´em˚u, protokol˚u a hard- ware pro IoT bylo br´ano v potaz, ˇze vyvinut´e vˇeci mus´ı b´yt dostateˇcnˇe za- bezpeˇcen´e, jednoduˇse propojiteln´e, rychl´e, ˇsk´alovateln´e a mus´ı m´ıt n´ızkou spotˇrebu. Toto vˇse umoˇzn´ı vytvoˇrit IoT ekosyst´em, kter´y bude moci spr´avnˇe plnit sv˚uj c´ıl. [4]

2.2 IOTA

Hlavn´ım c´ılem IOTA je st´at se standardem v r´amci Internetu vˇec´ı. Nejedn´a se o pˇrenosov´y protokol. IOTA jako takov´a je schopna pracovat na jak´emkoliv transportn´ım protokolu, at’ uˇz se jedn´a o bluetooth, wifi, nebo cokoliv jin´eho.

C´ılem IOTA je st´at se standardem pro ukl´ad´an´ı dat, tvorbu aplikac´ı nad s´ıt´ı a pˇredevˇs´ım se st´at hlavn´ı technologi´ı pro M2M (machine to machine) ekonomii. Vzhledem k tomu, ˇze se jedn´a o pomˇernˇe novou technologii, obsahuje spoustu specifick´ych n´azvoslov´ı, pro kter´a jeˇstˇe nejsou ust´alen´e ˇcesk´e pˇreklady.

V takov´em pˇr´ıpadˇe se tedy budou v textu ˇcasto pouˇz´ıvat origin´aln´ı anglick´e v´yrazy.

2.2.1 Distributed ledger

IOTA je podle IOTA Foundation novou generac´ı technologie distributed ledger (do ˇceˇstiny obˇcas pˇrekl´ad´ano doslovnˇe, tedy jako distribuovan´a ´uˇcetn´ı kniha).

(27)

Pro pochopen´ı IOTA technologie je tedy potˇreba nejprve vysvˇetlit samotnou technologii distributed ledger.

Jedn´a se v podstatˇe o bˇeˇznou ´uˇcetn´ı knihu, tedy nˇeco, co zaznamen´a- v´a pˇresun aktiv mezi subjekty formou transakc´ı. Tyto data mohou b´yt za- znamen´ana r˚uzn´ymi formami. V bl´ızk´e minulosti byly vˇetˇsinou ´uˇcetn´ı knihy opravdov´e pap´ırov´e knihy. Nyn´ı jsou vˇetˇsinou jiˇz data uchov´av´ana v digit´a- ln´ıch datab´az´ıch, nad kter´ymi jsou postaven´e urˇcit´e syst´emy. Tyto technologie ale st´ale maj´ı nev´yhodu, kterou je fakt, ˇze jsou data uloˇzena na jednom m´ıstˇe.

Jejich replikace a distribuce je potom sloˇzit´a a z´aroveˇn nen´ı jednoduch´e ovˇeˇrit integritu dat. Toto ˇreˇs´ı pr´avˇe distributed ledger. Jedn´a se o distribuovanou da- tab´azi, tedy datab´azi, kter´a je sd´ılen´a napˇr´ıˇc s´ıt´ı. Kaˇzd´y subjekt v r´amci s´ıtˇe tedy m˚uˇze m´ıt celou kopii dan´e datab´aze. Transakce se propisuj´ı do nˇekolika sekund ˇci minut napˇr´ıˇc celou s´ıt´ı a vˇsechny subjekty tedy vid´ı aktu´aln´ı re´aln´y stav. Nejzn´amˇejˇs´ı takovou technologi´ı souˇcasnosti je asi blockchain. Zn´am´y je pˇredevˇs´ım d´ıky sv´e implementaci v r´amci virtu´aln´ı mˇeny Bitcoin. Jedn´a se vlastnˇe o implementaci distributed ledger, kter´a umoˇzˇnuje jej provozovat d´ıky princip˚um a algoritm˚um, kter´e ˇreˇs´ı pr´avˇe integritu, bezpeˇcnost a dalˇs´ı ot´azky spojen´e s distribuovanou datab´az´ı. IOTA je dalˇs´ı implementac´ı dis- tributed ledger, nen´ı ale zaloˇzena na blockchainu, n´ybrˇz na jin´e technologii.

Touto technologi´ı je orientovan´y acyklick´y graf (directed acyclic graph, DAG), kter´y zakladatel´e IOTA nazvali Tangle.

Distributed ledger jako technologie pˇrin´aˇs´ı novou formu bezpeˇcnosti a in- tegrity do datab´az´ı. Vzhledem k tomu, ˇze je datab´aze distribuovan´a mezi velk´e mnoˇzstv´ı subjekt˚u, musel by ´utoˇcn´ık napadnout ve stejnou chv´ıli vˇsechny, re- spektive alespoˇn 33% vˇsech subjekt˚u. Z tohoto d˚uvodu se o tuto technologii aktu´alnˇe ve velk´em zaj´ımaj´ı vl´ady st´at˚u a velk´e firmy, kter´e by distribuovan´e datab´aze r´ady vyuˇzily, at’ uˇz v pˇr´ıpadˇe vl´ad napˇr´ıklad pro v´ybˇer dan´ı, tak v pˇr´ıpadˇe firem napˇr´ıklad pro lepˇs´ı zabezpeˇcen´ı sv´ych dat.[5]

2.2.2 Orientovan´y acyklick´y graf

Jak bylo zm´ınˇeno v pˇredchoz´ı kapitole, IOTA je zaloˇzena na technologii ori- entovan´eho acyklick´eho grafu, kter´y je pracovnˇe pojmenov´an Tangle. Pro po- rozumˇen´ı z´aklad˚u na kter´ych IOTA stoj´ı je tedy tˇreba nejprve vysvˇetlit, co v r´amci grafu znamen´a to, ˇze je orientovan´y a acyklick´y.

V pˇr´ıpadˇe orientovan´eho grafu v r´amci teorie graf˚u mysl´ıme uspoˇr´a- danou dvojici G = (V, A), kde V jsou vˇsechny uzly grafu a E jsou pak hrany grafu, tedy uspoˇr´adan´e dvojice, kter´e n´am ˇr´ıkaj´ı, odkud kam hrana jde.

Vˇsechny hrany tedy maj´ı smˇer odkud kam jdou, odtud orientovan´y graf.[6]

Druhou vlastnost´ı tohoto grafu jeacykliˇcnost. Acyklick´y graf je takov´y, kter´y v sobˇe neobsahuje ˇz´adn´e grafov´e cykly, tedy subgrafy, kde nalezneme uzel, kter´y je poˇc´ateˇcn´ım a z´aroveˇn posledn´ım, v r´amci grafu se tedy vytvoˇrila kruˇznice. Toto v r´amci acyklick´eho grafu nem˚uˇze nastat, jelikoˇz vˇsechny hrany jdou v podstatˇe jedn´ım smˇerem. Hrany se tedy nevrac´ı zpˇet k pˇredchoz´ım

(28)

Obr´azek 2.1: Orientovan´y acyklick´y graf

uzl˚um. Pokud oznaˇc´ıme vˇsechny uzly ˇc´ısly od 0 do n, nikdy by nemˇela b´yt hrana od uzlu s vyˇsˇs´ı hodnotou do uzlu s niˇzˇs´ı. Orientovan´y acyklick´y graf, vi- diteln´y na obr´azku 2.1, je tedy graf, kter´y m´a smˇerovan´e hrany, kter´e jdou jedn´ım smˇerem a t´ım p´adem nevytv´aˇr´ı cykly. D´ıky tˇemto vlastnostem je vhodn´ym z´akladem pro IOTA protokol.

2.2.3 Princip fungov´an´ı IOTA 2.2.3.1 Z´akladn´ı princip

Z´akladn´ı myˇslenkou fungov´an´ı Tangle je to, ˇze pro zaloˇzen´ı transakce v s´ıti mus´ı zakl´adaj´ıc´ı uˇzivatel udˇelat pr´aci, kter´a potvrd´ı dalˇs´ı dvˇe transakce. Uzly s´ıtˇe, skrz kter´e je transakce vytv´aˇrena samozˇrejmˇe kontroluj´ı, jestli v r´amci transakc´ı nedoch´az´ı ke konflikt˚um s histori´ı Tangle a pokud ano, tak nepo- vol´ı danou transakci vytvoˇrit. ˇC´ım v´ıcekr´at byla urˇcit´a transakce potvrzena, t´ım d˚uvˇeryhodnˇejˇs´ı je v r´amci s´ıtˇe. Aby byla transakce vytvoˇrena, vytv´aˇrej´ıc´ı uzel nejprve vybere dvˇe transakce podle specifick´eho algoritmu, kter´y bude probr´an v r´amci dalˇs´ıch kapitol. N´aslednˇe je uzlem provedena kontrola, jestli tyto dvˇe transakce nejsou konfliktn´ı a pokud ne, tak jsou transakce potvr- zeny uzlem t´ım, ˇze vyˇreˇs´ı urˇcit´y kryptografick´y ´ukol, podobn´y tomu, kter´y se ˇreˇs´ı v r´amci potvrzov´an´ı transakce Bitcoinu. Tento algoritmus je tak´e ob- sahem dalˇs´ıch kapitol. Transakce potom odpov´ıdaj´ı jednotliv´ym uzl˚um grafu a hrany reprezentuj´ı to, kter´a transakce potvrzuje kterou. Orientovanost grafu tedy umoˇzˇnuje zaznamen´avat jednotliv´a potvrzov´an´ı a acykliˇcnost je n´aslednˇe zajiˇstˇena t´ım, ˇze nov´e transakce potvrzuj´ı starˇs´ı a starˇs´ı transakce uˇz nov´e nepotvrzuj´ı. Kaˇzd´a transakce tedy potvrzuje dalˇs´ı transakce pouze pˇri sv´em vzniku a d´al uˇz je pouze zaznamen´ana v r´amci ´uˇcetn´ı knihy. Na zaˇc´atku byl Tangle vytvoˇren s inici´aln´ı transakc´ı, kter´e se ˇr´ık´a

”genesis“, tato transakce dala vzniknout vˇsem token˚um. Co a k ˇcemu je token bude probr´ano v jedn´e z budouc´ıch kapitol.[7]

2.2.3.2 Uzly

Aˇckoliv v pˇredchoz´ım odstavci bylo ˇreˇceno, ˇze transakce jsou uzly grafu, coˇz je pravda, je pojem uzel v r´amci IOTA pouˇz´ıv´an v trochu jin´em v´yznamu.

Transakce jsou obsaˇzeny v distribuovan´e ´uˇcetn´ı knize, kter´a je orientovan´ym

(29)

acyklick´ym grafem, jak uˇz bylo nˇekolikr´at ˇreˇceno. Uzly o kter´ych ale mluv´ıme jsou uzly jin´eho grafu a to grafu s´ıt’ov´e topologie, kter´a umoˇzˇnuje decentra- lizaci. Kaˇzd´y uzel t´eto topologie je zaˇr´ızen´ı, kter´e m´a staˇzenou celou kopii Tangle. Z´aroveˇn mus´ı m´ıt pˇriˇrazeny sousedn´ı uzly, kter´ym pos´ıl´a transakce, kter´e vytvoˇril. Jedn´a se o broadcast operaci, kterou se zaˇr´ıd´ı distribuce do vˇsech uzl˚u. Tyto uzly tvoˇr´ı z´akladn´ı topologii, kter´a udrˇzuje Tangle v chodu.

Jelikoˇz uzly maj´ı celou kopii Tangle, ˇr´ık´a se jim pln´e uzly (Full nodes). Vedle nich jeˇstˇe existuj´ı takzvan´e lehk´e uzly (Light nodes). Kaˇzd´y lehk´y uzel mus´ı b´yt napojen´y na nˇejak´y pln´y a pracuje fakticky pouze jako rozhran´ı. Komu- nikuje s uzlem a umoˇzˇnuje uˇzivateli pracovat se s´ıt´ı, aniˇz by musel stahovat celou jej´ı historii.[8]

2.2.3.3 V´ahy transakc´ı

Hlavn´ım parametrem, kter´y u transakce zaznamen´av´ame je jej´ı v´aha. Tyto v´ahy dˇel´ıme na dvˇe - vlastn´ı v´ahu transakce a jej´ı kumulativn´ı v´ahu. Vlastn´ı v´aha je v´aha, kter´a je transakci pˇridˇelena pˇri jej´ım vzniku a odpov´ıd´a tomu, kolik pr´ace bylo pˇri jej´ım vytv´aˇren´ı zakl´adaj´ıc´ım uzlem odpracov´ano. V tuto chv´ıli jsou povolen´e hodnoty pro vlastn´ı v´ahu pouze 3n, kde n je kladn´e cel´e ˇ

c´ıslo. Kumulativn´ı v´aha transakce je potom souˇcet jej´ı vlastn´ı v´ahy a vlastn´ıch vah vˇsech transakc´ı, kter´e ji pˇr´ımo nebo nepˇr´ımo potvrzuj´ı. S rostouc´ı kumu- lativn´ı vahou transakce samozˇrejmˇe roste jej´ı d˚uvˇeryhodnost. Vzhledem k to- muto principu jsou tedy starˇs´ı transakce d˚uvˇeryhodnˇejˇs´ı a jejich dvˇeryhodnost st´ale roste, jelikoˇz kaˇzd´a nov´a transakce zvˇetˇs´ı v´ahu dvou dalˇs´ıch, kter´e zvˇetˇs´ı v´ahu tˇech kter´e potvrzuj´ı tyto dvˇe a v d˚usledku se takto zv´yˇs´ı v´aha vˇsech pˇredchoz´ıch transakc´ı, kter´e jsou nepˇr´ımo potvrzeny novˇe vytvoˇrenou. U jed- notliv´ych transakc´ı jeˇstˇe m˚uˇzeme zaznamen´avat jejich v´yˇsku a hloubku, coˇz jsou parametry, kter´e v tuto chv´ıli nejsou d˚uleˇzit´e a v pˇr´ıpadˇe potˇreby budou vysvˇetleny v budouc´ıch kapitol´ach.[7]

2.2.3.4 V´ybˇer transakc´ı k potvrzen´ı

Algoritmus, kter´y vyb´ır´a zat´ım nepotvrzen´e transakce (naz´yvan´e

”tips“), kter´e maj´ı b´yt potvrzeny novou transakc´ı, je metoda Monte Carlo pomoc´ı n´ahodn´e proch´azky (RWMC - Random Walk Monte Carlo - podtˇr´ıda tˇr´ıdy algoritm˚u Monte Carlo pomoc´ı Markovova ˇRetˇezce). J´adrem algoritmu pro v´ybˇer trans- akc´ı, kter´e budou novˇe pˇr´ıchoz´ı transakc´ı potvrzeny, je tedy n´ahodn´a pro- ch´azka. Jedn´a se o proces, bˇehem kter´eho se v kaˇzd´em kroku objekt po- hne urˇcit´ym n´ahodn´ym smˇerem[9]. V tomto pˇr´ıpadˇe pˇri v´ybˇeru transakce je v prvn´ım kroku vybr´ana genesis transakce, tedy ´uplnˇe prvn´ı transakce v Tan- gle a v kaˇzd´em dalˇs´ım kroku se v´ybˇer posune do jedn´e z transakc´ı, kter´e transakci tohoto kroku pˇr´ımo potvrzuj´ı. V pˇr´ıpadˇe, ˇze by se jednalo ˇcistˇe o n´ahodnou proch´azku, byla by transakce na kterou se v dalˇs´ım kroku posu- neme vyb´ır´ana n´ahodnˇe. Toto by ovˇsem neˇreˇsilo probl´em takzvan´ych

”l´ın´ych

(30)

transakc´ı“ (Osobn´ı pˇreklad, v p˚uvodn´ım znˇen´ı

”lazy tips“). Jde o transakce, kter´e potvrzuj´ı transakce star´e a ne nov´e, a to z toho d˚uvodu, ˇze pr˚ubˇeˇznˇe ne- sleduj´ı aktu´aln´ı stav Tangle. Nevid´ı tedy nov´e transakce a potvrzuj´ı ty, kter´e jsou z jejich pohledu nejnovˇejˇs´ı, aˇckoliv ve skuteˇcnosti jsou jiˇz zastaral´e a mˇely by b´yt potvrzovan´e novˇejˇs´ı. L´ın´a transakce je vyobrazena na obr´azku 2.2.

Obr´azek 2.2: L´ın´a transakce 14 potvrzuj´ıc´ı transakce star´e

Na nˇem je vidˇet, ˇze novˇe vznikl´a transakce 14 potvrzuje transakce 0, 1 a 3, tedy jedny z nejstarˇs´ıch transakc´ı, aˇckoliv by optim´alnˇe mˇela potvrzovat sp´ıˇse napˇr´ıklad transakce 8, 9 nebo 11. Toto chov´an´ı je pro s´ıt’ nevhodn´e a je tˇreba mu urˇcit´ym zp˚usobem zabr´anit. Moˇznost´ı, kter´a je vyuˇz´ıv´ana je trestat lazy tips t´ım, ˇze budou pˇri v´ybˇeru transakc´ı k potvrzen´ı upˇrednostˇnov´any trans- akce, kter´e se chovaj´ı spr´avnˇe a drˇz´ı krok s aktu´aln´ım stavem s´ıtˇe. V pˇr´ıpadˇe bˇeˇzn´e n´ahodn´e proch´azky tyto ˇspatnˇe se chovaj´ıc´ı transakce nejsou nijak pe- nalizov´any. Z´aroveˇn ale nen´ı moˇzn´e vytvoˇrit pravidlo, ˇze novˇe vznikaj´ıc´ı trans- akce vˇzdy mus´ı potvrdit dvˇe nejnovˇejˇs´ı transakce v s´ıti, jelikoˇz nelze pˇresnˇe ˇr´ıci, kdy kter´a transakce vznikla. Z tohoto d˚uvodu je m´ısto bˇeˇzn´e n´ahodn´e proch´azky vyuˇzita n´ahodn´a proch´azka v´aˇzen´a. Ta je zaloˇzena na principu, kdy se na dalˇs´ı transakci neposouv´ame s n´ahodnou pravdˇepodobnost´ı, ale na kaˇzdou se m˚uˇzeme posunout s urˇcitou pravdˇepodobnost´ı. Zde je vyuˇzita ku- mulativn´ı v´aha transakce o kter´e je ps´ano v minul´em odstavci zab´yvaj´ıc´ım se vahami. Tato kumulativn´ı v´aha je urˇcuj´ıc´ım faktorem pro pravdˇepodobnost pˇrechodu. Transakce s vyˇsˇs´ı kumulativn´ı vahou maj´ı vˇetˇs´ı ˇsanci, ˇze se do nich v r´amci n´ahodn´e proch´azky dostaneme. T´ımto je zajiˇstˇeno to, ˇze ze star´e transakce nep˚ujdeme rovnou na jednu z nejnovˇejˇs´ıch, kter´a je lazy tip, je- likoˇz potvrzuje transakci starou. Lazy tip bude m´ıt totiˇz malou kumulativn´ı v´ahu a z transakce tedy vˇzdy s vˇetˇs´ı pravdˇepodobnost´ı pˇrejdeme do transakce, kter´a je bliˇzˇs´ı ˇcasu vytvoˇren´ı transakce, ve kter´e se aktu´alnˇe nach´az´ıme.[10]

V r´amci urˇcov´an´ı pravdˇepodobnosti se jeˇstˇe pracuje s parametrem α, kter´y urˇcuje, jak velkou v´ahu v r´amci pravdˇepodobnosti m´a pr´avˇe kumulativn´ı v´aha.

(31)

Pro α = 0 m´ame ˇcistou n´ahodnou proch´azku, ve kter´e v´aha nehraje ˇz´adnou roli. Pro α = 1 naopak v´aha hraje jedinou roli a v kaˇzd´em kroku pˇrejdeme na potvrzuj´ıc´ı transakci s nejvyˇsˇs´ı kumulativn´ı v´ahou. To tak´e nen´ı vhodn´e, jelikoˇz v takov´em pˇr´ıpadˇe by doch´azelo k nepotvrzen´ı velk´e ˇc´asti transakc´ı.

Vhodn´a hodnota pro parametrαje st´ale pˇredmˇetem v´yzkum˚u. Obecnˇe se pro urˇcit´e situace pouˇz´ıvaj´ı jeho r˚uzn´e hodnoty.[7]

2.2.3.5 Vytvoˇren´ı transakce

K tomu, aby byla transakce akceptovan´a Tangle, mus´ı obsahovat takzvanou kryptografickou nonce. V´yraz nonce, pouˇz´ıvan´y v kryptografii, obecnˇe zna- men´a ˇc´ıslo, kter´e je urˇceno pouze k jednor´azov´emu pouˇzit´ı. Z tohoto d˚uvodu je ˇcasto jeho souˇc´ast´ı aktu´aln´ı ˇcasov´a znaˇcka. Data transakce jsou zak´odov´ana a uloˇzena ve 2673 trytech. Tryte je tern´arn´ı obdobou bajtu. Je sloˇzen z pˇeti trit˚u. Tern´arn´ı logikou a d˚uvody proˇc ji IOTA vyuˇz´ıv´a, se budu zab´yvat v bu- douc´ıch kapitol´ach t´eto pr´ace. Posledn´ıch 81 tryt˚u je rezervov´ano pr´avˇe pro nonce. K tomu aby transakce z´ıskala nonce, mus´ı nejprve vyˇreˇsit urˇcit´y kryp- tografick´y probl´em. Principu, kdy k vyuˇzit´ı sluˇzby je nejprve tˇreba prov´est v´ypoˇcetn´ı ´ukony, se obecnˇe ˇr´ık´a proof-of-work a jedn´a se pomˇernˇe vhodn´y n´astroj pro zamezen´ı DoS (Denial of Service - typ ´utoku, kdy je generov´ano velk´e mnoˇzstv´ı poˇzadavk˚u, t´ım zahlcena s´ıt’ a tak znemoˇznˇen pˇr´ıstup ke sluˇzbˇe ostatn´ım uˇzivatel˚um) ´utok˚um, nebo spamu.[11] Takov´ymto zn´am´ym syst´e- mem je napˇr´ıklad Hashcash. Algoritmus je pouˇz´ıv´an pˇredevˇs´ım k zamezen´ı spamu v r´amci elektronick´e poˇsty. Funguje tak, ˇze pro odesl´an´ı mus´ı odesi- latel pˇriloˇzit hlaviˇcku v urˇcit´em form´atu. Hlaviˇcka se skl´ad´a z urˇcit´ych dat doplnˇen´ych ˇc´ıslem, kter´e je na zaˇc´atku nastaveno na n´ahodnou hodnotu.

N´aslednˇe je hlaviˇcka zahashov´ana funkc´ı SHA-1 a pokud zaˇc´ın´a na 20 nu- lov´ych bit˚u, jedn´a se o pouˇzitelnou hlaviˇcku. Pokud na zaˇc´atku nem´a alespoˇn 20 nulov´ych bit˚u, je tˇreba upravit doplˇnuj´ıc´ı ˇc´ıslo a zkusit hlaviˇcku zahashovat znovu. Toto je tˇreba opakovat do t´e doby, neˇz je nalezena hlaviˇcka, kter´a m´a poˇzadovan´y form´at. D´ıky tomuto nelze efektivnˇe spamovat s´ıt’, jelikoˇz nen´ı moˇzn´e generovat velk´e mnoˇzstv´ı validn´ıch hlaviˇcek v kr´atk´em ˇcase.[12]

IOTA je zaloˇzena na velmi podobn´em principu. Nonce, kter´e mus´ı b´yt pˇriloˇzeno na konci zak´odovan´e transakce mus´ı obsahovat urˇcit´y poˇcet nulov´ych trit˚u na konci. Tento poˇcet je urˇcen konstantou, kter´e se ˇr´ık´a minimum weight magnitude (MWM). V dobˇe psan´ı t´eto pr´ace je na hlavn´ı s´ıti nastavena na hodnotu 15. Nonce tedy mus´ı m´ıt na konci minim´alnˇe 15 nulov´ych trit˚u. Je- likoˇz se jedn´a o tern´arn´ı soustavu, nen´ı moˇzn´e pouˇz´ıt klasick´e hashovac´ı funkce a z toho d˚uvodu byla IOTA v´yvoj´aˇri vytvoˇrena prvn´ı existuj´ıc´ı tern´arn´ı ha- shovac´ı funkce, kter´a se naz´yv´a Curl. Tato funkce vzbudila velkou kontroverzi, pˇredevˇs´ım kv˚uli v´yzkumu t´ymu z MIT, kter´y v n´ı nalezl urˇcit´e chyby a oznaˇcil ji za nedostateˇcnˇe bezpeˇcnou a celou IOTA s´ıt’ tedy za jednoduˇse napadnu- telnou. Chyba byla n´aslednˇe opravena.[13]. Tato implementace proof-of-work zabraˇnuje mnoha typ˚um ´utoku na s´ıt’. [14]

(32)

2.2.3.6 Validn´ı transakce

V pˇredchoz´ıch kapitol´ach bylo vysvˇetleno, jak´ym zp˚usobem je transakce po- tvrzovan´a a co znamen´a, ˇze jedna transakce potvrzuje jinou. Hlavn´ı vˇec´ı, kter´a je ale d˚uleˇzit´a pro pr´aci se samotnou ´uˇcetn´ı knihou je fakt, jestli je urˇcit´a transakce br´ana jako potvrzen´a v r´amci cel´e s´ıtˇe (v r´amci odliˇsen´ı n´azvoslov´ı pro potvrzen´ı jedn´e transakce druhou a potvrzen´ı transakce v r´amci cel´e s´ıtˇe, naz´yvejme toto potvrzen´ı validitou transakce), nebo ne. D´ıky tomu jsme schopn´ı napˇr´ıklad pˇrijmout platbu. Ve chv´ıli co v´ıme, ˇze je transakce validn´ı, m´ame jistotu, ˇze probˇehla a ˇze tedy zdroje byly pˇrevedeny. Rozhod- nut´ı, jestli je urˇcit´a transakce validn´ı, je zaloˇzeno na stejn´em algoritmu, jako v´ybˇer transakc´ı k potvrzen´ı, tedy na metodˇe Monte Carlo pomoc´ı n´ahodn´e proch´azky.

Pˇri ovˇeˇrov´an´ı validity je na zaˇc´atku vybr´ano pomoc´ı RWMC sto zat´ım ne- potvrzen´ych transakc´ı a n´aslednˇe zjist´ıme, kolik z nich pˇr´ımo nebo nepˇr´ımo po- tvrzuje ovˇeˇrovanou transakci. Procento transakc´ı, kter´e ji potvrzuj´ı se naz´yv´a jistota potvrzen´ı (Osobn´ı pˇreklad, v p˚uvodn´ım znˇen´ı

”confirmation confi- dence“). Kdy bereme transakci jako validn´ı si potom urˇcuje s´am tv˚urce apli- kace. Typicky nen´ı nikdy jistota validity, ale vˇzdy m´ame pouze jistotu potvr- zen´ı.

2.2.3.7 Koordin´ator

Jednou z hlavn´ıch ot´azek, kter´a se t´yk´a decentralizovan´ych ´uˇcetn´ıch knih, je bezpeˇcnost a pˇredevˇs´ım d˚uvˇeryhodnost dat, kter´a se v knize nach´az´ı. Existuje nˇekolik typ˚u ´utok˚u, kter´ym m˚uˇze Tangle, stejnˇe jako blockchain a dalˇs´ı dis- tribuovan´e s´ıtˇe, ˇcelit. Kaˇzd´a technologie se pˇred ´utoky br´an´ı jin´ym zp˚usobem.

V pˇr´ıpadˇe Tangle je hlavn´ım bezpeˇcnostn´ı prvkem fakt, ˇze vytvoˇren´ı kaˇzd´e transakce vyˇzaduje urˇcitou v´ypoˇcetn´ı kapacitu. Z tohoto d˚uvodu by mˇela b´yt moˇznost z´ıskat nadvl´adu nad vˇetˇsinou s´ıtˇe nemoˇzn´a. Je to zp˚usobeno t´ım, ˇze ˇc´ım v´ıce transakc´ı vznik´a, t´ım v´ıce transakc´ı je tˇreba vytvoˇrit k tomu, aby jejich autor z´ıskal vˇetˇsinu v s´ıti. T´ım p´adem nar˚ust´a i v´ypoˇcetn´ı kapa- cita, kter´a je tˇreba k vytvoˇren´ı dan´eho poˇctu transakc´ı. Moˇznost vytvoˇrit do- stateˇcn´y poˇcet podvodn´ych transakc´ı k prosazen´ı vlastn´ıch dat v s´ıti by tedy mˇela b´yt v teorii nemoˇzn´a z d˚uvodu obrovsk´ych n´aklad˚u na v´ypoˇcetn´ı s´ılu.

Je zde ovˇsem urˇcit´a hranice poˇctu transakc´ı za sekundu, pod kterou nen´ı s´ıt’

bezpeˇcn´a, vzhledem k faktu, ˇze pro bezpeˇcnost je tˇreba, aby poˇcet vznikaj´ıc´ıch transakc´ı byl znatelnˇe vˇetˇs´ı oproti v´ypoˇcetn´ı kapacitˇe ´utoˇcn´ıka.

Protoˇze ekosyst´em se ale nach´az´ı v pomˇernˇe ran´em st´adiu v´yvoje, nen´ı s´ıt’

vyuˇz´ıv´ana zdaleka tolik, jako by v budoucnu mˇela b´yt. Poˇcet transakc´ı, kter´e vznikaj´ı je tedy pomˇernˇe mal´y a z tohoto d˚uvodu nezajiˇst’uje dostateˇcnou bezpeˇcnost s´ıtˇe. Pro ´utoˇcn´ıka by teoreticky nebylo tak tˇeˇzk´e vytvoˇrit mnoho uzl˚u a zaˇc´ıt generovat velk´e mnoˇzstv´ı podvodn´ych transakc´ı, kter´e by potom mˇely pomˇernˇe velkou ˇsanci, ˇze budou pˇri n´ahodn´e proch´azce vybr´any. Z tohoto

(33)

d˚uvodu je v s´ıti speci´aln´ı uzel, provozovan´y pˇr´ımo IOTA Foundation, zvan´y Koordin´ator. Ten vytv´aˇr´ı kaˇzd´e dvˇe minuty takzvanou miln´ıkovou transakci (Milestone transaction). Transakce, kter´e jsou pˇr´ımo nebo nepˇr´ımo potvr- zeny miln´ıkovou transakc´ı jsou povaˇzov´any za validn´ı, tedy ˇze maj´ı jistotu potvrzen´ı 100%. Tyto miln´ıkov´e transakce nemohou b´yt ˇz´adn´ym zp˚usobem falˇsov´any, jelikoˇz jsou speci´alnˇe podepsan´e Koordin´atorem, coˇz dokl´ad´a je- jich zdroj. Z tohoto d˚uvodu m´ame jistotu validity transakce, kter´a by v tuto chv´ıli pˇri pomˇernˇe mal´em poˇctu transakc´ı byla m´enˇe d˚uvˇeryhodn´a, pˇr´ıpadnˇe nedosaˇziteln´a.[15]

Existence Koordin´atora vzbuzuje velk´e emoce v r´amci veˇrejnosti, kter´a z tohoto d˚uvodu ˇcasto Tangle napad´a kv˚uli tomu, ˇze nen´ı ve skuteˇcnosti decen- tralizovan´y, jelikoˇz v nˇem existuje uzel, kter´y urˇcuje jednu pravdu. Aˇckoliv je toto pravda a jedn´a se o uzel, kter´y je vytvoˇren IOTA Foundation a z´aroveˇn j´ı provozov´an, uzel nevytv´aˇr´ı nov´e tokeny, ani neumoˇzˇnuje takzvan´e dvoj´ı v´ydaje (typ ´utoku, kter´ym se tak´e budeme zab´yvat v analytick´e ˇc´asti). Samozˇrejmˇe se ale jedn´a o urˇcit´e specifikum, kter´e by nemˇelo v s´ıti b´yt. C´ılem IOTA Foundation je vytvoˇrit naprosto decentralizovanou s´ıt’ a z tohoto d˚uvodu vid´ı odstranˇen´ı Koordin´atora jako nevyhnuteln´y krok. P˚uvodn´ı pl´an byl, ˇze k od- stranˇen´ı dojde v l´etˇe roku 2018, k ˇcemuˇz vˇsak nedoˇslo, pˇredevˇs´ım z d˚uvodu mal´e vyzr´alosti s´ıtˇe. Ta je hlavn´ım probl´emem pˇri snaze o odstranˇen´ı. Dokud nebude s´ıt’ dostateˇcnˇe vyuˇz´ıvan´a, aby mohl b´yt Koordin´ator odstranˇen, aniˇz by vznikly potenci´aln´ı bezpeˇcnostn´ı d´ıry v s´ıti, nem˚uˇze k odstranˇen´ı doj´ıt. Sna- hou je samozˇrejmˇe, aby k tomuto doˇslo co nejdˇr´ıve, ale zde se jedn´a o ot´azku vyuˇzit´ı dan´e technologie, kter´a nen´ı pˇr´ımo v rukou IOTA Foundation a je tedy ot´azkou budoucnosti, s nemoˇznost´ı pˇresnˇe urˇcit specifick´y term´ın.[14]

2.2.3.8 Tern´arn´ı logika

IOTA samotn´a nen´ı, jako t´emˇeˇr veˇsker´a zbyl´a technologie, postaven´a na prin- cipu dvojkov´e soustavy (bin´arn´ı), ale na soustavˇe tern´arn´ı, tedy trojkov´e.

Pˇresnˇeji na balancovan´e trojkov´e soustavˇe, tedy pouˇz´ıvaj´ıc´ı oproti norm´aln´ı tern´arn´ı soustavˇe s hodnotami 0, 1, 2 hodnoty -1, 0, 1. D˚uvodem k tomuto je fakt, ˇze trojkov´a soustava by mˇela b´yt rychlejˇs´ı neˇz dvojkov´a a v mnoha ohledech by i pr´ace s n´ı mˇela b´yt pˇrirozenˇejˇs´ı, neˇz pr´avˇe se soustavou bin´arn´ı.

Napˇr´ıklad pr´ace se znam´enky, nebo desetinn´ymi ˇc´ısly je o pozn´an´ı jednoduˇsˇs´ı.

Veˇsker´a data jsou tedy zak´odov´ana do trit˚u, ekvivalentu bit˚u dvojkov´e soustavy. Trity se sluˇcuj´ı do tryt˚u, tedy trojic trit˚u. Jeden tryte tedy m˚uˇze nab´yvat 27 r˚uzn´ych hodnot. IOTA Foundation jednotliv´ym hodnot´am pˇriˇradi- la znaky a to velk´a p´ısmena abecedy a ˇc´ıslo 9.[16] Vzhledem k aktu´aln´ı absenci hardware, kter´y by podporoval tern´arn´ı soustavu, jsou data vˇzdy zak´odov´ana do tˇechto znak˚u a n´aslednˇe pˇren´aˇsena klasick´ym zp˚usobem, tedy zak´odov´ana do dvojkov´e soustavy. Tv˚urci projektu ale vˇeˇr´ı, ˇze v budoucnu budou standar- dem tern´arn´ı mikroprocesory, kter´e umoˇzn´ı pr´aci pˇr´ımo s tern´arn´ı soustavou a tedy znaˇcnˇe zrychl´ı a zjednoduˇs´ı i pr´aci se samotn´ym IOTA protokolem.

(34)

Jedn´ım z projekt˚u, kter´y by ´udajnˇe mˇel jiˇz vyv´ıjet levn´y a energeticky velmi nen´aroˇcn´y tern´arn´ı procesor je projekt Jinn. Tento projekt by mˇel b´yt ve- den jedn´ım z hlavn´ım v´yvoj´aˇr˚u IOTA. Spousta informac´ı jsou ale sp´ıˇse do- hady a kromˇe nˇekolika koment´aˇr˚u na f´orech, pˇr´ıpadnˇe dalˇs´ıch komunikaˇcn´ıch kan´alech IOTA Foundation, je projekt pomˇernˇe nepr˚uhledn´y.

Tern´arn´ı logika je z´aroveˇn jedn´ım z d˚uvod˚u, proˇc je IOTA bezpeˇcnˇejˇs´ı, neˇz vˇetˇsina projekt˚u podobn´eho typu a to z d˚uvodu, ˇze je odoln´a v˚uˇci kvan- tov´emu poˇc´ıt´an´ı. Aˇckoliv je technologie kvantov´eho poˇc´ıt´an´ı zat´ım ve velmi ran´e a pˇredevˇs´ım teoretick´e f´azi, pomalu vznikaj´ı jednoduch´e prototypy. Do budoucna se vˇeˇr´ı, ˇze kvantov´e poˇc´ıtaˇce budou fungovat a jako takov´e znehod- not´ı velkou ˇc´ast souˇcasn´e kryptografie, jelikoˇz jejich v´ypoˇcetn´ı kapacita bude umoˇzˇnovat prolomen´ı velk´e ˇc´asti kl´ıˇc˚u hrubou silou. V pˇr´ıpadˇe IOTA jsou kl´ıˇce tvoˇreny 81 tryty a z tohoto d˚uvodu jsou i pro kvantov´e poˇc´ıtaˇce hrubou silou neprolomiteln´e. [14]

2.2.3.9 IOTA Token

Jelikoˇz je IOTA protokol, jehoˇz hlavn´ı podstatou je technologie decentralizo- van´e ´uˇcetn´ı knihy, je zjevn´e, ˇze kromˇe samotn´ych technologi´ı pˇrenosu a distri- buce dat je tˇreba, aby existovalo nˇeco, co bude m´ıt nomin´aln´ı hodnotu, kter´a bude v r´amci transakc´ı pˇrev´adˇena. Tuto hodnotu nese IOTA token. Token obecnˇe je vˇetˇsinou definov´an jako mince nebo listina, jej´ıˇz nomin´aln´ı hod- nota, tedy hodnota vˇetˇsinou na minci pˇr´ımo uveden´a, je vˇetˇs´ı neˇz jej´ı vnitˇrn´ı hodnota.[17] Vnitˇrn´ı hodnotou je myˇslena napˇr´ıklad cena materi´alu ze kter´eho je dan´a mince vyrobena. Typickou uk´azkou jsou napˇr´ıklad bˇeˇzn´e mˇeny jako euro nebo ˇcesk´a Koruna. Dalˇs´ım d˚uleˇzit´ym aspektem je to, ˇze token by mˇel b´yt vˇetˇsinou spravov´an jednou instituc´ı a nemˇelo by tedy b´yt moˇzn´e jeho hodnotu ovlivˇnovat napˇr´ıklad t´ım, ˇze si ho doma sami vytvoˇr´ıme, ˇc´ımˇz jeho hodnotu devalvujeme vpuˇstˇen´ım velk´eho objemu na trh.

Posledn´ı dobou se ukazuje, ˇze tokeny jako takov´e v˚ubec nemus´ı b´yt fy- zick´e. Uk´azkou jsou napˇr´ıklad kryptomˇeny, kter´e vznikaj´ı v r´amci specifick´ych projekt˚u a vˇetˇsinou jsou postaveny na d˚uleˇzit´e vlastnosti decentralizace. Toto jim d´av´a urˇcitou v´yhodu oproti bˇeˇzn´ym mˇen´am spravovan´ym centr´aln´ımi ban- kami. Banky samy rozhoduj´ı, kolik token˚u, v jejich pˇr´ıpadˇe vˇetˇsinou penˇez, ne- chaj´ı vytisknout a poˇslou do obˇehu. T´ım jsou schopn´e na pˇr´ımo ovlivˇnovat hod- notu dan´e mˇeny, coˇz je z´akladem monet´arn´ı politiky. V modern´ı spoleˇcnosti je toto ˇc´ım d´al t´ım v´ıce pˇredmˇetem kritiky, jelikoˇz je poukazov´ano na fakt, ˇze to odporuje voln´emu trhu a takov´ato m´ıra centralizace nen´ı vhodn´a, jelikoˇz hodnota mˇeny neodpov´ıd´a realitˇe, coˇz m˚uˇze v´est k ekonomick´ym probl´em˚um.

Oproti tomu vˇetˇsina kryptomˇen je zaloˇzena na principu, kdy nikdo nem˚uˇze rozhodnout o vyd´an´ı dalˇs´ıch token˚u do obˇehu, ani jejich staˇzen´ı z nˇej. To- ken vˇetˇsinou vznik´a na z´akladˇe prvotn´ıho pravidla, kter´e vzniklo spoleˇcnˇe s tokenem samotn´ym. At’ uˇz jsou v obˇehu tokeny vˇsechny, nebo ne, je ve vˇetˇsinˇe pˇr´ıpad˚u pˇredem zn´am´e, kolik jich v obˇehu bude maxim´alnˇe a jak se

(35)

do obˇehu dost´avaj´ı. V pˇr´ıpadˇe Bitcoinu napˇr´ıklad nov´e tokeny vznikaj´ı pˇri takzvan´e tˇeˇzbˇe, tedy ovˇeˇrov´an´ı transakc´ı pomoc´ı proof-of-work, za coˇz jsou tˇeˇzaˇri odmˇeˇnov´ani ˇc´asteˇcnˇe poplatky, kter´e plat´ı ti, kteˇr´ı transakce zakl´adaj´ı a ˇc´asteˇcnˇe jsou placeni novˇe vznikaj´ıc´ımi tokeny. Obt´ıˇznost proof-of-work se ale s nar˚ustaj´ıc´ım poˇctem token˚u v obˇehu zvyˇsuje a t´ım p´adem se postupnˇe sniˇzuje rychlost vznik´an´ı token˚u nov´ych. Z´aroveˇn se dopˇredu v´ı, kolik token˚u bude a kdy uˇz tˇeˇzba nebude pˇrin´aˇset nov´e. Z tohoto d˚uvodu nedrˇz´ı moc nad cenou tokenu v rukou jedna instituce, ale cena vych´az´ı pˇr´ımo z trhu na z´akladˇe nab´ıdky a popt´avky.

V pˇr´ıpadˇe IOTA tokenu byly vˇsechny tokeny do obˇehu vyd´any hned na zaˇc´atku v r´amci genesis transakce. Tento poˇcet se nikdy nebude mˇenit a tokeny se daj´ı pouze koupit, nebo z´ıskat jinou cestou, ale vˇzdy tak, ˇze jsou zasl´any v r´amci transakce. Nikdy nem˚uˇze vzniknout nov´y IOTA token. V obˇehu je 2 779 530 283 277 761 IOTA token˚u, kter´ym se jednoduˇse ˇr´ık´a IOTA. Jedn´a se o ˇc´ıslo shodn´e s (333−1)/2. Jedn´a se o nejvˇetˇs´ı 33-tritov´e ˇc´ıslo. Tedy pˇrevedeno do tern´arn´ıho k´odov´an´ı, 33 jedniˇcek v ˇradˇe. Jelikoˇz se jedn´a o opravdu velk´y poˇcet, je d´ıky tomu moˇzn´e pˇren´aˇset opravdu mal´e finanˇcn´ı ˇc´astky. V dobˇe kdy vznik´a tato pr´ace, se cena IOTA pohybuje okolo des´ıtek cent˚u americk´eho dolaru za 1 000 000 IOTA. 1 IOTA se tedy pohybuje okolo 0,0005 Korun ˇ

cesk´ych. Vzhledem k faktu, ˇze 1 IOTA je v tuto chv´ıli aˇz pˇr´ıliˇs mal´a pro bˇeˇzn´e uˇzit´ı, bere se za z´akladn´ı jednotku 1 000 000 IOTA, tedy 1 MIOTA. V r´amci IOTA n´azvoslov´ı se pouˇz´ıv´a mezin´arodn´ı syst´em jednotek (Syst´em SI). Uk´azka jednotliv´ych jednotek a jejich hodnot je v tabulce 2.1. IOTA jako takov´a je uˇz d´ale nedˇeliteln´a a nejmenˇs´ı provediteln´a transakce je tedy 1 IOTA.

Jednotka N´azev Hodnota

Pi Peta IOTA 1015

Ti Terra IOTA 1012

Gi Giga IOTA 109

Mi Mega IOTA 106

Ki Kilo IOTA 103

i IOTA 1

Tabulka 2.1: Pˇrevody jednotek IOTA

2.2.3.10 Seed a adresy

Specifikum IOTA protokolu nen´ı pouze ve vytv´aˇren´ı a ovˇeˇrov´an´ı transakc´ı, ale i v samotn´em pˇr´ıstupu a pr´aci s adresami. V minul´em odstavci byl pops´an IOTA token a fakt, ˇze jedn´ım z hlavn´ıch ´uˇcel˚u Tangle je pˇrevod token˚u mezi

´

uˇcty. At’ uˇz je ´uˇcet vlastnˇen fyzickou osobou a ovl´ad´an ruˇcnˇe, nebo je souˇc´ast´ı IoT zaˇr´ızen´ı a pr´ace s tokeny prob´ıh´a strojovˇe, mus´ı b´yt dodrˇzov´an specifick´y princip, kter´y vych´az´ı z metodiky, kterou je pracov´ano s adresami a ´uˇcty.

(36)

V kryptografii zn´ame asynchronn´ı ˇsifry, kter´e jsou zaloˇzeny na principu soukrom´eho a veˇrejn´eho kl´ıˇce. Veˇrejn´y kl´ıˇc m˚uˇzeme distribuovat a je pouˇz´ıv´an dalˇs´ımi stranami, kter´e pomoc´ı nˇej zaˇsifruj´ı zpr´avy, kter´e n´am pos´ılaj´ı. Oproti tomu soukrom´ym kl´ıˇcem, kter´y z d˚uvodu bezpeˇcnosti nesm´ıme nikomu po- skytnout, jsme schopn´ı pˇrijatou zpr´avu deˇsifrovat.[18] IOTA je zaloˇzena na podobn´em principu s urˇcitou limitac´ı. V r´amci IOTA s´ıtˇe rozliˇsujeme nˇeco ˇcemu m˚uˇzeme ˇr´ıkat napˇr´ıklad ´uˇcet, nebo penˇeˇzenka. Ty na sebe mohou m´ıt nav´az´ano v´ıce adres.

Hlavn´ım identifik´atorem ´uˇctu je ˇretˇezec naz´yvan´y seed. Jedn´a se o ˇretˇezec dlouh´y 81 znak˚u sloˇzen´y pouze z velk´ych p´ısmen abecedy a ˇc´ısla 9. Seed je jedin´ym identifik´atorem ´uˇctu a pouze pomoc´ı nˇej se d´a s ´uˇctem pracovat.

Funguje tedy mimo jin´e jako doklad vlastnictv´ı dan´eho ´uˇctu. Z tohoto d˚uvodu by mˇel b´yt vhodnˇe uloˇzen a zabezpeˇcen.

Pro generov´an´ı soukrom´ych kl´ıˇc˚u adres k dan´emu ´uˇctu je vyuˇz´ıv´ano speci-

´

aln´ı sch´ema zaloˇzeno na WOTS sch´ematu (Winternitz One-Time Signature).

Soukrom´y kl´ıˇc je generov´an ze seedu zkombinovan´ym s indexem adresy. Prvn´ı adresa m´a index 0, druh´a 1 a tak d´ale. Soukrom´y kl´ıˇc pro prvn´ı adresu tedy z´ısk´ame tak, ˇze jako vstup hashovac´ı funkce pouˇzijeme seed doplnˇen´y o ˇc´ıslo 0. V tomto pˇr´ıpadˇe se pouˇz´ıv´a hashovac´ı funkce Kerl, coˇz je dalˇs´ı hashovac´ı funkce vyvinut´a IOTA Foundation. Je zaloˇzena na hashovac´ı funkci Keccak secure hash, kter´a se v podstatˇe stala pˇredlohou funkce SHA3-256.[19] Za- hashov´an´ım dostaneme priv´atn´ı kl´ıˇc. Pokud tento kl´ıˇc znovu zahashujeme stejnou funkc´ı, dostaneme k nˇemu pˇr´ısluˇsn´y veˇrejn´y kl´ıˇc. V pˇr´ıpadˇe, ˇze do- jde k vytvoˇren´ı transakce, kter´a odes´ıl´a tokeny na jin´y ´uˇcet, je vlastnictv´ı token˚u doloˇzeno podpisem transakce soukrom´ym kl´ıˇcem. Vzhledem k vyuˇzit´ı WOTS je podpisem zveˇrejnˇena polovina priv´atn´ıho kl´ıˇce a t´ım p´adem doch´az´ı k 50% sn´ıˇzen´ı bezpeˇcnosti adresy. S kaˇzd´ym dalˇs´ım pouˇzit´ım t´eto adresy by jej´ı bezpeˇcnost d´ale klesala. Z tohoto d˚uvodu je tedy pˇri kaˇzd´e odchoz´ı transakci pˇr´ısluˇsn´a ˇc´ast token˚u odesl´ana na adresu pˇr´ıjemce a zbyl´e tokeny na adrese jsou posl´any na novou adresu, kter´a m´a index o jedna vyˇsˇs´ı neˇz aktu´aln´ı.

T´ımto je zajiˇstˇeno to, ˇze tokeny nebudou z˚ust´avat na ne´uplnˇe bezpeˇcn´e ad- rese. Lze tedy na jednu adresu opakovanˇe pˇrij´ımat tokeny, ale jakmile jednou z adresy nˇejak´e tokeny odejdou, je tˇreba adresu opustit.[14]

D˚uleˇzit´ym aspektem je tak´e pˇripojen´ı adresy k Tangle. Novˇe vznikl´a ad- resa nemus´ı b´yt k Tangle pˇripojena. To samo o sobˇe nevad´ı, jelikoˇz v pˇr´ıpadˇe, ˇze vznikne transakce, kter´a pos´ıl´a tokeny na tuto adresu, bude automaticky pˇripojena. Je ale dobr´e adresy pˇripojovat vˇzdy hned po vzniku z d˚uvodu al- goritmu kter´ym jsou nal´ez´any vˇsechny adresy propojen´e s urˇcit´ym seedem.

Takto je napˇr´ıklad zjiˇst’ov´an objem token˚u na ´uˇctu aplikacemi, kter´e nab´ızej´ı uˇzivatelsk´e rozhran´ı k ´uˇctu. Postupnˇe se hledaj´ı vˇsechny adresy spojen´e se seedem od indexu 0. Ve chv´ıli co algoritmus dojde k indexu adresy, kter´y neexistuje, tak se zastav´ı a posˇc´ıt´a objemy na vˇsech nalezen´ych adres´ach (Ob- jem by mˇel b´yt pouze na posledn´ı nalezen´e adrese kv˚uli bezpeˇcnosti - jist´e to ale samozˇrejmˇe nen´ı). Je teoreticky ale moˇzn´e, ˇze adresa s indexem x ne-

Odkazy

Související dokumenty

Pˇ redloˇ zen´ a diplomov´ a pr´ ace m´ a tyto z´ akladn´ı c´ıle: Podat pˇ rehled existuj´ıc´ıch me- tod pro nalezen´ı checking posloupnost´ı; popsat pouˇ zitelnost

Bohuˇ zel, pr´ ace je pˇ r´ıliˇ s struˇ cn´ a, informace v n´ı jsou roztrouˇ seny, nen´ı celistv´ a, t.j.. chyb´ı v n´ı detaily, kter´ e jsou je pro

Vˇsechny obdrˇzen´e ´ukoly se daj´ı rozdˇelit do tˇr´ı z´akladn´ıch skupin, kter´e odpov´ıdaj´ı urˇcit ´ym v ´yvojov ´ym obdob´ım, kter ´ymi jsem v pr

Chtˇ el bych podˇ ekovat m´ emu vedouc´ımu bakal´ aˇ rsk´ e pr´ ace za jeho konstruktivn´ı rady a potˇ rebnou kritiku pr´ ace a Honzovi Sixtovi, kter´ y mi i pˇ ri r˚

Tento konektor slouˇ z´ı pro pˇ ripojen´ı nap´ ajen´ı k arduinu a pro pˇ riveden´ı dvou sign´ aln´ıch vodiˇ c˚ u pro motor vidlice, kter´ e maj´ı stejn´ y charakter

Na z´akladˇe anal´yzy implementuje v druh´e ˇc´asti pr´ace ˇreˇsen´ı detekce a sledov´an´ı vozidel pomoc´ı modelu DETR, kter´y je absolutn´ı novinka mezi modely pro

Pokud uˇ zivatel po pˇ rihl´ aˇ sen´ı zvol´ı v menu tlaˇ c´ıtko M´ e, aplikace odeˇ sle poˇ zadavek na server k z´ısk´ an´ı vˇ sech seznam˚ u, kter´ e kdy dan´ y

C´ılem pˇ redloˇ zen´ e pr´ ace je n´ avrh a implementace vizualizaˇ cn´ı metody, kter´ a kombinuje obraz z barevn´ e a term´ aln´ı kamery.. Pˇ redpokl´ ad´ a se, ˇ