BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Sharding mà Ethereum 2.0 sẽ triển khai là gì?

Đọc bài viết này mất 26 phút
Để hiểu lý do 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.

Tiêu đề gốc: "Hiểu các nguyên tắc cơ bản về phân mảnh, phân mảnh dữ liệu và xuyên suốt phân chia trong một bài viết Chính xác thì giao dịch phân chia, phân chia chuỗi khối và mở rộng quy mô là gì? 》

Nguồn gốc: Blockchain Basecamp


Ethereum là nền tảng cơ bản trong tất cả các blockchain luôn đồng bộ với khái niệm sharding. Để hiểu lý do 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, việc thêm một giao dịch vào chuỗi khối Ethereum mất khoảng 1,78 phút. Một khối mới được tạo ra cứ sau 32 giây và trung bình 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 có lợi cho người khai thác hơn người dùng, những người phải tăng giá gas nếu muốn giao dịch của mình được ưu tiên.


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

Sharding là gì?


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


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


Trong trường hợp 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 sẽ gọi mỗi chuỗi khối là một phân đoạn (sharding) thay vì gọi nó một chuỗi khối. Mặt khác, mỗi phân đoạn có mạng xác thực hoặc mạng nút riêng và các khối có thể được khai thác bằng thuật toán PoW hoặc thông qua đặt cược hoặc bỏ phiếu.


Những thách thức của việc phân mảnh


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


Vì vậy, nếu Ethereum với số nút x quyết định phân nhánh cứng và chia thành một chuỗi phân mảnh, và nếu toàn bộ mạng được phân phối trên hơn 10 phân đoạn, sau đó 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% chuỗi ban đầu (thay vì 51%) nút, mỗi phân đoạn có thể bị phá hủy.




Vấn đề thứ hai chúng tôi gặp phải là: "Làm cách nào để chúng tôi chọn nút nào để xác minh Sharding nào ?" Đối với một kẻ xấu, việc kiểm soát 5,1% nút mạng này chỉ là vấn đề nếu tất cả chúng đều xác thực trong cùng một phân đoạn.

Việc cho phép các nút chọn phân đoạn mà chúng xác thực có thể dẫn đến các cuộc tấn công mạng thường xuyên, vì vậy cách tốt nhất để giảm thiểu rủi ro bị tấn công là không cho phép các nút chọn phân đoạn nào để xác thực.




Trên thực tế, tất cả kiến trúc sharding đều phân bổ 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 như tất cả các thiết kế này đều sử dụng một chuỗi riêng biệt để xử lý việc duy trì toàn bộ phân đoạn và mạng nút. Chuỗi này, được gọi là chuỗi đèn hiệu trong Ethereum, chịu trách nhiệm tạo ra các số ngẫu nhiên, gán nút cho các phân đoạn, chụp ảnh chụp nhanh 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ì họ chịu trách nhiệm về các tính toán lưu giữ hồ sơ được đề cập trước đó, mạng càng sử dụng nhiều phân đoạn thì chuỗi báo hiệu càng cần 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, do đó khả năng mở rộng của các mạng được phân chia có những hạn chế tự nhiên của nó.

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

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

Trước tiên, hãy xem các chức năng mà các nút thường thực hiện trên chuỗi khối:

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

2. Kết hợp các giao dịch này với Các khối chúng khai thác được chuyển tiếp đến các nút khác trên mạng

3. 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 mạng.


1. Việc tăng số lượng giao dịch được xử lý đòi hỏi mỗi nút phải tăng thêm sức mạnh tính toán.


2. Càng nhiều giao dịch được chuyển tiếp thì băng thông mà nút yêu cầu càng lớn.


3. Để lưu trữ tất cả dữ liệu trên blockchain, các nút cần phải tăng dần thêm không gian lưu trữ.


Hãy quan sát ba thông số này, bạn sẽ thấy rằng, Bất kể số lượng giao dịch mỗi giây hay số lượng giao dịch được chuyển tiếp có tăng lên hay không, lượng lưu trữ dữ liệu sẽ tăng
.


Trước khi bài viết này được viết, các phương pháp phân chia lưu trữ chứ không phải giao dịch đã được đề xuất và một số dự án đã triển khai phân chia để xử lý giao dịch (nhưng không lưu trữ).


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


Tiếp theo, chúng tôi sẽ đề 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 độc hại.


Phân chia và mở rộng quy mô chuỗi khối span>




Ở trên, chúng ta đã thảo luận về sharding là gì, những vấn đề mà sharding cần giải quyết và những gì cần khắc phục để triển khai sharding một cách hiệu quả ... Một số trở ngại. Vì vậy, tiếp theo chúng ta sẽ thảo luậnGiao dịch chéo, giao dịch không hợp lệ và hành vi độc hại.

Như đã mô tả ở trên, các loại sharding cơ bản không phải là phương pháp sharding hiệu quả hoặc thực tế vì chúng không thể giao tiếp với nhau. Vì vậy chúng giống như một blockchain 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ì sẽ xảy ra khi tài khoản của họ nằm 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#. Người 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, vẫn có giải pháp cho vấn đề này. Chúng ta hãy xem xét một số giải pháp chi tiết hơn:

Đồng bộ hóa (đồng thời) các giao dịch giữa các phân đoạn


Trong trường hợp này, khi người dùng A trong phân đoạn 1# muốn gửi tiền cho người dùng B trong phân đoạn 2#, nó sẽ được tạo trong mỗi phân đoạn cùng một lúc. Khối chứa chuyển đổi trạng thái được liên kết với giao dịch này và trình xác thực trên mỗi phân đoạn hoạt động cùng nhau để xác nhận giao dịch.


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.
(Lưu ý 1)

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

Đây là một thao tác tương đối dễ hoàn thành và việc phối hợp cũng đơn giản hơn nhiều nên tốt hơn Giao dịch đồng bộ phổ biến hơn.

Tương tự, chúng ta sẽ sử dụng ví dụ về 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 đã hoàn tất.

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

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




Blockchain này có hai phân đoạn, tình cờ là cả hai đều nằm ở khối A và 2 khi các giao dịch được hợp nhất thành phân đoạn 1# # Khối X' trong mảnh vỡ được chia đôi.

Khi sự phân nhánh như vậy xảy ra, phân đoạn phải từ bỏ một chuỗi và chấp nhận chuỗi kia. 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ẽ được hoàn thành suôn sẻ và mọi người sẽ được hạnh phúc.

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 là kết quả có thể chấp nhận được vì giao dịch có thể được gửi lại.

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

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

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

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

Tình trạng này rất phổ biến, khi có khả năng xảy ra một ngày giao dịch lớn, dù hệ thống là gì cũng 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 nhằm 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ả xu và người dùng 2 sẽ có 1000 xu.




Trong một chuỗi khối thông thường, không phân đoạn, kiểu tấn công này là không thể vì mọi nút đều xác thực mọi khối. Nếu tìm thấy một khối không hợp lệ, tất cả các nút (thợ đào hoặc không ) sẽ từ chối khối.


Đối với các chuỗi khối cổ điển, bất kể nút độc hại tạo ra bao nhiêu khối hay tốc độ chúng được tạo ra như thế nào, Chẳng bao lâu nữa, 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 một chuỗi khối trung thực


Nếu các nút độc hại muốn Bằng cách xây dựng các khối không hợp lệ để nạp một lượng lớn token vào tài khoản của chính mình, một chuỗi được 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 blockchain không phân đoạn thông thường, mỗi người tham gia có trách nhiệm xác minh tất cả các khối và xác nhận trạng thái của nó, vì vậy bất kỳ ai cũng có thể với quyền lợi được đảm bảo trong blockchain sẽ ngay lập tức nhận ra chuỗi không hợp lệ và bỏ qua (trong trường hợp này) 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 ta phải tìm ra cách xác nhận rằng không có khối nào không hợp lệ trong toàn bộ lịch sử của phân đoạn.


Vì beacon chain nhìn chung không có khả năng xác minh mọi khối trong mọi phân đoạn nên chúng tôi cần có các giải pháp khác để đảm bảo tính toàn vẹn của mỗi chuỗi.


Giả sử rằng mạng hoạt động thông qua liên kết, mỗi phân đoạn có cơ chế Dung sai lỗi Byzantine và kiểm soát phân đoạn là Nếu số lượng nút độc hại nhỏ hơn 66,667% thì có thể xây dựng cơ chế. Nếu có bất kỳ nỗ lực nào để tạo các khối không hợp lệ và một hoặc nhiều nút trung thực có thể xác nhận rằng có các khối không hợp lệ trong hệ thống, hệ thống sẽ nhận được cảnh báo.

Nếu hơn 66,667% phân đoạn được kiểm soát bởi các nút độc hại thì về mặt lý thuyết có thể hoàn tất khối, Tuy nhiên, miễn là một nút trong phân đoạn là trung thực thì có thể xây dựng một cơ chế cho phép các nút trung thực thách thức các nút độc hại.


Liên kết gốc: https://mp.weixin.qq.com/s/2CGtmFEtziS22uq10GJsQQ

Lưu ý 1: https://ethresear.ch/t/merge-blocks-and-synchronous-cross-shard-state-execution/1240) 



Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi