Giới thiệu
Các hợp đồng thông minh (smart contracts) được Nick Szabo lần đầu mô tả vào những năm 1990. Theo đó, ông định nghĩa hợp đồng thông minh như là một công cụ chính thức hóa và bảo mật mạng máy tính bằng cách kết hợp các giao thức với giao diện người dùng.
Szabo đã thảo luận về việc sử dụng tiềm năng của các hợp đồng thông minh trong các lĩnh vực khác nhau liên quan đến các thỏa thuận hợp đồng – chẳng hạn như hệ thống tín dụng, xử lý thanh toán và quản lý quyền nội dung.
Trong thế giới tiền điện tử, chúng ta có thể định nghĩa hợp đồng thông minh như là một ứng dụng hoặc chương trình chạy trên blockchain. Thông thường, chúng hoạt động như một thỏa thuận kỹ thuật số được thực thi bởi một bộ quy tắc cụ thể. Các quy tắc này được xác định trước bằng mã máy tính, được sao chép và thực thi bởi tất cả các nút mạng.
Các hợp đồng thông minh blockchain cho phép tạo ra các giao thức không tin cậy. Điều này có nghĩa là hai bên có thể thực hiện các cam kết thông qua blockchain mà không cần phải biết hoặc tin tưởng lẫn nhau. Họ có thể chắc chắn rằng nếu các điều kiện không được đáp ứng, hợp đồng sẽ không được thực thi. Ngoài ra, việc sử dụng các hợp đồng thông minh có thể loại bỏ sự cần thiết của các bên trung gian, giảm chi phí hoạt động đáng kể.
Mặc dù giao thức Bitcoin đã hỗ trợ các hợp đồng thông minh trong nhiều năm, nhưng chúng được phổ biến bởi nhà sáng tạo và đồng sáng lập Ethereum, Vitalik Buterin. Tuy nhiên, có một điểm đáng lưu ý là mỗi blockchain có thể trình bày một phương pháp thực hiện hợp đồng thông minh khác nhau.
Bài viết này sẽ tập trung vào các hợp đồng thông minh chạy trên Ethereum Virtual Machine (EVM) – một phần thiết yếu của chuỗi khối Ethereum.
Các hợp đồng thông minh làm việc như thế nào?
Nói một cách dễ hiểu, một hợp đồng thông minh hoạt động như một chương trình xác định. Nó thực hiện một tác vụ cụ thể khi và chỉ khi các điều kiện nhất định được đáp ứng. Do đó, một hệ thống hợp đồng thông minh thường tuân theo các câu lệnh “if… then…”. Nhưng bất chấp thuật ngữ phổ biến, hợp đồng thông minh không phải là hợp đồng pháp lý, cũng không phải là hợp đồng thông minh. Chúng chỉ là một đoạn mã chạy trên một hệ thống phân tán (blockchain).
Trên mạng Ethereum, các hợp đồng thông minh chịu trách nhiệm thực hiện và quản lý các hoạt động blockchain diễn ra khi người dùng (địa chỉ) tương tác với nhau. Bất kỳ địa chỉ nào không phải là hợp đồng thông minh được gọi là tài khoản thuộc sở hữu bên ngoài (Externally Owned account – EOA). Do đó, các hợp đồng thông minh được kiểm soát bởi mã máy tính và EOA được kiểm soát bởi người dùng.
Về cơ bản, hợp đồng thông minh Ethereum được làm từ một mã hợp đồng và hai khóa công khai. Khóa công khai đầu tiên 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, hoạt động như một nhận dạng kỹ thuật số duy nhất cho mỗi hợp đồng thông minh.
Việc triển khai bất kỳ hợp đồng thông minh nào đều được thực hiện thông qua một giao dịch blockchain, và chúng chỉ có thể được kích hoạt bởi EOA (hoặc bởi các hợp đồng thông minh khác). Tuy nhiên, lần kích hoạt đầu tiên luôn do EOA (người dùng) thực hiện.
Các tính năng chính của hợp đồng thông minh
Một hợp đồng thông minh Ethereum thường thể hiện các đặc điểm sau:
Tính phân phối: Các hợp đồng thông minh được nhân rộng và phân phối trong tất cả các nút của mạng Ethereum. Đây là một trong những điểm khác biệt lớn so với các giải pháp khác dựa trên các máy chủ tập trung.
Tính xác định: Hợp đồng thông minh chỉ thực hiện các hành động mà chúng được thiết kế, nếu các yêu cầu được đáp ứng. Ngoài ra, kết quả sẽ luôn giống nhau, bất kể ai thực hiện chúng.
Tính tự động: Hợp đồng thông minh có thể tự động hóa tất cả các loại nhiệm vụ và hoạt động giống như một chương trình tự thực hiện. Tuy nhiên, trong hầu hết các trường hợp, nếu hợp đồng thông minh không được kích hoạt, nó sẽ ở trạng thái “không hoạt động” và sẽ không thực hiện bất kỳ hành động nào.
Tính bất biến: Không thể thay đổi hợp đồng thông minh sau khi đã triển khai. Chúng chỉ có thể bị “xóa” nếu một chức năng cụ thể đã được triển khai trước đó. Do đó, chúng ta có thể nói rằng hợp đồng thông minh có thể cung cấp mã chống giả mạo.
Tính tùy chỉnh: Trước khi triển khai, hợp đồng thông minh có thể được mã hóa theo nhiều cách khác nhau. Vì vậy, chúng có thể được sử dụng để tạo nhiều loại ứng dụng phi tập trung (Decentralized Applications – DApps). Điều này liên quan đến thực tế là Ethereum là một blockchain Turing hoàn chỉnh.
Tính không tin cậy: Hai hoặc nhiều bên có thể tương tác thông qua hợp đồng thông minh mà không cần biết hoặc tin tưởng lẫn nhau. Ngoài ra, công nghệ blockchain đảm bảo rằng dữ liệu là chính xác.
Tính minh bạch: Vì các hợp đồng thông minh dựa trên một blockchain công khai, nên mã nguồn của chúng không chỉ bất biến mà còn được hiển thị với bất kỳ ai.
Liệu tôi có thể thay đổi hoặc xóa một hợp đồng thông minh không?
Không thể thêm các chức năng mới vào một hợp đồng thông minh Ethereum sau khi đã được triển khai. Tuy nhiên, nếu người tạo hợp đồng thêm chức năng SELFDESTRUCT trong mã, họ có thể “xóa” hợp đồng thông minh trong tương lai – và thay thế nó bằng một hợp đồng mới. Tuy nhiên, ngược lại, nếu hàm trên không được bao gồm trong mã trước đó, họ sẽ không thể xóa nó.
Đáng chú ý, cái gọi là hợp đồng thông minh có thể nâng cấp cho phép các nhà phát triển linh hoạt hơn so với tính bất biến của hợp đồng. Có nhiều cách để tạo các hợp đồng thông minh có thể nâng cấp, với các mức độ phức tạp khác nhau.
Lấy một ví dụ đơn giản, hãy tưởng tượng rằng một hợp đồng thông minh được chia thành nhiều hợp đồng nhỏ hơn. Một số trong số chúng được thiết kế với tính bất biến, trong khi một số khác có chức năng ‘xóa’ được bật. Điều này có nghĩa là một phần của mã (hợp đồng thông minh) có thể bị xóa và thay thế, trong khi các chức năng khác vẫn nguyên vẹn.
Ưu điểm và các trường hợp sử dụng
Là mã có thể lập trình, hợp đồng thông minh có khả năng tùy chỉnh cao và có thể được thiết kế theo nhiều cách khác nhau nhằm cung cấp nhiều loại dịch vụ và giải pháp.
Là các chương trình phi tập trung và tự thực hiện, các hợp đồng thông minh có thể tăng tính minh bạch và giảm chi phí hoạt động. Tùy thuộc vào việc thực hiện, họ cũng có thể tăng tính hiệu quả và giảm chi phí quan liêu.
Hợp đồng thông minh đặc biệt hữu ích trong các tình huống liên quan đến việc chuyển hoặc trao đổi tiền giữa hai hoặc nhiều bên.
Nói cách khác, hợp đồng thông minh có thể được thiết kế cho nhiều trường hợp sử dụng khác nhau. Một số ví dụ bao gồm việc tạo tài sản mã hóa, hệ thống bỏ phiếu, ví điện tử, sàn giao dịch phi tập trung, trò chơi và ứng dụng di động. Chúng cũng có thể được triển khai cùng với các giải pháp blockchain khác đang giải quyết các lĩnh vựcchăm sóc sức khỏe, từ thiện, chuỗi cung ứng, quản trị và tài chính phi tập trung (DeFi).
ERC-20
Các token được phát hành trên chuỗi khối Ethereum tuân theo một tiêu chuẩn được gọi là ERC-20. Tiêu chuẩn mô tả các chức năng cốt lõi của tất cả các token dựa trên Ethereum. Do đó, các tài sản kỹ thuật số này thường được gọi là token ERC-20, và chúng đại diện cho một phần lớn các loại tiền điện tử hiện có.
Nhiều công ty blockchain và công ty khởi nghiệp đã triển khai các hợp đồng thông minh để phát hành token kỹ thuật số của họ trên mạng Ethereum. Sau khi phát hành, phần lớn các công ty này đã phân phối token ERC-20 của họ thông qua các sự kiện Initial Coin Offering (ICO). Trong hầu hết các trường hợp, việc sử dụng các hợp đồng thông minh cho phép trao đổi tiền và phân phối token, theo một cách đáng tin cậy và hiệu quả.
Hạn chế
Hợp đồng thông minh được tạo ra từ mã máy tính do con người viết ra. Điều này mang lại nhiều rủi ro vì mã có thể có lỗ hổng và lỗi. Tốt nhất, chúng nên được viết và triển khai bởi các lập trình viên dày dặn kinh nghiệm, đặc biệt là khi liên quan đến thông tin nhạy cảm hoặc số tiền lớn.
Ngoài ra, một số người cho rằng các hệ thống tập trung có thể cung cấp hầu hết các giải pháp và chức năng được cung cấp bởi các hợp đồng thông minh. Sự khác biệt chính là các hợp đồng thông minh đang chạy trên mạng P2P phân tán, thay vì một máy chủ tập trung. Và bởi vì chúng dựa trên một hệ thống blockchain, chúng có xu hướng bất biến hoặc rất khó thay đổi.
Tính bất biến có thể là tuyệt vời trong một số tình huống, nhưng lại trở nên rất tệ ở những tình huống khác. Ví dụ: khi Tổ chức tự trị phi tập trung (Decentralized Autonomous Organization) hay thường được gọi là “The DAO” bị tấn công vào năm 2016, hàng triệu ether (ETH) đã bị đánh cắp do sai sót trong mã hợp đồng thông minh của họ.
Đọc thêm: Tại sao bạn nên chú ý đến DAO
Vì hợp đồng thông minh của họ là bất biến, các nhà phát triển không thể sửa mã. Điều này cuối cùng đã dẫn đến một đợt hard fork, khai sinh ra chuỗi Ethereum thứ hai. Nói một cách đơn giản, một chuỗi đã “hoàn nguyên” vụ hack và trả lại tiền cho chủ sở hữu hợp pháp (đây là một phần của chuỗi khối Ethereum hiện tại). Chuỗi khác đã quyết định không can thiệp vào vụ hack, nói rằng những thứ xảy ra trên blockchain không bao giờ được thay đổi (chuỗi này hiện được gọi là Ethereum Classic).
Điều quan trọng cần lưu ý là vấn đề không đến từ chuỗi khối Ethereum. Thay vào đó, nguyên nhân là do việc triển khai hợp đồng thông minh bị lỗi.
Một hạn chế khác của hợp đồng thông minh là liên quan đến tình trạng pháp lý không chắc chắn của chúng. Không chỉ vì nó nằm trong vùng xám ở hầu hết các quốc gia, mà còn vì các hợp đồng thông minh không phù hợp với khuôn khổ pháp lý hiện tại.
Ví dụ, nhiều hợp đồng yêu cầu cả hai bên phải được xác minh danh tính một cách thích đáng và trên 18 tuổi. Biệt danh được cung cấp bởi công nghệ blockchain, kết hợp với việc thiếu các trung gian, có thể đe dọa những yêu cầu đó. Mặc dù có những giải pháp tiềm năng cho vấn đề này, nhưng khả năng thực thi pháp lý của các hợp đồng thông minh là một thách thức thực sự – đặc biệt là khi nói đến các mạng phân tán, không biên giới.
Những chỉ trích
Một số người đam mê blockchain coi hợp đồng thông minh là một giải pháp sẽ sớm thay thế và tự động hóa một phần lớn các hệ thống thương mại và quan liêu của chúng tôi. Mặc dù đây là một thực tế có thể xảy ra, nhưng nó có lẽ còn lâu mới trở thành tiêu chuẩn.
Hợp đồng thông minh chắc chắn là một phần thú vị của công nghệ. Tuy nhiên, việc được phân phối, xác định, minh bạch và có phần bất biến có thể khiến chúng kém hấp dẫn hơn trong một số tình huống.
Về cơ bản, những lời chỉ trích dựa trên thực tế là hợp đồng thông minh không phải là giải pháp phù hợp cho nhiều vấn đề trong thế giới thực. Trên thực tế, một số tổ chức tốt hơn nên sử dụng các lựa chọn thay thế dựa trên máy chủ thông thường.
Khi so sánh với các hợp đồng thông minh, các máy chủ tập trung dễ bảo trì hơn và rẻ hơn, đồng thời có xu hướng mang lại hiệu quả cao hơn về tốc độ và giao tiếp xuyên mạng (khả năng tương tác).
Kết luận
Không còn nghi ngờ gì nữa, các hợp đồng thông minh đã gây ra tác động lớn trong thế giới tiền điện tử, và chúng chắc chắn đã cách mạng hóa không gian blockchain. Mặc dù người dùng cuối có thể không tương tác trực tiếp với các hợp đồng thông minh, nhưng những hợp đồng này có khả năng cung cấp năng lượng cho nhiều loại ứng dụng trong tương lai, từ dịch vụ tài chính đến quản lý chuỗi cung ứng.
Cùng với nhau, các hợp đồng thông minh và blockchain có tiềm năng tạo ra đột phá trong hầu hết các lĩnh vực trong xã hội của chúng ta. Nhưng chỉ có thời gian mới trả lời được liệu những công nghệ đột phá này có vượt qua được nhiều rào cản để có thể áp dụng trên quy mô lớn hay không.