Các hợp đồng thông minh trên Cardano là các quy tắc có thể được lập trình, tồn tại trên blockchain và hoạt động chính xác theo cách được ghi rõ – không có trung gian, không "trust me", không có thực thi thủ công. Một hợp đồng thông minh Cardano là một script validator hoạt động như một người bảo vệ tại một cổng: nó kiểm tra mỗi giao dịch được đề xuất theo các quy tắc của nó và cho phép nó đi qua hoặc từ chối. Hướng dẫn này giải thích cách chúng hoạt động cho người mới bắt đầu, lý do tại sao thiết kế của Cardano khác và những gì bạn thực sự có thể xây dựng với chúng.
Hình 1: Hợp đồng thông minh là người gác cổng — nếu đủ điều kiện, hành động tự động xảy ra
1. Hợp đồng thông minh là gì?
Một hợp đồng thông minh là một tập hợp các quy tắc được viết bằng mã và lưu trữ trên một chuỗi khối. Khi các điều kiện nhất định được đáp ứng, các quy tắc sẽ được thực thi tự động – không phải bởi một công ty hoặc một người, mà bởi chính mã đó.
Hãy nghĩ về một máy bán hàng tự động. Bạn đưa tiền vào, chọn một món ăn nhẹ, và máy sẽ cho bạn món ăn đó. Không cần có người bán hàng. Quy tắc của máy đã được xác định trước: giá cả, lựa chọn, đổi tiền. Một hợp đồng thông minh giống như một máy bán hàng tự động cho các quy tắc kỹ thuật số – ngoại trừ không ai có thể mở lại phía sau và can thiệp vào máy khi nó đang hoạt động.
Hợp đồng thông minh vs. Hợp đồng thông thường
| Khía cạnh | Hợp đồng bình thường | Hợp đồng thông minh |
|---|---|---|
| Được viết bằng | Ngôn ngữ con người | Mã |
| Được thực thi bởi | Tòa án, luật sư, tín nhiệm | Blockchain chính nó |
| Chi phí thực thi | Thời gian, tiền bạc, rủi ro | Phí giao dịch một lần |
| Có thể thay đổi ở giữa chừng không? | Thường được tái đàm phán | Không – các quy tắc là cuối cùng |
| Khả năng minh bạch | Riêng tư | Công khai cho mọi người kiểm tra |
Một hợp đồng bình thường giữa hai người phụ thuộc vào việc thực thi. Nếu một bên vi phạm thỏa thuận, bên kia phải khởi kiện, chờ đợi và hy vọng. Một hợp đồng thông minh loại bỏ việc chờ đợi và hy vọng – kết quả được quyết định bởi mã vào thời điểm thực hiện.
Hình 2: Hợp đồng thường vs hợp đồng thông minh — ai là người thực thi luật
2. Người canh giữ tại cổng: Cardano xác minh như thế nào
Trên Cardano, một hợp đồng thông minh không là một chương trình chạy ở nền, tự thực hiện các công việc. Nó không thể tự mình gửi tiền, gọi một hợp đồng khác hoặc chạy mãi mãi. Thay vào đó, nó là một validator – một hàm thuần túy trả lời một câu hỏi về mọi nỗ lực chi tiêu tài sản của nó: phê duyệt hay từ chối?
Đây là sự thay đổi tâm lý quan trọng nhất đối với người mới bắt đầu. Các hợp đồng theo phong cách Ethereum có cảm giác như những robot hoạt động; các hợp đồng của Cardano có cảm giác như những người canh gác nghiêm ngặt. Một người (một người, một ứng dụng) xây dựng một giao dịch, đề xuất nó và người canh gác kiểm tra xem nó có tuân thủ các quy tắc hay không.
Ba đầu vào, một câu trả lời
Mỗi validator Cardano nhận đúng ba tham số:
- Datum — trạng thái được lưu trong hộp mà nó bảo vệ. Giống như một nhãn dán lên một thùng khóa mô tả nội dung bên trong.
- Redeemer — hành động mà người chi tiêu yêu cầu. Giống như một chìa khóa kèm một mẫu đơn yêu cầu đã điền.
- Script context — toàn bộ hồ sơ giao hàng: toàn bộ giao dịch, ai đã gửi cái gì, cho ai và khi nào.
Validator đọc ba đầu vào này và trả về một giá trị boolean duy nhất: true (cho phép nó đi qua) hoặc false (từ chối nó).
Hình 3: Ba đầu vào, một kết quả — cách validator Cardano quyết định
Trạng thái được lưu ở đâu?
Cardano không có bộ lưu trữ ẩn. Trạng thái hợp đồng tồn tại trong dữ liệu gắn với UTXO – các đầu ra giao dịch chưa sử dụng, "những cái hộp" của sổ cái. Cập nhật trạng thái nghĩa là tiêu thụ một hộp cũ và tạo một hộp mới với nhãn mới. Trên các chuỗi khác, điều này giống như chỉnh sửa một cuốn sổ cái tại chỗ; trên Cardano, nó giống như thay một bảng trắng bằng một bảng mới – và mọi phiên bản cũ luôn hiển thị vĩnh viễn trên chuỗi công khai. Không có chỉnh sửa nào sau tấm màn, mọi thứ đều có thể kiểm toán mãi mãi.
3. eUTXO: Tại sao mô hình của Cardano khác biệt
Cardano sử dụng mô hình extended UTXO (eUTXO). UTXO là mô hình kế toán mà Bitcoin sử dụng – tiền được chuyển vào và ra khỏi các hộp, và mỗi hộp chỉ có thể được sử dụng một lần. Cardano mở rộng nó bằng cách gắn datum, redeemer và script vào các hộp.
| Tính năng | eUTXO (Cardano) | Mô hình tài khoản (kiểu Ethereum) |
|---|---|---|
| Vị trí trạng thái | Trong các UTXO (hộp) | Trong bộ lưu trữ của mỗi hợp đồng |
| Cách cập nhật | Tiêu thụ hộp cũ, tạo hộp mới | Sửa trạng thái tại chỗ |
| Song song | Nhiều hộp có thể di chuyển cùng lúc | Một trạng thái chung, mỗi lần một cái |
| Khả năng dự đoán phí | Chi phí biết trước khi gửi | Có thể tăng đột biến khi quá tải |
| Rủi ro front-running | Thấp — kết quả xác định | Cao hơn — thứ tự có thể bị khai thác |
Sự đánh đổi là có thật: mô hình tài khoản linh hoạt hơn cho trạng thái toàn cầu phức tạp, đó là lý do nó phổ biến. Cardano đã chọn khả năng dự đoán và song song. Một hệ quả thực tế cho bạn: khi tương tác với một hợp đồng thông minh Cardano, bạn thường biết chính xác điều gì sẽ xảy ra và giá bao nhiêu trước khi xác nhận – giống như một chuyến đi giá cố định thay vì đồng hồ taxi trong giờ cao điểm.
Hình 5: eUTXO vs mô hình account — hai cách lưu trạng thái sổ cái
4. On-Chain vs. Off-Chain: Hai nửa của mỗi dApp
Một ứng dụng phi tập trung (dApp) Cardano hoạt động được có hai phần:
- On-chain — script validator. Nó chạy trên mọi nút, không thể thay đổi và được viết bằng một ngôn ngữ được thiết kế riêng. Nó quyết định điều gì có thể xảy ra.
- Off-chain — ứng dụng. Nó tìm các hộp đã khóa, xây dựng các giao dịch mà validator sẽ chấp nhận và cung cấp cho bạn một giao diện thân thiện. Nó có thể được viết bằng bất kỳ ngôn ngữ nào và có thể thay đổi theo thời gian.
Bạn tương tác thông qua ứng dụng off-chain, nhưng sự bảo đảm đến từ script on-chain. Khi bạn nhấp "gửi", ứng dụng tạo giao dịch, ví của bạn hiển thị chính xác những gì bạn đang ký và bạn chấp thuận. Chỉ khi đó mạng lưới mới chạy validator. Nếu giao dịch vi phạm các quy tắc, validator từ chối nó và không có gì xảy ra – bạn giữ được tiền của mình.
Hình 4: On-chain vs off-chain — hai nửa của mọi dApp Cardano
5. Bạn có thể xây dựng gì?
Cơ chế bảo vệ tương tự này cung cấp năng lượng cho hầu hết mọi thứ trong hệ sinh thái Cardano:
- DeFi — các nhóm cho vay, sàn giao dịch phi tập trung, nhà tạo lập thị trường tự động.
- NFT — các chính sách đúc token đảm bảo một bộ sưu tập giới hạn và xác thực, vì NFT là tài sản gốc của chuỗi.
- Stablecoin — các quy tắc neo một token vào một tài sản ngoài đời thực.
- Escrow (ký quỹ) — tiền bị khóa cho đến khi cả hai bên xác nhận, giống như một "trung gian thanh toán" không thể bỏ trốn cùng tiền.
- Bỏ phiếu & quản trị — cơ chế validator thậm chí cung cấp năng lượng cho bỏ phiếu on-chain, mở rộng vào kỷ nguyên quản trị Voltaire của Cardano.
- Đăng ký & tiết kiệm — các quy tắc theo lịch trình, thanh toán định kỳ, tiết kiệm có mục tiêu.
Hình 6: Hard fork Alonzo — 12/09/2021
Hard Fork Alonzo
Trước ngày 12 tháng 9 năm 2021, Cardano chủ yếu để gửi giá trị và token gốc. Vào ngày đó, hard fork Alonzo đi vào hoạt động và đưa Plutus lên mainnet – biến Cardano thành một nền tảng nơi mọi người có thể phát hành các quy tắc có thể lập trình. Plutus dựa trên Haskell, một ngôn ngữ lấy cảm hứng từ toán học, đó là lý do các hợp đồng thông minh Cardano có thể được kiểm chứng chính thức: các bằng chứng cho thấy mã khớp với đặc tả của nó, được kiểm tra bằng máy chứ không phải bằng ý kiến. Đó là lý do các công ty kiểm toán yêu thích nó. Bạn không cần học Haskell để sử dụng một dApp Cardano – chỉ cần để xây dựng một dApp.
Quy ước Blueprint
Các hợp đồng Cardano hiện đại đi kèm một Plutus blueprint (CIP-57): một tệp JSON máy đọc được, ghi lại các validator của hợp đồng, các đầu vào của chúng và mã đã biên dịch – giống như một ABI cho hợp đồng. Nếu một dự án chia sẻ blueprint của mình, hợp đồng của nó là mở, có thể kiểm tra và tích hợp. Không có blueprint là một dấu hiệu cảnh báo.
6. Bảo mật: Những điều người dùng Việt Nam nên kiểm tra
Hợp đồng thông minh không phải là phép thuật. Chúng thực thi các quy tắc mà bạn thực sự đã viết – vì vậy các quy tắc phải đúng. Ba thói quen từ cuộc sống hàng ngày chuyển trực tiếp:
- Kiểm tra giấy phép (license). Hợp đồng đã được kiểm toán chưa? Bản kiểm toán có công khai không? Bạn có thuê một cửa hàng mà không kiểm tra giấy phép của nó không?
- Mở mặt tiền cửa hàng. Mã nguồn mở và có công bố blueprint không? Một cánh cửa khóa là một lời cảnh báo.
- Đọc trước khi ký. Một ví tốt hiển thị chính xác những gì bạn chấp thuận. Nếu một giao dịch trông đáng ngờ, hãy từ chối nó – validator sẽ bảo vệ bạn khỏi vi phạm các quy tắc, nhưng chỉ bạn mới có thể bảo vệ mình khỏi việc chấp thuận một điều dại dột.
7. Tóm tắt nhanh
- Một hợp đồng thông minh Cardano là một script validator – một người bảo vệ chấp thuận hoặc từ chối các giao dịch được đề xuất.
- Nó nhận datum, redeemer và script context và trả về một câu trả lời boolean duy nhất.
- Trạng thái nằm trong UTXO, được cập nhật bằng tiêu thụ-tạo mới – không có chỉnh sửa ẩn.
- Mô hình eUTXO mang lại phí có thể dự đoán và xử lý song song.
- dApp tách thành logic on-chain và ứng dụng off-chain; bạn ký, validator kiểm tra.
- Alonzo (tháng 9/2021) đưa Plutus lên mainnet; blueprint (CIP-57) giúp hợp đồng có thể kiểm tra.
- Luôn xác minh kiểm toán và trạng thái mã nguồn mở trước khi sử dụng bất kỳ dApp nào.
Bạn muốn tìm hiểu sâu hơn? Bài viết này là một phần trong loạt bài về phát triển Cardano. Các chặng tiếp theo sẽ hướng dẫn cách viết hợp đồng của riêng bạn, sự khác biệt giữa Plutus và Aiken, và cách mô hình eUTXO hỗ trợ các dApp thực tế.
