Apps op de blockchain die gedecentraliseerd zijn.

Wat voor soorten zijn er en waar moet een dapp aan voldoen? Dat leer je op deze pagina.

Wat is een decentrale applicatie (dapp)

Blockchain biedt de mogelijkheid om software op een decentrale wijze op te slaan en uit te voeren. Wat houdt dit in, waarom is dit interessant en wat zijn de mogelijke toepassingen? In dit inleidende artikel zetten wij het kort op een rijtje voor je.
Een dapp is een computerprogramma dat niet via een centrale server wordt uitgevoerd, maar via gedecentraliseerde gedistribueerde servers (nodes). Een netwerk van nodes wordt een blockchain genoemd. Bij de uitvoering van decentrale applicaties wordt gebruik gemaakt van dezelfde technologie als bij de uitvoering van transacties met cryptomunten zoals Bitcoin, Ethereum en vele andere digitale valuta. Transacties met digitale betalingseenheden zijn dan ook helemaal gedecentraliseerd. Veel decentrale applicaties “draaien” op hun eigen virtuele valuta die ervoor zorgen dat het blockchain-ecosysteem op de juiste manier blijft functioneren. Hierbij wordt gebruikgemaakt van een complex consensus-algoritme. Dit algoritme zorgt ervoor dat alle nodes in het netwerk continue met elkaar zijn gesynchroniseerd.

Waarom zijn dapps beter dan apps?

Decentrale applicaties zijn in principe volledig open-source en dat wil zeggen dat iedereen er zijn of haar bijdrage aan zou kunnen leveren, wanneer dat noodzakelijk of gewenst is. Een dapp is niet afhankelijk van één centraal punt en dat maakt dergelijke applicaties veel minder kwetsbaar voor fouten. Met andere woorden: er is geen sprake meer van een ‘single point of failure’. Doordat dapps geen gebruikmaken van centrale servers is er een directe verbinding tussen gebruikers en ontwikkelaars. Dat houdt dan ook in dat derde partijen zoals bijvoorbeeld overheden of bedrijven deze toepassingen niet zomaar kunnen censureren, verwijderen of uitschakelen.

Welke soorten decentrale applicaties zijn er?

Er is niet één definitie van wat een dapp nu eigenlijk precies is die de hele lading dekt. Blockchaintechnologie en decentrale applicaties zijn nog volop in ontwikkeling en de meest gangbare definitie van dit nieuwe concept, zal volgend jaar waarschijnlijk weer geheel anders zijn. Er wordt op dit moment onderscheid gemaakt tussen drie verschillende soorten decentrale applicaties:

  1. Transacties:
    Je zou kunnen zeggen dat dapps van type 1 voornamelijk worden gebruikt voor geldtransacties. Het verzenden en ontvangen van cryptocurrencies staat hier centraal. Hieronder vallen de decentrale applicaties die worden uitgevoerd op hun eigen blockchain en zijn dus als het ware intrinsiek aan hun eigen decentrale gedistribueerde ecosysteem. De Bitcoin is daar een voorbeeld van.
  2. Smart Contracts:
    Dapp type 2 is een combinatie van een decentrale applicatie en virtuele valuta. Deze tweede verschijningsvorm van een dapp borduurt voort op het eerste type dapp en kan worden gezien als een softwareprogramma’s die gebruikmaakt van virtuele tokens. Hierbij worden cryptocurrencies verweven met informatie (orakels) van buiten het blockchainnetwerk. Ook smart contracts vallen onder type 2. Gebruikers die bijvoorbeeld een smart contract willen uitvoeren binnen de Ethereum blockchain kunnen dan gebruikmaken van de cryptocurrency Ether. De Ether zorgt er vervolgens voor dat het contract op de juist wijze wordt uitgevoerd. De nodes binnen het netwerk worden gebruikt voor het distribueren van de cryptografische data.
  3. Utility:
    Deze dapp maakt gebruik van specifieke software voor specifieke taken, zoals bijvoorbeeld “stemmen” binnen een blockchain-infrastructuur of blockchain governance ( het ingewikkelde proces dat ervoor zorgt dat de consensus binnen het netwerk op de juiste wijze verloopt). De dapp gebruikt het protocol van dapp type 2 echter hebben zij ook hun eigen tokens om te kunnen worden uitgevoerd binnen een blockchainnetwerk. Deze token fungeert doorgaans niet als investering maar heeft een bepaald nut binnen het netwerk welke vervuld moet worden. Zo kan 1 token gelijk staan aan 1 stem bijvoorbeeld.

 

“Een dapp is een computerprogramma dat niet via een centrale server wordt uitgevoerd, maar via gedecentraliseerde gedistribueerde servers (nodes).”

Aan welke criteria moet een dapp voldoen?

Een dapp mag in principe worden aangemerkt als decentrale applicatie als aan de volgende voorwaarden is voldaan:

  • Decentrale uitvoering op de blockchain
    De dapps moeten kunnen worden uitgevoerd binnen een blockchainnetwerk zonder de bemoeienis van derde partijen. De data moet cryptografisch zijn opgeslagen binnen een decentraal gedistribueerd netwerk van computers (nodes).

  • Open-source
    De broncode moet voor iedereen overal en op ieder moment beschikbaar zijn.

  • Stimulans
    Er moet binnen het blockchainnetwerk sprake zijn van een bepaalde stimulans om er voor te zorgen dat miners de cryptografische puzzels oplossen en zodoende het netwerk draaiende te houden. Die stimulans wordt meestal geboden in de vorm van een beloning met virtuele tokens.

  • Consensus-algoritme
    Het beloningsmechanisme voor de juiste uitvoering van dapps maakt op dit moment gebruik van twee verschillende consensus-algoritmen: proof of work en proof of stake. Bij proof of work worden alle miners (in geval van Bitcoin) binnen het netwerk beloond op basis van de inspanningen (de hoeveelheid werk) die zij hebben geleverd. De proof of work verloopt niet bij ieder blockchainnetwerk precies hetzelfde en ook de beloningsmechanismen zijn vaak anders. Bij proof of stake consensus worden alle transacties op een andere manier geverifieerd. Er wordt geen gebruik gemaakt van mining, maar degene die in het bezit is van de meeste digitale tokens mag een geheel nieuwe blok aanmaken binnen het netwerk. Hiervoor ontvangt de deelnemer vervolgens een beloning in cryptocurrency-tokens. Dapps die door middel van proof of stake worden uitgevoerd verbruiken dan ook veel minder energie, dan dapps die worden uitgevoerd aan de hand van proof of work. De consensus wordt bij sommige blockchains bereikt door een combinatie van proof of work en proof of stake.
    Inhuren van specialisten voor het creëren van dapps
    Het ontwikkelen van dapps en het creëren van smart contracts is een ingewikkelde tak van sport en op dit ogenblik eigenlijk alleen nog maar weggelegd voor programmeurs met speciale vaardigheden. Organisaties zoals overheden en bedrijven doen er dan ook goed aan om voor de ontwikkeling van dapps mensen in te huren die hierin ervaren en gespecialiseerd zijn.

  • Uitwerken en publiceren
    Voordat je de keuze maakt voor een “gewone” app of een dapp moet je je eerst afvragen welk probleem er nu eigenlijk precies wordt opgelost door het decentrale karakter van de desbetreffende dapp. Het is erg belangrijk om alle elementen van een blockchainproject goed in kaart te brengen. Wat zijn de kosten? Hoe kunnen de dapps worden gefinancierd (wellicht door middel van een ico)? Is er eigenlijk wel een markt voor? Pas wanneer je een duidelijk beeld hebt van alle aspecten van je decentrale applicatie kun je het idee gaan uitwerken en publiceren. Denk hierbij aan het doel van de dapp, de wijze waarop de dapp wordt toegepast en het toekomstperspectief van de dapp.

  • Een heldere whitepaper
    De publicatie kun je doen middels een whitepaper waarin je alle voordelen en functionaliteiten van je dapp uit de doeken doet. De whitepaper moet aantrekkelijk zijn geschreven en eventuele investeerders warm maken voor je project. Wees hierin open en transparant en zorg ervoor dat je helder bent over alle voor- en nadelen, zodat een investeerder precies weet waarin hij of zij in investeert. Initial Coin Offerings zijn een goede manier om fondsen te verzamelen en blockchainprojecten te financieren. Let hierbij wel goed op de huidige geldende wet- en regelgeving.
    Welke dapps worden er ontwikkeld op de blockchain van Ethereum?
    Ethereum is ongetwijfeld het meest bekende open-source blockchainplatform van dit moment, voor het ontwikkelen van dapps. Iedereen die dat wil kan smart contracts schrijven in een turingvolledige programmeertal en dapps ontwikkelen die worden uitgevoerd aan de hand van hun eigen “arbitraire” regels. Deze regels (waarin precies is vastgelegd hoe een dapp moet worden uitgevoerd), bepalen onder andere van wie bepaalde eigendommen zijn en welke transacties er wanneer en waar naar toe moeten worden uitgevoerd.

Soorten Ethereum dapps 

  • Financiële decentrale applicaties
    Deze dapps geven gebruikers meer mogelijkheden om hun zakelijke digitale contracten en financiële transacties efficiënter te beheren.

  • Gedeeltelijke (semi) financiële transacties
    Deze dapps hebben meestal wel een financieel karakter, maar zijn ook geschikt voor niet-financiële toepassingen.

  • Dapps voor governance-doeleinden
    Je moet hierbij denken aan online stemmen (bijvoorbeeld decentrale toepassingen voor organiseren van verkiezingen) en decentraal autonoom bestuur.

  • Decentrale toepassingen voor de identificatie van personen
    Ook voor het registreren van de identiteit van gebruikers kunnen dapps worden ontwikkeld. Hiermee kan bijvoorbeeld worden vastgelegd wie de eigenaar is van een bepaald kadastraal eigendom of bepaalde fysieke objecten in onze fysieke ruimte.

  • Dapps voor gedecentraliseerde dataopslag
    Bij dapps die zich specifiek richten op het opslaan van data, wordt de informatie door middel van een smart contract cryptografisch versleuteld en in blokken verspreid over het blockchainnetwerk. Deze vorm van datadistributie verhoogt de veiligheid van gevoelige data aanzienlijk. 

Samengevat kan het concept van een decentrale app dus erg interessant zijn mits er een use-case is die zich daarvoor leent.