Hợp đồng thông minh là gì? Cách tạo hợp đồng thông minh nhanh nhất và đơn giản nhất

Hợp đồng thông minh (Smart contract) là một thuật ngữ được nhắc đến rất nhiều trong lĩnh vực tiền điện tử và Blockchain. Vậy làm thế nào để tạo hợp đồng thông minh đơn giản và dễ dàng nhất. Mời bạn cùng tìm hiểu qua bài viết dưới đây.

Định nghĩa Hợp đồng thông minh (Smart contract)

Hợp đồng thông minh (hay còn được gọi là smart contract) được định nghĩa là một giao thức quản lý hợp đồng giúp thực hiện giao dịch tự động mà không có sự can thiệp từ bên thứ ba trung gian. Thông thường, khi ký một hợp đồng để trao đổi giá trị kinh tế, chúng ta cần một bên thứ 3 có trách nhiệm trung gian như Nhà môi giới, Tòa án,…. Hợp đồng thông minh là một cơ chế trao đổi xác định, được kiểm soát bởi các phương tiện kỹ thuật số giúp cho việc thực hiện giao dịch trực tiếp giữa các thực thể mà không cần tin cậy nhau. Các hợp đồng này được định nghĩa bằng cách lập trình và được chạy chính xác như mong muốn mà không bị kiểm duyệt, lừa đảo hay sự can thiệp từ bên thứ ba trung gian.

Hợp đồng thông minh làm việc như thế nào

Cách tạo hợp đồng thông minh đơn giản nhất

Hầu hết các hợp đồng thông minh hiện nay được phát triển trên nền tảng công nghệ của Ethereum. Điều này có nghĩa là một hợp đồng thông minh Ethereum  (về mặt lý thuyết) có thể được sử dụng để thực hiện bất kỳ nhiệm vụ tính toán nào.

Hợp đồng thông minh dược lập trình bằng ngôn ngữ lập trình có tên là Solidity, một ngôn ngữ tương tự như JavaScript.

Dưới đây là quy trình tạp ra một smart contract:

Đầu tiên, bạn phải cài đặt Ganache, đây sẽ là công cụ sẽ sử dụng để tạo một blockchain riêng chỉ chạy trên máy. Bạn cũng cần tải xuống bản sao MyEtherWallet của riêng bạn (trang web được lưu trữ URL sẽ không hoạt động trong trường hợp này). Lưu ý: Tải xuống etherwallet-v3.xx.xxzip.

Sau khi cài đặt xong, các bạn sẽ bắt đầu bằng cách truy cập https://remix.ethereum.org/ trong trình duyệt của các bạn, nơi các bạn sẽ thấy màn hình sau

Cách tạo hợp đồng thông minh 1

Đây là Remix, một trình biên dịch trực tuyến cho Solidity. Đó là những gì chúng ta sẽ sử dụng để viết mã hợp đồng thông minh của mình. Khi bạn truy cập trang đầu tiên, trình soạn thảo văn bản được tải sẵn một số mã. Sau đó sẽ xóa tất cả văn bản đó và thay thế bằng văn bản sau

Cách tạo hợp đồng thông minh 2

Đây là mã cho truy cập của bạn. Như có thể thấy, nó có một biến và ba hàm. Biến, count là một số nguyên riêng tư, có nghĩa là không thể truy cập được bởi bất kỳ ai ngoài chính hợp đồng. Hàm đầu tiên incrementCounter(), thay đổi hoặc thay đổi, giá trị của count bằng cách tăng giá trị của nó. Hàm thứ hai decrementCounter(), làm thay đổi giá trị của count bằng cách giảm giá trị của nó. Và, hàm thứ ba getCount(), truy cập count và trả về giá trị của nó cho bất kỳ ai hoặc bất cứ thứ gì được gọi là hàm.

Khi mã truy cập được dán vào Remix, nó sẽ trông giống như sau và tự động biên dịch.

Remix mã hợp đồng thông minh

Các bạn sẽ để tab đó mở, để có thể quay lại sau. Bây giờ, hãy mở Ganache và bạn sẽ thấy màn hình xuất hiện như sau: 

Cách tạo hợp đồng thông minh 3

Ở gần phía trên màn hình, bạn có thể thấy văn bản có nội dung là RPC SERVERNH như sau

Cách tạo hợp đồng thông minh 4

Bây giờ, hãy giải nén MyEtherWallet tải xuống và mở thư mục. Sau đó, mở index.html tệp trong trình duyệt của bạn để xem màn hình sau

Cách tạo hợp đồng thông minh 5

Ở góc trên bên phải, bạn có thể thấy một danh sách thả xuống cho MyEtherWallet biết mạng Ethereum nào sẽ kết nối với. Theo mặc định, nó kết nối với mạng chính Ethereum (ETH). Tiếp theo thay đổi điều này bằng cách nhấp vào menu thả xuống.

Cách tạo hợp đồng thông minh 6

Nhấp vào thêm Node tùy chỉnh.

Cách tạo hợp đồng thông minh 7

Bây giờ bạn có thể nhập thông tin Máy chủ RPC mà Ganache đã cung cấp cho bạn trước đó. Lưu ý: Bạn có thể đặt tên cho nút của mình theo tên mà bạn muốn. 

Cách tạo hợp đồng thông minh 8

MyEtherWallet hiện được kết nối với blockchain tự lưu trữ của bạn thông qua Ganache. Hãy sử dụng MyEtherWallet để tải lên hợp đồng thông minh Counter của bạn lên blockchain. Để thực hiện việc này, chúng tôi sẽ nhấp vào các hợp đồng của nhóm ED trong thanh điều hướng hàng đầu của MyEtherWallet và chọn Hợp đồng triển khai hợp đồng.

Cách tạo hợp đồng thông minh 9

Cách tạo hợp đồng thông minh 9

Như bạn có thể thấy, MyEtherWallet yêu cầu cung cấp mã byte của hợp đồng. Để xác định vị trí này, bạn sẽ quay trở lại Remix IDE trước đó và nhấp vào nút Chi tiết trực tuyến

Cách tạo hợp đồng thông minh 10

Bây giờ bạn sẽ thấy một hộp thoại có nhiều thông tin về hợp đồng Counter.

Cách tạo hợp đồng thông minh 11

Để sao chép mã byte, nhấp vào biểu tượng clipboard bên cạnh BYECECEE.

Cách tạo hợp đồng thông minh 12

Sau đó, quay lại MyEtherWallet và dán mã byte vào hộp thoại

Cách tạo hợp đồng thông minh 13

Bây giờ, có thể cuộn xuống và nhập một tài khoản để tải lên hợp đồng. Ganache đã cho 5 địa chỉ có thể sử dụng để tương tác với blockchain riêng. Để sử dụng một trong số chúng để tải lên hợp đồng này, quay lại Ganache và nhấp vào biểu tượng chính cho bất kỳ địa chỉ nào.

Cách tạo hợp đồng thông minh 14

Nó sẽ cho chúng ta thấy khóa riêng được liên kết với tài khoản này.

Cách tạo hợp đồng thông minh 15

Sao chép khóa riêng này và dán nó vào MyEtherWallet

Cách tạo hợp đồng thông minh 16

Bây giờ nếu nhấp vào Mở khóa, thì MyEtherWallet sẽ hỏi nếu muốn ký giao dịch này và triển khai hợp đồng

Cách tạo hợp đồng thông minh 17

Cách tạo hợp đồng thông minh 18

Cách tạo hợp đồng thông minh 19

Nếu giao dịch xảy ra thành công, thì Ganache sẽ tăng giá trị khối hiện tại của nhóm và số giao dịch của tài khoản đã sử dụng để triển khai hợp đồng cũng tăng lên.

Cách tạo hợp đồng thông minh 20

Hợp đồng hiện đã được tải lên blockchain! Để tương tác với nó bằng cách tăng và giảm bộ đếm, chúng ta có thể quay lại MyEtherWallet và chọn Tương tác với Hợp đồng.

Cách tạo hợp đồng thông minh 21

MyEtherWallet hiện yêu cầu địa chỉ mà hợp đồng mới được triển khai cư trú và Giao diện nhị phân ứng dụng (ABI) trong hợp đồng. Để tìm địa chỉ hợp đồng, quay lại Ganache và xem nhật ký giao dịch của chúng tôi

Cách tạo hợp đồng thông minh 22

Trang này hiển thị giao dịch đã tạo trước đó khi triển khai hợp đồng. Như bạn có thể thấy, Ganache cho biết địa chỉ đã sử dụng để triển khai hợp đồng, địa chỉ hợp đồng trên blockchain và thêm thông tin về giao dịch. Hãy nhấp vào giao dịch, sao chép địa chỉ hợp đồng đã tạo và dán nó vào MyEtherWallet.

Cách tạo hợp đồng thông minh 25

Cách tạo hợp đồng thông minh 26

 

Cách tạo hợp đồng thông minh 27

Cách tạo hợp đồng thông minh 29

Tất cả những gì còn lại mà chúng ta cần là ABI. Đây là những gì cho MyEtherWallet biết cách tương tác với hợp đồng. Để có được nó, quay lại Remix và nhấp vào biểu tượng clipboard bên cạnh GIAO DỊCH GIAO DỊCH – ABI, để sao chép nó.

Cách tạo hợp đồng thông minh 30

Bây giờ chúng ta có thể quay lại MyEtherWallet, dán ABI vào hộp văn bản của nó và nhấp vào nút Truy cập vào đường dẫn Cách tạo hợp đồng thông minh 31

Bây giờ chúng ta có thể tương tác với hợp đồng của mình bằng cách nhấp vào nút Chọn một chức năng thả xuống.

Cách tạo hợp đồng thông minh 33

Trong mã của này, chúng ta đặt countgiá trị ban đầu là 0. Để xác nhận rằng hợp đồng đang hoạt động đúng, hãy gọi getCount()hàm.

CÁCH TẠO HỢP ĐỒNG THÔNG MINH 34

Hợp đồng trả về 0 khi nhận được giá trị counttrước khi thay đổi. Nhưng, thực hiện hai chức năng khác, incrementCounter() và decrementCounter(). Hãy gọi incrementCounter()để kiểm tra nó. Sau đó, chọn lại chức năng thả xuống, chọn incrementCountervà tạo một giao dịch mới.

Cách tạo hợp đồng thông minh 35

Cách tạo hợp đồng thông minh 36

Cách tạo hợp đồng thông minh 37

Cách tạo hợp đồng thông minh 38

Điều này chỉ làm tăng giá trị của count. Bây giờ chúng ta có thể gọi getCount()lại để xác nhận xem giá trị có thực sự thay đổi hay không.

Cách tạo hợp đồng thông minh 40

Như bạn có thể thấy, count bây giờ bằng 1! Vì vậy, incrementCount() chức năng  hoạt động. Bạn có thể tự do kiểm tra decrementCount(), và khám phá nhiều hơn nữa!

Trong suốt bài đăng này, mình đã đưa ra một blockchain trên chính máy của bạn, triển khai một hợp đồng thông minh cho nó và tương tác với hợp đồng. Điều này rất giống với quy trình làm việc của các nhà phát triển hợp đồng thông minh Ethereum chuyên nghiệp, mặc dù có một chút khác biệt. Quá trình này hoạt động rất tốt trong quá trình phát triển sớm hợp đồng thông minh, nhưng điều gì xảy ra nếu bạn muốn người khác tương tác với hợp đồng thông minh của mình mà không sử dụng tiền thật bằng cách triển khai nó lên mainnet?

Trong trường hợp đó, bạn có thể tải hợp đồng của mình lên mạng thử nghiệm Ethereum hoặc testnet để hợp đồng được sao chép vào mọi máy trong mạng toàn cầu của Ethereum nhưng người dùng vẫn có thể sử dụng tiền giả để tương tác với nó. Trong một bài đăng sau, tôi sẽ đề cập đến cách triển khai các hợp đồng thông minh đến testnet bằng cách sử dụng một quy trình tương tự như quy trình được đề cập trong bài đăng này.

>> Xem thêm: Mạng ngang hàng P2P (Peer to Peer) là gì? Ưu và nhược điểm của mạng P2P