BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Sharding (sharding) mà Eth 2.0 sẽ thực hiện là gì?

区块链大本营
特邀专栏作者
Bài viết này có khoảng 3555 từ, đọc toàn bộ bài viết mất khoảng 6 phút
Tại sao cộng đồng nhà phát triển Ethereum muốn triển khai sharding, sharding là gì và tại sao giải pháp này lại hấp dẫn đến vậy.
Tóm tắt AI
Tại sao cộng đồng nhà phát triển Ethereum muốn triển khai sharding, sharding là gì và tại sao giải pháp này lại hấp dẫn đến vậy.

Lưu ý của biên tập viên: Bài viết này đến từTrại Blockchain (ID: blockchain_camp)Lưu ý của biên tập viên: Bài viết này đến từ

Trại Blockchain (ID: blockchain_camp)

Trại Blockchain (ID: blockchain_camp)

Ethereum là nền tảng cơ bản trong tất cả các chuỗi khối đã được đồng bộ hóa với khái niệm sharding Để hiểu tại sao cộng đồng nhà phát triển Ethereum muốn triển khai sharding, điều quan trọng là phải hiểu sharding là gì và tại sao giải pháp này lại hấp dẫn đến vậy.

Theo thống kê từ ETH Gas Station, mất khoảng 1,78 phút để thêm một giao dịch vào chuỗi khối Ethereum, một khối mới được tạo ra cứ sau 32 giây và trung bình có 15-20 giao dịch được xử lý mỗi giây. Hệ sinh thái này tạo ra một môi trường ưu tiên những người khai thác hơn người dùng, những người phải tăng giá gas nếu họ muốn giao dịch của họ được xử lý trước.

Do thông lượng thấp, độ trễ cao và giá cao hạn chế hiệu suất của mạng Ethereum, Ethereum hiện không phù hợp để triển khai các dịch vụ và ứng dụng yêu cầu khả năng mở rộng mạnh mẽ.

tiêu đề phụ

Nói một cách đơn giản, sharding là một phương thức phân vùng có thể phân phối các tác vụ tính toán và khối lượng công việc lưu trữ trong mạng P2P. Sau phương thức xử lý này, mỗi nút không chịu trách nhiệm xử lý tải giao dịch của toàn mạng mà chỉ cần duy trì phân vùng của mình (hoặc Fragmentation) thông tin liên quan là tốt.

Để giải thích rõ hơn về sharding, chúng ta có thể xem ví dụ đơn giản nhất về sharding. Người sáng lập Ethereum Vitalik Buterin gọi nó là "tăng khả năng mở rộng lên 1000 altcoin".

Trong ví dụ này, thay vì chạy một chuỗi khối duy nhất, chúng tôi chạy nhiều chuỗi khối và chúng tôi coi mỗi chuỗi khối là một phân đoạn, thay vì là một chuỗi khối. Ngược lại, mỗi phân đoạn có mạng trình xác thực hoặc mạng nút riêng, có thể sử dụng thuật toán PoW để khai thác các khối và cũng có thể khai thác các khối thông qua đặt cược hoặc bỏ phiếu.

tiêu đề phụ

Thử thách chia nhỏ

Vấn đề đầu tiên mà chúng tôi gặp phải khi cố gắng sử dụng sharding là vì mỗi phân đoạn có một bộ nút riêng, nên mỗi phân đoạn sẽ kém an toàn hơn so với một chuỗi đơn lẻ như Ethereum.

Vì vậy, nếu Ethereum với số lượng nút x quyết định hard fork và tách thành một chuỗi phân đoạn và phân phối toàn bộ mạng trên hơn 10 phân đoạn, thì mỗi phân đoạn sẽ có 1% bảo mật của chuỗi ban đầu. Điều này có nghĩa là bằng cách kiểm soát 5,1% (thay vì 51%) các nút của chuỗi ban đầu, mọi phân đoạn đều có thể bị hỏng.

Câu hỏi thứ hai mà chúng tôi đặt ra là: "Làm cách nào để chúng tôi chọn nút nào để xác thực phân đoạn nào?" Đối với một diễn viên không giỏi lắm, điều này chỉ xảy ra nếu 5,1% nút của mạng đều đang xác thực trong cùng một phân đoạn, kiểm soát các nút này là một vấn đề.

Trên thực tế, tất cả các kiến ​​trúc sharding đều gán ngẫu nhiên các nút cho các phân đoạn. Việc gán các nút cho các phân đoạn yêu cầu tính toán không dành riêng cho phân đoạn và hầu hết tất cả các thiết kế này đều sử dụng các chuỗi riêng biệt để xử lý việc duy trì toàn bộ mạng phân đoạn và nút. Được gọi là Beacon Chain trong Ethereum, chuỗi này chịu trách nhiệm tạo các số ngẫu nhiên, gán các nút cho các phân đoạn, chụp ảnh chụp nhanh của các phân đoạn riêng lẻ, xử lý cổ phần bắt tay và nhiều chức năng khác.

Chuỗi đèn hiệu có một số nhược điểm. Bởi vì chúng chịu trách nhiệm tính toán lưu giữ hồ sơ đã đề cập trước đó, nên mạng sử dụng càng nhiều phân đoạn thì chuỗi đèn hiệu càng phải thực hiện nhiều công việc hơn và mạng không có phân đoạn có thể có thông lượng thấp và độ trễ cao. có giới hạn tự nhiên của nó.

Tuy nhiên, các mạng phân đoạn có thể được nhân lên, vì vậy nếu hiệu quả mạng được cải thiện sao cho các nút trong mạng xử lý giao dịch nhanh hơn bốn lần, chuỗi đèn hiệu có thể xử lý số lượng phân đoạn gấp bốn lần, tăng tốc độ mạng lên 16 lần.

  • tiêu đề phụ

  • Làm cách nào để chia dữ liệu thành các phân đoạn?

  • Hãy bắt đầu bằng cách xem xét các chức năng mà một nút thường thực hiện trên chuỗi khối:

Xử lý/Xác minh giao dịch

  • Chuyển tiếp các giao dịch này và các khối mà chúng khai thác tới các nút khác trên mạng

  • lưu trữ lịch sử của tất cả các giao dịch

  • Khi mạng phát triển, các nút cần có khả năng theo kịp nhu cầu của mạng và nhu cầu phát triển của nó.

Việc tăng số lượng giao dịch đang được xử lý yêu cầu mỗi nút bổ sung thêm sức mạnh tính toán.

Càng nhiều giao dịch được chuyển tiếp, băng thông cần được cung cấp bởi các nút càng lớn.

Để lưu trữ tất cả dữ liệu trên chuỗi khối, các nút phải dần bổ sung thêm không gian lưu trữ.

Lưu trữ sharding nhưng không giao dịch đã được đề xuất trước bài đăng này và một số dự án đã triển khai sharding để xử lý giao dịch (chứ không phải lưu trữ).

Tuy nhiên, loại sharding phổ biến nhất được gọi là "State Sharding" và bao gồm các nút trong mỗi phân đoạn xây dựng chuỗi khối riêng của nó chứa tất cả các nút trong mạng toàn cầu chỉ ảnh hưởng đến chúng. Giao dịch một phần, có nghĩa là các nút chỉ cần lưu trữ lịch sử giao dịch của các phân đoạn của họ, xử lý các giao dịch ảnh hưởng đến các phân đoạn của họ và chuyển tiếp các giao dịch đó trong các phân đoạn của họ.

Tiếp theo, chúng tôi đề cập đến các giao dịch giữa các phân đoạn, giao dịch không hợp lệ và hành vi nguy hiểm.

tiêu đề phụ

Chia nhỏ và mở rộng chuỗi khối

Loại sharding cơ bản như được mô tả ở trên không phải là một cách tiếp cận hiệu quả hoặc thiết thực đối với sharding, vì chúng không thể giao tiếp với nhau, vì vậy chúng hoạt động giống như một chuỗi khối duy nhất. Lấy một khoản thanh toán đơn giản làm ví dụ, nếu người dùng A và người dùng B ở trên cùng một phân đoạn, thì người xác thực trong phân đoạn đó có thể xử lý giao dịch mà không gặp bất kỳ trở ngại nào, nhưng điều gì xảy ra khi tài khoản của họ ở trên các phân đoạn khác nhau?

Người dùng A ở phân đoạn 1# và người dùng B ở phân đoạn 2#. Trình xác thực trên các phân đoạn riêng lẻ sẽ không thể ghi nợ hoặc ghi có vào tài khoản của người dùng vì họ không có quyền đối với các phân đoạn của nhau.

Tuy nhiên, có những giải pháp cho vấn đề này, vì vậy hãy xem xét một số giải pháp chi tiết hơn:

tiêu đề phụ

Trở lại đầu năm 2018, Vitalik Buterin đã đề xuất hợp nhất các khối với giải pháp này.https://ethresear.ch/)

Giao dịch chéo không đồng bộ

(xem nguồn:

tiêu đề phụ

Giao dịch chéo không đồng bộ

Đây là một hoạt động dễ hoàn thành hơn và phối hợp đơn giản hơn nhiều, vì vậy nó được ưu tiên hơn các giao dịch đồng bộ.

Tương tự, chúng tôi sẽ sử dụng ví dụ rằng người dùng A trên phân đoạn 1# muốn gửi tiền cho người dùng B trên phân đoạn 2#. Trong trường hợp này, phân đoạn chịu trách nhiệm ghi có vào tài khoản của người dùng B sẽ chỉ xác minh phần giao dịch của chính B sau khi có đủ bằng chứng để chứng minh rằng phân đoạn chịu trách nhiệm ghi nợ tài khoản của người dùng A đã được hoàn thành.

Tuy nhiên, cách tiếp cận này không hoàn hảo và có khả năng khác là một khối từ phân đoạn sẽ bị loại bỏ. Khi xác suất khác không, cho dù xác suất nhỏ đến đâu, nó vẫn là một điểm yếu không thể bỏ qua.

Chúng ta có thể giải thích cụ thể lý do qua hình sau:

Khi một nhánh như vậy xảy ra, một phân đoạn phải loại bỏ một chuỗi và chấp nhận một chuỗi khác. Tại thời điểm này, nếu chuỗi A, B, v.v. trở thành chuỗi được chấp nhận trong phân đoạn 1# và W', X', v.v. trở thành chuỗi được chấp nhận trong phân đoạn 2#, thì giao dịch sẽ hoàn tất thành công và mọi người đều hài lòng.

Nếu phân đoạn 1# chấp nhận A', B', v.v. và phân đoạn 2# chấp nhận W, X, v.v., thì toàn bộ giao dịch sẽ thất bại, nhưng đây cũng là kết quả chấp nhận được vì giao dịch có thể được gửi lại.

Nhưng điều gì xảy ra nếu đoạn 1# chấp nhận chuỗi A, B, v.v. và đoạn 2# chấp nhận chuỗi W, X, v.v.? Một phần của giao dịch (A, B, v.v.) được hoàn thành, nhưng một phần khác (W, X, v.v.) bị loại bỏ.

tiêu đề phụ

Các nút độc hại trong một phân đoạn

Bây giờ bạn đã hiểu rõ hơn về sharding và cách thức hoạt động của nó, bạn có thể hài lòng hoặc có thể có thêm câu hỏi, nhưng có ít nhất một điều nữa cần xem xét: các nút độc hại.

1. Các nút độc hại

Điều này xảy ra rất thường xuyên, khi có khả năng xảy ra một ngày giao dịch lớn, bất kể hệ thống là gì, sẽ có người muốn tấn công hệ thống.

2. Phê duyệt các khối không hợp lệ

Các nút độc hại có thể tấn công mạng bằng cách tạo các khối cố gắng thay đổi mạng. Giả sử người dùng 1 có 10 xu và người dùng 2 có 0 xu. Khi Người dùng 1 muốn gửi 10 xu này cho Người dùng 2, một nút độc hại trên mạng có thể cố gắng tạo một khối và cuối cùng Người dùng 1 sẽ mất tất cả số xu của mình, trong khi Người dùng 2 sẽ có 1000 xu.

Trong một chuỗi khối thông thường không phân mảnh, kiểu tấn công này là không thể bởi vì mọi nút đều xác thực mọi khối và nếu tìm thấy một khối không hợp lệ, tất cả các nút (dù chúng có phải là người khai thác hay không) sẽ từ chối khối đó.

Đối với một chuỗi khối cổ điển, bất kể các nút độc hại tạo ra bao nhiêu khối hoặc chúng được tạo nhanh như thế nào, các nút trung thực của mạng sẽ luôn bỏ qua các khối này và tiếp tục xây dựng chuỗi khối trung thực.

Nếu một nút độc hại muốn nạp một số lượng lớn mã thông báo vào tài khoản của mình bằng cách xây dựng một khối không hợp lệ, nó sẽ khiến một chuỗi bị chia thành hai. Trong trường hợp này, số lượng nút độc hại thậm chí có thể vượt quá số lượng nút trung thực. Chuỗi ngắn hơn là chuỗi trung thực và chuỗi dài hơn là chuỗi không hợp lệ.

Trong một chuỗi khối không phân đoạn thông thường, mỗi người tham gia chịu trách nhiệm xác thực tất cả các khối họ nhận được và xác nhận trạng thái của chúng, vì vậy bất kỳ ai có quyền lợi nhất định đối với chuỗi khối sẽ ngay lập tức nhận ra một chuỗi không hợp lệ và bỏ qua (trong trường hợp này) các chuỗi ngắn hơn.

Chuỗi phân đoạn phức tạp hơn một chút vì người tham gia không thể xác minh mọi giao dịch trên mọi phân đoạn. Vì vậy, chúng tôi phải tìm ra cách xác minh rằng không có khối không hợp lệ nào trong toàn bộ lịch sử của phân đoạn.

ETH
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
Nhóm trò chuyện:
https://t.me/Odaily_GoldenApe
Tài khoản chính thức:
https://twitter.com/OdailyChina
Mục lục bài viết
Thư viện tác giả
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android