Mô hình kế toán và thiết kế của Blockchain ảnh hưởng đến khả năng mở rộng như thế nào
Ngày 20 tháng 09 năm 2023 - Chia sẻ bài viết này trên Twitter | Facebook | Telegram
Cardano sử dụng mô hình UTxO và chỉ các tập lệnh (scripts) nhỏ được xác thực on-chain. Ethereum sử dụng mô hình dựa trên tài khoản (Accounting) và tất cả logic ứng dụng được triển khai trong hợp đồng thông minh. Hãy cùng khám phá xem những cách tiếp cận khác nhau này ảnh hưởng như thế nào đến các tùy chọn khả năng mở rộng.
Khả năng mở rộng là về Tài nguyên
Khả năng mở rộng là về tài nguyên máy tính cho phép hoạt động của mạng. Nền tảng blockchain là mạng lưới phi tập trung toàn cầu bao gồm một số lượng lớn các node được vận hành bởi các tình nguyện viên. Đây là những tài nguyên máy tính duy nhất có sẵn cho mạng. Cần phải sử dụng các tài nguyên này một cách hiệu quả nhất có thể nếu muốn đạt được khả năng mở rộng cao. Chủ đề về chi phí và phần thưởng có thể được giải quyết riêng biệt.
Nền tảng không chỉ cho phép chuyển giao giá trị mà còn thực hiện các hoạt động phức tạp (hợp đồng thông minh). Khi thiết kế nền tảng, cần phải suy nghĩ về cách triển khai các chức năng riêng lẻ của mạng để chúng tiêu thụ ít tài nguyên nhất có thể.
Mạng Blockchain cần các tài nguyên sau:
- Sức mạnh xử lý (CPU) để thực hiện các phép tính và thực hiện các lệnh. Các giao dịch thông thường thường tiêu thụ ít năng lượng xử lý hơn so với việc thực hiện hợp đồng thông minh.
- Dung lượng lưu trữ rất quan trọng để lưu trữ dữ liệu và thông tin. Cần phải lưu trữ vĩnh viễn toàn bộ Blockchain. Các node cũng cần lưu trữ tạm thời dữ liệu để xác thực giao dịch và thực hiện hợp đồng thông minh (ví dụ: bộ UTxO, phân phối cổ phần, danh sách chứng chỉ hoạt động, v.v.).
- Băng thông, là tốc độ truyền dữ liệu hoặc liên lạc trong một hệ thống.
Khả năng mở rộng của Blockchain bị ảnh hưởng bởi tính sẵn có, hiệu quả và việc sử dụng các tài nguyên được đề cập. Mạng có thể mở rộng có thể tăng hoặc tối ưu hóa tài nguyên của nó để đáp ứng nhiều người dùng, giao dịch hoặc ứng dụng hơn mà không làm giảm hiệu suất và chất lượng của mạng.
Các ứng dụng riêng lẻ có thể khác nhau đáng kể về các yêu cầu về sức mạnh xử lý, lưu trữ và băng thông. Vấn đề không chỉ là thiết kế của nền tảng mà còn là các nhóm thiết kế và triển khai ứng dụng.
Thiết kế mạng sẽ cho phép khả năng mở rộng tăng dần bằng cách cung cấp nhiều tài nguyên hơn, nhưng điều này cũng có những hạn chế. Mạng blockchain cần khả năng mở rộng cao, nghĩa là có thể xử lý nhiều giao dịch hơn mỗi giây (TPS), nhưng chúng phải duy trì tính bảo mật, Phi tập trung và chức năng. Đây là một thách thức lớn đối với các đội.
Ví dụ: việc tăng kích thước khối hoặc giảm thời gian khối có thể làm tăng TPS, nhưng nó cũng làm tăng yêu cầu về lưu trữ và băng thông của các node, cũng như nguy cơ phân nhánh và khối mồ côi. Việc tăng số lượng node có thể tăng tính bảo mật và Phi tập trung của mạng, nhưng nó cũng làm tăng độ trễ và độ phức tạp của cơ chế đồng thuận.
Các nhóm phải cân bằng cẩn thận giữa tất cả các tính năng quan trọng của mạng Blockchain, lưu ý đến sứ mệnh của dự án và các yêu cầu của cộng đồng.
Các Blockchain không nên hy sinh tính bảo mật và Phi tập trung để có được khả năng mở rộng. Tuy nhiên, có thể có những dự án mà khả năng mở rộng quan trọng hơn sự Phi tập trung.
Cộng đồng mong đợi những lợi ích như Phi tập trung, minh bạch và khả năng phục hồi từ mạng phân tán, nhưng những tính năng này mang lại những hạn chế như độ trễ, độ phức tạp và khả năng phối hợp của mạng (là những đặc tính không thuận lợi cho khả năng mở rộng).
Khả năng mở rộng bị ảnh hưởng chủ yếu bởi thiết kế của mạng Blockchain (bao gồm cả việc thực hiện hợp đồng thông minh) và mô hình kế toán. Chúng tôi sẽ giải quyết cả hai.
Trong bài viết, chúng ta sẽ nói về Cardano như một nền tảng sử dụng mô hình UTxO và nền tảng Plutus để xác thực các tập lệnh. Ethereum là một nền tảng đại diện sử dụng mô hình dựa trên tài khoản và Máy ảo Ethereum (EVM) để thực hiện các hợp đồng thông minh.
Hầu hết các nền tảng sử dụng mô hình dựa trên tài khoản và EVM có thể gặp vấn đề tương tự như Ethereum. Tuy nhiên, nếu các nhóm quản lý triển khai sharding chẳng hạn, họ có thể mở rộng quy mô tốt hơn Ethereum. Mục đích của bài viết không phải là so sánh chi tiết các nền tảng SC mà nhằm thu hút sự chú ý đến sự khác biệt trong thiết kế.
Sự khác biệt giữa các mô hình kế toán
Mô hình UTXO giống như một hệ thống xác minh, trong đó mỗi đầu ra giao dịch (UTxO) đại diện cho một tài sản kỹ thuật số mà chủ sở hữu của nó có thể chi tiêu.
Một trong những ưu điểm của mô hình UTxO là nó cho phép xử lý song song tốt hơn, nghĩa là các giao dịch có thể được xử lý độc lập và đồng thời bởi các node khác nhau trong mạng cùng một lúc, miễn là chúng không sử dụng cùng một UTxO.
Điều này có thể cải thiện khả năng mở rộng và thông lượng của mạng vì nhiều giao dịch hơn có thể được xác minh và xác nhận trong một thời gian nhất định. Mô hình UTxO cũng làm giảm nhu cầu đồng bộ hóa và phối hợp giữa các node, vì mỗi node chỉ cần theo dõi các UTxO có liên quan đến giao dịch của nó.
Mô hình UTxO đơn giản và an toàn vì nó không yêu cầu logic phức tạp hoặc hợp đồng thông minh để thực hiện giao dịch. Nó chỉ bao gồm các phép toán số học đơn giản và kiểm tra mật mã để xác minh tính hợp lệ và tính xác thực của giao dịch.
Nhược điểm của mô hình UTxO là dễ bị phân mảnh hơn vì nó tạo ra nhiều UTxO nhỏ có thể được phân phối trên các địa chỉ khác nhau (người dùng Cardano và Bitcoin thường có tiền ở nhiều địa chỉ). Điều này có thể làm tăng số lượng và quy mô giao dịch vì có thể cần nhiều đầu vào và đầu ra hơn để đáp ứng yêu cầu chi tiêu.
Mô hình UTxO cũng làm tăng yêu cầu về lưu trữ và băng thông của các node vì chúng cần lưu trữ và truyền tất cả UTxO có liên quan đến giao dịch của chúng.
Mô hình dựa trên tài khoản (Accounting) giống một hệ thống cơ sở dữ liệu hơn, trong đó mỗi tài khoản có số dư có thể được cập nhật theo giao dịch. Nó đòi hỏi sự đồng bộ hóa và phối hợp nhiều hơn giữa các node, vì các giao dịch cần cập nhật trạng thái toàn cầu của các tài khoản.
Trạng thái toàn cầu là tập hợp tất cả số dư tài khoản và trạng thái trên mạng, trạng thái này tăng lên theo thời gian và cần được lưu trữ và xác minh bởi tất cả các node.
Mô hình dựa trên tài khoản có khả năng thực hiện song song kém hơn vì các giao dịch có thể phụ thuộc hoặc ảnh hưởng đến trạng thái của các giao dịch khác. Điều này có thể làm giảm khả năng mở rộng và thông lượng của mạng, vì các giao dịch cần được thực hiện theo thứ tự tuần tự và không thể được xử lý độc lập hoặc đồng thời bởi các node khác nhau.
Trạng thái toàn cầu tiêu tốn rất nhiều sức mạnh xử lý vì nó cần được tính toán và xác minh bởi mọi node. Điều này đặc biệt ứng dụng cho các giao dịch phức tạp hoặc lớn hoặc việc thực hiện các hợp đồng thông minh phức tạp. Tôi sẽ nói về việc chuyển token và thực hiện hợp đồng thông minh trong phần tiếp theo.
Các blockchain sử dụng mô hình UTxO có thể (ít nhất là về mặt lý thuyết) có thể đạt được khả năng mở rộng và thông lượng cao hơn mô hình dựa trên tài khoản vì các giao dịch có thể được xác thực song song. Các blockchain sử dụng mô hình dựa trên tài khoản có thể gặp phải tình trạng tắc nghẽn hoặc tắc nghẽn do sự phụ thuộc vào trạng thái toàn cầu của chúng. Tất nhiên, ngay cả các Blockchain sử dụng mô hình dựa trên tài khoản cũng có thể mở rộng quy mô tốt. Các lớp thứ hai (rollups, sidechains, v.v.) phù hợp hơn cho việc này.
Sự khác biệt giữa các thiết kế của nền tảng
Khi Cardano cần thực thi hợp đồng thông minh để xác thực một giao dịch, đó thường chỉ là xác thực một tập lệnh đơn giản. Tập lệnh trình xác thực thường chỉ chứa một vài điều kiện đơn giản (tốt nhất là chỉ một điều kiện) và kết quả của chúng chỉ là giá trị trả về Đúng hoặc Sai (giá trị Đúng cho phép chi tiêu UTxO). Các tập lệnh không nhằm mục đích thực hiện các hoạt động phức tạp như gọi các hợp đồng khác hoặc thực hiện các phép tính phức tạp.
Hợp đồng thông minh trên Cardano bao gồm logic on-chain (tập lệnh xác thực) và logic off-chain. Tất cả các hoạt động hợp đồng thông minh phức tạp được thực hiện ngoại tuyến và không tiêu tốn tài nguyên mạng phân tán. Để thực thi logic off-chain, tài nguyên của người dùng (ví) hoặc máy chủ (đám mây) sẽ được sử dụng. Các ứng dụng có thể kết hợp được vì các nhóm không bị giới hạn bởi khả năng của nền tảng về mặt tương tác lẫn nhau.
Cách tiếp cận này có thể có một bất lợi trong bối cảnh Phi tập trung. Nhiều DEX trong hệ sinh thái Cardano sử dụng bộ xử lý theo đợt. Tuy nhiên, việc Phi tập trung phần off-chain của hợp đồng là có thể.
Điều quan trọng nữa là có bao nhiêu trường hợp cần thiết để thực hiện hợp đồng thông minh. Cardano có tài sản gốc có nghĩa là việc chuyển token được đảm bảo trực tiếp bằng giao thức Cardano và không cần thiết phải thực hiện hợp đồng thông minh (hoặc tập lệnh).
Cardano cũng hiệu quả ở chỗ nhiều token có thể được chuyển đến nhiều người nhận trong một giao dịch. Điều này chủ yếu tiết kiệm dung lượng lưu trữ và băng thông. DEX có thể tạo một giao dịch lớn trong đó có nhiều giao dịch hoán đổi.
Ethereum không có tài sản gốc. Tất cả các token được tạo thông qua hợp đồng thông minh, phải được thực thi cho mọi tương tác với token, bao gồm cả việc chuyển chúng từ tài khoản này sang tài khoản khác. Điều này đòi hỏi nhiều tài nguyên tính toán của mạng hơn so với tài sản gốc.
Hợp đồng thông minh trên Ethereum hầu hết chứa tất cả logic ứng dụng. Do đó, việc thực hiện chúng đòi hỏi rất cao về tài nguyên mạng. Giống như các giao dịch, hợp đồng thông minh phải được thực hiện tuần tự.
Hầu hết mọi thứ Ethereum thực hiện đều yêu cầu thực hiện hợp đồng thông minh, ngoại trừ việc chuyển ETH.
Nếu chúng ta đang nói về khả năng mở rộng quy mô tốt hơn thì cần phải xem xét nó qua lăng kính sử dụng tài nguyên. Nguồn lực luôn có hạn và mục tiêu là tối đa hóa việc sử dụng chúng, nghĩa là sử dụng lượng tài nguyên nhất định để đạt được TPS tối đa.
Input Endoser
Sự khác biệt giữa mô hình dựa trên UTxO và mô hình dựa trên tài khoản có thể được giải thích rõ ràng bằng cách xem xét tính năng Trình xác thực đầu vào (Input Endoser - IE) (sẽ có trong Ouroboros Leios). IE là một cách có thể cải thiện khả năng mở rộng của Cardano. Chúng tôi sẽ chỉ ra cách IE cải thiện khả năng mở rộng của Cardano, cũng như lý do tại sao không thể triển khai điều gì đó tương tự trong trường hợp mô hình dựa trên tài khoản.
Khả năng mở rộng và hiệu quả của Cardano có thể được cải thiện bằng cách tách lựa chọn giao dịch khỏi sản xuất khối. Các giao dịch có thể được mạng lưới xử lý trước (xác thực trước) trước khi chèn vào một khối. Các giao dịch có thể được lựa chọn và xác nhận bởi những Input Endoser (các node được chọn ngẫu nhiên dựa trên cổ phần). Các giao dịch được xác nhận sau đó sẽ được truyền qua mạng và được xử lý bởi các node khác trước khi các nhà sản xuất khối gộp chúng thành các khối. Các khối chỉ chứa các tham chiếu đến các giao dịch được xác nhận.
Lưu ý rằng khi các giao dịch được đưa vào một khối, chúng sẽ có xác nhận từ nhiều node. Điều này cải thiện tính hoàn tất
(finality) của giao dịch.
IE giảm độ trễ và độ biến thiên của thời gian truyền khối vì các giao dịch có thể được truyền phát liên tục mà không cần chờ sự đồng thuận. Điều này cũng cải thiện tốc độ và khả năng đáp ứng của mạng.
Các giao dịch có thể được xử lý song song bởi các node khác nhau trước khi được đưa vào các khối, do đó nó làm tăng thông lượng và dung lượng của mạng. Cardano sẽ có thể xử lý nhiều giao dịch hơn (và chúng có thể phức tạp hơn).
IE tận dụng mô hình UTXO, chính xác hơn là tính song song của nó.
IE khác với sharding (phân mảnh), đây là một kỹ thuật khác để mở rộng quy mô mạng Blockchain. IE không yêu cầu giao tiếp hoặc đồng bộ hóa giữa các phân đoạn vì tất cả các node đều xử lý các giao dịch được xác nhận giống nhau trước khi chúng được đưa vào các khối.
IE bổ sung cho sharding vì nó có thể cải thiện khả năng mở rộng và hiệu quả của từng phân đoạn hoặc lớp của mạng. Vì vậy, Cardano có thể có sharding sau khi IE được triển khai.
Input Endosercó thể không dễ dàng để ứng dụng cho mô hình dựa trên tài khoản.
Việc xác thực từng giao dịch phụ thuộc vào việc xác thực tất cả các giao dịch trước đó, tức là vào trạng thái toàn cầu. Các node Ethereum không thể xác thực (trước) các giao dịch mà không biết trạng thái toàn cầu (tương lai). Mô hình dựa trên tài khoản yêu cầu đồng bộ hóa và phối hợp nhiều hơn giữa các node, vì các giao dịch cần cập nhật trạng thái toàn cầu của tài khoản.
Nói cách khác, các node Ethereum không thể lấy một phần giao dịch và xác minh chúng một cách độc lập với các giao dịch khác. Vấn đề là trạng thái toàn cầu chỉ thay đổi ở một nơi trong mạng (nhà sản xuất khối) và tất cả các node khác phải đợi cho đến khi họ có thể xác minh khối mới. Vì thế, các node sẽ thường là nhàn rỗi.
Phân mảnh (Sharding)
Ethereum lẽ ra phải có sharding, nhưng nhóm phát triển đã từ bỏ ý định này và sharding hiện sẽ thiên về việc ứng dụng trên lớp thứ hai hơn. Hãy cùng nghĩ xem việc sharding trên mô hình dựa trên tài khoản sẽ trông như thế nào.
Sharding là một kỹ thuật chia Blockchain thành các phần nhỏ hơn, được gọi là phân đoạn, có thể xử lý các giao dịch song song. Sharding có thể tăng khả năng mở rộng và thông lượng của mạng, nhưng nó cũng đặt ra những thách thức và sự đánh đổi mới.
Một trong những thách thức liên quan đến trạng thái toàn cầu là làm thế nào để đảm bảo tính nhất quán và bảo mật của các giao dịch phân mảnh chéo (cross-shard transactions), là các giao dịch liên quan đến các tài khoản hoặc hợp đồng trên các phân đoạn khác nhau. Các giao dịch giữa các phân đoạn yêu cầu sự phối hợp và liên lạc giữa các phân đoạn, điều này có thể gây ra độ trễ và độ phức tạp.
Hơn nữa, các giao dịch phân mảnh chéo có thể phải đối mặt với nguy cơ xảy ra các cuộc tấn công chi tiêu gấp đôi hoặc sắp xếp lại, trong đó các tác nhân độc hại cố gắng thao túng trật tự hoặc tính hợp lệ của các giao dịch.
Mỗi phân đoạn (shard) sẽ có trạng thái toàn cầu riêng và trạng thái đó sẽ phải được đồng bộ hóa giữa tất cả các phân đoạn. Mỗi phân đoạn có thể có trạng thái độc lập riêng, nghĩa là một bộ số dư tài khoản và hợp đồng thông minh duy nhất. Trạng thái toàn cầu của mạng (tất cả các phân đoạn cùng nhau) sẽ không phải là trạng thái cố định. Nó sẽ phải là một trạng thái năng động và phát triển phụ thuộc vào sự tương tác và sự đồng thuận giữa các phân đoạn.
Nếu mạng chỉ có một trạng thái tại một thời điểm nhất định, mạng có thể cực kỳ kém hiệu quả và yêu cầu nhiều hoạt động liên lạc cũng như đồng bộ hóa.
Việc triển khai sharding trên Cardano cũng sẽ là một thách thức lớn. Tuy nhiên, nó đơn giản hơn so với trường hợp mô hình dựa trên tài khoản. Khi tính năng Xác nhận đầu vào đã sẵn sàng, sharding có thể sẽ được xem xét.
Mô hình EUTxO có thể có một số lợi thế cho việc triển khai sharding so với mô hình dựa trên tài khoản nhờ thuộc tính xử lý song song tự nhiên.
Nhiều node có thể tích cực tham gia sharding cùng một lúc. IE sẽ giúp với nó. Các giao dịch có thể được phát tán trực tuyến liên tục mà không cần chờ sự đồng thuận, do đó, nó sẽ làm giảm độ trễ và độ phức tạp của các giao dịch phân mảnh chéo.
Tương tự như mô hình dựa trên tài khoản, sharding yêu cầu đồng bộ hóa và phối hợp nhiều hơn giữa các node.
Các node sẽ phải nhận thức không chỉ về phân đoạn của chúng (ví dụ: bộ UTxO của riêng chúng) mà còn ít nhất phải nhận thức được một phần về các phân đoạn xung quanh. Có thể cần phải triển khai một số loại trạng thái toàn cầu (động và đang phát triển) của mạng (tất cả các phân đoạn cùng nhau).
Việc triển khai sharding trên các mô hình dựa trên tài khoản hoặc dựa trên UTxO không phải là một nhiệm vụ đơn giản. Mặc dù điều này có thể dễ dàng hơn đối với mô hình UTxO (chủ yếu nhờ tính song song), nhưng chắc chắn đây không phải là mục tiêu dễ dàng.
Lời kết
Khả năng mở rộng của blockchain (và nền tảng) bị ảnh hưởng bởi mô hình sổ cái, thiết kế mạng, tối ưu hóa và những thứ khác. Ví dụ: Mithril sẽ cho phép tạo các máy trạm không trạng thái, là các node không lưu trữ toàn bộ trạng thái của blockchain mà chỉ xác minh các giao dịch bằng bằng chứng mật mã.
Theo quan điểm của tôi, khả năng mở rộng chủ yếu là về việc sử dụng thông minh tài nguyên máy tính theo cách tốt nhất có thể và khả năng bổ sung tài nguyên. Nhưng điều này có giới hạn của nó (không giống như các mạng tập trung) và các nhóm phải cân bằng giữa các thuộc tính quan trọng của mạng.
Ngay cả khi mô hình dựa trên UTxO có vẻ thuận lợi hơn về khả năng mở rộng, nó có thể không phải là giải pháp tốt nhất có thể cho trường hợp sử dụng cụ thể mà nền tảng này cung cấp.
Tài sản tốt nhất của dự án là một nhóm phát triển có thể nói điều chỉnh dự án cho phù hợp với điều kiện thị trường hoặc mong muốn của cộng đồng và đưa ra giải pháp cần thiết để ứng dụng tại thời điểm nhất định. Khả năng mở rộng thấp là rào cản khi nó cản trở việc ứng dụng rộng rãi hơn. Có những dự án (được cho là) có khả năng xử lý hàng nghìn TPS ở lớp đầu tiên (layer 1), nhưng chúng lại không nằm trong top 10 về mặt quy mô vốn hóa.
Nguồn bài viết tại đây
Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới