Nee, het lanceren van een gedecentraliseerde applicatie (dapp) op de blockchain zal niet leiden tot een succesvol bedrijf. In feite denken de meeste gebruikers er zelfs niet over na of de applicatie op de blockchain draait ā ze kiezen gewoon het product dat goedkoper, sneller en eenvoudiger is.
Helaas, zelfs als de blockchain unieke kenmerken en voordelen heeft, zijn de meeste applicaties die erop draaien veel duurder, langzamer en minder begrijpelijk dan hun gecentraliseerde concurrenten.

Vaak vind je in whitepapers van toepassingen die op de blockchain zijn gebouwd, een paragraaf waarin staat: "de blockchain is duur en kan het vereiste aantal transacties per seconde niet ondersteunen. Gelukkig werken veel slimme mensen aan de schaalbaarheid van de blockchain en tegen de tijd dat onze applicatie wordt gelanceerd, zal het voldoende schaalbaar zijn."
In een eenvoudige paragraaf kan de ontwikkelaar van de dapp afzien van een diepgaandere bespreking van schaalbaarheidsproblemen en alternatieve oplossingen. Dit leidt vaak tot een inefficiƫnte architectuur, waarbij de backend en de kern van de applicatie uit smart contracts bestaan die op de blockchain draaien.
Er zijn echter nog ongeteste benaderingen van de architectuur van gedecentraliseerde applicaties die veel beter kunnen schalen, dankzij de vermindering van de afhankelijkheid van de blockchain. Bijvoorbeeld, Blockstack werkt aan een architectuur waarbij de meeste gegevens en logica van de applicatie buiten de blockchain worden opgeslagen.
Laten we eerst kijken naar een meer traditionele benadering, waarbij de blockchain wordt gebruikt als een directe tussenpersoon tussen de gebruikers van de applicatie, en die niet echt goed schaalt.
Benadering #1: Blockchain als backend
Om het duidelijker te maken, laten we de hotelindustrie als voorbeeld nemen. Dit is een enorme industrie, waarin tussenpersonen zoals Booking.com, voor het verbinden van gasten en hotels.
In elke situatie waarin we zo'n tussenpersoon willen verslaan, zullen we proberen zijn bedrijfslogica na te bootsen met smart contracts op een blockchain zoals Ethereum.
Slimme contracten met open source die draaien op de "wereldcomputer" kunnen verkopers verbinden met consumenten zonder een derde partij daartussen, waardoor uiteindelijk de kosten en commissies die door de tussenpersoon worden geheven, verminderd worden.
Zoals afgebeeld in de onderstaande afbeelding, gebruiken hotels een gedecentraliseerde applicatie om informatie over kamers, beschikbaarheid en prijzen in het weekeinde of doordeweeks in de blockchain te plaatsen, en mogelijk zelfs beschrijvingen van kamers en alle andere relevante informatie.

Iedereen die een kamer wil reserveren, gebruikt deze applicatie om hotels en kamers die op de blockchain zijn geplaatst te zoeken. Zodra de gebruiker een kamer selecteert, vindt de reservering plaats door het benodigde aantal tokens naar het hotel te sturen als borg. In ruil daarvoor werkt het slimme contract de informatie in de blockchain bij, zodat de kamer niet meer beschikbaar is.
In deze benadering zijn er twee zijden van het schaalbaarheidsprobleem. Ten eerste, het maximale aantal transacties per seconde. Ten tweede, de hoeveelheid gegevens die in de blockchain kan worden opgeslagen.
Laten we een schatting maken. Booking.com stelt dat ze bijna 2 miljoen hotels geregistreerd hebben. Laten we aannemen dat het gemiddelde hotel 10 kamers heeft en elke kamer in totaal 20 keer per jaar wordt gereserveerd ā dat geeft ons gemiddeld 13 reserveringen per seconde.
Voor een schatting van dat aantal is het belangrijk op te merken dat Ethereum ongeveer 15 transacties per seconde kan verwerken.
Daarnaast moet worden opgemerkt dat er ook transacties van hotels in onze applicatie zullen zijn ā voor het uploaden en voortdurend bijwerken van informatie over hun kamers. Hotels passen de prijzen van kamers heel vaak aan, soms zelfs dagelijks, en elke prijs- of beschrijvingwijziging vereist een transactie in de blockchain.
Hier is ook het probleem van de grootte ā het gewicht van de Ethereum blockchain is onlangs de grens van 2TB gepasseerd. Als applicaties met een dergelijke benadering echt populair zouden worden, zou het Ethereum-netwerk extreem onbetrouwbaar worden.
Een dergelijk systeem, gebaseerd op blockchain, kan buitenstaanders uitsluiten vanwege zijn onpartijdigheid en decentralisatie ā de belangrijkste voordelen van de blockchain technologie. Maar de blockchain heeft ook andere eigenschappen ā het is gedistribueerd en niet herschrijfbaar, dit zijn uitstekende kenmerken, maar ze komen met een prijs in termen van snelheid en transactiekosten.
Daarom moeten dapp-ontwikkelaars zorgvuldig beoordelen of elke functie die blockchain gebruikt, echt decentralisatie en onveranderlijkheid nodig heeft.
Bijvoorbeeld: wat is het voordeel van het verdelen van gegevens van elk hotel over honderden machines over de hele wereld en deze daar voortdurend op te slaan? Is het echt belangrijk dat historische gegevens over prijzen en beschikbaarheid van kamers altijd in de blockchain zijn opgenomen? Waarschijnlijk niet.
Als we beginnen zulke vragen te stellen, zullen we zien dat we niet alle kostbare eigenschappen van blockchain voor al onze functies nodig hebben. Wat is dan het alternatief?
Aanpak #2: Architectuur geĆÆnspireerd door Blockstack
Hoewel de nadruk ligt op applicaties waarin gebruikers eigenaar zijn van hun gegevens (bijvoorbeeld zoals , , of ), heeft Blockstack ook een filosofie van beperkt gebruik van blockchain - alleen wanneer het absoluut noodzakelijk is. Hun belangrijkste argument is dat blockchain traag en duur is, en daarom alleen voor unieke of zeldzame operaties moet worden gebruikt. Alle andere interacties met applicaties moeten via peer-to-peer plaatsvinden, dat wil zeggen, gebruikers van gedecentraliseerde applicaties moeten direct gegevens met elkaar delen, niet via Blockchain. Uiteindelijk zijn de oudste en meest succesvolle gedecentraliseerde applicaties, zoals BitTorrent, e-mail en Tor, ontstaan voordat het concept blockchain überhaupt bestond.

Links: de eerste aanpak, waarbij gebruikers via blockchain interageren. Rechts: gebruikers interageren rechtstreeks met elkaar, en blockchain wordt alleen gebruikt voor identificatie en dergelijke..
Laten we terugkeren naar het voorbeeld van hotelreserveringen. We willen een onpartijdig, onafhankelijk en open protocol om gasten met hotels te verbinden. Met andere woorden, we willen de gecentraliseerde tussenpersoon verwijderen. We hebben geen noodzaak om bijvoorbeeld voortdurend de prijzen van kamers in een algemeen gedistribueerd register op te slaan.
Waarom zouden we gasten en hotels niet gewoon rechtstreeks met elkaar laten communiceren, in plaats van via blockchain? Hotels kunnen hun prijzen, beschikbaarheid van kamers en andere informatie ergens opslaan waar ze toegankelijk zijn voor iedereen - bijvoorbeeld op IPFS, Amazon S3, of zelfs op hun eigen lokale server. Dit is precies wat het gedecentraliseerde opslagsysteem van Blockstack biedt, genaamd . Het stelt gebruikers in staat om zelf te kiezen waar ze hun gegevens willen opslaan en te controleren wie er toegang toe heeft via een aanpak die bekendstaat als .
Om vertrouwen te vestigen, worden alle gegevens van het hotel cryptografisch ondertekend door het hotel zelf. Ongeacht waar deze gegevens zijn opgeslagen, kan hun integriteit worden gecontroleerd met behulp van openbare sleutels die zijn gekoppeld aan de identificatie-informatie van dat hotel, die in de blockchain is opgeslagen.
In het geval van Blockstack wordt alleen uw identificatie-informatie in de blockchain opgeslagen. De informatie over hoe de gegevens van elke gebruiker te verkrijgen, wordt opgeslagen in zonebestanden en verspreid via een peer-to-peer netwerk met behulp van nodes. En nogmaals: u hoeft de gegevens die de nodes verstrekken niet te vertrouwen, omdat u hun authenticiteit kunt verifiƫren door ze te vergelijken met de hashes die in de blockchain en bij andere gebruikers zijn opgeslagen.
In een vereenvoudigde versie van het systeem zullen gasten het peer-to-peer netwerk van Blockstack gebruiken om hotels te vinden en informatie over hun kamers te verkrijgen. En de authenticiteit en integriteit van alle gegevens die u ontvangt, kan worden gecontroleerd met behulp van openbare sleutels en hashes die zijn opgeslagen in Blockstack.
Deze architectuur is complexer dan de eerste aanpak en vereist een meer geavanceerde infrastructuur. In feite is dit precies waar Blockstack in beeld komt, met alle noodzakelijke componenten voor het creƫren van zo'n gedecentraliseerd systeem.

Met deze architectuur slaan we alleen die gegevens op in de blockchain die daadwerkelijk gedistribueerd en niet herschrijfbaar moeten zijn. In het geval van Blockstack heeft u blockchain-transacties alleen nodig om u te registreren en aan te geven waar uw gegevens moeten worden opgeslagen. U heeft mogelijk meer transacties nodig als u iets van deze informatie wilt wijzigen, maar dat is geen terugkerend evenement.
Bovendien werkt de logica van de applicatie, in tegenstelling tot de eerste benadering, aan de clientzijde en niet op slimme contracten. Dit stelt de ontwikkelaar in staat om deze logica te wijzigen zonder kostbare of soms zelfs onmogelijke updates van het slimme contract. Door gegevens en logica van de applicatie niet in de blockchain te houden, kunnen gedecentraliseerde applicaties een niveau van prestaties en schaalbaarheid bereiken dat vergelijkbaar is met traditionele gecentraliseerde systemen.
Conclusie
Applicaties die op Blockstack draaien, kunnen veel beter schalen dan reguliere blockchain-applicaties, maar dit is een jongere benadering met zijn eigen problemen en onbeantwoorde vragen.
Bijvoorbeeld, als een gedecentraliseerde applicatie niet op slimme contracten draait, vermindert dit de noodzaak voor utility-tokens. Dit kan problemen veroorzaken voor bedrijven, aangezien ICO's de belangrijkste bron van financiering waren voor gedecentraliseerde applicaties (inclusief Blockstack zelf).
Hier zijn ook technische problemen. Het is relatief eenvoudig om een hotelreserveringsfunctie in een slim contract te implementeren, waarbij in een atomische operatie kamers worden gereserveerd in ruil voor tokens. Het is echter niet erg duidelijk hoe reserveringen zullen werken in een Blockstack-applicatie zonder slimme contracten.
Applicaties die gericht zijn op wereldwijde markten met het potentieel voor miljoenen gebruikers moeten zeer goed schaalbaar zijn om succesvol te worden. Het is een misvatting om uitsluitend op blockchains te vertrouwen om in de nabije toekomst een dergelijk niveau van schaalbaarheid te bereiken. Om te kunnen concurreren met grote gecentraliseerde marktspelers, zoals Booking.com, moeten ontwikkelaars van gedecentraliseerde applicaties alternatieve benaderingen overwegen voor het ontwerp van hun applicaties, bijvoorbeeld diegene die Blockstack aanbiedt.
Bron: habr.com
