Skip to main content

Khám phá các tùy chọn khả năng mở rộng của Mô hình UTXO

Ngày 01 tháng 05 năm 2024 - Chia sẻ bài viết này trên Twitter | FacebookTelegram

Mô hình UTXO cho phép xử lý song song các giao dịch, một tính năng cần thiết để đạt được khả năng mở rộng cao và tính hoàn tất nhanh chóng của các giao dịch. Trong bài viết này, chúng tôi sẽ đi sâu vào các chiến lược khác nhau để cải thiện cơ chế đồng thuận của mạng, điều này có thể dẫn đến tăng thông lượng mạng và hoàn tất giao dịch nhanh hơn. Trong bài viết, bạn sẽ tìm hiểu về Trình Input Endorser, sharding và cách bảo vệ chống lại các cuộc tấn công chi tiêu gấp đôi hạn chế khả năng mở rộng.

Các tính năng cơ bản của mô hình UTXO

UTXO là các đối tượng độc lập và bất biến. Khi UTXO được tạo làm đầu ra của giao dịch, nó sẽ không thay đổi cho đến khi được chi tiêu trong một giao dịch mới. Khi được chi tiêu, nó sẽ được tiêu thụ hoàn toàn và UTXO mới được tạo làm đầu ra của giao dịch mới.

Hình ảnh minh họa việc người dùng gửi liên tục và song song các giao dịch mới. Mỗi giao dịch trỏ đến các UTXO đầu vào từ bộ UTXO, được biểu thị bằng các mũi tên màu đỏ dẫn đến các UTXO màu đỏ. Thuật ngữ STATE 1 thể hiện trạng thái global mới xuất hiện trên mỗi node sau khi chấp nhận một khối mới. Các UTXO màu đỏ đã bị xóa khỏi bộ UTXO. Bộ UTXO đã được cập nhật với việc bổ sung các UTXO mới được hình thành, được mô tả bằng các mũi tên màu xanh lá cây hướng về phía các UTXO màu xanh lá cây.

Mô hình UTXO đóng vai trò then chốt trong việc quản lý trạng thái global trong quá trình xác thực giao dịch. Trạng thái global trong Cardano được thể hiện bằng một tập hợp UTXO đang hoạt động, còn được gọi là bộ UTXO. Với việc bổ sung mỗi khối mới, tất cả các UTXO mới được tạo sẽ được tích hợp vào bộ UTXO. Ngược lại, UTXO được sử dụng (chi tiêu) bởi các giao dịch sẽ bị xóa khỏi bộ UTXO. UTXO có thể được coi là thực thể dùng một lần.

Mỗi node trong mạng duy trì bộ UTXO riêng của nó. Phần lớn các node tuân thủ cơ chế đồng thuận đều sở hữu một bộ UTXO (trạng thái global) giống hệt nhau, vì chúng lưu giữ cùng một lịch sử Blockchain, bao gồm cả khối được thêm gần đây nhất. Tuy nhiên, do sự chậm trễ trong việc truyền dữ liệu mạng, trạng thái global không trải qua những thay đổi tức thời trên tất cả các node cùng một lúc mà chỉ có một độ trễ nhỏ. Có thể giả định rằng tại thời điểm node sản xuất khối phát tán một khối mới vào mạng, tất cả các node đều có chung trạng thái global (có nghĩa là chúng đã nhận được khối hoàn tất và cập nhật trạng thái global tương ứng).

Làm thế nào để tăng tính hoàn tất của giao dịch?

Cardano sử dụng cơ chế đồng thuận giống với cơ chế đồng thuận kiểu Nakamoto. Điều này được đặc trưng bởi tính hoàn tất theo xác suất của các khối và do đó là các giao dịch. Điều này ngụ ý rằng nếu một giao dịch được đưa vào một khối mới, được gọi là KHỐI 1, thì nó có số lượng xác nhận bằng 0. Khi một khối được thêm vào, có thể khối này có thể không tồn tại trong blockchain vì nó có thể được thay thế bằng một khối thay thế được tạo cùng thời điểm. Sự đảm bảo rằng một khối sẽ tồn tại trong Blockchain sẽ tăng lên khi có thêm các khối mới ngoài KHỐI 1. Điều này thường được gọi là sự gia tăng số lượng xác nhận.

Trong hình, bạn có thể thấy rằng sau BLOCK 0 đã có một nhánh của Blockchain. Hai BLOCK 1 thay thế đã được sản xuất. Sau khi thêm nhiều khối hơn, chuỗi trên đã chiếm ưu thế. Ở chuỗi trên, có giao dịch TX 1.

Cardano thể hiện tính hoàn tất của giao dịch thấp. Thời gian chặn trong Cardano được định cấu hình thành 20 giây. Điều này biểu thị rằng nếu giao dịch của bạn cần 10 lần xác nhận, bạn sẽ phải đợi khoảng 200 giây, tức là khoảng 3 phút.

Nhờ tính độc lập của các UTXO trong bộ UTXO, việc xác thực các giao dịch cũng loại trừ lẫn nhau. Mỗi node có thể xác thực một giao dịch hoặc một nhóm giao dịch. Trình tự các giao dịch trong một khối là không quan trọng vì chúng không ảnh hưởng lẫn nhau. Do đó, một node không chỉ có thể xác thực các giao dịch riêng lẻ khi nhận mà còn có thể thêm phê duyệt hoặc bỏ phiếu dưới một số hình thức trước khi phát tán giao dịch lên mạng. Mỗi node tiếp theo nhận giao dịch cũng sẽ tuân theo sự phê duyệt từ các node đã nhận giao dịch trước đó.

Trong hình, bạn có thể thấy giao dịch TX 1 dần dần thu thập các phê duyệt trên mọi node khác mà nó được phân phối. Khi NODE 4 tạo ra một khối mới, giao dịch đã có 4 lần phê duyệt. Lưu ý rằng NODE 4 là NODE 4 đầu tiên sửa đổi mem-pool của nó. NODE 4 đã xóa UTXO đầu vào cũ (màu đỏ) khỏi giao dịch TX 1 và chèn UTXO mới được tạo (màu xanh lá cây).

Các giao dịch nằm trong mem-pool của node trong thời gian dài hơn thường sẽ có nhiều phê duyệt hơn và có thể được ưu tiên cao hơn khi được thêm vào một khối. Đây đã là một tính năng của các giao dịch Cardano, vì Cardano hoạt động trên cơ sở nhập trước, xuất trước. Điều quan trọng là, nếu một giao dịch nhận được sự chấp thuận từ phần lớn các node trong mạng thì khả năng giao dịch đó bị loại bỏ sẽ giảm, ngay cả khi blockchain trải qua quá trình tổ chức lại.

Quá trình đạt được cơ chế đồng thuận về việc đưa vào các giao dịch có thể diễn ra nhanh hơn và độc lập hơn với việc sản xuất các khối mới.

Ngay cả khi khối chứa giao dịch chỉ có một vài xác nhận (có thể chỉ một), thì sẽ có cơ chế đồng thuận giữa các node mạng rằng giao dịch phải là một phần của Blockchain. Mạng có thể được thiết kế sao cho các giao dịch lâu đời nhất với số lượng phê duyệt lớn sẽ được đưa vào Blockchain trong thời gian sớm nhất.

Tuy nhiên, khả năng tổ chức lại Blockchain đặt ra thách thức đối với tính Hoàn tất của giao dịch. Mặc dù giao dịch có số lượng phê duyệt cao nhưng về mặt lý thuyết, nó có thể tạm thời bị xóa khỏi Blockchain. Điều này có thể xảy ra nếu một phần của chuỗi (các khối gần đây nhất của blockchain) được thay thế bằng một phiên bản thay thế. Các khối trong phiên bản chuỗi con mới này có thể chứa một tập hợp giao dịch khác. Do đó, việc nâng cao tính Hoàn tất của các giao dịch liên quan đến việc thay đổi cơ chế đồng thuận để ngăn chặn việc tổ chức lại Blockchain hoặc sửa đổi các quy tắc để phản ánh số lượng phê duyệt giao dịch.

Trong hình ảnh bên dưới, bạn có thể thấy sự sắp xếp lại không mong muốn của Blockchain. TX1 ở chuỗi trên có 4 lần phê duyệt và một xác nhận (KHỐI 2). Tuy nhiên, cuối cùng, chuỗi thấp hơn không có giao dịch TX 1 đã chiếm ưu thế.

tính Hoàn tất của giao dịch có thể được tăng cường bằng cách các node đồng tình trong quá trình tích hợp vào blockchain trong quá trình truyền bá mạng. Điều này khả thi nhờ mô hình UTXO, vì việc xác thực giao dịch chỉ yêu cầu xác minh sự tồn tại của UTXO đầu vào (sự hiện diện của chúng trong bộ UTXO), biểu thị rằng chúng có thể chi tiêu được.

Dưới đây trong bài viết, chúng tôi sẽ chỉ ra cách về mặt lý thuyết có thể đạt được hoàn tất giao dịch nhanh hơn trước khi mạng tạo ra khối tiếp theo.

Ngoài ra, tính Hoàn tất có thể được tăng cường bằng cách đẩy nhanh cơ chế đồng thuận về khối mới được thêm vào trong mạng. Điều này có thể đạt được bằng cách các node bỏ phiếu trên một khối trước khi nó được thêm vào blockchain hoặc ngay sau đó.

Input Endorser

Input Endorser là một kế hoạch nhằm cải thiện khả năng mở rộng của Cardano. Cải tiến này có thể được xem như một hình thức bỏ phiếu trước khi một khối (khối đồng thuận) được thêm vào Blockchain.

Input Endorser sử dụng 3 loại khối: Khối đầu vào (IB), khối chứng thực (EB) và Khối xếp hạng (RB). Mỗi loại khối sẽ được đúc ở một tần suất khác nhau. Một số khối có thể được đúc trong cùng một vị trí. Khối đầu vào sẽ được đúc với tần suất nhanh nhất.

Input Endorser theo dõi tất cả các giao dịch đã gửi và gộp các giao dịch này thành các khối được xây dựng sẵn. Mục đích chính của tính năng Input Endorser là tách lựa chọn giao dịch khỏi quá trình sản xuất khối.

Trong mô hình này, các giao dịch có thể thu thập cơ chế đồng thuận trên đường đến mem-pool. Điều này là do Input Endorser kết hợp các yếu tố song song và đồng thời vào cơ chế đồng thuận trong khi vẫn duy trì tính tuyến tính của blockchain.

Thuật toán Input Endorser sẽ tạo điều kiện thuận lợi cho việc chuẩn bị một số lượng lớn giao dịch trong giai đoạn lựa chọn giao dịch, vì nó cho phép nhiều node hơn trong mạng tham gia đồng thời. Các node xác nhận xác thực và phê duyệt trước các giao dịch, giúp giảm bớt gánh nặng tính toán và nhu cầu băng thông của các nhà sản xuất khối xếp hạng, đồng thời nâng cao tính đa dạng và tính khả dụng của nhóm giao dịch. Hơn nữa, họ đẩy nhanh việc xác nhận các giao dịch chưa được đưa vào chuỗi bằng cách cung cấp bằng chứng chứng thực có thể xác minh được.

Việc triển khai Trình Input Endorser chỉ khả thi nhờ mô hình UTXO, vì nó cho phép các node xác thực giao dịch một cách độc lập. Tính tuyến tính duy nhất cần được bảo toàn trong hệ thống là ở cấp độ của các khối xếp hạng, vì Blockchain là một chuỗi các khối tuyến tính. Trình tự các giao dịch trong một khối, bao gồm các khối xếp hạng, là không quan trọng. Điều thú vị là các khối xếp hạng không chứa các giao dịch mà chỉ chứa các tham chiếu đến chúng thông qua các khối chứng thực.

Hình ảnh mô tả người dùng gửi các giao dịch đề cập đến UTXO đầu vào (được minh họa là UTXO màu đỏ) từ nhóm UTXO đang hoạt động (trạng thái chung). Các giao dịch này trải qua quá trình xác thực song song và sau đó được tích hợp vào Khối đầu vào. Các node có thể đồng thời xác nhận các Khối đầu vào này. Hệ thống duy trì tính tuyến tính và mức xác thực tối đa, giúp bảo vệ chống lại các cuộc tấn công chi tiêu gấp đôi và những hành vi tương tự, ở mức đồng thuận cao nhất nơi Khối xếp hạng được gắn vào blockchain.

Với mỗi khối mới được thêm vào Blockchain, trạng thái global cũng thay đổi. Như đã mô tả ở trên, các UTXO đã sử dụng sẽ bị xóa khỏi bộ UTXO và các UTXO mới (UTXO màu xanh lá cây từ các giao dịch) được chèn đồng thời vào đó.

Lưu ý: Hình ảnh trên chỉ hiển thị mức tiêu thụ UTXO chứ không hiển thị việc chèn UTXO mới vào bộ UTXO.

Bảo vệ chống lại cuộc tấn công chi tiêu gấp đôi

Bảo vệ chống lại các cuộc tấn công chi tiêu gấp đôi là một trong những yếu tố hạn chế khả năng mở rộng và xử lý song song các giao dịch. Đầu vào để xác thực giao dịch là trạng thái global. Node xác thực các giao dịch trong bối cảnh trạng thái global hiện tại mà nó duy trì.

Mô hình kế toán về cơ bản ảnh hưởng đến cách các node hoạt động với trạng thái global và các tùy chọn mà chúng có liên quan đến việc song song xác thực giao dịch và khả năng mở rộng.

Trong bối cảnh của mô hình UTXO, một cuộc tấn công chi tiêu gấp đôi có thể xảy ra khi người dùng gửi hai giao dịch tham chiếu cùng một UTXO đầu vào. Điều này giống như việc cố gắng tiêu cùng một số tiền hai lần. Kẻ tấn công tinh vi có thể gửi giao dịch tới mạng thông qua các node khác nhau, tức là ở các vị trí khác nhau của mạng. Điều này có nghĩa là cả hai giao dịch sẽ được coi là hợp lệ bởi một nhóm node nhất định cho đến khi một giao dịch khác đến với cùng một UTXO đầu vào. Đó là lúc xảy ra xung đột.

Trong một kịch bản lý tưởng, một cuộc tấn công chi tiêu gấp đôi được xác định ở cơ hội sớm nhất. Một giao dịch sẽ được tích hợp vào khối mới, trong khi giao dịch còn lại sẽ bị loại bỏ. Giao dịch được bao gồm sẽ ảnh hưởng đến trạng thái global. UTXO đã sử dụng sẽ không thể chi tiêu được, khiến giao dịch thứ hai vĩnh viễn không hợp lệ vì nó đề cập đến UTXO đã chi tiêu.

Với việc triển khai Trình Input Endorser, một cuộc tấn công chi tiêu gấp đôi có thể được phát hiện ở giai đoạn Khối đầu vào hoặc Khối chứng thực. Ngay cả khi việc phát hiện này không xảy ra, cuộc tấn công chắc chắn sẽ được node xác định trong quá trình xây dựng Khối xếp hạng.

Hình ảnh minh họa một cuộc tấn công chi tiêu gấp đôi. Giao dịch TX 1 được đặt vào Khối đầu vào khác so với giao dịch TX 2. Sau đó, cả hai giao dịch đều được đưa vào Khối chứng thực riêng biệt. Ở giai đoạn này, mạng có thể xác định các giao dịch xung đột và loại bỏ một trong số chúng. Tuy nhiên, nếu điều này không xảy ra thì xung đột sẽ được giải quyết trong quá trình xây dựng Khối xếp hạng. Node chịu trách nhiệm xây dựng Khối xếp hạng sở hữu tất cả thông tin cần thiết để phát hiện các giao dịch xung đột và giải quyết vấn đề.

Quan sát rằng hệ thống tạo điều kiện thuận lợi cho việc xử lý song song các giao dịch trong khi vẫn duy trì khả năng giải quyết xung đột một cách xác định và ngăn chặn các cuộc tấn công chi tiêu gấp đôi. Hầu hết các giao dịch được tích hợp vào Khối xếp hạng, nhưng các giao dịch xung đột không có cơ hội vượt qua xác thực.

Hãy hình dung một sự cải tiến trong đó tính Hoàn tất của các giao dịch không phụ thuộc vào số lượng xác nhận ở cấp Xếp hạng khối mà phụ thuộc vào số lượng xác nhận. Điều này ngụ ý rằng tính Hoàn tất sẽ tỷ lệ thuận với tốc độ lan truyền giao dịch trong mạng. Node mà người dùng sử dụng để gửi giao dịch tới mạng phải biết về số lượng xác nhận. Điều này đòi hỏi một cơ chế để phát tán các khối chứng thực. Node bắt đầu giao dịch sẽ nhận được Khối chứng thực và sẽ quan sát số lượng phê duyệt đối với giao dịch của người dùng trong đó. Thông tin này có thể được hiển thị cho người dùng thông qua ví hoặc thông qua explorer Blockchain. Theo giả thuyết, nếu giao dịch nhận được sự chấp thuận từ 51% cổ phần và gần như chắc chắn rằng không có giao dịch xung đột nào thì về mặt lý thuyết, giao dịch có thể được coi là hoàn tất. Tuy nhiên, giao dịch sẽ chỉ đạt được mục đích hoàn tất khi nó trở thành một phần của Khối xếp hạng.

Mô hình UTXO và Shending

Sharding là một công nghệ quan trọng giúp tăng cường khả năng mở rộng của blockchain. Mạng Blockchain được chia thành các phần hoặc childchain nhỏ hơn, được gọi là 'sharding'. Tổng khối lượng công việc tính toán và lưu trữ được chia thành các sharding.

Sharding là một hình thức song song trong một hệ thống. Mỗi sharding hoạt động độc lập và có thể xử lý tập hợp giao dịch riêng. Việc thực hiện các giao dịch song song này làm tăng hiệu suất và thông lượng tổng thể của hệ thống.

Mỗi sharding duy trì một phần của trạng thái global. Đây được gọi là trạng thái địa phương. Trạng thái global của toàn bộ Blockchain khi đó là tổng hợp của tất cả các trạng thái cục bộ này.

Giao tiếp giữa các sharding là một khía cạnh quan trọng của sharding. Nó đề cập đến quá trình giao dịch hoặc thông tin được trao đổi giữa các sharding khác nhau. Điều này rất quan trọng vì thông lượng của mạng blockchain sharding bị ảnh hưởng đáng kể bởi giao tiếp giữa các sharding.

Mô hình UTXO thuận lợi hơn cho việc phân chia dữ liệu so với mô hình dựa trên tài khoản.

Trong bối cảnh của mô hình UTXO, giao dịch đóng vai trò là đơn vị xác thực cơ bản. Giao dịch là một thực thể có thể được xác nhận độc lập bởi nhiều bên cùng một lúc. Kết quả của những xác nhận này sẽ luôn giống hệt nhau. Cardano thực hiện xác thực giao dịch một cách xác định. Nhiều bên có thể xác thực các giao dịch song song và bất kỳ thứ tự nào, không phân biệt khối, nghĩa là bất kể khi nào các giao dịch sẽ được kết hợp vào khối và bất kể trình tự giao dịch trong khối.

Ngược lại, trong mô hình dựa trên tài khoản của Ethereum, khối là đơn vị xác thực chính. Các giao dịch phụ thuộc lẫn nhau. Một giao dịch Ethereum không thể được xác thực một cách riêng biệt mà chỉ liên quan đến trạng thái global hiện hành. Trạng thái global của Ethereum có thể được khái niệm hóa như một chuỗi các giao dịch. Kết quả xác thực giao dịch phụ thuộc vào vị trí của nó trong chuỗi này.

Sự khác biệt trong các mô hình kế toán ảnh hưởng đáng kể đến việc triển khai sharding.

Nói một cách đơn giản, hãy coi mạng Cardano như một sharding duy nhất. Nếu chúng ta có 10 sharding, nó sẽ giống như có 10 mạng Cardano hoạt động cạnh nhau. Về mặt lý thuyết, điều này có thể dẫn đến thông lượng mạng tăng gấp 10 lần. Tuy nhiên, trên thực tế, điều này có thể không xảy ra do các yếu tố như giao tiếp giữa các sharding, nhu cầu đảm bảo tính nhất quán và bảo mật dữ liệu, độ trễ mạng và chi phí quản lý (như cân bằng tải giữa các sharding, quản lý các node tham gia và rời đi, và định tuyến các giao dịch).

Đối với các blockchain sử dụng mô hình UTXO, việc triển khai sharding tương đối đơn giản, vì trạng thái global tự nhiên cho phép thực hiện song song và các giao dịch có thể được xác thực độc lập trong mỗi sharding.

Mô hình UTXO có những ưu điểm khi nói đến giao tiếp giữa các sharding, vì việc tạo một giao dịch yêu cầu xác thực từ hai sharding là tương đối dễ dàng.

Hãy tưởng tượng một giao dịch có UTXO đầu vào từ trạng thái global SHARD 1 và tạo UTXO đầu ra ở trạng thái global SHARD 2. Giao dịch này sẽ là một phần của blockchain trong cả hai sharding. Ưu điểm ở đây là việc xác thực có thể xảy ra bất kể khối nào, tức là không phân biệt thứ tự của giao dịch trong khối.

Trong mỗi sharding có Input Endorsers, giao dịch giữa các sharding có thể nhận được xác nhận (phê duyệt) ngay sau khi gửi. Giao dịch sẽ được gửi trong SHARD 1, giao dịch này sẽ ngay lập tức chuyển tiếp nó tới SHARD 2. Trong cả hai sharding, giao dịch sẽ nhận được xác nhận đồng thời. Trong cả hai sharding, một giao dịch có thể có thể nhận được sự hỗ trợ từ 51% cổ phần trong một thời gian rất ngắn. Cần phải có một cơ chế để chia sẻ các khối chứng thực giữa các sharding (một tập hợp con dữ liệu liên quan đến giao dịch chuỗi chéo là đủ). Tại thời điểm mỗi sharding sẽ chèn một giao dịch vào khối xếp hạng, sharding đã cho có thể mong đợi với mức độ chắc chắn cao rằng giao dịch sẽ được chèn vào khối xếp hạng trong sharding khác, nhờ có số lượng xác nhận cao.

Về mặt lý thuyết, SHARD 1 không phải đợi giao dịch được đưa vào Khối xếp hạng. Tất nhiên, chỉ với giả định rằng sẽ có một cơ chế (và các biện pháp khuyến khích) đảm bảo rằng giao dịch có số lượng xác nhận cao từ phần lớn cổ phần sẽ luôn được đưa vào một trong các khối tiếp theo.

Trong hình, bạn có thể thấy giao dịch TX 1, có UTXO đầu vào từ SHARD 1. Kết quả của giao dịch là UTXO đầu ra được tạo trong SHARD 2. Có thể nói rằng giá trị được chuyển giữa các sharding. Giao dịch đến Khối đầu vào trong SHARD 1. SHARD 1 chuyển tiếp giao dịch đến SHARD 2. TX giao dịch đến Khối đầu vào trong SHARD 2. Giao dịch TX 1 dần dần đến Khối chứng thực trong cả hai sharding và cuối cùng là Khối xếp hạng. Ngay sau khi giao dịch được đưa vào Khối xếp hạng, trạng thái cục bộ trong sharding nhất định sẽ được thay đổi. UTXO đầu vào bị xóa khỏi trạng thái cục bộ của SHARD 1. Một UTXO mới sẽ được tạo ở trạng thái cục bộ của SHARD 2.

Mô hình UTXO mang lại một số lợi ích, bao gồm khả năng ứng dụng cho cả Input Endorser và sharding. Ví dụ nói trên minh họa sự tích hợp của hai công nghệ này. Khi đã có sẵn Trình Input Endorser, sharding có thể nâng cao khả năng mở rộng của Cardano. Tuy nhiên, Input Endorsers phải đẩy nhanh quá trình hoàn tất giao dịch để ngăn chặn giao tiếp giữa các sharding bị chậm chạp và đảm bảo tính toàn vẹn của trạng thái global.

Tại sao việc triển khai Sharding trong Ethereum lại khó khăn?

Ethereum hoạt động trên mô hình dựa trên tài khoản trong đó mỗi tài khoản có trạng thái liên kết. Trạng thái global của Ethereum về cơ bản là cơ sở dữ liệu về tất cả các tài khoản và số dư tài sản hiện tại của chúng. Với mỗi khối mới, trạng thái của hệ thống sẽ cập nhật dựa trên các giao dịch trong khối đó.

Giao dịch được xử lý bằng cách kiểm tra số dư của người gửi xem có đủ tiền không. Nếu thành công, số dư của người gửi sẽ giảm trong khi số dư của người nhận sẽ tăng lên. Sau đó, Máy ảo Ethereum (EVM) tính toán trạng thái mới từ trạng thái và giao dịch hiện tại, trở thành cơ sở cho giao dịch tiếp theo. Sự phát triển liên tục của trạng thái Blockchain có nghĩa là thứ tự giao dịch là rất quan trọng để xác thực.

Mỗi giao dịch có thể thay đổi trạng thái của bất kỳ tài khoản nào và kết quả của nó có thể phụ thuộc vào thứ tự xử lý của nó. Để duy trì tính nhất quán và ngăn chặn chi tiêu gấp đôi, trạng thái global 'khóa' trong mỗi lần xác thực, chỉ cho phép một giao dịch được xử lý tại một thời điểm. Cơ chế khóa này rất quan trọng đối với tính toàn vẹn của hệ thống, ngăn chặn các giao dịch đồng thời gây ra sự không nhất quán hoặc chi tiêu gấp đôi.

Đầu vào giao dịch là số dư tài khoản, một nguồn tài nguyên được chia sẻ. Điều này có nghĩa là số dư khi gửi giao dịch có thể khác với số dư khi xác thực, khiến đầu vào giao dịch không mang tính tất định, không giống như mô hình UTXO.

Trong Ethereum, số dư là những thực thể lâu dài có thể được sửa đổi bởi các giao dịch bất cứ lúc nào, nhưng hai giao dịch không thể sửa đổi cùng một số dư.

Trong hình, bạn có thể thấy cách người dùng gửi 5 giao dịch. Giao dịch có thể được gửi song song. Lưu ý rằng một số giao dịch điều chỉnh cùng một số dư. Ví dụ: TX 1 và TX 2 trừ một giá trị từ cùng một số dư. Giao dịch TX 3 và TX 4 thêm giá trị vào cùng số dư. TRẠNG THÁI 1 đến TRẠNG THÁI 4 thể hiện việc xử lý tuần tự các giao dịch và do đó cập nhật dần dần trạng thái global. Trạng thái global được tạo thành từ các số dư giống nhau, tức là các đối tượng cố định có trạng thái có thể được thay đổi nhiều lần liên tiếp thông qua các giao dịch.

Hãy tưởng tượng giao tiếp giữa các sharding phức tạp hơn bao nhiêu nếu một giao dịch phải thay đổi đồng thời một số dư trong SHARD 1 và một số dư khác trong SHARD 2. Thứ tự giao dịch trong khối Ethereum đóng một vai trò quan trọng trong kết quả xác thực. Với việc triển khai EVM hiện tại, cả hai sharding đều cần phải đưa giao dịch vào khối và chuyển thông tin về kết quả xác thực cho nhau. Không có nghĩa gì khi trong SHARD 1 xác thực giao dịch thành công và giá trị được khấu trừ khỏi số dư, trong khi ở SHARD 2 xác thực giao dịch sẽ không thành công, tức là giá trị sẽ không được ghi có vào số dư. Giao tiếp giữa các sharding hạn chế nghiêm trọng khả năng xây dựng một khối trong mỗi sharding.

Trong hình, bạn có thể thấy giao dịch TX 1, được chèn vào mem-pool sau khi gửi. Sau đó, nó được chèn từ mem-pool vào BLOCK 1. Xác thực giao dịch TX 1 thay đổi trạng thái cục bộ hiện tại trong SHARD 1. Tuy nhiên, SHARD 1 cần biết kết quả xác thực trong SHARD 2. Do đó, SHARD 1 liên lạc với SHARD 2 về kết quả xác thực giao dịch trong KHỐI 2 (PHẦN 2). Vì vậy SHARD 2 phải chèn giao dịch TX 1 vào BLOCK 2 và thực hiện xác thực. Sau đó, nó có thể thông báo kết quả xác thực tới SHARD 1. Lưu ý rằng SHARD 1 phải biết kết quả xác thực trong SHARD 2 trước khi thêm một giao dịch khác vào KHÓA 1 của nó.

Thật vậy, ví dụ được cung cấp là cách triển khai sharding đơn giản (ngây thơ). Nó nêu bật những thách thức đáng kể mà nhóm Ethereum phải đối mặt trong việc triển khai shending với cơ chế đồng thuận hiện tại.

Duy trì tính tự động của giao dịch trong quá trình giao tiếp giữa các sharding trong blockchain dựa trên tài khoản là một nhiệm vụ phức tạp. Điều quan trọng là đảm bảo rằng giao dịch được thực hiện hoàn toàn hoặc không hề duy trì tính toàn vẹn của hệ thống.

Nhiều chiến lược và giao thức khác nhau, bao gồm các giao thức cam kết hai giai đoạn, đã được đề xuất để giải quyết vấn đề này. Tuy nhiên, những giải pháp này cũng thể hiện sự đánh đổi và sự phức tạp của chúng. Đáng chú ý là một số dự án đã triển khai thành công tính năng phân chia trong blockchain bằng mô hình dựa trên tài khoản.

Lời kết

Thay đổi cơ chế đồng thuận là một phương pháp để nâng cao khả năng mở rộng mạng. Khả năng mở rộng cũng có thể được cải thiện thông qua các giải pháp lớp thứ hai, kiến ​​trúc lớp hoặc bằng cách nâng cao hiệu quả. Ví dụ, Plutus V2 hiệu quả hơn so với phiên bản tiền nhiệm của nó, Plutus V1, giúp tiết kiệm lĩnh vực khối. Hiệu quả này cho phép thực hiện nhiều giao dịch hơn trên mỗi khối, do đó tăng thông lượng mạng. Tuy nhiên, Input Endorser có thể cung cấp nhiều cải tiến đáng kể về khả năng mở rộng hơn là chỉ tăng hiệu quả.

Một số thành viên của cộng đồng Cardano tin rằng nên tập trung nhiều hơn vào việc tăng cường khả năng mở rộng thông qua mật mã Zero-knowledge thay vì Input Endorser. Cardano sẽ kết hợp mật mã Zero-knowledge thông qua hardfork Chang. Nhờ tính tất định của Cardano, việc xây dựng các bản tổng hợp Zero-knowledge không yêu cầu trình sắp xếp chuỗi sẽ khả thi.

Mô hình UTXO rất phù hợp cho Trình Input Endorser hoặc sharding, vì trạng thái global bao gồm các đối tượng dùng một lần có thể song song hóa tốt. Một số node trong mạng có thể xác thực song song các giao dịch độc lập với nhau, ngay cả trong trường hợp sharding.

Nguồn bài viết tại đây


Picture

Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới