(VI) Sharding

A Technical Promenade, phần 4.

Alephium Việt Nam 🇻🇳
6 min readJul 31, 2024

Trong bài viết trước, chúng ta đã tìm hiểu về chỉ số Thời gian Hoàn tất Giao dịch, một giá trị quan trọng đối với khía cạnh giao dịch tài chính trong blockchain. Bây giờ, chúng ta sẽ khám phá một phương pháp để tăng khả năng xử lý của blockchain: Sharding!

Technical Promenade Series:
Phần 1: Block Time & Block Size
Phần 2:
Transaction per Second — TPS
Phần 3:
Time to Finality
Phần 4:
Sharding

Sharding là gì?

Về cơ bản, blockchain là một danh sách các bản ghi dữ liệu được sắp xếp theo thứ tự tuyến tính, một chuỗi chứa các giao dịch và khối “trong một chuỗi,”ngay cả khi không có mối liên hệ trực tiếp (hay sự phụ thuộc nào) giữa giao dịch/khối trước và giao dịch/khối tiếp theo. Danh sách các bản ghi dữ liệu này trong một chuỗi dài tương tự như một bộ xử lý lõi đơn, chỉ có thể xử lý một lệnh tại một thời điểm. Cấu trúc này không có tính mở rộng tốt, nó tạo ra vấn đề nút thắt cổ chai (bottleneck) khi số lượng giao dịch tăng lên và tất cả quá trình xử lý đều phải chờ khối hiện tại hoàn tất với một kích thước giới hạn hoặc một thời gian xử lý chậm.

Vì lý do này, các blockchain mới hơn đã áp dụng một quy trình gọi là sharding. Sharding là một cơ chế phân phối khối lượng công việc qua nhiều node khác nhau. Thuật ngữ này có nguồn gốc từ các hệ thống cơ sở dữ liệu, ám chỉ việc chia nhỏ một cơ sở dữ liệu thành các phần nhỏ hơn, được gọi là shard, nhằm cải thiện khả năng mở rộng và hiệu suất. Hãy tưởng tượng nó như một bộ xử lý đa lõi, có khả năng thực hiện nhiều lệnh song song, từ đó tăng trưởng đầu ra giao dịch theo cấp số nhân!

Sharded Blockchain: Một sự tăng cường hiệu suất!

Để có thể tăng cường hiệu suất một cách an toàn, một blockchain với các shard cần có các quy trình bổ sung (hoặc cải tiến) so với một blockchain thông thường nhằm đảm bảo hoạt động chính xác của mạng lưới, chẳng hạn như:

Cơ chế đồng thuận: Một cơ chế đồng thuận vững chắc là rất quan trọng để đảm bảo sự an toàn và tính toàn vẹn của một blockchain có shard. Nó có thể là Proof-of-Work (PoW), Proof-of-Stake (PoS), Byzantine Fault Tolerance (BFT), hoặc một trong những tùy chọn khác có sẵn. Điều quan trọng là nó phải cho phép một quy trình xác thực có thể mở rộng và bảo mật.

Giao tiếp và đồng bộ hóa giữa các shard: Các sharded blockchain yêu cầu giao tiếp giữa những shard hiệu quả và bảo mật để phối hợp việc xác thực các giao dịch và block trên nhiều shard khác nhau, nhằm đảm bảo rằng mỗi shard đều được đồng bộ với các shard khác về trạng thái cũng như các giao dịch và block đã được xác thực. Điều này đòi hỏi việc sử dụng các giao thức đồng bộ hóa với một bộ quy tắc vững chắc nhằm đảm bảo quy trình xử lý được thực hiện đúng cách.

Bảo mật chống lại các node độc hại: Các sharded blockchain dễ bị tấn công bởi các node độc hại trên một shard đơn, nó có thể thao túng việc xác thực các giao dịch và block. Một biện pháp để ngăn chặn điều này trong PoS là phân bổ các validator ngẫu nhiên cho các shard khác nhau. Phương pháp này đã được xem xét lần đầu tiên trong việc mở rộng mạng lưới Ethereum, nhưng các cuộc thảo luận đã chuyển sang một khái niệm tương tự gọi là “DankSharding.”

Sharding trong Alephium: Một Cuộc Cách Mạng Mới

Alephium đã tạo ra stateful UTXO (sUTXO) như một mô hình accounting và Proof of Less Work (PoLW) là cơ chế đồng thuận để làm nền tảng cho thuật toán sharding của mình và được đặt tên là BlockFlow. Mô hình stateful UTXO được sử dụng vì đây là một cấu trúc dữ liệu bất biến. Có nghĩa rằng nó không thay đổi đến khi nó được tiêu thụ (sử dụng) trong một giao dịch. Sẽ không có cập nhật/thay đổi và không có state nào có thể biến đổi được.

Tại bài viết hiện tại, mainnet của Alephium hiện đang được chia thành 4 nhóm, mỗi nhóm có 4 shard. Tổng cộng 16 shard này cho phép blockchain xử lý 400 giao dịch mỗi giây (TPS). Mỗi shard được xây dựng như một blockchain để đảm bảo thứ tự giao dịch bên trong của nó. Nó có thể xử lý các block và giao dịch song song với các shard khác, tận dụng tính bất biến của UTXO, miễn là thứ tự không vi phạm các mối quan hệ phụ thuộc cơ bản giữa chúng.

Blockflow Algorithm — Nguồn: Alephium.org

Những sự phụ thuộc này liên quan đến việc tạo ra và tiêu thụ các UTXO. Chúng tạo thành một cấu trúc giống như một đồ thị có hướng không chu trình (DAG), với các giao dịch là các node và các sự phụ thuộc được kết nối bằng các cạnh. Thuật toán sharding Blockflow sử dụng cấu trúc này để tạo ra một loạt quy tắc nhằm đảm bảo rằng việc đồng bộ hóa đa shard được duy trì khi tạo một block mới trên một shard. PoLW được sử dụng làm cơ chế đồng thuận để đạt được sự hoàn tất cho tất cả các block được tạo ra bởi các shard, theo các quy tắc tương tự.

Trên blockchain Alephium, tất cả các shard đều giống nhau. Vì vậy người dùng không phải chuyển đổi giữa các giao diện, cầu nối (bridges), hoặc blockchain khác nhau để di chuyển tài sản giữa chúng. Việc chuyển token được thực hiện một cách toàn vẹn (atomically) trong một thao tác duy nhất, nghĩa là giao dịch sẽ thành công hoàn toàn hoặc không thành công chút nào. Nếu giao dịch thành công, một UTXO mới sẽ được tạo ra trên shard đích, và UTXO gốc sẽ được tiêu thụ trên shard nguồn. Điều này là an toàn và chống lại việc chi tiêu gấp đôi (double spending) vì thuật toán BlockFlow sẽ xác thực các mối quan hệ phụ thuộc giữa các giao dịch trong các shard.

Mô hình sUTXO độc đáo của Alephium cho phép nó chạy các hợp đồng thông minh cùng với các tài sản UTXO. Tuy nhiên, là một blockchain có shard, trong khi các token từ UTXO có thể được gửi giữa các blockchain, dữ liệu và logic từ các hợp đồng thông minh được giữ trong cùng một nhóm. Kết quả là trạng thái của các hợp đồng thông minh được phân chia theo các shard, với dữ liệu và logic không được chia sẻ giữa tất cả các shard. Cách tiếp cận này mang lại cho Alephium những lợi ích của cả khả năng tương tác giữa các blockchain và tính mở rộng của sharding, đồng thời đảm bảo rằng dữ liệu và logic vẫn an toàn và riêng tư.

Tiếp theo là gì? “Ai là người chịu trách nhiệm vận hành blockchain?”
Có một thành phần phải thực hiện tất cả các quy trình này và thực hiện toàn bộ công việc tính toán. Nhận các giao dịch, xác minh tính chính xác của chúng, phát sóng chúng, v.v… khối lượng công việc là rất lớn! Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu thêm về nhân vật phải chịu trách nhiệm cho tất cả những điều này: full node!

Link bài viết gốc: https://medium.com/@alephium/sharding-d50968b8b229

--

--

Alephium Việt Nam 🇻🇳
Alephium Việt Nam 🇻🇳

Written by Alephium Việt Nam 🇻🇳

Cộng Đồng Alephium Việt Nam (official community managed) - Telegram: https://t.me/alephiumvn

No responses yet