dApps: ‘vrijgevochten applicaties’
dApps zijn ‘decentralized Applicaties’. In plaats van beheerd door één enkele server, functioneren zij op een verzameling servers in een gekoppeld-netwerk. Vergelijk het met een zwerm vogels of een school vissen, die zonder directe leider toch ‘instinctmatig’ als één geheel functioneert en zijn eigen weg vindt en gaat. Dus het functioneren van de applicatie is niet afhankelijk van één server en – ook belangrijk – de eigenaar van die ene computer. Decentrale software werkt in een blockchain-ecosysteem en is in principe vrij van controle en inmenging van één enkele autoriteit. Bitcoin was de eerste dApp die als opensource programma op vele servers tegelijk draait. Alle transacties die dApp’s verwerken, zijn open, openbaar, onveranderlijk en werken zonder controle van een centrale entiteit.
Alles decentraal . . .
Gedecentraliseerde applicaties werken dus op een gedecentraliseerd netwerk waarbij zowel ‘slimme contracten’ als front-end gebruiker-interfaces worden gebruikt. Via bijvoorbeeld een geïnstalleerde app op je telefoon communiceer je met een dApp op een bepaalde node in een gekozen netwerk. Je maakt gebruik van functies en diensten die deze dApp in dat netwerk ter beschikking stelt. Bijvoorbeeld van een ‘smart contract’ dat iemand anders voor die dApp heeft geschreven. De back-end van een dApp draait op het gedecentraliseerd peer-to-peer-netwerk. De front-end die communiceert met de dApp kan overal zijn, op je telefoon, maar ook op een IoT-device of een ander apparaat.
dApp’s kunnen communiceren met IPFS, het InterPlanetary File System dat op blockchain gebaseerde, decentrale netwerken functioneert en via de nodes decentrale data-opslag faciliteert. IPFS gebruikt ‘content adressen’ om elke file uniek te identificeren in een global namespace omgeving die de IPFS-hosts verbind. Zie mijn blog: Inhoud gerelateerde opslag. Decentrale applicaties op decentrale servers vormen een robuust, resilent en lastig beïnvloedbaar service netwerk. Bij de Catalaanse verkiezingen in 2017, die het Grondwettelijk Hof van Spanje onwettig beschouwde, werd intensief gebruik gemaakt van de mogelijkheden van IPFS om stemmen te verzamelen en te tellen. Ook tijdens de blokkade van Wikipedia in Turkije werd via IPFS een ‘mirror-omgeving’ van Wikipedia op IPFS aangeboden.
dApp’s en smart contracts
dApps werken dus op openbare en gedecentraliseerde platformen waar geen enkele groep of persoon controle over heeft. De applicaties zijn deterministisch: ze voeren allen dezelfde functie uit, ongeacht de omgeving waar ze die uitvoeren. Ze zijn zogenaamd ‘Turing complete’, dat wil zeggen dat met de vereiste bronnen de dApp elke actie kan uitvoeren. Ze werken daarnaast elk in een eigen virtuele omgeving, zodat ze bij problemen zoals bugs, het normale verkeer op de node niet kunnen verstoren. Tenslotte kunnen ze, zoals eerder gezegd, slimme contracten verwerken.
Een slim contract is code die op de blockchain ‘leeft’ en alleen díe dingen kan doen, die vooraf geprogrammeerd zijn. Zodra een slim contract op een netwerk is geïnstalleerd, zijn ze niet meer te wijzigen. Dus dApps worden aangestuurd door acties vanuit de ingebouwde logica van zo’n slim contract. Niemand, geen individu of bedrijf kan dat nog veranderen. Dit maakt het concept zo sterk. Anderzijds betekent dat, dat slimme contracten zeer zorgvuldig moeten zijn geschreven en net zo grondig worden getest. Slimme contracten zijn voor iedereen te zien en in te zien. En voeren precies volgens de regels hun instructies uit. Slimme contracten kunnen transacties uitvoeren maar ook betalingen doen en overeenkomsten aangaan.
Een decentrale manier van leven
Het concept van een blockchain werd in 1998 beschreven door Wei Dai op de cypherpunks mailinglist. Bitcoin (BTC) was in 2009 het eerste blockchain-netwerk ter wereld. Vitalik Buterin ontwikkelde in 2013 Ethereum (ETH), een blockchain die meer kon dan alleen financiële transacties. Een blockchain die geschikt was voor een ‘decentrale manier van leven‘. Vitalik stelde zich een op blockchain gebaseerd internet voor, waar de gebruikers controle hadden in plaats van de serviceproviders. Daarom ontwikkelde hij onveranderlijke, slimme contracten waar de regels en beperkingen in de code was ingebakken. Hierdoor voert het netwerk altijd de opdrachten uit zoals afgesproken. En is de man-in-the-middle die transacties controleert, wordt daarmee overbodig. Daar hebje nu immers die ‘smart contracts’ voor.
Parallel met de ontwikkeling van Ethereum ontwikkelde Jared Tate de volledig open source DigiByte blockchain die in 2014 het leven zag. Een blockchain die volledig door een open community van ontwikkelaars wordt onderhouden. Digibyte werd de pionier op het gebied van ‘asymmetrical difficulty adjustment mining’. Dit is het realtime aanpassen van de moeilijkheidsgraad om een block te mijnen, om ongeacht de hash-snelheid toch de beoogde bloktiming te behouden. En het pionierde met multi-algoritme mining, het onwillekeurig aanpassen van algoritmes waarmee blokken worden gemijnd. Door al deze innovaties vanuit de community, werd het ’s werelds langste, snelste en veiligste UTXO-blockchain die voor een brede gedecentraliseerde gemeenschap een ‘decentrale manier van leven’ mogelijk maakt.
Decentrale Applicaties
In 2014 werd ook ‘The general theory of Decentralized Applications, dApps’ gepubliceerd. Dit werk beschrijft hoe de verschillende soorten gedecentraliseerde applicaties kunnen worden geclassificeerd. En introduceerde terminologie die tot doel heeft accuraat en behulpzaam te zijn voor de gemeenschap. Maar het beschrijft ook uitgebreid waarom gedecentraliseerde applicaties het potentieel hebben om enorm succesvol te worden. De schrijvers stellen dat ze eens, werelds grootste softwarebedrijven zullen overtreffen wat betreft nut, gebruikersbasis en netwerkwaardering. Enerzijds vanwege hun superieure, flexibiliteit, transparantie, veerkracht en gedistribueerde aard, maar vooral de unieke ‘incentivization structure’, de manier hoe ontwikkelaars voor hun werk beloond worden.
Er zijn verschillende klassen van dApps, onder andere of ze een eigen blokketen hebben of niet. Op basis hiervan zijn er drie type dApps: die met een eigen blokketen zoals Bitcoin, zij die gebruik maken van de blokketen van een andere dApp en tenslotte dApps die gebruik maken van de functies van andere dApps. In analogie met de bekende besturingssystemen zou je type I kunnen vergelijken met Windows, OS X, IOS, Androïd en Linux, type II met een algemeen softwareprogramma zoals een tekstverwerker of spreadsheetprogramma en type III als gespecialiseerde softwareoplossingen die resultaten van verschillende andere applicaties gebruiken. Hieruit volgt dat er een beperkt aantal type I dApps zullen zijn, meer type II en ontzettend veel type III dApps ontwikkeld zullen gaan worden.
Zelfvoorzienende software
dApps hebben het potentieel om zelfvoorzienend te worden omdat ze direct belanghebbenden in staat stellen, actief te investeren in de ontwikkeling van een dApp. Daarom is voor de schrijvers de verwachting gerechtvaardigd dat dApps voor betalingen, gegevensopslag, bandbreedte en cloud- en edge-computing op een dag belangrijker en hoger gewaardeerd zijn dan alle huidige multinationale software ondernemingen samen.
Omdat dApps voor hun gebruik een beloning in de vorm van een minimale ‘utility-coin’ – een gebruiksmuntje – kunnen vragen, is het gebruik van licenties, advertenties of anderszins niet meer nodig om de kosten voor ontwikkeling en gebruik van de dApp te dekken. Omdat dit ook nog eens met de volle privacy van de gebruiker gebeurt, is dat eigenlijk de basis van de win-win-situatie voor het potentiële succes van dApps in die nieuwe web3 wereld.
Photo by Moritz Kindler on Unsplash