- vừa được xem lúc

Kĩ thuật Sharding (Tóm lược)

0 0 3

Người đăng: Hiếu Võ

Theo Viblo Asia

Giải pháp scale blockchain layer 1 thường chia làm 3 hướng chính:

  • Reducing overhead: Giảm lượng dữ liệu gửi qua lại giữa các node và giảm các công việc tính toán trên dữ liệu đó.
  • Vertical scaling: Liên quan đến việc thêm tài nguyên vào các node. Ví dụ: Tăng số lượng transaction cho mỗi block hoặc giảm thời gian sinh một block.
  • Horizontal scaling: Sharding.

Sharding cơ bản là một kĩ thuật chia để trị, thực hiện chia một blockchain lớn thành nhiều shard nhỏ với mục đích tăng throughput của hệ thống (tăng số lượng giao dịch mỗi giây) thông qua việc cố gắng xử lý các giao dịch ở mỗi shard một cách song song với nhau. Như vậy, giả sử ta chia blockchain thành n shards thì sẽ có thể tăng tốc độ lên nhiều lần. Các thành phần trong sharding bao gồm các node, các giao dịch đang đợi xử lý và sổ cái (Ledger). Trong đó, mỗi shard có thể sử dụng các cơ chế đồng thuận khác nhau như PoS, PoW, BFT-based,...

Khi áp dụng sharding, có hai vấn đề chính cần chú ý là Intra-consensus-safetyCross-shard-atomicity. Việc quyết định số lượng shard cần chia cũng là một vấn đề quan trọng vì số lượng shard càng nhiều thì sức mạnh tính toán cần để kiểm soát một shard càng ít và ngược lại thì khả năng scale sẽ không được tốt (đánh đổi giữa bảo mật và khả năng mở rộng).

Intra-consensus-safety

Intra-consensus-safety liên quan đến việc xử lý các transaction chỉ nằm trong một shard. Khi đó, người ta cần tìm cách để tránh bị tấn công 1% (1% attack).

Tấn công 1%: Giả sử sức mạnh tính toán của cả hệ thống blockchain là PT, cần có hơn 50% sức mạnh tính toán để kiểm soát hệ thống. Nếu sử dụng sharding, chia blockchain thành n shards, khi đó sức mạnh tính toán cần có để kiểm soát hệ thống là P > PT/n*(50%). Nói đơn giản hơn thì khi chia blockchain thành nhiều shard, người ta chỉ cần kiểm soát một shard thay vì cả hệ thống. Mà sức mạnh tính toán ở mỗi shard ít hơn nhiều so với cả hệ thống nên sẽ dễ bị tấn công hơn.

Thông thường để giảm thiểu tấn công 1%, người ta sẽ sử dụng các phương pháp chia ngẫu nhiên các node vào các shard khác nhau vào thời điểm bắt đầu block mới. Ngoài ra, việc lựa chọn các leader, … cũng dựa trên phương pháp chọn ngẫu nhiên. Ví dụ như giao thức RandHound trên Omniledger.

Cross-shard-atomicity

Cross-shard transaction là các transaction có nguồn và đích không thuộc cùng một shard. Do đó, việc xử lý các transaction này thường phức tạp và tốn thời gian hơn. Hơn nữa, các transaction này chiếm tỉ lệ rất lớn nên cần có phương pháp xử lý tối ưu. Cross-shard-atomicity là một yêu cầu khi xử lý: Nếu transaction transaction xử lý bị lỗi thì tiền phải được hoàn về tài khoản gửi, không được xảy ra double-spending. Để giải quyết vấn đề này, người ta thường sử dụng cơ chế Locking/Unlocking.

Cơ chế Locking/Unlocking: Đầu tiên, client sẽ gửi cross-shard transaction đến các input shards để thu thập bằng chứng chứng thực (tiền đủ không, đã Lock chưa, ...) từ các input shards. Khi đó, các input shards sẽ thực hiện khóa (Lock) tiền của client, đồng thời gửi các bằng chứng. Tiếp đến, nếu tất cả bằng chứng đều hợp lệ (Accepted) thì client sẽ gửi đến output shard để xử lý, thực hiện việc Unlock tiền để chuyển đến tài khoản đích. Ngược lại, nếu bằng chứng không hợp lệ (Rejected) thì thực hiện việc Unlock tiền để trả về cho client, đảm bảo tính Atomicity.

Cơ chế Locking/Unlocking hoạt động trên các blockchain như Omniledger, RapidChain, ChainSpace, ....

Ngoài Locking/Unlocking, còn có một số cơ chế như Eventual Atomicity hoặc Junking, .... Trong đó, Eventual Atomicity được sử dụng trong blockchain Monoxide cùng với cơ chế minning Chu-ko-nu. Một số blockchain dựa trên sharding

Academic: Elastico (BFT), Omniledger (BFT), Rapidchain(BFT), Monochain (Nakamoto)​, ChainSpace (BFT)

Industrial: Etherium 2.0, Zilliqa, Harmony, Near protocol

Tham Khảo: G. Yu, X. Wang, K. Yu, W. Ni, J. A. Zhang and R. P. Liu, "Survey: Sharding in Blockchains," in IEEE Access, vol. 8, pp. 14155-14181, 2020, doi: 10.1109/ACCESS.2020.2965147.

#vbi_discuss #sharding #blockchain

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Blockchain] Road to Bitcoin

. Chắc mọi người hẳn đã không còn xa lạ gì với anh chàng tỷ phú đã ném vỡ cửa kính ô tô nhà mình cùng với siêu năng lực điều khiển vật giá chỉ bằng lời nói, người đã đẩy định giá Bitcoin trên thị trường vượt ngưỡng 50K dolar/coin với những bài twitter để đời . .

0 0 44

- vừa được xem lúc

Khi Ethereum có chi phí giao dịch quá đắt đỏ - Tương lai cho layer2 ?

Với sự phát triển như vũ bão của Blockchain, ETH dường như đang quá tải và hệ quả là chi phí Gas đã lên đến 1000Gwei, phí để tạo những transaction phức tạp đã xấp xỉ 500$ . Và một giải pháp cứu cánh cho các sản phẩm Defi trên ETH chính là Layer2, và trong nhiệm vụ lần này Matic đang thể hiện khả năn

0 0 73

- vừa được xem lúc

Blockchain với Java - Tại sao không?

Cuộc cách mạng công nghiệp 4.0 ra đời kéo theo nhiều sự thay đổi và xu hướng mới được hình thành. Riêng đối với lĩnh vực CNTT cũng không nằm ngoài vùng ảnh hưởng mạnh mẽ. Chính làn sóng 4.

0 0 79

- vừa được xem lúc

Phân loại và tầm quan trọng của các node trong mạng blockchain

Trước khi đi vào phân loại và nêu rõ được tầm quan trọng của các node trọng mạng blockchain thì mình xin được trích dẫn khái niệm về blockchain từ Wikipedia như sau:. .

0 1 46

- vừa được xem lúc

Code Smart Contract bằng Assembly ?

Introduction. Hồi còn học trong ghế nhà trường bộ môn lập trình tốn nhiều não nhất của mình là code assembly. Nôm na thì bất cứ ngôn ngữ bậc cao nào như C , Go, Java,... được sinh ra để người dễ hiểu và dễ code , tuy nhiên chúng đều sẽ được compiled down xuống assembly một ngôn ngữ bậc thấp để máy h

0 0 43

- vừa được xem lúc

Dextool - Công cụ phân tích Decentralized Exchange tuyệt vời

. Trend Defi mặc dù đã bớt nhiệt nhưng những sản phẩm nổi bật của làn sóng này mang lại thì vẫn rất được người dùng ưa chuộng. Đặc biệt là các nền tảng Decentralized Exchange, tiêu biểu là Uniswap, SushiSwap, 1inch Exchange, FalconSwap,... Nhưng khi đã sử dụng các nền tảng DEx này mà không biết đến

0 0 92