Laten we het hebben over een ander opslagproject ontwikkeld door het @SuiNetwork-team, @WalrusProtocol 🧐🧐
Het ontwikkelingsbedrijf van Sui, Mysten Labs, heeft eigenlijk ook een datalaagproject ontwikkeld, @WalrusProtocol.
Walrus is een project dat zich richt op gegevensopslag en gegevensbeschikbaarheid. Na mijn onderzoek heb ik één gevoel - "geweldig". Dit is het beste opslagproject dat ik ooit heb gezien.
Hieronder volgt de hoofdtekst,
Decentrale opslagprojecten zijn er in twee hoofdtypen.
Het eerste type maakt gebruik van volledige replicatie (full replication), waarbij inefficiënte redundantie wordt ingewisseld voor veiligheid, wat betekent dat elke node een volledige kopie van de gegevens opslaat, vertegenwoordigd door projecten zoals @Filecoin en Arweave.
Het tweede type maakt gebruik van Reed-Solomon foutencodering, waarbij de oorspronkelijke gegevens in stukken worden opgeslagen, vertegenwoordigd door projecten zoals @Storj en Sia.
————————————————————————————————
Een uitleg van foutencodering (Erasure Codes) in begrijpelijke taal
De opslagmethode van foutencodering (Erasure Codes) moet worden uitgelegd. Strikt genomen wordt het oorspronkelijke bestand verdeeld in f+1 originele stukken, en worden er 2f extra herstelstukken (repair slivers) gegenereerd. Elke opslagnode slaat een ander stuk op, en met elk f+1 stuk kan het oorspronkelijke bestand worden hersteld.
Oké, je kunt deze niet-zo-begrepen uitleg overslaan en naar de volgende paragraaf gaan.
Stel dat we 4 belangrijke cijfers willen opslaan: [3, 7, 2, 5], deze 4 cijfers zijn onze "originele stukken".
Vervolgens moeten we extra stukken genereren,
Herstelstuk 1 = 3 + 7 + 2 + 5 = 17
Herstelstuk 2 = 3×1 + 7×2 + 2×3 + 5×4 = 47
Herstelstuk 3 = 3×1² + 7×2² + 2×3² + 5×4² = 131
Nu hebben we 7 stukken: [3, 7, 2, 5, 17, 47, 131], toch?
Stel dat het systeem 7 nodes heeft, we verspreiden ze,
Zhang San: 3
Li Si: 7
Wang Wu: 2
Zhao Liu: 5
Qian Qi: 17
Sun Ba: 47
Zhou Jiu: 131
Stel dat Li Si, Zhao Liu en Zhou Jiu hun gegevens verliezen, we hebben alleen: [3, _, 2, _, 17, 47, _].
Hoe herstellen we de oorspronkelijke gegevens?
Vergeet je de formule voor de extra stukken niet? Juist, los een lineaire vergelijking op.
3 + X + 2 + Y = 17
3×1 + X×2 + 2×3 + Y×4 = 47
Dus X=7, Y=5.
Natuurlijk is dit maar een heel eenvoudig voorbeeld.
Je hoeft alleen maar te onthouden wat de effectiviteit van foutencodering is. Het effect is dat zolang meer dan 1/3 van de nodes normaal functioneert, het goed is.
Met andere woorden, in een foutencoderingssysteem hoeven nodes alleen gegevensstukken op te slaan, zolang meer dan 1/3 van de nodes operationeel is, kunnen de gegevens worden hersteld, maar de nodes moeten stabiel zijn, omdat de vervangingskosten hoog zijn.
Maar in een volledig replicatiesysteem moeten er volledige nodes zijn die alle gegevenskopieën downloaden.
De eerste optie biedt lagere kosten ten koste van een deel van de veiligheid, terwijl de tweede optie veiligheid en stabiliteit biedt ten koste van redundantie.
————————————————————————————————
Walrus' innovatieve tweedimensionale (two-dimensional, 2D) foutencodering
De aanpak van Walrus is eigenlijk een tussenoplossing, die een soort balans tussen beide bereikt. De kern is ook het gebruik van foutencodering, maar met een verbeterde technologie genaamd Red Stuff.
Red Stuff maakt gebruik van een slimmere coderingsmethode voor gegevensfragmenten. Vergeet je het voorbeeld van foutencodering nog?
Om 4 belangrijke cijfers op te slaan: [3, 7, 2, 5], moeten we extra stukken genereren en uiteindelijk een lineaire vergelijking oplossen.
Laten we dit voorbeeld gebruiken om Red Stuff uit te leggen. De coderingsmethode van Red Stuff is een tweedimensionaal (two-dimensional, 2D) coderingsalgoritme, je kunt het zien als "sudoku".
3 7 25 wordt in Red Stuff codering,
[3 7]
[2 5]
Stel dat de coderingsregels zijn,
Kolom 3 = Kolom 1 + Kolom 2
Kolom 4 = Kolom 1×2 + Kolom 2×2
Rij 3 = Rij 1 + Rij 2
Rij 4 = Rij 1×2 + Rij 2×2
Dit resulteert in extra stukken die worden:
[3 7 10 20]
[2 5 7 14]
[5 12 18 34]
[10 24 34 68]
Vervolgens verdelen we ze volgens rijen en kolommen naar de nodes,
Zhang San: 3 7 10 20, dat is de eerste rij
Li Si: 2 5 7 14, de tweede rij
Wang Wu: 5 12 18 34, …
Zhao Liu: 10 24 35 68, …
Qian Qi: 3 2 5 10, de eerste kolom
Sun Ba: 7 5 12 24, …
Zhou Jiu: 10 7 18 34, …
Zheng Shi: 20 14 34 68, …
Stel dat Wang Wu zijn gegevens verliest, dat betekent dat de gegevens van de derde rij verloren zijn. Hij hoeft alleen maar de cijfers 10 en 7 van Zhang San en Li Si te vragen.
Hetzelfde geldt voor het oplossen van een lineaire vergelijking, om het resultaat te krijgen.
Uit het bovenstaande begrijpelijke maar niet zo rigoureuze voorbeeld kunnen we de kenmerken van Red Stuff samenvatten,
Bij het herstellen van gegevens zijn er geen volledige rijen of kolommen nodig, alleen specifieke posities van gegevens zijn voldoende. Deze eigenschap kan "lokaliteit" worden genoemd.
Bovendien kan een cijfer vanuit zowel rijen als kolommen worden hersteld, wat "informatiehergebruik" betekent.
Daarnaast kan voor complexe gegevens eerst de "gemakkelijker" te berekenen dimensie worden hersteld, en vervolgens de moeilijkere dimensie worden berekend met de al herstelde gegevens, wat "geleidelijkheid" betekent.
In de praktijk, stel je voor dat een bestand in een foutencoderingsstructuur is gecodeerd in 301 stukken.
In een normaal foutencoderingssysteem is het nodig om 101 stukken te herstellen voor 1 stuk, terwijl in Red Stuff, het herstellen van 1 paar stukken slechts ongeveer 200 afzonderlijke symbolen vereist.
Stel dat we een bestand van 1GB opslaan, met 301 nodes in het systeem, in een normaal foutencoderingssysteem, na een node-fout moet 1GB worden gedownload om het stuk te herstellen, terwijl in Red Stuff, elke node opslaat: hoofdstuk (3.3MB) + nevenstuk (3.3MB) = 6.6MB.
Bij herstel hoeft slechts ongeveer 10MB aan symboolgegevens te worden gedownload, wat 99% van de bandbreedte bespaart.
Dit ontwerp stelt Walrus in staat om een grootschalig gedecentraliseerd opslagnetwerk te onderhouden met extreem lage bandbreedtekosten, waardoor de herstelkosten van O(|blob|) worden verlaagd naar O(|blob|/n). Dit is waarom Red Stuff "zelfherstellend" wordt genoemd.
Daarnaast heeft Walrus veel beveiligingskenmerken toegevoegd, zoals het zijn van het eerste protocol dat opslaguitdagingen in een asynchroon netwerk ondersteunt.
Hierbij wordt "uitdaging" bedoeld, vergelijkbaar met de Optimistic-mechanisme voor het controleren van de gegevensopslagstatus van nodes.
Red Stuff voegt voor elk stuk verifieerbare cryptografische toezeggingen (commitments) toe, en elk symbool kan onafhankelijk worden geverifieerd, enzovoort.
Samenvattend de kenmerken,
1) Eerste asynchrone veiligheid: lost het vertrouwensprobleem van gedistribueerde opslag op;
2) Zelfverificerend: ingebouwde anti-fraude mechanismen;
3) Geleidelijk: behandelt dynamische veranderingen van nodes;
4) Schaalbaar: ondersteunt honderden tot duizenden nodes;
Om de beste balans tussen veiligheid en efficiëntie te vinden.
(Bovenstaande is het eerste deel van dit artikel)
Origineel weergeven29,26K
13
De inhoud op deze pagina wordt geleverd door derden. Tenzij anders vermeld, is OKX niet de auteur van het (de) geciteerde artikel(en) en claimt geen auteursrecht op de materialen. De inhoud is alleen bedoeld voor informatieve doeleinden en vertegenwoordigt niet de standpunten van OKX. Het is niet bedoeld als een goedkeuring van welke aard dan ook en mag niet worden beschouwd als beleggingsadvies of een uitnodiging tot het kopen of verkopen van digitale bezittingen. Voor zover generatieve AI wordt gebruikt om samenvattingen of andere informatie te verstrekken, kan deze door AI gegenereerde inhoud onnauwkeurig of inconsistent zijn. Lees het gelinkte artikel voor meer details en informatie. OKX is niet verantwoordelijk voor inhoud gehost op sites van een derde partij. Het bezitten van digitale activa, waaronder stablecoins en NFT's, brengt een hoge mate van risico met zich mee en de waarde van deze activa kan sterk fluctueren. Overweeg zorgvuldig of de handel in of het bezit van digitale activa geschikt voor je is in het licht van je financiële situatie.