Hợp đồng thông minh bất biến đã đi đâu?

Hợp đồng thông minh bất biến đã đi đâu?

Được dịch từ tiếng Anh

Khi DeFi bắt đầu có động lực, một trong những điểm bán hàng mạnh mẽ nhất của nó là tính bất biến. Các người ủng hộ thường đối chiếu hợp đồng thông minh với các dịch vụ tập trung như sàn giao dịch hoặc sòng bạc.

Câu chuyện rất đơn giản và thuyết phục.

  • Sàn giao dịch tập trung, sòng bạc, nhà cung cấp thanh toán và các dịch vụ tương tự đòi hỏi phải tin tưởng vào chủ sở hữu của chúng. Chủ sở hữu có thể đóng băng tài khoản của bạn, thay đổi phí, biến mất cùng tiền mã hóa của bạn, hoặc giao nó cho chính phủ khi được yêu cầu.
  • Ngược lại, DeFi lẽ ra chỉ yêu cầu niềm tin vào độ tin cậy của mã hợp đồng thông minh. Hợp đồng thông minh được trình bày như một chiếc máy bán hàng tự động được đóng trong bê tông của blockchain. Quy tắc của nó được biết trước, và không ai - không phải nhà phát triển, không phải cảnh sát, không phải tòa án - có thể thay đổi chúng sau khi ra mắt.

Vài năm đã trôi qua. Ngày nay, câu chuyện đó về cơ bản đã chết, dù hiếm khi được thừa nhận công khai. Phần lớn các giao thức DeFi hiện đại (Aave, Compound, Uniswap V3, Sky Protocol, các cầu nối khác nhau và giải pháp L2) về mặt kỹ thuật đều có thể được nâng cấp. Các quản trị viên của chúng giữ các khóa biến một hợp đồng thông minh thành thứ gì đó giống với một máy chủ web thông thường, nơi backend có thể được cập nhật bất cứ lúc nào.

Làm cách nào cuộc cách mạng lặng lẽ này xảy ra? Các nhà phát triển chính xác đã học cách vượt qua tính bất biến của blockchain như thế nào? Và liệu còn gì thực sự bất biến trong những gì chúng ta vẫn gọi là “tài chính phi tập trung” không?

Giải phẫu Quyền kiểm soát: Hợp đồng Proxy hoạt động ra sao

Nhiều độc giả có thể phản đối ở điểm này: “Chờ đã. Tư tưởng DeFi xuất hiện trong Ethereum. Và sau vụ The DAO gây tranh cãi, sẽ chẳng ai dám ghi đè gì trên blockchain đó nữa. Vậy mã của bất kỳ hợp đồng thông minh nào phải bất biến sau khi triển khai.”

Điều đó đúng. Không chỉ Ethereum, mà bất kỳ blockchain nào cũng là cơ sở dữ liệu chỉ cho phép ghi thêm. Không ai có thể xóa một hợp đồng sau khi nó đã được ghi lên chuỗi.

Tuy nhiên, các nhà phát triển đã tìm ra một giải pháp thanh lịch rồi cuối cùng trở thành chuẩn của ngành: Mẫu Proxy.

Hãy tưởng tượng một ứng dụng không phải là một hợp đồng duy nhất, mà là hai hợp đồng.

  • Proxy là giao diện bên ngoài. Nó có một địa chỉ cố định trên chuỗi mà người dùng tương tác, và nơi này lưu trữ tất cả token và bản ghi số dư. Nhưng hợp đồng này cố tình nông: nó không chứa logic tài chính cốt lõi.
  • Implementation là cơ chế nội bộ. Ở đây là nơi các công thức nằm: cách tính lãi suất, cách hoán đổi token, ai được phép rút bao nhiêu. Nhưng hợp đồng này không giữ tiền mã hóa.

Khi bạn gửi hoặc rút token, bạn tương tác với Proxy. Proxy sử dụng một chỉ thị cấp thấp gọi là delegatecall để đọc hợp đồng Implementation và thực thi mã của nó trong ngữ cảnh lưu trữ của chính Proxy.

Bên trong hợp đồng Proxy, có một biến (thường được hiển thị qua một hàm nội bộ _implementation) lưu trữ địa chỉ của Implementation hiện tại. Cũng có một hàm đặc biệt, chỉ quản trị viên mới truy cập được: upgradeTo(newAddress).

Proxy contract

Tại bất kỳ thời điểm nào, quản trị viên Proxy có thể:

  • triển khai một hợp đồng Implementation mới lên blockchain (ví dụ, với một tính năng mới hoặc vá lỗi);
  • gọi upgradeTo trên Proxy và trỏ nó tới địa chỉ Implementation mới.

Sau đó, Proxy ngay lập tức bắt đầu sử dụng logic mới.

Từ góc nhìn người dùng, chẳng có gì thay đổi. Địa chỉ hợp đồng vẫn vậy, và tiền mã hóa của họ vẫn được lưu ở đó. Nhưng thực tế, các quy tắc của hệ thống có thể đã thay đổi hoàn toàn.

Nếu quản trị viên triển khai một Implementation độc hại (ví dụ, một phiên bản cho phép admin rút toàn bộ quỹ), Proxy sẽ ngoan ngoãn trao hết tiền mã hóa — vì nó mù quáng thực thi bất cứ mã nào nó được bảo dùng.

Tại sao Chúng ta Đồng ý với Điều này?

Sự chuyển từ bất biến sang có thể nâng cấp không bắt nguồn từ ác ý - nó được thúc đẩy bởi tính tất yếu.

Trước tiên, hãy nhớ lại câu chuyện của The DAO. Một lỗ hổng trong hợp đồng thông minh của nó cho phép hacker rút một lượng lớn quỹ. Để đảo ngược điều này, các nhà vận hành node Ethereum đã thực hiện một bước mà với những người theo chủ nghĩa thuần túy crypto là báng bổ: họ viết lại lịch sử blockchain để hoàn tác giao dịch của hacker. Toàn bộ sự kiện làm rõ một điều - mã bất biến đồng nghĩa với lỗi bất biến. Nếu một hợp đồng có lỗi, nó không thể được vá. Điều đó chỉ để lại hai lựa chọn: kiểm soát tập trung toàn bộ mạng (như đã xảy ra với Ethereum vào thời điểm đó), hoặc kiểm soát tập trung trên từng hợp đồng. Theo thời gian, ngành công nghiệp đã chọn điều có vẻ là cái ác ít hơn: cho phép kiểm soát tập trung ở cấp hợp đồng trong khi giữ vẻ bề ngoài phi tập trung ở cấp hệ sinh thái.

Thứ hai, nhiều dự án DeFi thực chất là startup. Họ cần phát triển - thêm chiến lược mới, hỗ trợ token mới, sửa các trường hợp biên. Nếu không có hợp đồng proxy, mỗi lần cập nhật sẽ buộc người dùng rút tiền khỏi hợp đồng cũ và gửi vào hợp đồng mới. Điều đó vụng về, tốn kém và khiến việc chấp nhận kém.

Thứ ba, các cơ quan quản lý tham gia. DeFi phụ thuộc nhiều vào stablecoin, và cơ quan quản lý khăng khăng rằng chúng phải có các tính năng như danh sách đen địa chỉ và logic có thể nâng cấp để tuân thủ quy định tài chính. Ngay cả MakerDAO - tổ chức phát hành DAI, từng là hình mẫu của stablecoin phi tập trung - cũng phải nhượng bộ áp lực. Khi tái thương hiệu dưới Sky Protocol, nó đã thêm các tính năng do admin kiểm soát vào stablecoin mới của mình, USDS.

Còn người dùng? Họ bỏ phiếu bằng ví của mình. Lợi suất cao (APY) và giao diện đẹp quan trọng hơn đối với hầu hết mọi người so với những lý tưởng trừu tượng như phi tập trung.

Ảo Ảnh Phi tập trung: Ai Giữ “Nút Đỏ”?

Nhiều dự án tuyên bố là phi tập trung đơn giản vì khóa admin của họ không do một cá nhân duy nhất kiểm soát. Nhưng điều đó có thực sự thay đổi gì không?

Khi khóa nâng cấp nằm trong tay một nhà phát triển duy nhất, đó rõ ràng là kịch bản rủi ro nhất. Nếu người đó bị hack hoặc bị gây áp lực (vật lý hoặc pháp lý), tiền người dùng có thể biến mất trong chớp mắt. Và vẫn có nhiều thiết lập như vậy — đặc biệt là trong các hợp đồng meme coin, vốn thường bị xem là không nghiêm túc.

Đôi khi khóa được chia thành nhiều phần — ví dụ, năm người (thường là nhà sáng lập và nhà đầu tư sớm) mỗi người giữ một phần, và cần ba chữ ký để thay đổi. Nhưng điều đó vẫn là tập trung. Thỏa thuận ngầm có thể xảy ra. Can thiệp từ nhà nước cũng vậy.

Một lựa chọn an toàn hơn chút là cơ chế Timelock. Ở đây, admin có thể lên lịch nâng cấp, nhưng nó chỉ có hiệu lực sau 24 - 48 giờ. Điều này cho người dùng thời gian để xem xét mã mới và rút tiền nếu thay đổi độc hại. Nhưng trên thực tế, không ai giám sát hợp đồng thông minh 24/7. Và trong tình huống khẩn cấp (như một khai thác đang diễn ra), 24 - 48 giờ là đủ để kẻ tấn công rút sạch mọi thứ.

Cái ác ít hơn là quản trị dựa trên DAO. Trong các giao thức như Compound và Uniswap, quyền nâng cấp do hợp đồng thông minh xử lý thông qua việc bỏ phiếu của chủ token. Thay đổi chỉ xảy ra nếu đủ phiếu bầu đồng ý. Về lý thuyết, đây là bước tiến tới phân quyền thực sự. Nhưng trên thực tế, các quỹ VC lớn (như a16z hay Polychain) nắm giữ quá nhiều token quản trị đến mức họ có thể thúc đẩy gần như bất kỳ quyết định nào. Hơn nữa, tỷ lệ tham gia bỏ phiếu thường rất thấp, khiến quy trình dễ bị kiểm soát.

Những Hòn Đảo Bất Biến: Ai Vẫn Giữ Nguyên?

Liệu còn dịch vụ DeFi nào mà “mã là luật” không? Có — nhưng giờ chúng chỉ chiếm một ngách rất hẹp trong hệ sinh thái. Đây là những ví dụ hiếm hoi về hợp đồng thông minh thực sự bất biến.

Uniswap V1 / V2
Các pool thanh khoản trong những phiên bản này hoàn toàn bất biến. Không có nhà phát triển, nhà đầu tư, hay thậm chí chính phủ nào có thể rút quỹ, thay đổi công thức, hay thay đổi quy tắc. Các hợp đồng thông minh được đóng đinh - không khóa admin, không đường nâng cấp.

Liquity USD (LUSD)
Hợp đồng LUSD không có khóa admin và không có hàm nâng cấp. Tham số hệ thống được mã hóa cứng bằng toán học khi ra mắt và không bao giờ có thể thay đổi. Điều đó biến nó thành một trong những stablecoin kiên cường nhất trong DeFi. Nó không được sử dụng rộng rãi — có thể vì mọi người cho rằng nó thiếu thanh khoản. Nhưng đó là hiểu lầm:

  • Ở cấp giao thức, mỗi LUSD luôn có thể được đổi lại lấy ETH bảo trợ.
  • Trên rabbit.io, LUSD có thể được hoán đổi cho bất kỳ crypto nào mà không có giới hạn hay hạn chế.

Tornado Cash V1 / V2
Những phiên bản đầu của hợp đồng Tornado Cash ban đầu có khóa admin — cần thiết để vá lỗi trong môi trường thực. Nhưng một khi giao thức chứng minh được sự ổn định, quyền kiểm soát đã được từ bỏ: khóa admin được chuyển tới địa chỉ 0x00...0000, khiến các hợp đồng trở nên hoàn toàn bất biến.

Quyết định này làm nổi bật một chân lý cơ bản về tính bất biến: nó bảo vệ chống lại các cuộc tấn công thông qua quản trị.

Hãy lấy Tornado Cash V3 làm bài học cảnh báo. Phiên bản này giới thiệu cải tiến: kích thước tiền gửi linh hoạt (không chỉ 0.1, 1, 10 hoặc 100 ETH) và hệ thống chuyển riêng tư dựa trên L2 qua Gnosis Chain. Để cho phép nâng cấp và vá lỗi cho một giao thức phức tạp như vậy, quyền quản trị đã được giao cho một DAO — cụ thể là những người nắm giữ token TORN.

Năm 2023, một kẻ tấn công đề xuất một cập nhật quản trị có vẻ vô hại. Ẩn trong mã là một cửa hậu. Khi được thông qua, nó trao toàn quyền kiểm soát DAO cho kẻ tấn công. Họ chiếm quyền logic hợp đồng và đánh cắp một phần token quản trị.

Một cuộc tấn công như vậy về mặt vật lý sẽ không thể xảy ra trong các phiên bản bất biến. Không có đường nâng cấp. Không có bỏ phiếu. Không có nút đỏ.

Vượt Ra Ngoài Ethereum: Các Hệ Sinh Thái Khác Xử Lý Nâng Cấp Hợp Đồng Như Thế Nào

Hợp đồng proxy đã trở thành tiêu chuẩn de facto trên các blockchain tương thích EVM. Nhưng còn các hệ sinh thái không EVM thì sao?

Solana
Trong nhiều trường hợp, tính bất biến còn yếu hơn so với Ethereum. Mặc định, hợp đồng thông minh Solana có thể được nâng cấp bằng Upgrade Authority. Các nhà phát triển có thể từ bỏ quyền này để biến chương trình thành bất biến, nhưng trong văn hóa Solana – vận động nhanh, lấy đổi mới làm trước – điều đó hiếm khi xảy ra. Tình huống tương tự cũng tồn tại trên Near Protocol, nơi khả năng nâng cấp cũng là tiêu chuẩn.

Polkadot và Cosmos
Những hệ sinh thái này theo một cách tiếp cận khác: cập nhật xảy ra không thông qua các hàm admin bên trong hợp đồng, mà qua quản trị ở cấp validator. Khi bạn gửi tiền vào một hợp đồng thông minh trên các mạng này, bạn không tin một admin hợp đồng — bạn tin các validator của toàn chuỗi sẽ hành xử trung thực.

Cardano
Cardano hỗ trợ một vài loại hợp đồng thông minh, nhưng loại chính là Plutus scripts, vốn được xây dựng quanh mô hình bất biến nghiêm ngặt.

  • Một script Plutus gắn với một UTXO cụ thể và mã của nó được băm vào chính địa chỉ.
  • Một khi triển khai, mã không thể thay đổi — hết.
  • Nếu các nhà phát triển cần sửa lỗi hoặc thay đổi logic kinh doanh, họ phải triển khai một script mới với một băm khác và di chuyển quỹ thủ công.
  • Vì kiến trúc này, các mẫu proxy là không thể.

Về mặt kỹ thuật, Cardano cũng hỗ trợ các hợp đồng logic ngoài chuỗi, điều đó có thể được sử dụng để xây dựng các hệ thống có thể nâng cấp với quyền admin. Nhưng trên thực tế, những thiết kế như vậy hiếm — không giống như trên các chuỗi EVM.

Hệ sinh thái Bitcoin
Đúng vậy, Bitcoin cũng có các giao thức hợp đồng thông minh.

  • RGB
    Ở đây, cả hợp đồng thông minh và trạng thái token được lưu trữ cục bộ trên thiết bị của người dùng thay vì trên chuỗi. Không có hợp đồng tập trung nào có thể được admin nâng cấp. Nếu một nhà phát hành token phát hành quy tắc mới, người dùng phải đồng ý cập nhật — giống như nâng cấp một ứng dụng trên thiết bị của bạn. Không có cách nào để buộc thay đổi đối với tất cả người dùng cùng lúc.
  • Stacks
    Tất cả hợp đồng thông minh trên Stacks trở nên bất biến một khi được triển khai. Các cập nhật chỉ có thể được giới thiệu thông qua kiến trúc mô-đun: tính năng mới được thêm qua các hợp đồng riêng biệt tương tác với hợp đồng gốc, nhưng chúng không thể ghi đè hoặc thay đổi các quy tắc hiện có. Nói cách khác, bất kỳ cập nhật nào là một phần bổ sung, chứ không phải sửa đổi. Logic gốc vẫn nguyên vẹn và có thể thi hành, và không phần nào của hợp đồng đã triển khai có thể bị thay đổi hồi tố.
  • Elastos và Rootstock
    Đây là các sidechain tương thích EVM, có nghĩa là chúng theo các mẫu nâng cấp giống Ethereum. Các nhà phát triển có thể triển khai hợp đồng proxy và giữ quyền admin, giống như trên bất kỳ chuỗi EVM nào.

Do đó, ngay cả trong cộng đồng Bitcoin — vốn truyền thống coi trọng tính bất biến hơn sự linh hoạt — giờ cũng có những giao thức hợp đồng thông minh cho phép nhà điều hành dịch vụ sửa đổi quy tắc sau khi đã nhận quỹ của người dùng.

Code is law

Kết luận

Có vẻ như thuật ngữ “ứng dụng phi tập trung” thường chỉ là một mánh marketing. Điều đó không hẳn là xấu: khả năng cập nhật hợp đồng thông minh đã cứu hàng tỷ đô la khi các lỗ hổng được phát hiện. Nhưng người dùng phải hiểu rủi ro:

  • Trong một dịch vụ tập trung truyền thống, bạn có thể mất crypto đơn giản vì bạn không giữ khóa ví.
  • Trong DeFi hiện đại, bạn có thể mất crypto đơn giản vì admin có thể thay đổi ổ khóa (quy tắc của hợp đồng thông minh).

True immutability vẫn là miền của những giao thức bảo thủ như Tornado Cash Classic, Liquity, và các giải pháp gốc trên Cardano hoặc trên Bitcoin, những thứ hy sinh tính linh hoạt để đổi lấy bảo mật. Mọi thứ khác cuối cùng đều quy về niềm tin — vào các đội ẩn sau nhãn mác bóng bẩy của một “DAO”.