State sharding trong crypto là gì?
State sharding là thiết kế mở rộng blockchain, chia trạng thái đang hoạt động của mạng thành các phần nhỏ hơn gọi là shard, để các nhóm validator khác nhau có thể xử lý và lưu các phần blockchain khác nhau song song.Trong crypto, state là bản ghi hiện tại về tài khoản, số dư, dữ liệu hợp đồng thông minh, storage slot, thông tin validator và các giá trị khác cần để xử lý giao dịch mới.Sharding là việc chia hệ thống lớn thành các phần nhỏ hơn để toàn mạng không cần thực hiện mọi tác vụ cùng lúc.Tài liệu mở rộng Ethereum chính thức mô tả sharding là quá trình chia cơ sở dữ liệu để một tập con validator chịu trách nhiệm cho shard riêng thay vì theo dõi mọi thứ.
State sharding áp dụng trực tiếp ý tưởng này vào trạng thái blockchain. Thay vì mọi validator lưu và thực thi toàn bộ trạng thái của blockchain, mỗi shard chỉ có thể duy trì một phần trạng thái.Cách này có thể tăng throughput vì nhiều shard có thể xử lý giao dịch đồng thời, đồng thời giảm áp lực phần cứng vì mỗi node có thể không cần lưu toàn bộ trạng thái hoạt động.Tuy nhiên, state sharding khó vì ứng dụng blockchain thường cần tương tác giữa các shard. Nói đơn giản, state sharding cố gắng mở rộng blockchain bằng cách chia cơ sở dữ liệu đang hoạt động và khối lượng thực thi giữa nhiều nhóm shard song song.Vì sao state sharding quan trọng?
State sharding quan trọng vì blockchain hợp đồng thông minh có thể ngày càng tốn kém để vận hành khi mức sử dụng tăng.Mỗi tài khoản mới, số dư token, hợp đồng, NFT, vị thế thanh khoản, bản ghi quản trị và storage slot có thể làm tăng lượng trạng thái hoạt động mạng phải duy trì.Nếu mọi validator phải lưu và thực thi toàn bộ trạng thái mãi mãi, người bình thường sẽ khó tự xác minh mạng. Điều này có thể làm suy yếu tính phi tập trung vì chỉ các nhà vận hành lớn mới có thể chạy full node.State sharding cố giải quyết vấn đề này bằng cách cho phép mạng mở rộng theo chiều ngang. Mở rộng theo chiều ngang nghĩa là thêm nhóm validator và shard thay vì buộc mọi node phải mạnh hơn.Trang tài liệu NEAR chính thức mô tả Nightshade là thiết kế sharding trong đó blockchain được chia thành nhiều chain hoặc shard song song để mở rộng theo chiều ngang theo nhu cầu.
Cách tiếp cận này hấp dẫn vì có thể tăng năng lực mà không yêu cầu mọi node xử lý mọi giao dịch. Do đó, state sharding không chỉ là nâng cấp tốc độ mà còn là chiến lược phi tập trung, vì giữ yêu cầu node ở mức có thể quản lý giúp nhiều người tham gia xác minh mạng hơn.State sharding hoạt động như thế nào?
Blockchain dùng state sharding chia trạng thái toàn cục thành nhiều shard. Mỗi shard chịu trách nhiệm cho một tập con tài khoản, hợp đồng, đối tượng hoặc mục trạng thái.Validator có thể được phân cho một shard, nhiều shard hoặc các ủy ban shard luân phiên tùy thiết kế giao thức. Các giao dịch chỉ tác động một shard thường có thể xử lý trong shard đó. Giao dịch tác động nhiều shard cần giao tiếp cross-shard.Coordinator, beacon chain, main chain, lớp đồng thuận toàn cục hoặc giao thức giao tiếp shard có thể giúp duy trì tính nhất quán của hệ thống.Mạng phải bảo đảm không shard nào chấp nhận giao dịch không hợp lệ. Mạng cũng phải bảo đảm hành động cross-shard không tạo double spending, message bị mất hoặc trạng thái không nhất quán.Đây là lý do state sharding phức tạp hơn việc chỉ vận hành nhiều blockchain riêng biệt. Chain state-sharded thực sự phải khiến nhiều shard hoạt động như một hệ thống blockchain thống nhất.State sharding và transaction sharding
Transaction sharding chia quá trình xử lý giao dịch giữa các nhóm khác nhau. State sharding chia trạng thái blockchain thực tế giữa các nhóm khác nhau.Hệ thống có thể shard giao dịch mà không shard hoàn toàn trạng thái nếu mọi validator vẫn cần biết toàn bộ trạng thái. State sharding sâu hơn vì mỗi shard chỉ lưu và cập nhật một phần cơ sở dữ liệu hoạt động.Cách này có thể tạo lợi ích mở rộng mạnh hơn, nhưng cũng tạo thách thức phối hợp lớn hơn. Thanh toán giữa hai tài khoản trong cùng shard có thể đơn giản, trong khi thanh toán từ shard này sang shard khác cần hệ thống message hoặc receipt cross-shard an toàn.Lệnh gọi hợp đồng chạm các hợp đồng ở hai shard có thể cần thực thi bất đồng bộ, khóa, receipt hoặc quy tắc nhất quán khác.Transaction sharding tăng throughput bằng cách chia công việc. State sharding tăng cả throughput và khả năng mở rộng lưu trữ bằng cách chia dữ liệu mà công việc đó phụ thuộc vào.State sharding và data sharding
State sharding khác data sharding. State sharding chia trạng thái thực thi đang hoạt động của blockchain. Data sharding tập trung giúp dữ liệu giao dịch sẵn có theo các phần nhỏ hoặc song song để hệ thống mở rộng có thể công bố và xác minh dữ liệu rẻ hơn.Sự khác biệt này quan trọng vì lộ trình mở rộng hiện đại của Ethereum tập trung vào data availability thay vì state sharding truyền thống.Tài liệu danksharding Ethereum chính thức nêu rằng danksharding và proto-danksharding đều không theo mô hình sharding truyền thống chia blockchain thành nhiều phần.
Tài liệu giải thích danksharding được thiết kế quanh data blob lớn cho rollup thay vì chia Ethereum Mainnet thành các execution shard truyền thống.Vì vậy, người dùng không nên cho rằng mọi đề cập đến Ethereum sharding đều là state sharding. Các thảo luận lộ trình Ethereum cũ có ý tưởng execution và state sharding, nhưng hướng mở rộng Ethereum hiện đại dùng rollup, blob, nghiên cứu data availability sampling và danksharding thay vì mô hình thực thi nhiều shard truyền thống.State sharding và data sharding đều là ý tưởng mở rộng nhưng giải quyết các nút thắt khác nhau.State sharding và rollup
Rollup mở rộng blockchain bằng cách thực thi nhiều giao dịch ngoài base layer và đăng dữ liệu hoặc proof trở lại base layer. State sharding mở rộng blockchain bằng cách chia trạng thái và thực thi của base layer giữa các shard.Rollup có thể dễ bổ sung cho chain hiện có hơn vì không yêu cầu base layer chia trạng thái thực thi của mình. State sharding là thay đổi kiến trúc base layer sâu hơn.Rollup vẫn cần data availability, settlement và xác minh proof từ base chain. Chain state-sharded cần phân bổ shard, giao tiếp cross-shard, bảo mật shard và finality chung.Tài liệu data availability Ethereum giải thích data availability quan trọng vì rollup cần dữ liệu giao dịch sẵn có để các bên khác xác minh hoặc tái tạo trạng thái rollup.
Đây là lý do lộ trình Ethereum hiện tại hỗ trợ mở rộng rollup bằng dữ liệu blob thay vì state sharding truyền thống. State sharding vẫn có thể được sử dụng trong thiết kế Layer 1 khác.Khác biệt chính là rollup tách việc thực thi sang hệ thống Layer 2, trong khi state sharding chia việc thực thi và trạng thái bên trong chính Layer 1.Vì sao state sharding khó?
State sharding khó vì blockchain phải duy trì tính bảo mật, nhất quán và phi tập trung trong khi phân chia công việc.Nếu shard có quá ít validator, kẻ tấn công có thể dễ nhắm mục tiêu shard đó. Nếu validator không được phân bổ ngẫu nhiên và an toàn, kẻ tấn công có thể tập trung quyền lực trong một shard.Nếu message cross-shard chậm, ứng dụng có thể bị phân mảnh. Nếu message cross-shard không an toàn, người dùng có thể đối mặt rủi ro double-spend hoặc trạng thái không nhất quán.Nếu nhà phát triển phải liên tục suy nghĩ về vị trí shard, thiết kế ứng dụng trở nên khó hơn. Nếu người dùng phải hiểu shard thủ công, trải nghiệm người dùng xấu đi.Khảo sát học thuật Building Blocks of Sharding Blockchain Systems xác định các thành phần sharding then chốt như chọn node, tính ngẫu nhiên, phân công node, đồng thuận nội shard, xử lý giao dịch cross-shard, tái cấu hình shard và cơ chế khuyến khích.
Điều này cho thấy state sharding không phải một tính năng đơn lẻ mà là kiến trúc hệ thống đầy đủ với nhiều bộ phận vận hành.Shard và shard validator
Shard là một phân vùng của trạng thái blockchain và môi trường thực thi. Mỗi shard có thể chứa tập con tài khoản, hợp đồng, đối tượng, dữ liệu lưu trữ hoặc giao dịch.Trong thiết kế đơn giản, tài khoản có thể được gán vào shard theo phạm vi địa chỉ, giá trị hash hoặc vị trí tài khoản rõ ràng. Trong thiết kế nâng cao, ranh giới shard có thể thay đổi theo thời gian qua resharding.Shard nên có thể xử lý giao dịch cục bộ mà không cần xin chấp thuận từ mọi shard khác. Việc xử lý song song này là lợi ích mở rộng chính.Tuy nhiên, shard không thể hoàn toàn cô lập nếu người dùng và ứng dụng cần tương tác trên toàn mạng. Thiết kế sharding tốt phải khiến shard đủ độc lập cho hiệu suất, nhưng vẫn đủ kết nối cho khả năng sử dụng.Quá nhiều độc lập sẽ phân mảnh mạng, còn quá nhiều phối hợp sẽ làm giảm lợi ích mở rộng. Shard vì vậy vừa là đơn vị mở rộng vừa là thách thức phối hợp.Shard validator là validator được phân công kiểm tra, tạo hoặc phê duyệt hoạt động trong shard cụ thể. Trong một số thiết kế, validator luân chuyển giữa các shard để giảm nguy cơ chiếm quyền shard lâu dài.Trong thiết kế khác, validator có thể chỉ theo dõi dữ liệu shard nhất định hoặc xác thực stateless với witness. Phân bổ validator rất quan trọng vì mỗi shard phải an toàn dù chỉ một phần mạng có thể trực tiếp xác thực shard đó.Nếu kẻ tấn công có thể dự đoán hoặc tác động việc phân công validator, họ có thể cố kiểm soát một shard. Vì vậy, tính ngẫu nhiên quan trọng trong nhiều hệ thống sharding.Khuyến khích validator cũng quan trọng, vì validator shard phải được thưởng vì tham gia trung thực và bị phạt khi hành vi không trung thực. State sharding không loại bỏ nhu cầu đồng thuận mà tạo nhiều trách nhiệm đồng thuận nhỏ hơn, vẫn phải liên kết với bảo mật của toàn mạng.Giao dịch cross-shard và thực thi bất đồng bộ
Giao dịch cross-shard là giao dịch tác động trạng thái ở nhiều hơn một shard. Đây là một trong những phần khó nhất của state sharding.Chuyển khoản đơn giản trong một shard có thể xử lý cục bộ. Chuyển khoản từ tài khoản ở shard này sang tài khoản ở shard khác phải phối hợp giữa các shard. Lệnh gọi hợp đồng thông minh liên quan nhiều shard còn phức tạp hơn.Hệ thống phải bảo đảm shard nguồn và shard đích đồng thuận về điều đã xảy ra, không có khoản tiền nào bị chi hai lần và tác động hợp đồng diễn ra đúng thứ tự.Một số hệ thống dùng receipt bất đồng bộ, trong đó shard ghi hành động gửi đi và shard khác áp dụng kết quả đến sau đó. Các nghiên cứu khác xem xét thực thi cross-shard đồng bộ, two-phase commit hoặc phối hợp dựa trên proof.Thiết kế giao dịch cross-shard thường quyết định state sharding có mang lại trải nghiệm liền mạch hay phân mảnh với người dùng.Thực thi bất đồng bộ nghĩa là hành động giữa shard không xảy ra ngay trong một bước toàn cục. Một shard có thể tạo message hoặc receipt để shard khác xử lý sau.Cách này có thể cải thiện khả năng mở rộng vì shard không cần dừng và phối hợp mọi hành động cùng lúc. Tuy nhiên, nó thay đổi cách nhà phát triển xây dựng ứng dụng.Hợp đồng có thể không gọi shard khác và nhận kết quả ngay trong cùng giao dịch. Nhà phát triển có thể cần thiết kế quy trình quanh callback, receipt, settlement trì hoãn hoặc chuyển đổi trạng thái nhiều bước.Điều này có thể khiến DeFi, game, marketplace và ứng dụng composable cross-shard khó hơn. Sharding bất đồng bộ mạnh mẽ, nhưng có thể làm yếu composability đơn giản mà người dùng mong đợi từ môi trường hợp đồng thông minh một shard.Sự đánh đổi là tốc độ và tính song song so với sự đơn giản của ứng dụng đồng bộ. Hệ sinh thái state-sharded tốt cần công cụ phát triển giúp sử dụng thực thi bất đồng bộ an toàn, dễ dàng hơn.Atomic composability
Atomic composability nghĩa là nhiều hành động hợp đồng thông minh có thể diễn ra cùng nhau như một giao dịch không thể chia tách. Nếu bất kỳ phần nào thất bại, toàn bộ giao dịch thất bại.Hệ thống hợp đồng thông minh một shard thường giúp atomic composability dễ hơn vì mọi trạng thái liên quan đều sẵn có trong một môi trường thực thi.State sharding có thể làm atomic composability khó hơn khi hợp đồng nằm ở shard khác nhau. Một giao dịch DeFi có thể cần chạm giao thức lending, pool thanh khoản, oracle và vault trong một giao dịch.Nếu những hợp đồng này ở các shard khác nhau, thực thi đồng bộ có thể khó hoặc tốn kém. Đây là một lý do state sharding tạo thách thức thiết kế cho DeFi.Một số hệ thống sharded có thể khuyến khích hợp đồng liên quan nằm trên cùng shard. Các hệ thống khác có thể cung cấp công cụ giao tiếp cross-shard chuyên biệt. Atomic composability là một trong các đánh đổi chính người dùng và nhà phát triển cần hiểu khi nghiên cứu state sharding.State sharding và hợp đồng thông minh
Hợp đồng thông minh làm state sharding khó hơn vì hợp đồng có thể phụ thuộc vào trạng thái dùng chung.Hệ thống thanh toán đơn giản có thể phân tài khoản vào shard và gửi message giữa chúng. Hệ sinh thái hợp đồng thông minh cần xử lý lệnh gọi hợp đồng, đọc và ghi dữ liệu lưu trữ, chuyển token, phê duyệt, thanh lý, swap và giao dịch composable.Nếu mọi hợp đồng có thể gọi đồng bộ mọi hợp đồng khác, mạng có thể mất phần lớn lợi ích sharding. Nếu lệnh gọi cross-shard bất đồng bộ, nhà phát triển cần mô hình lập trình khác.Vì vậy, nền tảng hợp đồng thông minh sharded phải thiết kế cẩn thận việc đặt tài khoản, triển khai hợp đồng, truyền message và công cụ phát triển.State sharding dễ hơn với chuyển khoản tài khoản đơn giản so với hệ thống DeFi có khả năng kết hợp cao. Nó cũng dễ hơn khi ứng dụng có thể được nhóm tự nhiên vào các shard, chẳng hạn game hoặc môi trường giống appchain giữ phần lớn hoạt động trong một shard.Ứng dụng tài chính liên kết chặt chẽ có thể cần thiết kế cross-shard phức tạp hơn.State sharding và NEAR
NEAR là một trong những ví dụ nổi tiếng nhất về blockchain được thiết kế quanh sharding.Tài liệu NEAR chính thức nêu rằng Nightshade sharding cho phép throughput mở rộng tuyến tính khi số validator tăng. Nightshade là thiết kế sharding của NEAR.
Trang tài liệu NEAR chính thức mô tả Nightshade là thiết kế mà cả trạng thái lẫn xử lý được chia giữa các shard trong dạng cập nhật của nó.Kiến trúc NEAR quan trọng vì cho thấy state sharding là hướng thiết kế đang được triển khai thực tế, không chỉ là khái niệm nghiên cứu. NEAR cũng phát triển xác thực stateless, thay đổi cách validator tham gia xác thực shard.Bài đăng ra mắt NEAR Nightshade 2.0 chính thức cho biết Nightshade 2.0 đưa xác thực stateless lên NEAR Mainnet vào tháng 8 năm 2024.
Xác thực stateless có thể giảm lượng trạng thái validator cần giữ cục bộ cho shard. Điều này cho thấy state sharding và xác thực stateless có thể kết hợp để cải thiện khả năng mở rộng và sự tham gia của node.State sharding và Ethereum
Ethereum quan trọng trong lịch sử state sharding vì các lộ trình mở rộng Ethereum ban đầu thảo luận rộng rãi về sharding.Tuy nhiên, lộ trình hiện tại của Ethereum không tập trung vào execution sharding hay state sharding truyền thống cho Mainnet.Trang danksharding Ethereum chính thức nêu rằng proto-danksharding và danksharding đều không theo mô hình sharding truyền thống. Thay vào đó, Ethereum hiện tập trung mở rộng rollup bằng data availability rẻ hơn qua blob và danksharding tương lai.Sự khác biệt này quan trọng với SEO và giáo dục người dùng vì nhiều bài viết cũ vẫn mô tả Ethereum đang hướng đến shard chain truyền thống. Các mô tả cũ đó có thể gây hiểu lầm nếu được trình bày như thông tin lộ trình hiện tại.Hướng mở rộng hiện tại của Ethereum lấy rollup làm trọng tâm. Nghĩa là hệ thống Layer 2 thực hiện phần lớn việc thực thi, còn Ethereum cung cấp settlement, bảo mật và cải tiến data availability.State sharding vẫn là khái niệm blockchain quan trọng, nhưng không nên được mô tả là kế hoạch thực thi Mainnet hiện tại của Ethereum. Để giáo dục crypto chính xác, Ethereum nên được dùng làm ví dụ về cách nghiên cứu sharding phát triển thay vì triển khai state sharding hiện tại.State sharding, xác thực stateless và data availability
Xác thực stateless nghĩa là validator có thể xác minh việc thực thi block hoặc shard mà không lưu toàn bộ trạng thái liên quan ở cục bộ. Thay vào đó, validator nhận witness hoặc proof bao gồm dữ liệu trạng thái cần cho xác minh.Khái niệm này có thể hoạt động với state sharding vì validator có thể không muốn lưu trạng thái của mọi shard. Nó cũng làm xác thực shard linh hoạt hơn vì validator có thể xác minh công việc với yêu cầu lưu trữ cục bộ thấp hơn.Nightshade 2.0 của NEAR là ví dụ thực tế về việc bổ sung xác thực stateless vào kiến trúc sharding. Nghiên cứu Ethereum cũng xem xét stateless client và witness nhỏ hơn qua các thay đổi cam kết trạng thái.Xác thực stateless không giống state sharding. State sharding chia trạng thái giữa các shard, còn xác thực stateless giảm lượng trạng thái validator phải lưu để xác minh block hoặc shard. Kết hợp lại, chúng có thể giảm yêu cầu phần cứng node mà vẫn duy trì xác minh.Data availability là bảo đảm rằng dữ liệu cần để xác minh hoặc tái tạo chuyển đổi trạng thái luôn sẵn có cho mạng. State sharding không thể an toàn nếu validator không truy cập được dữ liệu cần xác minh block shard.Nhà sản xuất shard độc hại có thể che giấu dữ liệu và khiến bên khác không thể kiểm tra chuyển đổi trạng thái shard có hợp lệ không. Vì vậy, data availability là vấn đề cốt lõi trong hệ thống sharded.Blockchain sharded có thể cần data availability sampling, erasure coding, committee, fraud proof, validity proof hoặc cơ chế khác để làm các cuộc tấn công che giấu dữ liệu khó hơn.Tài liệu data availability Ethereum giải thích data availability khác data storage vì tập trung vào việc dữ liệu đã được công bố đủ để xác minh hay chưa. Khái niệm này áp dụng rộng rãi cho hệ thống mở rộng, gồm rollup và chain sharded.State sharding làm data availability quan trọng hơn vì mỗi shard có thể tạo dữ liệu mà phần khác của mạng cần tin cậy. Nếu dữ liệu shard không sẵn có, message cross-shard và đồng thuận toàn cục có thể không an toàn.State sharding và bảo mật
Bảo mật trong state sharding phụ thuộc vào phân công shard, tính trung thực của validator, tính ngẫu nhiên, proof cross-shard, finality và cơ chế khuyến khích.Một shard không nên dễ bị xâm phạm chỉ vì ít validator được phân công hơn. Đây đôi khi được gọi là vấn đề chiếm quyền một shard.Nếu kẻ tấn công kiểm soát một shard, họ có thể cố tạo giao dịch không hợp lệ, đánh cắp tiền hoặc làm hỏng message cross-shard. Giao thức giảm rủi ro bằng phân công validator ngẫu nhiên, luân chuyển committee, slashing, bảo mật chung, fraud proof, validity proof hoặc quy tắc finality toàn cục.Bảo mật cũng phải xử lý kẻ tấn công thích ứng cố làm hỏng validator sau khi biết shard được phân công. Tái cấu hình shard cần được thiết kế cẩn thận vì di chuyển validator và trạng thái giữa shard có thể tạo cửa sổ tấn công.Giao dịch cross-shard cần hệ thống proof ngăn shard này nói dối shard khác. State sharding có thể mở rộng mạng nhưng cũng tăng số điểm mà thiết kế giao thức có thể thất bại.Với người dùng, câu hỏi chính là chain sharded có giữ mỗi shard an toàn ở mức toàn mạng yêu cầu hay không.State sharding và tính phi tập trung
State sharding có thể hỗ trợ phi tập trung bằng cách giảm gánh nặng tài nguyên trên từng node. Nếu node không cần lưu và thực thi toàn bộ trạng thái toàn cục, nhiều người tham gia hơn có thể gia nhập mạng.Điều này có thể giúp tránh tương lai trong đó chỉ trung tâm dữ liệu lớn mới xác minh được chain. Tuy nhiên, state sharding cũng có thể tạo rủi ro phi tập trung nếu chỉ hạ tầng chuyên biệt mới xử lý được phối hợp cross-shard.Nếu người dùng phụ thuộc vào ít nhà cung cấp RPC để theo dõi mọi shard, lớp ứng dụng có thể bị tập trung. Nếu bridge hoặc router cross-shard trở thành điểm nghẽn, hoạt động kinh tế có thể tập trung quanh các dịch vụ đó. Nếu validator cần hạ tầng phức tạp để tham gia, tập validator vẫn có thể tập trung.State sharding tốt cần giảm gánh nặng node cá nhân mà không tạo phụ thuộc tập trung mới ở nơi khác. Tính phi tập trung cần được đánh giá trên validator, full node, client, nhà cung cấp RPC, bridge, ví và hạ tầng ứng dụng.State sharding và trải nghiệm người dùng
Lý tưởng nhất là state sharding vô hình với người dùng. Người dùng không cần biết shard nào chứa tài khoản hoặc hợp đồng thông minh của họ. Ví nên định tuyến giao dịch chính xác mà không yêu cầu chọn shard thủ công.DApp cần giải thích rõ độ trễ hoặc bước cross-shard khi chúng xảy ra. Nếu người dùng phải tự quản lý địa chỉ shard, số dư gas theo shard và thời gian cross-shard, việc áp dụng có thể bị ảnh hưởng.Chuyển tiền cross-shard có thể mất nhiều thời gian hơn chuyển trong cùng shard tùy thiết kế giao thức. Tương tác hợp đồng thông minh cross-shard cũng có thể cần nhiều xác nhận hơn hoặc callback bất đồng bộ.Giao diện tốt có thể che giấu phần lớn độ phức tạp này. Tuy vậy, người dùng vẫn nên hiểu state sharding có thể ảnh hưởng thời gian giao dịch, composability, thanh khoản và thiết kế ứng dụng.Hệ thống sharded tốt nhất có cảm giác như một chain duy nhất dù bên dưới vận hành nhiều môi trường thực thi song song.State sharding và nhà phát triển
Nhà phát triển xây dựng trên chain state-sharded phải hiểu trạng thái ứng dụng nằm ở đâu. Nếu nền tảng hiển thị ranh giới shard, nhà phát triển có thể cần chọn nơi triển khai hợp đồng.Nếu lệnh gọi cross-shard bất đồng bộ, họ cần thiết kế cho kết quả trì hoãn và quy trình từng phần. Nếu người dùng đến từ các shard khác nhau, nhà phát triển cần xử lý định tuyến message và di chuyển số dư.Nếu thanh khoản bị chia giữa các shard, ứng dụng DeFi có thể cần định tuyến hoặc tổng hợp chuyên biệt. Việc kiểm thử cũng phức tạp hơn vì phải kiểm thử trường hợp cùng shard và cross-shard.Giám sát có thể khó hơn do hoạt động ứng dụng diễn ra trên nhiều shard. Đánh giá bảo mật phải gồm xử lý message cross-shard, chống phát lại, logic callback và trạng thái thất bại.State sharding cho nhà phát triển nhiều năng lực hơn nhưng cũng đòi hỏi kiến trúc cẩn thận hơn. Nền tảng phát triển tốt cung cấp abstraction giúp lập trình nhận biết shard an toàn và dễ hơn.State sharding và DeFi
DeFi đặc biệt nhạy cảm với state sharding vì DeFi phụ thuộc composability và thanh khoản dùng chung. Swap có thể phụ thuộc pool thanh khoản; thanh lý có thể phụ thuộc oracle, thị trường lending, số dư tài sản thế chấp và bản ghi nợ; chiến lược lợi suất có thể phụ thuộc nhiều hợp đồng tương tác trong một giao dịch.Nếu các hợp đồng đó ở shard khác nhau, thực thi có thể bất đồng bộ hoặc tốn kém hơn, làm giảm atomic composability.Hệ thống DeFi state-sharded có thể cần định tuyến thanh khoản, message cross-shard, pool thanh khoản theo shard hoặc gom cụm ứng dụng. Một số ứng dụng có thể giữ mọi hợp đồng cốt lõi trong một shard để đơn giản hơn. Các ứng dụng khác có thể thiết kế quy trình cross-shard gốc để tiếp cận thêm người dùng và thanh khoản.State sharding có thể mở rộng tổng throughput, nhưng nhà phát triển DeFi phải quản lý cẩn thận rủi ro phân mảnh. Với người dùng, mối quan tâm chính là DeFi cross-shard có vẫn an toàn, thanh khoản và dễ dự đoán hay không.State sharding và NFT
NFT có thể hưởng lợi từ state sharding vì hệ sinh thái NFT lớn tạo nhiều bản ghi sở hữu, liên kết metadata, niêm yết marketplace và vật phẩm game. Sharding có thể phân phối trạng thái này giữa nhiều shard, giảm tắc nghẽn khi nhiều người dùng tương tác với bộ sưu tập hoặc game khác nhau cùng lúc.Tuy nhiên, NFT cũng tạo thách thức cross-shard. NFT ở shard này có thể cần bán cho người mua ở shard khác. Vật phẩm game có thể cần tương tác với hợp đồng hoặc marketplace trên shard khác. Ví có thể phải hiển thị số dư NFT ở nhiều shard, còn marketplace có thể cần hệ thống lập chỉ mục và định tuyến hiểu vị trí shard.State sharding có thể giúp mở rộng NFT dễ hơn nhưng cũng làm việc khám phá, thanh khoản và chuyển nhượng phức tạp hơn. Hạ tầng ví và marketplace tốt là thiết yếu cho trải nghiệm NFT sharded liền mạch.State sharding, bridge và resharding
State sharding và bridge liên quan vì giao tiếp cross-shard có phần giống giao tiếp cross-chain: message cần di chuyển giữa các môi trường trạng thái, môi trường nhận phải biết message hợp lệ và môi trường gửi phải ngăn dùng hai lần hoặc phát lại.Khác biệt là shard thường là một phần của giao thức dùng chung, còn chain riêng có thể có giả định bảo mật độc lập. Vì vậy, message cross-shard có thể an toàn hơn bridge thông thường nếu được tích hợp vào giao thức cơ sở và bảo vệ bằng đồng thuận chung.Tuy nhiên, hệ thống cross-shard thiết kế kém vẫn có thể tạo rủi ro giống bridge. Người dùng nên chú ý liệu chuyển tiền cross-shard là hành động giao thức gốc hay hành động bridge cấp ứng dụng. Message cross-shard gốc thường tích hợp chặt hơn với quy tắc đồng thuận của chain, trong khi bridge cấp ứng dụng có thể thêm rủi ro hợp đồng thông minh, validator, relayer hoặc thanh khoản.Resharding là quá trình thay đổi cấu trúc shard theo thời gian. Chain có thể cần resharding khi mức sử dụng tăng, shard nào đó quá bận hoặc phân phối trạng thái không đều.Shard tĩnh có thể kém hiệu quả nếu một shard nhận hầu hết hoạt động còn shard khác ít được dùng. Resharding động cố điều chỉnh ranh giới hoặc số lượng shard theo nhu cầu.Cách này có thể cải thiện việc sử dụng tài nguyên nhưng tăng độ phức tạp. Di chuyển trạng thái giữa shard phải an toàn và nhất quán. Ứng dụng phải tiếp tục hoạt động khi phân công shard thay đổi. Validator và indexer phải theo dõi đúng bố cục mới. Ví và dApp không nên gặp lỗi khi resharding diễn ra.Resharding cho thấy state sharding không chỉ là chia trạng thái một lần mà còn là quản lý trạng thái trong toàn bộ vòng đời mạng.Lợi ích của state sharding
Lợi ích đầu tiên là throughput cao hơn. Nhiều shard có thể xử lý giao dịch song song thay vì buộc toàn bộ hoạt động đi qua một pipeline thực thi.Lợi ích thứ hai là khả năng mở rộng lưu trữ tốt hơn, vì node có thể không cần lưu mọi phần trạng thái toàn cục.Lợi ích thứ ba là mở rộng theo chiều ngang tốt hơn. Mạng có thể thêm năng lực bằng cách thêm shard hoặc tài nguyên validator thay vì chỉ tăng yêu cầu phần cứng node.Lợi ích thứ tư là giảm tắc nghẽn cho ứng dụng có thể vận hành chủ yếu trong một shard. Lợi ích thứ năm là mở đường cho sự tham gia rộng hơn nếu yêu cầu validator và node vẫn có thể quản lý.Lợi ích thứ sáu là chuyên môn hóa tốt hơn vì shard khác nhau có thể phục vụ các cụm ứng dụng hoặc khối lượng công việc khác nhau tùy thiết kế.Đây là lý do state sharding vẫn là khái niệm mở rộng quan trọng. Lợi ích mạnh nhất khi giao tiếp cross-shard an toàn, nhanh và dễ dùng cho người dùng lẫn nhà phát triển.Rủi ro và hạn chế của state sharding
Rủi ro đầu tiên là độ phức tạp cross-shard. Ứng dụng cần trạng thái từ nhiều shard có thể khó xây dựng và sử dụng hơn.Rủi ro thứ hai là phân mảnh bảo mật. Mỗi shard phải được bảo vệ khỏi tấn công dù chỉ một phần validator trực tiếp xác thực shard đó.Rủi ro thứ ba là phân mảnh thanh khoản. Tài sản và thị trường có thể bị chia giữa các shard, khiến giá và thực thi kém hiệu quả hơn.Rủi ro thứ tư là atomic composability yếu hơn. Các giao dịch đơn giản trên trạng thái dùng chung có thể cần thiết kế bất đồng bộ giữa các shard.Rủi ro thứ năm là người dùng nhầm lẫn về độ trễ cross-shard, định tuyến hoặc message thất bại. Rủi ro thứ sáu là độ phức tạp hạ tầng vì RPC, indexer, ví, explorer và bridge phải theo dõi chính xác nhiều shard.Rủi ro thứ bảy là tải không đồng đều: một số shard có thể tắc nghẽn trong khi shard khác còn năng lực dư thừa. State sharding mạnh mẽ nhưng không phải giải pháp mở rộng miễn phí.Những hiểu lầm phổ biến về state sharding
Một hiểu lầm phổ biến là state sharding chỉ đơn giản là giao dịch nhanh hơn. Trên thực tế, đây là kiến trúc phức tạp chia trách nhiệm về trạng thái, thực thi, xác thực và giao tiếp.Một hiểu lầm khác là state sharding giống rollup. Rollup chuyển thực thi sang Layer 2, trong khi state sharding chia trạng thái và thực thi của chính base layer.Hiểu lầm thứ ba là lộ trình hiện tại Ethereum là state sharding truyền thống. Lộ trình Ethereum hiện tập trung rollup, blob và data availability kiểu danksharding thay vì shard chain trạng thái thực thi truyền thống.Hiểu lầm thứ tư là state sharding tự động duy trì composability. Composability cross-shard là một trong những phần khó nhất của thiết kế.Hiểu lầm thứ năm là chain sharded chỉ là nhiều chain riêng biệt. Blockchain sharded thực sự cần bảo mật chung, finality chung và giao tiếp gốc giữa các shard.Cách đánh giá blockchain state-sharded
Trước hết, hãy kiểm tra chain thực sự shard trạng thái hay chỉ shard dữ liệu hoặc giao dịch. Sau đó, kiểm tra validator được phân vào shard thế nào và việc phân công có dùng tính ngẫu nhiên mạnh không.Xem giao dịch cross-shard được xử lý thế nào, thực thi cross-shard đồng bộ hay bất đồng bộ và ứng dụng có giữ atomic composability giữa các shard không.Đánh giá cách giao thức xử lý data availability cho block shard, mạng hỗ trợ resharding động hay shard cố định, và trải nghiệm người dùng khi chuyển tiền cross-shard.Hãy tìm hiểu ví, explorer, nhà cung cấp RPC và indexer có hỗ trợ đáng tin cậy toàn bộ shard hay không. Blockchain state-sharded nên được đánh giá dựa trên bảo mật, khả năng sử dụng, trải nghiệm nhà phát triển và throughput thực tế trong điều kiện cross-shard.Thực tiễn tốt nhất cho người dùng
Hãy hiểu mạng bạn dùng có địa chỉ theo shard, số dư gas theo shard hoặc độ trễ chuyển tiền hay không. Khi có thể, dùng ví tự động xử lý định tuyến shard.Bắt đầu với giao dịch thử giá trị nhỏ trước khi chuyển giá trị đáng kể giữa các shard. Kiểm tra ứng dụng vận hành trong một shard hay nhiều shard.Thận trọng khi dùng bridge hoặc router không phải thành phần gốc của giao thức sharded. Lưu ý độ trễ bổ sung khi tiền di chuyển giữa các shard.Đừng cho rằng giao dịch đã final trên mọi shard cho đến khi giao thức hoặc ví xác nhận. Xem tài liệu ứng dụng khi dùng DeFi hoặc marketplace NFT cross-shard.Giữ đủ token gốc để trả phí nếu mạng yêu cầu thanh toán phí theo shard. Hãy xem state sharding là hạ tầng có thể cải thiện hiệu suất nhưng không loại bỏ rủi ro hợp đồng thông minh hoặc rủi ro thị trường.Thực tiễn tốt nhất cho nhà phát triển
Thiết kế ứng dụng có tính đến vị trí shard và hành vi cross-shard. Tránh lệnh gọi cross-shard không cần thiết khi thiết kế cùng shard là khả thi.Sử dụng an toàn các mô hình bất đồng bộ khi giao thức yêu cầu thực thi cross-shard bất đồng bộ. Bảo vệ message cross-shard trước phát lại, lỗi thứ tự và logic callback thất bại.Kiểm thử riêng luồng giao dịch cùng shard và cross-shard. Theo dõi phân mảnh thanh khoản nếu ứng dụng phụ thuộc thị trường token.Giải thích rõ độ trễ cross-shard trong giao diện người dùng. Dùng SDK và tài liệu giao thức chính thức để truyền message và định tuyến shard.Lập kế hoạch cho resharding nếu mạng hỗ trợ thay đổi shard động. Hãy coi thực thi cross-shard là phần nhạy cảm về bảo mật trong thiết kế ứng dụng.FAQ
State sharding nghĩa là gì?
State sharding là việc chia trạng thái hoạt động của blockchain thành nhiều shard để các nhóm validator khác nhau có thể xử lý và lưu các phần khác nhau song song.Shard là gì?
Shard là một phân vùng của trạng thái blockchain và khối lượng công việc thực thi.Vì sao blockchain dùng state sharding?
Blockchain dùng state sharding để tăng throughput, giảm gánh nặng lưu trữ trên từng node và mở rộng thực thi qua các nhóm shard song song.State sharding có giống data sharding không?
Không. State sharding chia trạng thái thực thi đang hoạt động, trong khi data sharding tập trung làm dữ liệu giao dịch sẵn có theo các phần có thể mở rộng.State sharding có giống rollup không?
Không. Rollup thực thi giao dịch ngoài base layer, còn state sharding chia trạng thái và thực thi của chính base layer.Ethereum hiện có dùng state sharding không?
Không. Lộ trình Ethereum hiện tập trung vào rollup, blob và data availability kiểu danksharding thay vì execution sharding hoặc state sharding truyền thống.Blockchain nào nổi tiếng về state sharding?
NEAR được biết đến rộng rãi với thiết kế Nightshade sharding, chia trạng thái và xử lý giữa các shard.Giao dịch cross-shard là gì?
Giao dịch cross-shard là giao dịch tác động trạng thái ở nhiều hơn một shard và cần giao tiếp giữa các shard.Vì sao state sharding khó với DeFi?
State sharding khó với DeFi vì DeFi thường phụ thuộc atomic composability, thanh khoản dùng chung và tương tác nhiều hợp đồng trong một trạng thái thống nhất.State sharding có khiến blockchain không rủi ro không?
Không. State sharding có thể cải thiện khả năng mở rộng nhưng vẫn có rủi ro như lỗi cross-shard, phân mảnh bảo mật, phân mảnh thanh khoản và độ phức tạp hạ tầng.Kết luận
State sharding là phương pháp mở rộng blockchain chia trạng thái đang hoạt động và việc thực thi giữa nhiều shard.Mục tiêu chính là tăng throughput và giảm gánh nặng trên từng validator hoặc node. Nó khác data sharding vì chia trạng thái thực thi thực tế thay vì chỉ cải thiện data availability.Nó cũng khác rollup vì thay đổi kiến trúc base layer thay vì chuyển thực thi sang môi trường Layer 2 riêng.State sharding có thể làm blockchain dễ mở rộng hơn nhưng cũng tạo vấn đề khó về giao dịch cross-shard, phân công validator, data availability, atomic composability, phân mảnh thanh khoản và trải nghiệm người dùng.Thiết kế Nightshade của NEAR là ví dụ thực tế quan trọng về nghiên cứu sharding trở thành hạ tầng vận hành. Ethereum quan trọng về mặt lịch sử, nhưng lộ trình hiện tại của Ethereum dùng mở rộng lấy rollup làm trọng tâm và data availability kiểu danksharding thay vì state sharding truyền thống.Với người dùng, state sharding có thể mang lại hoạt động blockchain nhanh và rẻ hơn khi ví và ứng dụng hỗ trợ tốt. Với nhà phát triển, state sharding nghĩa là kiến trúc ứng dụng phải tính đến vị trí shard, message cross-shard, thực thi bất đồng bộ và các trường hợp bảo mật biên.Với mạng, state sharding là cách theo đuổi mở rộng theo chiều ngang trong khi cố duy trì tính phi tập trung.Trong ngữ cảnh thuật ngữ crypto, State Sharding nghĩa là chia trạng thái hoạt động của blockchain thành các shard song song để mạng có thể xử lý và lưu nhiều hoạt động hơn mà không yêu cầu mọi validator xử lý mọi thứ.Điểm chính cần nhớ là state sharding có thể cải thiện đáng kể khả năng mở rộng, nhưng chỉ khi giao thức giải quyết được giao tiếp cross-shard, bảo mật chung, data availability và khả năng sử dụng cho nhà phát triển mà không làm suy yếu mô hình tin cậy của blockchain.Có thể bạn cũng thích
WhatsMiner M30S++
Tên miền Web3
Dự án Web3
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

