Hva er egentlig en DAG? Hvordan er de matematiske egenskapene til en DAG utnyttet i IOTA sitt Tangle nettverk? Jeg vil forsøke å grave litt dypere ned i matematikken som ligger bak Tangle, og danne et lite bilde av hvordan dette henger sammen. Til slutt vil jeg se litt på egenskapene til Tangle sammenlignet med tradisjonell blokkjedeteknologi.
Hva er egentlig en DAG?
DAG står for Directed Acyclic Graph, som på godt norsk er oversatt til en rettet asyklisk graf. En graf er rett og slett et samlebegrep på matematisk strukturer som brukes til å lage modeller for parvise relasjoner mellom objekter. En graf består av en mengde noder, og en mengde kanter, hvorav hver kant forbinder to noder med hverandre. Dette er forsøkt illustrert under, hvor kantene er markert i lilla og nodene er markert i grønt.
Grafen som er illustrert over er en generell graf som ikke er rettet (kantene er ikke retningsbestemt) og som i tillegg inneholder sykler, altså er den ikke asyklisk. Dette er altså ikke en DAG. En rettet graf har en retning på kantene, og en asyklisk graf inneholder ingen sykluser, det vil si at en node ikke kan peke på en node lenger opp i hiarkiet. Dette er forsøkt illustrert under.
Det er først når man kombinerer alle disse egenskapene at man vil få en Directed Acyclic Graph, som vist på bildet under. En DAG kan altså oppsummeres som en graf som ikke inneholder noen sykler, og hvor nodereferansene kun er en bestemt retning.
Så, nå har du forhåpentligvis fått litt innsikt i hva en DAG er og hvordan en DAG-struktur er bygget opp. Så hva har så dette med IOTAs Tangle å gjøre?
Hva er Tangle?
Datastrukturen som er utnyttet i Tangle er en spesiell type rettet graf, hvor selve grafen holder transaksjoner. Hver transaksjon blir representert som en node i grafen. Hver node inneholder altså informasjon som er knyttet til selve transaksjonen, typisk “person A ga person B fem IOTA”. Hver validering av en transaksjon er representert som en kant, som en referanse mellom noden som validerte, og den som ble validert.
Når en ny transaksjon slutter seg til Tangle, velger den to foregående transaksjoner til validering, som vil si at to nye kanter blir knyttet til grafen. I eksempelet under vil transaksjon 5 validere transaksjon 2 og 3.
Uvaliderte transaksjoner kalles tips. Som du ser i eksempelet over, så har ikke transaksjon 6 blitt validert ennå, derav er dette en tip. Når en ny transaksjon blir laget, må den velge to tips til å validere. Algoritmen til IOTA velger da to tilfeldige tips av alle tilgjengelige tips i nettverket. Når disse er validert vil de bli fullstendig sluttet til Tangle nettverket.
Under har jeg lagt ved en kort informativ video om virkemåten til Tangle, i tilfelle beskrivelsen min av Tangle ikke var tilstrekkelig.
Skalerbarhet
Et av de største problemene til dagens blokkjedeteknologi er at den ikke er skalerbar. La oss ta Bitcoin som et eksempel. Bitcoin har et maksimalt antall transaksjoner som nettverket kan prosessere. Dette er en konsekvens av det faktum at blokkene i en blokkjede er begrenset til en størrelse på én megabyte. Kort fortalt vil dette si at den høyeste prosesseringshastigheten til transaksjonene som er mulig å oppnå for Bitcoin er estimert til å ligge på mellom 3,3-7 TPS (Transactions Per Second). Hvis man sammenligner dette med dagens mest velkjente betalingssystem VISA, så ligger det på en snittverdi på omkring 2000 TPS. Det er ikke vanskelig å forstå at dette vil bli et problem desto mer populært det blir å bruke blokkjede. Dette er et av problemene som IOTA ønsker å løse med Tangle.
Siden Tangle ikke har behov for dedikerte “minere”, men heller lar alle deltakerne i Tangle nettverket aktivt bidra med validering, så oppnår man en skalerbarhet som teoretisk sett gjør at den er uendelig skalerbar. Rent praktisk vil det nok begrenses av datakraft, noe man uansett vil ha nok av i fremtiden.
Kvante-resistent
Fremtidens datamaskiner, den såkalte kvantemaskinen, vil kunne knekke kryptering mye lettere enn en vanlig datamaskin (kilde). IOTA tar høyde for dette ved å utelukkende bruke kvante-resistente kryptografiske algoritmer. Disse er immun til “prøv og feil” angrep, eller såkalte “brute force attacks”.
Det er dedikert et eget kapittel i IOTA sin whitepaper om kvante-resistanse, og det er ikke foruten grunn. De vet at dette er et sikkerhetshensyn de må ta høyde for når de utvikler et produkt for fremtiden. Hvis IOTA ender opp med å bli det de selv kaller “ryggmargen til Internet of Things”, slik deres visjon er å bli, så er det viktig at en slik sikkerhet er på plass.
Konklusjon
Tradisjonell blokkjedeteknologi har ennå noen uløste problemer. Ved å ta i bruk innovativ teknologi tar IOTA høyde for fremtiden i sin utvikling av Tangle. Ved å dra nytte av kvante-resistente algoritmer i Tangle, vil de oppnå en høyere sikkerhet ved at Tangle blir kvante-resistent i helhet. Tangle sin elegante måte å løse problemet med skalerbarhet gjør at det ikke blir behov for “minere”. Siden “minere” tar betaling for datakraften de tilbyr, vil derav også transaksjonsavgiften forsvinne.
Håper dere har fått litt innsikt i hvordan Tangle fungerer og hvilke fordeler den innehar sammenlignet med tradisjonell blokkjedeteknologi.
Hvis artikkelen fenget deg, og du ønsker å investere i IOTA så har jeg laget en guide som beskriver prosessen med å kjøpe IOTA. Den kan leses HER!