Bij het opzetten van een gedistribueerd computernetwerk zijn er verschillende soorten gedistribueerde systeemarchitectuur die kunnen worden ingezet. In dit artikel gaan we dieper in op de soorten gedistribueerde systeemarchitectuur, met een specifieke focus op de peer-to-peer gedistribueerde systeemarchitectuur van blockchain.

Typen gedistribueerde systeemarchitectuur

Client-server-model

Toepassingen zoals e-mail of netwerkprinters gebruiken doorgaans de client-server-architectuur. In wezen hebben providers (genaamd servers) en aanvragers (genaamd clients) verschillende rollen. De server behandelt alle verwerkings-, gegevensbeheer- en computervereisten, die op aanvraag beschikbaar zijn voor de klant. Als een database-invoer verandert, hoeft de klant niet per se iets te doen. Alleen de gegevens op de server hoeven te worden gewijzigd.

De server hoeft in dit model niet één apparaat te zijn; het kunnen meerdere servers zijn die vergelijkbare taken uitvoeren om de werklast te verdelen. Het model verwijst naar de rol van de client en server, en niet naar de specifieke hardware.

Client-server-modeldiagram

Een client-server-modeldiagram. Bron: Wikimedia Commons

We gebruiken elke dag client-server-interacties, elke keer dat we een laptop of smartphone gebruiken om op internet te surfen, sociale media-apps te gebruiken, mobiele games te spelen of een film te kijken op Netflix. Client-server gedistribueerde systeemarchitectuur is waar we naar verwijzen als we het hebben over ‘gecentraliseerde’ computersystemen, in tegenstelling tot blockchain als een gedecentraliseerde gedistribueerde systeemarchitectuur.

Hoewel dit een eenvoudige uitleg is, zijn er verschillende soorten client-serverarchitectuur, zoals drie lagen. Dit model omvat het scheiden van de server waarop de applicatie zelf draait, van de server die de gegevens achter de applicatie bevat. Er zijn er nog meer, maar aangezien ze niet relevant zijn voor blockchain, zullen we ze hier niet allemaal analyseren.

Peer-to-peer-model

Een peer-to-peer (P2P) gedistribueerde systeemarchitectuur heeft geen specifieke clients of servers. Een P2P-netwerk is een gedistribueerd systeem van machines die knooppunten worden genoemd. Alle knooppunten kunnen de rol van client en server tegelijkertijd of op verschillende tijdstippen vervullen. Het model is inherent aan de naam zelf – in een P2P-netwerk is elke machine een gelijkwaardige peer, in plaats van een client of een server te zijn.

P2P-netwerken worden populair na de release van bestandsdelingsservices zoals de muziekuitwisselingssite Napster. Het idee van P2P kreeg een soort cultstatus omdat systemen onafhankelijk konden opereren van enige gecentraliseerde controle. Tegenwoordig is BitTorrent, buiten blockchain, waarschijnlijk de grootste en meest herkenbare naam in verband met P2P-netwerken.

Ongestructureerde versus gestructureerde netwerken

Op basis van hoe de knooppunten met elkaar zijn verbonden en hoe gegevens worden geïndexeerd en ontdekt, worden P2P-netwerken geclassificeerd als gestructureerd of ongestructureerd. In een ongestructureerd systeem vormen knooppunten eenvoudig willekeurige verbindingen met elkaar. Ongestructureerde netwerken zijn eenvoudig op te bouwen en op of af te schalen.

Ongestructureerd peer-to-peer netwerkdiagram (Bron: Wikimedia Commons)

Omdat ze echter ongestructureerd zijn, wordt het indexeren veel moeilijker. Als een knooppunt een bepaald stuk gegevens of een ander knooppunt wil vinden, moet het het netwerk overspoelen om zoveel mogelijk knooppunten te bereiken die een mogelijk doelwit kunnen zijn voor de zoekopdracht. Dit verbruikt meer netwerkvermogen, aangezien alle knooppunten alle verzoeken moeten verwerken. Als de gegevens zeldzaam zijn, is het bovendien mogelijk dat ze niet worden gevonden als niet alle knooppunten op het netwerk alle verzoeken kunnen verwerken. Voorbeelden van ongestructureerde netwerken zijn Kazaa en Limewire.

Aan de andere kant is het gemakkelijk om gegevens op een gestructureerd netwerk te lokaliseren. Gestructureerde netwerken gebruiken een gedistribueerde hashtabel om te bepalen welke peers welke bestanden en versies van bestanden bevatten. Chord is een voorbeeld van een gestructureerd P2P-netwerk.

Gedistribueerde hashtabel

Diagram van een gedistribueerde hashtabel, zoals gebruikt in gestructureerde P2P-netwerken. Bron: Wikimedia Commons

Waarom Blockchain speciaal is

Als puur model voor gedistribueerde systeemarchitectuur hebben P2P-netwerken verschillende voordelen en uitdagingen. Het belangrijkste voordeel is de veerkracht bij stilstand, omdat er geen centraal storingspunt is.

Omdat knooppunten in een P2P-netwerk echter zowel als client als server fungeren, zijn ze kwetsbaarder voor aanvallen. Dergelijke aanvallen kunnen bestaan ​​uit het weigeren van service of distributie van malware of beschadigde gegevens. Een studie ontdekte dat 15 procent van een half miljoen bestanden die van Kazaa werden gedownload, geïnfecteerd waren met 52 verschillende virussen.

Hoewel blockchains niet 100 procent onvergankelijk zijn, bedacht Satoshi een ingenieuze oplossing voor het kwetsbaarheidsprobleem toen hij de Bitcoin schreef wit papier. Door een consensusprotocol te introduceren, moeten alle knooppunten op het Bitcoin-netwerk het erover eens zijn dat een transactie geldig is. Bij het gebruik van speltheorie concurreert elk knooppunt om het volgende blok te minen.

Het succesvol mijnen van het volgende blok wordt geleverd met een beloning, waardoor node-operators een prikkel krijgen om het netwerk schoon te houden. Op voorwaarde dat 51 procent of meer van de node-operators samenwerken om te blijven strijden om de volgende blokbeloning, blijft de blockchain vrij van aanvallen.

Conclusie

Natuurlijk zijn er andere elementen aan Bitcoin, zoals het gebruik van hashing en cryptografische handtekeningen, die de opslag van digitale waarde creëren. De oplossing die door Satoshi is uitgevonden om de inherente zwakheden in een P2P-gedistribueerde systeemarchitectuur te overwinnen, blijft echter een van de meest fascinerende en innovatieve componenten van blockchain..

Sinds het begin van Bitcoin hebben vele anderen inventieve ontwikkelingen bedacht op basis van het idee van Satoshi. Die ontwikkelingen gaan tot op de dag van vandaag door. Blockchain vertegenwoordigt een revolutionaire stap in de gedistribueerde systeemarchitectuur. Bovendien zal de technologie nog vele jaren evolueren.

Uitgelichte afbeelding met dank aan Pixabay