Làm chủ trùm cuối trong khả năng mở rộng của Blockchain: Trạng thái tăng trưởng
Đây là bài đăng lại từ blog của Nick Dodson vào ngày 30 tháng 1 năm 2024.
Một trong những rào cản quan trọng nhất mà blockchain phải đối mặt là vấn đề ‘trạng thái tăng trưởng’ — một vấn đề mà nếu không được kiểm soát, có thể phá hủy khả năng mở rộng và hiệu quả của mạng blockchain. Hãy cùng khám phá xem trạng thái tăng trưởng là gì, tại sao nó lại là một vấn đề và các giải pháp được đề xuất để giữ cho các chuỗi khối tinh gọn và hoạt động tốt khi chúng mở rộng quy mô.
Tìm hiểu các nút thắt cổ chai trong quá trình xử lý của một chuỗi khối
Trước khi đi sâu vào sự phức tạp của sự phát triển trạng thái, chúng ta hãy chia nhỏ ba thành phần chính của blockchain thường là những điểm nghẽn trong việc mở rộng quy mô sử dụng mạng:
- Chấp hành. Công việc mà CPU thực hiện để đảm bảo đồng bộ hóa, xác thực và tạo khối trong tương lai đúng cách. ✅ Đã giải quyết : Có rất nhiều tùy chọn giải quyết vấn đề này, chẳng hạn như máy ảo hiệu quả hơn (FuelVM, Stylus, SVM, MoveVM) và thực thi giao dịch song song (sử dụng tất cả các lõi CPU của bạn) và biên dịch trước tốt hơn (các chức năng cài sẵn trong một máy ảo).
- Dữ liệu (cả lưu trữ và tính khả dụng). Dữ liệu giao dịch thực tế thúc đẩy chuyển đổi trạng thái và cho phép các nút khác đồng bộ hóa với mạng blockchain và cho phép chứng minh gian lận hoặc tính hợp lệ cho các lần tổng hợp. ✅ Đã giải quyết : Có một số tùy chọn giải quyết vấn đề này, như EIP-4844, thiết kế sharding và các lớp sẵn có dữ liệu bên ngoài như Celestia, EigenDA và Avail.
- Tình trạng . Đây là thông tin được lưu trữ tích cực trong cơ sở dữ liệu cục bộ nhằm đảm bảo xác thực chuỗi và chuyển đổi trạng thái thích hợp. Đây thường là “đường dẫn nóng” để xử lý chuỗi khối, yêu cầu nhiều quyền truy cập ngẫu nhiên trên đĩa và phát sinh nhiều IO, đây thường là khu vực xử lý chậm nhất ngoài chữ ký và băm. ❌ Không giải quyết được.
Mỗi thành phần này đóng một vai trò quan trọng trong hoạt động của blockchain, nhưng đó là ‘trạng thái’ mà chúng tôi đặc biệt quan tâm khi thảo luận về các vấn đề tăng trưởng.
Thách thức đối với sự tăng trưởng của Nhà nước
Tăng trưởng trạng thái đề cập đến việc tích lũy dữ liệu ngày càng tăng phải được lưu trữ và quản lý hoàn toàn bởi các nút trong mạng blockchain. Bởi vì trạng thái là thứ phát triển theo thời gian nên nó thường bị coi là “vấn đề trong tương lai”. Tuy nhiên, khi trạng thái tăng trưởng nhanh đạt đến ngưỡng, hoạt động của nút sẽ trở nên nặng nề hơn và điều này trở thành nút thắt cổ chai cho khả năng mở rộng – đã được chứng minh là nghiêm trọng khi nó cản trở việc áp dụng rộng rãi hơn và làm giảm tốc độ đổi mới.
Sự tăng trưởng của trạng thái dẫn đến các chuỗi khối cồng kềnh, trong đó thời gian giao dịch chậm hơn và chi phí lưu trữ cao hơn trở thành tiêu chuẩn, do đó, có thể hạn chế khả năng mở rộng và khả năng truy cập của mạng. Nghe có vẻ quen? Đó là bởi vì việc giải quyết vấn đề tăng trưởng của nhà nước sẽ là chất xúc tác tiếp theo cho nền kinh tế tổng hợp tăng tốc, không giống như vấn đề trước đó, thông lượng, đã châm ngòi cho cuộc cách mạng tổng hợp.
Kích thước gần đúng của trạng thái của chuỗi EVM phổ biến.
…nhưng, việc tổng hợp không giải quyết được sự tăng trưởng của trạng thái?
Rollups cho phép Ethereum mở ra cánh cửa cho “điều gì đó mới mẻ”. Các giải pháp hiện tại giải quyết được lớp thực thi, trong đó một số giải pháp mô-đun sẽ tiến thêm một bước nữa trong việc giải quyết vấn đề sẵn có của dữ liệu. Nhưng nếu những giải pháp mới này không giải quyết được vấn đề cốt lõi của nhà nước thì bạn sẽ quay lại chiến đấu với một trò chơi có tổng bằng 0. Bất kỳ blockchain nào được thiết kế ngày nay, dù có dạng cuộn hay không, không có chiến lược giải quyết sự tăng trưởng trạng thái cuối cùng sẽ bị hạn chế bởi sự phình to của trạng thái, bất kể môi trường thực thi hoặc dữ liệu của nó.
So sánh các thiết kế
Để minh họa vấn đề, hãy so sánh việc quản lý trạng thái của Bitcoin và Ethereum:
- Trạng thái Bitcoin: Sử dụng bộ UTXO (Đầu ra giao dịch chưa chi tiêu) đơn giản hơn và theo truyền thống dễ quản lý hơn nhưng khả năng lập trình bị hạn chế.
- Trạng thái Ethereum: Bao gồm số dư tài khoản, mã hợp đồng thông minh và trạng thái hợp đồng thông minh—bao gồm số dư mã thông báo, phê duyệt, v.v.
Mô hình quản lý trạng thái Bitcoin được sắp xếp hợp lý nhưng bị giới hạn về phạm vi. Trạng thái của Bitcoin được quản lý thông qua các đầu ra giao dịch riêng lẻ có thể được chi tiêu hoặc chưa chi tiêu. Mô hình UTXO (Đầu ra giao dịch chưa chi tiêu) của nó duy trì trạng thái rõ ràng thông qua các đầu ra giao dịch chưa được chi tiêu và sẵn sàng cho các giao dịch trong tương lai hoặc đã chi tiêu và do đó được lưu trữ trong lịch sử blockchain. Điều này làm cho mô hình UTXO tương đối dễ quản lý hơn và đảm bảo rằng trạng thái không tăng lên một cách mất kiểm soát sau mỗi giao dịch. Tuy nhiên, sự đơn giản này phải trả giá bằng khả năng lập trình hạn chế của Bitcoin so với hệ thống Turing-complete của Ethereum.
Ngược lại điều này với mô hình trạng thái của Ethereum, một hệ sinh thái phong phú gồm số dư tài khoản, mã hợp đồng thông minh và vô số trạng thái hợp đồng — mỗi tương tác là một sợi trong tấm thảm dữ liệu ngày càng phát triển. Sự phát triển trạng thái liên tục này, đồng thời là minh chứng cho tính linh hoạt của Ethereum, đặt ra những thách thức đáng kể về khả năng mở rộng. Khi trạng thái tăng cao với mỗi lần thực hiện và giao dịch hợp đồng thông minh, nó sẽ dẫn đến một mạng lưới cồng kềnh với yêu cầu lưu trữ ngày càng tăng và thời gian xử lý chậm hơn, từ đó cản trở sự đổi mới và sự chấp nhận của người dùng.
Sự tương phản giữa cách tiếp cận của Bitcoin và Ethereum đối với quản lý trạng thái nhấn mạnh sự đánh đổi cơ bản trong thiết kế blockchain: sự đơn giản và hiệu quả của quản lý trạng thái so với sự phức tạp và tiềm năng của các hoạt động trên chuỗi.
Các giải pháp đề xuất để tăng trưởng
Một số chiến lược đã được đề xuất để quản lý sự tăng trưởng:
Để trạng thái phát triển
Chấp nhận tăng trưởng trạng thái để đổi lấy việc sử dụng băng thông lớn hơn. Đây không phải là một lựa chọn tốt vì nó đặt ra yêu cầu cao hơn đối với các nút đầy đủ, điều này hạn chế sự phân cấp của mạng.
Tiền thuê trạng thái
Tính phí lưu trữ dữ liệu trạng thái, với việc đánh đổi các vấn đề tiềm ẩn như ‘thối cây’ (nếu tất cả các thành phần trạng thái trong Ethereum nằm trong một cây và bạn quên một số lá, bạn sẽ làm hỏng một số đường phân nhánh), trong số các vấn đề khác.
Không quốc tịch
Các nút đầy đủ sẽ không cần lưu trữ trạng thái, dựa vào bằng chứng trạng thái đi kèm với các giao dịch và khối. Về cơ bản là chuyển trạng thái từ chuỗi lớp 1 sang chuỗi cuộn. Đây là hướng Ethereum đang đi, nhưng có rất nhiều câu hỏi chưa được trả lời về mức độ hiệu quả và khả năng duy trì của nó.
Hủy bỏ Merkalizing trạng thái
Một cách tiếp cận kỹ thuật để quản lý dữ liệu trạng thái một cách khác nhau. Thực tế là bạn sẽ sử dụng các nút đầy đủ để xác thực mọi thứ hoặc lấy mẫu mọi thứ bằng các ứng dụng khách nhẹ và hoàn toàn quên đi cây trạng thái.
Nén trạng thái cấp ứng dụng
Sử dụng kỹ thuật dữ liệu cuộc gọi để nén dữ liệu trạng thái. Về cơ bản, bạn đang giao dịch trạng thái để lấy băng thông. Nhu cầu băng thông cao hơn dẫn đến các mạng bị hạn chế, kéo theo những tác động nặng nề đến sự vững chắc của cơ sở hạ tầng và sự đánh đổi hiệu quả.
Ví dụ 1: Stake Uniswap V3 (ảnh bên trái). Trạng thái phải được bù nước qua băng thông. Điều này cho phép thiết kế tối giản trạng thái và calldata rẻ hơn nhiều so với lưu trữ trên Ethereum. Ví dụ 2: NFT nén ( hình bên phải ). Merklize dữ liệu quyền sở hữu NFT và lưu trữ gốc ở trạng thái.
Và bây giờ… Bù nước cho trạng thái nguyên bản.
Triết lý trạng thái của Fuel
Bằng cách tận dụng mô hình UTXO, bạn sẽ nhận được một số “quà tặng miễn phí”:
- Cây trạng thái cục bộ: Không có cây trạng thái toàn cầu, chỉ có cây trạng thái cục bộ cho mỗi hợp đồng thông minh.
- Tài sản gốc: Tất cả các giao dịch chuyển tài sản chỉ chạm vào một phần tử trạng thái duy nhất. Nội dung gốc có thể được sử dụng để thể hiện trạng thái không có giá trị (ví dụ: và NFT để thể hiện quyền sở hữu). Những thứ này không cần phải được thương mại hóa, đơn giản hóa trạng thái.
- Không có trạng thái phê duyệt: Loại bỏ các thay đổi trạng thái không cần thiết khỏi các chức năng phê duyệt và chuyểnTừ.
Mô hình UTXO cho phép thực hiện tất cả những điều này trong khi vẫn giữ được các ứng dụng khách mật mã phong phú và khả năng xác minh — tạo ra một “chế độ nhanh” để có khả năng tương tác thực sự (sẽ nói thêm về điều này trong một bài đăng sau). Triết lý chính đằng sau cách tiếp cận của Fuel là: sử dụng nhiều băng thông và khả năng thực thi hơn trong khi sử dụng ít trạng thái hơn. Nhưng bằng cách nào ?
Bù nước cho trạng thái bản địa
Việc bù nước ở trạng thái nguyên bản mô tả các phương pháp mà các nhà phát triển Fuel có thể sử dụng để khử nước hoặc chia nhỏ trạng thái. Mọi thứ được bù nước qua băng thông, cho phép truy cập lại trạng thái khi cần. Điều này sẽ trái ngược với cách tiếp cận thông thường (“sử dụng hợp đồng thông minh cho mọi thứ”) của Ethereum, sử dụng tra cứu trạng thái hợp đồng.
Cách tiếp cận mới:
- Chỉ lưu trữ băm gốc/thay đổi trạng thái
- Trình bày dữ liệu qua băng thông sang trạng thái “bù nước”
- Cung cấp các kỹ thuật thu nhỏ trạng thái để nhà phát triển tận dụng điều này.
Kỹ thuật tối thiểu hóa trạng thái
Tập trung vào băng thông và thực thi trên lưu trữ trạng thái. Fuel cung cấp cho nhà phát triển nhiều cách để thực hiện những việc khác ngoài việc chỉ lưu trữ hợp đồng thông minh:
- Tập lệnh : Logic tạm thời được bao gồm trong các giao dịch, không được lưu trữ ở trạng thái. Không giống như các giao dịch EVM có thể gọi trực tiếp một hợp đồng (nhưng chỉ có thể gọi một hợp đồng duy nhất), các giao dịch Fuel thực thi một tập lệnh, có thể gọi không hoặc nhiều hợp đồng.
- Vị ngữ : Hợp đồng nhẹ, không quốc tịch. Vị từ là một cơ chế mới, thuần túy để ủy quyền các giao dịch. Một vị từ chỉ có thể truy cập dữ liệu trong một giao dịch, nó không thể xem trạng thái chuỗi hiện tại. Các vị từ có thể được sử dụng, trong số những thứ khác, để cho phép trừu tượng hóa tài khoản gốc (không trạng thái).
Tìm hiểu thêm về Vị ngữ trong bài đăng này của Ryan Sproule: Vị ngữ không phải là hợp đồng thông minh nhưng vẫn cho phép logic xác thực tùy chỉnh để tiêu tiền. Điều này có nghĩa là các vị từ có thể được sử dụng mà không cần khóa riêng, không giống như bất kỳ giao dịch EVM nào. Trong thực tế, điều này có nghĩa là người dùng có thể xây dựng các vị từ có thể được sử dụng hoàn toàn mà không cần được phép. Khi kết hợp với khái niệm Fuel của tập lệnh, trải nghiệm người dùng tương tác với hợp đồng thông minh sẽ trở nên vượt trội.
Mô hình giao dịch tối thiểu hóa trạng thái
Việc kết hợp các kỹ thuật thu nhỏ trạng thái với mô hình UTXO cho phép chúng tôi tạo Mô hình giao dịch linh hoạt mới. Điều này cho phép có nhiều tùy chọn hơn để hình thành các giao dịch phức tạp nhiều bên mà không yêu cầu hợp đồng thông minh để truy cập trạng thái.
Điều này sẽ trông như thế nào trong thực tế? Ví dụ:
Ví hợp đồng thông minh (chỉ có một phần tử trạng thái 32 byte)
- Trạng thái hợp đồng được lưu trữ trong một hàm băm gốc duy nhất trong UTXO
- Trạng thái được bù nước qua băng thông khi cần thiết
- UTXO đảm bảo khả năng xác minh ứng dụng khách nhẹ mà không cần cây merkle toàn cầu
- Chỉ yêu cầu một lần đọc IO
- Trạng thái có thể được thay đổi khi sử dụng trạng thái UTXO
- Không mất chức năng ví hợp đồng thông minh VS Ethereum
- Băng thông và việc thực thi được ưu tiên hơn trạng thái
- Tất cả được thực hiện ở cấp độ gốc (vị ngữ)
Kiến trúc của Fuel được thiết kế để kết hợp tất cả các tính năng này cùng với việc thực thi được giảm thiểu trạng thái nhằm tạo ra mục đích gói được xây dựng cho các bản tổng hợp Ethereum. Fuel mang lại khả năng mới cho hệ sinh thái Ethereum trong khi vẫn đảm bảo an ninh bằng cách giải quyết cuối cùng trên Ethereum.
Trong khi cuộc chiến chống lại sự tăng trưởng của nhà nước vẫn tiếp tục, các công cụ và chiến lược, chẳng hạn như của Fuel, mang lại hy vọng về một tương lai có thể mở rộng và hiệu quả. Như câu tục ngữ đã nói, “Sự cần thiết là mẹ của phát minh” và trong thế giới blockchain, nhu cầu chinh phục sự tăng trưởng của nhà nước thực sự đã dẫn đến một số giải pháp không-một.