

Tác giả gốc: Vitalik Buterin
Nguồn gốc: Hackernoon
Tổng hợp gốc: ChinaDeFi
Sharding là tương lai của khả năng mở rộng cho Ethereum và sẽ là chìa khóa để giúp hệ sinh thái hỗ trợ hàng nghìn giao dịch mỗi giây, đồng thời nó cũng sẽ cho phép phần lớn thế giới sử dụng nền tảng này một cách thường xuyên với chi phí phải chăng. Tuy nhiên, nó cũng là một trong những khái niệm bị hiểu sai nhiều hơn trong hệ sinh thái Ethereum và hệ sinh thái blockchain rộng lớn hơn. Nó đề cập đến một tập hợp các ý tưởng với các thuộc tính rất cụ thể, nhưng hiện nay nó thường được hợp nhất với các công nghệ có thuộc tính bảo mật yếu hơn. Mục đích của bài đăng này là giải thích những thuộc tính cụ thể mà sharding cung cấp, nó khác với các công nghệ không phải sharding khác như thế nào và hệ thống sharding phải hy sinh những gì để đạt được những thuộc tính này.
Một trong nhiều mô tả về các phiên bản phân mảnh của Ethereum. Bản vẽ gốc của Hsiao-wei Wang, được thiết kế bởi Quantstamp.
tiêu đề cấp đầu tiên
Bộ ba bất khả thi về khả năng mở rộng
Cách tốt nhất để mô tả sharding nên bắt đầu bằng một tuyên bố vấn đề lập kế hoạch và truyền cảm hứng cho một giải pháp: bộ ba bất khả thi về khả năng mở rộng.
Bộ ba bất khả thi về khả năng mở rộng nói rằng các chuỗi khối cố gắng sở hữu ba thuộc tính và nếu chúng ta sử dụng các công nghệ "đơn giản", thì chúng ta chỉ có thể đạt được hai trong số ba thuộc tính này. Ba thuộc tính này là:
Khả năng mở rộng: Chuỗi có thể xử lý nhiều giao dịch hơn một nút bình thường có thể xác minh.
Phân cấp: Chuỗi có thể hoạt động mà không cần dựa vào một nhóm nhỏ các tác nhân tập trung lớn. Điều này thường được hiểu là khi chúng ta không thể tham gia một nhóm các nút bằng máy tính xách tay thông thường, thì chúng ta không nên tin tưởng vào nút đó.
Bảo mật: Chuỗi có khả năng chống lại hầu hết các cuộc tấn công vào các nút tham gia. (Lý tưởng nhất là 50%; hơn 25% là ổn, 5% là hoàn toàn không).
Bây giờ, hãy xem xét ba loại "giải pháp dễ dàng" này, thường chỉ có hai loại trong số đó:
Chuỗi khối truyền thống: bao gồm Bitcoin, tiền PoS/Ethereum phân đoạn, Litecoin và các chuỗi tương tự khác. Chúng dựa vào việc mỗi người tham gia chạy một nút đầy đủ để xác thực từng giao dịch, vì vậy chúng được phân cấp và an toàn, nhưng không thể mở rộng.
Chuỗi TPS cao: bao gồm họ DPoS, nhưng cũng có nhiều người khác thích nó. Chúng dựa vào một số lượng nhỏ các nút (thường là 10-100) để duy trì sự đồng thuận giữa các nút khác và người dùng phải tin tưởng phần lớn trong số chúng. Điều này có thể mở rộng và an toàn, nhưng nó không được phân cấp.
Hệ sinh thái đa chuỗi: Điều này đề cập đến khái niệm chung về "mở rộng quy mô theo chiều ngang", bằng cách chạy các ứng dụng khác nhau trên các chuỗi khác nhau và giao tiếp giữa chúng bằng các giao thức truyền thông xuyên chuỗi. Điều này được phân cấp và có thể mở rộng, nhưng nó không an toàn vì kẻ tấn công chỉ cần có được phần lớn các nút đồng thuận trong một trong nhiều chuỗi để phá vỡ chuỗi đó và có khả năng gây ra phản ứng dây chuyền, ảnh hưởng đến các ứng dụng trong các chuỗi khác. Nó cũng có thể gây ra thiệt hại lớn .
Sharding là một công nghệ có thể đáp ứng cả ba nhu cầu cùng một lúc. Một chuỗi khối phân mảnh là:
Có thể mở rộng: Nó có thể xử lý nhiều giao dịch hơn một nút đơn lẻ.
Phân quyền: Nó hoàn toàn có thể “sống sót” trên những chiếc laptop thông thường mà không cần dựa vào bất kỳ “siêu nút” nào.
Phần còn lại của bài viết này mô tả cách các chuỗi khối phân mảnh thực hiện điều này.
tiêu đề cấp đầu tiên
Sharding bằng cách lấy mẫu ngẫu nhiên
Sharding dễ hiểu nhất là sharding bằng cách lấy mẫu ngẫu nhiên. Sharding thông qua lấy mẫu ngẫu nhiên có các đặc tính tin cậy yếu hơn so với hình thức sharding mà chúng tôi đã xây dựng trong hệ sinh thái Ethereum, nhưng nó sử dụng các kỹ thuật đơn giản hơn.
Ý tưởng cốt lõi của nó là như sau. Giả sử chúng ta có một chuỗi bằng chứng cổ phần với một số lượng lớn (ví dụ 10.000) trình xác nhận và một số lượng lớn (giả sử 100) khối sẽ được xác minh cùng một lúc. Không một máy tính nào đủ mạnh để xác thực tất cả các khối này trước khi tập hợp các khối tiếp theo xuất hiện.
Vì vậy, những gì chúng tôi làm là phân chia công việc xác thực một cách ngẫu nhiên. Chúng tôi xáo trộn ngẫu nhiên danh sách trình xác thực, để 100 trình xác thực đầu tiên trong danh sách được xáo trộn xác minh khối đầu tiên và để 100 trình xác thực cuối cùng trong danh sách được xáo trộn xác minh khối thứ hai, do đó, tương tự. Nhóm những người xác nhận này được chọn ngẫu nhiên để xác thực một khối (hoặc thực hiện một số nhiệm vụ khác) được gọi là một ủy ban.
Khi trình xác thực xác thực một khối, họ sẽ đưa ra một chữ ký chứng thực rằng họ đã làm như vậy. Những người khác, thay vì xác minh 100 khối đầy đủ, giờ đây chỉ xác minh 10.000 chữ ký, công việc này ít hiệu quả hơn nhiều, đặc biệt là với tổng hợp chữ ký BLS. Thay vì phát trên cùng một mạng P2P, mỗi khối được phát trên một mạng con khác nhau và các nút chỉ cần tham gia mạng con tương ứng với khối mà chúng chịu trách nhiệm (hoặc quan tâm vì lý do khác).
Chúng tôi có thể giới thiệu một số thuật ngữ toán học để thảo luận về những gì đang xảy ra. Sử dụng ký hiệu Big O, chúng tôi biểu thị sức mạnh tính toán của một nút bằng "O(C)". Các chuỗi khối truyền thống có thể xử lý các khối có kích thước O(C). Như đã đề cập ở trên, chuỗi phân đoạn có thể xử lý song song các khối O(C) (chi phí mỗi nút xác minh gián tiếp mỗi khối là O(1), vì mỗi nút chỉ cần xác minh một số lượng chữ ký cố định), dung lượng của mỗi khối là một khối là O(C), vì vậy tổng dung lượng của chuỗi phân đoạn là O(C2). Đây là lý do tại sao chúng tôi gọi loại sharding này là sharding thứ cấp và hiệu ứng này là lý do chính khiến chúng tôi tin rằng sharding là cách tốt nhất để mở rộng quy mô chuỗi khối về lâu dài.
tiêu đề cấp đầu tiên
Câu hỏi thường gặp: Sự khác biệt giữa việc chia thành 100 ủy ban và chia thành 100 chuỗi riêng biệt là gì?
Có hai điểm khác biệt chính:
Lấy mẫu ngẫu nhiên ngăn kẻ tấn công tập trung hỏa lực vào một mảnh. Trong hệ sinh thái đa chuỗi gồm 100 chuỗi, kẻ tấn công chỉ cần chiếm khoảng 0,5% tổng số cổ phần để gây ra thiệt hại. Trong một chuỗi khối phân mảnh, kẻ tấn công sẽ phải sở hữu gần 30-40% toàn bộ cổ phần để làm điều tương tự (nói cách khác, chuỗi có bảo mật chung). Tất nhiên, họ có thể đợi cho đến khi đủ may mắn để ngẫu nhiên nhận được 51% trong một mảnh, mặc dù họ sở hữu ít hơn 50% tổng số cổ phần, điều này sẽ nhân lên đối với những kẻ tấn công có ít hơn 51% . Nếu của kẻ tấn công dưới 30% thì điều này gần như là không thể.
Cả hai sự khác biệt này đảm bảo rằng sharding tạo ra một môi trường cho các ứng dụng duy trì các thuộc tính bảo mật chính của môi trường chuỗi đơn, điều đơn giản là không thể thực hiện được với hệ sinh thái đa chuỗi.
tiêu đề cấp đầu tiên
Cải thiện sharding với một mô hình bảo mật tốt hơn
Một tuyên bố phổ biến trong giới bitcoin và một tuyên bố mà tôi hoàn toàn đồng ý là các chuỗi khối như bitcoin (hoặc ethereum) không hoàn toàn dựa vào các giả định trung thực của đa số. Nếu có một cuộc tấn công 51% vào một chuỗi khối như vậy, kẻ tấn công có thể thực hiện những việc khó chịu như hoàn nguyên hoặc kiểm duyệt các giao dịch, nhưng chúng không thể chèn các giao dịch không hợp lệ. Ngay cả khi họ hoàn nguyên hoặc kiểm duyệt giao dịch, hành vi này có thể dễ dàng bị phát hiện bởi người dùng đang chạy các nút bình thường, vì vậy nếu cộng đồng muốn phân nhánh để phối hợp giải quyết cuộc tấn công, loại bỏ sức mạnh của kẻ tấn công, họ có thể thực hiện nhanh chóng vào thời điểm này .
Lý tưởng nhất là chúng tôi muốn có một hình thức sharding để tránh giả định độ tin cậy hợp lệ 51% và giữ lại các rào cản bảo mật mạnh mẽ mà các chuỗi khối truyền thống đạt được thông qua xác minh đầy đủ. Và đó chính xác là những gì chúng tôi đã thực hiện hầu hết các nghiên cứu của mình trong vài năm qua.
tiêu đề cấp đầu tiên
Xác minh tính toán có thể mở rộng
Chúng tôi có thể phân tách vấn đề xác minh có thể mở rộng của khả năng chống tấn công 51% thành hai trường hợp:
Xác thực các phép tính: Giả sử chúng ta có tất cả đầu vào cho các phép tính, hãy kiểm tra xem các phép tính nhất định có được thực hiện chính xác không.
Xác thực tính khả dụng của dữ liệu: kiểm tra xem bản thân các đầu vào tính toán có được lưu trữ ở dạng nào đó không và chúng có thể được tải xuống nếu thực sự cần thiết; kiểm tra này nên được thực hiện mà không thực sự tải xuống toàn bộ đầu vào (vì dữ liệu có thể quá lớn để tải xuống mọi khối ).
Khi xác thực một khối trong chuỗi khối, điều này bao gồm kiểm tra tính khả dụng của dữ liệu và tính toán: chúng ta cần chắc chắn rằng các giao dịch trong khối là hợp lệ và hàm băm gốc trạng thái mới được khai báo trong khối là kết quả chính xác của việc thực hiện các giao dịch đó. Nhưng chúng ta cũng cần tự tin rằng đã có đủ dữ liệu được xuất bản trong khối để người dùng đã tải xuống dữ liệu đó có thể tính toán trạng thái và tiếp tục làm việc trên chuỗi khối. Phần thứ hai là một khái niệm rất tinh tế nhưng rất quan trọng được gọi là vấn đề về tính sẵn có của dữ liệu; chúng tôi sẽ nói thêm về vấn đề này sau.
Tính toán xác minh có thể mở rộng tương đối dễ dàng; có hai loại kỹ thuật: bằng chứng gian lận và ZK-SNARK.
Cả hai kỹ thuật có thể được mô tả ngắn gọn như sau:
Bằng chứng gian lận là một hệ thống chấp nhận kết quả tính toán và yêu cầu ai đó có khoản đặt cọc cam kết ký vào thông báo có nội dung "Tôi chứng minh rằng nếu bạn thực hiện tính toán C với đầu vào X, bạn sẽ nhận được đầu ra Y". Theo mặc định, chúng tôi tin tưởng những thông báo này, nhưng chúng tôi cũng cho những người khác đã đặt cọc tiền gửi cơ hội để thách thức (một thông báo có chữ ký nói rằng "Tôi không đồng ý, kết quả là Z"). Tất cả các nút chỉ chạy tính toán khi được thử thách. Một trong hai bên sai sót sẽ bị mất tiền đặt cọc và tất cả các phép tính tùy thuộc vào kết quả của phép tính đó sẽ được tính lại.
ZK-SNARK là một dạng bằng chứng mật mã trực tiếp chứng minh tuyên bố rằng "thực hiện phép tính C trên đầu vào X dẫn đến kết quả đầu ra Y". Bằng chứng này là "âm thanh" về mặt mật mã: nếu C(x) không bằng Y, thì về mặt tính toán không thể tạo ra một bằng chứng hiệu quả. Mặc dù bản thân việc chạy C mất rất nhiều thời gian, nhưng bằng chứng có thể được xác minh nhanh chóng.
Có một loại hệ thống bán mở rộng chỉ thực hiện xác minh tính toán có thể mở rộng, trong khi vẫn yêu cầu mọi nút xác minh tất cả dữ liệu. Điều này có thể đạt được bằng cách sử dụng một tập hợp các thủ thuật nén để thay thế hầu hết dữ liệu bằng tính toán. Đây là miền tổng hợp.
tiêu đề cấp đầu tiên
Việc xác minh khả năng mở rộng của dữ liệu khó khăn hơn
Bằng chứng gian lận không thể được sử dụng để xác minh tính khả dụng của dữ liệu. Bằng chứng gian lận điện toán dựa trên thực tế là các đầu vào của tính toán được xuất bản trực tuyến tại thời điểm yêu cầu ban đầu được gửi, do đó, nếu bị thách thức, việc thực hiện thách thức sẽ diễn ra trong cùng một "môi trường" trong đó thực hiện ban đầu xảy ra . Trong trường hợp kiểm tra tính khả dụng của dữ liệu, chúng tôi không thể làm điều đó vì vấn đề chính xác là có quá nhiều dữ liệu cần kiểm tra để đưa lên chuỗi. Do đó, các kế hoạch ngăn chặn gian lận về tính khả dụng của dữ liệu gặp phải một vấn đề nghiêm trọng: ai đó có thể yêu cầu "dữ liệu X có sẵn", nhưng không xuất bản dữ liệu đó, đợi thách thức rồi xuất bản dữ liệu X, khiến đối tượng thách thức có vẻ như không đúng sự thật với phần còn lại của mạng.đúng.
Điều này được mở rộng trên Thế tiến thoái lưỡng nan của ngư dân:
Thực tế là không có cách nào để biết ai đúng và ai sai nên không thể có một kế hoạch ngăn chặn gian lận dữ liệu sẵn có hiệu quả.
tiêu đề cấp đầu tiên
Câu hỏi thường gặp: Nếu một số dữ liệu không có sẵn thì sao? Với ZK-SNARK, bạn có thể chắc chắn rằng mọi thứ đều hợp lệ, điều đó chưa đủ sao?
Có một số lập luận lý thuyết thông tin mạnh mẽ rằng vấn đề là cơ bản và không có thủ thuật gọn gàng nào có sẵn để giải quyết nó.
tiêu đề cấp đầu tiên
Vậy làm cách nào để kiểm tra xem 1 MB dữ liệu có khả dụng hay không mà không cần thử tải xuống? Nghe có vẻ không thể!
Điều quan trọng là một kỹ thuật được gọi là lấy mẫu dữ liệu sẵn có. Lấy mẫu tính khả dụng của dữ liệu hoạt động như sau:
Sử dụng một công cụ gọi là mã hóa xóa để mở rộng dữ liệu có N khối thành dữ liệu có 2N khối, sao cho bất kỳ N khối nào trong dữ liệu đó đều có thể khôi phục toàn bộ dữ liệu.
Kiểm tra tính khả dụng, thay vì cố tải xuống toàn bộ dữ liệu, người dùng chỉ cần chọn ngẫu nhiên một số vị trí cố định trong khối (ví dụ: 30 vị trí) và chỉ khi họ tìm thấy thành công khối trong khối ở tất cả các vị trí họ đã chọn, khối sẽ được chấp nhận.
ZK-SNARK có thể được sử dụng để xác minh xem mã xóa trên dữ liệu có chính xác hay không và sau đó có thể sử dụng các nhánh Merkle để xác minh các khối riêng lẻ. Ngoài ra, có thể sử dụng các cam kết đa thức (ví dụ: cam kết Kate (còn gọi là KZG), về cơ bản thực hiện mã hóa xóa, bằng chứng về một phần tử và xác minh tính chính xác trong một thành phần đơn giản - đây là cách sử dụng ethereum sharding.
tiêu đề cấp đầu tiên
Đánh giá: Làm thế nào để chúng tôi đảm bảo mọi thứ hoạt động bình thường trở lại?
Giả sử chúng ta có 100 khối và muốn xác minh hiệu quả tính chính xác của tất cả các khối mà không cần dựa vào các ủy ban. Chúng ta cần làm như sau:
Mỗi khách hàng thực hiện lấy mẫu tính khả dụng của dữ liệu cho mỗi khối, xác minh rằng dữ liệu trong mỗi khối có sẵn, ngay cả khi kích thước của toàn bộ khối là 1 megabyte hoặc lớn hơn, mỗi khối chỉ cần tải xuống vài nghìn byte. Một khách hàng sẽ chỉ chấp nhận một khối nếu tất cả dữ liệu cho thử thách về tính khả dụng của nó đã được phản hồi chính xác.
Bây giờ chúng tôi đã xác minh tính khả dụng của dữ liệu, việc xác minh tính chính xác trở nên dễ dàng hơn. Có hai phương pháp:
1. Chúng ta có thể sử dụng ZK-SNARK. Mỗi khối có một ZK-SNARK để chứng minh tính chính xác.
2. Chúng tôi có thể sử dụng bằng chứng gian lận: một số người tham gia đã cam kết gửi tiền có thể ký vào tính chính xác của từng khối. Các nút khác, được gọi là người thách thức (hoặc ngư dân) kiểm tra ngẫu nhiên và cố gắng xử lý các khối hoàn toàn. Vì chúng tôi đã kiểm tra tính khả dụng của dữ liệu nên có thể tải xuống dữ liệu và xử lý đầy đủ bất kỳ khối cụ thể nào. Nếu họ tìm thấy một khối không hợp lệ, họ sẽ đưa ra một thử thách để mọi người xác thực. Nếu khối đó bị hỏng, thì khối đó và tất cả các khối trong tương lai phụ thuộc vào nó cần phải được tính toán lại.
Trong trường hợp Ethereum sharding, kế hoạch ngắn hạn là dành cho các khối phân đoạn chỉ chứa dữ liệu; nghĩa là, sharding hoàn toàn là một "công cụ cung cấp dữ liệu" sử dụng không gian dữ liệu an toàn này cùng với bằng chứng gian lận hoặc ZK-SNARK để đạt được hiệu quả cao. Khả năng xử lý giao dịch an toàn thông lượng là công việc của bản tổng hợp lớp 2. Tuy nhiên, hoàn toàn có thể tạo một hệ thống tích hợp sẵn như vậy để bổ sung khả năng thực thi thông lượng cao "gốc".
tiêu đề cấp đầu tiên
Các thuộc tính chính của một hệ thống sharding là gì? Thỏa hiệp là gì?
Mục tiêu chính của sharding là tái tạo càng gần càng tốt các thuộc tính bảo mật quan trọng nhất của các chuỗi khối truyền thống (không được phân mảnh), nhưng không yêu cầu mọi nút phải xác minh cá nhân mọi giao dịch.
Mảnh vỡ rất gần. Trong một chuỗi khối truyền thống:
Các khối không hợp lệ không thể đi qua vì trình xác thực sẽ 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ể đi qua vì trình xác thực không thể tải chúng xuống và bỏ qua chúng.
Trong một chuỗi khối phân mảnh 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 vì:
Bằng chứng gian lận sẽ nhanh chóng bắt được chúng và thông báo cho toàn bộ mạng về tính không chính xác của khối và trừng phạt nghiêm khắc người tạo;
ZK-SNARK chứng minh tính chính xác, chúng tôi 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 sử dụng được không thể vượt qua vì:
Nếu một khối có ít hơn 50% dữ liệu khả dụng, thì đối với mỗi khách hàng, ít nhất một lần kiểm tra mẫu 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ều này sẽ khiến khách hàng từ chối khối;
Nếu ít nhất 50% dữ liệu trong một khối có sẵn, thì toàn bộ khối thực sự có sẵn, vì chỉ cần một nút trung thực để xây dựng lại phần còn lại của khối.
Các chuỗi TPS cao truyền thống không có sharding không thể cung cấp những đảm bảo này. Một hệ sinh thái đa chuỗi không thể 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ó (các chuỗi có thể chia sẻ bảo mật, nhưng nếu điều này không được thực hiện tốt, nó sẽ trở thành một chuỗi TPS truyền thống trên thực tế với mọi nhược điểm, nếu được thực hiện tốt, nó sẽ chỉ là một triển khai phức tạp hơn của các kỹ thuật phân mảnh ở trên).
Sidechains phụ thuộc nhiều vào việc triển khai, nhưng chúng thường dễ bị ảnh hưởng bởi các điểm yếu của chuỗi TPS cao truyền thống (nếu chúng chia sẻ công cụ khai thác/trình xác nhận) hoặc hệ sinh thái đa chuỗi (nếu chúng không chia sẻ trình khai thác/trình xác nhận). Shard chain có thể tránh được những vấn đề này.
Tuy nhiên, có một số vết nứt trên lớp giáp của hệ thống bảo vệ. Điều đáng chú ý là:
Chuỗi phân đoạn chỉ dựa vào các ủy ban dễ bị tấn công bởi các đối thủ thích ứng và có trách nhiệm giải trình yếu hơn. Nghĩa là, nếu một kẻ thù có khả năng tấn công (hoặc tắt) bất kỳ nhóm nút nào mà họ chọn trong thời gian thực, thì họ chỉ cần tấn công một nhóm nhỏ các nút để phá vỡ một ủy ban. Hơn nữa, nếu một đối thủ (dù là đối thủ thích ứng hay chỉ là kẻ tấn công 50%) làm hỏng một ủy ban, thì chỉ một phần nhỏ bị phạt. Đây là một lý do quan trọng khác khiến việc lấy mẫu tính khả dụng của dữ liệu, cùng với bằng chứng gian lận hoặc ZK-SNARK, là một bổ sung tuyệt vời cho các kỹ thuật lấy mẫu ngẫu nhiên.
Việc lấy mẫu tính khả dụng của dữ liệu chỉ an toàn nếu có đủ số lượng khách hàng trực tuyến cùng nhau đưa ra đủ yêu cầu lấy mẫu tính khả dụng của dữ liệu mà phản hồi của họ hầu như luôn trùng lặp để chiếm ít nhất 50% số khối. Trong thực tế, điều này có nghĩa là phải có vài trăm khách hàng trực tuyến (và con số này tăng theo tỷ lệ dung lượng hệ thống so với dung lượng nút riêng lẻ). Đây là mô hình tin cậy thiểu số trong n - thường khá đáng tin cậy, nhưng chắc chắn không đáng tin cậy bằng tin cậy 0-in-n cho các nút trong chuỗi không phải phân đoạn.
Nếu một chuỗi phân đoạn dựa vào bằng chứng gian lận, thì nó dựa vào 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 hoàn chỉnh trước khi các chương trình ngăn chặn gian lận xuất hiện và cho thấy rằng nó sai. May mắn thay, nếu chúng ta tuân theo quy tắc nghiêm ngặt về hoàn nguyên tất cả các khối không hợp lệ sau khi chúng được tìm thấy, thì ngưỡng này là tham số do người dùng đặt: mỗi người dùng chọn khoảng thời gian họ đợi kết quả cuối cùng và nếu họ không muốn đợi đủ Lâu ngày phát sinh thua lỗ, người dùng cẩn trọng hơn có thể yên tâm về độ an toàn. Tuy nhiên, điều này làm giảm 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 vấn đề này.
Cần phải truyền khối lượng dữ liệu thô lớn, điều này làm tăng nguy cơ lỗi trong các điều kiện mạng khắc nghiệt. Lượng dữ liệu nhỏ dễ gửi hơn lượng dữ liệu lớn. Nếu trình khám phá khối muốn lưu toàn bộ chuỗi, nó cần lưu trữ nhiều dữ liệu hơn.
Các chuỗi khối được chia nhỏ dựa trên mạng ngang hàng được chia nhỏ, với mỗi "mạng con" p2p dễ bị tấn công hơn vì nó có ít nút hơn. Mô hình mạng con để lấy mẫu tính khả dụng của dữ liệu làm giảm bớt vấn đề này vì có một số dư thừa giữa các mạng con, nhưng vẫn có rủi ro.
Ngẫu nhiên, nếu thông lượng của một chuỗi khối được phân mảnh trở nên quá cao, thì rủi ro bảo mật của nó sẽ trở nên lớn hơn, đó là lý do chính khiến các nỗ lực mở rộng quy mô sang phân mảnh siêu bậc hai phần lớn đã bị bỏ dở; có vẻ như việc duy trì phân mảnh bậc hai chỉ là phân mảnh bậc hai là một sự thỏa hiệp tốt đẹp.
tiêu đề cấp đầu tiên
Tại sao không tập trung sản xuất và xác minh phân đoạn?
Một giải pháp thay thế thường được đề xuất cho sharding là xây dựng một chuỗi có cấu trúc tương tự như chuỗi TPS cao tập trung, ngoại trừ việc nó sử dụng lấy mẫu dữ liệu sẵn có và sharding để xác minh tính hợp lệ và tính khả dụng.
Điều này cải thiện các chuỗi TPS cao tập trung hiện đang tồn tại, nhưng nó vẫn yếu hơn nhiều so với các hệ thống phân mảnh. Cái này có một vài nguyên nhân:
Trong các chuỗi TPS cao, rất khó để phát hiện sự kiểm duyệt của nhà sản xuất khối. Phát hiện kiểm duyệt yêu cầu (i) có thể xem xét mọi giao dịch và xác minh rằng không có giao dịch nào rõ ràng đáng để tham gia nhưng không thể tham gia hoặc (ii) có mô hình tin cậy 1 trong n giữa các nhà sản xuất khối và xác minh rằng không có các khối không thể nhập được. Trong chuỗi TPS tập trung cao, (i) không thể, (ii) khó hơn, vì số lượng nút nhỏ khiến mô hình tin cậy 1 trên n dễ bị sụp đổ hơn, nếu thời gian khối của chuỗi quá lớn đối với DAS Nhanh (như hầu hết các chuỗi TPS cao tập trung đều làm), thật khó để chứng minh rằng các khối của nút không bị từ chối vì tất cả chúng được xuất bản quá chậm.
Nếu phần lớn các nhà sản xuất khối và thành viên hệ sinh thái cố gắng thực hiện một thay đổi giao thức không mong muốn, khách hàng của người dùng chắc chắn sẽ tìm thấy nó, nhưng cộng đồng sẽ khó nổi loạn và phân nhánh hơn vì họ sẽ cần phải tạo ra một bộ mới các nút thông lượng cao rất tốn kém để duy trì một chuỗi duy trì các quy tắc cũ.
Cơ sở hạ tầng tập trung dễ bị các tác nhân bên ngoài giám sát hơn. Thông lượng cao của các nút tạo khối khiến chúng rất dễ bị phát hiện và thậm chí còn dễ tắt hơn. Về mặt logic, việc kiểm duyệt HPC chuyên dụng dễ dàng hơn nhiều so với việc theo dõi máy tính xách tay của một người dùng cá nhân.
Một hệ thống sharding phù hợp được sử dụng tốt nhất làm lớp cơ sở. Với lớp cơ sở được chia nhỏ, chúng tôi luôn có thể tạo một hệ thống sản xuất tập trung bằng cách xây dựng nó dưới dạng tổng số. Tuy nhiên, nếu chúng ta có một lớp cơ sở dựa vào sản xuất khối tập trung, thì chúng ta không thể xây dựng lớp 2 phi tập trung hơn trên lớp đó.
