Trả lời nhanh: Smart contract (hợp đồng thông minh) là chương trình chạy trên blockchain, tự động thực hiện điều khoản đã lập trình khi điều kiện được đáp ứng, không cần trung gian. Ví dụ: hợp đồng bảo hiểm tự bồi thường khi chuyến bay trễ quá 2 giờ.
Điểm chính
- Nick Szabo đưa ra khái niệm năm 1994; smart contract chỉ phổ biến khi Ethereum ra mắt ngày 30/07/2015.
- Mỗi lần chạy tốn phí gas. Mã đã triển khai mặc định không sửa được, nên một lỗi có thể gây thiệt hại không đảo ngược, như vụ The DAO năm 2016.
- Smart contract không tự biết chuyện ngoài đời. Nó cần oracle mang dữ liệu vào, và oracle sai thì hợp đồng chạy sai.
- Pháp luật Việt Nam chưa có khái niệm “hợp đồng thông minh”, nhưng Điều 34 Luật Giao dịch điện tử 2023 công nhận hợp đồng thực hiện qua hệ thống thông tin tự động.
Mục lục
- Smart contract là gì?
- Smart contract ra đời từ khi nào?
- Hợp đồng thông minh blockchain hoạt động như thế nào?
- Smart contract có những đặc điểm gì?
- Smart contract được viết bằng ngôn ngữ gì, chạy trên nền tảng nào?
- Oracle là gì và vì sao smart contract cần oracle?
- Ứng dụng smart contract trong thực tế là gì?
- Rủi ro của smart contract là gì?
- Smart contract có giá trị pháp lý không tại Việt Nam?
- Kiểm toán (audit) smart contract là gì?
- Hợp đồng thông minh khác hợp đồng điện tử thông thường thế nào?
- Những hiểu lầm phổ biến về smart contract
- Câu hỏi thường gặp
Smart contract là gì?
Smart contract là một đoạn mã nằm tại một địa chỉ cố định trên blockchain, gồm các hàm (việc nó làm được) và dữ liệu trạng thái (những gì nó ghi nhớ). Khi có giao dịch gọi đến, mọi máy tính trong mạng cùng chạy đoạn mã và cùng ra một kết quả, nên không bên nào tự ý thay đổi được.
Hãy hình dung máy bán hàng tự động: bạn bỏ đủ tiền, chọn món, máy trả hàng và tiền thừa, không cần nhân viên và không “đổi ý” giữa chừng. Smart contract làm điều tương tự với tài sản số theo logic “nếu A xảy ra thì làm B”. Lớp nền bên dưới được giải thích trong bài blockchain là gì và hoạt động ra sao.
Hai điều cần rõ khi tìm hiểu hợp đồng thông minh là gì: nó không “thông minh” theo nghĩa AI (chỉ làm đúng điều đã viết, chính Szabo ghi rõ khái niệm không hàm ý trí tuệ nhân tạo), và nó không đương nhiên là hợp đồng pháp lý. Nhiều smart contract chỉ là phần mềm quản lý tài sản số, không chứa thoả thuận nào giữa các bên.
Smart contract ra đời từ khi nào?
- Năm 1994: nhà khoa học máy tính, luật gia Nick Szabo định nghĩa smart contract là “giao thức giao dịch được máy tính hoá, thực thi các điều khoản của một hợp đồng”, nhằm giảm sai sót và giảm phụ thuộc vào trung gian.
- Năm 1996: trong bài “Smart Contracts: Building Blocks for Digital Markets” (tạp chí Extropy số 16), ông gọi máy bán hàng tự động là “tổ tiên nguyên thuỷ” của smart contract.
- Ngày 27/11/2013: Vitalik Buterin công bố sách trắng Ethereum, đề xuất blockchain chạy được chương trình tuỳ ý.
- Ngày 30/07/2015: Ethereum hoạt động với phiên bản Frontier; lần đầu ai cũng có thể triển khai smart contract lên chuỗi công khai.
- Năm 2016: vụ The DAO bộc lộ mặt trái của mã không sửa được.
Ý tưởng phải chờ hơn 20 năm vì thiếu một môi trường mà các bên không tin nhau vẫn chấp nhận kết quả chạy mã. Blockchain cung cấp đúng thứ đó.
Hợp đồng thông minh blockchain hoạt động như thế nào?
Một smart contract đi qua 6 bước. Ví dụ dùng Ethereum vì tài liệu công khai đầy đủ nhất; các chuỗi khác tương tự.
- Viết mã. Ví dụ minh hoạ hợp đồng đặt cọc: người mua gửi tiền vào hợp đồng; khi người mua xác nhận nhận hàng, tiền tự chuyển cho người bán; quá 14 ngày chưa giao thì người mua rút lại được. Mã được biên dịch thành bytecode.
- Kiểm thử, kiểm toán trên mạng thử nghiệm (testnet), nơi tài sản không có giá trị thật.
- Triển khai (deploy). Theo tài liệu Ethereum, ai cũng triển khai được mà không cần xin phép, chỉ cần trả gas, và phí này cao hơn giao dịch thường. Mã mỗi hợp đồng giới hạn 24KB.
- Kích hoạt. Hợp đồng không tự chạy theo giờ; nó chỉ làm việc khi người dùng, hợp đồng khác hoặc oracle gửi giao dịch gọi đến.
- Thực thi. Các nút chạy mã trên máy ảo EVM (Ethereum Virtual Machine). Vì mọi máy phải ra cùng kết quả, smart contract bắt buộc có tính xác định.
- Ghi trên chuỗi. Khi mạng đồng thuận, trạng thái mới được ghi vào khối, công khai và không xoá được.
Phí gas là gì?
Gas đo khối lượng tính toán của giao dịch. Theo tài liệu Ethereum, thu phí cho mọi phép tính giúp chặn spam và vòng lặp vô hạn. Từ nâng cấp London (EIP-1559) ngày 05/08/2021, phí gồm phí cơ bản do giao thức đặt và bị đốt (huỷ), cộng phí ưu tiên trả cho bên xác thực để được xử lý sớm. Phần gas không dùng hết được hoàn lại; nhưng hết gas giữa chừng thì giao dịch thất bại và gas đã tiêu vẫn mất. Vì vậy lập trình viên smart contract phải tối ưu từng phép tính.
Smart contract có những đặc điểm gì?
- Tự động, xác định: điều kiện đúng thì hành động xảy ra; cùng đầu vào luôn cùng kết quả.
- Minh bạch: trên chuỗi công khai, ai cũng tra cứu được mã và lịch sử giao dịch.
- Bất biến mặc định: tài liệu Ethereum ghi rõ hợp đồng mặc định không xoá được và tương tác không đảo ngược được.
- Kết hợp được (composable): hợp đồng này gọi hợp đồng khác như gọi một API mở.
- Định danh bằng địa chỉ ví, không nhất thiết gắn với danh tính thật: tốt cho riêng tư, khó cho pháp lý.
Smart contract được viết bằng ngôn ngữ gì, chạy trên nền tảng nào?
| Ngôn ngữ | Môi trường chạy | Điểm cần biết |
|---|---|---|
| Solidity | EVM (Ethereum và mạng tương thích) | Ngôn ngữ bậc cao, hướng đối tượng, chịu ảnh hưởng của C++, Python, JavaScript; phổ biến nhất |
| Vyper | EVM | Cú pháp giống Python, ít tính năng hơn để dễ đọc, dễ kiểm toán |
| Rust, Move | Một số blockchain không dùng EVM | Mô hình quản lý tài sản khác EVM, ít tài liệu tiếng Việt |
| Go, Java, JavaScript | Hyperledger Fabric (chuỗi cấp phép) | Logic giao dịch được đóng gói thành “chaincode”; chỉ thành viên được cấp quyền tham gia |
Với doanh nghiệp, câu hỏi lớn hơn là chọn chuỗi công khai hay chuỗi cấp phép (permissioned). Chuỗi công khai hợp khi cần ai cũng kiểm chứng được; chuỗi cấp phép hợp khi chỉ vài đối tác tham gia và dữ liệu nhạy cảm.
Oracle là gì và vì sao smart contract cần oracle?
Oracle là cầu nối mang dữ liệu ngoài đời thực, như giá, thời tiết, giờ bay, lên blockchain cho smart contract dùng. Nó gồm phần chạy ngoài chuỗi để lấy, xác minh dữ liệu và một hợp đồng trên chuỗi để lưu kết quả.
Lý do cần: nếu mỗi nút tự hỏi một trang web, mỗi nút có thể nhận một con số khác nhau và mạng không thể đồng thuận. Tài liệu Ethereum nêu rõ smart contract tự nó không lấy được thông tin về sự kiện ngoài đời thực.
Đây là “bài toán oracle”: hợp đồng chỉ đáng tin bằng dữ liệu nó nhận. Oracle tập trung dễ thành điểm lỗi duy nhất và đưa bên trung gian quay lại. Oracle phi tập trung giảm rủi ro bằng nhiều nguồn, nhiều nút độc lập, lấy trung vị và cơ chế thưởng phạt bên cung cấp.
Ứng dụng smart contract trong thực tế là gì?
Các ứng dụng smart contract dưới đây có ví dụ thật, kể cả trường hợp đã dừng. Bức tranh rộng hơn có trong bài 10 ngành ứng dụng blockchain.
Tài chính và tài trợ thương mại
Trong tài chính phi tập trung (DeFi), ví dụ minh hoạ: người vay khoá tài sản thế chấp vào hợp đồng; khi giá trị (theo oracle) giảm dưới ngưỡng, hợp đồng tự thanh lý để trả nợ. Ngân hàng truyền thống thì dùng chuỗi cấp phép: ngày 29/12/2020, HSBC Việt Nam và Vietcombank công bố giao dịch thư tín dụng (L/C) nội địa bằng VND đầu tiên trên nền tảng Contour, phát hành và thông báo L/C trong 27 phút thay vì 3 đến 5 ngày làm việc. Tuy vậy, Contour ngừng hoạt động cuối tháng 11/2023 vì cổ đông không góp thêm vốn. Xem thêm bài chuyển đổi số trong ngân hàng.
Bảo hiểm tham số
Bảo hiểm tham số (parametric insurance) trả tiền theo chỉ số đo được như lượng mưa hay số giờ trễ chuyến, không cần giám định thiệt hại. Năm 2017, AXA ra mắt bảo hiểm trễ chuyến fizzy trên Ethereum: trễ từ 2 giờ trở lên thì tự bồi thường, khách không nộp hồ sơ. Sản phẩm dừng tháng 11/2019, cho thấy smart contract giải quyết tốt khâu chi trả nhưng không tự tạo ra nhu cầu.
Chuỗi cung ứng
Walmart cùng IBM xây hệ thống truy xuất thực phẩm trên Hyperledger Fabric; thời gian truy nguồn gốc một lô xoài giảm từ khoảng 7 ngày xuống 2,2 giây. Smart contract quy định ai được ghi dữ liệu gì ở khâu nào. Nhưng nếu người nhập khai sai từ đầu, chuỗi vẫn lưu dữ liệu sai.
Bất động sản, token hoá tài sản
Token hoá là tạo mã đại diện (token) trên chuỗi cho tài sản thật rồi dùng smart contract quản lý chuyển nhượng, chia lợi tức. Ví dụ minh hoạ: tiền thuê một toà nhà được tự chia theo tỷ lệ nắm giữ.
Lưu ý pháp lý: chuyển token không đồng nghĩa chuyển quyền sở hữu ngoài đời. Khoản 2 Điều 119 Bộ luật Dân sự 2015 yêu cầu tuân theo thủ tục công chứng, chứng thực, đăng ký khi luật quy định, như với nhà đất.
Bản quyền
Tiêu chuẩn EIP-2981 (2020) cho phép NFT trên Ethereum “thông báo” mức tiền tác quyền, nhưng văn bản tiêu chuẩn ghi rõ việc trả là tự nguyện, vì hợp đồng không phân biệt được một lần chuyển là bán hay chỉ đổi ví. Tại Việt Nam, quyền tác giả phát sinh khi tác phẩm được sáng tạo và định hình, không phụ thuộc việc ghi lên blockchain.
Ngoài ra còn có DAO (tổ chức tự trị phi tập trung, nơi quy tắc biểu quyết, chi quỹ viết thành mã), văn bằng số, thanh toán theo tiến độ. Khi kết hợp với tác tử AI (AI agent), smart contract có thể ghi nhận các khoản thanh toán do phần mềm đề xuất, nhưng đây vẫn là lĩnh vực thử nghiệm.
Rủi ro của smart contract là gì?
Lỗi mã: vụ The DAO năm 2016
The DAO là quỹ đầu tư vận hành bằng smart contract trên Ethereum, ra mắt 30/04/2016, huy động hơn 150 triệu USD giá trị Ether. Ngày 17/06/2016, kẻ tấn công khai thác lỗ hổng, trong đó có lỗi gọi đệ quy (reentrancy: hợp đồng chuyển tiền trước khi cập nhật số dư, để bên nhận gọi rút nhiều lần), rút khoảng 3,6 triệu Ether, xấp xỉ một phần ba quỹ. Lỗi kiểu này đã được cảnh báo công khai trước đó. Ngày 20/07/2016, Ethereum “hard fork” tại khối 1.920.000 để trả tiền cho người bị hại; nhóm phản đối giữ chuỗi cũ, nay là Ethereum Classic.
Không sửa được
Ngày 06/11/2017, một người dùng vô tình kích hoạt hàm tự huỷ của thư viện ví đa chữ ký Parity, khiến khoảng 513.774 Ether bị đóng băng. Nhiều dự án vì thế thiết kế hợp đồng nâng cấp được (mẫu proxy). Đổi lại, tài liệu Ethereum cảnh báo điều này làm mất tính bất biến: người dùng phải tin bên giữ quyền nâng cấp, nên cần khoá thời gian (timelock) và nhiều chữ ký.
Oracle bị thao túng
Theo Ủy ban Giao dịch Hàng hoá Tương lai Hoa Kỳ (CFTC), ngày 11/10/2022, một cá nhân mua dồn dập một tài sản trên ba sàn mà oracle của nền tảng Mango Markets lấy giá, đẩy giá báo lên hơn 13 lần trong 30 phút, rồi rút hơn 110 triệu USD. Mã không có lỗi; dữ liệu đầu vào bị bóp méo.
Khoá quản trị và dữ liệu cá nhân
Ai giữ khoá quản trị có thể tạm dừng, nâng cấp hoặc rút quỹ nếu mã cho phép; mất hay lộ khoá đều nguy hiểm. Dữ liệu trên chuỗi công khai gần như không xoá được, trong khi Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 (hiệu lực 01/01/2026) cho chủ thể quyền yêu cầu xoá. Vì vậy chỉ nên lưu mã băm, không ghi dữ liệu cá nhân lên chuỗi.
Smart contract có giá trị pháp lý không tại Việt Nam?
Pháp luật Việt Nam chưa dùng thuật ngữ “hợp đồng thông minh”, nhưng khung hiện hành cho phép một thoả thuận thực hiện bằng hệ thống tự động có giá trị pháp lý, nếu đáp ứng điều kiện chung của hợp đồng. Phần dưới mang tính kiến thức, không thay tư vấn pháp lý.
Luật Giao dịch điện tử số 20/2023/QH15
Luật thông qua ngày 22/06/2023, hiệu lực từ 01/07/2024:
- Khoản 16 Điều 3: hợp đồng điện tử là hợp đồng được thiết lập dưới dạng thông điệp dữ liệu, tức thông tin tạo ra, gửi, nhận, lưu trữ bằng phương tiện điện tử.
- Khoản 1 Điều 34: hợp đồng điện tử giao kết hoặc thực hiện qua tương tác giữa hệ thống thông tin tự động với người, hoặc giữa các hệ thống tự động với nhau, không bị phủ nhận giá trị pháp lý chỉ vì không có sự kiểm tra hay can thiệp của con người vào từng hành động. Đây là điều khoản gần nhất với smart contract.
- Khoản 3 Điều 14: bên nhập nhầm thông tin qua hệ thống tự động không cho cơ hội sửa lỗi có quyền rút lại thông tin, nếu thông báo ngay và chưa nhận lợi ích. Smart contract vốn không đảo ngược được nên cần có bước xác nhận ngay từ thiết kế.
- Khoản 3 Điều 36: hợp đồng điện tử phải tuân thủ cả pháp luật về hợp đồng. “Chạy được trên chuỗi” không thay thế Bộ luật Dân sự.
- Điều 11: thông điệp dữ liệu được dùng làm chứng cứ, nên lịch sử giao dịch trên chuỗi có thể là chứng cứ.
Bộ luật Dân sự 2015
Bộ luật Dân sự số 91/2015/QH13 (hiệu lực 01/01/2017) định nghĩa hợp đồng tại Điều 385 là sự thoả thuận giữa các bên về việc xác lập, thay đổi hoặc chấm dứt quyền, nghĩa vụ dân sự. Khoản 1 Điều 117 yêu cầu chủ thể có năng lực phù hợp, hoàn toàn tự nguyện, mục đích và nội dung không vi phạm điều cấm của luật, không trái đạo đức xã hội. Khó khăn: một địa chỉ ví không cho biết người đứng sau đã thành niên chưa, có hiểu điều khoản viết bằng mã không. Khoản 1 Điều 119 coi giao dịch dưới dạng thông điệp dữ liệu là giao dịch bằng văn bản.
Luật Công nghiệp công nghệ số số 71/2025/QH15 (hiệu lực 01/01/2026) định nghĩa tài sản số tại Điều 46, tạo cơ sở để tài sản do smart contract quản lý được nhìn nhận là tài sản. Diễn biến mới có trong bài pháp lý blockchain và tài sản số tại Việt Nam. Ở Anh, Ủy ban Pháp luật (Law Commission) ngày 25/11/2021 cũng kết luận khung pháp luật hiện hành đủ hỗ trợ “hợp đồng pháp lý thông minh” mà không cần sửa luật.
Doanh nghiệp nên làm gì?
- Có hợp đồng văn bản đi kèm mô tả việc mã làm, ghi rõ bên nào thắng khi mã và văn bản mâu thuẫn.
- Xác minh danh tính, gắn địa chỉ ví với pháp nhân hoặc cá nhân cụ thể.
- Thoả thuận cách xử lý sự cố (lỗi mã, oracle sai, nhập nhầm) và ai được quyền tạm dừng.
- Chọn luật áp dụng và cơ quan giải quyết tranh chấp; lưu mã nguồn đã kiểm toán và nhật ký giao dịch làm chứng cứ.
Kiểm toán (audit) smart contract là gì?
Kiểm toán smart contract là việc bên độc lập rà soát mã và thiết kế để tìm lỗ hổng trước khi triển khai. Quy trình điển hình:
- Chốt phạm vi, đặc tả: hợp đồng phải làm gì và không bao giờ được làm gì.
- Phân tích tĩnh: ví dụ Slither, khung phân tích nguồn mở cho Solidity và Vyper.
- Kiểm thử, fuzzing với hàng nghìn đầu vào ngẫu nhiên, cực đoan.
- Rà soát thủ công để bắt lỗi logic nghiệp vụ mà công cụ bỏ sót; kiểm chứng hình thức (formal verification) với hợp đồng giá trị lớn.
- Báo cáo, sửa, kiểm toán lại; sau triển khai có giám sát và chương trình thưởng tìm lỗi (bug bounty).
Lỗ hổng thường gặp: gọi lại (reentrancy), thiếu kiểm soát quyền với hàm rút quỹ hay tự huỷ, tràn số (từ Solidity 0.8.0 phép tính tràn mặc định bị huỷ, nhưng mã cũ vẫn có nguy cơ), phụ thuộc một nguồn oracle và lỗi logic nghiệp vụ.
Lưu ý: báo cáo kiểm toán chỉ đúng với phiên bản mã được kiểm toán. “Đã audit” không có nghĩa là “không thể có lỗi”.
Hợp đồng thông minh khác hợp đồng điện tử thông thường thế nào?
| Tiêu chí | Hợp đồng điện tử thông thường | Hợp đồng thông minh |
|---|---|---|
| Bản chất | Văn bản điều khoản dạng số, ký bằng chữ ký điện tử | Chương trình chạy trên blockchain |
| Thực hiện | Các bên tự thực hiện nghĩa vụ | Mã tự thực hiện khi đủ điều kiện |
| Nơi lưu | Máy chủ các bên hoặc nhà cung cấp dịch vụ ký | Sổ cái phân tán, nhiều nút cùng lưu |
| Sửa đổi | Ký phụ lục | Mặc định không sửa được |
| Ngôn ngữ | Ngôn ngữ tự nhiên | Mã lập trình, khó đọc với người không chuyên |
| Các bên | Tên, mã số thuế, chữ ký số gắn danh tính | Địa chỉ ví, có thể ẩn danh |
| Khi vi phạm | Thương lượng, trọng tài, toà án | Hành động đã chạy khó đảo ngược; tranh chấp vẫn ra cơ quan tài phán |
| Chi phí | Phí dịch vụ ký, lưu trữ | Phát triển, kiểm toán, phí gas mỗi lần chạy |
| Pháp lý Việt Nam | Rõ ràng | Áp dụng cùng khung, nhiều điểm còn phải diễn giải |
Hai loại không loại trừ nhau: hợp đồng điện tử quy định quyền, nghĩa vụ; smart contract thực thi một phần như thanh toán theo mốc. Cách nghĩ này giống tự động hoá bằng RPA (robot phần mềm): máy làm phần lặp lại, con người giữ phần cần phán đoán.
Những hiểu lầm phổ biến về smart contract
- “Smart contract là AI.” Sai, nó là mã điều kiện cố định.
- “Mã là luật, không ai can thiệp được.” Vụ The DAO kết thúc bằng hard fork; nhiều hợp đồng có khoá quản trị.
- “Đã audit là an toàn.” Kiểm toán giảm rủi ro, không loại bỏ rủi ro.
- “Chỉ dùng cho tiền mã hoá.” Ngân hàng, logistics, bảo hiểm đã thử trên chuỗi cấp phép.
- “Lưu lên blockchain là bảo mật.” Bất biến không có nghĩa là bí mật; chuỗi công khai ai cũng đọc được.
Câu hỏi thường gặp
Smart contract có giá trị pháp lý không?
Có thể có. Khoản 1 Điều 34 Luật Giao dịch điện tử 2023 không phủ nhận giá trị pháp lý của hợp đồng thực hiện qua hệ thống tự động, nhưng thoả thuận vẫn phải đủ điều kiện theo Điều 117 Bộ luật Dân sự 2015.
Smart contract có sửa hoặc huỷ được không?
Mặc định là không. Muốn sửa phải thiết kế trước cơ chế nâng cấp như mẫu proxy, hoặc triển khai hợp đồng mới rồi chuyển dữ liệu sang.
Phí gas do ai trả?
Người gửi giao dịch trả, khi triển khai hợp đồng và mỗi lần gọi hàm làm thay đổi dữ liệu.
Hợp đồng thông minh khác blockchain thế nào?
Blockchain là sổ cái phân tán; smart contract là chương trình chạy trên sổ cái đó, giống ứng dụng chạy trên hệ điều hành.
Có cần biết lập trình để dùng smart contract không?
Dùng ứng dụng có sẵn thì không. Viết và triển khai thì cần, phổ biến nhất là Solidity.
Oracle trong smart contract là gì?
Là dịch vụ đưa dữ liệu ngoài blockchain vào cho hợp đồng dùng. Độ tin cậy của oracle quyết định độ tin cậy của hợp đồng.
Doanh nghiệp nên bắt đầu thế nào?
Chọn một quy trình hẹp, điều kiện rõ, dữ liệu khách quan, như thanh toán theo mốc giao hàng. Thử trên mạng thử nghiệm, kiểm toán mã, chuẩn bị văn bản pháp lý đi kèm và đặt trong lộ trình chuyển đổi số chung.