"Hợp đồng thông minh" chỉ đơn giản là một chương trình chạy trên blockchain Ethereum. Đó là một tập hợp mã (các chức năng của nó) và dữ liệu (trạng thái của nó) nằm tại một địa chỉ cụ thể trên chuỗi khối Ethereum.
Hợp đồng thông minh là một loại Ethereum account. Điều này có nghĩa là chúng có số dư và chúng có thể gửi các giao dịch qua mạng. Tuy nhiên, chúng không được kiểm soát bởi người dùng, thay vào đó chúng được triển khai vào mạng và chạy như được lập trình. Sau đó, tài khoản người dùng có thể tương tác với hợp đồng thông minh bằng cách gửi các giao dịch thực hiện một chức năng được xác định trên hợp đồng thông minh. Hợp đồng thông minh có thể xác định các quy tắc, giống như một hợp đồng thông thường và tự động thực thi chúng thông qua mã. Hợp đồng thông minh không thể bị xóa theo mặc định và các tương tác với chúng là không thể thay đổi.
Ví dụ về máy bán hàng tự động
Để mua đồ ăn nhẹ từ máy bán hàng tự động:
money + snack selection = snack dispensed
Một hợp đồng thông minh, giống như một máy bán hàng tự động, có logic được lập trình trong đó. Dưới đây là một ví dụ đơn giản về cách máy bán hàng tự động này có thể trông giống như một hợp đồng thông minh:
pragma solidity 0.8.7;
contract VendingMachine {
// Declare state variables of the contract
address public owner;
mapping (address => uint) public cupcakeBalances;
// When 'VendingMachine' contract is deployed:
// 1. set the deploying address as the owner of the contract
// 2. set the deployed smart contract's cupcake balance to 100
constructor() {
owner = msg.sender;
cupcakeBalances[address(this)] = 100;
}
// Allow the owner to increase the smart contract's cupcake balance
function refill(uint amount) public {
require(msg.sender == owner, "Only the owner can refill.");
cupcakeBalances[address(this)] += amount;
}
// Allow anyone to purchase cupcakes
function purchase(uint amount) public payable {
require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake");
require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase");
cupcakeBalances[address(this)] -= amount;
cupcakeBalances[msg.sender] += amount;
}
}
hợp đồng thông minh có thể thay thế các trung gian trong nhiều ngành.
Bất kỳ ai cũng có thể viết một hợp đồng thông minh và triển khai nó vào mạng. Bạn chỉ cần học cách viết mã bằng ngôn ngữ hợp đồng thông minh và có đủ ETH để triển khai hợp đồng của mình. Về mặt kỹ thuật, việc triển khai hợp đồng thông minh là một giao dịch, vì vậy bạn cần thanh toán Gas của mình giống như cách bạn cần trả gas cho một lần chuyển ETH đơn giản. Tuy nhiên, chi phí Gas cho việc triển khai hợp đồng cao hơn nhiều.