SATS.VN – Bitcoin Layer 2 & Tokenization Research ₿ Về trang chủ SATS.VN
Runes · Token Protocol · OP_RETURN · UTXO-Native · Bitcoin

RUNES PROTOCOL
LÀ GÌ?

Token UTXO-Native Trên Bitcoin – Thiết Kế Lại Hoàn Toàn Sau BRC-20
₿ SATS.VN – Knowledge Base ₿ Chủ đề: Runes & Token Protocol ₿ Nội dung: Kỹ thuật – Trung lập

Tóm tắt

Runes Protocol (Casey Rodarmor, ra mắt tại Bitcoin halving tháng 4/2024) là token standard fungible được thiết kế lại hoàn toàn trên Bitcoin, khắc phục những điểm yếu kỹ thuật của BRC-20. Thay vì dùng Ordinals inscription và off-chain indexer state, Runes encode toàn bộ token operation trực tiếp trong OP_RETURN output — gọn hơn, UTXO-native hơn và ít gây bloat hơn. Tuy nhiên, Runes vẫn không có on-chain smart contract — Bitcoin không execute Rune logic, chỉ lưu data.

1Runes Protocol Là Gì?

Runes là một token protocol fungible (token có thể hoán đổi lẫn nhau, tương tự ERC-20 trên Ethereum) được xây dựng trực tiếp trên Bitcoin mainchain. Khác với BRC-20 dùng inscription JSON để track token state, Runes encode tất cả thông tin vào OP_RETURN output của Bitcoin transaction.

Protocol ra mắt tại block halving Bitcoin thứ tư (block 840.000, tháng 4/2024) do Casey Rodarmor — cùng người tạo ra Ordinals Protocol — phát triển. Rodarmor tạo Runes với mục tiêu rõ ràng: đưa ra một token standard phù hợp hơn với thiết kế UTXO của Bitcoin, thay vì cố "hack" Ordinals để làm điều đó.

Fungible vs Non-fungible: Rune token là fungible — 1.000 đơn vị Rune X của bạn hoàn toàn giống và có thể hoán đổi với 1.000 đơn vị Rune X của người khác. Đây khác với Ordinals inscription (non-fungible — mỗi inscription là duy nhất). Runes = "ERC-20 của Bitcoin", Ordinals = "ERC-721 của Bitcoin" — nhưng cả hai đều không có smart contract.

2Tại Sao Runes Ra Đời? Vấn Đề Của BRC-20

BRC-20 — token standard đầu tiên trên Bitcoin dùng Ordinals inscription — có nhiều vấn đề kỹ thuật nghiêm trọng mà Rodarmor muốn giải quyết triệt để:

  • UTXO bloat: Mỗi BRC-20 token operation tạo ra Ordinals inscription, nghĩa là tạo thêm UTXO. UTXO set của Bitcoin full node ngày càng phình to, ảnh hưởng đến performance và storage của toàn mạng
  • Off-chain indexer state: BRC-20 state (ai đang giữ bao nhiêu token) không thể tính trực tiếp từ Bitcoin data — phải phụ thuộc vào indexer riêng maintain state database. Hai indexer có thể cho kết quả khác nhau
  • Không thực sự fungible: BRC-20 token gắn với inscription UTXO cụ thể — về mặt kỹ thuật gần với non-fungible hơn là fungible
  • Phức tạp không cần thiết: Dùng cả inscription (cho NFT) để làm token fungible là lãng phí và không hiệu quả

Runes giải quyết tất cả những điểm này bằng cách xây dựng từ đầu với thiết kế UTXO-native.

3Runestone – Trái Tim Của Runes Protocol

Mỗi Rune transaction chứa một Runestone — một OP_RETURN output encode toàn bộ thông tin về token operation. OP_RETURN là loại output provably unspendable (không thể chi tiêu) trong Bitcoin — data trong đó được Bitcoin node lưu trữ nhưng không cần giữ trong UTXO set sau khi xác nhận.

# Cấu trúc Runestone trong OP_RETURN ## Transaction outputs: Output 0: OP_RETURN <runestone_data> # Runestone — provably unspendable Output 1: P2TR address (receiver A) # Nhận X Rune Output 2: P2TR address (change) # Phần Rune còn lại ## Runestone encode Edicts (phân bổ Rune): Edicts = [ (rune_id, amount, output_index), # Gửi amount Rune đến Output 1 (rune_id, amount, output_index), # Gửi amount Rune đến Output 2 ] ## rune_id = (block_height:tx_index) — globally unique ## Không cần registry hay naming service riêng ## Unallocated Rune tự động về default output (output cuối)

Điểm quan trọng: tất cả thông tin cần thiết để reconstruct Rune state đều nằm trong Bitcoin transactions. Bất kỳ ai download toàn bộ Bitcoin block history đều có thể tự xây dựng Rune state từ đầu — không phụ thuộc indexer nào cụ thể. Đây là cải tiến căn bản so với BRC-20.

OP_RETURN và UTXO Set: Bitcoin full node có thể prune (loại bỏ) OP_RETURN output ra khỏi UTXO set vì chúng không thể chi tiêu. Điều này giúp tiết kiệm RAM và storage đáng kể so với BRC-20 inscription phải tồn tại trong UTXO set mãi mãi. Tuy nhiên raw block data vẫn cần để reconstruct Rune state từ đầu.

4Etching – Tạo Một Rune Mới

Quá trình tạo Rune mới gọi là etching. Người tạo (etcher) định nghĩa toàn bộ thông số của Rune trong một Runestone đặc biệt:

# Etching — tạo Rune mới Etching = { rune: "UNCOMMON•GOODS", # Tên Rune (uppercase + bullet separator) divisibility: 8, # Số decimal (tối đa 38) symbol: "⧉", # Ký tự Unicode hiển thị spacers: 0b10000000, # Vị trí dấu chấm trong tên premine: 1_000_000, # Số Rune mint ngay cho etcher terms: { amount: 1_000, # Số Rune mỗi lần open mint cap: 21_000, # Tổng số lần mint được phép height: (840_000, 860_000), # Block range cho phép mint offset: (null, null) # Offset từ etching block (tùy chọn) } } # Supply tối đa = premine + (amount × cap) = 1,000,000 + 21,000,000 = 22,000,000 # Sau block 860,000, không ai mint thêm được — supply cố định

Tên Rune phải là chuỗi chữ hoa Latin (A–Z) có thể chứa dấu bullet () làm separator. Tên ngắn hơn bị khóa cho đến một số block nhất định — khuyến khích dùng tên dài hơn khi mới launch, tên ngắn dần mở khóa theo thời gian.

5Minting Và Transfer Rune

Open Minting

Nếu etcher định nghĩa terms, bất kỳ ai cũng có thể mint Rune trong khoảng block được phép bằng cách tạo transaction chứa Runestone với mint field trỏ đến rune_id. Số Rune nhận được là amount cố định trong terms. Khi cap đã đạt hoặc block range kết thúc, không ai mint thêm được.

Transfer

Transfer Rune hoàn toàn UTXO-native: Runestone chứa danh sách Edicts chỉ định bao nhiêu Rune từ input được gửi đến output nào. Rune chưa được phân bổ tự động về default output (output cuối không phải OP_RETURN). Nếu không có Runestone, toàn bộ Rune về output đầu tiên.

Cenotaph — transaction không hợp lệ: Nếu Runestone chứa field không hợp lệ hoặc không thể parse, nó trở thành Cenotaph — toàn bộ Rune trong transaction đó bị burn. Cơ chế này tương tự "fail loudly" trong software design: lỗi dẫn đến mất token thay vì âm thầm tạo ra state không nhất quán.

6So Sánh Kỹ Thuật: Runes vs BRC-20

Tiêu chíBRC-20RunesWinner
Data storageWitness (Ordinals inscription)OP_RETURNRunes (prunable)
UTXO bloatCao – mỗi op = 1 UTXOThấp – OP_RETURN không vào UTXO setRunes
State modelOff-chain indexerDeterministic từ Bitcoin blocksRunes
Indexer dependencyCao – state không từ L1Thấp hơn – state tính được từ blocksRunes
FungibilityQuasi-NFT (gắn inscription)True fungible (UTXO-native)Runes
Phí giao dịchCao hơn (witness data lớn)Thấp hơn (OP_RETURN nhỏ gọn)Runes
Smart contractKhôngKhôngHòa
Adoption / EcosystemLớn hơn (ra trước)Đang tăng trưởngBRC-20 hiện tại
Protocol maturityExperimental, nhiều biến thểSpec rõ ràng hơnRunes

Về mặt kỹ thuật thuần túy, Runes được thiết kế tốt hơn đáng kể so với BRC-20. Tuy nhiên, BRC-20 có lợi thế first-mover với ecosystem token, marketplace và user base lớn hơn. Cả hai đều không có on-chain smart contract — Bitcoin không execute logic token nào cả.

Để đọc phân tích đầy đủ hơn về cả Runes và BRC-20 trong bức tranh tổng thể Bitcoin tokenization, xem tại SATS.VN.

7Giới Hạn Còn Lại Của Runes

Runes cải thiện đáng kể về kỹ thuật so với BRC-20, nhưng vẫn không thể vượt qua một giới hạn căn bản của Bitcoin:

  • Không có on-chain execution: Bitcoin không chạy Rune logic — chỉ lưu data. Mọi validation (kiểm tra balance, enforce transfer rules) đều xảy ra off-chain trong ví và indexer
  • Không có conditional transfer: Không thể lập trình "chỉ chuyển Rune khi điều kiện X xảy ra" — không có escrow, no oracle, no DeFi native
  • Không có atomic swap native: Swap Rune với BTC hoặc Rune khác cần trust hoặc external protocol — không thể trustless trực tiếp trên Bitcoin Script hiện tại
  • Pruned node không tự build state: Node pruned (không lưu full block history) không thể tự reconstruct Rune state — phải trust full node khác cung cấp data
Runes là improvement về UTXO hygiene — không phải smart contract platform. Đây là token protocol phù hợp nhất với Bitcoin hiện tại: đơn giản, gọn nhẹ, UTXO-native. Nhưng mong đợi DeFi hay programmability phức tạp từ Runes là nhầm lẫn về design intent.

?Câu Hỏi Thường Gặp Về Runes

Runes có an toàn hơn BRC-20 không?
Về mặt kỹ thuật, Runes ít phụ thuộc vào indexer consensus hơn BRC-20 — state deterministic hơn từ Bitcoin data. Tuy nhiên, cả hai đều không được Bitcoin protocol enforce. Rủi ro investment (giá token, liquidity) là như nhau và không liên quan đến kiến trúc kỹ thuật.
Etching Rune có tốn phí không?
Có — etching là một Bitcoin transaction on-chain, phải trả phí mạng bình thường. Ngoài ra, một số Rune tên ngắn bị khóa cho đến block nhất định — etching trước thời điểm mở khóa sẽ thất bại. Chi phí thực tế phụ thuộc vào phí mạng Bitcoin tại thời điểm etching.
Runes khác Ordinals như thế nào?
Ordinals/Inscription là non-fungible — mỗi inscription là duy nhất, gắn vào satoshi cụ thể, dùng Taproot witness để lưu data. Runes là fungible — token có thể hoán đổi lẫn nhau, dùng OP_RETURN để encode, không gắn vào satoshi cụ thể. Cùng do Casey Rodarmor tạo ra nhưng cho mục đích khác nhau hoàn toàn.
Ví nào hỗ trợ Runes?
Các ví phổ biến hỗ trợ Runes: Xverse, Unisat, Leather (Hiro), OKX Wallet. Cần ví hỗ trợ Taproot (P2TR address) và có tính năng coin control để tránh accidental burn Rune khi trả phí giao dịch.
Muốn Hiểu Toàn Diện Bitcoin Tokenization?

Runes là một phần của hệ sinh thái token trên Bitcoin. SATS.VN phân tích kỹ thuật đầy đủ Runes, BRC-20, Ordinals, Taproot Assets và tokenization tài sản thực — trung lập, chuyên sâu.

→ Đọc Phân Tích Tổng Thể Tại SATS.VN