Smart contract – hợp đồng thông minh là gì?

Vinh Phan

Xin chào mọi người ^^, lại là mình đây.

Hôm nay sẽ tiếp tục bài viết trong series blockchain (từ không biết gì đến biết một chút nhé), bài hôm nay sẽ là smart contract (hợp đồng thông minh), một kiến thức nền tảng để mọi người có thể bắt đầu thực hiện một ứng dụng phi tập trung (D-APP)

Những kiến thức bạn nên tìm trước khi đọc về smart contract:
Blockchain là gì
Vì sao web3 sẽ là tương lai của ứng dụng web
Blockchain wallet là gì, chi tiết từng loại ví trong blockchain

OK, bắt đầu thôi!

Smart Contract là gì?

Smart Contract (hay Hợp đồng thông minh) là các chương trình chạy trên blockchain. Hợp đồng thông minh cũng giống như một hợp đồng kỹ thuật số bị bắt buộc thực hiện bởi một bộ quy tắc cụ thể. Các quy tắc này do bộ mã máy tính xác định trước mà tất cả các nút (node) trong mạng đều phải sao chép và thực thi các quy tắc đó. 

Cơ bản Smart Contract chỉ là một đoạn mã chạy trên một hệ thống phân tán, cho phép tạo ra các giao thức Permissionless (tức là không cần trao quyền). Điều đó có nghĩa là: 

  • Hai bên trong hợp đồng có thể đưa ra các cam kết thông qua blockchain mà không cần phải biết về danh tính hay tin tưởng lẫn nhau.
  • Họ có thể đảm bảo rằng nếu các điều kiện của hợp đồng không được thỏa mãn, hợp đồng sẽ không được thực thi.
  • Việc sử dụng hợp đồng thông minh loại bỏ nhu cầu đối với các bên trung gian, giúp giảm đáng kể chi phí hoạt động

Mỗi blockchain có một phương pháp triển khai hợp đồng thông minh khác nhau, Trong đó nổi bật nhất vẫn là Smart Contract chạy trên máy ảo của Ethereum (Ethereum Virtual Machine – EVM). Trong series này, mình sẽ hướng dẫn mọi người theo Etherium nhé (đơn giản là nó phổ biến thì mình phải dùng thôi ^^).

Smart Contract hoạt động như thế nào?

Nếu là dân lập trình thì bạn cứ nghĩ nó kiểu if else vậy đó (nếu nó thoả mãn cái điều kiện thì làm gì đó). Smart Contract sẽ thực thi một tác vụ cụ thể trong trường hợp thỏa mãn các điều kiện nhất định

Bạn là người dùng, bạn tạo một ví (1 địa chỉ) thì tài khoản đó đó của bạn còn được gọi là tại khoản độc lập (Externally Owned Account – EOA) và Bất kỳ địa chỉ nào không phải là smart contract đều được gọi là Tài khoản độc lập

Smart Contract Ethereum bao gồm một mã hợp đồng và hai khóa công khai: 

  • Khóa công khai thứ nhất là khóa do người tạo hợp đồng cung cấp.
  • Khóa còn lại đại diện cho chính hợp đồng, khóa này có vai trò như một mã định danh kỹ thuật số duy nhất cho mỗi Smart Contract.

Smart Contract được triển khai thông qua giao dịch blockchain và chúng chỉ được kích hoạt khi một Tài khoản độc lập (EOA) hoặc các Smart Contract khác call chúng. Tuy nhiên, kích hoạt đầu tiên luôn từ phía EOA (người dùng)

Ưu & nhược điểm của Smart Contract

Ưu điểm

Hợp đồng thông minh là một đoạn mã trong lập trình vì vậy có khả năng tùy chỉnh cao và có thể được thiết kế theo nhiều cách để có thể cung cấp dịch vụ theo từng trường hợp mong muốn

Nếu phát triển, lập trình một cách chính xác, smart contract giúp tăng tính minh bạch và giảm chi phí hoạt động, tăng hiểu quả vận hành một giao dịch lên rất nhiều

Nhược điểm

Smart Contract dựa trên hệ thống blockchain nên không thể sửa đổi và can thiệp. Một khi đã viết ra và bắt đầu sử dụng thì bắt buộc phải tuân theo hợp đồng đó, muốn thay đổi thì chỉ có cách viết lại một hợp đồng mới.

Bạn có thể hiểu công ty toratech viết ra một hợp đồng thông minh tạo 1 token là TRT và phân phối token đó cho khách hàng, nếu chỉ cần 1 lỗi trong mã Code thì việc giao dịch của khách hàng sẽ không thể thực hiện, bắt buộc phải viết một hợp đồng mới, triển khai lại và thông báo một token mới. Điều này làm cho việc thống nhất không còn nữa, khi khách hàng sẽ có đến 2 token TRT.

Ví dụ:

Khi một tổ chức tự trị phi tập trung (DAO) có tên là “The DAO” bị hack vào năm 2016, hàng triệu ETH đã bị đánh cắp do có sai sót trong mã hợp đồng thông minh của họ.

Vì Smart Contract của họ là không thể thay đổi, nên các nhà phát triển không thể sửa code. Điều này cuối cùng đã dẫn đến một cuộc hard fork, tạo ra Ethereum classic và Ethereum.

Bên cạnh đó, blockchain ở thời điểm của bài viết này chưa được bảo vệ pháp lý, đó là rủi ro lớn nếu người dùng mất quyền lời thì sẽ không có ai can thiệp giải quyết, nó đòi hỏi người dùng phải nắm kỹ thuật mới có thể giao dịch một cách an toàn.

Rủi ro của Smart Contract

Smart Contract chỉ là các đoạn mã chạy trên một Blockchain do con người tạo ra, chúng không thông minh, chúng hoạt động theo cách mà nhà phát triển viết ra chúng, chứ không phải cách mà nhà phát triển nghĩ chúng sẽ hoạt động.

Nghĩa là ông nào Code cái smart contract mà ngu ngu 1 phát là đi toi ^^, khi một smart contract được Build ra môi trường product tất nhiên sẽ có 1 team tester bay vào kiểm tra nhưng như vậy cũng không đảm bảo gì là OK cả, cái lỗi “The DAO” là một minh chứng, não mấy ông lập trình có to đến đâu đâu thì mấy ông hacker cũng có cái để phát hiện ra :)))

Ứng dụng của Smart Contract trong Crypto

Cái này thì đủ thứ trong blockchain nhé:

  • Ví tiền điện tử
  • Sàn giao dịch phi tập trung
  • NFT

Trong series này mọi người sẽ được Build một smart contract tạo token, dùng nó giao dịch nhé.

Thôi dừng ở đây nhé, hi vọng mọi người hiểu được sơ sơ về smart contract.

Viết một bình luận