Vitalik Buterin luôn được biết đến là người nói về những xu hướng 2-3 năm thậm chí 10 năm cho các hạ tầng kỹ thuật. Và nếu bạn cũng theo dõi những nội dung xoay quanh nhà sáng lập Ethereum, chắc hẳn cũng đâu đó vài lần lướt qua từ khoá "Stateless Blockchain". Vậy khái niệm này là gì và chúng ta cần biết những gì để chuẩn bị cho viễn cảnh đó? Cùng tìm hiểu trong bài viết hôm nay anh em nhé!
Stateless Blockchain - Chìa khoá cho "nút thắt dữ liệu" của Ethereum
Stateful và Stateless
Trước khi tìm hiểu 2 khái niệm đối lập nhau này, chúng ta sẽ cần phải tìm hiểu, thế nào là "State" trong blockchain.
State - tạm dịch là "Trạng thái", có thể coi là một bản chụp toàn bộ blockchain và các chi tiết liên quan trong blockchain đó (ví dụ như tài khoản, số dư của các tài khoản, số giao dịch đã thực hiện - nonce,...).
Tiếp đó chúng ta sẽ tìm hiểu đến khái niệm "State Transition". Đây hiểu nôm na là những mấu nối của các State, khi có hoạt động diễn ra trên blockchain, tức các state sẽ thay đổi, thì các mấu nối này sẽ ghi nhận sự thay đổi đó.
Vậy từ khái niệm đó, chúng ta có thể tạm hiểu Stateful là dạng blockchain ghi nhận lại toàn bộ dữ liệu về những sự thay đổi của State.
Trong khi đó, ngược lại thì Stateless sẽ "tạm được coi" là không ghi nhận toàn bộ dữ liệu về các thay đổi hay hoạt động của blockchain. Vì sao mình dùng từ "tạm được coi" thì sẽ có những giải thích chi tiết hơn cho anh em ở phần "các blockchain Stateless đảm bảo an toàn cho mạng lưới như thế nào" nhé!
Vì sao cần Stateless?
Lí do nổi cộm nhất, chắc chắn là việc các validator sẽ không phải lưu trữ quá nhiều dữ liệu và bản chụp State của blockchain.
Tuy nhiên, một lí do quan trọng hơn nữa liên quan đến câu chuyện dữ liệu, đó là áp lực phải lưu trữ sẽ tăng dần và ngày một lớn theo thời gian. Đây có thể coi là một giới hạn cho mạng lưới khi tuổi đời vận hành tăng lên.
Và vì có thể cởi bỏ nút thắt về khối lượng dữ liệu cần lưu trữ lớn, mạng lưới hoàn toàn có thể mở rộng quy mô lớn hơn về số lượng validator, giúp tăng tính phi tập trung.
Một vấn đề nữa mà Stateless blockchain có thể xử lý, đó là sự phụ thuộc vào các đơn vị cung cấp cổng nối như Infura vì người dùng có thể dễ dàng tự vận hành node riêng của mình.
Có một vài thông tin cho rằng, trong tương lai người dùng có thể vận hành validator bằng...điện thoại cá nhân. Tuy nhiên, phải thừa nhận với nhau rằng viễn cảnh đó đẹp, nhưng vẫn sẽ rất khó xảy ra.
Stateless hoạt động như thế nào?
Về phía người dùng, nhằm giảm bớt áp lực cho các validator, người dùng sẽ cần phải lưu trữ thêm một khái niệm dữ liệu là "Witness". Hiểu nôm na, đây là bằng chứng rằng các dữ liệu của tài khoản người dùng đã được lưu trữ trong cây nhị phân chung của toàn mạng lưới. Witness theo đó sẽ được gửi đến validator trong mỗi giao dịch phát sinh của người dùng.
Đây là lí do vì sao mình nói "các Stateless Blockchain tạm được coi là không lưu trữ State". Dữ liệu về giao dịch trong quá khứ vẫn được lưu trữ, song nó được phân phối áp lực sang cho phía người dùng dưới hình thức của "Witness".
Ngoài ra, để có một cấu trúc lưu trữ tối ưu hơn cho Witness, hệ thống cây nhị phân Merkle Patricia Tree hiện tại được đề xuất chuyển sang hệ thống mới có tên gọi là Verkle Tree.
Mình sẽ tránh đề cập quá sâu về khác biệt kỹ thuật của 2 mô hình này, do đó xin tóm gọn bằng 2 ý sau:
- Merkle Tree sẽ phụ thuộc vào cả các nhánh trung gian (intermediate - hay có thể coi là nhánh cha) và các nhánh lá bên cạnh (sibling leaf - tạm dịch là nhánh anh em) để tạo ra mã hash. Do đó, độ phức tạp sẽ tăng lên khi nhánh cây mở rộng.
- Verkle Tree thì giúp giảm thiểu những liên kết với các nhánh anh em (sibling) và cả khoảng cách đi đến với nhánh gốc (root). Do đó có thể hiểu rằng Verkle sẽ có tính "flat" (ít tầng và phân nhánh) hơn Merkle. Verkle sẽ giúp việc truy xuất nguồn gốc và xác thực từng Witness trở nên gọn và đỡ tốn bộ nhớ lưu trữ hơn.
Tóm lại, cấu trúc Stateless sẽ có 2 thay đổi chính là Witness (bằng chứng mà user gửi cho Validator trong mỗi giao dịch) và Verkle Tree (mô hình giúp lưu trữ các Witness một cách tối ưu hơn).
Kịch bản ấy đẹp, tiếc là nó... có thể không xảy ra
Trong một bài nghiên cứu mới đây từ quỹ đầu tư a16z về chủ đề Stateless Blockchain, hàng loạt những rào cản về mặt kỹ thuật đã được đề cập.
Stateless blockchains – which could make being a validator so cheap that you could run a full node on a smartphone – are impossible, at least as currently proposed, say @miranda__christ and @josephbonneau.https://t.co/3YrFlIDSpv
— a16z crypto (@a16zcrypto) August 24, 2023
Nổi cộm nhất, có lẽ là việc áp lực bây giờ sẽ phải được san sẻ từ validator sang cho người dùng. Các Witness sẽ thay đổi liên tục theo thời gian, khiến người dùng dù không hoạt động liên tục trên mạng lưới vẫn sẽ phải liên tục theo dõi sự thay đổi này để cập nhật và gửi vào validator khi có phát sinh giao dịch.
Câu chuyện sẽ ngày càng phức tạp hơn, khi các tài khoản rút tiền từ Layer-2 (cụ thể là các Rollup) về Layer-1. Lúc này, bài toán về "Data Availability" sẽ cần đáng lưu tâm, vì người dùng cần có dữ liệu về các giao dịch trong quá khứ thì mới tạo ra được bằng chứng Witness để gửi về L1. Và câu chuyện Data Availability này vẫn còn là vấn đề nổi cộm cho cả Sequencer (các đơn vị vận hành Layer-2) ở thời điểm hiện tại, chứ đừng nói gì đến cá nhân những người dùng phổ thông.
Ngoài ra, những rào cản trong việc chuyển đổi từ mô hình Merkle Tree hiện tại, sang mô hình Verkle Tree (tức mô hình nền tảng cho Stateless) cũng gặp nhiều trúc trắc. Vấn đề này đã được Tim Beiko (đại diện đội ngũ Core Dev Ethereum) chia sẻ trong các buổi họp gần đây.
The biggest challenge with Verkle Trees is that it requires swapping out the Merkle Patricia Tree that Ethereum currently uses to store all the state. Just like The Merge, if we don't want network downtime, we need to do this "in the background", which is complex!
— timbeiko.eth ☀️ (@TimBeiko) August 31, 2023
Theo đó, nếu muốn dịch chuyển sang cơ chế Verkle, nhiều khả năng mạng lưới sẽ phải có cách tiếp cận giống với nâng cấp The Merge trước đó. Điều này tương ứng với việc mạng lưới Verkle sẽ phải được triển khai trước và song song với Merkle hiện tại, trước khi có thể hợp nhất và chuyển đổi sau cuối.
Vitalik Buterin cũng đã có những soạn thảo về lộ trình triển khai Verkle Tree. Cụ thể, giai đoạn "The Verge" sẽ được dành ra để mạng lưới thực hiện quá trình chuyển dịch này.
Tạm kết
Như vậy là chúng ta đã cùng điểm qua một vài lí do và sự cần thiết của mô hình Stateless Blockchain. Song song đó là những hạn chế kỹ thuật mà mạng lưới cũng như đội ngũ lập trình viên đang phải đối mặt. Hi vọng là những nội dung trên đây hữu ích và đâu đó mang lại chút giá trị cho anh em!
Hẹn sớm được gặp anh em trong những bài viết tiếp theo nhé...
Coin68 tổng hợp
Tham gia thảo luận về những vấn đề NÓNG HỔI nhất của thị trường DeFi tại nhóm chat Fomo Sapiens cùng các admin Coin68 nhé!!!