@Walrus 🦭/acc

Zakładamy sieć asynchroniczną składającą się z węzłów przechowywania, w której złośliwy przeciwnik może kontrolować co najwyżej f węzłów przechowywania, tzn. dowolny podzbiór węzłów przechowywania, w którym co najwyżej f węzłów jest zepsute. W celu uproszczenia w dalszej części artykułu zakładamy, że każdy węzeł generuje osobny identyfikator węzła przechowywania, tak że istnieje n węzłów przechowywania i co najwyżej f węzłów przechowywania jest zepsute.

Rozważamy sieć asynchroniczną węzłów przechowywania, gdzie złośliwy przeciwnik może kontrolować co najwyżej f węzłów przechowywania, tzn. dowolny podzbiór węzłów przechowywania, w którym co najwyżej f węzłów jest zepsute. W celu uproszczenia w dalszej części artykułu zakładamy, że każdy węzeł generuje osobny identyfikator węzła przechowywania, tak że istnieje n węzłów przechowywania i co najwyżej f węzłów przechowywania jest zepsute.

Uszkodzone węzły mogą arbitralnie odbiegać od protokołu. Pozostałe węzły są uczciwe i ściśle przestrzegają protokołu. Jeśli węzeł kontrolowany przez przeciwnika w epoce e nie jest częścią zestawu węzłów przechowujących w epoce e + 1, to przeciwnik może dostosować się i skompromitować inny węzeł w epoce e + 1 po zakończeniu zmiany epoki.

Zakładamy, że każda para uczciwych węzłów ma dostęp do niezawodnego i uwierzytelnionego kanału. Sieć jest asynchroniczna, więc przeciwnik może arbitralnie opóźniać lub przestawiać wiadomości między uczciwymi węzłami, ale musi ostatecznie dostarczyć każdą wiadomość, chyba że epoka skończy się wcześniej. Jeśli epoka się kończy, to wiadomości mogą zostać odrzucone.

Chociaż przedstawiamy analizę zachęt, nie bierzemy pod uwagę racjonalnych węzłów z funkcjami użyteczności. To zostawiamy na przyszłość.

Kody erasure. W ramach Walrus proponujemy Asynchroniczne Kompleksowe Przechowywanie Danych (ACDS), które wykorzystuje liniowy schemat kodowania erasure. Chociaż nie jest to konieczne dla kluczowych części protokołu, zakładamy również, że schemat kodowania jest systematyczny dla niektórych naszych optymalizacji, co oznacza, że symbole źródłowe schematu kodowania również pojawiają się jako część jego symboli wyjściowych.

Niech Encode(B, t, n) będzie algorytmem kodowania. Jego wyjściem jest n symboli, takich że każdy t może być użyty

aby zrekonstruować B z przytłaczającym prawdopodobieństwem. Dzieje się to poprzez najpierw podzielenie B na s ≤ t symboli

w rozmiarze O(|B|), które nazywane są symbolami źródłowymi. Te są następnie rozszerzane poprzez generowanie n − s naprawy s

symboli dla łącznej liczby n symboli wyjściowych. Po stronie dekodowania każdy może wywołać Decode(T, t, n), gdzie T jest zbiorem co najmniej s poprawnie zakodowanych symboli, a zwraca blob B. Ta dekodowanie jest probabilistyczne, ale w miarę jak rozmiar T rośnie, prawdopodobieństwo skutecznego dekodowania bloba szybko zbliża się do jednego. Zakładamy, że różnica między progiem t do dekodowania z przytłaczającym prawdopodobieństwem a liczbą symboli źródłowych s jest małą stałą, co jest prawdziwe dla praktycznych schematów kodowania erasure (takich jak RaptorQ, które wykorzystujemy w naszej implementacji). Dla uproszczenia często zakładamy, że s = t, chyba że rozróżnienie ma znaczenie.

Ogólnie przyjmuje się, że jest to bezpieczne, ponieważ pierwsze t symbole można łatwo obliczyć na podstawie pierwszych s symboli i możemy po prostu uznać te t symbole za symbole źródłowe, tj. jedynym efektem tego założenia jest niewielki wzrost rozmiaru symbolu.

Blockchain substrate. Walrus wykorzystuje zewnętrzny blockchain jako czarną skrzynkę dla wszystkich operacji kontrolnych, które odbywają się na Walrusie. Protokół blockchain może być abstrakcyjnie traktowany jako obliczeniowa czarna skrzynka, która akceptuje współczesny zestaw transakcji, z każdą z wiadomością wejściową Tx(M) i zwraca całkowite uporządkowanie aktualizacji, które mają być zastosowane w stanie Res(seq, U ). Zakładamy, że blockchain nie odbiega od tej abstrakcji i nie cenzuruje Tx(M) w nieskończoność. Każdy nowoczesny protokół SMR o wysokiej wydajności spełnia te wymagania, w naszej implementacji używamy Sui i zaimplementowaliśmy krytyczne protokoły koordynacji Walrus w języku kontraktów inteligentnych Move.

#walrus #WalrusFinance #WAL #Binance #writetoearn

$WAL

WALSui
WAL
--
--