🇳🇱 Ardana Academy module 1 Nederlands

Module 1: Gecentraliseerde, gedecentraliseerde & gedistribueerde systemen uitgelegd

In deze eerste module zullen we u begeleiden door de topics gecentraliseerde, gedecentraliseerde en gedistribueerde systemen. We zullen u van elk systeem de karakteristieken, architectuur, voordelen, nadelen, enz. uitleggen.

Voor we bekijken wat blockchain en zijn applicaties inhouden, is het belangrijk om eerst inzicht te krijgen in de verschillende soorten databases waarop blockchains gebouwd kunnen worden. Blockchains kunnen opereren op zowel gecentraliseerde, gedecentraliseerde, en gedistribueerde systemen.

Source: https://www.researchgate.net/figure/Centralized-decentralized-and-distributed-network-models-by-Paul-Baran-1964-part-of-a_fig1_260480880

Gecentraliseerde Database

We beginnen met gecentraliseerde databases, sinds deze het gemakkelijkste te begrijpen zijn.

Client/server systemen waar 1 of meerdere clients allemaal verbonden zijn met 1 centrale server worden gecentraliseerde systemen genoemd. In veel organisaties is dit het meest voorkomende systeem, waarbij een client een aanvraag doet bij een bedrijfsserver, en hierop een antwoord ontvangt. Dit in tegenstelling tot blockchain nodes, die bezitten elk apart een volledige kopie van het blockchain logboek, en zijn verantwoordelijk voor de betrouwbaarheid van de opgeslagen data. De nodes worden gebruikt door ontwikkelaars om blockchain applicaties te ontwikkelen.

Een gecentraliseerde database is er één die zich op één plaats bevindt, en hier ook opgeslagen en onderhouden wordt. Dit type database kan alleen van deze centrale locatie aangepast worden. Dit gaat veelal om een centraal computersysteem of database toepassing. Een internetverbinding wordt gebruikt om de centrale toepassing te benaderen. Instanties en organisaties zijn de belangrijkste gebruikers van centrale databases.

Alle transacties die plaatsvinden in een gecentraliseerd systeem gebeuren via een centrale autoriteit of entiteit, vaak een derde partij. Een handig voorbeeld van dit systeem is een bank.

Eigenschappen

Global clock

Omdat het hele system bestaat uit één centrale node/server en meerdere client nodes, moeten alle client nodes gesynchroniseerd zijn met de global clock van de centrale node.

Eén centrale unit

Alle client nodes in het netwerk worden bediend en aangestuurd door 1 gecentraliseerde unit/server.

Gecentraliseerd punt voor falen

Wanneer er een probleem optreedt met de centrale node, dan faalt het hele systeem. Dit omdat er geen andere entiteit is om de gevraagde informatie van de clients te beantwoorden of verwerken.

Architectuur van een gecentraliseerd systeem en zijn beperkingen

De centrale node in het systeem is de server node. Alle andere nodes zijn client nodes. Door dit ontwerp is het gemakkelijker om de veiligheid van de server node en client nodes te verzekeren in vergelijking met de andere database types. Maar gecentraliseerde systemen hebben ook hun beperkingen:

Schaalbaarheid

Op een bepaald punt is het nog moeilijk om een gecentraliseerd systeem verticaal te schalen. Dit betekent dat het moeilijk is vanaf een bepaald moment om op een doeltreffende manier nog extra rekenkracht en geheugen toe te voegen aan de centrale server. Dit in contrast met horizontaal schalen, dit betekent meer nodes (machines) toevoegen aan een bestaand systeem. Sinds er in een gecentraliseerd systeem maar 1 centrale unit is, is horizontaal schalen hier niet mogelijk.

Zelfs wanneer de hardware en software capaciteiten van de centrale unit verhoogd worden, zal de performantie niet significant verbeteren. Maar in gedecentraliseerde systemen is verticaal schalen wel gemakkelijker. Elke node apart kan extra capaciteiten toevoegen, waardoor de performantie van het hele systeem stijgt.

Knelpunt

Wanneer de hoeveelheid data naar de centrale node toeneemt, kunnen er knelpunten in het systeem voorkomen. Er is maar een bepaalde capaciteit data dat van en naar de centrale server mogelijk is. Dit betekent dat in uitzonderlijke situaties zoals een actie of uitverkoop de centrale server de hoeveelheid data niet meer verwerkt krijgt, en een Denial-of-Service of Distributed Denial-of-Service (DDoS) kan voorkomen.

Een Denial-of-Service (DOS) aanval is een type aanval op een centrale server. Het doel is om het centrale netwerk lam te leggen zodat het niet meer normaal functioneert voor de gebruikers (clients). Een DoS aanval bewerkstelligt dit door de centrale server te bestoken met data, of het informatie sturen waardoor het systeem faalt.

Een Distributed Denial-of-Service (DDoS) aanval is een soort DoS aanval waarbij er te veel data naar een online dienst gestuurd wordt, waardoor deze offline gaat. De aanvaller gebruikt een uitgebreid netwerk van allemaal verschillende (zombie) computers die vaak overgenomen zijn door malware.

Voordelen van het gecentraliseerd systeem

Snelle lancering

Gecentraliseerde systemen hebben een duidelijke hiërarchie in het systeem. Hierdoor wordt het gemakkelijker om rollen en machtigingen binnen het systeem te verdelen. Wanneer een organisatie een gecentraliseerd systeem opzet, kan de bedrijfshiërarchie gemakkelijk overgenomen worden. Dit maakt het verdelen van rollen en taken in een gecentraliseerd systeem gemakkelijker, alsook de rapportage. Hierdoor kan een gecentraliseerd systeem snel opgezet en gelanceerd worden.

Een ander voordeel van het gecentraliseerd systeem is dat je connecties tussen clients en centrale server kunt toevoegen of verwijderen. Hierdoor is het gemakkelijk om het aantal clients in het netwerk te beheren. Het toevoegen of verwijderen van clients op het network heeft geen impact op de capaciteiten van het netwerk.

Betaalbaarheid

Voor kleinere systemen is een gecentraliseerd systeem vaak het financieel interessantste systeem. Het vergt vaak weinig middelen om te starten en te opereren. Verder moet alleen de centrale server beheert en onderhouden worden door de operator.

Nadelen van het gecentraliseerd systeem

· Omdat er maar één centrale server is, is het netwerk erg afhankelijk van de performantie en betrouwbaarheid van dit ene systeem.

· Door dit ene centrale knelpunt zal er ook geen geleidelijke daling in performantie zijn maar een abrupt falen van het hele netwerk. Er is ook de mogelijkheid van dataverlies bij falen van het centrale server indien er geen backups zijn. Dit heeft zware gevolgen voor het hele systeem.

Gedecentraliseerde database

In een gedecentraliseerde database is er geen gecentraliseerde data-opslag. De data wordt wel opgeslagen in databases verspreid over het netwerk, die met elkaar verbonden zijn. Algemeen zijn gedecentraliseerde databases meer betrouwbaar, en het gehele systeem is minder waarschijnlijk om te falen sinds er altijd een backup is ergens in het netwerk.

Samengevat is er in een gedecentraliseerd netwerk geen centraal vertrouwde partij, het systeem opereert zonder te rekenen op een vertrouwde, coördinerende entiteit. Hierdoor is er geen centraal faalpunt.

Een vertrouwloze omgeving betekent dat het niet nodig is om een onbekende derde partij of organisatie te vertrouwen om het netwerk of systeem te gebruiken.

Omdat er geen centrale entiteit is, is er geen mogelijkheid dat het netwerk faalt door het falen van 1 partij. Het netwerk faalt alleen wanneer alle onafhankelijke nodes tegelijkertijd falen. De kans dat dit gebeurt is klein, gezien het grote aantal nodes verspreid over de hele wereld.

Een interessant voorbeeld van een gedecentraliseerd systeem is BitTorrent. Het BitTorrent protocol staat gebruikers toe om data te delen binnen het netwerk zonder centrale server. Omdat BitTorrent gedecentraliseerd was, was het heel moeilijk voor overheidsinstanties om anti-piraterij wetgeving te handhaven en het netwerk op te doeken.

Eigenschappen

· Er is geen globale clock, elke node opereert onafhankelijk van elkaar. Elke node heeft dus zijn eigen klok.

· Wanneer een node faalt, heeft dit invloed op het functioneren van deze node. Dit heeft echter alleen impact op een deel van het systeem, maar niet het hele systeem.

Architectuur van een gedecentraliseerd systeem en zijn beperkingen

Peer-to-peer architectuur is de hoeksteen van een gedecentraliseerd netwerk. Dit betekent dat elke node gelijk is, geen enkele node heeft superioriteit over de anderen. Er zijn wel master nodes die kunnen verkozen worden door het netwerk die onderdelen van het systeem mee helpen coördineren. Deze master nodes hebben echter geen superioriteit over de andere nodes die ze helpt coördineren.

Gedecentraliseerde netwerken hebben ook hun beperkingen. Omdat elke node onafhankelijk werkt, kan het moeilijk zijn om collectieve doelen te behalen, bijvoorbeeld door coördinatieproblemen. Dit omdat er geen overkoepelende sturende entiteit is die de coördinerende taak op zich neemt.

Gedecentraliseerde netwerken zijn ook niet aanbevolen voor kleinere netwerken, dit omdat kleine gecentraliseerde netwerken veel goedkoper zijn om op te zetten.

Voordelen

Besluitvorming

Decentralisatie geeft de mogelijkheid om meer deelnemers te laten participeren in besluitvorming. Dit kan mogelijk tot betere en meer unieke ideeën leiden. Dit is van grote waarde voor bedrijven, sinds het hun toelaat om hun activiteiten te diversifiëren op allerhande manieren.

Data kwaliteit

Gedecentraliseerde systemen kunnen een positieve impact hebben op data retentie en kwaliteit. Bedrijven delen vaak informatie met hun partners. Da data wordt dan aangepast en opgeslagen in de data silo van elke partner, om pas later weer boven water te komen wanneer de data gedeeld moet worden. Elke keer de data wordt aangepast, geeft dit de mogelijkheid tot dataverlies of foute informatie die in het systeem terecht komt. In een gedecentraliseerd systeem is de data identiek over heel het netwerk.

Minder zwakke punten

Een gedecentraliseerd systeem kan minder zwakke punten hebben. Decentralisatie kan helpen in het beperken van zwakke punten in systemen waarbij er te veel afhankelijkheid is van bepaalde actoren. Bij een gecentraliseerd systeem kan dit leiden tot het falen van het systeem. Gedecentraliseerde systemen kennen deze afhankelijkheid veel minder.

Nadelen

· Er is momenteel een duidelijk gebrek aan een wetgevend kader omtrent “decentralised finance”, maar er is een inhaalbeweging gestart. Door de sterke en snelle groei van blockchain-gebaseerde alternatieven voor de traditionele financiële sector, zijn er wereldwijd stappen genomen om een wetgevend kader te creëren. Op moment van schrijven is er echter nog een lange weg te gaan.

· Wanneer er een node faalt, is het moeilijk te achterhalen welke node. Elke node moet een zelftest ondergaan, waarna deze individueel geverifieerd wordt door de andere nodes. Dit is een langdurig proces, wat tijd en middelen vraagt.

Gecentraliseerd vs. gedecentraliseerd - overzicht

Voor we verdergaan met het derde type database, geven we de sleutelverschillen nog even weer in onderstaande tabel:

Gedistribueerde systemen

Gedistribueerde systemen zijn een netwerkmodel waarbij 2 of meerdere nodes op een gecoördineerde manier samenwerken om een gemeenschappelijk doel te behalen. Elke node is in staat data te ontvangen en versturen.

Een welbekend voorbeeld hiervan is Google Search. Honderden computers werken samen aan een zoekopdracht en geven de relevante zoekresultaten als uitkomst. Voor de gebruiker lijkt dit 1 systeem te zijn, maar het is in realiteit een netwerk van computers die samenwerken om een enkele opdracht af te werken.

Eigenschappen van een gedistribueerd systeem

· Om overeenstemming te vinden binnen het netwerk, wordt er gebruik gemaakt van consensus mechanismen. Deze consensus mechanismen zijn de manier waarop de nodes binnen het netwerk overeenstemmen welke datablokken er aan de blockchain toegevoegd worden. Deze mechanismen zorgen ervoor dat de nodes kunnen samenwerken in het gedistribueerd netwerk.

· Er is geen globale clock, elke node bepaalt zijn eigen tijd.

· In het gedistribueerd systeem kan een node falen zonder significante impact op de rest van het netwerk. Als één van de nodes faalt, blijft het netwerk verder functioneren.

Architectuur van een gedistribueerd systeem en zijn beperkingen

Alle nodes in het netwerk zijn elkaars gelijke, en werken samen aan een overkoepelend doel. Nodes kunnen verschillende rollen opnemen binnen het netwerk, afhankelijke van hun opdracht of functie. Verschillende componenten van een applicatie kunnen verspreid worden over verschillende nodes, die dan samenwerken om de uiteindelijke applicatie uit te voeren voor de eindgebruiker.

Elke node in het netwerk maakt zijn eigen beslissingen. Het samenvoegen van al deze beslissingen bepaalt het uiteindelijke gedrag van het systeem. Er is dus niet een enkele entiteit die data verzend of ontvangt.

Een gedistribueerd systeem heeft ook zijn beperkingen. Er is bijvoorbeeld geen globale clock. Dit maakt het moeilijk voor een node om de correcte algemene staat van het netwerk te verkrijgen, en de juiste beslissingen te nemen op basis van informatie van de andere nodes.

Voordelen

Fouttolerantie

In een gedistribueerd netwerk kan een enkele node falen zonder de rest van het systeem te schaden. In dit geval wordt de uit te voeren taken herverdeeld over de rest van het netwerk. Het gevolg is dat gedistribueerde systemen veel betrouwbaarder zijn dan de alternatieve architecturen die rekenen op een hiërarchie tussen de nodes. Een voorbeeld zou een zieke werknemer kunnen zijn, wiens taken herverdeeld worden onder zijn collega’s tijdens zijn afwezigheid die dag.

Snelheid en schaalbaarheid

Gedistribueerde netwerken zijn beter schaalbaar dan zowel gecentraliseerde als gedecentraliseerde netwerken, en er zit minder vertraging op de onderlinge verbindingen in het netwerk. Deze vertraging is de tijd tussen het indienen van de transacties op het blockchain netwerk, en de tijd van de eerste bevestiging van de transactie vanuit het netwerk. Na de eerste bevestiging krijgt de transactie een nog hogere zekerheid naarmate er extra blocks toegevoegd worden aan de blockchain.

Betere transparantie

Het is veel moeilijker om informatie te manipuleren, censureren of verwijderen wanneer het is opgenomen in een gedistribueerd netwerk, sinds de data uniform identiek over het netwerk verspreid is. Hierdoor is er hogere transparantie van data in een gedistribueerd netwerk dan in conventionele netwerken, zeker wanneer de data versleuteld wordt. Bedrijven kunnen zo bijvoorbeeld levenscyclus informatie van fysieke producten traceerbaar, digitaal en onveranderbaar opslaan van grondstof tot eindgebruiker.

Nadelen

Kostelijk onderhoud

Gedistribueerde netwerken zijn net als gedecentraliseerde netwerken arbeidsintensief om te onderhouden of aan te passen. Elke grote verandering moet doorgevoerd worden op elke node apart. Sinds er geen globale klok is en de nodes erg verspreid zijn is het moeilijk voor netwerkbeheerders om de nodes efficiënt te beheren of om algemene algoritmes te schrijven.

Coördinatieproblemen

Alle node zijn gelijkwaardig, dus er is geen systeem van toezicht over de andere nodes in het netwerk. Daardoor handelen de aparte nodes op eigen houtje, zonder dat ze apart aangestuurd worden. Het gevolg is dat het moeilijk kan zijn om tijdsgevoelige beslissing te maken of een grote taak succesvol af te ronden. Dit gebrek aan toezicht en coördinatie kan voor sommige organisaties een onoverkomelijk probleem zijn. Verder is het onmogelijk voor elke node apart om een beeld te krijgen van het hele netwerk, waardoor het moeilijker is om de juiste beslissingen te nemen op basis van alle informatie op het netwerk.

Verschil tussen een gedecentraliseerd en een gedistribueerd netwerk

Het grote onderscheid tussen de 2 types is te vinden in de manier waarop een “beslissing” wordt genomen, en hoe die beslissing dan gecommuniceerd wordt naar de rest van het netwerk.

In een gedecentraliseerd netwerk is er geen eenduidig vast punt of manier waarop een beslissing genomen wordt. Elke node maakt een beslissing aan de hand van zijn informatie, en de algemene beslissing is de deze waarin alle beslissingen samengenomen worden. In een gecentraliseerd netwerk worden de beslissingen echter centraal gedelegeerd aan een aantal leiders aan de top van de organisatorische structuur.

Alhoewel gedecentraliseerde en gedistribueerde netwerken grote verschillen kunnen vertonen, in de blockchain wereld worden ze steevast aan elkaar gelinkt. Deze 2 systemen hebben beide hun voordelen, en wanneer ze gecombineerd worden verkrijgen we een beduidend stabieler en betrouwbaarder netwerk.

Is blockchain gedistribueerd of gedecentraliseerd?

Als je het gedistribueerde logboek bekijkt, zal je zien dat alle mining nodes een eigen kopie hebben van de netwerk transacties.Deze transacties kunnen niet uitgelezen worden, sinds ze versleuteld zijn met private keys. Transactie data wordt verdeeld over alle nodes, net gelijk in een gedistribueerd systeem. Als gevolg worden blockchains ontworpen om gedistribueerd te zijn.

We gaan blockchain technologie verder bekijken in de volgende module.

Maar is het ook gedecentraliseerd?

Afhankelijk van het ontwerp van het netwerk kan een blockchain gecentraliseerd gedistribueerd of gedecentraliseerd gedistribueerd zijn. Wanneer er geen controle is van een financiële organisatie, dan is het netwerk gedecentraliseerd gedistribueerd.

Conclusie

Wanneer we de verschillende soorten netwerkarchitecturen onderling met elkaar vergelijken, zien we dat er geen enkel systeem superieur is in alle aspecten.

Doordat het internet gemaakt werd op basis van grotendeels gecentraliseerde netwerken, hebben de meeste huidige systemen over het algemeen een gecentraliseerd model. De wijdverspreide opkomst en adoptie van gedecentraliseerde en gedistribueerde system hebben als doel de beperkingen van de traditionele gecentraliseerde systemen op te lossen.

In de volgende module gaan we dieper ingaan op blockchain technologie.

Tekst vertaald naar het Nederlands door BeADA Cardano Stake Pool met toestemming van de auteur. Origineel artikel vindt u hier. Vertaling gepost op 29 mei 2022 op Medium hier