Team Research & Analysis thuộc FXCE Ventures liên tục tổ chức các buổi In-house Workshop về các chủ đề xoay quanh crypto và blockchain. Chương trình nhằm mục đích trao đổi, thảo luận và nâng cao hiểu biết cho toàn bộ đội ngũ, song hành với sự phát triển của công ty. FXCE cũng chia sẻ nội dung hữu ích từ chuỗi chương trình này đến cộng đồng một cách dễ hiểu hơn thông qua các Workshop Recap.
Nội dung của buổi Workshop xoay quanh Storage Layer – thành phần cốt lõi làm nên thành công của Web 3.0 hay là web 3 trong tương lai. Nếu bạn đã tham gia hay có tìm hiểu thị trường crypto và blockchain nói chung và về mảng infrastructure nói riêng, chắc hẳn bạn đã nghe qua kha khá về web 3. Hay tiếp cận một cách đơn giản hơn, có một thuật ngữ khá phổ biến từ nhiều năm nay – internet of things hay internet vạn vật. Đây chính là mục tiêu mà web 3 đang hướng đến.
Nhìn chung, web 3 sẽ cho phép tất cả các thiết bị kết nối với Internet và người dùng hoàn toàn kiểm soát dữ liệu cá nhân. Một trong ba thách thức lớn nhất của web 3 chính là việc lưu trữ dữ liệu trên blockchain. Và Storage Layer là thành phần quan trọng giúp Web 3.0 vượt qua được thách thức về lưu trữ dữ liệu.
Web 3.0 và các vấn đề đặt ra
Hạn chế của web2
Như mọi người đã biết, kiến trúc của web2 gồm 3 phần chính như hình dưới đây.
Hoạt động của Web 2. Nguồn preethikasireddy.com
- Database: Nơi lưu trữ tất cả dữ liệu của trang web như thông tin đăng nhập, nội dung trang web, v.v.
- Back-end: Được viết bằng ngôn ngữ lập trình như php/java/node.js/python/.net; Xử lý các nghiệp vụ của trang web như kiểm tra thông tin đăng nhập, xử lý nội dung người dùng trên trang web, v.v.
- Front-end: Thường được viết bằng JavaScript, HTML và CSS; Xác định logic giao diện người dùng, giúp cho người dùng tương tác với trang web
Vấn đề lớn nhất của Web 2.0 đó là tính tập trung. Thông tin bị kiểm soát bởi tổ chức cung cấp các trang web, quyền riêng tư của người dùng cũng bị phá vỡ và nhiều thông tin bị lạm dụng. Internet là để chúng ta sử dụng, nhưng chúng ta không phải là chủ nhân của nó. Có một số quốc gia mà Internet bị ngăn cách một phần, bị hạn chế hoặc bị chặn hoàn toàn. Điều này thôi thúc sự ra đời của Web 3.0.
Kiến trúc Web 3.0
Web 3.0 là một bước nhảy vọt về công nghệ, giải quyết được các vấn đề của web2 bằng tính phi tập trung, không có trung gian và tạo điều kiện cho tất cả mọi người.
- Open: Xây dựng từ phần mềm mã nguồn mở, được xây dựng bởi một cộng đồng các nhà phát triển mở, có thể truy cập được và thực thi trước khả năng giám sát đầy đủ của cả thế giới.
- Trustless: Mạng cho phép người tham gia tương tác công khai hoặc riêng tư mà không cần bên thứ ba đáng tin cậy.
- Permissionless: Bất kỳ ai, cả người dùng và nhà cung cấp, đều có thể tham gia mà không cần cơ quan quản lý cho phép.
Hoạt động của Web 3. Nguồn preethikasireddy.com
Cụ thể, trên web 3, Database sẽ được lưu trữ trên các block trong blockchain. Back-end sẽ được thay thế và xử lý bằng smart contract. Front-end cũng giống với web2 giúp người dùng tương tác với trang web.
Công nghệ blockchain đã khiến các ứng dụng Web 3.0 đặc biệt hơn cả. Nó loại bỏ đi back-end: không có cơ sở dữ liệu tập trung nào lưu trữ dữ liệu của ứng dụng, và không có máy chủ tập trung nào xử lý logic nghiệp vụ của ứng dụng. Thay vào đó, ta có thể tận dụng blockchain để xây dựng app trên một state machine phi tập trung, duy trì bởi các node ẩn danh trên internet. Không một ai có thể kiểm soát state machine phi tập trung này vì nó được duy trì chung bởi tất cả mọi người trong mạng.
Thách thức phát triển web 3
Lưu trữ trên Blockchain
Mỗi block chỉ có thể lưu trữ vài kilobyte và mỗi dữ liệu đã được lưu thì rất khó có thể thay đổi. Việc lưu trữ mọi thứ trên blockchain trở nên thực sự tốn kém. Người dùng phải trả tiền mỗi khi họ thêm dữ liệu mới vào blockchain. Vì khi thêm một trạng thái vào state machine phi tập trung, chi phí cho các node đang duy trì state machine đó sẽ tăng lên. Việc người dùng trả thêm tiền để sử dụng DApp mỗi khi phát sinh giao dịch không là trải nghiệm tốt cho người dùng.
Một cách để khắc phục vấn đề này là sử dụng giải pháp lưu trữ ngoài chuỗi phi tập trung, như IPFS hoặc Swarm.
Lưu trữ dữ liệu trên Web 3.0 – Nguồn preethikasireddy.com
Truy vấn dữ liệu trên Blockchain
Web 3.0 mặc định sẽ sử dụng Web3.js – thư viện truy vấn từ front-end và lắng nghe sự kiện từ smart contract (ví dụ: swap). Vấn đề ở đây là khi nhà phát triển cần cập nhật chức năng, hay các sự kiện mới thì họ phải triển khai lại smart contract. Ngoài ra, để chạy được trên blockchain thì smartcontract sẽ phải biên dịch thành dạng bytecode, tức là mỗi cập nhật đều phải được biên dịch lại để chạy trên EVM.
Một giải pháp nổi tiếng cho vấn đề này là The Graph, thực hiện index dữ liệu của blockchain và sau đó thực hiện truy vấn bên ngoài blockchain. Điều này sẽ giúp truy vấn dữ liệu trên blockchain trong logic ứng dụng nhanh hơn.
Truy vấn dữ liệu trên Web 3.0 – Nguồn preethikasireddy.com
Khả năng mở rộng dApp
Việc xây dựng DApp trên Ethereum với phí gas cao và luôn quá tải block dẫn đến trải nghiệm người dùng rất tệ. Một giải pháp mở rộng phổ biến là L2, ví dụ như Polygon. Thay vì thực hiện các giao dịch trên blockchain chính, Polygon có các sidechain xử lý và thực thi các giao dịch. Sidechain là một blockchain thứ cấp giao tiếp với blockchain chính. Sidechain gửi tổng hợp các chuỗi đã được xử lý của nó trở lại chuỗi chính.
Cách sidechain kết nối với blockchain – Nguồn preethikasireddy.com
Các ví dụ khác về các giải pháp L2 là Optimistic Rollups và zkRollups. Giải pháp sẽ thực hiện hàng loạt các giao dịch ngoài blockchain bằng cách sử dụng rollup smart contract, sau đó, định kỳ gửi các giao dịch này cho chain chính. Điều này cũng làm cho các giao dịch nhanh hơn và rẻ hơn – và chúng vẫn có thể giao tiếp với blockchain Ethereum chính khi cần thiết.
Giải phải mở rộng trên Web 3.0 – Nguồn preethikasireddy.com
Như vậy, một trong ba thách thức lớn nhất của Web 3.0 chính là việc lưu trữ dữ liệu trên blockchain. Phần tới, chúng ta sẽ cùng đi tìm hiểu về Storage Layer, thành phần quan trọng giúp Web 3.0 vượt qua được thách thức về lưu trữ dữ liệu.
Hỏi đáp
Câu 1: Web 3.0 có một số hạn chế như khi dữ liệu ngày càng nhiều thì tốc độ xử lý chậm lại và chi phí sẽ ngày càng tăng. Có giải pháp gì để khắc phục các hạn chế này hay không?
Đây là một bài toán rất lớn của blockchain. Team đánh giá có 2 loại dữ liệu: dữ liệu on-chain và dữ liệu có thể xử lý off-chain. Với dữ liệu on-chain, vì nó lưu dưới dạng sổ cái, tất cả các node đều có cùng cơ sở dữ liệu, nên việc scale là rất khó. Vì thế, khi phát triển các dapp, đội dự án phải xác định vô cùng rõ ràng dữ liệu nào xử lý on-chain, dữ liệu nào xử lý off-chain.
Hiện đa số các dự án, đặc biệt là về game, họ đang lưu trữ và xử lý các dữ liệu như hình ảnh, âm thanh, v.v. ở server local, như truyền thống hiện tại. Nó có nhiều cái rủi ro liên quan đến mất mát dữ liệu và không minh bạch, đặc biệt là NFT trong game. Để giải quyết thì dự án có thể đẩy dữ liệu lên các mạng lưới storage layer. Off-chain hiện tại có một số dự án như Filecoin, Arweave sử dụng decentralized storage (lưu trữ dữ liệu phi tập trung), cụ thể sẽ được trình bày ở các phần sau.
Ngoài ra, trong tương lai, chúng tôi cũng tin rằng sẽ có nhiều giải pháp tối ưu hơn nữa ra đời. Ví dụ như Solana cũng đang phân tầng dữ liệu, xem dữ liệu nào nên được xử lý ở mức nào, dù chưa tối ưu nhưng đây cũng là một giải pháp ở hiện tại.
Như vậy, giải pháp lưu trữ bên ngoài blockchain sẽ có tiềm năng giảm chi phí về lưu trữ. Về xử lý thì sẽ có giải pháp L2 như Polygon, xử lý giao dịch bên ngoài blockchain để giao dịch nhanh hơn và giảm thiểu chi phí. Ngoài ra nhiều dự án cũng index dữ liệu về subgraph và chạy node để khi mạng nghẽn thì có node bên ngoài hỗ trợ query. Đây cũng là một cách để tăng tốc độ query dữ liệu web 3. Hiện cũng có một số dự án nổi tiếng liên quan đến mảng này như The Graph hay một cái tên khác được team giới thiệu gần đây là BwareLab.
Câu 2: Trend về các social token có tiềm năng khi mà Web 3.0 thành công hay không? Và đây có phải là một xu hướng bền vững hay không?
Thứ nhất, Social token có khả năng là một trạng thái mass adoption khác của blockchain. Mass adoption đầu tiên và đang hiện hữu của blockchain là NFT. NFT thu hút rất nhiều người dùng non-blockchain vào thị trường này, từ các game thủ truyền thống đến nhà đầu tư vào farm token. Social token, về cơ bản nếu nó thành công, sẽ đưa được rất nhiều người dùng truyền thống vào blockchain, như fan của các KOL hay CLB bóng đá, v.v.
Thứ hai, về công nghệ, các cơ sở hạ tầng trong blockchain đã cơ bản đầy đủ để phát triển dự án về social đơn giản như computing tức là layer 1 có thể xử lý được, các hệ thống lưu trữ tập trung, v.v. Nhìn chung, social token hoàn toàn có thể làm nên chuyện trong tương lai gần, chẳng hạn như trở thành trend trong năm 2022.
Buổi workshop nội bộ sâu hơn về social token sẽ diễn ra trong thời gian tới, và nội dung cũng sẽ được chia sẻ lại với cộng đồng dưới dạng Recap. Nếu bạn là fan hay quan tâm đến lĩnh vực này thì đừng quên theo dõi series Workshop Recap của FXCE Research Hub nhé!
Câu 3: Hiện đang có các hệ sinh thái hướng đến web 3 nổi bật như Polkadot, Solana, Avax và sẽ có nhiều hệ sinh thái mới sinh ra. Liệu các hệ sinh thái này có triệt tiêu nhau hay không?
Các hệ sinh thái này bề ngoài có thể được đánh giá là đối thủ với nhau, cạnh tranh người dùng trực tiếp.
Nhưng đồng thời, hiện nay có đến hơn 100 mạng blockchain công khai, nó không chỉ là Polkadot, Solana hay Avax. Trạng thái sắp tới của blockchain hướng tới xu hướng multi-chain. Trong hơn 100 blockchain này, có một số blockchain nổi tiếng như Ethereum, Bitcoin, Solana, Polkadot. Các chain hoạt động độc lập với nhau, dapp hoạt động trên các “hòn đảo” cô lập không tương tác được với nhau.
Trong tương lai, nó sẽ phải có giải pháp kết nối để dapp ở blockchain này có thể tương tác, trao đổi với dapp ở blockchain khác. Song song đó chính là cross-chain, bạn có thể tìm hiểu tại bài viết Workshop Recap về chủ đề cross-chain. Do vậy, tương lai, các blockchain này có khả năng đi cùng nhau, cùng phát triển multi-chain, để đáp ứng được người dùng trong cuộc sống hàng ngày và tạo mass adoption.
Storage Layer – Lưu trữ dữ liệu phi tập trung
Lưu trữ dữ liệu tập trung
Lưu trữ tập trung (centralized storage) đã quá quen thuộc với chúng ta. Bắt đầu bằng USB, HDD, SAN, v.v., đến sau khi có internet ra đời, ta có những dịch vụ lưu trữ cá nhân như Dropbox, Google Drive, iCloud. Với máy chủ thì ta có các cloud storage như Google Firestore, AWS S3, Azure Blob, v.v.
Vấn đề tồn tại của việc lưu trữ dữ liệu tập trung là các vụ hack (ví dụ tài khoản login của 68 triệu người dùng Dropbox bị hack vào năm 2016) hay tấn công từ chối dịch vụ (ví dụ các vụ tấn công DDoS có thể khiến bạn và hàng triệu người khác không truy cập được dữ liệu).
Ngoài ra, chi phí lưu trữ cũng rất cao, đồng thời, cũng tăng chi phí bảo mật dữ liệu vì lưu trữ tập trung dễ bị tấn công hơn. Người dùng không toàn quyền sở hữu dữ liệu cá nhân của mình. Vấn đề giám sát và kiểm duyệt có thể thấy rõ khi một số nhà mạng ở các quốc gia chặn các trang web nhất định.
Lưu trữ dữ liệu phi tập trung
Vì những vấn đề nêu trên nên, lưu trữ phi tập trung đã ra đời. Lưu trữ phi tập trung có nghĩa là các tệp được lưu trữ trên nhiều máy tính (được gọi là các node) trên một mạng phi tập trung. Các tệp được mã hóa, chia nhỏ và lưu thành nhiều bản trên các node trong mạng.
Ưu điểm khi lưu trữ dữ liệu phi tập trung:
- Chi phí lưu trữ thấp: Với hàng triệu node có khả năng lưu trữ dữ liệu, dung lượng lưu trữ khả dụng sẽ cao hơn đáng kể. Điều này tốn chi phí thấp hơn đáng kể so với các nền tảng lưu trữ đám mây tập trung hiện có.
- Giá hợp lý: Do sự cạnh tranh liên tục giữa các node (thực tế là chỉ các node chất lượng cao mới tồn tại trong cuộc cạnh tranh này), nên có thể đạt được giá cân bằng.
- Tốc độ nhanh hơn: Mô hình máy khách-máy chủ truyền thống thường dẫn đến tắc nghẽn mạng nếu lưu lượng truy cập lớn hơn khả năng xử lý của mạng. Bằng công nghệ P2P và loại bỏ một máy chủ trung tâm, nhiều bản sao được lưu trữ trên các node khác nhau. Do đó, nhiều bản sao dữ liệu khả dụng hơn, giúp tốc độ tải xuống nhanh hơn.
- Bảo mật và quyền riêng tư cao hơn: Dữ liệu không chỉ được mã hóa, sau đó còn bị phân mảnh và phân chia giữa các node tham gia, không ai có thể truy cập vào dữ liệu của bạn hoặc biết bạn đang lưu trữ những gì.
- Giảm thiểu khả năng mất dữ liệu: Với hàng triệu node tiềm năng tham gia, nếu có lỗi đường truyền, các bản sao dữ liệu của bạn có thể được lưu trữ bổ sung.
Phương thức hoạt động
Lưu trữ tệp trên hệ thống lưu trữ phi tập trung. Nguồn Leeway Hertz
Người dùng tải file tới hệ thống lưu trữ phi tập trung. File được mã hóa bằng một băm duy nhất hoặc với các private/public key. Hệ thống lưu trữ dựa trên blockchain chia file đã mã hóa thành nhiều phần dữ liệu nhỏ, được gọi là block. Sau đó, các block được phân phối và lưu trữ trên nhiều máy tính hay là các node.
Tải tệp từ hệ thống lưu trữ phi tập trung. Nguồn Leeway Hertz
Khi người dùng truy xuất file, tất cả các phần dữ liệu sẽ được lấy từ các node và gộp thành một file. Người dùng giải mã và có thể tải file về sau đó.
Lưu trữ dựa trên blockchain phi tập trung mang đến cơ hội cho bất kỳ ai sở hữu dung lượng ổ cứng chưa sử dụng và kết nối mạng ổn định. Họ có thể kiếm thu nhập thụ động bằng cách trở thành một node lưu trữ. Nhiều nền tảng khác nhau như Filecoin, Sia, MaidSafe và Storj cho phép người dùng tham gia vào mạng lưu trữ phi tập trung.
Phân loại dự án
Theo team FXCE Research Hub, có 04 điều quan trọng nhất khi đánh giá một hệ thống lưu trữ phi tập trung cho Web 3.0 như sau.
Cơ chế bền bỉ và Cấu trúc khuyến khích
Để dữ liệu tồn tại mãi mãi, ta cần sử dụng persistence mechanism (cơ chế bền bỉ).
Ví dụ, trên Ethereum, để khởi tạo một node mới cần sao chép lại tất cả dữ liệu. Dữ liệu mới sẽ được thêm vào cuối block và được tất cả các node trong mạng lưu lại. Đây được gọi là sự bền bỉ dựa trên blockchain. Cấu trúc khuyến khích của các hệ thống dựa trên cơ chế bền bỉ là miner sẽ được trả thêm tiền khi một dữ liệu được thêm vào. Tuy nhiên, khi dữ liệu càng phình lên, sẽ có nhiều node không đáp ứng được khả năng lưu trữ, và chi phí để khởi tạo node mới gây khó khăn.
Tính bền bỉ dựa trên hợp đồng vận hành theo quan điểm dữ liệu sẽ không thể được sao chép bởi mọi node và lưu trữ mãi mãi. Dữ liệu phải phù hợp với các thỏa thuận hợp đồng. Các node hứa sẽ giữ một phần dữ liệu trong một khoảng thời gian nhất định. Chúng phải được trả tiền hoặc gia hạn bất cứ khi nào kết thúc hợp đồng để giữ cho dữ liệu được tồn tại. Đa số, hàm băm vị trí lưu trữ dữ liệu sẽ được lưu lại trên chuỗi thay vì tất cả dữ liệu. Do đó, toàn bộ chain không cần phải mở rộng quy mô để lưu trữ tất cả dữ liệu. Một số dự án sử dụng tính bền bỉ dựa trên contract: Filecoin, Skynet, Storj.
Mộ phương pháp tiếp cận khác đến từ IPFS. Đây là một hệ thống phân tán để lưu trữ và truy cập các tệp, trang web, ứng dụng và dữ liệu. Nó không tích hợp chương trình khuyến khích, tuy vậy, ta có thể được kết hợp nó với bất kỳ giải pháp khuyến khích dựa trên hợp đồng nào như trên để tăng sự bền bỉ. Một cách khác để duy trì dữ liệu trên IPFS là dịch vụ “pin” dữ liệu. Bạn cũng có thể chạy node IPFS của riêng mình và đóng góp vào mạng để duy trì dữ liệu của mình và/hoặc của người khác miễn phí!
Lưu giữ dữ liệu
Phần lớn các dự án đều sử dụng các thử thách mật mã để kiểm tra xem các node có thực sự lưu trữ dữ liệu hay không. Nếu node làm sai thì sẽ có cơ chế recovery và ngắt node làm sai khỏi hệ thống.
Tính phi tập trung
Ta có thể đánh giá một hệ thống có phi tập trung hay không dễ dàng khi xem xét họ có sử dụng cơ chế KyC hay không. Hệ thống không cần KyC thì mức độ phi tập trung sẽ cao hơn nhiều so với các hệ thống cần KyC.
Sự đồng thuận
Hiện tại đồng thuận trên storage layer vẫn chủ yếu dựa trên proof of work (Skynet, Arweave, Ethereum) và proof of stake (The Beacon Chain, Filecoin, 0Chain). Đánh giá độ an toàn của các dự án có thể dựa trên thuật toán đồng thuận họ sử dụng. Mỗi loại đồng thuận đều có đặc điểm riêng.
Hỏi đáp
Câu 1: Trên lý thuyết tốc độ truy xuất dữ liệu được lưu trữ phi tập trung nhanh hơn. Tuy nhiên, tại sao thực tế khi dev dựng thử demo thì tốc độ xử lý khá chậm; hay là so sánh Dtube, nổi trội về lưu trữ video phi tập trung, với Youtube thì tốc độ Dtube chậm hơn rất nhiều?
Đối với các dự án lưu trữ phi tập trung, không phải lúc nào cũng đạt mức độ truy cập tối đa. Tốc độ truy xuất còn phụ thuộc vào vấn đề là file người dùng muốn truy xuất có phổ biến hay không. Ví dụ như IPFS, khi nhiều người dùng truy cập vào các file, các node được hỏi nếu không có file nó sẽ đi hỏi các node “láng giềng”. Khi mà nó tải được file từ node “láng giềng”, nó sẽ cache dữ liệu đó.
Do vậy khi file được truy cập càng nhiều, thì càng nhiều node cache dữ liệu đó, tốc độ truy xuất dữ liệu sẽ tăng lên. Còn với Filecoin, tốc độ truy cập sẽ nhanh hơn do file được sao lưu ra nhiều node hơn. Nhưng người dùng sẽ phải trả phí để file được phân phối ra nhiều node và sao lưu.
Câu 2: Dựa vào tiêu chí nào mà Ethereum được liệt kê vào danh sách giải pháp Decentralized Storage?
Ta có thể thấy rõ là ta có thể lưu trữ dữ liệu trên Ethereum. Tuy nhiên lưu trữ này sẽ bị về kích thước, nhưng mà bản chất có thể lưu trữ dữ liệu nên vẫn có thể coi nó là dự án lưu trữ phi tập trung. Thực ra thì Ethereum sinh ra không nhằm mục đích lưu trữ dữ liệu, mà chỉ là vì nó có chức năng này và nó phi tập trung nên team đã đề cập đến nó ở đây.
Một số dự án tiêu biểu
IPFS
IPFS (InterPlanetary File System) được phát triển bởi Protocol Labs – chuyên nghiên cứu giao thức, công cụ và dịch vụ cải thiện Internet. Nó là một hệ thống tệp ngang hàng, phân tán và quan trọng là dựa trên content addressed – tạo nên sự khác biệt của IPFS.
Khác với lưu trữ kiểu vị trí truyền thống: ví dụ bạn có 1 tập tin để ở ổ D trên máy tính, bạn sao chép nó ra và truy cập theo tên của file. Dù nội dung hai file là giống nhau nhưng chúng độc lập và ta mất gấp đôi dung lượng để lưu trữ. Content addressed không tham chiếu dựa tên file, mà dựa theo hash của file. Hai file giống nhau sẽ có hai mã hash giống nhau nên có thể loại bỏ được việc lưu trữ trùng lặp.
Nhưng nhìn vào những mô tả ở trên thì chắc hẳn các bạn đã thấy được nó khá giống BitTorren. Thật vậy, nó là kết hợp ý tưởng của Git, BitTorrent & Kademlia. Hiện tại hệ thống IPFS được sử dụng trong phân phối video, các tài liệu hợp pháp, 3D Models, Games, và có thể sử dụng để tạo lên các Blog và Website.
Cách hoạt động của IPFS
Nó khá giống với phương pháp hoạt động nêu ở phần trước. Khi bạn thêm 1 file vào hệ thống thì nó sẽ đi qua các bước sau:
- Tính toán hash của file, hash này có thể lưu trữ trên blockchain;
- Chia nhỏ file, lưu trên trên các node. Thông tin về các phần nhỏ này được lưu trong 1 Distributed Hash Table (DHT) để phục vụ cho việc gộp file.
Khi bạn muốn lấy file ra, bản chất là bạn sẽ gửi yêu cầu tôi muốn lấy file có hash là XXX cho hệ thống:
- Tìm kiếm thông tin về file trong trong DHT
- Gộp file và trả về cho người dùng
Kỹ thuật tiêu biểu
Sau đây là chi tiết về một số kỹ thuật sử dụng trong IPFS
Content Addressing
Mỗi một tệp được xác định bằng mã hash của nó, khi tệp thay đổi thì mã hash sẽ thay đổi. Nhờ vậy, chúng ta sẽ biệt được file của chúng ta có bị sửa hay không. Sau quá trình hash thì chúng ta sẽ có 1 CID (Content ID) tổng. Trong IPFS thì kích thước tối đa của 1 block với 1 CID là 256kb, nếu file như lớn hơn thì nó sẽ phải được chia nhỏ ra.
Merkle DAG
Các tệp lớn hơn 256kb, sẽ được chia nhỏ ra thành nhiều phần khác nhau, với base CID chứa thông tin của các block con, liên kết giữa Base CID đến các CID con chúng ta gọi là IPLD. Toàn bộ cấu trúc này là Merkle DAG trong khoa học máy tính.
Cấu trúc này có ưu điểm là cách lưu trữ này giúp kiểm tra được bất kỳ thay đổi gì của các tệp con. Vì base CID chính là hash của tất cả file con.
IPFS cũng hỗ trợ đối với cả 1 folder. Ví dụ trong 1 folder chúng ta có 2 file bigfile.js và hello.txt cùng 1 thư mục là my_dir. Thư mục con my_dir lại chứa 1 file my_file.txt có cùng nội dung file hello.txt. Bạn có thể thấy cách IPFS xử lý việc lưu trữ trùng lặp file ở đây.
Versioned
Cách tổ chức lưu trữ này cũng được dùng cho Git, nên IPFS cũng có khả năng quản lý version như Git. Khi 1 file mới được thêm vào, thì nó chỉ việc liên kết qua một file mới, chỉ cần thay đổi hash gốc (base CID) để đảm bảo toàn vẹn mà không cần thay đổi các file nhỏ hơn.
Distributed Hash Table
Phía trên là kỹ thuật lưu trữ, vậy ta lấy file như nào? Vì IPFS là content addressed, chúng chỉ quan tâm đến hash. Để biết được node nào đang giữ block của file, nó cần sử dụng đến DHT. DHT như 1 cuốn từ điển để tra cứu, giúp chúng ta biết các phần chúng ta cần lấy đang được lưu ở đâu.
IPFS mang lại rất nhiều lợi ích như IPFS có thể hoạt động dựa trên TCP, HTTP, bluetooth,v.v. Điều này khiến cho IPFS vô cùng mạnh mẽ. Nó gần như là lớp cơ sở bên dưới và chỉ cần một lớp network bên trên là nó đã có thể hoạt động được. Ngoài ra, nó cũng thừa hưởng các đặc điểm ưu việt của hệ thống lưu trữ file phi tập trung đã được giới thiệu ở trên.
Nhưng bản thân IPFS cũng có những vấn đề cần phải giải quyết. Không giống như Torrent, hiện nay IPFS chủ yếu được sử dụng bởi những người yêu thích công nghệ. Người dùng bình thường không có lý do gì để khởi chạy các node và cũng khá khó để setup dẫn đến số node bị hạn chế.
IPFS cũng không tự động nhân bản tệp. Nếu không ai sử dụng hoặc pin (lưu trữ trong cache) thì ta có thể mất file. Có thể giải quyết bằng cách sử dụng cluster, nhưng cách này không hiệu quả vì nó vẫn quay lại tự người dùng lưu trữ tập trung.
Để giải quyết vấn đề này IPFS cần có cấu trúc khuyến khích để mọi người tham gia chạy các node và đảm bảo độ tin cậy là node vẫn lưu trữ dữ liệu.
Hỏi đáp
Câu 1: Cách hoạt động của IPFS rất hay và thú vị. Tuy nhiên, không có quyền lợi gì để khuyến khích các node lưu trữ dữ liệu lâu dài, nên để phát triển dự án Web 3.0 trên IPFS vẫn rất rủi ro. Liệu IPFS có khả năng ra mắt token và chính sách khuyến khích để giải quyết vấn đề này hay không?
Như đã đề cập ở trên, IPFS có hạn chế khi không có cấu trúc khuyến khích, mọi thứ phụ thuộc vào ý thức và mong muốn của người chạy node. Hiện tại, đang có 02 hướng xử lý: cung cấp dịch vụ pin dữ liệu trên IPFS hoặc bổ sung câu trúc khuyến khích cho IPFS.
Tuy nhiên, IPFS gần như sẽ không ra mắt token hay thu phí hay trả thưởng. Theo Protocol Labs thì IPFS được tạo ra chỉ để phục vụ mục đích cải thiện môi trường internet. Nó cứ tiếp tục duy trì hệ thống miễn phí và tự do như vậy, dành cho những người yêu thích lập trình mà không ràng buộc. Thực tế, ta có thể thấy Protocol Labs đã xây dựng một dự án độc lập là Filecoin, dựa trên IPFS và bổ sung cấu trúc khuyến khích. Dự án này thừa hưởng toàn bộ các ưu điểm từ IPFS và giải quyết được tính bền bỉ cho dữ liệu.
Nhận thấy rủi ro về mất mát dữ liệu, các dự án dapp cũng nên phân tách dữ liệu quan trọng và dữ liệu ít quan trọng để lựa chọn bên lưu trữ phù hợp. Với ưu thế miễn phí, sẽ tốt hơn nếu chọn IPFS để lưu trữ lượng dữ liệu nhiều và không gây ra hậu quả nghiêm trọng nếu mất. Còn các dữ liệu thiết yếu, đòi hỏi bảo mật và toàn vẹn, việc trả phí cho các nhà lưu trữ phi tập trung như Filecoin hay Arweave sẽ hợp lý hơn.
Câu 2: Có giới hạn lượng dữ liệu lưu trữ trên IPFS hay không? Team đánh giá như thế nào về bảo mật dữ liệu trên IPFS?
IPFS không giới hạn một file tối đa bao nhiêu kilobyte, và cũng cho phép lưu trữ tệp lớn. Các tệp lớn hơn 256kb sẽ được chia nhỏ ra thành nhiều phần khác nhau và tiến hành lưu trữ như các tệp nhỏ thông thường.
IPFS không mã hóa dữ liệu được lưu trữ, vì vậy, bất kỳ ai truy vấn hash thì đều có thể xem nội dung dữ liệu. Để giảm bớt rủi ro bảo mật, người dùng hoàn toàn có thể tự mã hóa dữ liệu trước, rồi mới gửi lên IPFS phân phối và lưu trữ trên các node. Như vậy, người dùng vẫn có thể bảo đảm được dữ liệu của mình không bị công khai.
Filecoin
Filecoin là một cái tên nặng ký trong các dự án về lưu trữ phi tập trung trên Web 3.0, được thiết kế để thúc đẩy sự phát triển của web 3. Các ưu điểm chính của Filecoin là:
- Tương thích với IPFS, đã tương tác với Web 3 network như Near, Hedera
- Chi phí thấp, tốc độ truy xuất cao
- Bổ sung độ tin cậy cho IPFS bằng mật mã, yêu cầu cung cấp bằng chứng lưu trữ, cấu trúc khuyến khích thu hút nhiều nhà cung cấp node hơn.
- Dung lượng lưu trữ mà Filecoin hỗ trợ hiện nay đã lên tới 13 exabytes – một con số khổng lồ có thể chứa được gấp nhiều lần internet hiện tại
- Hoạt động dựa trên cơ chế đồng thuận
Cùng tìm hiểu 1 chút về cách hoạt động của filecoin. Người dùng trả FIL token cho các nhà cung cấp dịch vụ lưu trữ để lưu trữ và phân phối dữ liệu trên mạng. Họ sẽ ký contract với nhà cung cấp node. Nhà cung cấp node sẽ phải thực hiện cung cấp một Proof of Replication để đảm bảo tệp của người dùng được nhân bản. Ngoài ra, định kỳ, nhà cung cấp node cũng sẽ phải cung cấp Proof of Spacetime để đảm bảo họ vẫn đang lưu trữ file của người dùng. Họ sẽ nhận được tiền khi tiếp tục thực hiện contract.
Như vậy, những nhà cung cấp node đã được khuyến khích để đảm bảo hoạt động đúng như những gì họ cam kết. Nếu họ thực hiện sai, họ có thể bị loại khỏi mạng.
Hiện Filecoin là dự án lưu trữ dữ liệu hàng đầu được ứng dụng trong Web 3.0. Nhà phát triển có thể tận dụng Filecoin để thay thế cho IPFS nhằm lưu trữ dữ liệu quan trọng lâu dài. Để tiết kiệm chi phí, họ cũng có thể xem xét phương án kết hợp IPFS và Filecoin.
Hỏi đáp
Câu 1: Chi phí để khởi chạy một node và tỷ lệ trả thưởng thực tế cho các node là bao nhiêu? Có thể tận dụng máy với card đào BTC, ETH sẵn có để tham gia làm node thu lại FIL hay không?
Với Filecoin, bạn có thể xem trực tiếp tỷ lệ trả thưởng công khai ngay trên trang chủ mà không cần set up. Trên đó có danh sách top 10 các node cung cấp storage cho Filecoin: dung lượng, tiền thưởng trong 24h, hiệu quả và dung lượng tăng trưởng.
Máy cung cấp node cho Filecoin hơi khác so với máy đào BTC và ETH. Vì bản chất của nó là cung cấp khả năng lưu trữ, máy cần có dung lượng ổ cứng nhiều. Máy đào BTC và ETH thông thường vẫn có thể dùng để làm node của Filecoin. Nhưng nó sẽ gặp hạn chế về giới hạn lưu trữ, do vậy ta sẽ phải đầu tư thêm ổ cứng để nó hoạt động hiệu quả hơn. Còn việc thực tế chi phí chuyển đổi này là bao nhiêu, ta sẽ cần tính toán thêm trong điều kiện cụ thể.
Câu 2: Từ góc độ builder, một dự án nếu muốn chen chân vào lĩnh vực storage layer trong Web 3.0 và cạnh tranh với 3 ông lớn hiện tại là IPFS, Filecoin và Arweave, thì team nghĩ hướng đi (ngách) nào là phù hợp?
Ta có thể nhìn lại về thành công của Arweave. Trước khi Arweave được giới thiệu thì IPFS và Filecoin cũng đã được xem là các đối thủ lớn trong lĩnh vực này. Thực tế, Arweave đã giải quyết một vấn đề chính là lưu trữ vĩnh viễn với chi phí gần như bằng 0. Đây là lý do mà nó đã có thể tham gia vào bộ ba storage layer hàng đầu.
Dựa trên ví dụ này, một dự án tiếp theo tham gia vào thị trường thì nên giải quyết một vấn đề bất kỳ mà các đối thủ hiện tại chưa làm được. Nhờ đó, nó có thể trở thành dự án thứ tư, thứ năm nối tiếp tiền lệ Arweave. Về vấn đề đó là gì thì vẫn còn là câu hỏi mà các builder cần nghiên cứu thêm.
Arweave
Arweave là một giao thức lưu trữ dữ liệu được xây dựng trên công nghệ blockweave. Mục tiêu của Arweave là xây dựng một nơi dữ liệu có thể được lưu trữ vĩnh viễn và được truy cập trên mạng vĩnh viễn. Người dùng chỉ cần phải trả tiền 1 lần và dữ liệu được lưu trữ mãi mãi.
Vì nó dựa trên blockchain, nên miner sẽ là những người cung cấp tài nguyên để thực hiện lưu trữ, họ có thể lựa chọn định dạng dữ liệu lưu trữ. Miner sẽ được nhận lại AR token khi thực hiện lưu trữ.
Kỹ thuật tiêu biểu
Công nghệ Blockweave
Khác biệt hẳn với Filecoin, cơ chế bền bỉ của Arweave dựa trên blockchain. Blockweave được duy trì bởi miner – những người cung cấp dung lượng ổ đĩa. Một block liên kết với các block trước đó và một recall block – băm và chiều cao của khối trước đó để thực hiện cơ chế đồng thuận Proof of Access (PoA).
Proof of Access
Proof-of-access đảm bảo rằng máy tính trên mạng Arweave có thể xác minh độ chính xác của tất cả các giao dịch mới và giao dịch cũ. Miner phải lưu trữ dữ liệu người dùng vì muốn tạo ra block mới phải có quyền truy cập đến block recall để lấy dữ liệu hash (hash toàn bộ recall block). PoA nhằm khuyến khích lưu trữ dữ liệu lâu dài.
Wildfire
Arweave xếp hạng dựa trên tốc độ mà mỗi node phản hồi các yêu cầu và chấp nhận dữ liệu từ các node khác trong mạng. Các node thực thi chậm sẽ bị cho vào blacklist. Điều này khuyến khích miner tăng tốc độ lưu trữ và chia sẻ dữ liệu nhanh nhất có thể.
Đánh giá dự án
So với các bên khác, ưu điểm của Arweave là khả năng lưu trữ dữ liệu vĩnh viễn với giá rẻ (tầm $7,5 cho 1 GB). Để khuyến khích, mỗi một node cũng có quyền lựa chọn loại dữ liệu lưu trữ.
Một số vấn đề của Arweave:
- Do sử dụng cơ chế đồng thuận PoA, khi các miner nhập lại thành các pool lớn thì vẫn sẽ quay về bài toán PoW cũ. Khi đó các full node sẽ cạnh tranh nhau dựa trên tốc độ tính toán, những solo miner sẽ khó cạnh tranh và có thể dừng mining do không còn động lực. Tốc độ truy xuất data của user sẽ giảm đi rõ rệt vì khi solo miner dừng chia sẻ, một lượng lớn các node không còn lưu trữ, dữ liệu tập trung hết ở các pool lớn.
- Arweave với mô hình trả tiền một lần và lưu trữ vĩnh viễn. Khi Arweave ngày càng phổ biến thì lượng dữ liệu mà Arweave cần lưu trữ sẽ tăng theo cấp số nhân. Do đó Arweave sẽ cần một lượng tài nguyên rất lớn để thực hiện lưu trữ dữ liệu này.
Hỏi đáp
Câu hỏi: Với những ưu điểm và vấn đề như vậy, Arweave sẽ nên được nhà phát triển sản phẩm Web 3.0 xem xét sử dụng khi nào?
Arweave có thể được sử dụng rộng rãi vì vừa có thể lưu trữ vĩnh viễn, và chi phí lưu trữ cũng rất cạnh tranh. Các dự án có thể yên tâm lưu trữ dữ liệu dài hạn mà vừa tối ưu chi phí phát triển dự án. Ngoài ra, có một use case khá hay cho các dự án phát triển NFT như là ảnh, Arweave có thể được sử dụng để lưu trữ NFT vĩnh viễn.
Bài viết được FXCE Ventures biên tập với mục đích cung cấp thông tin và phi lợi nhuận. Chúng tôi không khuyến nghị đầu tư và không chịu trách nhiệm cho các quyết định đầu tư liên quan đến nội dung bài viết.
—————————————————
👉 Theo dõi FXCE Ventures
Group Chat | Research Hub | FXCE Spotlight | Tổng hợp airdrop | FXCE Pool Coin