Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Vitalik: Làm sáng tỏ những lợi thế của "sharding" từ góc độ kỹ thuật
ECN以太坊中国
特邀专栏作者
2021-05-19 14:58
Bài viết này có khoảng 8991 từ, đọc toàn bộ bài viết mất khoảng 13 phút
Sharding là chìa khóa cho khả năng mở rộng trong tương lai của Ethereum

Nguồn | Vitalik.ca

Tác giả | Vitalik Buterin

Nguồn | Vitalik.ca

Đặc biệt cảm ơn Dankrad Feist và Aditya Asgaonkar đã hiệu đính.


Sharding là tương lai của khả năng mở rộng Ethereum và là chìa khóa để cho phép hệ sinh thái Ethereum đạt được hàng nghìn giao dịch mỗi giây để hầu hết mọi người có đủ khả năng sử dụng và trở thành người dùng Ethereum. Tuy nhiên, sharding là một trong những khái niệm bị hiểu lầm nhiều nhất trong hệ sinh thái Ethereum và trong hệ sinh thái blockchain rộng lớn hơn. Nó đề cập đến một tập hợp rất cụ thể các khái niệm có đặc điểm riêng của chúng, nhưng thường bị nhầm lẫn với các công nghệ có thuộc tính bảo mật yếu hơn và khác biệt. Mục đích của bài đăng này là giới thiệu các thuộc tính cụ thể của sharding, phân biệt nó với các kỹ thuật không phải sharding khác và hệ thống sharding hy sinh những gì để đạt được các thuộc tính này.

Mô tả hình ảnh

Chú thích: Ethereum sharding system, hình gốc là của Hsiao-wei Wang, thiết kế bởi Quantstamp

Tam giác bất khả thi có thể mở rộng

Cách tốt nhất để giới thiệu sharding là bắt đầu bằng cách mô tả một vấn đề, Tam giác bất khả thi về khả năng mở rộng, dẫn đến giải pháp.

Theo Tam giác bất khả thi về khả năng mở rộng, một chuỗi khối muốn đạt được ba đặc điểm, nhưng nếu sử dụng các phương tiện kỹ thuật đơn giản thì chỉ có thể thực hiện được hai trong số ba đặc điểm đó. Ba thuộc tính như sau:

➤ Khả năng mở rộng: Chuỗi khối có thể xử lý và xác minh nhiều giao dịch hơn so với một nút thông thường, chẳng hạn như máy tính xách tay dành cho người tiêu dùng.

➤ Phi tập trung: Hoạt động của chuỗi khối có thể độc lập với một nhóm nhỏ những người tham gia tập trung lớn. Điều này thường được hiểu có nghĩa là ngay cả khi phần lớn các nút là trung thực, người ta không nên tin tưởng vào một nhóm nút không thể truy cập được bằng máy tính xách tay cấp độ người tiêu dùng.

➤ Bảo mật:

Chuỗi khối có thể chống lại một số lượng lớn các nút đang cố gắng tấn công. Lý tưởng nhất là nó nên chống lại 50% số nút. Nói chung, nó nên chống lại hơn 25% số nút, nhưng chỉ chống lại 5% số nút thì không thể đảm bảo an ninh.

Dưới đây là ba loại "giải pháp đơn giản" khác nhau, nhưng những giải pháp này chỉ thực hiện hai trong số ba thuộc tính.

➤ Chuỗi khối truyền thống bao gồm Bitcoin, Ethereum trước PoS/sharding, Litecoin và các chuỗi khối tương tự khác. Các chuỗi khối này dựa vào mọi người tham gia chạy một nút đầy đủ để xác minh mọi giao dịch, do đó đảm bảo tính phi tập trung và bảo mật, nhưng không đảm bảo khả năng mở rộng.

➤ Các chuỗi khối TPS cao bao gồm các chuỗi DPoS, nhưng cũng bao gồm nhiều chuỗi khối khác. Loại chuỗi khối này dựa vào một số lượng nhỏ các nút để duy trì sự đồng thuận, thường là từ 10-100 và người dùng phải tin tưởng vào phần lớn các nút. Như đã định nghĩa ở trên, giải pháp này đạt được khả năng mở rộng và bảo mật, nhưng không phân cấp.

➤ Hệ sinh thái đa chuỗi thường đề cập đến "sự mở rộng ra bên ngoài" của chuỗi khối, nghĩa là cho phép triển khai các ứng dụng khác nhau trên các chuỗi khác nhau và giao tiếp bằng các giao thức liên lạc giữa các chuỗi. Điều này đạt được sự phân cấp và khả năng mở rộng, nhưng không an toàn, bởi vì kẻ tấn công chỉ cần kiểm soát phần lớn các nút đồng thuận trong một trong các chuỗi (thường là dưới 1% toàn bộ hệ sinh thái) để gây ra thiệt hại và có thể gây ra phản ứng dây chuyền, khiến thiệt hại lớn cho các ứng dụng trong các chuỗi khác.

Công nghệ phân mảnh có thể nhận ra ba đặc điểm nêu trên cùng một lúc. Một chuỗi khối phân mảnh có các đặc điểm sau:

➤ Khả năng mở rộng: Khối lượng giao dịch mà nó xử lý cao hơn nhiều so với một nút đơn lẻ.

➤ Bảo mật: Kẻ tấn công không thể khởi động các cuộc tấn công từng phần vào hệ thống thông qua một số tài nguyên và chỉ có thể cố gắng kiểm soát toàn bộ hệ thống để tấn công.

Phần còn lại của bài viết này thảo luận về cách các chuỗi khối phân mảnh có thể đạt được những lợi thế này.

tiêu đề cấp đầu tiên

lấy mẫu ngẫu nhiên các mảnh vỡ

Phiên bản dễ hiểu nhất của sharding là sharding bằng cách lấy mẫu ngẫu nhiên. So với hình thức sharding được xây dựng trong hệ sinh thái Ethereum, các shard lấy mẫu ngẫu nhiên có đặc tính tin cậy yếu hơn, nhưng công nghệ áp dụng cho sharding Ethereum đơn giản hơn.


Ý tưởng cốt lõi của sharding được giải thích bên dưới. Giả sử có một chuỗi khối PoS với số lượng người xác minh rất lớn, chẳng hạn như 10.000 người xác minh và số lượng khối rất lớn cần được xác minh, chẳng hạn như 100 khối. Không một máy tính nào có thể xác thực 100 khối đó cho đến khi tập hợp các khối tiếp theo được tạo ra.

Để giải quyết vấn đề này, chúng ta cần phân phối công việc xác minh một cách ngẫu nhiên. Chúng tôi xáo trộn ngẫu nhiên danh sách các trình xác thực, sau đó chọn 100 trình xác thực đầu tiên trong danh sách để xác thực khối đầu tiên, nhóm 100 trình xác thực thứ hai để xác thực khối thứ hai, v.v. Các phân đoạn được lấy mẫu ngẫu nhiên xác thực các khối hoặc thực hiện các tác vụ khác theo cách này và những trình xác thực được chọn ngẫu nhiên này được gọi là các ủy ban.

Sau khi trình xác minh xác minh một khối, nó sẽ chứng minh điều đó bằng cách đưa ra chữ ký. Tất cả các nút khác chỉ cần xác minh 10.000 chữ ký thay vì 100 khối đầy đủ, điều này sẽ giảm rất nhiều khối lượng công việc, đặc biệt là sau khi áp dụng công nghệ tổng hợp chữ ký BLS. Quá trình phát sóng của mỗi khối không cần phải đi qua cùng một mạng P2P mà thông qua các mạng con khác nhau, 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 các khối khác mà chúng muốn xác minh.

Hãy tưởng tượng điều gì sẽ xảy ra nếu sức mạnh tính toán của mỗi nút được tăng lên gấp 2 lần. Đối với mỗi nút, số lượng chữ ký có thể được xác minh an toàn hiện tăng gấp 2 lần, do đó số tiền cam kết tối thiểu có thể giảm và số lượng người xác nhận có thể tăng gấp 2 lần, do đó có thể tạo 200 ủy ban thay vì 100. Do đó, số lượng xác minh khối trên mỗi vị trí có thể lên tới 200 thay vì 100. Ngoài ra, dung lượng của mỗi khối có thể được mở rộng gấp 2 lần. Do đó, dung lượng blockchain tổng thể sẽ tăng gấp 4 lần.

Chúng ta có thể giải thích nguyên tắc đằng sau nó bằng thuật ngữ toán học. Theo ký hiệu Big O, chúng tôi sử dụng "O(C)" để biểu thị sức mạnh tính toán của một nút. O(C) đại diện cho kích thước khối mà một chuỗi khối truyền thống có thể xử lý. Như đã đề cập ở trên, chuỗi phân đoạn có thể xử lý song song các khối có kích thước O(C) (hãy nhớ rằng mỗi nút có tổng chi phí là O(1) để xác minh từng khối, vì mỗi nút chỉ cần xác minh một số lượng chữ ký cố định). Do đó, dung lượng của mỗi khối là O(C) và tổng dung lượng của chuỗi phân đoạn là O(C^2). Đây là lý do tại sao loại sharding này được gọi là sharding bậc hai và dựa trên vai trò quan trọng của sharding bậc hai, 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.

Mọi người thường đặt câu hỏi: "sự hình thành ngẫu nhiên của 100 ủy ban khác với việc chia thành 100 chuỗi khối riêng biệt như thế nào?"
Sự khác biệt chủ yếu ở hai khía cạnh sau:

1. Lấy mẫu ngẫu nhiên có thể ngăn kẻ tấn công tập trung sức mạnh tính toán vào một phân đoạn nhất định. Trong một hệ sinh thái đa chuỗi bao gồm 100 chuỗi khối, kẻ tấn công có thể gây ra thiệt hại chỉ với 0,5% tổng số tiền cam kết, nghĩa là một cuộc tấn công 51% có thể được thực hiện đối với một trong các chuỗi khối. Trong chuỗi phân đoạn, kẻ tấn công phải sở hữu 30-40% tổng số cổ phần để đạt được mục tiêu tương tự, nói cách khác, tính bảo mật của chuỗi được chia sẻ giữa các phân đoạn. Tất nhiên, kẻ tấn công có thể đợi cho đến khi anh ta may mắn và vô tình đạt được 51% sức mạnh tính toán trong một mảnh, mặc dù số tiền cam kết thấp hơn 50%, nhưng đối với kẻ tấn công có số tiền cam kết ít hơn nhiều 51%, độ khó khởi động một cuộc tấn công tăng theo cấp số nhân. Nếu cổ phần ít hơn 30%, gần như không thể khởi động một cuộc tấn công.

2. Nếu có một khối xấu ở một trong các phân đoạn, toàn bộ chuỗi sẽ được tổ chức lại để tránh chấp nhận khối đó, được gọi là khớp nối chặt chẽ. Theo hợp đồng xã hội, ngay cả khi một khối xấu xuất hiện trong một phân đoạn duy nhất, nó không thể được chấp nhận bởi chuỗi chính. Một khi khối xấu được tìm thấy, phân đoạn đó sẽ bị từ chối. phương pháp khế ước xã hội. Với cơ chế này, từ quan điểm ứng dụng, chuỗi phân đoạn được bảo mật hoàn hảo và hợp đồng A có thể tin tưởng hợp đồng B, ngay cả khi do chuỗi khối bị tấn công, hợp đồng B không thành công và khôi phục toàn bộ lịch sử, trong đó bao gồm cả các giao dịch trong hợp đồng A bị ảnh hưởng do các vấn đề với hợp đồng B.

Hai điểm 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 bảo tồn các thuộc tính bảo mật chính của các điều kiện chuỗi đơn, điều không thể đạt được với hệ sinh thái đa chuỗi.

Cải thiện sharding thông qua một mô hình bảo mật tốt hơn

Đối với các chuỗi TPS cao tập trung hơn, điểm yếu chính của chúng là thiếu bảo mật bổ sung này. Chuỗi khối này không và không thể có văn hóa người dùng thông thường chạy các nút, do đó, các nút chính và người chơi trong hệ sinh thái sẽ dễ dàng tập hợp lại với nhau và thực thi thay đổi giao thức, ngay cả khi cộng đồng cực kỳ không thích điều đó. Tệ hơn nữa, theo mặc định, nút của người dùng sẽ chấp nhận thay đổi này. Sau một thời gian, người dùng sẽ nhận thấy, nhưng đến lúc đó, thay đổi đã trở thành việc đã rồi, nghĩa là gánh nặng điều phối chính, tức là từ chối thay đổi, sẽ do người dùng gánh chịu và sẽ phải đưa ra quyết định đau đớn. trở lại một ngày hoặc nhiều bản ghi giao dịch mà những người dùng khác cho rằng đã được hoàn tất.

Lý tưởng nhất là chúng tôi muốn áp dụng một hình thức sharding có phương pháp xác minh tránh được giả định về độ tin cậy 51% đã đề cập ở trên và duy trì tính bảo mật cao của các chuỗi khối truyền thống, vốn chỉ có thể được xác minh đầy đủ. Và đó là điều mà hầu hết các nghiên cứu của chúng tôi đã thực hiện 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 ta có thể chia vấn đề xác minh khả năng mở rộng có thể chống lại cuộc tấn công 51% thành hai trường hợp:

➤ Xác thực phép tính: kiểm tra xem một số phép tính nhất định có được thực hiện chính xác hay không, giả sử bạn có tất cả dữ liệu đầu vào để hoàn thành phép tính

➤ Xác thực tính khả dụng của dữ liệu: kiểm tra xem dữ liệu đầu vào cho chính tính toán có được lưu trữ ở dạng nào đó và có sẵn để tải xuống nếu cần; kiểm tra này được thực hiện mà không thực sự tải xuống tất cả dữ liệu đầu vào, vì dữ liệu có thể quá lớn để tải xuống cả hai .

Xác thực khối trong chuỗi khối liên quan đến cả tính toán và kiểm tra tính khả dụng của dữ liệu, tức là bạn cần tin tưởng 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 trong khối là thực thi chính xác của các giao dịch đó, nhưng bạn cũng cần Thực hiện đảm bảo rằng đủ dữ liệu trong khối thực sự được xuất bản để 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 xử lý khối. Điểm thứ hai liên quan đến một khái niệm rất tế nhị nhưng quan trọng, vấn đề về tính sẵn có của dữ liệu. Vấn đề này sẽ được thảo luận dưới đây.

Xác minh tính toán có thể mở rộng tương đối dễ thực hiện, sử dụng hai loại kỹ thuật: bằng chứng gian lận và ZK-SNARK

Bằng chứng gian lận có thể xác minh tính toán trong khi vẫn đảm bảo khả năng mở rộng

Sau đây là phần giới thiệu ngắn gọn về hai loại công nghệ:

➤ Bằng chứng gian lận (fraud proof) là một hệ thống chấp nhận kết quả của một phép tính, và bạn có thể yêu cầu một người có tiền ký quỹ ký vào một thông điệp có dạng: "Tôi chứng minh rằng nếu tôi sử dụng đầu vào X để tính toán C, tôi nhận đầu ra Y". Bạn sẽ tin tưởng vào thông báo theo mặc định, nhưng những người khác có tiền gửi cam kết sẽ có cơ hội phản đối kết quả tính toán. Họ có thể ký vào một thông báo có nội dung "Tôi không đồng ý, kết quả phải là Z, không phải Y". Tất cả các nút sẽ thực hiện tính toán. Lỗi của một trong hai bên này sẽ dẫn đến việc mất tiền đặt cọc và tất cả các tính toán dựa trên tính toán sai sẽ được thực hiện lại.

Tính toán dựa trên quy mô bằng chứng gian lận vì trong "trường hợp bình thường", bạn không phải chạy các phép tính phức tạp, bạn chỉ cần xác minh một chữ ký duy nhất. Có những trường hợp đặc biệt mà bạn phải xác minh tính toán trên chuỗi sau thử thách, nhưng những trường hợp đặc biệt rất hiếm vì việc kích hoạt điều này rất tốn kém vì một trong những người yêu cầu ban đầu hoặc người thách thức sẽ mất rất nhiều tiền ký gửi của họ. ZK-SNARK đơn giản hơn về mặt khái niệm, chúng chỉ thay thế các phép tính bằng các bằng chứng rẻ hơn để xác minh, nhưng toán học đằng sau chúng phức tạp hơn nhiều.

Có một hệ thống bán mở rộng xác minh tính toán ở dạng có thể mở rộng nhưng yêu cầu mọi nút xác minh tất cả dữ liệu. Nếu hệ thống có thể thay thế hầu hết dữ liệu thông qua tính toán thông qua một loạt các kỹ thuật nén, thì hiệu quả có thể được cải thiện rất nhiều. Đó là những gì Rollup làm.

tiêu đề cấp đầu tiên

Xác minh khả năng mở rộng tính khả dụ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 của một hoạt động dựa trên điều kiện là sau khi báo cáo ban đầu được gửi, dữ liệu đầu vào của hoạt động được xuất bản trên chuỗi, do đó nếu ai đó bắt đầu thử thách, việc thực hiện thử thách hoàn toàn giống như "môi trường" của việc thực hiện ban đầu. Đối với việc kiểm tra tính sẵn sàng của dữ liệu, các thao tác trên không thể thực hiện được, vì nếu để công bố trên chuỗi thì lượng dữ liệu cần kiểm tra là quá lớn. Do đó, đối với tính khả dụng của dữ liệu, cách tạo sơ đồ bằng chứng gian lận đã trở thành một vấn đề quan trọng, ai đó có thể tuyên bố rằng "dữ liệu X có sẵn", nhưng không xuất bản nó trên chuỗi, đợi người thách thức xuất hiện rồi xuất bản dữ liệu cho toàn bộ mạng sau khi đưa ra thử thách. làm cho những người tham gia khác trong mạng nghĩ rằng người thử thách đã sai

"Tình thế tiến thoái lưỡng nan của ngư dân" trong hình dưới đây có thể giải thích rất rõ lý do:

Ý tưởng cốt lõi của "Fiserman's Dilemma" liên quan đến hai tình huống, một là V1 là nhà xuất bản ác ý nhưng V2 là kẻ thách thức trung thực, hai là V1 là nhà xuất bản trung thực và V2 là kẻ thách thức ác ý. Hai trường hợp không có gì khác biệt đối với bất kỳ ai không cố tải xuống dữ liệu cụ thể đó vào thời điểm đó. Tất nhiên, trong một chuỗi khối phi tập trung có thể mở rộng, mỗi nút riêng lẻ chỉ được tải xuống một phần nhỏ dữ liệu, do đó, chỉ một phần nhỏ các nút có thể biết mọi thứ ngoài sự phân kỳ.

Vì không thể phân biệt bên nào đúng nên cũng không thể tạo ra giải pháp chống gian lận hiệu quả cho tính khả dụng của dữ liệu.

Mọi người thường hỏi: "Nếu một số dữ liệu không có sẵn thì sao? ZK-SNARK có thể đảm bảo tính hợp lệ của mọi thứ, nhưng điều đó vẫn chưa đủ?"

Thật không may, chỉ riêng tính hợp lệ của dữ liệu là không đủ để giữ cho chuỗi khối hoạt động. Lý do là nếu blockchain có thể được xác minh, nhưng tất cả dữ liệu không có sẵn, người dùng sẽ không thể cập nhật dữ liệu và tạo bằng chứng để xác minh các khối trong tương lai. Nếu kẻ tấn công có thể tạo một khối, mặc dù khối đó có thể được xác minh, nhưng dữ liệu không có sẵn, điều này có thể cản trở hoạt động của chuỗi khối một cách hiệu quả. Một số kẻ tấn công cũng không thể tải dữ liệu tài khoản của một người dùng cụ thể lên cho đến khi người dùng đó trả tiền chuộc, vì vậy đây không chỉ là vấn đề về sự sống.

Có một số lập luận lý thuyết thông tin mạnh mẽ rằng vấn đề này là cơ bản và không có giải pháp tốt (chẳng hạn như việc sử dụng bộ tích lũy mật mã). Xem bài viết này để biết chi tiết.

Vì vậy, làm cách nào để bạn kiểm tra xem 1 MB dữ liệu có sẵn mà không cần tải xuống không? Điều này nghe có vẻ không thể!

Giải pháp chính là một kỹ thuật được gọi là lấy mẫu dữ liệu sẵn có. Kỹ thuật này hoạt động như sau:

1. Thông qua công cụ mã xóa, dữ liệu có N phân đoạn được chia thành 2N phân đoạn dữ liệu, vì vậy chỉ N phân đoạn dữ liệu bất kỳ mới có thể khôi phục toàn bộ dữ liệu.

2. Nếu người dùng muốn kiểm tra tính khả dụng, thay vì tải xuống tất cả dữ liệu, người dùng chọn ngẫu nhiên vị trí trong khối (hằng số, chẳng hạn như 30) và chỉ chấp nhận khối khi tìm thấy tất cả dữ liệu ở vị trí đã chọn trong khối .

Với mã xóa, chúng tôi có thể thay đổi vấn đề từ "kiểm tra tính khả dụng của dữ liệu 100%" (tức là đảm bảo rằng mọi phần dữ liệu đều khả dụng) sang "kiểm tra tính khả dụng của dữ liệu 50%" (tức là có ít nhất một nửa dữ liệu). Lấy mẫu ngẫu nhiên giải quyết vấn đề khả năng sử dụng 50%. Nếu có ít hơn 50% dữ liệu, thì ít nhất một trong hai kiểm tra này là không khả thi và nếu ít nhất 50% dữ liệu có sẵn, thì, mặc dù một số nút có thể không biết tính khả dụng của một khối, chỉ một nút trung thực có thể khôi phục 50% dữ liệu khối còn lại bằng cách chạy chương trình tái tạo mã xóa. Vì vậy, để kiểm tra tính khả dụng của khối 1 MB, bạn không cần tải xuống 1 MB dữ liệu, chỉ cần một vài KB. Điều này cho phép mỗi khối được kiểm tra tính khả dụng của dữ liệu. Xem bài đăng này về cách sử dụng mạng con P2P để kiểm tra dữ liệu hiệu quả

Thông qua bằng chứng ZK-SNARK, tính chính xác của mã xóa dữ liệu cũng có thể được xác minh và sau đó các nhánh của cây Merkle được sử dụng để xác minh từng khối dữ liệu. Một cách khác để xác minh là sử dụng các cam kết đa thức, chẳng hạn như cam kết Kate (cam kết KZG), về cơ bản, cam kết được mã hóa xóa thông qua một thành phần đơn giản chứng minh từng yếu tố và xác minh tính chính xác, đó là Ethereum.

Tóm tắt: Làm thế nào để đảm bảo tính chính xác của tất cả dữ liệu?

Giả sử có 100 khối và bạn không muốn dựa vào ủy ban để xác minh hiệu quả tính chính xác của tất cả các khối. Để đạt được mục tiêu trên, chúng ta cần thực hiện các biện pháp sau:

  • ➤ Mỗi client thực hiện lấy mẫu tính khả dụng của dữ liệu trên mỗi khối để xác minh xem dữ liệu trong mỗi khối có khả dụng hay không, đồng thời cần tải xuống vài KB dữ liệu trên mỗi khối, ngay cả khi kích thước tổng thể của khối là MB trở lên. . Các khối chỉ được chấp nhận bởi các khách hàng ngang hàng sau khi tất cả các thách thức về tính khả dụng của dữ liệu đã được trả lời chính xác.

  • ➤ Khi tính khả dụng của dữ liệu được xác minh, việc xác minh tính chính xác của dữ liệu sẽ trở nên dễ dàng hơn. Tính đúng đắn được xác minh bằng hai kỹ thuật:

Chúng tôi có thể sử dụng Bằng chứng gian lận, trong đó một số người tham gia đã đặt cọc tiền gửi có thể cung cấp chữ ký chứng minh tính chính xác của từng khối. Các nút thách thức hoặc ngư dân khác sẽ thực hiện kiểm tra ngẫu nhiên và cố gắng xử lý toàn bộ khối. Vì tính khả dụng của dữ liệu đã được kiểm tra, các nút khác luô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 tìm thấy một khối không hợp lệ, nút sẽ đưa ra một thách thức mà mọi người có thể xác minh. Nếu khối được chứng minh là một khối xấu, tất cả các khối dựa trên khối này cần phải được tính toán lại.

Chúng ta có thể sử dụng công nghệ ZK-SNARK. Bằng cách này, tính chính xác của từng khối có thể được xác minh bằng công nghệ này.

➤ Trong hai trường hợp trên, cho dù khối lớn đến đâu, mỗi khách hàng chỉ cần thực hiện một lượng nhỏ công việc xác minh trên khối. Đối với bằng chứng gian lận, các khối đôi khi cần phải được xác thực đầy đủ trên chuỗi, nhưng điều này hiếm khi xảy ra vì ngay cả một thách thức cũng sẽ rất tốn kém.

Trên đây là tóm tắt toàn văn! Trong trường hợp Ethereum sharding, kế hoạch ngắn hạn là có các khối trong phân đoạn chỉ chứa dữ liệu. Nghĩa là, vai trò của các phân đoạn này hoàn toàn là "công cụ cung cấp dữ liệu" và nhiệm vụ của bản tổng hợp Lớp 2 là sử dụng không gian dữ liệu an toàn, đồng thời sử dụng công nghệ ZK-SNARK hoặc bằng chứng gian lận để đạt được thông lượng giao dịch cao trong khi vẫn duy trì tình trạng bảo mật. Tuy nhiên, cũng có thể tạo một hệ thống nội bộ để thực thi thông lượng cao "tại chỗ".

Các thuộc tính chính của một hệ thống sharding là gì? sự đánh đổi là gì?

Mục tiêu chính của sharding là kế thừa càng nhiều 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 không được phân mảnh truyền thống, đồng thời loại bỏ nhu cầu xác minh mọi giao dịch đối với mọi nút.

Phân mảnh về cơ bản có thể đáp ứng các yêu cầu này. Sau đây là các đặc điểm của một chuỗi khối truyền thống:

➤ Không thể thêm một khối không hợp lệ vào chuỗi khối vì các nút xác thực sẽ phát hiện ra rằng khối không hợp lệ và bỏ qua nó.

➤ Không thể thêm các khối không có sẵn dữ liệu vào chuỗi khối vì người xác thực không thể tải xuống dữ liệu và chọn bỏ qua.

  • Sau đây là các đặc điểm của một chuỗi khối phân mảnh với tính bảo mật mạnh mẽ:

  • ➤ Không thể thêm các khối không hợp lệ vào chuỗi khối vì những lý do sau:

  • Bằng chứng gian lận sẽ nhanh chóng phát hiện khối, thông báo cho toàn bộ mạng rằng đó là một khối không chính xác và phạt nặng người tạo.

  • Hoặc xác minh tính chính xác của nó thông qua ZK-SNARK, vì không thể tạo bằng chứng ZK-SNARK hợp lệ cho các khối không hợp lệ.

  • ➤ Không thể thêm các khối có dữ liệu không khả dụng vào chuỗi khối vì những lý do sau:

Nếu có ít hơn 50% dữ liệu khả dụng của khối, gần như chắc chắn rằng ít nhất một mẫu kiểm tra tính khả dụng của dữ liệu sẽ không thành công đối với mỗi khách hàng, khiến khách hàng từ chối khối.

Nếu ít nhất 50% dữ liệu khối có sẵn, thì toàn bộ dữ liệu khối sẽ khả dụng vì chỉ cần một nút trung thực để khôi phục phần còn lại.

Chuỗi TPS cao truyền thống không thể đạt được các đặc điểm trên vì không có sự phân mảnh. Vấn đề mà hệ thống đa chuỗi gặp phải là nếu kẻ tấn công chọn một chuỗi để tấn công, hắn có thể dễ dàng giành quyền kiểm soát và các chuỗi trong hệ thống cũng có thể chia sẻ bảo mật, nhưng nếu bảo mật thấp thì sẽ chẳng khác gì chuỗi TPS cao truyền thống. Nó cũng sẽ kế thừa tất cả những thiếu sót của chuỗi khối truyền thống. Nếu tính bảo mật cao, bảo mật dùng chung chỉ là một triển khai phức tạp hơn của công nghệ sharding ở trên.

Sidechains phụ thuộc nhiều vào việc triển khai. Nếu chúng chia sẻ công cụ khai thác hoặc trình xác minh, chúng thường dễ mắc phải những điểm yếu của chuỗi TPS truyền thống cao; nếu chúng không chia sẻ trình khai thác hoặc trình xác minh, chúng cũng sẽ gặp phải những điểm yếu của hệ sinh thái đa chuỗi. Chuỗi mảnh tránh được những vấn đề này.

Tuy nhiên, hệ thống sharding cũng có một số mối nguy hiểm tiềm ẩn. Đặc biệt ở các khía cạnh sau:

➤ Trong trường hợp bị kẻ thù thích ứng tấn công, chuỗi phân đoạn chỉ dựa vào ủy ban rất khó đối phó và khó chịu trách nhiệm. Nghĩa là, nếu kẻ tấn công có thể thỏa hiệp hoặc chọn tắt bất kỳ nhóm nút nào trong thời gian thực, thì chỉ cần tấn công một số lượng nhỏ nút để phá vỡ một ủy ban. Ngoài ra, bất kể kẻ tấn công có khả năng phục hồi mạnh mẽ hay sở hữu 50% tổng số tiền cam kết, nếu một ủy ban bị phá hủy, toàn bộ mạng chỉ có thể xác nhận một số lượng nhỏ các nút tham gia cuộc tấn công, tức là các nút trong ủy ban. , và số tiền phạt phát sinh chỉ chiếm một lượng nhỏ số tiền cầm cố. Đâ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, kết hợp với bằng chứng gian lận hoặc ZK-SNARK, là một bổ sung quan trọng cho các kỹ thuật lấy mẫu ngẫu nhiên.

➤ Những phản hồi trùng lặp này luôn chiếm ít nhất 50% dữ liệu khối chỉ khi số lượng khách hàng trực tuyến đủ để tạo đủ yêu cầu lấy mẫu tính khả dụng của dữ liệu. Trên thực tế, điều này có nghĩa là vài trăm máy khách phải trực tuyến và con số này càng lớn thì tỷ lệ dung lượng hệ thống so với dung lượng nút riêng lẻ càng cao. Đây là mô hình tin cậy vài-of-N - nói chung là rất đáng tin cậy, mặc dù tất nhiên nó không mạnh bằng mô hình tin cậy 0-of-N về tính khả dụng của dữ liệu cho các nút 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, nó dựa trên giả định về thời gian rằng nếu mạng quá chậm, các nút có thể đã hoàn thành một khối trước khi bằng chứng gian lận cho thấy dữ liệu sai. May mắn thay, nếu bạn tuân thủ nghiêm ngặt các quy tắc, một khi tìm thấy khối không hợp lệ, tất cả các khối không hợp lệ sẽ được khôi phục. Tham số khoảng thời gian do người dùng đặt. Chờ đợi quá lâu có thể khiến bạn mất tiền, nhưng người dùng thận trọng hơn cũng an toàn hơn. Mặc dù vậy, cơ chế này có thể làm suy yếu trải nghiệm người dùng. Sử dụng ZK-SNARK để xác minh tính hợp lệ có thể giải quyết vấn đề này.

➤ Lượng dữ liệu thô cần truyền lớn hơn nhiều, làm tăng nguy cơ hỏng hóc trong các điều kiện mạng khắc nghiệt. Lượng dữ liệu nhỏ dễ truyền hơn lượng dữ liệu lớn và dễ ẩn giấu an toàn hơn nếu một chính phủ hùng mạnh cố gắng kiểm duyệt chuỗi khối. Nếu trình duyệt blockchain muốn duy trì thông tin của toàn bộ chuỗi, nó cần lưu trữ nhiều dữ liệu hơn.

Đây là những vấn đề mà xác thực dữ liệu cần tập trung vào, mặc dù theo quan điểm của chúng tôi, việc giảm tập trung hóa lớp người dùng bằng cách có nhiều ứng dụng chạy trên chuỗi thay vì thông qua các dịch vụ lớp 2 tập trung sẽ đáng chú ý hơn các khía cạnh trên. Điều đó nói rằng, trong thực tế, những vấn đề này, đặc biệt là hai vấn đề cuối cùng, áp đặt những hạn chế thực sự đối với việc tăng thông lượng của chuỗi phân đoạn vượt quá một kích thước nhất định. Sharding bậc hai chỉ có thể đạt được bậc hai hạn chế.

Nhân tiện, nếu thông lượng quá cao, rủi ro bảo mật của chuỗi shard sẽ tăng lên từng ngày, ở một mức độ lớn, đây cũng là lý do chính để từ bỏ việc mở rộng sang sharding siêu bậc hai. Một mảnh bậc hai vẫn giữ được bậc hai hữu hạn của nó dường như là một giá trị trung gian phù hợp.

tiêu đề cấp đầu tiên

Sản xuất khối được tập trung, nhưng việc phân mảnh xác minh có khả thi không?

Mọi người thường đề xuất một giải pháp thay thế cho sharding, đó là sử dụng cấu trúc tương tự như chuỗi TPS cao tập trung. Ngoài ra, sử dụng lấy mẫu và sharding tính khả dụng của dữ liệu để xác minh tính hợp lệ và tính khả dụng của dữ liệu.

Giải pháp này có thể cải thiện chuỗi khối tps cao tập trung hiện có, nhưng nó vẫn kém mạnh hơn nhiều so với hệ thống sharding. Một số trong những lý do này là như sau:

1. Trong các chuỗi TPS cao, việc phát hiện hành vi xem xét của các nhà sản xuất khối sẽ khó khăn hơn.

Giám sát 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 hợp pháp nào không được nhập hoặc (ii) sử dụng mô hình tin cậy 1-of-N giữa các nhà sản xuất khối và xác minh rằng không thể tải khối lên đến dây chuyền. Trong chuỗi TPS cao tập trung, điểm đầu tiên là không thể đạt được và điểm thứ hai khó đạt được hơn, vì số lượng nút nhỏ và thậm chí mô hình tin cậy 1 trên N cũng dễ bị phá hủy hơn và nếu thời gian tạo khối của chuỗi Quá nhanh đối với DAS (Lấy mẫu sẵn có của dữ liệu) (như hầu hết các chuỗi TPS tập trung cao đều làm), thật khó để chứng minh rằng các khối của các nút sẽ không bị từ chối chỉ vì chúng được xuất bản quá chậm.

2. 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 thi thay đổi giao thức, mặc dù thay đổi đó không được ưa chuộng, khách hàng của người dùng chắc chắn sẽ phát hiện ra thay đổi, nhưng đối với cộng đồng, việc từ chối thay đổi, khiến việc phân tách khó khăn hơn nhiều do nhu cầu chạy các nút thông lượng cao mới tốn kém để duy trì chuỗi khối dựa trên các quy tắc cũ.

3. Trong một cơ sở hạ tầng tập trung, những kẻ tấn công bên ngoài sẽ dễ dàng thực hiện kiểm duyệt hơn. Các nút sản xuất khối có thông lượng giao dịch cao và rất dễ phát hiện, cũng như dễ dàng tắt các nút này. Việc xem xét HPC chuyên dụng dễ dàng hơn nhiều về mặt chính trị và hậu cần so với việc thực hiện trên máy tính xách tay của một người dùng. Chỉnh sửa: Kiểm tra HPC chuyên dụng dễ dàng hơn về logic và thực hành so với theo dõi máy tính xách tay của người dùng cá nhân.

4. Việc chuyển điện toán hiệu năng cao sang dịch vụ đám mây tập trung sẽ gặp áp lực lớn hơn và gia tăng rủi ro, vì toàn bộ chuỗi sẽ chạy trên dịch vụ đám mây của 1-3 công ty. Nguy cơ xảy ra sự cố blockchain lớn. Các chuỗi phân mảnh nơi tất cả các trình xác thực chạy trên phần cứng riêng lẻ sẽ ít bị tấn công hơn trước cuộc tấn công này.

Sau khi hệ thống được phân mảnh hợp lý, nó có thể phù hợp hơn làm lớp cơ sở. Dựa trên lớp cơ sở được phân mảnh, bạn 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 Rollup (chẳng hạn như các trường thông lượng cao với khả năng kết hợp đồng bộ cho DeFi). Tuy nhiên, nếu lớp cơ sở dựa vào sản xuất khối tập trung, thì Lớp 2 phi tập trung hơn không thể được xây dựng trên lớp đó.

ETH
Vitalik
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina