Wat is gedecentraliseerde opslag?: Een diepe duik door Filecoin.
Inhoudsopgave
- Definitie
- Inleiding tot Decentralized Storage
- Fundamentele Kenmerken van Decentralized Storage
- Gewenste Kenmerken van Decentralized Storage
- Case Studie: Hoe Filecoin Deze Kenmerken Incarneert
- De Samenvatting
Definitie
Decentrale opslagsystemen delen opslagtaken onder vele onafhankelijke operators die samen een enkel opslagnetwerk vormen.
Inleiding tot Decentralized Storage
Moderne computing is zeer gecentraliseerd. In de afgelopen decennia hebben enkele enorme cloudbedrijven enorme vermogens vergaard door traditionele computersystemen op te delen in gecompartimenteerde, op de cloud gebaseerde aanbiedingen. Het moderne web weerspiegelt die centralisatie - wanneer een van deze aanbieders een storing heeft, is dit een grote gebeurtenis op internet. (Als je ons niet gelooft, willen we je eraan herinneren aan de Amazon Web Storage storing in 2017, Github's langdurige onderbreking in juni 2020, of Microsoft's meerweekse problemen met cloudservices in oktober 2020.)
De inhoud die we hosten op deze services is niet beter, verstopt achter broze links die maar al te vaak breken. Dit heeft diepgaande gevolgen voor de computersystemen die we bouwen en voor de samenlevingen die er in toenemende mate op vertrouwen.
Gecentraliseerde architecturen zijn gedeeltelijk succesvol geweest omdat ze gemakkelijker te bouwen zijn.
Om tegen consolidatie te vechten, hebben ontwikkelaars nieuwe fundamentele bouwstenen nodig die net zo gemakkelijk te componeren zijn. Decentrale opslag is een van die hoekstenen, als voorwaarde voor een meer gedistribueerd web..
Fundamentele Kenmerken van Decentralized Storage
Er zijn vele verschillende manieren om een decentraal opslagsysteem te ontwerpen. Over het algemeen delen ze een gemeenschappelijke nadruk op veerkracht en efficiëntie.
Veerkracht
Het moderne internet is angstaanjagend kwetsbaar. Webinhoud van vandaag bevindt zich achter URL's, elk van welke op elk gegeven moment tot één definitieve server behoort. Als die provider om welke reden dan ook van het netwerk valt, wordt de inhoud waarnaar het wees ontoegankelijk. Centralisatie verhoogt dit effect, creëert enkele faalpunten en biedt gemakkelijke mogelijkheden voor censuur.
Als gevolg daarvan is linkrot (gelukkig precies wat het klinkt, wanneer een link kapot is of permanent niet beschikbaar) alomtegenwoordig in het internet van vandaag, is censuur op staatsniveau eenvoudig en kunnen denial-of-service-aanvallen de toegang tot vrijwel elk bestand verstoren.
In een ideaal gedecentraliseerd systeem zou het verlies van een operator geen gevolgen moeten hebben voor de toegang tot de eerder opgeslagen en geserveerde inhoud. Door de verantwoordelijkheden over verschillende knooppunten van een netwerk te verspreiden, hebben gedecentraliseerde systemen ook een natuurlijke weerstand tegen censuur en andere pogingen tot denial-of-service omdat er geen gecentraliseerd doelwit is waar aanvallers bronnen naar kunnen masseren.
Een voorbeeld van hoe gecentraliseerde opslagsystemen vatbaar kunnen zijn voor censuur is wat er gebeurde toen Catalonië (een van Spanje's 17 autonome gemeenschappen) een onafhankelijkheidsreferendum hield. De Spaanse regering - die tegen de plannen voor onafhankelijkheid was - blokkeerde websites met informatie over stemmen op het ISP-niveau. Door deze kritieke links te verbreken, voorkwam de regering effectief dat veel individuen deze informatie konden openen.
Veel van deze websites waren echter ook gespiegeld met behulp van het Interplanetary File System (IPFS), een peer-to-peer opslagnetwerk. Iedereen die een IPFS-knooppunt uitvoert, kon de gecensureerde informatie downloaden van andere knooppunten in het netwerk en beginnen deze zelf te delen. De gedecentraliseerde aard van IPFS counterde de pogingen van de Spaanse regering om de toegang tot deze documenten te blokkeren - zodra één knooppunt was geblokkeerd, kon een ander gemakkelijk zijn plaats innemen. Over het algemeen maken gedecentraliseerde opslagsystemen netwerkniveau blokkering veel moeilijker.
Efficiëntie
Alle computingsysteemarchitecturen hebben hun sterke en zwakke punten, en geen enkele oplossing past bij alle mogelijke use-cases. Helaas is de nadruk van het moderne web op centralisatie niet anders.
Vandaag de dag slaan enkele gecentraliseerde datacenters in een klein aantal steden over de hele wereld de meeste inhoud op. Als twee gebruikers in hetzelfde netwerk berichten met elkaar willen uitwisselen, bijvoorbeeld, gaan die berichten meestal eerst naar een van die datacenters. Als honderd gebruikers in een kamer naar dezelfde video op hun apparaten kijken, zullen ze elk een centrale server raken en honderd exemplaren parallel downloaden, in plaats van er één te downloaden en deze via het lokale netwerk te delen.
In de eenvoudigste bewoordingen maakt gedecentraliseerde opslag het gemakkelijker om bestanden te delen zonder dat verzoeken over heel internet naar bepaalde datacenters stuiteren. In plaats daarvan leggen knooppunten verbindingen met elkaar met zo weinig mogelijk tussenpersonen. Het verbinden met knooppunten in andere landen, bijvoorbeeld, zal nog steeds verschillende sprongen vereisen, maar knooppunten in hetzelfde netwerk kunnen bestanden rechtstreeks delen. Het uiteindelijke doel voor gedecentraliseerde opslagsystemen zou zijn om zoveel knooppunten te hebben dat iedereen relatief lokale peers kan vinden voor de informatie waar ze naar op zoek zijn.
Gedecentraliseerde opslagoplossingen kunnen fundamentele nieuwe efficiënties introduceren in dergelijke activiteiten. Door spaarzame datacenters te omzeilen, kan een gedistribueerd systeem knooppunten veel dichter bij eindgebruikers plaatsen dan zelfs moderne contentdeliverynetwerken, resulterend in aanzienlijk snellere bestandsopvraging. Peer-to-peer bestandsdeling over lokale netwerken kan ook kostbare bandbreedte besparen, met name in gebieden met beperkte toegang tot het bredere internet.
Gewenste Kenmerken van Decentralized Storage
Terwijl veerkracht en efficiëntie kenmerken zijn van gedecentraliseerde opslag, zijn er een aantal aanvullende kenmerken die een ideaal opslagsysteem kan bieden:
Toegankelijk
Een ideaal gedistribueerd systeem moet toegankelijk zijn. Deelname aan het netwerk moet eenvoudig zijn, zodat zoveel mogelijk knooppunten bestanden namens het netwerk kunnen opslaan en distribueren.
Als je dit leest en je afvraagt - kan ik een knooppunt zijn? Het antwoord is: het hangt ervan af.
Met Filecoin zou iedereen die relatief technisch onderlegd is, in staat moeten zijn om een clientknooppunt uit te voeren om met het netwerk te communiceren. Wat betreft het runnen van opslagmijnknooppunten (zie hieronder voor meer informatie), is het niet iets dat iedereen en hun moeder kunnen doen - je moet hardware hebben die voldoet aan bepaalde specificaties.
In het geval van IPFS hebben knooppunten lagere hardwarevereisten, wat betekent dat het voor veel meer gebruikers mogelijk is om bij te dragen aan het netwerk door een knooppunt te runnen (misschien door een webbrowser te runnen die er al een ingebouwd heeft).
Programmeerbaar
Cloudservice-aanbieders hebben goedkope en betrouwbare opslag gemakkelijker gemaakt dan ooit om mee te werken. Een belangrijk aspect van hun succes is de mogelijkheid om opslag te voorzien en te beheren via code via API's. Elk concurrerend systeem moet hetzelfde niveau van gemak kunnen bieden.
Inhoud Adressering
Zoals besproken, belichamen URL's enkele inherente ontwerp. Ze beschrijven de locatie van gegevens, niet de inhoud ervan.
Om uit te leggen hoe gecentraliseerde systemen het moeilijk kunnen maken een stuk gegevens te vinden - stel je voor dat je een foto van een pluizige kitten wilt downloaden. Overweeg deze twee URL's:
https://voorbeeld1.com/kat.jpeg
https://voorbeeld2.com/kat.jpeg
Elk van deze URL's verwijst naar een bestand met de naam cat.jpeg, maar er is geen garantie dat deze twee bestanden hetzelfde zijn. Als example1.com offline gaat, weet je niet zeker of example2.com heeft wat je zoekt - zijn cat.jpeg kan immers helemaal anders zijn. In feite kan het zelfs een foto van een hond zijn! Er is geen inherent verband tussen een URL en de inhoud die het verwijst.
Als gevolg hiervan is er geen manier voor u om tegen het internet van vandaag te zeggen, “Heeft iemand daar dit bestand?” omdat u niets over het bestand weet behalve de locatie ervan.
Wanneer u bestanden deelt met behulp van een URL, kunnen er dingen misgaan. De server kan een ander bestand beginnen te serveren vanuit die URL, of iemand kan een (verrassend niet zo zeldzame) man-in-the-middle-aanval uitvoeren en het bestand wijzigen. Het is erg moeilijk om te verifiëren dat iedereen die toegang heeft tot de URL het bestand ontvangt dat ze wilden.
Inhouds-adressering, daarentegen, vindt bestanden op basis van inhoudsidentificatie (CIDs), die dienen als digitale vingerafdrukken van bestanden. Bestanden adreseren op deze manier lost veel problemen met locatie-adressering op. Wanneer een client een bestand wil, in plaats van één server om een URL te vragen, vragen ze knooppunten in het netwerk om een bestand met een specifieke CID. Zodra de cliënt het bestand heeft gedownload, brengen ze zelf hun vingerafdruk aan.
Om ons voorbeeld te herzien, het is alsof alle websites begrijpen welk bestand ze moeten leveren wanneer er wordt gevraagd om cat.jpeg. Dus hoewel het geen garantie is dat elk knooppunt die bepaalde kat.jpeg heeft, zullen de knooppunten controleren op de fingerprint van dat bestand om een match te proberen vinden.
Hoewel een stap als fingerprinting iets is dat meer technische kennis vereist dan de gemiddelde persoon zou willen omgaan, kunnen Filecoin- en IPFS-cliënten dit proces gemakkelijk automatiseren. Hiermee kan de cliënt garanderen dat ze het bestand hebben ontvangen waarom ze hebben gevraagd - in dit systeem is het trivial om alternatieve aanbieders van gegevens te vinden.
Belangrijkste leerpunt: CIDs betekenen dat u inhoud kunt vinden die anders ontbreekt in een gecentraliseerd systeem, en CIDs kunnen ook man-in-the-middle-aanvallen of een server die plotseling een bestand op een bepaalde URL wijzigt, voorkomen.
Trustless
Een trustless systeem maakt samenwerking mogelijk tussen twee partijen zonder dat ze elkaar moeten kennen of naar een derde partij moeten kijken. De incentives van het systeem duwen acteurs naar het gedrag dat nodig is voor het functioneren van het netwerk.
Controleerbaar
Een ideaal opslagsysteem moet het gemakkelijk maken om voortdurend te bewijzen dat knooppunten exact de gegevens opslaan die ze hebben beloofd. Dit type van controleerbaarheid is essentieel voor het bereiken van trustlessness. Als u altijd kunt aantonen dat gegevens correct worden opgeslagen, hebt u minder behoefte om de partij die de opslag levert te vertrouwen.
Open
Ten slotte is een ideaal gedistribueerd opslagsysteem open: de code ervan is open-source en controleerbaar. Bovendien mag het opslagsysteem niet monolithisch zijn. In plaats daarvan zou het een open protocol moeten blootleggen dat iedereen kan implementeren en op kan bouwen, in plaats van lock-ins aan
Inhoudsopgave
- Definitie
- Inleiding tot Decentralized Storage
- Fundamentele Kenmerken van Decentralized Storage
- Gewenste Kenmerken van Decentralized Storage
- Case Studie: Hoe Filecoin Deze Kenmerken Incarneert
- De Samenvatting
Definitie
Decentrale opslagsystemen delen opslagtaken onder vele onafhankelijke operators die samen een enkel opslagnetwerk vormen.
Inleiding tot Decentralized Storage
Moderne computing is zeer gecentraliseerd. In de afgelopen decennia hebben enkele enorme cloudbedrijven enorme vermogens vergaard door traditionele computersystemen op te delen in gecompartimenteerde, op de cloud gebaseerde aanbiedingen. Het moderne web weerspiegelt die centralisatie - wanneer een van deze aanbieders een storing heeft, is dit een grote gebeurtenis op internet. (Als je ons niet gelooft, willen we je eraan herinneren aan de Amazon Web Storage storing in 2017, Github's langdurige onderbreking in juni 2020, of Microsoft's meerweekse problemen met cloudservices in oktober 2020.)
De inhoud die we hosten op deze services is niet beter, verstopt achter broze links die maar al te vaak breken. Dit heeft diepgaande gevolgen voor de computersystemen die we bouwen en voor de samenlevingen die er in toenemende mate op vertrouwen.
Gecentraliseerde architecturen zijn gedeeltelijk succesvol geweest omdat ze gemakkelijker te bouwen zijn.
Om tegen consolidatie te vechten, hebben ontwikkelaars nieuwe fundamentele bouwstenen nodig die net zo gemakkelijk te componeren zijn. Decentrale opslag is een van die hoekstenen, als voorwaarde voor een meer gedistribueerd web..
Fundamentele Kenmerken van Decentralized Storage
Er zijn vele verschillende manieren om een decentraal opslagsysteem te ontwerpen. Over het algemeen delen ze een gemeenschappelijke nadruk op veerkracht en efficiëntie.
Veerkracht
Het moderne internet is angstaanjagend kwetsbaar. Webinhoud van vandaag bevindt zich achter URL's, elk van welke op elk gegeven moment tot één definitieve server behoort. Als die provider om welke reden dan ook van het netwerk valt, wordt de inhoud waarnaar het wees ontoegankelijk. Centralisatie verhoogt dit effect, creëert enkele faalpunten en biedt gemakkelijke mogelijkheden voor censuur.
Als gevolg daarvan is linkrot (gelukkig precies wat het klinkt, wanneer een link kapot is of permanent niet beschikbaar) alomtegenwoordig in het internet van vandaag, is censuur op staatsniveau eenvoudig en kunnen denial-of-service-aanvallen de toegang tot vrijwel elk bestand verstoren.
In een ideaal gedecentraliseerd systeem zou het verlies van een operator geen gevolgen moeten hebben voor de toegang tot de eerder opgeslagen en geserveerde inhoud. Door de verantwoordelijkheden over verschillende knooppunten van een netwerk te verspreiden, hebben gedecentraliseerde systemen ook een natuurlijke weerstand tegen censuur en andere pogingen tot denial-of-service omdat er geen gecentraliseerd doelwit is waar aanvallers bronnen naar kunnen masseren.
Een voorbeeld van hoe gecentraliseerde opslagsystemen vatbaar kunnen zijn voor censuur is wat er gebeurde toen Catalonië (een van Spanje's 17 autonome gemeenschappen) een onafhankelijkheidsreferendum hield. De Spaanse regering - die tegen de plannen voor onafhankelijkheid was - blokkeerde websites met informatie over stemmen op het ISP-niveau. Door deze kritieke links te verbreken, voorkwam de regering effectief dat veel individuen deze informatie konden openen.
Veel van deze websites waren echter ook gespiegeld met behulp van het Interplanetary File System (IPFS), een peer-to-peer opslagnetwerk. Iedereen die een IPFS-knooppunt uitvoert, kon de gecensureerde informatie downloaden van andere knooppunten in het netwerk en beginnen deze zelf te delen. De gedecentraliseerde aard van IPFS counterde de pogingen van de Spaanse regering om de toegang tot deze documenten te blokkeren - zodra één knooppunt was geblokkeerd, kon een ander gemakkelijk zijn plaats innemen. Over het algemeen maken gedecentraliseerde opslagsystemen netwerkniveau blokkering veel moeilijker.
Efficiëntie
Alle computingsysteemarchitecturen hebben hun sterke en zwakke punten, en geen enkele oplossing past bij alle mogelijke use-cases. Helaas is de nadruk van het moderne web op centralisatie niet anders.
Vandaag de dag slaan enkele gecentraliseerde datacenters in een klein aantal steden over de hele wereld de meeste inhoud op. Als twee gebruikers in hetzelfde netwerk berichten met elkaar willen uitwisselen, bijvoorbeeld, gaan die berichten meestal eerst naar een van die datacenters. Als honderd gebruikers in een kamer naar dezelfde video op hun apparaten kijken, zullen ze elk een centrale server raken en honderd exemplaren parallel downloaden, in plaats van er één te downloaden en deze via het lokale netwerk te delen.
In de eenvoudigste bewoordingen maakt gedecentraliseerde opslag het gemakkelijker om bestanden te delen zonder dat verzoeken over heel internet naar bepaalde datacenters stuiteren. In plaats daarvan leggen knooppunten verbindingen met elkaar met zo weinig mogelijk tussenpersonen. Het verbinden met knooppunten in andere landen, bijvoorbeeld, zal nog steeds verschillende sprongen vereisen, maar knooppunten in hetzelfde netwerk kunnen bestanden rechtstreeks delen. Het uiteindelijke doel voor gedecentraliseerde opslagsystemen zou zijn om zoveel knooppunten te hebben dat iedereen relatief lokale peers kan vinden voor de informatie waar ze naar op zoek zijn.
Gedecentraliseerde opslagoplossingen kunnen fundamentele nieuwe efficiënties introduceren in dergelijke activiteiten. Door spaarzame datacenters te omzeilen, kan een gedistribueerd systeem knooppunten veel dichter bij eindgebruikers plaatsen dan zelfs moderne contentdeliverynetwerken, resulterend in aanzienlijk snellere bestandsopvraging. Peer-to-peer bestandsdeling over lokale netwerken kan ook kostbare bandbreedte besparen, met name in gebieden met beperkte toegang tot het bredere internet.
Gewenste Kenmerken van Decentralized Storage
Terwijl veerkracht en efficiëntie kenmerken zijn van gedecentraliseerde opslag, zijn er een aantal aanvullende kenmerken die een ideaal opslagsysteem kan bieden:
Toegankelijk
Een ideaal gedistribueerd systeem moet toegankelijk zijn. Deelname aan het netwerk moet eenvoudig zijn, zodat zoveel mogelijk knooppunten bestanden namens het netwerk kunnen opslaan en distribueren.
Als je dit leest en je afvraagt - kan ik een knooppunt zijn? Het antwoord is: het hangt ervan af.
Met Filecoin zou iedereen die relatief technisch onderlegd is, in staat moeten zijn om een clientknooppunt uit te voeren om met het netwerk te communiceren. Wat betreft het runnen van opslagmijnknooppunten (zie hieronder voor meer informatie), is het niet iets dat iedereen en hun moeder kunnen doen - je moet hardware hebben die voldoet aan bepaalde specificaties.
In het geval van IPFS hebben knooppunten lagere hardwarevereisten, wat betekent dat het voor veel meer gebruikers mogelijk is om bij te dragen aan het netwerk door een knooppunt te runnen (misschien door een webbrowser te runnen die er al een ingebouwd heeft).
Programmeerbaar
Cloudservice-aanbieders hebben goedkope en betrouwbare opslag gemakkelijker gemaakt dan ooit om mee te werken. Een belangrijk aspect van hun succes is de mogelijkheid om opslag te voorzien en te beheren via code via API's. Elk concurrerend systeem moet hetzelfde niveau van gemak kunnen bieden.
Inhoud Adressering
Zoals besproken, belichamen URL's enkele inherente ontwerp. Ze beschrijven de locatie van gegevens, niet de inhoud ervan.
Om uit te leggen hoe gecentraliseerde systemen het moeilijk kunnen maken een stuk gegevens te vinden - stel je voor dat je een foto van een pluizige kitten wilt downloaden. Overweeg deze twee URL's:
https://voorbeeld1.com/kat.jpeg
https://voorbeeld2.com/kat.jpeg
Elk van deze URL's verwijst naar een bestand met de naam cat.jpeg, maar er is geen garantie dat deze twee bestanden hetzelfde zijn. Als example1.com offline gaat, weet je niet zeker of example2.com heeft wat je zoekt - zijn cat.jpeg kan immers helemaal anders zijn. In feite kan het zelfs een foto van een hond zijn! Er is geen inherent verband tussen een URL en de inhoud die het verwijst.
Als gevolg hiervan is er geen manier voor u om tegen het internet van vandaag te zeggen, “Heeft iemand daar dit bestand?” omdat u niets over het bestand weet behalve de locatie ervan.
Wanneer u bestanden deelt met behulp van een URL, kunnen er dingen misgaan. De server kan een ander bestand beginnen te serveren vanuit die URL, of iemand kan een (verrassend niet zo zeldzame) man-in-the-middle-aanval uitvoeren en het bestand wijzigen. Het is erg moeilijk om te verifiëren dat iedereen die toegang heeft tot de URL het bestand ontvangt dat ze wilden.
Inhouds-adressering, daarentegen, vindt bestanden op basis van inhoudsidentificatie (CIDs), die dienen als digitale vingerafdrukken van bestanden. Bestanden adreseren op deze manier lost veel problemen met locatie-adressering op. Wanneer een client een bestand wil, in plaats van één server om een URL te vragen, vragen ze knooppunten in het netwerk om een bestand met een specifieke CID. Zodra de cliënt het bestand heeft gedownload, brengen ze zelf hun vingerafdruk aan.
Om ons voorbeeld te herzien, het is alsof alle websites begrijpen welk bestand ze moeten leveren wanneer er wordt gevraagd om cat.jpeg. Dus hoewel het geen garantie is dat elk knooppunt die bepaalde kat.jpeg heeft, zullen de knooppunten controleren op de fingerprint van dat bestand om een match te proberen vinden.
Hoewel een stap als fingerprinting iets is dat meer technische kennis vereist dan de gemiddelde persoon zou willen omgaan, kunnen Filecoin- en IPFS-cliënten dit proces gemakkelijk automatiseren. Hiermee kan de cliënt garanderen dat ze het bestand hebben ontvangen waarom ze hebben gevraagd - in dit systeem is het trivial om alternatieve aanbieders van gegevens te vinden.
Belangrijkste leerpunt: CIDs betekenen dat u inhoud kunt vinden die anders ontbreekt in een gecentraliseerd systeem, en CIDs kunnen ook man-in-the-middle-aanvallen of een server die plotseling een bestand op een bepaalde URL wijzigt, voorkomen.
Trustless
Een trustless systeem maakt samenwerking mogelijk tussen twee partijen zonder dat ze elkaar moeten kennen of naar een derde partij moeten kijken. De incentives van het systeem duwen acteurs naar het gedrag dat nodig is voor het functioneren van het netwerk.
Controleerbaar
Een ideaal opslagsysteem moet het gemakkelijk maken om voortdurend te bewijzen dat knooppunten exact de gegevens opslaan die ze hebben beloofd. Dit type van controleerbaarheid is essentieel voor het bereiken van trustlessness. Als u altijd kunt aantonen dat gegevens correct worden opgeslagen, hebt u minder behoefte om de partij die de opslag levert te vertrouwen.
Open
Ten slotte is een ideaal gedistribueerd opslagsysteem open: de code ervan is open-source en controleerbaar. Bovendien mag het opslagsysteem niet monolithisch zijn. In plaats daarvan zou het een open protocol moeten blootleggen dat iedereen kan implementeren en op kan bouwen, in plaats van lock-ins aan
4 users upvote it!
0 answers