Phân mảnh (sharding) chia chuỗi khối thành các phần nhỏ hơn gọi là các mảnh (shard). Mỗi mảnh xử lý các giao dịch riêng và lưu trữ dữ liệu riêng. Các mảnh giao tiếp với nhau thông qua một lớp điều phối. Mục tiêu là tính song song. Thay vì một chuỗi xử lý mọi giao dịch, nhiều chuỗi xử lý giao dịch cùng một lúc. Thông lượng tăng lên theo số lượng mảnh. Lộ trình phát triển của Ethereum bao gồm phân mảnh, mặc dù việc hợp nhất (rollups) được ưu tiên hơn như một giải pháp mở rộng quy mô trong ngắn hạn.
Phân mảnh (sharding) về mặt kỹ thuật rất khó. Chia một chuỗi đồng nghĩa với việc chia tách bảo mật. Nếu một phân mảnh bị xâm phạm, toàn bộ mạng lưới sẽ gặp rủi ro. Giao tiếp giữa các phân mảnh làm tăng độ trễ và độ phức tạp. Các trình xác thực cần được chỉ định ngẫu nhiên cho các phân mảnh và luân chuyển thường xuyên để ngăn chặn sự thông đồng. Thiết kế phải đảm bảo rằng kẻ tấn công không thể tập trung quyền lực vào một phân mảnh và chiếm quyền kiểm soát nó. Đề xuất danksharding của Ethereum kết hợp phân mảnh với rollup. Các phân mảnh lưu trữ dữ liệu rollup nhưng không thực hiện giao dịch. Rollup xử lý việc thực thi. Phân mảnh xử lý tính khả dụng của dữ liệu. Sự phân công lao động này đơn giản và an toàn hơn so với phân mảnh thực thi toàn bộ.
Sự đánh đổi trong phân mảnh
- Thông lượng — tỷ lệ thuận với số lượng phân vùng
- Độ phức tạp — việc giao tiếp giữa các phân vùng rất khó khăn.
- Bảo mật — mỗi phân vùng cần đủ số lượng trình xác thực
- Tính khả dụng của dữ liệu — các phân vùng phải công bố dữ liệu để xác minh.
Phân mảnh máy chủ không phải là giải pháp nhanh chóng. Đó là một nỗ lực kỹ thuật kéo dài nhiều năm với nhiều thành phần phức tạp. Rollups đang mang lại khả năng mở rộng ngay hôm nay. Phân mảnh máy chủ là dành cho tương lai.
Comments
No comments yet. Be the first to share a thought.
Leave a comment