Blockchains versus gecentraliseerde databases

Bronknooppunt: 1576904

Vier belangrijke verschillen tussen blockchains en reguliere databases

Als je mijn vorige berichten hebt gelezen, weet je inmiddels dat blockchains gewoon een zijn nieuw type database. Dat wil zeggen een database die, in schrijfwijze, rechtstreeks kan worden gedeeld door een groep niet-vertrouwende partijen, zonder dat daarvoor een centrale beheerder nodig is. Dit staat in contrast met traditionele (SQL of NoSQL) databases die worden beheerd door een enkele entiteit, zelfs als er binnen de muren een soort gedistribueerde architectuur wordt gebruikt.

Ik heb onlangs gegeven een praatje over blockchains vanuit het perspectief van informatiebeveiliging, waarin ik tot de conclusie kwam dat blockchains in sommige opzichten veiliger zijn dan reguliere databases en in andere niet. Gezien de hoofdrol die gecentraliseerde databases spelen in de huidige technologiestack, dit zette me breder aan het denken over de afwegingen tussen deze twee technologieën. Inderdaad, wanneer iemand mij vraagt ​​of MultiChain kan worden gebruikt voor een bepaald doel, mijn eerste antwoord is altijd: "Kunt u dat doen met een gewone database?" In meer gevallen dan u misschien denkt, is het antwoord ja, om de volgende simpele reden:

Als vertrouwen en robuustheid geen probleem zijn, kan een blockchain niets doen dat een reguliere database niet kan.

Dit is een belangrijk punt waarover zoveel misverstanden bestaan. In termen van de soorten gegevens die kunnen worden opgeslagen en de transacties die op die gegevens kunnen worden uitgevoerd, doen blockchains niets nieuws. En voor alle duidelijkheid, deze observatie strekt zich ook uit tot "slimme contracten", ondanks hun sexy naam en imago. Een slim contract is niets meer dan een stuk computercode dat op elk knooppunt in een blockchain draait - een decennia-oude technologie genaamd opgeslagen procedures doet hetzelfde voor gecentraliseerde databases. (Je kunt ook geen blockchain gebruiken als deze code nodig is beginnen interacties met de buitenwereld.)

De waarheid over blockchains is dat ze, hoewel ze een aantal voordelen hebben, ook hun nadelen hebben. Met andere woorden, zoals bij de meeste technologiebeslissingen, komt de keuze tussen een blockchain en een reguliere database neer op een reeks afwegingen. Als je verblind bent door de hype en verdoofd door het geluid, is het onwaarschijnlijk dat je die keuze objectief maakt. Dus ik hoop dat de volgende gids kan helpen.

Disintermediation: blockchains met voordelen

De kernwaarde van een blockchain is dat een database direct gedeeld kan worden over de grenzen van vertrouwen heen, zonder dat er een centrale beheerder nodig is. Dit is mogelijk omdat blockchain-transacties hun eigen geldigheidsbewijs en hun eigen autorisatiebewijs bevatten, in plaats van een gecentraliseerde applicatielogica te vereisen om die beperkingen af ​​te dwingen. Transacties kunnen daarom onafhankelijk worden geverifieerd en verwerkt door meerdere "knooppunten", waarbij de blockchain fungeert als een consensusmechanisme om ervoor te zorgen dat die knooppunten synchroon blijven.

Waarom heeft deze desintermediatie waarde? Want hoewel een database slechts bits en bytes is, het is ook een tastbaar iets. De inhoud van een database wordt opgeslagen in het geheugen en op de schijf van een bepaald computersysteem en iedereen met voldoende toegang tot dat systeem kan de gegevens erin vernietigen of beschadigen. Hierdoor wordt u vanaf het moment dat u uw gegevens toevertrouwt aan een reguliere database ook afhankelijk van de menselijk organisatie waarin die database zich bevindt.

Nu is de wereld gevuld met organisaties die dit vertrouwen hebben verdiend - overheden en banken (meestal), universiteiten, handelsverenigingen en zelfs particuliere bedrijven zoals Google en Facebook. In de meeste gevallen, vooral in de ontwikkelde wereld, werken deze buitengewoon goed. Ik geloof dat mijn stem altijd is geteld, geen enkele bank heeft ooit mijn geld gestolen en ik moet nog een manier vinden om voor betere cijfers te betalen. Wat is het probleem? Als een organisatie een belangrijke database beheert, heeft ze ook een aantal mensen en processen nodig om te voorkomen dat er met die database wordt geknoeid. Mensen moeten worden aangenomen, processen moeten worden ontworpen en dit alles kost veel tijd en geld.

Blockchains bieden dus een manier om deze organisaties te vervangen door een gedistribueerde database, vergrendeld door slimme cryptografie. Zoals zoveel eerder is gedaan, maken ze gebruik van de steeds groter wordende capaciteit van computersystemen om een ​​nieuwe manier te bieden om mensen te vervangen door code. En als het eenmaal is geschreven en debuggen, is code meestal een stuk goedkoper.

Vertrouwelijkheid: voordeel van gecentraliseerde databases

Zoals ik al zei, controleert en verwerkt elk knooppunt in een blockchain elke transactie onafhankelijk. Een knooppunt kan dit doen omdat het volledig inzicht heeft in: (a) de huidige status van de database, (b) de door een transactie gevraagde wijziging, en (c) een digitale handtekening die de oorsprong van de transactie bewijst. Dit is ongetwijfeld een slimme nieuwe manier om een ​​database te ontwerpen en het werkt echt. Dus waar is de vangst? Voor veel toepassingen, vooral financiële, is de volledige transparantie die elk knooppunt geniet een absolute deal-killer.

Hoe voorkomen systemen die zijn gebouwd op reguliere databases dit probleem? Net als blockchains beperken ze de transacties die bepaalde gebruikers kunnen uitvoeren, maar deze beperkingen worden opgelegd een centrale locatie. Als gevolg hiervan hoeft de volledige database-inhoud alleen zichtbaar te zijn op die locatie, in plaats van in meerdere knooppunten. Verzoeken om gegevens te lezen lopen ook via deze centrale autoriteit, die deze verzoeken naar eigen goeddunken kan accepteren of afwijzen. Met andere woorden, als een reguliere database gelezen wordt gecontroleerd en schrijfgestuurd, een blockchain kan alleen schrijfgestuurd zijn.

Om eerlijk te zijn, er zijn veel strategieën beschikbaar om dit probleem op te lossen. Deze variëren van eenvoudige ideeën zoals transacties onder meerdere blockchain-adressen tot geavanceerde cryptografische technieken zoals vertrouwelijke transacties en nulkennisbewijzen (wordt momenteel ontwikkeld). Desalniettemin, hoe meer informatie u op een blockchain wilt verbergen, hoe zwaarder de rekenlast die u betaalt om transacties te genereren en te verifiëren. En hoe deze technieken zich ook ontwikkelen, ze zullen nooit de eenvoudige en ongecompliceerde methode verslaan om gegevens volledig te verbergen.

Robuustheid: voordelige blockchains

Een tweede voordeel van door blockchain aangedreven databases is extreme fouttolerantie, die voortkomt uit hun ingebouwde redundantie. Elk knooppunt verwerkt elke transactie, dus geen afzonderlijk knooppunt is cruciaal voor de database als geheel. Evenzo verbinden knooppunten met elkaar op een dichte peer-to-peer-manier, dus veel communicatieverbindingen kunnen mislukken voordat de zaken tot stilstand komen. De blockchain zorgt ervoor dat neergelaten knooppunten altijd gemiste transacties kunnen inhalen.

Dus hoewel het waar is dat reguliere databases veel technieken bieden voor kopiëren, brengen blockchains dit naar een geheel nieuw niveau. Om te beginnen is er geen configuratie vereist - verbind gewoon een aantal blockchain-knooppunten met elkaar en ze houden zichzelf automatisch gesynchroniseerd. Bovendien kunnen knooppunten vrij worden toegevoegd aan of verwijderd uit een netwerk, zonder enige voorbereiding of gevolgen. Ten slotte kunnen externe gebruikers hun transacties naar elk knooppunt of naar meerdere knooppunten tegelijk verzenden, en deze transacties worden automatisch en naadloos doorgegeven aan alle anderen.

Deze robuustheid verandert de economie van de beschikbaarheid van databases. Met reguliere databases wordt hoge beschikbaarheid bereikt door een combinatie van dure infrastructuur en ramp herstel. Een primaire database draait op hoogwaardige hardware die nauwlettend wordt gevolgd op problemen, waarbij transacties worden gerepliceerd naar een back-upsysteem op een andere fysieke locatie. Als de primaire database uitvalt (bijvoorbeeld door een stroomstoring of een catastrofale hardwarefout), wordt de activiteit automatisch verplaatst naar de back-up, die de nieuwe primaire wordt. Zodra het defecte systeem is verholpen, wordt het opgesteld om als nieuwe back-up te dienen, indien nodig. Hoewel dit allemaal mogelijk is, is het duur en notoir moeilijk om het goed te krijgen.

Maar wat als in plaats daarvan 10 blockchain-knooppunten in verschillende delen van de wereld zouden draaien, allemaal op standaardhardware? Deze knooppunten zouden nauw met elkaar zijn verbonden, transacties op peer-to-peer-basis delen en een blockchain gebruiken om consensus te garanderen. Eindgebruikers die de transacties genereren, maken verbinding met (zeg maar) 5 van deze knooppunten, dus het maakt niet uit of een paar communicatieverbindingen uitvallen. En als een of twee knooppunten op een bepaalde dag volledig uitvallen, voelt niemand iets, want er zijn nog steeds genoeg exemplaren om rond te gaan. Toevallig is deze combinatie van goedkope systemen en hoge redundantie precies hoe Google werkt heeft zijn zoekmachine zo goedkoop gebouwd. Blockchains kunnen hetzelfde doen voor databases.

Prestaties: voordeel van gecentraliseerde databases

Blockchains zullen altijd langzamer zijn dan gecentraliseerde databases. Dat is het niet alleen vandaag blockchains zijn traag omdat de technologie nieuw en niet geoptimaliseerd is, maar het is een resultaat van de nature van blockchains zelf. Zie je, bij het verwerken van transacties moet een blockchain hetzelfde doen als een gewone database, maar het heeft drie extra lasten:

  1. Handtekeningverifiëring. Elke blockchain-transactie moet digitaal worden ondertekend met behulp van een publiek-privaat cryptografieschema zoals ECDSA. Dit is nodig omdat transacties zich op een peer-to-peer-manier tussen knooppunten voortplanten, zodat hun bron anders niet kan worden bewezen. Het genereren en verifiëren van deze handtekeningen is rekenkundig complex en vormt het belangrijkste knelpunt in producten zoals de onze. In gecentraliseerde databases is het daarentegen, zodra een verbinding eenmaal tot stand is gebracht, niet nodig om elk verzoek afzonderlijk te verifiëren.
  2. Consensusmechanismen. In een gedistribueerde database zoals een blockchain moet er veel moeite worden gedaan om ervoor te zorgen dat knooppunten in het netwerk consensus bereiken. Afhankelijk van het gebruikte consensusmechanisme, kan dit aanzienlijke heen-en-weer communicatie en / of het omgaan met vorken en de daaruit voortvloeiende terugdraaiingen met zich meebrengen. Hoewel het waar is dat gecentraliseerde databases ook te maken hebben met conflicterende en afgebroken transacties, zijn deze veel minder waarschijnlijk wanneer transacties in de wachtrij staan ​​en op één locatie worden verwerkt.
  3. overtolligheid. Dit gaat niet over de prestaties van een individueel knooppunt, maar over de totale hoeveelheid berekening die een blockchain vereist. Terwijl gecentraliseerde databases transacties één (of twee keer) verwerken, moeten ze in een blockchain onafhankelijk door elk knooppunt in het netwerk worden verwerkt. Er wordt dus veel meer werk gedaan voor hetzelfde eindresultaat.

De bottom line

Uiteraard zijn er andere manieren waarop blockchains en reguliere databases kunnen worden vergeleken. We zouden kunnen praten over volwassenheid van codebases, aantrekkelijkheid van ontwikkelaars, breedte van ecosystemen en meer. Maar geen van deze problemen is inherent aan de technologie zelf. Dus als het gaat om een ​​langetermijnbeslissing over het gebruik van een blockchain, is de vraag die moet worden gesteld: wat is belangrijker voor mijn gebruiksscenario? Desintermediatie en robuustheid? Of vertrouwelijkheid en prestaties?

In dit eenvoudige licht bekeken, worden veel van de use-cases die momenteel worden besproken niet logisch. Het grootste probleem is meestal de vertrouwelijkheid. De deelnemers aan een fel concurrerende markt zullen natuurlijk de voorkeur geven aan de privacy van een gecentraliseerde database, in plaats van hun activiteiten aan elkaar te onthullen. Dit geldt met name als er al een vertrouwde centrale partij bestaat en het neutrale gebied kan bieden waarin die database zich kan bevinden. Ook al zijn er mogelijk kosten verbonden aan deze centrale provider, dit wordt meer dan gerechtvaardigd door de waarde van de bewaarde privacy. De enige reden voor een verschuiving naar blockchains zou agressieve nieuwe regelgeving zijn.

Desalniettemin hebben blockchains sterke use-cases, waarbij desintermediation en robuustheid belangrijker zijn dan vertrouwelijkheid en prestaties. Ik zal hierover in een volgende post meer schrijven, maar de meest veelbelovende gebieden die we tot nu toe hebben gezien, zijn: (a) audits tussen bedrijven, (b) herkomstregistratie en (c) lichtgewicht financiële systemen. In alle drie gevallen hebben we mensen gevonden die op MultiChain bouwen met een duidelijk oog voor implementatie, in plaats van alleen nieuwsgierigheid en experimenten. Dus als je op zoek bent naar manieren waarop blockchains echte waarde kunnen toevoegen aan je bedrijf, dan zijn ze misschien een goed begin.

Plaats eventuele opmerkingen op LinkedIn.

Tijdstempel:

Meer van Multichain