[케블리]#36. IPFS(InterPlanetary File System)이해하기 3부 / IPFS와 SWARM

in #kr7 years ago

#36. IPFS(InterPlanetary File System)이해하기 3부 / IPFS와 SWARM



SWARM은 이더리움 블록체인 상의 분산 저장 플랫폼입니다. ‘분산 저장’은 모든 정보가 서버에 저장되는 기존의 중앙화된 저장 방식과 구분되어 사용되는 용어입니다. 서버 중심의 중앙 저장 방식의 문제점에 대해서는 여러번 살펴 보았으므로, 이번 포스팅에서는 IPFS와 SWARM 두가지 프로젝트를 비교해보도록 하겠습니다.


1. IPFS와 SWARM의 공통점


  • 인센티브 구조를 설계하여 참여 노드들로 하여금 네트워크 상에서 저장(Storage) 혹은 검색(Retrieval) 역할을 하도록 장려한다 : Filecoin 상에서는 저장 및 검색 시장에서 저장 마이너와 검색 마이너가 해당 역할 수행, SWARM 상에서는 Bandwidth Incentives, Storage Incentives에 따라 참여 노드들이 역할 수행(특별한 명칭 부재)

  • 용량이 큰 파일을 여러 블록으로 쪼개서 저장하는 방식을 사용한다 : 블록으로 쪼개어 저장하므로 동시에 여러 블록을 받을 수 있다. Bittorrent 방식의 파일 교환이 가능하다는 의미입니다. 즉, 어떤 노드가 용량 큰 파일을 받고자 할 때, 해당 파일을 보유한 여러 노드가 동시에 부분 별로 나누어 보내줄 수 있습니다 - 파일이 여러 블록으로 쪼개져 있기 때문!

  • Content-addressing을 통해 파일의 무결성을 확인할 수 있다.

  • 모두 URL 형식, 그리고 DNS 솔루션을 갖고 있다 : IPFS는 IPNS를 통해, SWARM은 ENS(Ethereum Name Service)

  • 파일이 투명하고 효율적으로 저장되도록 구현한다는 목표


2. IPFS와 SWARM 상세(차이점)


위의 공통점들을 보면 IPFS와 SWARM이 매우 유사한 프로젝트임을 확인할 수 있습니다. 구체적인 사항들을 비교 분석하여 둘의 차이점을 확인해보도록 하겠습니다.


저장(Storage; 파일 저장하기)

(주의할 점)저장은 일시적인 것이 아니라, 일정 시간동안 계속되어야 합니다. 따라서 저장 서비스 제공자(혹은 저장 마이너)가 계속 잘 하고 있는지 확인해야 합니다.

Filecoin
저장소 시장은 블록체인 기반의 Orderbook 형태로 운영됩니다. 저장소 마이너와 클라이언트는 각각 주문을 생성하여 Orderbook(블록체인)에 전송하여 기록합니다. 예를 들어 저장소 마이너(A)는 “00TB의 저장소를 00기간 동안 00Filecoin에 빌려드립니다”, 클라이언트(B)는 “00TB의 저장소를 00기간 동안 00Filecoin에 빌리고자합니다”인 것입니다. 주문이 생성되어 블록체인에 기록될 경우, 저장소마이너(A)의 저장소는 예약되며, 클라이언트(B)의 fund는 예치됩니다. 즉 A,B는 자신이 주문에 올린 만큼 더이상 마음대로 할수 없는 것입니다. 주문이 매칭되면 양 당사자는 공동으로 Deal Order에 서명하고 블록체인에 기록합니다.

저장소 마이너가 제대로 일을 이행하고 있는지는 어떻게 확인할까요? SWARM과 달리 Filecoin에서는 저장소 마이너가 ‘지속적으로 저장증명을 생성’하여 불시의 검문(challenge)에 대응하도록 설계했습니다. 이를 Proof-of-Spacetime이라고 명명하였습니다.

SWARM
SWAP(SWarm Accounting Protocol)
SWAP은 Peer 간의 서비스 제공 내역을 기록하고 서비스에 대하여 보상하는 프로토콜입니다. SWAP에 따라서 노드들은 장기 저장 계약을 체결합니다.

SWEAR(Secure Ways of Ensuring Archival or SWarm Enforcement And Registration)
SWARM 상에서 저장소를 대여하기 위해서는 우선 SWARM에 등록(registration)하고, 의무적으로 일정량의 Ether를 디파짓으로 걸어두어야 합니다. 즉, 내가 만약 저장 의무를 소홀히 하였을 경우, 손해를 본 노드에게 얼마까지 보상할 수 있음을 알리는 것입니다. 보험과 같은 개념이라고 생각하면 될 것입니다. 디파짓에 남아있는 잔고는 마치 해당 서비스 제공자의 평판(reputation)으로 역할합니다. 누군가 저장 의뢰를 하면, 저장 서비스 제공자는 서명된 영수증(signed receipt, 보관증이라고 이해하면 좋을 것 같음)을 주는데, 이는 추후에 SWEAR contract 상에서 보험액을 수령할 수 있는 키 역할을 합니다.

SWINDLE(Secured With INsurance Deposit Litigation and Escrow)
저장 서비스 제공자가 제대로 저장을 하지 않고 있거나, 해당 파일이 SWARM 상에서 발견되지 않을 때 challenge를 통해 제보할 수 있습니다. SWINDLE로 거래를 전송하는 형식으로 이루어지며, 보관증을 갖고 있다면 누구나 할 수 있습니다. 만약 저장 서비스 제공자가 반증(Refutation)하지 못하면 상응하는 처벌을 받게 됩니다.


평가 :

확실히 Orderbook 형식의 Filecoin이 광범위한 마켓플레이스를 제공한다는 점에서 좋아보입니다. 블록체인에 기록함으로써 누구나 수요와 공급을 확인할 수 있기 때문입니다. 이에 비해, 제가 이해한 바로는 SWARM은 지극히 P2P 수준에 남아 있습니다.

SWARM은 확실히 저장 서비스 제공자가 의무를 해태했을 때, 명확하게 SWEAR와 SWINDLE의 이중 구제 구조를 갖추고 있습니다. Filecoin에서는 오로지 검문(challenge)밖에 없습니다. 하나로도 충분해 보이지만, 검문 대응에 실패하였을 때(즉 저장증명을 생성하지 못했을 때) 어떻게 되는지에 대한 시나리오가 궁금합니다.


검색(Retrieval; 파일 받아오기)

주요 사항1(공통점) 검색은 자신의 Bandwidth를 사용하여 클라이언트에게 파일을 전송하는 ‘서비스’- 물론 직접 검색해도 되지만, 찾기 어려운 파일일 경우, 인터넷이 느린 지역, 빠른 파일 전송을 원하는 클라이언트들이 검색 서비스를 구매할 것 - 저는 파일노리 서비스와 비슷하다고 이해하고 있습니다.

주요 사항2(공통점)매 검색 마다 스마트 컨트랙트 형식으로 검색비용을 청구하면 지연 요소(latency; 블록 채굴 시간까지 기다려야하는 등)가 발생. 이 경우, 파일 전송이 매우 느려질 것. 따라서 off-chain으로 구현

Filecoin - offchain Orderbook과 Micropayment Channel
offchain으로 설계되어 모두가 공유하는 Orderbook이 존재하지 않습니다. 따라서 각자가 peer들에게 가십(gossiping)하여 서로 설정한 가격대에 따라 매칭됩니다. 검색 마이너는 클라이언트와 micropayment channel를 열고, 파일의 일부분을 보내줄 때마다 클라이언트로부터 영수증을 받아옵니다. 파일 전송이 끝나면 블록체인에 기록하므로써 대가를 수취합니다.

SWARM- Bandwidth Incentives/ SWAP(Swarm Accounting Protocol)
앞서 언급했듯이, SWAP은 Peer 간의 서비스 제공 내역을 기록하고 서비스에 대하여 보상하는 프로토콜입니다. 검색의 경우 사용된 Bandwidth에 대한 보상을 의미하겠죠. 각각의 노드는 다른 노드와의 서비스를 주고받고 그 내역을 기록합니다. 기록하기 위해서는 우선 Chequebook을 서로 나누어 가져야 하는데요, 예를 들어 A가 B에게 검색 서비스를 10회 제공하고, 5회 제공 받았으면, 정산하면 -5회로 적자 상태입니다. SWARM은 각 노드가 균형 상태(0;balance)에 머무는 것을 이상적이라고 생각합니다. 따라서 일정 임계치에 도달하면 결제를 하도록 하고, 결제를 하지 않고 임계치를 초과할 경우 차단(Disconnect)되는 구조로 설계하였습니다. 이 때 결제 방식은 bzz protocol(offchain), 스마트 컨트랙트(안전성이 우선이라면 onchain), 또는 payment channel를 통해서 가능합니다.


평가 :

SWARM의 특징은 모든 서비스를 토큰으로 결제하지 않는다는 것입니다. 어느정도 서로 상부상조를 하다가, 일정 수준을 넘어서 받기만 한 노드는 상대방에게 결제해야 하는 구조입니다. 굳이 이런 이원적인(서비스 물물교환과 결제)구조를 선택한 이유를 모르겠습니다. 물론 이 구조는 결제를 꺼리는 신규 이용자들의 유입을 증대시킬 수는 있을 것입니다. 그러나 이 구조는 무엇보다도 복잡하며, 특정 peer와의 관계를 계속 염두에 두어야 한다는 것이 최대 단점입니다. 차라리 서비스 교환 관계를 완벽하게 배제하고, 오로지 모든 서비스에 결제를 하는 구조가 더욱 깔끔해 보입니다.

두 방식 모두 분산 저장이 기능을 극대화 할 수 있는 Bittorrent 방식을 반영하지 않았습니다. P2P 검색 만을 고려했을 뿐이지, 해당 파일을 빠르게 전송받고자 할 때, 누구에게 어떻게 보상할 것인지가 반영되지 않은 구상입니다.


3. 사견(마치며)


IPFS는 전 세계 인터넷 유저를 대상으로 한 인터넷 프로토콜 개선안입니다. 이더리움 네이티브인 SWARM 프로젝트와는 그 타겟 규모를 비교할 수 없습니다. 또한 IPFS는 인센티브 체계를 구축하기 위하여 자체 블록체인인 Filecoin ICO를 마친 상태입니다. 이더리움과 달리 Filecoin은 분산 저장과 최적화된 컨센서스 알고리즘을 구상중입니다. 실사용되는 저장 공간(Storage)을 많이 제공한 노드일수록, 블록을 채굴하여 채굴보상을 획득할 확률이 높아집니다. 즉, 기반 블록체인과 플랫폼이 제공하는 서비스가 완벽한 조화를 이루는 것입니다.

겉보기에는 SWARM이 이더리움에 특화되어있다고 생각할 수 있지만, 언제든지 대체될 수 있는 분산 저장 솔루션일 뿐입니다. 같은 역할을 할 수 있다면, 언제든지 다른 분산 저장 플랫폼이 그 자리를 차지할 수 있습니다. 이전 포스팅에서 Filecoin의 Bridge에 대해서 언급하였듯이, IPFS의 확장성을 실현하기 위한 고민이 계속되고 있으며, 이는 SWARM의 향후 위치를 위태롭게 합니다.

SWARM 개발진은 이 링크[https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM]에서 직접 IPFS와 SWARM의 차이점을 분석하여 밝히고 있습니다. IPFS와 SWARM의 공통점을 참고한 글이기도 합니다. SWARM 개발진이 직접 말하는 IPFS와의 차이점을 확인하시고 싶으신 분은 읽어보시기를 권유합니다 : )



Source:
Filecoin Whitepaper https://filecoin.io/filecoin.pdf
Viktor Trón, Aron Fischer, Daniel A Nagy and Zsolt Felföldi: swap, swear and swindle: incentive system for swarm http://swarm-gateways.net/bzz:/theswarm.eth/ethersphere/orange-papers/1/sw%5E3.pdf
IPFS VS SWARM https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM
https://ethereum.stackexchange.com/questions/375/what-is-swarm-and-what-is-it-used-for

Sort:  

이해하는 데 엄청난 시간이 필요할 듯 하네요..ㅎ

좋은 글 잘 읽었습니다~ 감사합니다. 전반적으로 IPFS에 대한 글들은 많은데 SWARM과의 분석글은 처음 보네요.