Wat zijn dApps?

Gedecentraliseerde applicaties (dApps) zijn applicaties die worden uitgevoerd op een peer tot peer netwerk (P2P) van computers in plaats van op een enkele computer. dApps bestaan ​​sinds de komst van P2P-netwerken. Het zijn een soort softwareprogramma dat is ontworpen om op internet te bestaan ​​op een manier die niet door een enkele entiteit wordt beheerd. Dit wil zeggen dat er geen derde partij is zoals Uber of Google die over alle gegevens gaat. Privacy is een belangrijk onderwerp in dApps, omdat niemand inzicht meer in je gegevens heeft of censuur kan uitoefenen zoals op Twitter.

Gedecentraliseerde applicaties hoeven niet noodzakelijk op een blockchain-netwerk te draaien. BitTorrent, Popcorn Time, BitMessage, Tor, zijn allemaal traditionele dApps die op een P2P-netwerk worden uitgevoerd, maar niet op een Blockchain (een specifiek soort P2P-netwerk/grootboek).
In tegenstelling tot eenvoudige smart contracts, in de klassieke betekenis van Bitcoin, die geld van A naar B sturen, hebben dApps een onbeperkt aantal deelnemers aan alle kanten van de markt.

Opmerking: deze definities zijn een interpretatie en er zijn verschillende opvattingen over dit onderwerp.

Verschil tussen dApps & Smart Contracts

dApps zijn een ‘blockchain enabled’ website, waar het Smart Contract is wat het mogelijk maakt om verbinding te maken met de blockchain. De eenvoudigste manier om dit te begrijpen is om te begrijpen hoe traditionele websites werken.

De traditionele webapplicatie gebruikt HTML, CSS en Javascript om een ​​pagina weer te geven. De site haalt ook details uit een database met behulp van een API. Wanneer u op Facebook gaat, zal de pagina een API call maken om uw persoonlijke gegevens te verzamelen en deze op de pagina weer te geven. Traditionele websites: Frontend → API → Database

dApps lijken op een conventionele webapplicatie. De voorkant gebruikt exact dezelfde technologie om de pagina weer te geven. Het enige cruciale verschil is dat in plaats van een API die verbinding maakt met een database, er een Smart Contract is dat verbinding maakt met een blockchain. dApp enabled website: Frontend → Smart Contract → Blockchain

In tegenstelling tot traditionele, gecentraliseerde applicaties, waarbij de back-endcode op gecentraliseerde servers draait, hebben dApp’s hun back-endcode op een gedecentraliseerd P2P-netwerk. Gedecentraliseerde applicaties bestaan ​​uit het hele pakket, van backend tot frontend. Het slimme contract is slechts één onderdeel van de dApp:

  • Frontend (wat je kunt zien)
  • Backend (de logica op de achtergrond).

Een smart contract daarentegen bestaat alleen uit de backend en vaak slechts een klein deel van de hele dApp. Dat betekent dat als je een gedecentraliseerde toepassing wilt maken op een smart contract systeem, je verschillende slimme contracten moet combineren en voor de front-end op systemen van derden moet vertrouwen.

Illustratie van een DApp die een blockchain gebruikt met slimme contracten in combinatie met de pijlers van Swarm en Whisper.
Bron: Ethereum Stack-exchange

Blockchain dApps

Om als applicatie in de context van Blockchain als dApp te worden beschouwd moet deze voldoen aan de volgende criteria:

Applicatie moet volledig open-source zijn
Het moet autonoom opereren en zonder dat een entiteit de meerderheid van zijn tokens beheert. De consensus van zijn gebruikers moet alle veranderingen bepalen.

Applicatiegegevens en bedrijfsrecords moeten cryptografisch worden opgeslagen
Alle gegevens moeten cryptografisch worden opgeslagen in een openbare, gedecentraliseerde blockchain om eventuele single points of failure te vermijden.

Applicatie moet een cryptografisch token gebruiken
(Bitcoin of een token die zijn oorsprong vindt in het systeem) die nodig is voor toegang tot de applicatie en elke bijdrage van waarde van (miners / farmers) moet worden beloond met de tokens van de applicatie.

Applicatie moet tokens genereren
Volgens een standaard cryptografisch algoritme dat als bewijs van de waarde fungeert dragen nodes bij aan de toepassing (Bitcoin gebruikt het proof of work algoritme).