Mphuong_luu28
🐋Cá Voi Phake🐋
1. Tổng quan vấn đề và một số giải pháp của blockchain
- Hiện nay các nền tảng blockchain đã, đang gặp một số vấn đề:
- Tiêu tốn nhiều năng lượng
- Số lượng giao dịch trên 1 giây thấp: BTC – 7txs/s; ETH – 15txs/s
- Thời gian xác nhận cao: BTC, ETH gần 1h
- Đã có nhiều giải pháp theo layer được đưa ra để cải thiện tốc độ và thời gian của hệ thống blockchain
- Layer 0: Erlay, Kadcast, Velocity…
- Layer 1: blockdata (Seg Wit, Bitcoin-Cash, Compact block relay …), Consensus (Bitcoin-NG, Algorand, snow white, Ouroborus), Sharding (Elastico, Omniledger, Rapidchain, Chainspace…), DAG (SPECTRE, PHANTOM, IoTA, Byteball…)
- Layer 2: payment channel, Side-chain, Cross-chain, Off-chain Computative
2. Nhóm giải pháp Sharding
Ý tưởng cơ bản là chia để trị, chia mạng lưới blockchain và các giao dịch vào nhiều shard (nhóm) để xử lý. Ví dụ có 1000 node để duy trì hệ thống blockchain, nhưng có nhất thiết cả 1000 node này duy trì blockchain không ? Câu trả lời là không cần thiết, có tăng số lượng lên 1 triệu node để cùng duy trì mạng thì tốc độ cũng không được cải thiện, ngược lại có thể chậm đi, lãng phí tài nguyên.
Vậy, Sharding chia 1000 node kia thành 10 nhóm, số lượng giao dịch có thể xử lý song song cùng 1 lúc gấp 10 lần so với 1000 node cùng làm như ban đầu.
Theo lý thuyết, với sharding giao dịch có thể xử lý song song, nhưng càng tăng số lượng node lên càng gặp nhiều vấn đề.
Sharding ở đây có thể hiểu theo 2 nghĩa: sharding về node, sharding về data
Vậy, Sharding chia 1000 node kia thành 10 nhóm, số lượng giao dịch có thể xử lý song song cùng 1 lúc gấp 10 lần so với 1000 node cùng làm như ban đầu.
Theo lý thuyết, với sharding giao dịch có thể xử lý song song, nhưng càng tăng số lượng node lên càng gặp nhiều vấn đề.
Sharding ở đây có thể hiểu theo 2 nghĩa: sharding về node, sharding về data
Các thách thức chính của Sharding:
- Rủi ro về bảo mật, kẻ tấn công sẽ tốn ít tài nguyên hơn để làm hỏng 1 shard, nếu 1 shard bị hỏng thì cả hệ thống coi như sập
=> Cần 1 cơ chế chọn node ngẫu nhiên để những node xấu không cùng ngồi vào 1 shard
- Xử lý giao dịch xuyên shard (cross-shard transaction)
=> Cần 1 cơ chế chọn node ngẫu nhiên để những node xấu không cùng ngồi vào 1 shard
- Xử lý giao dịch xuyên shard (cross-shard transaction)
- Giao dịch giữa các shard phải đảm bảo tính Atomicity (nếu giao dịch thành công thì bình thường, nếu giao dịch không thành công thì mọi thứ trở lại nguyên trạng ban đầu, không ai mất mát gì cả)
- Giảm độ phức tạp và độ trễ về thời gian của giao dịch xuyên shard
- Cơ chế Yanking và locking
- Số lượng cross-shard sẽ tăng lên theo lượng shard, làm sao kiểm soát được việc tăng số lượng cross-shard quá nhiều.
3. Các giải pháp sharding nổi tiếng (các giải pháp về mặt học thuật)
- Elastico
- Omniledger: Omniledger dùng cơ chế Rand-Hound để tránh việc kẻ xấu cùng ngồi vào 1 shard; Sử dụng Atomix protocol để đảm bảo giao dịch xuyên shard theo cơ chế locking.
- Rapidchain: Sử dụng mô hình mạng Synchronus , một giả định mô hình mạng yếu hơn nhằm tạo ra kết quả mạnh hơn. Sau mỗi lần sắp xếp thành viên vào 1 committee sẽ sử dụng Reconfiguration để tránh các thành viên tham gia và rời đi một cách tùy tiện. Reconfiguration dựa trên Cuckoo Rule để sắp xếp node mới vào shard. Khi có một số node rời khỏi shard thì sẽ cần một lượng node tương tự được sắp xếp ngẫu nhiên vào shard, Cuckoo Rule giúp làm việc đó. Sử dụng cơ chế Yanking để xử lý giao dịch xuyên shard, đảm bảo tính atomicity
- Monoxide: Khác với các giải pháp sharding khác về giải thuật đồng thuận, Monoxide dựa trên Nakamoto-style. (Các giải pháp trên dựa trên BFT). Ý tưởng chính: Giả xử có 1000 node và 64 chain thì 1000 node đó cùng tham gia vào mining và mở rộng dựa trên merge mining. Merge mining đảm bảo không có 1 kẻ xấu nào đủ sức mạnh để chiếm lấy 1 zone (shard)
- Chainspace: Làm sao có thể thực hiện cross-shard smart contract? Chainspace mở rộng mô hình UTXO, bình thường bên trong UTXO-model mọi thứ là giao dịch (txs). Thay vì có txs thì Chainspace có Objects, trong Objects có cả tiền, cả data. Mỗi Objects chỉ dùng 1 lần. Số lượng TPS và shard không cao so với Rapidchai hay Omniledger. Mục tiêu chính là thể hiện có 1 giải pháp giúp thực hiện cross-shard smart contract.
- Một số giải pháp triển khai thực tế: Zilliqa, Harmony, Near, Ethereum 2.0
Cảm ơn anh chị em đã theo dõi bài viết. Nếu thấy hay và bổ ích thì nhớ múc cho em với nhé!!