Trong 2 bài viết về tam giác Trilmma của blockchain mình đã cùng các bạn làm rõ vấn đề chính hiện nay mà các hệ thống blockchain đang phải đối mặt chính là khả năng mở rộng chuỗi (Scalability) trong đó các các yếu tố ảnh hưởng đến bài toán mở rộng, bao gồm: thông lượng (throughput) , lưu trữ (storage), chi phí (cost), và độ trễ (latency). Trong phần này chúng ta sẽ tiếp tục cùng nhau đi tìm hiểu sâu hơn về các giải pháp mở rộng Layer 1 và Layer 2, dự kiến sẽ khá dài hy vọng nhận được sự đồng hành và chia sẻ của mọi người.
Trước khi đi vào từng giải pháp, chúng ta cần làm rõ hơn câu chuyện thực sự mà các blockchain đang gặp phải khi muốn giải quyết vấn đề mở rộng . Ở đây mình xin đi sâu vào vấn đề mở rộng của Bitcoin và etherium để chúng ta có cái nhìn tổng quan hơn về các yếu tố ảnh hưởng đến khả năng mở rộng mà các giải pháp L1, L2 đang hướng đến.
Các chuỗi khối công khai như Ethereum và Bitcoin đã phải vật lộn với việc thiếu khả năng mở rộng kể từ khi chúng xuất hiện. Ngay cả Satoshi Nakamoto, người tạo ra Bitcoin, cũng nhận được những bình luận về khả năng mở rộng khi ông xuất bản sách trắng Bitcoin
We very much need such a system, but the way I understand your proposal, it does not scale to the required size. For transferable proof of work tokens to have value, they must have a monetary value. To have monetary value, they must be transferred within a very large network — for example, a file trading network akin to BitTorrent. - James A. Donald
Trong nghiên cứu của mình, Kyle Croman và đồng nghiệp [1] đã phân tích một số chỉ số quan trọng để đo lường khả năng mở rộng của Bitcoin, bao gồm khả năng xử lý tối đa (maximum throughput), độ trễ (latency), thời gian khởi động (bootstrap time) và chi phí cho mỗi giao dịch được xác nhận (cost per confirmed transaction) (CPCT). Khả năng xử lý tối đa và độ trễ là hai chỉ số hiệu suất quan trọng nhất có tác động đáng kể đến trải nghiệm, chất lượng của người dùng (QoE). [2] Thông lượng giao dịch nhận được nhiều sự chú ý nhất trong số tất cả các số liệu được liệt kê ở trên. Thông lượng giao dịch được báo cáo cao nhất của Bitcoin là 7 TPS (giao dịch mỗi giây), trong khi Visa có thể đạt được hơn 4000 TPS. Điều này cho thấy rõ ràng rằng thông lượng thấp của Bitcoin không thể đáp ứng nhu cầu của các kịch bản giao dịch quy mô lớn. ( số liệu đánh giá đến năm 2020)[3]
Theo lí thuyết, thông lượng giao dịch (transaction throughput) là số lượng giao dịch mà một hệ thống blockchain có thể xử lý trong một giây. Trong Bitcoin, thông lượng giao dịch bị hạn chế bởi hai yếu tố chính: khoảng thời gian giữa các khối (block interval) và kích thước khối (block size).
- Khoảng thời gian giữa các khối (block interval): là khoảng thời gian trung bình giữa việc tạo ra hai khối liên tiếp trong chuỗi khối.
- Kích thước khối (block size): là kích thước tối đa của một khối trong chuỗi khối.
Khi khối càng lớn thì có khả năng chứa nhiều giao dịch hơn, tuy nhiên, sẽ dẫn đến việc Thời gian lan truyền (propagation time) cũng sẽ tăng lên. Điều này có thể làm giảm hiệu suất của mạng và dẫn đến sự chia nhánh trong mạng. Để giảm thiểu xác suất chia nhánh (fok) - khi hai hoặc nhiều khối được tạo ra cùng một lúc, kích thước khối và khoảng thời gian giữa các khối phải được cấu hình cẩn thận.
Thời gian lan truyền khối (propagation time): là thời gian cần thiết để một khối mới được lan truyền đến hầu hết các nút trong mạng blockchain. Khi một thợ mỏ giải quyết được vấn đề PoW và tạo ra một khối mới chứa các giao dịch đã được xác nhận, khối đó sẽ được lan truyền đến các nút khác trong mạng để họ cập nhật chuỗi khối của họ. Thời gian lan truyền khối phụ thuộc vào nhiều yếu tố, bao gồm kích thước khối, băng thông của mạng và số lượng nút trong mạng. Thời gian lan truyền khối càng ngắn, hệ thống blockchain càng ổn định và an toàn. Nếu thời gian lan truyền quá dài, có thể xảy ra tình huống hai hoặc nhiều thợ mỏ tạo ra các khối mới cùng một lúc và dẫn đến chia nhánh trong chuỗi khối. Do đó, việc giảm thiểu thời gian lan truyền khối là rất quan trọng.
VD: Trong Bitcoin, khoảng thời gian giữa các khối là khoảng 10 phút và kích thước khối là khoảng 1 MB. Điều này giới hạn số lượng giao dịch có thể được lưu trữ trong mỗi khối và do đó ảnh hưởng đến lưu lượng giao dịch trên bitcoin. Nếu như chúng ta muốn tăng kích thước khối trong khi vẫn duy trì thời gian lan truyền giữa các khối, thì một vấn đề quan trọng mà chúng ta phải quan tâm đó là băng thông trung bình của toàn hệ thống.
Băng thông là mức dữ liệu tối đa mà một mạng có thể truyền trong một khoảng thời gian nhất định. Nó đo lường khả năng của mạng trong việc truyền dữ liệu từ nguồn tới đích. Trên blockchain, băng thông quyết định khả năng truyền dữ liệu trong mạng, bao gồm truyền các giao dịch đến các nút mạng để được đóng gói vào khối mới nhất.
Nếu băng thông không đủ lớn để hỗ trợ việc lan truyền các khối lớn hơn, thời gian lan truyền sẽ tăng lên và có thể làm tăng xác suất chia nhánh. Do đó, để tăng lưu lượng giao dịch của Bitcoin trong khi vẫn duy trì thời gian lan truyền khối, cần có giải pháp để tăng băng thông trung bình của toàn hệ thống hoặc giảm thiểu yêu cầu băng thông cho việc lan truyền khối.
Giảm thiểu yêu cầu băng thông cho việc lan truyền khối có nghĩa là giảm thiểu lượng dữ liệu cần truyền tải khi lan truyền một khối mới đến các nút trong mạng. Điều này có thể giúp giảm thời gian lan truyền khối và giúp duy trì thời gian lan truyền khối trong khi tăng kích thước khối.
Các giải pháp để tăng băng thông trung bình của toàn hệ thống hoặc giảm thiểu yêu cầu băng thông cho việc lan truyền khối trên blockchain bao gồm :
- Sử dụng kỹ thuật nén dữ liệu: ví dụ như SegWit trên Bitcoin, giúp giảm kích thước giao dịch và tăng khả năng xử lý giao dịch mỗi giây.
- Sử dụng các kết nối mạng chất lượng cao: ví dụ như Theta Network, giúp tăng băng thông mạng lưới bằng cách cho phép các nút chia sẻ băng thông với nhau.
- Tăng số lượng nút mạng trên hệ thống: ví dụ như Zilliqa, sử dụng kiến trúc sharding để tăng khả năng mở rộng và giảm áp lực trên từng nút mạng.
- Sử dụng giao thức truyền dữ liệu tối ưu hóa: ví dụ như Lightning Network trên Bitcoin và Raiden Network trên Ethereum, giúp giảm thời gian và chi phí giao dịch.
- Cải thiện kết nối mạng: các dự án blockchain như Solana và Polkadot có các giải pháp để tối ưu hóa việc truyền giao dịch trên mạng lưới, giúp tăng băng thông trung bình của toàn hệ thống.
Các giải pháp như tăng số lượng nút mạng, cải thiện kết nối mạng, cải thiện giao thức truyền dữ liệu và kiểm soát kích thước khối được xếp vào nhóm giải pháp Layer 1 (cải thiện các yếu tố gốc của hệ thống blockchain). Các giải pháp như sử dụng kỹ thuật nén dữ liệu và sử dụng các kết nối mạng chất lượng cao được xếp vào cả Layer 1 và Layer 2 (tối ưu hóa ứng dụng trên hệ thống blockchain). Các giải pháp như Lightning Network trên Bitcoin và Raiden Network trên Ethereum được xếp vào nhóm giải pháp Layer 2 (cải thiện dựa trên hệ thống blockchain hiện tại).
Layer 1 tập trung vào một số yếu tố cốt lõi của blockchain như cơ chế consensus, mạng và cấu trúc dữ liệu, và được thực hiện trên chuỗi (on-chain). Trong khi đó, Layer 2 tìm cách tăng cường khả năng mở rộng của blockchain bằng các phương pháp ngoài chuỗi như kênh ngoài chuỗi (off-chain channel), side-chain và các giao thức cross-chain. Trong bảng 1 của hình minh họa, nhóm tác giả đã thông kế các giải pháp mở rộng chuỗi tiêu biểu của từng Layer [2].
Hy vọng qua quá trình phần tích ở trên mọi người đã có góc nhìn sâu hơn liên quan đến các yếu tố ảnh hưởng đến khả năng mở rộng chuỗi của các hệ thống blockchain, đồng thời cũng nắm được tiêu chí mà các giải pháp này được xếp vào L1 hay là L2. Trong phần tiếp theo mình sẽ đi vào phân tích các giải pháp ở Layer 1 để xem cụ thể những giải pháp này như thế nào. Hy vọng bài viết không quá dài, cảm ơn mọi người đã đọc .
REFERENCES
[1] Croman, K., Decker, C., Eyal, I., Gencer, A. E., Juels, A., Kosba, A., ... & Wattenhofer, R. (2016). On Scaling Decentralized Blockchains: (A Position Paper). In Financial Cryptography and Data Security: FC 2016 International Workshops, BITCOIN, VOTING, and WAHC, Christ Church, Barbados, February 26, 2016, Revised Selected Papers 20 (pp. 106-125). Springer Berlin Heidelberg.
[2] Zhou, Q., Huang, H., Zheng, Z., & Bian, J. (2020). Solutions to scalability of blockchain: A survey. Ieee Access, 8, 16440-16455.
[3] Schaffner, T. (2021). Scaling public blockchains. A comprehensive analysis of optimistic and zero-knowledge rollups. University of Basel.