Inleiding tot dapps
Laatst bewerkt: @wackerow(opens in a new tab), 23 april 2024
Een gedecentraliseerd applicatie (decentralized application, dapp) is een applicatie die gebouwd is op een gedecentraliseerd netwerk dat een smart contract en een frontend gebruikersinterface combineert. Op Ethereum zijn smart contracts toegankelijk en transparant (zoals open API's), dus uw dapp kan zelfs een smart contract bevatten dat iemand anders heeft geschreven.
Randvoorwaarden
Voordat u meer te weten komt over dapps, moet u de basisprincipes van de blockchain leren. Verder moet u lezen over het Ethereum-netwerk en hoe het gedecentraliseerd is.
Definitie van een dapp
Bij een dapp werkt de achterliggende code op een gedecentraliseerd peer-to-peer netwerk. Dit in tegenstelling tot een app waarbij de backendcode op gecentraliseerde servers draait.
Een dapp kan frontend code en gebruikersinterfaces hebben die in elke taal geschreven zijn (net als een app) om aanroepen te doen naar zijn backend. Bovendien kan de frontend worden gehost op een gedecentraliseerde opslag zoals IPFS(opens in a new tab).
- Gedecentraliseerd: dapps werken op Ethereum, een open, publiek, gedecentraliseerd platform waar geen enkele persoon of groep de controle over heeft
- Deterministisch: dapps voeren dezelfde functie uit, ongeacht de omgeving waarin ze worden uitgevoerd
- Turing-compleet: dapps kunnen elke actie uitvoeren met de benodigde bronnen
- Geïsoleerd: dapps worden uitgevoerd in een virtuele omgeving die Ethereum Virtual Machine wordt genoemd, zodat wanneer het smart contract een bug bevat, dit de normale werking van het blockchainnetwerk niet belemmert
Over smart contracts
Om dapps te introduceren, moeten we smart contracts introduceren. Dit is de backend van een dapp, bij gebrek aan een betere term. Ga voor een gedetailleerd overzicht naar ons gedeelte over smart contracts.
Een smart contract is code die op de Ethereum-blockchain staat en precies zo werkt als geprogrammeerd. Zodra smart contracts zijn ingezet op het netwerk, kunt u ze niet meer veranderen. Dapps kunnen gedecentraliseerd zijn omdat ze gecontroleerd worden door de logica die in het contract geschreven is, niet door een individu of bedrijf. Dit betekent ook dat u uw contracten heel zorgvuldig moet ontwerpen en grondig moet testen.
Voordelen van dapp-ontwikkeling
- Geen downtime: zodra het smart contract is geïmplementeerd op de blockchain, is het netwerk als geheel altijd in staat om klanten te bedienen die op zoek zijn naar interactie met het contract. Kwaadwillende actoren kunnen daarom geen denial-of-service-aanvallen uitvoeren die gericht zijn op individuele dapps.
- Privacy: u hoeft geen echte identiteit op te geven om een dapp te implementeren of ermee te communiceren.
- Weerstand tegen censuur: geen enkele entiteit op het netwerk kan gebruikers blokkeren om transacties in te dienen, dapps te implementeren of gegevens van de blockchain te lezen.
- Volledige data-integriteit: gegevens die zijn opgeslagen op de blockchain, zijn onveranderlijk en onbetwistbaar, dankzij cryptografische primitieven. Kwaadwillende actoren kunnen geen transacties of andere gegevens vervalsen die al openbaar zijn gemaakt.
- Vertrouwensloze berekening/verifieerbaar gedrag: smart contracts kunnen worden geanalyseerd en worden gegarandeerd uitgevoerd op een voorspelbare manier, zonder de noodzaak om een centrale autoriteit te vertrouwen. Dit geldt niet voor traditionele modellen. Wanneer we bijvoorbeeld online banksystemen gebruiken, moeten we erop vertrouwen dat financiële instellingen onze financiële gegevens niet misbruiken, niet met de gegevens knoeien of gehackt worden.
Nadelen van dapp-ontwikkeling
- Onderhoud: dapps kunnen moeilijker te onderhouden zijn omdat de code en gegevens die gepubliceerd zijn op de blockchain moeilijker te wijzigen zijn. Het is moeilijk voor ontwikkelaars om updates uit te voeren aan hun dapps (of de onderliggende gegevens die zijn opgeslagen door een dapp) als ze eenmaal zijn uitgerold, zelfs als er bugs of beveiligingsrisico's zijn ontdekt in een oude versie.
- Prestatie-overhead: er is een enorme prestatie-overhead en opschalen is erg moeilijk. Om het niveau van veiligheid, integriteit, transparantie en betrouwbaarheid te bereiken dat Ethereum nastreeft, voert elke node iedere transactie uit en slaat deze op. Bovendien kost proof-of-stake-consensus ook tijd.
- Netwerkcongestie: als één dapp te veel rekenkracht gebruikt, wordt het hele netwerk geback-upt. Op dit moment kan het netwerk slechts 10-15 transacties per seconde verwerken. Als transacties sneller worden verzonden dan dit, kan de pool van onbevestigde transacties snel oplopen.
- Gebruikerservaring: het kan moeilijker zijn om gebruiksvriendelijke ervaringen te ontwikkelen omdat de gemiddelde eindgebruiker het misschien te moeilijk vindt om een toolstack in te stellen die nodig is om op een volledig veilige manier te interageren met de blockchain.
- Centralisatie: gebruikers- en ontwikkelaarsvriendelijke oplossingen die bovenop de basislaag van Ethereum worden gebouwd, kunnen uiteindelijk toch op gecentraliseerde diensten gaan lijken. Dergelijke diensten kunnen bijvoorbeeld sleutels of andere gevoelige informatie aan de serverkant opslaan, een frontend bedienen met behulp van een gecentraliseerde server of belangrijke bedrijfslogica uitvoeren op een gecentraliseerde server voordat deze naar de blockchain wordt geschreven. Centralisatie elimineert veel (zo niet alle) voordelen van de blockchain ten opzichte van het traditionele model.
Leer je liever visueel?
Tools voor het aanmaken van dapps
Scaffold-ETH: Experimenteer snel met Solidity, met een frontend die zich aanpast aan uw smart contract
Eth-app aanmaken: Creëer apps die werken via Ethereum met één commando.
One Click Dapp: FOSS-tool voor het genereren van dapp-frontends vanuit een .
Etherflow: FOSS-tool voor Ethereum-ontwikkelaars om hun node te testen en RPC-oproepen samen te stellen en te debuggen vanuit de browser.
thirdweb: SDK's in elke taal, smart contracts, tools en infrastructuur voor web3-ontwikkeling.
Crossmint: Ontwikkelingsplatform voor web3 op bedrijfsniveau om smart contracts te implementeren, creditcard- en cross chain-betalingen mogelijk te maken en API's te gebruiken om NFT's te creëren, verdelen, verkopen, op te slaan en te bewerken.
Verder lezen
- Verken dapps
- De architectuur van een Web 3.0-applicatie(opens in a new tab) - Preethi Kasireddy
- Een gids voor gedecentraliseerde toepassingen in 2021(opens in a new tab) - LimeChain
- Wat zijn gedecentraliseerde apps?(opens in a new tab) - Gemini
- Populaire dapps(opens in a new tab) - Alchemy
Weet je van een community resource die je heeft geholpen? Bewerk deze pagina en voeg het toe!