Hôm nay là ngày 7 tháng 1, còn 12 ngày nữa là Tusky đóng cửa hoàn toàn. Thật lòng thì đến giờ tôi vẫn còn choáng váng — một ứng dụng mạng xã hội phi tập trung tốt đẹp, bỗng dưng lại đóng cửa. Điều tệ hại hơn là tôi đã lưu gần 2000 bức ảnh và một đống video trên đó, dù chính thức nói rằng dữ liệu vẫn an toàn trên Walrus, nhưng không còn giao diện Tusky thì tôi phải truy cập vào chúng thế nào?
Sự việc bắt đầu từ ngày 19 tháng 12, khi Tusky đăng thông báo trên X rằng do "điều chỉnh chiến lược" nên sẽ đóng dịch vụ. Lúc đầu tôi còn nghĩ đó là đùa, bởi đây là ứng dụng hoạt động sôi nổi nhất trong sinh thái Walrus, dù lượng người dùng hoạt động mỗi ngày không cao nhưng ít nhất cũng là một sản phẩm có thể sử dụng. Nhưng họ thật sự nghiêm túc — trước ngày 19 tháng 1 bạn vẫn có thể truy cập chỉ đọc, sau đó cả API cũng sẽ bị đóng.
Tôi nhanh chóng xem hướng dẫn di chuyển chính thức, trong đó đề xuất một số giải pháp: ZarkLab (khu vực làm việc AI), Nami HQ (ổ đĩa đám mây phi tập trung), Pawtato Finance (ví tiền), và cách cuối cùng là dùng CLI của Walrus để tự quản lý dữ liệu. Vấn đề là tôi chưa từng dùng bất kỳ ứng dụng thay thế nào trong danh sách, và chức năng của chúng đều khác xa Tusky. Tusky dù sao cũng là một ứng dụng xã hội có giao diện người dùng, có thể đăng bài, bình luận, chia sẻ, giờ bảo tôi dùng dòng lệnh hay ví tiền để quản lý ảnh, trải nghiệm tệ đến mức không thể chấp nhận được.
Điểm đáng sợ nhất là mã hóa đầu đến cuối (end-to-end). Một trong những lợi thế của Tusky là E2E mã hóa, chỉ có khóa riêng của bạn mới giải mã được dữ liệu. Nhưng theo thông báo chính thức, sau ngày 19 tháng 1 nếu bạn không sao lưu khóa riêng, dữ liệu mã hóa sẽ mãi mãi không thể mở. Tôi lục tung cả cài đặt mới tìm thấy tùy chọn xuất khóa riêng, nhưng kết quả là một chuỗi hex 128 bit, nhìn là nổi da gà. Vội vàng sao chép vào trình quản lý mật khẩu, sợ chỉ một sơ suất là mất luôn.
Vì vậy tôi bắt đầu tìm hiểu cách di chuyển dữ liệu ra ngoài. Bước đầu tiên là dùng chức năng xuất (export) của Tusky, có thể xuất tất cả ID blob và metadata thành file JSON. Việc này khá suôn sẻ, 2000 bức ảnh tương ứng với hơn 1900 blob (một số được hợp nhất bằng quilt). Bước thứ hai mới khó – phải dùng CLI của Walrus tải từng blob một.
Tôi đã cài công cụ dòng lệnh walrus theo tài liệu, kết nối vào mạng chính thức, rồi viết một đoạn script Python để đọc hàng loạt blob. Nhưng vấn đề đầu tiên đã xuất hiện: một số blob không thể đọc được, báo lỗi "insufficient shards available". Ban đầu tôi nghĩ là do vấn đề mạng, thử lại vài lần vẫn không được. Sau đó hỏi trên Discord mới biết, một số blob được tải lên ở epoch cũ, các nút lưu trữ đã thay đổi, cần chờ cơ chế tự sửa chữa (self-healing) hoạt động.
Điều này thật khó xử. Theo官方 nói, self-healing thường chỉ mất vài phút, nhưng thực tế tôi thử, có blob phải chờ hơn một tiếng vẫn không đọc được. Cuối cùng tôi đành bỏ qua những blob bị lỗi này, thử lại vào ngày hôm sau. May mắn thay, ngày hôm sau phần lớn đã phục hồi, chỉ còn khoảng mười blob bị hỏng hoàn toàn, nhưng may mắn là đều là ảnh thử nghiệm không quan trọng.
Tốc độ tải xuống khá nhanh, mỗi blob chỉ vài trăm miligiây, nhưng số lượng quá nhiều. Tải 1900 blob mất gần 3 tiếng, và mỗi lần dùng lệnh walrus read đều phải trả một chút phí gas SUI (dù ít, nhưng tích lũy lại cũng lên tới 0.5 SUI). Tôi tính toán, nếu quản lý toàn bộ dữ liệu bằng CLI, chỉ cần vài lần xem ảnh, phí gas trong năm có thể còn cao hơn phí lưu trữ.
Rồi đến vấn đề tái tải lên. Vì lớp mã hóa của Tusky và lưu trữ gốc của Walrus là hai thứ hoàn toàn khác nhau, blob tôi tải về vẫn còn được mã hóa. Nếu muốn dùng trên Nami hay ZarkLab, cần giải mã trước rồi mới tải lên lại. Nhưng phương pháp mã hóa của Tusky là độc quyền, không có công cụ giải mã công khai. Tôi thử dùng OpenSSL kết hợp với khóa riêng đã xuất, mất cả ngày trời vẫn không thành công.
Cuối cùng tôi từ bỏ, quyết định quản lý trực tiếp các blob mã hóa gốc bằng CLI của Walrus. Dù sao tôi vẫn có khóa riêng, khi cần có thể giải mã thủ công để xem. Dù hơi phiền phức, nhưng ít nhất dữ liệu không bị mất. Còn những ai muốn tiếp tục kết nối xã hội trên nền tảng mới, đành phải chấp nhận: hoặc tải lên bản không mã hóa (từ bỏ quyền riêng tư), hoặc như tôi, cứ giữ nguyên những tập tin mã hóa không thể mở trực tiếp.
Nói về chi phí, lưu trữ của Tusky là miễn phí (dù nền tảng thực tế vẫn dùng Walrus, chỉ có dự án chịu chi phí thay bạn). Giờ tự quản lý dữ liệu thì phải tự trả WAL. Tôi tính toán, khoảng 2000 bức ảnh của tôi chiếm khoảng 15GB, với giá đã được trợ cấp hiện tại của Walrus (khoảng 50 đô la mỗi TB mỗi năm), thì chi phí lưu trữ mỗi năm chỉ dưới 1 đô la. Nghe thì rẻ, nhưng vấn đề nằm ở việc quản lý epoch – tôi phải nhớ mỗi 10 đến 20 tuần gia hạn một lần, nếu không dữ liệu sẽ bị xóa.
So với Tusky dù đã đóng cửa, nhưng ít nhất tôi không phải lo lắng về những chi tiết này. Giờ tôi đã thiết lập nhắc nhở lịch, mỗi 8 tuần kiểm tra một lần thời hạn hết hạn của blob, và gia hạn trước. Nhưng thật lòng mà nói, trải nghiệm này thật tệ hại, hoàn toàn không phù hợp với người dùng bình thường. Lý tưởng về lưu trữ phi tập trung là tốt, nhưng nếu không có lớp ứng dụng đáng tin cậy, thì chỉ phục vụ được nhóm người dùng chuyên sâu.
Việc Tusky đóng cửa cũng khiến tôi phải suy nghĩ lại về vấn đề hệ sinh thái của Walrus. Mạng chính đã hoạt động gần một năm, tự xưng có rất nhiều đối tác, nhưng ứng dụng thực sự dùng được thì chẳng có mấy. Ngoài Tusky, các ứng dụng khác hoặc đang trong quá trình phát triển, hoặc chỉ ở trạng thái demo. Giờ cả Tusky cũng đóng, những ứng dụng còn lại càng không thể tin cậy.
Tôi đã kiểm tra dữ liệu doanh thu của Walrus trên DefiLlama, chỉ 25 đô la trong 24 giờ, tổng cộng cũng chỉ khoảng 439.000 đô la. Số tiền này làm sao đủ để duy trì một mạng lưới lưu trữ phi tập trung? Đáng lẽ phải cần trợ cấp bằng token. Hơn nữa, vào tháng 3, các nhà đầu tư sẽ giải phóng 350 triệu WAL, với giá hiện tại 0,146 đô la, tương đương áp lực bán ra 5,1 triệu đô la. Nếu giá WAL sụt giảm mạnh, mức trợ cấp sẽ giảm, lúc đó chi phí lưu trữ sẽ tăng bao nhiêu?
Điều khiến tôi lo lắng nhất là tính bền vững của dữ liệu. Dù Walrus tuyên bố khả năng chịu lỗi lên đến 66% nút, nhưng nếu doanh thu mạng không đủ, các vận hành nút có thể rời đi. Hiện tại là 103 nút, nếu giảm xuống dưới 50 nút, an toàn sẽ trở thành vấn đề. Ví dụ Tusky cho thấy một thực tế: trong web3, không có gì là vĩnh viễn cả. Ứng dụng có thể đóng cửa, nút có thể rời đi, dữ liệu về lý thuyết vẫn tồn tại nhưng bạn có thể không thể truy cập được.
So với mô hình lưu trữ vĩnh viễn của Arweave, giờ tôi bắt đầu hối hận vì đã không chọn Arweave từ đầu. Dù phải trả một lần vài ngàn đô la rất đắt, nhưng ít nhất tôi không phải lo lắng về việc ứng dụng đóng cửa hay epoch hết hạn. Tính linh hoạt của Walrus là ưu điểm nhưng cũng là nhược điểm – bạn có thể xóa, lập trình, cập nhật động, nhưng cái giá phải trả là phải chủ động quản lý, chịu rủi ro ở tầng ứng dụng.
Chiến lược hiện tại của tôi là: dữ liệu quan trọng (ảnh gia đình, tài liệu công việc) sao lưu vĩnh viễn lên Arweave; dữ liệu thứ yếu (chia sẻ xã hội, tập tin tạm thời) vẫn dùng Walrus, nhưng kiểm tra trạng thái thủ công mỗi tháng một lần; những thứ không quan trọng (dữ liệu thử nghiệm, nháp) thì xóa thẳng tay để tiết kiệm chi phí. Chiến lược đa đám mây này tuy phức tạp, nhưng có lẽ là phương án an toàn nhất trong hệ sinh thái lưu trữ phi tập trung hiện tại.
Nói một cách tổng quát, Walrus vẫn còn quá trẻ. Về mặt kỹ thuật thì ổn, mã hóa xóa bỏ (erasure coding) rất tuyệt vời, tích hợp với Sui cũng trơn tru, nhưng hệ sinh thái quá mong manh. Cần thêm nhiều ứng dụng đáng tin cậy, mô hình kinh tế minh bạch hơn và trải nghiệm người dùng thân thiện hơn. Việc đóng cửa của Tusky là một hồi chuông cảnh báo, hy vọng đội ngũ Walrus sẽ nghiêm túc xem xét, đừng làm tổn thương những người ủng hộ từ đầu.
Trong 12 ngày tới tôi sẽ sao lưu và di chuyển tất cả dữ liệu quan trọng, đồng thời nghiên cứu xem Nami và ZarkLab có thực sự tốt không. Nếu cả hai ứng dụng này cũng không ổn, tôi có thể phải tạm thời quay lại lưu trữ tập trung – ít nhất Google Photos sẽ không bất ngờ thông báo đóng cửa sau 12 ngày nữa. Lý tưởng về phi tập trung thật đẹp, nhưng thực tế thì khắc nghiệt, an toàn dữ liệu không thể sơ sài chút nào.

