Hướng dẫn cách đọc thông tin cơ bản của Smart Contract

Smart Contract là sản phẩm của Nick Szabo khi anh nảy ra ý tưởng ghi lại các hợp đồng dưới dạng code. Nó giúp loại bỏ yêu cầu cần có bên trung gian uy tín.

88Total views
Huong dan cach doc thong tin co ban cua Smart Contract - anh 1
Hướng dẫn cách đọc thông tin cơ bản của Smart Contract

Tổng quan

Trong bài viết mà Coinvn cung cấp dưới đây, chúng ta sẽ cùng tìm hiểu về cách đọc cơ bản Smart Contract. Đây là hướng dẫn chủ yếu dành cho những người đam mê và muốn học cách hiểu thế giới tiền mã hóa nhưng chưa có kiến ​​thức sâu về giao thức, cơ chế bên trong của blockchain.

Huong dan cach doc thong tin co ban cua Smart Contract - anh 2

Những khái niệm DeFi cơ bản

Smart Contract là gì?

Smart Contract (hợp đồng thông minh) là một đoạn mã code được thực thi trên các nút blockchain, kết quả sẽ được lưu trữ trong blockchain của một kho lưu trữ đặc biệt – dữ liệu liên tục. Mã hợp đồng thông minh sau khi được tải lên blockchain, sẽ được khóa thêm để ngăn chặn các thay đổi ngẫu nhiên hoặc cố ý nào có tác động xấu đối với đoạn mã đó.

Huong dan cach doc thong tin co ban cua Smart Contract - anh 3

Các chức năng của hợp đồng thông minh có thể bắt nguồn từ ví của người dùng hoặc từ một hợp đồng khác và chia thành hai nhóm lớn:

  • Không thay đổi dữ liệu liên tục (chỉ đọc từ blockchain).
  • Thay đổi dữ liệu tồn tại.

Nhóm chức năng đầu tiên không tốn phí gas hoặc tiền và không đi xa hơn nút gần nhất (balanceOf, totalSupply và allowance). Trong các trình khám phá, các chức năng này nằm trong tab “READ”.

Nhóm chức năng thứ hai sẽ biến thành một giao dịch chính thức, được khai thác, bao gồm trong khối và kết quả của nó được ghi vào blockchain (approve, transfer và transferFrom). Trong các trình khám phá, các chức năng này nằm trong tab “WRITE”.

State blockchain

Huong dan cach doc thong tin co ban cua Smart Contract - anh 4

Ethereum và các blockchain dựa trên Ethereum như Polygon, Binance Smart Chain… sẽ được gọi là các state blockchain. Mỗi địa chỉ lưu trữ trong blockchain có giá trị số dư là đồng tiền gốc của blockchain như ETH, BNB, MATIC… 

Mỗi hợp đồng thông minh sẽ được lưu trữ trong blockchain với giá trị các biến liên tục của nó. Trạng thái hiện tại của blockchain được mô tả bằng sự cân bằng của tất cả các địa chỉ hiện có trong mạng lưới, cùng các giá trị hiện tại của các biến bền vững trong tất cả các hợp đồng thông minh thuộc blockchain.

Tài khoản

Cụm từ hạt giống (gồm 12 từ) mà bạn viết ra trong lần đầu tiên tạo ví, sẽ được biến thành khóa cá nhân bằng cách sử dụng giao thức BIP39, chuyển thành khóa công khai bằng cách sử dụng ECDSA (Thuật toán chữ ký số đường cong Elliptic).

Huong dan cach doc thong tin co ban cua Smart Contract - anh 5

Bạn sẽ luôn nhận được cùng một địa chỉ với số dư của mình từ cùng một cụm từ hạt giống. Để chuyển tài khoản của bạn sang ví khác như MetaMask, Trust, SafePal, Coin98…, bạn chỉ cần khôi phục tài khoản của mình trên ví mới bằng cách sử dụng cụm từ hạt giống đã lưu. Hãy giữ cụm từ này cẩn thận, tốt nhất là lưu trữ ngoại tuyến vì nó cấp quyền truy cập đầy đủ vào tài khoản của bạn.

Các token

Đối với mỗi tài khoản (địa chỉ), blockchain chỉ lưu trữ số dư của địa chỉ đó trong đồng tiền blockchain gốc. Mỗi token đã mua sẽ được lưu trữ trong hợp đồng thông minh của token đó.

Trên BscScan, bảng số dư sẽ được hiển thị trên tab “HOLDERS”. Token phải được thêm vào ví của bạn để số dư xuất hiện. Sau khi thêm, ví sẽ truy vấn hợp đồng thông minh của token cho số dư hiện tại trong tài khoản của bạn và hiển thị nó trong giao diện.

Một địa chỉ – nhiều chuỗi

Ethereum là blockchain đầu tiên được xây dựng dựa trên hệ tư tưởng của các hợp đồng thông minh. Nó đã sinh ra nhiều bản sao, chỉ khác nhau về thuật toán đồng thuận và phí gas khi giao dịch. Đó là lý do tại sao bạn có thể sử dụng cùng một địa chỉ cho các blockchain Binance Smart Chain, Ethereum và Polygon.

Huong dan cach doc thong tin co ban cua Smart Contract - anh 6

Ví dụ, hãy tưởng tượng bạn đang đứng trên ga tàu với chiếc vé “0x… bc19”. Có rất nhiều nền tảng xung quanh bạn được đặt tên là Ethereum, Binance Smart Chain, Polygon… Gần chúng là các tuyến đường sắt và xe lửa khác nhau. Vé của bạn luôn là một vị trí ngồi trong bất kỳ toa xe nào trên bất kỳ sân ga nào.

Giao diện ERC-20 và phân tích các chức năng của hợp đồng thông minh

Interface là gì?

Interface hay giao diện là một mô tả về các tác động bên ngoài lên một số đối tượng và phản ứng của đối tượng đối với tác động này.

Ví dụ như việc lái xe ô tô, giao diện là một tập hợp các điều khiển như vô lăng, bàn đạp, hộp số… và phản ứng của ô tô đối với việc sử dụng các điều khiển này.

Giao diện ERC-20 (ERC-20 interface)

Ở thời điểm hiện tại, nhiều token đã và đang được tạo ra mỗi ngày. Chúng ta có thể tương tác với bất kỳ token nào theo cùng một cách như gửi, hoán đổi, phê duyệt… Vậy làm thế nào để sự hợp nhất này xảy ra?

Huong dan cach doc thong tin co ban cua Smart Contract - anh 7

Token phải “triển khai” giao diện ERC-20. Việc triển khai có nghĩa là hợp đồng thông minh phải chứa một tập hợp các chức năng và thông số được xác định với phản ứng rõ ràng đối với từng chức năng này.

Giao diện của tiêu chuẩn ERC-20

Các lệnh function

  • totalSupply()
  • balanceOf(account)
  • transfer(recipient, amount)
  • transferFrom(sender, recipient, amount)
  • allowance(owner, spender)
  • approve(spender, amount)

Mỗi lệnh gọi hàm có thêm hai tham số:

  • msg.sender: Địa chỉ mà từ đó giao dịch đến (người đã gọi hàm).
  • msg.value: Số lượng token (ETH) được gửi cùng với giao dịch.
Huong dan cach doc thong tin co ban cua Smart Contract - anh 8

Các lệnh event

  • Transfer(from, to, value)
  • Approval(owner, spender, value)

Lệnh event là một cách để chuyển thông tin từ hợp đồng thông minh ra bên ngoài, đến chương trình Web 3.0 được gọi là hợp đồng. Nó như một hộp kiểm nhằm thông báo rằng hoạt động như vậy đã được thực hiện.

Mô tả các lệnh function của ERC-20

Hãy chia 6 lệnh function trong mô tả ở phần 1 thành hai nhóm:

Các lệnh READ function (chỉ đọc trên blockchain):

  • totalSupply(): Hiển thị tổng số phát hành của token.
  • balanceOf(account): Hiển thị số dư của tài khoản.
  • allowance(owner, spender): Hiển thị tổng số tiền chủ sở hữu token cho phép người chi tiêu ghi nợ.

Các các lệnh WRITE function (thay đổi blockchain):

  • transfer(recipient, amount): Chuyển số lượng token từ msg.sender đến người nhận.
  • transferFrom(sender, recipient, amount): Chuyển số lượng token từ người gửi sang người nhận.
  • approve(spender, amount): Cho phép người chi tiêu ghi nợ số token từ số dư trên msg.sender.

Tổng kết

Trong bài viết trên, chúng ta đã cùng tìm hiểu những thông tin cơ bản của Smart Contract. Hy vọng những chia sẻ của Coinvn sẽ giúp bạn có thể hiểu rõ thông tin có trong một hợp đồng thông minh. Tuy nhiên, để có thể thành thạo hơn trong việc đọc một Smart Contract, bạn nên dành nhiều thời gian hơn để tự mình nghiên cứu các hợp đồng thông minh cơ bản. Chúc các bạn thành công.