Sui는 스토리지 펀드라는 인센티브 시스템을 통해 지속 가능한 데이터 스토리지를 달성하였다. 하지만, 미디어 파일 등을 포함하는 거대한 용량의 blob 데이터까지 Sui의 모든 노드들이 저장하는 것은 비효율적이다.
Walrus는 탈중앙 스토리지 프로토콜로 Red Stuff라는 erasure coding 방식을 활용하기 때문에 blob 데이터를 효율적으로 저장할 수 있다. Walrus에 필요한 인센티브 시스템, 노드 조율(coordination) 등의 기능은 Sui 네트워크를 레버리지 한다.
Red Stuff는 이차원 인코딩을 활용하기 때문에, 파일 전체를 복제하는 full replication 방식이나, RS 인코딩을 사용하는 방식에 비해 데이터를 복구하는 비용이 효율적이라는 장점이 있다. 이는 노드의 출입이 자유롭거나, 노드 셋이 epoch마다 지속적으로 변하는 환경에서 큰 이점이 된다.
Walrus의 대표적인 사용 예시로는 웹3 전문 미디어 컴퍼니인 Decrypt가 그들의 컨텐츠를 Walrus에 업로드할 계획인 사례가 있으며, 이외에도 Walrus와 Sui를 활용하여 탈중앙 프론트엔드를 구축할 수 있는 Walrus Sites가 있다.
Mysten Labs는 zkLogin, Mysticeti 등 지속적으로 컨슈머와 인프라 단에서 혁신을 하고 있다. Walrus 또한 이러한 혁신들 중 하나이며, Sui 자체적으로 감당하기 어려운 큰 사이즈의 데이터 저장을 오프체인에서 담당함으로써 Sui 생태계에 더욱더 다양한 어플리케이션을 가능케 할 것이다.
블록체인은 무엇일까? 블록체인이 암호학, 철학, 경제학, 컴퓨터 공학 등 다양한 학문들의 산물인 만큼, 각자가 생각하는 블록체인의 모습 또한 다양할 것이다. 이와 같은 맥락에서 투명성, 보안성, 탈중앙성 등 블록체인이 기존 시스템과 비교하여 갖는 장점들 또한 다양하지만, 이는 결국 블록체인의 한 특성으로부터 유래된다. 그것은 바로 ‘분산 원장’이다.
블록체인은, 간단하게 말하면 다수의 서버가 함께 유지하는 분산원장이다. 이들은 합의 알고리즘을 통해 같은 트랜잭션 내역을 공유하고 관리한다. 모두가 같은 원장을 가지고 있기 때문에 블록체인의 다양한 장점이 유래되는 것이며, 분산원장은 그 자체로 블록체인의 핵심이다.
하지만 중앙화된 서버와 비교하여 분산원장을 관리하는 것은 매우 어렵다. 전 세계에 존재하는 노드들과 통신하며 합의를 이루는 과정으로 인해 확장성을 달성하기가 쉽지 않으며, 과거의 모든 내역을 단일 서버가 아닌 모든 노드에 저장하는 것도 하드웨어 측면에서 굉장히 비효율적이다.
예시로 2024년 10월 기준 비트코인 블록체인의 전체 사이즈는 약 600GB에 달하며, 이더리움의 아카이브 노드 사이즈는 약 19.5TB, 풀 노드 사이즈는 약 1,100GB에 달한다. 확장성보다 탈중앙성에 집중한 네트워크들의 용량이 이 정도 규모라면, 확장성에 집중한 다른 네트워크들의 사이즈는 훨씬 더 빠른 속도로 증가할 것으로 예상할 수 있다(예컨데, 빠른 블록체인들 중 하나인 세이 네트워크의 경우 이미 스토리지의 문제를 인지하고 데이터 베이스 모델을 최적화하는 중이다).
비록 분산 원장의 사이즈가 빠르게 증가할지라도, 네트워크 초기 단계에는 큰 문제가 없다. 하지만 이런 상황이 지속된다면 나중에 분산 원장의 사이즈가 굉장히 커졌을 때, 신규 노드들이 네트워크에 진입하기 위한 진입장벽이 매우 높아지며, 따라서 미래의 사용자들에게 요구되는 트랜잭션 수수료가 증가할 수 있다.
이렇듯, 대부분의 기존 블록체인들의 인센티브 시스템은 스토리지가 아닌 연산에만 초점이 맞추어져있다. 노드들의 스토리지에 대한 부담을 감소시키기 위해 여러가지 기술적 논의(EIP-4444, Verkle Trie, etc…)들이 이루어지고 있긴 하지만, 인센티브 시스템 측면에서 스토리지 문제를 해결하려는 시도들은 많이 없는 상태이다.
그런 측면에서 수이는 매우 흥미로운 프로젝트라고 할 수 있는게, 수이는 초창기서부터 스토리지에 문제를 인센티브로 해결하고자 노력했던 레이어1 블록체인이기 때문이다. 수이는 Storage Fund라는 경제 메커니즘을 통해 지속 가능한 데이터 스토리지를 달성하는 것을 목표로 하는데 그 작동 방식은 이렇다: 사용자들이 Sui 밸리데이터들에게 제출하는 수수료는 1) 연산과 관련된 가스비와 2) 데이터 저장을 위한 스토리지 비용으로 나뉜다. Sui는 사용자들로부터 데이터의 영구 저장을 위해 미리 업프론트로 스토리지 비용을 받고, 이를 Storage Fund에 모은다. Storage Fund는 모인 금액을 데이터가 온체인에 저장되어있는 동안 지속적으로 밸리데이터들에게 재분배한다. 또한, 사용자는 데이터를 삭제하게되면 해당하는 스토리지 비용을 환불받을 수 있다.
Sui의 독특한 온체인 데이터 스토리지 시스템은 다음과 같은 두 가지 효과를 낳는다:
사용자가 온체인 상의 데이터를 삭제할 경우 스토리지 비용 리베이트를 받을 수 있기 때문에, 경제적 인센티브를 통해 분산 원장의 용량을 감소시키는 것을 유도할 수 있다.
스토리지 비용에 해당하는 트랜잭션 수수료를 미리 수취해 미래의 밸리데이터들을 위한 인센티브로 할당하는 독특한 인센티브 구조를 통해 스토리지와 관련된 지속 가능성 문제를 해결할 수 있다.
Sui의 Storage Fund가 강력한 툴이긴 하지만, 모든 데이터에 효율적으로 적용할 수 있는 방법은 아니다. 왜냐하면 온체인에는 트랜잭션 데이터와 같이 상태를 계산하기 위해 필수적이지만 용량이 작은 데이터도 있는 반면, 미디어 파일 등을 포함하는 blob과 같이 거대한 데이터도 존재하기 때문이다.
블록체인의 트랜잭션 데이터는 용량이 작으며, 분산 원장의 상태를 계산하기 위해 필수적이기 때문에 네트워크에 참여하는 모든 노드들이 복제하여 저장해야만 한다. 하지만, 이미지, 영상, 음악 등과 같은 용량이 크고 부가적인 blob 데이터들의 경우 모든 노드가 이를 복제하여 가지고 있으면 굉장히 비효율적이다. 따라서 미스텐랩스(Mysten Labs)는 이러한 데이터도 함께 취급하기 위해 Walrus라는 새로운 데이터 스토리지 프로토콜을 출시하려고 한다. 그런데 데이터 아카이빙을 목적으로하는 탈중앙 스토리지 프로토콜들이 너무 많기도 한데 굳이 또 다른 스토리지 프로토콜을 만들 필요가 있을까? 도대체 월루스는 무엇이고 기존 스토리지 프로토콜과 어떤 차별점을 가지고 있을까?
우선 월루스에 대해서 알아보기 이전에, 기존 스토리지 프로토콜들에 대해 알아보자. 블록체인 산업에서 이미지, 비디오, 문서 등을 포함하는 blob 데이터의 온체인 저장은 중요하다. Blob 데이터의 대표적인 예시로는 NFT의 원본파일의 온체인 저장부터, 더 나아가선 AI 모델 훈련에 사용된 데이터셋, dApps의 탈중앙 프론트엔드 호스팅, 롤업의 트랜잭션 데이터 저장등이 있는데, 이 예시들에서 볼 수 있듯 온체인에 무언가를 저장한다는 것은 무결성을 증명할 수 있는 강력한 행위이다.
이러한 중요성 때문에, 월루스 이전에도 blob과 같이 거대한 크기의 데이터를 탈중앙적으로 저장하는 시도를 하는 프로토콜은 많이 있어왔다. Filecoin, Arweave, Storj, Sia 등이 대표적인 예시이다. 이들은 blob 저장을 어떤 방식으로 했는지, Walrus가 이들과 대비하여 갖는 차별점은 무엇인지 살펴보자.
참고로 아래 예시에 사용되는 약어의 의미는 다음과 같다:
B: blob
W: blob writer
R: blob reader
f: the number of byzantine nodes
n: total number of nodes
2.1.1 Full Replication: IPFS, Arweave
우선 분산된 환경에서 blob을 저장하는 가장 직관적이고 간단한 방법은 W가 업로드한 B를 노드들이 통째로 복제하여 저장하는 것이다. 예를들어 당신이 이미지 파일을 업로드하였다면, 몇몇 노드들이 해당 이미지 파일을 쪼개어 나눠 정하는 것이 아닌, 해당 이미지 파일을 그대로 복제하여 저장하는 것이다. 대표적인 예시로는 IPFS와 Arweave가 있다. 물론 IPFS와 Arweave에 참여하는 스토리지 노드들이 네트워크 전체에 저장되어있는 파일을 모두 다운 받는다는 것은 아니며, 파일들 중 일부를 완전한 형태로 저장한다는 의미이다.
W는 B와, 상응하는 커밋먼트(binding commitment, e.g., hash)를 노드들에게 전파하고, f+1개의 서명을 받을 때까지 기다린다. (n=3f+1이라는 가정하에, 최소 f+1개의 서명을 받아야 비잔틴 노드 f개를 제외한 최소 하나의 정직한 노드가 B를 저장했다는 것이 보장되기 때문이다.) f+1개의 서명이 도착하면 W는 가용성 증명(availability certificate)를 생성할 수 있고, 누구나 해당 네트워크에서 해당 파일에 온전하게 접근할 수 있는 것이 보장된다.
하지만 full replication에는 많은 단점이 있는데, 바로 비효율성이다.
Write: W가 네트워크에 데이터 저장을 하기 위해 노드들에게 파일을 전파할 때 O(nB)의 복잡도를 갖는다.
Read: 비동기 환경에서 데이터를 읽을 때, f+1 노드에게 요청을 보내야하기 때문에 O(nB)의 비용이 발생한다.
Recovery: 비동기 환경에서 데이터를 복구하기 위해선 스토리지 노드가 다른 f+1개의 노드에게 요청을 보내야 하기 때문에, 각 스토리지 노드는 O(nB)의 비용이 들고, 이를 네트워크 전체로 적용하면 O(n^2 B)의 비용이든다.(여기서 이야기 하는 복구 비용은 최악의 상황일 때를 가정한 것이다)
2.1.2 Encode and Share: Storj, Sia
위에서 언급했듯, Full replication 방법은 단순하고, 직관적이며, 온전한 파일에 접근하기 간편하다는 장점이 있었지만, 그만큼 네트워크 전체의 스토리지 비용이 많이 든다는 것이 단점이었다. 해서, 이를 해결하기 위해 Reed Solomon (RS) 인코딩을 사용하는 탈중앙 스토리지 네트워크들이 등장했다. 대표적인 예시가 Storj와 Sia이다.
RS 인코딩은 erasure coding을 구현하는 대표적인 방식으로, 실생활에서 CD, DVD, QR 코드 등에 널리 활용되는 기술이다. Erasure 코딩은 원본 데이터를 여러 개의 조각으로 나누고, 그 조각들로부터 추가적인 복구용 데이터를 생성하는 방식이다. 만약 일부 데이터가 손실되어도 어느정도까지는 복구용 데이터를 통해 원본 데이터를 복원할 수 있다.
Encode and Share 방식을 예시로 살펴보자. W는 B를 f+1개의 데이터 청크(data chunks)로 나누고, 2f 개의 여분 리페어 청크를 추가로 인코딩한다. RS 인코딩의 특성 덕분에 총 3f+1개의 청크 중 f+1개의 청크만 있어도 원본 B를 복구할 수 있다. 여기서 각 청크의 크기는 O(B/n)이다.
W는 머클트리 등의 바인딩 커밋먼트를 활용하며 모든 청크에 커밋하고, 각 노드에게 청크와 해당 덩어리가 머클트리에 포함되어있다는 포함 증명(proof of inclusion)을 전송한다. 청크를 받은 스토리지 노드들은 커밋먼트를 활용해 데이터 청크가 타당한지 검증하고, 서명을 하여 다시 W에게 전송한다.
W는 노드들로부터 최소 2f+1개의 서명(2f+1 중 f가 비잔틴 노드여도 f+1을 통해 B를 복구할 수 있으므로)을 받으면 가용성 증명(availability certificate)를 생성한다. Encode and Share 방식은 Full replication 방법에 비해 데이터 쓰기와 읽기 과정의 효율성이 높지만, 데이터 복구 과정은 여전히 비효율적이라는 단점을 가지고 있다.
Write: W가 네트워크에 데이터 저장하기 위해 O(B/n)의 크기를 갖는 청크를 네트워크에 전파하므로 총 O(B)의 비용이 든다.
Read: R은 노드들로부터 청크를 요청하여 f+1개의 유효한 응답을 받아야하기 때문에 O(B/n) * O(n) = O(B)의 복잡도를 갖는다.
Recovery: 비동기 환경에서 데이터를 복구하기 위해 2f+1개의 노드에게 청크를 받아야하기 때문에, 각 스토리지 노드는 O(B)의 비용이 들고, 이를 네트워크 전체에 적용하면 총 O(nB)의 비용이 든다. 이는 여전히 비효율적이라는 단점이 있다.
데이터 복구 과정의 효율성을 증가시키는 것은 매우 중요한데, 탈중앙 프로토콜이기 때문에 노드들이 자유롭게 네트워크에 참여하고 이탈하기 때문이다. 이렇게 에포크마다 노드 셋이 변하는 경우 새로운 노드들이 이전 노드들로부터 청크를 받아 복구해야하기 때문에 이러한 문제점을 인지한 월루스는 새로운 인코딩 방식을 활용한다.
2.1.3 Red Stuff: Walrus
Walrus는 Red Stuff 인코딩을 통해 각 노드의 복구 비용은 O(B/n)으로, 네트워크 전체의 복구 비용은 총 O(B)를 달성할 수 있다. 이게 무슨 말인지 아래에서 더 자세히 살펴보자.
Walrus는 erasure-coding 기반의 탈중앙 스토리지 프로토콜이다. 누구나 Walrus와 상호작용하여 임의의 데이터를 저장하고, 데이터가 저장되어있다는 것을 증명할 수 있다. Walrus는 IPFS와 마찬가지로 그 자체로는 블록체인이 아니다. 다만, Walrus는 Sui 네트워크를 활용하여 스토리지 노드의 라이프 사이클 관리, blob의 라이프 사이클 관리, 인센티브 시스템 도입 등의 도움을 받는다.
Sui는 자체적인 컨센서스와 스마트 컨트랙트로 타 블록체인에 비해 굉장히 높은 확장성을 달성하였다. 하지만 그럼에도 불구하고 Sui가 트랜잭션 데이터 이외에 blob까지 취급하게되면 모든 노드가 거대한 용량의 blob을 복제하면 복제계수가 매우 커지기 때문에 비효율적이다. (복제계수란 기존 데이터 대비 전체 네트워크에 얼마나 복제되고 저장되어있는지를 의미한다.)
따라서 Walrus는 erasure-coding을 활용하여 blob을 슬리버라고 불리우는 작은 단위로 나누어 노드들에게 할당함으로서 4~5의 복제계수로도 큰 용량의 데이터를 탈중앙 프로토콜에 저장할 수 있도록 한다. 특히 Walrus는 기존 탈중앙 스토리지 프로토콜과 달리, Red Stuff라는 인코딩 방식을 활용하여 데이터 복구 비용도 획기적으로 감소시켰다는 장점이 있는데, Red Stuff라는 것은 무엇일까?
2.3.1 Encoding
Red Stuff는 RS 인코딩과 달리 blob을 2차원으로 인코딩한다. 이는 효율적인 슬리버 복구를 위함이다. 주 차원(primary dimension)에서 인코딩 하는 것은 RS-encoding과 비슷하게 B를 f+1개의 일차 슬리버(primary sliver)로 나눈다. Red Stuff는 여기에서 한 단계 더 나아가는데, 보조 차원(secondary dimension)에서 f+1개의 일차 슬리버를 각각 2f+1개의 이차 슬리버(secondary sliver)로 나눈다. 결과적으로 B는 (f+1) * (2f+1)의 행렬이 된다. 참고로 위 그림의 예시는 f=1임을 가정한 것이다.
이제 이 2차원 행렬을 기반으로 두 차원 모두에 복구 심볼(repari symbol)을 추가로 생성한다. (참고로 심볼은 슬리버보다 더 작은 데이터의 단위이다.) 먼저 2f+1개의 세로열의 심볼을 f+1에서 3f+1로 확장하고, 그 다음에 f+1개의 가로열의 심볼을 2f+1에서 3f+1로 확장한다. 여기서 각 행은 일차 슬리버, 각 열은 이차 슬리버로 설정된다.
B에 대한 커밋먼트는 쉽게 계산할 수 있는데, W는 추가적인 복구 심볼을 포함한 각 행과 열에 대한 커밋먼트를 계산한 다음, 이 모든 슬리버의 커밋먼트를 묶어서 blob 커밋먼트를 생성한다.
2.3.2 Write
Walrus 프로토콜에 데이터를 저장하는 과정은 기존 RS 인코딩을 사용하는 프로토콜들과 비슷하다. W는 Red Stuff로 원본 데이터를 인코딩하여 각 노드에 보낼 슬리버 쌍을 생성한다. 여기서 슬리버 쌍이란 일차 슬리버와 이차 슬리버의 쌍으로, 총 3f+1 슬리버 쌍이 생성된다.
이후 W는 3f+1개의 슬리버쌍과 슬리버 커밋먼트를 각각 3f+1개의 노드에게 전파한다. 노드들은 이를 받게 되면 커밋먼트를 통해 슬리버를 검증하고, 다시 W에게 서명을 보낸다. W는 2f+1개의 서명을 받으면 가용성 증명(availability certificate)를 생성하고, 이를 온체인(Sui 네트워크)에 퍼블리시 한다. 이는 f의 비잔틴 노드가 서명을 하여도, f+1개의 정직한 노드로부터의 서명이 있기 때문에 원본 데이터의 복구가 가능하기 때문이다.
2.3.3 Read
Walrus로부터 데이터를 읽는 과정도 기존 RS 인코딩을 사용하는 프로토콜과 동일하며, 일차 슬리버만 활용하면된다. R이 스토리지 노드들로부터 f+1개 이상의 타당한 일차 슬리버를 받으면 B를 복구하고 데이터를 읽을 수 있다.
2.3.4 Recovery
Red Stuff가 RS 인코딩과 비교하여 갖는 가장 큰 장점은 데이터 복구 과정에서 나타난다. 네트워크는 비동기 환경임을 가정하고, 또 노드는 자유롭게 들어왔다가 나갈 수 있기 때문에, W로부터 슬리버를 못 받는 노드들이 있을 수도 있다. 따라서 이들은 다른 노드들과 통신하여 슬리버를 복구해야 한다.
위 그림(f=1)을 통해 슬리버를 받지 못한 노드가 어떻게 데이터를 복구하는지 살펴보자.
a: 노드1이 첫 번째 슬리버쌍을, 노드3이 세 번째 슬리버 쌍을 온전히 보유하고 있고, 노드4가 네 번째 슬리버 쌍을 복구해야 하는 상황을 가정하자.
b: 노드1과 노드3은 4번째 슬리버쌍과 중복되는 심볼(S14, S34, S41, S43)을 노드4에게 전송한다.
c: 노드4는 네 번째 이차 슬리버에 f+1개 이상의 심볼을 가지고 있기 때문에, 이를 통해 네 번째 이차 슬리버를 복구할 수 있다. 이 논리를 확장하면, 2f+1개의 정직한 노드는 모두 이차 슬리버를 복구할 수 있다는 뜻이다.
d: 2f+1개의 노드는 모두 이차 슬리버를 가지고 있다는 뜻은, 각 행에 2f+1개의 심볼이 존재한다는 것이고, 이는 2f+1개의 심볼을 통해 모든 일차 슬리버를 복구할 수 있다는 것이다. 즉, 결론적으로 네트워크 내에 f+1개 이상의 노드가 슬리버를 가지고 있다면, 나머지 노드들은 이들과 통신하여 모든 슬리버를 복구할 수 있는 것이다.
심볼의 사이즈는 O(B/n^2)이고, 각 노드는 O(n)의 심볼을 다운로드 해야하기 때문에, 각 노드 당 복구 비용은 O(B/n)이다. 이를 네트워크 전체로 확장하면 모든 노드들이 슬리버를 복구하는 비용은 O(B)에 해당한다. 데이터를 복구하는 비용이 full replication 방식에서 O(n^2B), encode and share 방식에서 O(nB)임을 생각하면, Red Stuff 방식은 이를 O(B)의 비용으로 매우 효율적으로 처리할 수 있게 된다. 즉, 네트워크의 참여하는 노드의 수(n)와 상관없이 데이터 복구 비용은 일정하다.
Red Stuff는 데이터를 인코딩하는 하나의 방식이며, 이제 Red Stuff 및 Sui 네트워크와의 상호작용을 포함하여, Walrus에서 데이터의 저장이 어떻게 이루어지는지 큰 그림을 살펴보자.
Walrus에 데이터를 저장하고 싶은 사용자는 스토리지 리소스를 획득한다. 스토리지 리소스는 Sui 네트워크에 존재하는 Walrus system object 스마트 컨트랙트에서 직접 구매하거나, 이차 마켓에서 구매할 수 있다. 스토리지 리소스는 시작 에포크, 끝 에포크(디테일한 부분은 아래를 참조), 그리고 얼만큼의 용량을 저장할 수 있는지를 명시하고 있는, Walrus에 데이터를 저장할 수 있는 권한으로 이해하면된다.
스토리지 리소스를 획득한 사용자는 저장하고 싶은 blob에 Red Stuff 인코딩을 적용하고, blob ID를 연산한다. 이후 과정은 직접 수행하거나 네트워크에 존재하는 퍼블리셔들이 대신 수행할 수 있다.
사용자는 스토리지 리소스에 blob ID를 등록하기 위해 Sui 네트워크의 스토리지 리소스를 업데이트하여 이벤트를 발생시킨다.
사용자는 blob 메타데이터를 모든 스토리지 노드들에게 전파하고, 각 슬리버들도 분산하여 각 노드들에게 전송한다.
스토리지 노드들은 슬리버를 받고 blob ID는 정확한지, 슬리버를 전송한 사용자가 적절한 스토리지 리소스를 가지고 있는지 확인한다(메타데이터가 블롭 ID와 매칭되는지, 그리고 슬리버들이 메타데이터와 일치하는지등을 증명한다). 타당하다고 판단될 경우 스토리지 노드들은 해당 슬리버에 대한 서명을 사용자에게 전달한다.
사용자가 2f+1개 이상의 서명을 받게 되면 가용성 증명(availability certificate)을 생성하고, 이를 Sui 네트워크에 전송한다. 이 시점부터 해당 blob은 모두에게 가용가능하다는 PoA(point of availability) 상태가 Sui 네트워크에 업데이트된다.
만약 PoA를 확인했는데도, 그 blob에 대한 슬리버를 받지 못한 스토리지 노드들이 있다면, 이들은 다른 스토리지 노드들과 싱크하여 슬리버를 복구할 수 있다.
참고로 Walrus 프로토콜에는 일정 기간의 epoch 개념이 있어, epoch마다 참여하는 스토리지 노드 셋이 변경된다. Epoch마다 위임된 WAL 토큰에 따라 스토리지 노드들이 할당받는 데이터의 양은 달라진다. 또, epoch마다 참여하는 노드가 달라질 수 있기 때문에, 필연적으로 노드들이 epoch가 바뀔 때마다 슬리버를 전송하는 과정이 필요하다.일반적인 경우에는 슬리버들이 복구 과정을 거치지 않고 이전 노드에서 새로운 노드로 직접 전송된다.
하지만 만약 데이터가 너무 많아 슬리버 전송 시간이 epoch보다 길게되면 epoch가 끝나지 않는 현상이 발생할 수 있다. 이를 방지하기 위해 Walrus는 epoch가 끝나기 직전에 데이터의 저장(write)과 불러오기(read) 프로세스를 다른 epoch로 분리한다.
즉, epoch가 바뀌면서 노드 변경(reconfiguration) 과정이 시작되면, 이 때부터 데이터 저장과정은 다음 epoch에서 진행되며, 데이터 읽기 과정은 여전히 현재 epoch에서 진행된다. 다음 epoch의 새 위원회에 2f+1개 이상의 노드가 슬리버 복구가 모두 준비되었다고 하면, read 작업도 다음 epoch로 넘어가는 방식으로 부드럽게 전환이 일어난다.
Walrus에 어떤 유즈 케이스가 있는지 살펴보자.
Decrypt는 웹3 전문 미디어 컴퍼니로, 올해 9월 Token 2049 행사에서 그들의 아티클 및 영상을 Walrus에 저장할 계획을 발표했다. Decrypt가 Warlus를 활용하여 얻을 수 있는 장점은 다음과 같다:
진위성: 미디어 컴퍼니로써 컨텐츠의 진위성을 보장하는 것은 중요하다. Decrypt는 Walrus에 컨텐츠를 저장함으로써 진위성을 확보할 수 있다.
영속성: Pew Research Center에 따르면 2013년부터 2023년 사이의 온라인 컨텐츠 중 1/3 이상이 소실되었다고 한다. Decrypt는 Walrus에 컨텐츠를 저장함으로써 오랜 시간이 지나도 컨텐츠를 유지할 수 있다.
수익성: Walrus는 Decrypt의 컨텐츠와 dApps 사이의 상호운용성을 촉진함으로써 Decrypt가 그들의 컨텐츠로 쉽게 수익화할 수 있도록 하는 계획을 세우고 있다. 예를들어 Walrus에 암호화된 미디어를 저장하고, 구독료를 지불한 사용자에게만 복호화 키를 제공하여 컨텐츠에 접근할 수 있도록 할 수 있다.
Walrus Sites는 Sui와 Walrus를 기반으로 하는 탈중앙 프론트엔드 웹사이트이다. 웹사이트의 기본이 되는 html, css, javascript, images와 같은 소스들은 Walrus에 저장되며, 이에 대한 엔트리 포인트는 Sui에 객체(object)로 저장된다. 이 객체는 웹사이트의 메타데이터를 포함하고, 웹사이트 소스가 저장되어있는 blob의 ID를 가리킨다.
재밌는 것은 Walrus의 docs는 이미 Walrus Sites의 예시로, Walrus에 의해 호스팅되고 있다. 또한, Walrus에선 Walrus Sites의 예시로 Sui 테스트넷에서 Flatland NFT를 제공하고 있다. Flatland는 Sui 위의 NFT 콜렉션으로, Walrus로부터 호스팅되는 프론트엔드에서 민팅할 수 있고, 각 NFT는 고유의 개인화된 Walrus Site를 가지고 있다.
DA 레이어: Walrus는 임의의 파일을 저장하는 것 이외에도, erasure coding 방식을 활용하기 때문에 롤업 네트워크의 트랜잭션 데이터도 안전하게 저장할 수 있다. 즉, Walrus는 Celestia, EigenDA, Avail 등과 같은 DA 레이어의 역할을 할 수 있다.
AI: AI 모델의 훈련에 사용된 클린 데이터, AI 모델의 가중치 등 AI 모델의 훈련과 추론에 있어서 진위성이나 투명성이 필요한 데이터 등을 저장할 수 있다.
블록체인 히스토리: 확장성이 빠른 블록체인 네트워크의 경우 블록체인의 히스토리를 제네시스 블록부터 다 관리하는 것이 매우 어려울 수 있다. 적절한 안전장치만 마련할 수 있다면, 이러한 블록체인들의 경우 Walrus가 블록체인 히스토리의 아카이브 역할을 수행할 수 있다.
(Source: Walrus)
참고로 현재 누구나 Walrus 테스트넷에 임의의 파일을 저장해볼 수 있다. 저장한 blob도 blob ID로 검색해볼 수 있으니, Walrus를 체험해보고 싶은 독자는 한 번 시도해보는 것을 추천한다. 현재 Walrus는 데브넷임에도 불구하고, 무려 24 TB에 달하는 데이터를 성공적으로 저장했다.
최근 Sui 생태계는 엄청난 관심을 받으며 굉장히 빠른 속도로 성장하고 있다. 이는 Sui가 이전부터 Move on Sui, Deepbook, zkLogin, SuiNS 등 어플리케이션 친화적인 영역과, Narwhal, Bullshark, Mysticeti 등 인프라 영역까지 지속적으로 혁신을 해왔기 때문이라고 생각한다. Walrus 또한 이러한 Sui의 방향성의 중 하나이며, Sui 네트워크 자체적으로 감당하기 어려운 blob 스토리지 문제를 오프체인에서 해결함으로써 Sui 생태계에 더욱더 다양한 어플리케이션의 활용을 가능하게 해줄 것이다.
더욱이, Walrus는 Sui 네트워크와 매우 긴밀한 관계를 가지게 될 것이나, 이는 분명히 특정 블록체인에 의존하지 않는 별도의 프로토콜이다. 따라서, Walrus가 단순한 데이터 저장소로서의 역할뿐만 아니라 롤업을 위한 DA 레이어로서도 잠재적으로 기능할 것으로 예상된다. 나아가, 다른 블록체인 생태계의 프로토콜들이 Walrus를 자신들의 스토리지 레이어로 활용할 수 있으므로, Walrus가 Sui 생태계를 넘어서 중요한 역할을 할 것으로 전망된다.
앞으로 월루스가 어떠한 스토리지 레이어로 시장에 자리매김하게될지 그 귀추가 매우 주목된다.