
PYCARDANO COURSE HANDOUT
Module 1: Overview & Fundamentals
Video 07: Basic Concepts in Blockchain (Part 2)
Chủ đề: Data Structures & The UTxO Model
- MÔ HÌNH UTxO (UNSPENT TRANSACTION OUTPUT)
Đây là khái niệm quan trọng nhất để lập trình giao dịch thành công.
So sánh tư duy
- Account Model (Ethereum/Bank): Cập nhật số dư (Balance Update). Giống bảng Excel.
- UTxO Model (Cardano/Cash): Tiêu hủy đầu vào 🡪Tạo đầu ra mới. Giống tiêu tiền mặt.
Cơ chế hoạt động
Mỗi UTxO là một “cục tiền” nguyên khối.
- Input: Là UTxO chưa tiêu. Khi dùng làm Input, nó bị tiêu hủy hoàn toàn.
- Output: Là UTxO mới được tạo ra.
Quy tắc cân bằng:
Input_Total = Output_Total + Fee
Change Address (Địa chỉ tiền thối)
Nếu Input (500 ADA) lớn hơn số tiền cần chuyển (10 ADA), bạn BẮT BUỘC phải tạo một Output trả lại (490 ADA – Fee) cho chính mình.
- Cảnh báo: Nếu quên tạo Change Output, toàn bộ số tiền thừa sẽ bị mất (xem như phí giao dịch).
- TRANSACTION & BLOCKS (GIAO DỊCH & KHỐI)
Cấu tạo Giao dịch (Transaction Anatomy)
Một giao dịch hợp lệ bao gồm:
- Inputs: Danh sách tham chiếu UTxO (TxHash + Index).
- Outputs: Danh sách người nhận (Address + Value).
- Fee: Phí mạng lưới (tính theo Byte).
- TTL (Time-to-Live): Thời hạn hiệu lực của giao dịch.
- Witnesses: Chữ ký số (Signatures) từ ví người gửi.
Khối (Blocks)
- Block Header (Phần đầu):
- Chứa Metadata: Slot number, Block Height.
- PrevHash: Mã băm của khối trước (Tạo nên dây xích Blockchain).
- Ứng dụng: Các ví Light Wallet (như Nami, Yoroi) chỉ tải Header để đồng bộ cho nhanh.
- Block Body (Phần thân):
- Chứa danh sách các Giao dịch (Transactions).
- Đây là nơi code Python của bạn gửi dữ liệu vào.
Constraints (Giới hạn):
- Kích thước tối đa: ~90KB / Block.
- Dev Note: Phải tối ưu kích thước giao dịch (Tx Size) để không bị mạng lưới từ chối.
- WALLETS & ADDRESSES (VÍ & ĐỊA CHỈ)
Trong Cardano, ví (wallet) không chứa tiền.
Điều mà wallet thực sự chứa là:
(1) Private keys
- Khoá bí mật để ký giao dịch
- Không bao giờ rời khỏi thiết bị người dùng
- Ai có private key → sở hữu tài sản
(2) Public keys
- Được dùng để sinh ra địa chỉ (address)
- Có thể công khai mà không ảnh hưởng đến bảo mật
(3) Metadata của tài khoản
- Danh sách UTxO đang thuộc ví
- Lịch sử giao dịch
- Network (mainnet/testnet)
- Seed phrase (24 từ) → sinh ra toàn bộ ví
➡️ Wallet chỉ là bộ sinh khoá + trình quản lý UTxO, không phải “ngân hàng” giữ tiền.
Ví phân cấp xác định (HD Wallet)
- Sử dụng chuẩn BIP-39.
- Từ 1 chuỗi Seed Phrase (24 từ khóa), có thể tạo ra cây thư mục chứa vô số cặp khóa Private/Public.
Cấu trúc Địa chỉ (addr1…)
Địa chỉ Cardano bao gồm 2 phần ghép lại:
- Payment Credential (Payment Part):
- Là Hash của Public Key.
- Quyết định ai có quyền tiêu tiền.
- Staking Credential (Staking Part):
- Là Hash của Stake Key.
- Quyết định quyền ủy thác (Delegation) và nhận thưởng.
- Lợi ích: Tách biệt quyền tiêu tiền và quyền Staking (Liquid Staking).
