Hợp đồng thông minh là gì?
Hợp đồng thông minh là gì? Tìm hiểu cách các chương trình tự thực thi trên blockchain hoạt động, chúng vận hành những gì, giới hạn và rủi ro của chúng, cũng như cách kiểm tra một hợp đồng trước khi sử dụng.
Hợp đồng thông minh là một chương trình được lưu trên blockchain và tự động chạy khi các điều kiện định sẵn được đáp ứng. Nó có thể giữ và chuyển tiền theo mã của mình, mà không cần ngân hàng, nhà môi giới hay bất kỳ bên trung gian nào quyết định có thực hiện từng bước hay không.
Hợp đồng thông minh là nền tảng cho gần như mọi thứ trong tiền mã hóa vượt ra ngoài các khoản thanh toán đơn giản: token, sàn giao dịch phi tập trung, giao thức cho vay, NFT và DAO. Hiểu được chúng làm được gì và không làm được gì sẽ giúp bạn đánh giá cả cơ hội lẫn rủi ro khi sử dụng chúng.
Hợp đồng thông minh hoạt động như thế nào
Ý tưởng về hợp đồng được thực thi bằng mã được nhà khoa học máy tính Nick Szabo mô tả vào thập niên 1990, với phép so sánh là chiếc máy bán hàng tự động: bỏ đúng số xu, chọn sản phẩm, và máy sẽ trả hàng mà không cần người bán.
Trên blockchain, quy trình diễn ra như sau:
- 1Nhà phát triển viết mã, chẳng hạn bằng Solidity cho Ethereum hoặc Rust cho một số mạng khác.
- 2Mã được triển khai thông qua một giao dịch và nhận một địa chỉ riêng.
- 3Người dùng gọi hợp đồng bằng cách gửi giao dịch tới địa chỉ đó, thường kèm theo token.
- 4Mọi nút đều thực thi mã và thống nhất về kết quả, nên kết quả là như nhau với tất cả mọi người.
- 5Trạng thái của hợp đồng được cập nhật — số dư, hồ sơ sở hữu hoặc các thiết lập thay đổi trên chuỗi.
Mỗi bước đều tốn phí mạng. Trên Ethereum, khoản phí đó được gọi là gas; xem gas trong Ethereum là gì để hiểu cách nó hoạt động.
Hợp đồng thông minh được dùng để làm gì
| Ứng dụng | Hợp đồng làm gì | Ví dụ |
|---|---|---|
| Token | Theo dõi số dư và các lần chuyển | Một hợp đồng token ERC-20 |
| Sàn giao dịch phi tập trung | Giữ các pool token và định giá giao dịch bằng công thức | Một nhà tạo lập thị trường tự động (AMM) |
| Cho vay | Nhận tài sản thế chấp, cấp khoản vay, thanh lý các vị thế rủi ro | Một thị trường tiền tệ DeFi |
| NFT | Ghi nhận quyền sở hữu các vật phẩm độc nhất | Hợp đồng NFT của một bộ sưu tập |
| DAO | Đếm phiếu và thực thi các đề xuất được thông qua | Một hợp đồng quản trị trên chuỗi |
| Ví multisig | Yêu cầu nhiều chữ ký phê duyệt để chuyển tiền | Ngân quỹ của một dự án |
Nhiều hợp đồng trong số này gọi lẫn nhau, đó là lý do DeFi đôi khi được gọi là “lego tiền tệ”. Hướng dẫn về DeFi của chúng tôi cho thấy các mảnh ghép này kết hợp với nhau như thế nào.
Hợp đồng thông minh và hợp đồng truyền thống
Sẽ hữu ích khi so sánh hợp đồng thông minh với các thỏa thuận giấy mà hầu hết mọi người đều quen thuộc.
| Hợp đồng truyền thống | Hợp đồng thông minh | |
|---|---|---|
| Được viết bằng | Ngôn ngữ con người | Mã lập trình |
| Được thực thi bởi | Tòa án, các tổ chức, thiện chí của các bên | Mạng blockchain chạy mã |
| Tính linh hoạt | Có thể đàm phán lại hoặc diễn giải | Chạy đúng như đã viết trừ khi được xây dựng để có thể nâng cấp |
| Tính minh bạch | Thường là riêng tư | Mã và hoạt động thường công khai trên chuỗi |
| Giải quyết tranh chấp | Thẩm phán, trọng tài viên, luật sư | Không có cơ chế tích hợp để xử lý tranh chấp ngoài mã |
| Tốc độ | Từ vài ngày đến vài tháng để tất toán | Từ vài giây đến vài phút, tùy mạng |
Điểm mạnh là tốc độ, tính minh bạch và việc loại bỏ trung gian. Điểm yếu là sự cứng nhắc: mã không thể cân nhắc sự công bằng hay bối cảnh. Nếu xảy ra điều bất ngờ mà nhà phát triển không lường trước, hợp đồng chỉ đơn giản làm theo quy tắc của nó — ngay cả khi kết quả rõ ràng không phải điều mà bất kỳ ai mong muốn. Chúng tôi trình bày chi tiết hơn trong bài Testnet và mainnet là gì?
Ai viết và kiểm soát hợp đồng thông minh
Bất kỳ ai cũng có thể triển khai hợp đồng thông minh; không có quy trình phê duyệt nào trên các blockchain công khai. Sự cởi mở đó thúc đẩy đổi mới nhanh chóng, nhưng cũng có nghĩa là hợp đồng lừa đảo dễ triển khai không kém hợp đồng hợp pháp. Sau khi triển khai, quyền kiểm soát phụ thuộc vào cách hợp đồng được viết: một số hoàn toàn không có chủ sở hữu, một số do một ví duy nhất kiểm soát, số khác do multisig hoặc cuộc bỏ phiếu DAO có độ trễ thời gian kiểm soát. Biết mô hình nào được áp dụng là phần quan trọng trong việc đánh giá rủi ro của bất kỳ ứng dụng nào. Bài viết liên quan: Các vụ khai thác lỗ hổng hợp đồng thông minh.
Những điều hợp đồng thông minh không làm được
Hợp đồng thông minh mạnh mẽ nhưng phạm vi hẹp.
- Chúng chỉ biết dữ liệu trên chuỗi. Để sử dụng thông tin thực tế như giá cả hay kết quả thể thao, chúng dựa vào oracle, vốn đưa dữ liệu bên ngoài lên chuỗi và có thể gặp sự cố hoặc bị thao túng.
- Chúng không hiểu ý định. Nếu bạn gửi tiền nhầm hàm hoặc ký một phê duyệt độc hại, hợp đồng sẽ làm đúng những gì mã quy định.
- Chúng không mặc nhiên là hợp đồng pháp lý. Việc thực thi mã và hiệu lực pháp lý là hai vấn đề riêng biệt.
- Chúng không thể hoàn tác sai lầm. Một giao dịch đã hoàn tất thường sẽ giữ nguyên như vậy.
Rủi ro khi sử dụng hợp đồng thông minh
Lỗi và khai thác lỗ hổng
Mã do con người viết, và sai sót là điều không tránh khỏi. Kẻ tấn công tìm kiếm lỗ hổng và có thể rút sạch tiền chỉ trong một giao dịch. Kiểm toán có giúp ích nhưng không thể đảm bảo an toàn — xem cách đánh giá báo cáo kiểm toán hợp đồng thông minh.
Khóa quản trị và nâng cấp
Nhiều hợp đồng có thể nâng cấp hoặc có các hàm của chủ sở hữu có thể tạm dừng giao dịch, thay đổi phí hoặc đúc thêm token. Những hàm này có thể bảo vệ người dùng trong tình huống khẩn cấp, nhưng cũng tạo ra khả năng bị lạm dụng hoặc bị đánh cắp khóa quản trị. Bài viết liên quan: Giải thích về account abstraction.
Hợp đồng độc hại
Token lừa đảo có thể chứa các quy tắc ẩn, chẳng hạn chặn việc bán hoặc thu thuế chuyển khoản rất cao. Một hợp đồng có thể trông bình thường trên trang token nhưng trên thực tế lại hoạt động rất khác. Xem thêm: ICO vs IEO vs IDO.
Phê duyệt
Sử dụng DeFi thường yêu cầu bạn phê duyệt cho một hợp đồng chi tiêu token của mình. Các phê duyệt không giới hạn cho một hợp đồng có lỗi hoặc độc hại có thể bị dùng về sau để lấy đi số token đó. Nếu muốn tìm hiểu sâu hơn, hãy đọc Mempool là gì?
Cách kiểm tra hợp đồng thông minh trước khi sử dụng
- 1Xác nhận địa chỉ từ trang web chính thức của dự án và một nguồn độc lập.
- 2Tra cứu trên trình khám phá khối để xem ngày tạo, hoạt động và mã nguồn đã được xác minh hay chưa.
- 3Kiểm tra các báo cáo kiểm toán từ những công ty có tên tuổi, và đọc xem các vấn đề được phát hiện đã được khắc phục chưa.
- 4Tìm hiểu ai kiểm soát các hàm quản trị — một multisig, một timelock hay một ví duy nhất.
- 5Bắt đầu với số tiền nhỏ và giới hạn phê duyệt token ở mức bạn cần.
Hướng dẫn của chúng tôi về cách xác minh địa chỉ hợp đồng chính thức của một token trình bày chi tiết hai bước đầu tiên.
Kết luận
Hợp đồng thông minh là đoạn mã tự thực thi trên blockchain, có thể giữ và chuyển giá trị mà không cần trung gian. Điều đó giúp tài chính mở và có thể lập trình trở nên khả thi, nhưng cũng có nghĩa là lỗi, quyền quản trị ẩn và mã độc hại sẽ tác động ngay lập tức và không thể đảo ngược. Hãy xác minh địa chỉ, hiểu ai kiểm soát hợp đồng và chỉ phê duyệt những gì bạn cần.
Câu hỏi thường gặp
Hợp đồng thông minh có ràng buộc về mặt pháp lý không?
Không mặc nhiên. Hợp đồng thông minh là phần mềm chạy trên blockchain, tự nó không phải là một thỏa thuận pháp lý. Một số hệ thống pháp luật có thể công nhận các thỏa thuận được ghi lại hoặc thực thi bằng mã, nhưng điều này tùy thuộc vào quốc gia và hoàn cảnh. Nếu hiệu lực pháp lý quan trọng, hãy tìm hiểu luật địa phương hoặc hỏi ý kiến chuyên gia có chuyên môn.
Hợp đồng thông minh có thể thay đổi sau khi triển khai không?
Bản thân mã đã triển khai thường không thể chỉnh sửa. Tuy nhiên, nhiều dự án dùng thiết kế có thể nâng cấp, chẳng hạn như hợp đồng proxy, cho phép quản trị viên chuyển người dùng sang mã mới. Sự linh hoạt đó giúp sửa lỗi nhưng cũng có nghĩa là có người nắm quyền thay đổi luật chơi. Hãy kiểm tra xem ai kiểm soát các khóa nâng cấp hoặc khóa quản trị.
Những blockchain nào hỗ trợ hợp đồng thông minh?
Ethereum đã phổ biến hợp đồng thông minh đa năng, và nhiều mạng khác cũng hỗ trợ chúng, bao gồm BNB Chain, Solana, Avalanche, Cardano và các mạng layer-2 của Ethereum. Bitcoin được thiết kế có chủ đích để chỉ hỗ trợ ngôn ngữ kịch bản hạn chế. Mỗi nền tảng dùng ngôn ngữ và công cụ riêng, nên hợp đồng không tự động chuyển được giữa các nền tảng.
Điều gì xảy ra nếu hợp đồng thông minh có lỗi?
Mã chạy đúng như đã viết, kể cả lỗi. Kẻ tấn công có thể khai thác lỗi đó để rút sạch tiền, và giao dịch thường không thể đảo ngược. Một số dự án có thể tạm dừng hoặc nâng cấp hợp đồng để hạn chế thiệt hại, còn hợp đồng bất biến thì hoàn toàn không thể sửa. Kiểm toán và chương trình săn lỗi có thưởng giúp giảm nhưng không loại bỏ được rủi ro này.
