1. Các thuộc tính chính của hệ thống phân đoạn là gì và sự cân bằng là gì?
Mục tiêu chính của sharding là tiến gần nhất có thể để sao chép các thuộc tính bảo mật quan trọng nhất của các blockchain truyền thống (không phân đoạn) nhưng không cần mỗi node phải xác minh từng giao dịch đơn lẻ.
Trong một blockchain truyền thống:
- Các khối không hợp lệ không thể vượt qua vì các node xác thực nhận thấy rằng chúng không hợp lệ và bỏ qua chúng.
- Các khối không khả dụng không thể vượt qua vì các node xác thực không tải xuống được và bỏ qua chúng.
Trong một sharded blockchain với các tính năng bảo mật nâng cao:
- Các khối không hợp lệ không thể vượt qua bởi vì:
- Bằng chứng gian lận (fraud proof) nhanh chóng bắt được chúng và thông báo cho toàn bộ mạng về sự không chính xác của khối, đồng thời phạt nặng người tạo, hoặc
- ZK-SNARK chứng minh tính đúng đắn và bạn không thể tạo ZK-SNARK hợp lệ cho một khối không hợp lệ.
- Các khối không khả dụng không thể vượt qua được vì:
- Nếu ít hơn 50% dữ liệu của khối có sẵn, ít nhất một mẫu kiểm tra tính khả dụng của dữ liệu gần như chắc chắn sẽ không thành công đối với mỗi máy khách, khiến máy khách từ chối khối,
- Nếu ít nhất 50% dữ liệu của một khối có sẵn, thì thực sự toàn bộ khối có sẵn, bởi vì chỉ cần một nút trung thực duy nhất để tái tạo lại phần còn lại của khối.
Các blockchain TPS cao truyền thống không có sharding thì sẽ không có cách cung cấp những đảm bảo này. Hệ sinh thái Multichain không có cách nào tránh khỏi vấn đề kẻ tấn công chọn một chuỗi để tấn công và dễ dàng chiếm đoạt nó.
Sidechains phụ thuộc nhiều vào việc triển khai, nhưng chúng thường dễ bị tổn thương bởi những điểm yếu của chuỗi TPS cao truyền thống (điều này xảy ra nếu chúng chia sẻ trình khai thác / trình xác thực) hoặc điểm yếu của hệ sinh thái Multichain (điều này xảy ra nếu chúng không chia sẻ trình khai thác / trình xác thực ). Sharded blockchain không gặp phải những vấn đề này.
Tuy nhiên, có một số vấn đề trong hệ thống sharding. Đáng chú ý là:
- Các Sharded chain chỉ dựa vào các ủy ban (committee) dễ bị tấn công trước các đối thủ thích ứng và có trách nhiệm giải trình yếu hơn. Có nghĩa là, nếu đối thủ có khả năng xâm nhập (hoặc chỉ là shut down) bất kỳ tập hợp node nào họ chọn trong thời gian thực, thì họ chỉ cần tấn công một số lượng nhỏ các node để phá vỡ một ủy ban duy nhất. Hơn nữa, nếu một đối thủ (cho dù là một đối thủ thích ứng hay chỉ là một kẻ tấn công với 50% tổng số staking) phá vỡ một ủy ban, thì chỉ một số node của họ (những người trong ủy ban đó) có thể được xác nhận công khai là đang tham gia tấn công vào ủy ban đó, và do đó chỉ có thể bị phạt một số tiền cược nhỏ. Đây là một lý do chính khác tại sao việc lấy mẫu dữ liệu có sẵn cùng với fraud proofs hoặc ZK-SNARK là một bổ sung quan trọng cho kỹ thuật lấy mẫu ngẫu nhiên.
- Việc lấy mẫu tính khả dụng dữ liệu chỉ an toàn nếu có đủ số lượng client online mà họ cùng nhau thực hiện đủ yêu cầu lấy mẫu tính khả dụng dữ liệu mà các phản hồi hầu như luôn trùng lặp để chiếm ít nhất 50% khối. Trong thực tế, điều này có nghĩa là phải có vài trăm client online (và con số này làm tăng tỷ lệ giữa dung lượng của hệ thống với dung lượng của một nút càng cao). Đây là một mô hình few-of-N trust - nhìn chung là khá đáng tin cậy, nhưng chắc chắn không mạnh mẽ như độ tin cậy 0 trong N mà các node trong chuỗi không phân đoạn có sẵn.
- Nếu sharded chain dựa trên các bằng chứng gian lận, thì nó dựa trên các giả định về thời gian; nếu mạng quá chậm, các nút có thể chấp nhận một khối như đã được hoàn thiện trước khi bằng chứng gian lận xuất hiện cho thấy nó sai. May mắn thay, nếu bạn tuân theo một quy tắc nghiêm ngặt về việc hoàn nguyên tất cả các khối không hợp lệ sau khi phát hiện ra tính không hợp lệ, thì ngưỡng này là thông số do người dùng đặt: mỗi người dùng riêng lẻ chọn khoảng thời gian họ đợi cho đến khi hoàn nguyên và nếu họ không muốn đủ lâu thì phải chịu, nhưng người dùng cẩn thận hơn vẫn an toàn. Thậm chí, đây là một điểm yếu của trải nghiệm người dùng. Sử dụng ZK-SNARK để xác minh tính hợp lệ sẽ giải quyết được vấn đề này.
- Có một lượng lớn dữ liệu thô cần được chuyển đi xung quanh, làm tăng nguy cơ lỗi trong điều kiện mạng khắc nghiệt. Lượng dữ liệu nhỏ sẽ dễ gửi hơn (và dễ dàng che giấu an toàn hơn, nếu một tổ chức quyền lực cố gắng kiểm duyệt chuỗi) hơn lượng dữ liệu lớn hơn. Trình khám phá khối cần lưu trữ nhiều dữ liệu hơn nếu họ muốn nắm giữ toàn bộ chuỗi.
- Các blockchain được chia nhỏ phụ thuộc vào các mạng ngang hàng được phân đoạn và mỗi "subnet" p2p riêng lẻ sẽ dễ bị tấn công hơn vì nó có ít nút hơn. Các mô hình subnet sử dụng để lấy mẫu dữ liệu sẵn có giảm nhẹ điều này bởi vì có một số dư thừa giữa các subnet, nhưng thậm chí vẫn còn là một nguy cơ.
Đây là những lo ngại hợp lệ, mặc dù theo quan điểm của chúng tôi, chúng còn bị vượt xa bởi việc giảm tập trung ở cấp độ người dùng được kích hoạt bằng cách cho phép nhiều ứng dụng hơn chạy trên chuỗi thay vì thông qua các dịch vụ tập trung layer 2. Điều đó nói rằng, những mối quan tâm này, đặc biệt là hai mối quan tâm cuối cùng, trên thực tế là hạn chế thực sự đối với việc tăng thông lượng của một sharded blockchain vượt quá một điểm nhất định.
Thật tình cờ, rủi ro an toàn ngày càng tăng của các sharded blockchain nếu thông lượng của chúng trở nên quá cao cũng là lý do chính khiến nỗ lực mở rộng sang super-quadratic sharding đã bị bỏ lỡ; có vẻ như giữ nguyên bậc hai như nó vốn có lại là điều tốt.
2. Tại sao không sản xuất tập trung và xác minh phân đoạn?
Một giải pháp thay thế cho sharding thường được đề xuất là có một chuỗi có cấu trúc giống như một chuỗi có TPS cao tập trung, ngoại trừ nó sử dụng lấy mẫu tính khả dụng của dữ liệu và sharding ở layer 1 để cho phép xác minh tính hợp lệ và tính khả dụng.
Điều này cải thiện trên các chuỗi TPS tập trung cao như chúng tồn tại ngày nay, nhưng nó vẫn yếu hơn đáng kể so với hệ thống sharding. Điều này là vì một số lý do:
- Khó hơn nhiều để phát hiện sự kiểm duyệt của các nhà sản xuất khối trong một chuỗi TPS cao. Việc phát hiện kiểm duyệt yêu cầu (i) có thể xem mọi giao dịch và xác minh rằng không có giao dịch nào được thực hiện mà không thể giải thích được, hoặc (ii) có mô hình tin cậy 1-of-N trong các block producer và xác minh rằng không có khối nào không truy cập được. Trong một chuỗi TPS cao tập trung, (i) là không thể và (ii) khó hơn vì số lượng nút nhỏ khiến ngay cả mô hình tin cậy 1-of-N có nhiều khả năng bị phá vỡ hơn và nếu chuỗi có thời gian khối quá nhanh đối với DAS (như hầu hết các chuỗi TPS tập trung cao thường làm), thì rất khó để chứng minh rằng các khối của nút không bị từ chối đơn giản vì tất cả chúng đều được xuất bản quá chậm.
- Nếu phần lớn các block producer và các thành viên trong hệ sinh thái cố gắng buộc thông qua một sự thay đổi giao thức không phổ biến, client của người dùng chắc chắn sẽ phát hiện ra điều đó, nhưng cộng đồng sẽ khó hơn nhiều để rebel và folk vì họ sẽ cần tạo ra một bộ các nút thông lượng cao đắt tiền để duy trì một chuỗi giữ các quy tắc cũ.
- Cơ sở hạ tầng tập trung dễ bị tác động bởi các tác nhân bên ngoài hơn. Thông lượng cao của các nút tạo khối làm cho chúng rất dễ phát hiện và dễ shut down hơn. Về mặt chính sách và logistic, việc kiểm duyệt máy tính hiệu suất cao chuyên dụng cũng dễ dàng hơn so với việc kiểm duyệt máy tính xách tay của người dùng cá nhân.
- Có một áp lực lớn hơn để tính toán hiệu suất cao chuyển sang các dịch vụ đám mây tập trung, làm tăng nguy cơ toàn bộ chuỗi sẽ được chạy trong các dịch vụ đám mây của 1-3 công ty và do đó nguy cơ chuỗi sẽ đi xuống do nhiều nhà sản xuất khối thất bại đồng thời. Một sharded blockchain với văn hóa chạy trình xác nhận trên phần cứng của chính mình một lần nữa ít bị tổn thương hơn nhiều đối với điều này.
Các hệ thống được phân đoạn đúng cách sẽ tốt hơn như một layer cơ sở. Với một layer cơ sở được phân đoạn, bạn luôn có thể tạo một hệ thống sản xuất tập trung được xếp ở layer trên cùng bằng cách xây dựng nó dưới dạng một bản tổng hợp. Nhưng nếu bạn có layer cơ sở phụ thuộc vào sản xuất khối tập trung, bạn không thể xây dựng layer 2 phi tập trung hơn ở trên cùng.
Đây là dự án cá nhân của người viết với mục đích tổng hợp lại suy nghĩ về công nghệ từ nhiều lập trình viên xuất sắc và biên soạn lại thành những bài viết của riêng mình về công nghệ blockchain. Mỗi một bài viết sẽ là một bài luận riêng về các chủ đề khác nhau trong công nghệ blockchain. Đây là cách học tốt nhất mà mình biết trong việc củng cố khả năng ghi nhớ cũng như độ hiểu biết về bất kì một chủ đề nào đó.
Tất cả credit của bài viết này xin gửi tới Vitalik Buterin - nhà sáng lập Ethereum.
Đừng quên đăng ký Otis Report - Nơi cung cấp và cập nhật nhanh nhất mọi thông tin vĩ mô và phương pháp đầu tư tăng trưởng với giá trị vượt thời gian.
Hãy đăng ký và tham gia các nhóm, channel của Otis Report dưới đây để được thảo luận cùng các chuyên gia và nhiều Otiser khác:
- Theo dõi Otis Podcast - Những góc nhìn thú vị về thị trường
- Đăng ký kênh YouTube Otis Report - Các video chia sẻ kinh nghiệm đầu tư
- Otis Telegram - Chat cùng các chuyên gia và Otiser
- Group Otis Report - Cập nhật & thảo luận thông tin