Hoe creëer je een gedecentraliseerde applicatie die schaalbaar is? Gebruik minder blockchain

Nee, het lanceren van een gedecentraliseerde applicatie (dapp) op de blockchain zal niet leiden tot een succesvol bedrijf. Sterker nog, de meeste gebruikers denken er niet eens over na of de applicatie op de blockchain draait; ze kiezen simpelweg voor een product dat goedkoper, sneller en eenvoudiger is.

Ook al heeft blockchain zijn eigen unieke kenmerken en voordelen, de meeste applicaties die erop draaien zijn helaas veel duurder, langzamer en minder intuïtief dan hun gecentraliseerde concurrenten.

Hoe creëer je een gedecentraliseerde applicatie die schaalbaar is? Gebruik minder blockchain

Vaak kun je in de whitepapers van applicaties die op de blockchain zijn gebouwd een paragraaf vinden die zegt: "De blockchain is duur en kan niet het vereiste aantal transacties per seconde ondersteunen. Gelukkig zijn er veel slimme mensen bezig met het opschalen van de blockchain en tegen de tijd dat onze applicatie wordt gelanceerd, zal deze behoorlijk schaalbaar zijn.”

In één simpele paragraaf kan een dapp-ontwikkelaar afzien van een diepere discussie over schaalbaarheidsproblemen en alternatieve oplossingen voor problemen. Dit leidt vaak tot een inefficiënte architectuur waarbij slimme contracten die op de blockchain draaien, dienen als de backend en kern van de applicatie.

Er zijn echter nog steeds ongeteste benaderingen van gedecentraliseerde applicatiearchitectuur die een veel betere schaalbaarheid mogelijk maken door de afhankelijkheid van de blockchain te verminderen. Blockstack werkt bijvoorbeeld aan een architectuur waarbij de meeste applicatiedata en logica off-chain worden opgeslagen.

Laten we eerst eens kijken naar een meer traditionele aanpak, waarbij blockchain wordt gebruikt als directe tussenpersoon tussen applicatiegebruikers, en die niet bijzonder goed schaalt.

Aanpak #1: Blockchain als backend

Laten we, om de zaken duidelijker te maken, de hotelsector als voorbeeld nemen. Dit is een enorme industrie waarin tussenpersonen als Booking.com, ze vragen een enorme vergoeding voor het verbinden van gasten en hotels.

In elke situatie waarin we zo’n tussenpersoon met deze aanpak willen verslaan, zullen we proberen zijn bedrijfslogica te repliceren met behulp van slimme contracten op een blockchain zoals Ethereum.

Open source slimme contracten die op de ‘wereldcomputer’ draaien, kunnen verkopers met consumenten verbinden zonder dat er een derde partij tussen zit, waardoor uiteindelijk de vergoedingen en commissies die door de tussenpersoon in rekening worden gebracht, worden verlaagd.

Zoals je in onderstaande afbeelding kunt zien, gebruiken hotels een gedecentraliseerde applicatie om informatie over kamers, hun beschikbaarheid en prijzen op weekdagen of weekenden, en misschien zelfs een beschrijving van de kamers met alle andere relevante informatie op de blockchain te plaatsen.

Hoe creëer je een gedecentraliseerde applicatie die schaalbaar is? Gebruik minder blockchain

Iedereen die een kamer wil boeken, gebruikt deze applicatie om te zoeken naar hotels en kamers die op de blockchain worden gehost. Zodra de gebruiker een kamer selecteert, wordt de reservering gemaakt door het vereiste aantal tokens als aanbetaling naar het hotel te sturen. En als reactie hierop werkt het slimme contract de informatie in de blockchain bij dat het nummer niet langer beschikbaar is.

Er zitten twee kanten aan het schaalbaarheidsprobleem bij deze aanpak. Ten eerste het maximale aantal transacties per seconde. Ten tweede de hoeveelheid data die op de blockchain kan worden opgeslagen.

Laten we wat ruwe berekeningen doen. Booking.com zegt dat ze bijna 2 miljoen hotels bij hen hebben geregistreerd. Laten we zeggen dat het gemiddelde hotel 10 kamers heeft en dat elke kamer slechts 20 keer per jaar wordt geboekt – dat levert ons gemiddeld 13 boekingen per seconde op.

Om dit aantal in perspectief te plaatsen, is het vermeldenswaard dat Ethereum ongeveer 15 transacties per seconde kan verwerken.

Tegelijkertijd is het de moeite waard om te overwegen dat onze applicatie ook transacties van hotels zal bevatten - voor het downloaden en voortdurend bijwerken van informatie over hun kamers. Hotels werken de kamerprijzen zeer regelmatig bij, soms zelfs dagelijks, en elke prijs- of beschrijvingswijziging vereist een transactie op de blockchain.

Er zijn hier ook problemen met de grootte: het gewicht van de Ethereum-blockchain heeft onlangs de grens van 2 TB overschreden. Als toepassingen met deze aanpak echt populair zouden worden, zou het Ethereum-netwerk extreem onstabiel worden.

Een dergelijk op blockchain gebaseerd systeem kan buitenstaanders uitsluiten vanwege de onpartijdigheid en het gebrek aan centralisatie, de belangrijkste voordelen van blockchain-technologie. Maar de blockchain heeft ook andere kenmerken: hij wordt gedistribueerd en niet herschreven, dit zijn uitstekende kenmerken, maar je moet ervoor betalen in de snelheid en commissie van transacties.

Daarom moeten dapp-ontwikkelaars zorgvuldig evalueren of elke functie die de blockchain gebruikt, echt distributie en niet-schrijfbaarheid nodig heeft.

Wat is bijvoorbeeld het voordeel van het verspreiden van de gegevens van elk hotel over honderden machines over de hele wereld en het daar permanent opslaan? Is het echt belangrijk dat historische gegevens over kamerprijzen en beschikbaarheid altijd in de blockchain worden opgenomen? Waarschijnlijk niet.

Als we dit soort vragen gaan stellen, zullen we beginnen in te zien dat we niet noodzakelijkerwijs alle dure blockchain-functies nodig hebben voor al onze functies. Dus, wat is het alternatief?

Aanpak #2: Blockstack-geïnspireerde architectuur

Hoewel de nadruk Blockstack op applicaties waarin gebruikers de eigenaren zijn van hun gegevens (bijvoorbeeld zoals luchttekst, BentenGeluid, Afbeeldingsoptimalisatie of grafiet), heeft Blockstack ook de filosofie om de blockchain lichtjes te gebruiken – alleen als het absoluut noodzakelijk is. Hun voornaamste argument is dat blockchain traag en duur is, en daarom alleen mag worden gebruikt voor eenmalige of onregelmatige transacties. De rest van de interactie met applicaties moet plaatsvinden via peer-to-peer, d.w.z. gebruikers van gedecentraliseerde applicaties moeten gegevens rechtstreeks met elkaar delen, in plaats van via de blockchain. De oudste en meest succesvolle gedecentraliseerde applicaties zoals BitTorrent, e-mail en Tor zijn immers gemaakt vóór het concept van blockchain zelf.

Hoe creëer je een gedecentraliseerde applicatie die schaalbaar is? Gebruik minder blockchain
Links: De eerste benadering, waarbij gebruikers communiceren via de blockchain. Rechts: Gebruikers communiceren rechtstreeks met elkaar en de blockchain wordt alleen gebruikt voor identificatie en dergelijke.

Laten we teruggaan naar het hotelboekingsvoorbeeld. We willen een onpartijdig, onafhankelijk en open protocol voor het verbinden van gasten met hotels. Met andere woorden: we willen de gecentraliseerde tussenpersoon verwijderen. We hoeven bijvoorbeeld niet voortdurend kamerprijzen op te slaan in een gemeenschappelijk gedistribueerd grootboek.

Waarom laten we gasten en hotels niet gewoon rechtstreeks communiceren in plaats van via blockchain. Hotels kunnen hun prijzen, kamerbeschikbaarheid en andere informatie ergens opslaan waar deze voor iedereen toegankelijk is - bijvoorbeeld IPFS, Amazon S3 of zelfs hun eigen lokale server. Dit is precies wat het gedecentraliseerde opslagsysteem van Blockstack noemde Gaia. Hiermee kunnen gebruikers kiezen waar ze hun gegevens willen opslaan en bepalen wie er toegang toe heeft via een zogenaamde aanpak opslag voor meerdere gebruikers.

Om vertrouwen te wekken worden alle hotelgegevens cryptografisch ondertekend door het hotel zelf. Ongeacht waar deze gegevens worden opgeslagen, kan de integriteit ervan worden geverifieerd met behulp van de openbare sleutels die zijn gekoppeld aan de identiteit van dat hotel en die zijn opgeslagen op de blockchain.

In het geval van Blockstack worden alleen uw identiteitsgegevens op de blockchain opgeslagen. Informatie over hoe de gegevens van elke gebruiker kunnen worden verkregen, wordt opgeslagen in zonebestanden en gedistribueerd via een peer-to-peer-netwerk met behulp van knooppunten. En nogmaals, je hoeft de gegevens die de knooppunten geven niet te vertrouwen, omdat je de authenticiteit ervan kunt verifiëren door deze te vergelijken met de hashes die zijn opgeslagen in de blockchain en andere gebruikers.

In een vereenvoudigde versie van het systeem zullen gasten het Blockstack peer-to-peer netwerk gebruiken om hotels te zoeken en informatie over hun kamers te verkrijgen. En de authenticiteit en integriteit van alle gegevens die u ontvangt, kunnen worden geverifieerd met behulp van openbare sleutels en hashes die zijn opgeslagen virtueel circuit Blokstapel.

Deze architectuur is complexer dan de eerste benadering en vereist een uitgebreidere infrastructuur. In feite is dit precies waar Blockstack in beeld komt, door alle noodzakelijke componenten te leveren om zo'n gedecentraliseerd systeem te creëren.

Hoe creëer je een gedecentraliseerde applicatie die schaalbaar is? Gebruik minder blockchain

Met deze architectuur slaan we alleen data op de blockchain op die echt gedistribueerd moet worden en niet overschreven. In het geval van Blockstack heb je alleen transacties op de blockchain nodig om je te registreren en aan te geven waar je gegevens opgeslagen moeten worden. Mogelijk moet u meer transacties uitvoeren als u deze informatie wilt wijzigen, maar dit is geen terugkerende gebeurtenis.

Bovendien draait de applicatielogica, in tegenstelling tot de eerste benadering, aan de clientzijde en niet op slimme contracten. Hierdoor kan de ontwikkelaar deze logica veranderen zonder dure of soms zelfs onmogelijke smart contract-updates. En door applicatiegegevens en logica buiten de keten te houden, kunnen gedecentraliseerde applicaties de prestatie- en schaalbaarheidsniveaus bereiken van traditionele gecentraliseerde systemen.

Conclusie

Applicaties die op Blockstack draaien kunnen veel beter schalen dan conventionele blockchain-applicaties, maar het is een jongere aanpak met zijn eigen problemen en onbeantwoorde vragen.

Als een gedecentraliseerde applicatie bijvoorbeeld niet op slimme contracten draait, vermindert dit de behoefte aan utility-tokens. Dit zou problemen kunnen veroorzaken voor bedrijven, aangezien ICO’s de belangrijkste financieringsbron zijn geweest voor gedecentraliseerde applicaties (inclusief Blockstack zelf)

Ook hier zijn er technische problemen. Het is bijvoorbeeld relatief eenvoudig om een ​​hotelboekingsfunctie te implementeren in een slim contract, waarbij bij een atomaire operatie kamerreserveringen worden gemaakt in ruil voor tokens. En het is niet erg duidelijk hoe boeken zal werken in een Blockstack-applicatie zonder slimme contracten.

Apps die zich richten op mondiale markten met het potentieel voor miljoenen gebruikers moeten zeer goed kunnen schalen om succesvol te zijn. Het is een vergissing om in de nabije toekomst uitsluitend op blockchains te vertrouwen om dit niveau van schaalbaarheid te bereiken. Om te kunnen concurreren met grote gecentraliseerde marktspelers zoals Booking.com, moeten gedecentraliseerde applicatie-ontwikkelaars alternatieve benaderingen overwegen voor het ontwerpen van hun applicaties, zoals die aangeboden door Blockstack.

Bron: www.habr.com

Voeg een reactie