Nguồn ban đầu: Spectrumlab.io
Tác giả: Ash Li, Noah Ho
Với sự ra đời của giao thức Ordinals, nó cung cấp cho Bitcoin các chức năng đánh số và khắc chữ, do đó mở rộng phạm vi sản phẩm của hệ sinh thái Bitcoin và mang lại sức sống mới cho hệ sinh thái Bitcoin. Trong bài viết này, chúng ta sẽ đi sâu vào chi tiết của giao thức Thông thường, bao gồm cách mỗi Bitcoin được đánh số và theo dõi cũng như mối quan hệ giữa khắc chữ và số. Nhưng trước khi đi sâu vào chủ đề này, trước tiên chúng ta cần hiểu một số nền tảng cơ bản Bitcoin để giúp chúng ta hiểu rõ hơn về những điều tiếp theo.
Sau khi đọc bài viết này, bạn sẽ nắm được cơ chế giao dịch và mô hình thanh toán của Bitcoin, cách các Thứ tự được đánh số và theo dõi cho mỗi satoshi cũng như cách khắc chữ được tạo và giao dịch. Ngoài ra, bạn sẽ tìm hiểu về sự khác biệt giữa các loại ví khác nhau.
1. Nền tảng Bitcoin
Bitcoin áp dụng mô hình giao dịch giống như tiền mặt (hệ thống tiền mặt) và phương thức thanh toán của nó dựa trên mô hình có tên UTXO, khác với mô hình dựa trên số dư tài khoản truyền thống. Ví dụ: Trong quy trình mô hình sổ sách kế toán của ngân hàng, khi A chuyển 100 nhân dân tệ cho B, ngân hàng sẽ ghi lại ba bước, tạo thành một quy trình giao dịch. Bước đầu tiên là khấu trừ 100 nhân dân tệ từ tài khoản của A và ID bản ghi của bước này là tid1. Bước thứ hai là gửi 100 nhân dân tệ vào tài khoản của B và ID bản ghi của bước này là tid2. Bước thứ ba là ghi lại một bản ghi chuyển khoản, liên kết tid1 và tid2, cho biết tài khoản A bị giảm 100 nhân dân tệ và tài khoản B được tăng thêm 100 nhân dân tệ. Theo cách này, mối quan hệ chuyển giao giữa A và B được ghi lại và có thể được truy vấn và theo dõi trong tương lai. Bây giờ, chúng tôi sẽ giải thích phương thức thanh toán của Bitcoin thông qua việc giới thiệu UTXO và mô hình thanh toán.
UTXO
Trong chuỗi khối Bitcoin , tất cả số dư được lưu trữ trong một danh sách có tên là "Đầu ra giao dịch chưa sử dụng" (UTXO). Mỗi UTXO chứa một số lượng Bitcoin nhất định, cũng như thông tin chủ sở hữu của Bitcoin này và cho biết liệu chúng có sẵn hay không. Hãy coi nó giống như một tấm séc thu ngân có tên của người nắm giữ trên đó, chỉ cần người nắm giữ ký tên, quyền sử dụng nó có thể được chuyển giao cho người khác. Đối với một địa chỉ cụ thể, tổng của tất cả số tiền UTXO là số dư của ví địa chỉ. Bằng cách lặp lại tất cả các UTXO, chúng tôi có thể nhận được số dư hiện tại của từng địa chỉ. Tổng của tất cả số lượng UTXO là tất cả Bitcoin hiện đang lưu hành .
Trong cấu trúc giao dịch của Bitcoin, mỗi giao dịch bao gồm một số đầu vào và đầu ra, trong đó mỗi đầu vào là một tham chiếu đến một UTXO hiện có và mỗi đầu ra chỉ định một địa chỉ nhận tiền mới và số tiền tương ứng. Khi một giao dịch được bắt đầu, UTXO được tham chiếu bởi đầu vào của nó sẽ tạm thời bị khóa để ngăn việc sử dụng lại cho đến khi giao dịch hoàn tất. Chỉ khi giao dịch được đóng gói thành công thành một khối bởi những người khai thác và được xác nhận bởi mạng, trạng thái UTXO có liên quan sẽ thay đổi. Cụ thể, UTXO được sử dụng cho đầu vào giao dịch sẽ bị xóa khỏi danh sách UTXO, cho biết rằng chúng đã được sử dụng, trong khi đầu ra giao dịch sẽ tạo UTXO mới và được thêm vào danh sách UTXO. Có thể hiểu rằng séc tiền mặt cũ trở nên vô hiệu sau khi được sử dụng và séc tiền mặt mới được tạo ra, quyền sở hữu thuộc về chủ sở hữu mới.
Điều đáng nhấn mạnh là mỗi UTXO chỉ có thể được sử dụng một lần trong một giao dịch. Khi nó được sử dụng làm đầu vào, nó sẽ bị xóa vĩnh viễn khỏi danh sách UTXO. Đồng thời, đầu ra mới được tạo sẽ được thêm vào danh sách dưới dạng UTXO mới. Danh sách UTXO luôn thay đổi và khi mỗi khối mới được tạo, nó sẽ được cập nhật tương ứng. Và, bằng cách phân tích lịch sử giao dịch trong chuỗi khối, chúng tôi có thể xây dựng lại trạng thái của danh sách UTXO tại bất kỳ thời điểm nào.
Ngoài ra, tổng số tiền đầu vào của một giao dịch thường sẽ hơi vượt quá tổng số tiền đầu ra của nó. Sự khác biệt này, được gọi là phí giao dịch (Phí giao dịch) hoặc phí mạng (Phí mạng), được đưa ra như một động cơ khuyến khích cho những người khai thác chịu trách nhiệm đóng gói các giao dịch thành các khối. Quy mô của phí mạng tỷ lệ thuận với mức độ phức tạp của giao dịch, do đó, một giao dịch có nhiều đầu vào và đầu ra hơn thường sẽ phải chịu phí mạng cao hơn.
Bây giờ, để hiểu rõ hơn về cấu trúc giao dịch của Bitcoin, chúng tôi sẽ tiến hành phân tích chuyên sâu thông qua một ví dụ cụ thể. Cấu trúc giao dịch của Bitcoin như sau, trong đó hai biến vin và vout tương ứng đại diện cho "đầu vào" và "đầu ra" của giao dịch Bitcoin. Các giao dịch Bitcoin không ghi lại các thay đổi dữ liệu theo hình dạng tài khoản như mô hình số dư tài khoản truyền thống, nhưng được thể hiện bằng đầu vào và đầu ra.

Nguồn: https://github.com/bitcoin/bitcoin/blob/v22.0/src/primitives/transaction.h#L270
Chúng ta có thể chọn ngẫu nhiên một bản ghi giao dịch trên blockchain.com để phân tích. Nó chứa một đầu vào và hai đầu ra.

Bằng cách sử dụng các lệnh getrawtransaction và decoderawtransaction của bitcoin-cli, chúng ta có thể xem cấu trúc cơ bản của giao dịch trên:

Trong mạng Bitcoin, đầu ra giao dịch chứa hai thông tin quan trọng: địa chỉ (hàm băm của khóa công khai) và số tiền (tính bằng Bitcoin). Nếu đầu ra của một giao dịch không được sử dụng làm đầu vào của các giao dịch khác, thì đầu ra của giao dịch này được gọi là đầu ra giao dịch chưa chi tiêu (UTXO). Bất kỳ ai sở hữu khóa riêng tư tương ứng với khóa chung trong UTXO đều có quyền sử dụng (nghĩa là chi tiêu) UTXO này.
Hãy quan sát thông tin trong "vin" trong đoạn mã trên, điều đó có nghĩa là UTXO được sử dụng bởi sàn giao dịch này đến từ đầu ra thứ 0 của một giao dịch khác (id của nó là 7957a...f6f18) (có thể có bao nhiêu đầu ra của một giao dịch, chỉ mục bắt đầu từ 0), chúng tôi có thể tìm ra số lượng UTXO này (ví dụ: 0,1) từ giao dịch lịch sử, vì vậy người dùng đã chi 0,1 BTC trong giao dịch này và giá trị 0,1 không cần phải được ghi rõ ràng trong Thay vào đó, nó có được bằng cách tra cứu thông tin UTXO. "Vout" của giao dịch này có hai đầu ra, đó là hai UTXO mới, tương ứng với số dư mới và chủ sở hữu, cho đến khi một giao dịch khác sử dụng chúng làm đầu vào.
mô hình thanh toán
Để hiểu rõ hơn về mô hình thanh toán của mạng Bitcoin, chúng tôi sử dụng một ví dụ để giới thiệu quy trình thanh toán Bitcoin được trả bởi A cho B với số lượng n. Hình dưới đây cho thấy quá trình người dùng A gửi 3 Bitcoin cho người dùng B.

1. Đối với người dùng A, trước tiên cần xác định tất cả các bộ UTXO mà họ sở hữu, tức là tất cả Bitcoin mà người dùng A có thể kiểm soát;
2. A chọn một hoặc nhiều UTXO từ bộ này làm đầu vào của giao dịch. Tổng của các đầu vào này là m (2+0,8+0,5=3,3 BTC) lớn hơn số tiền phải trả n (3 BTC);
3. Người dùng A đặt hai đầu ra cho giao dịch, một đầu ra được thanh toán cho địa chỉ của B, số tiền là n(3 BTC) và đầu ra còn lại được thanh toán cho địa chỉ thay đổi của chính A, số tiền là mn-fee( 3,3-3 - 0,001=0,299 BTC). Ví của người dùng thường bao gồm nhiều địa chỉ, thông thường mỗi địa chỉ chỉ được sử dụng một lần và thay đổi sẽ được trả về địa chỉ mới theo mặc định;
4. Sau khi thợ mỏ đóng gói giao dịch trên Chuỗi để xác nhận, B có thể nhận được thông tin giao dịch. Do kích thước của khối có giới hạn trên (khoảng 1 MB), nên những người khai thác sẽ ưu tiên xác nhận các giao dịch có tỷ lệ phí giao dịch cao (fee_rate=fee/size ) để thu được mức phí cao nhất. Chúng ta có thể thấy phí giao dịch khai thác theo thời gian thực trong mempool. Nếu muốn xác nhận nhanh nhất trong quá trình chuyển tiền, chúng ta có thể chọn Mức độ ưu tiên cao hoặc tùy chỉnh tỷ lệ giao dịch phù hợp.

2. Đánh số và theo dõi Satoshi
Tổng số Bitcoin là 21 triệu và mỗi Bitcoin chứa 10^8 satoshi (Satoshi, Sat). Do đó, có tổng cộng 21 triệu*10^8 Satoshi trên mạng Bitcoin. Giao thức Ordinals phân biệt các satoshi này và đánh số duy nhất cho mỗi satoshi. Phần này sẽ giới thiệu cách giao thức này đánh số duy nhất cho từng Satoshi và theo dõi tài khoản của nó. Ngoài ra, phân loại độ hiếm cho Satoshi sẽ được giới thiệu.
số satoshi
Theo giao thức Ordinals, satoshi được đánh số theo thứ tự mà chúng được khai thác. Sơ đồ bên dưới cho thấy cách thể hiện satoshi thứ 0 được khai thác trong khối thứ 0.

Có nhiều cách để thể hiện Satoshi:
- Ký hiệu số nguyên: Ví dụ: 2099994106992659, đại diện cho số sê-ri được chỉ định bởi Satoshi theo thứ tự khai thác.
- Ký hiệu thập phân: Ví dụ: 3891094.16797, số đầu tiên cho biết Block Height nơi Satoshi được khai thác và số thứ hai cho biết số lượng Satoshi trong khối.
- Ký hiệu độ: Ví dụ: 3°111094′214″16797‴, số đầu tiên là chu kỳ, được đánh số từ 0, số thứ hai là chỉ số khối của kỷ nguyên giảm một nửa và số thứ ba là chỉ số khối trong quá trình điều chỉnh độ khó period , số cuối cùng là chỉ số của sat trong khối.
- Biểu tượng phần trăm: Ví dụ: 99,99971949060254%, cho biết vị trí của Satoshi này trong nguồn cung Bitcoin, được biểu thị bằng phần trăm.
- Tên: ví dụ Satoshi. Tên mã hóa số thứ tự bằng cách sử dụng các ký tự từ a đến z.
Chúng tôi sẽ sử dụng một ví dụ để giải thích cách đánh số Bitcoin mới khai thác. Nhìn vào khối 795952 của chuỗi khối Bitcoin , chúng ta có thể thấy rằng giao dịch đầu tiên Tx 3a1f...b177 ghi lại phần thưởng của người khai thác (giao dịch Coinbase). Giao dịch này bao gồm Bitcoin mới được khai thác, Bitcoin sử dụng làm phần thưởng đóng gói cho người khai thác và phí giao dịch do người khởi tạo giao dịch trả cho người khai thác. Bằng cách nhìn vào đầu vào trong hình bên dưới, chúng ta có thể thấy rằng id của UTXO của nó bao gồm một chuỗi 0 và Block Height. Địa chỉ đầu ra là địa chỉ ví của người khai thác và số tiền là tổng của phần thưởng và phí xử lý ở trên.

Nếu chúng ta nhìn xa hơn vào phần đầu ra cho những người khai thác, chúng ta có thể thấy sự phân phối địa chỉ, số lượng và satoshi liên quan. Như đã đề cập trước đó, chúng bao gồm phần thưởng và phí khai thác. Trong số đó, thông tin số sats màu xanh lá cây 1941220000000000–1941220625000000 là Satoshi mới được tạo bởi phần thưởng khai thác và 712 bản ghi Satoshi còn lại tương ứng với tất cả các khoản phí xử lý trong khối.

Chúng tôi có thể xác minh số Sat 1941220000000000. Số khối của nó là 795952 và ký hiệu thập phân (thập phân) là 795952.0, có nghĩa là Block Height để khai thác Satoshi này là 795952 và số lượng Satoshi trong khối này là 0 và đánh dấu hiếm đằng sau nó là không phổ biến. Sẽ được mô tả chi tiết trong phần sau.

lưu thông satoshi
Bởi vì mỗi BTC được tạo ra thông qua phần thưởng khai thác, nên tất cả chúng đều có thể theo dõi được. Tài khoản Bitcoin sử dụng mô hình UTXO. Giả sử rằng người dùng A nhận được satoshi thứ 100-110 thông qua khai thác(10 satoshi được lưu trữ tổng thể trong cùng một UTXO có id là adc123). Khi người dùng A muốn trả cho người dùng B 5 Satoshi, anh ta chọn sử dụng id abc123 làm đầu vào của giao dịch, 5 Satoshi được trao cho người dùng B và 5 Satoshi được trả lại cho người dùng A dưới dạng thay đổi. 5 satoshi này là một tổng thể, được lưu trữ trong hai UTXO có id lần lượt là abc456 và abc789. Id UTXO ở trên và số lượng Satoshi chỉ được hiển thị dưới dạng ví dụ. Trên thực tế, số lượng Satoshi gửi tối thiểu được giới hạn ở 546 và id UTXO không được thể hiện ở dạng này.

Trong giao dịch trên, đường lưu thông của 10 Satoshi của người dùng A là:
1. Khai thác tạo ra 10 Satoshi, được đánh số [100, 110). Điều đó có nghĩa là satoshi thứ 100 đến 109 được lưu trữ trong UTXO với id abc123 và chủ sở hữu của nó là người dùng A.
2. Khi A chuyển tiền, 10 Satoshi được chia thành hai phần, mỗi phần 5 Satoshi. Nguyên tắc "vào trước, ra trước" được áp dụng ở đây, nghĩa là thứ tự của các số Satoshi được xác định theo chỉ số của chúng trong đầu ra giao dịch. Giả sử rằng thứ tự đầu ra là người dùng A trước, sau đó đến người dùng B, sau đó số thứ tự của 5 Satoshi còn lại của người dùng A là [100, 105), được lưu trữ trong UTXO với id abc456, trong khi số thứ tự của 5 Satoshi của người dùng B là [105 , 110), được lưu trữ trong UTXO với id abc789.
Độ hiếm (Satoshi hiếm)
Là một dẫn xuất của giao thức Ordinals, độ hiếm của Satoshi có thể được xác định theo thứ tự mà chúng được khai thác. Điều này sẽ dẫn đến một số satoshi đặc biệt có độ hiếm khác nhau. Dưới đây là độ hiếm của các satoshi khác nhau:
- phổ biến: bất kỳ satoshi nào ngoại trừ satoshi đầu tiên của khối (tổng nguồn cung là 2100 nghìn tỷ)
- hàng hiếm: satoshi đầu tiên trên mỗi khối (6929999 tổng nguồn cung)
- hiếm: satoshi đầu tiên cho mỗi giai đoạn điều chỉnh độ khó (tổng cung 3437)
- sử thi: satoshi đầu tiên sau mỗi halving (tổng nguồn cung là 32)
- huyền thoại: satoshi đầu tiên trên mỗi chu kỳ (tổng nguồn cung là 5)
- thần thoại: satoshi đầu tiên của Khối Genesis(tổng nguồn cung là 1)
Khái niệm Satoshi hiếm này có thể tăng thêm niềm vui và giá trị cho hệ sinh thái Bitcoin. Satoshi có độ hiếm khác nhau có thể có giá trị khác nhau trên thị trường, thu hút các nhà sưu tập và nhà đầu tư.
Khắc chữ
Thứ tự khác biệt đáng kể so với NFT trên on-chain không phải Bitcoin khác. Trong số đó, sự khác biệt chính là dữ liệu của Ordinals không được lưu trữ ở một vị trí cụ thể. Thay vào đó, dữ liệu này được nhúng vào dữ liệu nhân chứng (trường nhân chứng) của giao dịch, đó là lý do tại sao chúng tôi gọi nó là "khắc chữ" vì dữ liệu này được "khắc" trên giao dịch Bitcoin và dữ liệu này được gắn với Satoshi cụ thể. Quá trình khắc chữ này được hiện thực hóa thông qua Nhân chứng tách biệt (Segregated Witness, SegWit) và “Pay-to-Taproot, P2TR”, bao gồm hai giai đoạn gửi (commit) và tiết lộ (reeal) bất kỳ dạng nội dung nào như văn bản, hình ảnh hoặc video được ghi trên Satoshi được chỉ định. Chúng tôi sẽ giới thiệu một phương pháp lưu trữ trực tiếp khác OP_RETURN bên dưới và giải thích lý do tại sao nó không được sử dụng làm phương tiện khắc chữ. Đồng thời, chúng tôi sẽ giới thiệu Segregated Witness và Pay-to-Taproot là gì và chúng đóng vai trò gì trong khắc chữ. Cuối cùng, chúng tôi sẽ giới thiệu cách khắc chữ.
OP_RETURE
Trong phiên bản 0.9 của ứng dụng khách Bitcoin Core, thỏa hiệp cuối cùng đã đạt được thông qua việc áp dụng toán tử RETURN. **RETURN cho phép nhà phát triển thêm 80 byte dữ liệu không thanh toán vào đầu ra giao dịch. **Không giống như các khoản thanh toán giả mạo, RETURN tạo ra một dữ liệu không tiêu hao có thể kiểm chứng rõ ràng mà không cần lưu trữ trong bộ UTXO. Các đầu ra RETURN được ghi lại trên chuỗi khối, chúng sẽ tiêu tốn dung lượng ổ đĩa và cũng sẽ tăng kích thước của chuỗi khối , nhưng chúng không được lưu trữ trong bộ UTXO, vì vậy chúng sẽ không mở rộng nhóm bộ nhớ UTXO và sẽ không tăng số lượng của các nút đầy đủ Chi phí bộ nhớ đắt tiền.
Mặc dù OP_RETURN là một phương tiện rất đơn giản để lưu trữ thông tin trên chuỗi khối Bitcoin , nhưng nó cũng là một phương tiện tiềm năng để khắc chữ. Nhưng những hạn chế của OP_RETURN khiến nó gặp một chút thách thức khi xử lý lưu trữ dữ liệu. Trước hết, OP_RETURN chỉ có thể lưu trữ 80 byte dữ liệu, điều này rõ ràng là không thể thỏa mãn khi cần lưu trữ một lượng lớn dữ liệu lớn hơn. Thứ hai, dữ liệu OP_RETURN được lưu trữ trong phần đầu ra giao dịch, mặc dù dữ liệu này không được lưu trữ trong bộ UTXO nhưng chúng chiếm không gian lưu trữ của chuỗi khối, dẫn đến kích thước của chuỗi khối tăng lên. Cuối cùng, việc sử dụng OP_RETURN dẫn đến phí giao dịch cao hơn, vì nó yêu cầu trả nhiều tiền hơn để đăng các giao dịch đó.
nhân chứng tách biệt
Ngược lại, phương pháp mới do SegWit cung cấp có thể khắc phục các vấn đề trên. SegWit là một nâng cấp giao thức quan trọng của Bitcoin , được đề xuất bởi nhà phát triển lõi Bitcoin Pieter Wuille vào năm 2015 và cuối cùng được chính thức áp dụng trong phiên bản 0.16.0 vào năm 2017. Segregated trong Segregated Witness có nghĩa là tách biệt và cô lập, còn Witness là chữ ký liên quan đến giao dịch. Do đó, SegWit tách dữ liệu chữ ký giao dịch nhất định (dữ liệu nhân chứng) khỏi các giao dịch.
Lợi ích chính của việc tách chữ ký khỏi dữ liệu liên quan đến giao dịch là nó làm giảm kích thước dữ liệu được lưu trữ trong khối Bitcoin . Bằng cách này, mỗi khối có thêm khả năng lưu trữ nhiều giao dịch hơn, điều đó cũng có nghĩa là mạng có thể xử lý nhiều giao dịch hơn và người gửi trả phí thấp hơn. Về mặt kỹ thuật, đó là lấy thông tin chữ ký tập lệnh (scriptSig) ra khỏi cấu trúc cơ bản (khối cơ sở) và đặt nó vào một cấu trúc dữ liệu mới. Các nút và công cụ khai thác thực hiện công việc xác minh cũng sẽ xác minh chữ ký tập lệnh trong cấu trúc dữ liệu mới này để đảm bảo rằng giao dịch hợp lệ. Nâng cấp Segwit giới thiệu một trường nhân chứng mới trong kết quả giao dịch để đảm bảo quyền riêng tư và hiệu suất. Mặc dù dữ liệu nhân chứng không được thiết kế để lưu trữ dữ liệu , nhưng nó thực sự mang đến cho chúng tôi cơ hội lưu trữ những thứ như dữ liệu khắc chữ . Chúng tôi sử dụng hình sau để hiểu Segregated Witness một cách trực quan hơn:
Pre-SegWit -- Giải thích về cấu trúc giao dịch (Tỷ lệ chiếm dụng dữ liệu)

Post-SegWit – Giải thích về cấu trúc giao dịch (Phần trăm chiếm dụng dữ liệu)

Cấu trúc dữ liệu giao dịch trước và sau SegWit
rễ cái
P2TR là một loại đầu ra giao dịch cho Bitcoin, được giới thiệu trong nâng cấp Taproot vào năm 2021, cho phép lưu trữ các điều kiện giao dịch khác nhau một cách riêng tư hơn trên chuỗi khối. Trong khắc chữ của Ordinals, P2TR đóng một vai trò quan trọng. Khắc chữ về cơ bản nhúng nội dung dữ liệu cụ thể vào giao dịch Bitcoin và nâng cấp của Taproot, đặc biệt là P2TR, làm cho dữ liệu được nhúng này trở nên linh hoạt và tiết kiệm hơn.
Đầu tiên, do cách lưu trữ tập lệnh Taproot, chúng tôi có thể lưu trữ nội dung khắc chữ trong tập lệnh chi tiêu đường dẫn tập lệnh Taproot, hầu như không có hạn chế về nội dung, đồng thời được giảm giá đối với dữ liệu nhân chứng, giúp việc lưu trữ nội dung khắc chữ tương đối tiết kiệm. Do việc sử dụng tập lệnh Taproot chỉ có thể được thực hiện từ đầu ra Taproot hiện có, Khắc chữ sử dụng quy trình xác nhận/tiết lộ hai giai đoạn. Đầu tiên, trong giao dịch cam kết, đầu ra Taproot của tập lệnh hứa hẹn chứa nội dung của khắc chữ được tạo. Sau đó, trong một giao dịch tiết lộ, đầu ra được tạo bởi giao dịch cam kết được sử dụng, tiết lộ nội dung khắc chữ trên on-chain .
Cách tiếp cận này làm giảm đáng kể mức tiêu thụ tài nguyên. Nếu P2TR không được sử dụng, thông tin nhân chứng sẽ được lưu trữ ở đầu ra của giao dịch. Theo cách này, miễn là đầu ra không được tiêu thụ, thông tin nhân chứng sẽ luôn được lưu trữ trong bộ UTXO. Ngược lại, nếu P2TR được sử dụng, thông tin nhân chứng sẽ không xuất hiện trong giao dịch được tạo trong giai đoạn cam kết, vì vậy nó sẽ không được ghi vào bộ UTXO. Chỉ khi UTXO này được tiêu thụ, thông tin nhân chứng mới xuất hiện trong đầu vào giao dịch của giai đoạn tiết lộ. P2TR cho phép ghi dữ liệu vào chuỗi khối Bitcoin nhưng không bao giờ xuất hiện trong bộ UTXO. Vì việc duy trì/sửa đổi các bộ UTXO cần nhiều tài nguyên hơn nên phương pháp này có thể tiết kiệm lượng lớn tài nguyên.
khắc chữ
Giao thức Ordinals sử dụng SegWit để nới lỏng giới hạn kích thước đối với nội dung được ghi vào mạng Bitcoin và lưu trữ nội dung khắc chữ trong dữ liệu nhân chứng. Cho phép lưu trữ dữ liệu lên tới 4MB. Taproot giúp lưu trữ dữ liệu nhân chứng tùy ý trong giao dịch Bitcoin dễ dàng hơn, cho phép nhà phát triển Casey Rodarmor của Ordinals tái sử dụng các mã opcode cũ (OP_FALSE, OP_IF, OP_PUSH) thành thứ mà anh ấy mô tả là "phong bì" để lưu trữ được gọi là " khắc chữ."dữ liệu tùy ý .
Quá trình đúc khắc chữ bao gồm hai bước sau:
1. Trước tiên, một cam kết đối với đầu ra Taproot của tập lệnh chứa nội dung của khắc chữ cần được tạo trong giao dịch cam kết. Định dạng lưu trữ là Taproot, nghĩa là đầu ra của giao dịch trước đó là P2TR (Pay-To-Taproot) và đầu vào của giao dịch tiếp theo được nhúng trong tập lệnh Taproot của nhân chứng; đầu tiên, chuỗi ord được đẩy lên ngăn xếp, để phân biệt rằng khắc chữ có những công dụng khác. OP_PUSH 1 chỉ ra rằng lần đẩy tiếp theo chứa loại nội dung và OP_PUSH 0 chỉ ra rằng lần đẩy dữ liệu tiếp theo chứa chính nội dung đó. Khắc chữ lớn phải sử dụng nhiều lần đẩy dữ liệu, vì một trong số ít hạn chế của taproot là một lần đẩy dữ liệu không thể lớn hơn 520 byte. Tại thời điểm này, dữ liệu của khắc chữ đã tương ứng với UTXO của đầu ra giao dịch, nhưng nó chưa được công khai.

2. Thứ hai, đầu ra được tạo bởi giao dịch cam kết cần được sử dụng trong giao dịch tiết lộ. Ở giai đoạn này, một giao dịch được bắt đầu bằng cách lấy UTXO tương ứng với khắc chữ đó làm đầu vào. Tại thời điểm này, nội dung khắc chữ tương ứng đã được phát hành trên toàn bộ mạng.
Thông qua hai bước trên, nội dung của khắc chữ đã được ràng buộc với UTXO được ghi. Theo vị trí của Satoshi được giới thiệu ở trên, dòng chữ được thực hiện trên Satoshi đầu tiên tương ứng với UTXO đầu vào và nội dung của khắc chữ được bao gồm trong đầu vào của giao dịch được hiển thị. Theo phần giới thiệu về lưu thông và theo dõi Satoshi được giới thiệu ở trên, Satoshi này được khắc với nội dung đặc biệt có thể được chuyển nhượng, mua, bán, mất và khôi phục. Cần lưu ý rằng dòng chữ không được lặp lại, nếu không khắc chữ tiếp theo sẽ không hợp lệ.
Chúng tôi sẽ minh họa chi tiết quá trình này bằng cách ghi một bức tranh BTC NFT nhỏ. Quá trình này chủ yếu bao gồm hai giai đoạn cam kết và tiết lộ đã đề cập trước đó. Đầu tiên, chúng ta thấy rằng Hash ID của giao dịch đầu tiên là 2ddf9...f585c. Có thể nhận thấy rằng đầu ra của giao dịch này không chứa dữ liệu nhân chứng và không có thông tin khắc chữ liên quan trên trang web.

Tiếp theo, chúng tôi kiểm tra các bản ghi của giai đoạn thứ hai, có Hash ID là e7454...7c0e1. Ở đây, chúng ta có thể thấy thông tin của dòng chữ Ordinals, đó là nội dung khắc chữ của nhân chứng. Địa chỉ đầu vào của giao dịch này là địa chỉ đầu ra của giao dịch trước đó và đầu ra là 0,00000546 BTC (546 Satoshi) để gửi NFT này đến địa chỉ của chính nó. Đồng thời, chúng ta cũng có thể tìm thấy Satoshi nơi khắc chữ này nằm ở Sat 1893640468329373.


Trong ví Bitcoin, chúng ta có thể thấy tài sản này. Nếu chúng tôi muốn giao dịch NFT này, chúng tôi có thể trực tiếp gửi nó đến địa chỉ của người khác, nghĩa là gửi UTXO này, do đó hoàn tất việc chuyển khắc chữ.
4. Ví Bitcoin
Sau khi chúng tôi hiểu hệ sinh thái Ordinals là gì, sự lưu thông của Satoshi và kiến thức liên quan về khắc chữ, hiện tại có nhiều kịch bản ứng dụng, cho dù đó là sự xuất hiện của các giao thức phái sinh có liên quan như BRC-20, ORC-20, BRC-721, GBRC-721, v.v., cần Chúng tôi có ví tương ứng để hỗ trợ và hiển thị thông tin token hoặc ảnh nhỏ NFT. Trong phần này, chúng tôi sẽ giới thiệu các khái niệm và đặc điểm của các địa chỉ ví Bitcoin khác nhau.
Địa chỉ Bitcoin bắt đầu bằng 1, 3 hoặc bc1. Giống như địa chỉ email, chúng có thể được chia sẻ với những người dùng Bitcoin khác, những người có thể sử dụng chúng để gửi Bitcoin trực tiếp đến ví của họ. Từ quan điểm bảo mật, địa chỉ Bitcoin không có bất kỳ nội dung nhạy cảm nào. Nó có thể được xuất bản ở bất cứ đâu mà không ảnh hưởng đến tính bảo mật của tài khoản. Không giống như địa chỉ email, chúng tôi có thể tạo địa chỉ mới bất cứ lúc nào chúng tôi muốn, tất cả địa chỉ này sẽ gửi tiền trực tiếp vào ví của bạn. Trên thực tế, nhiều ví hiện đại tự động tạo một địa chỉ mới cho mỗi giao dịch để bảo mật tối đa. Ví chỉ đơn giản là một tập hợp các địa chỉ và chìa khóa để mở khóa số tiền bên trong. Trước hết, chúng ta cần biết địa chỉ của ví Bitcoin được tạo như thế nào.
Khóa riêng và khóa công khai Bitcoin
Bitcoin sử dụng đường cong elip Secp256k1, "khóa riêng tư" là một số ngẫu nhiên trong khoảng từ 1 đến n−1, n là một số rất lớn (256 bit) và n được biểu thị bằng ký hiệu khoa học như sau:
Phạm vi này lớn đến mức chúng ta gần như không thể đoán được khóa riêng của người khác. Khóa riêng số nguyên ngẫu nhiên này có thể được biểu diễn bằng 256 bit và có nhiều phương pháp mã hóa. Nếu khóa riêng ở dạng nén WIF hoặc WIF không được mã hóa, nó có thể được giải mã để lấy "số nguyên ngẫu nhiên" ban đầu. Một phương pháp khác là BIP38, đề xuất sử dụng thuật toán AES để mã hóa khóa riêng. Khóa riêng thu được theo sơ đồ này bắt đầu bằng ký tự 6P. Loại khóa riêng này phải nhập mật khẩu trước khi có thể nhập vào các ví Bitcoin khác nhau. Đây là những gì chúng ta thường sử dụng khóa riêng.
Sau đó, chúng tôi sẽ sử dụng công thức đường cong elip K = kG để tạo khóa công khai K của Bitcoin từ khóa riêng k và G là Điểm cơ sở, là tham số của secp256k1. Có thể thu được hai tọa độ của K, là hai biểu thức của khóa chung, đó là "Định dạng không nén" và "Định dạng nén".

- Hình thức Không nén là nối trực tiếp hai tọa độ x và y, sau đó thêm tiền tố 0x04 vào phía trước;
- Dạng nén, tức là khi y là số chẵn thì mã là 02 x, khi y là số lẻ thì mã là 03 x;
địa chỉ Bitcoin
Các loại địa chỉ Bitcoin khác nhau được hiển thị trong hình bên dưới và có bốn phương thức biểu diễn:

Nguồn: https://en.bitcoin.it/wiki/Invoice_address
1. Định dạng kế thừa (P2PKH)
Ví dụ: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
Địa chỉ bắt đầu bằng "1", là định dạng địa chỉ ban đầu của Bitcoin và vẫn được sử dụng cho đến ngày nay. Nó được lấy từ khóa công khai thông qua tính toán Hash, còn được gọi là P2PKH, là chữ viết tắt của Pay To PubKey Hash (thanh toán cho hàm băm khóa công khai).
2. Định dạng SegWit lồng nhau (P2SH)
Ví dụ: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
Địa chỉ bắt đầu bằng "3" và P2SH là tên viết tắt của Pay To Script Hash (Pay To Script Hash), hỗ trợ các chức năng phức tạp hơn so với địa chỉ Legacy. P2SH lồng nhau, lấy địa chỉ P2SH hiện có (bắt đầu bằng "3") và đóng gói nó bằng địa chỉ SegWit.
3. Định dạng SegWit gốc (Bech32)
Ví dụ: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Địa chỉ bắt đầu bằng bc1 được đề xuất trong BIP0173, là địa chỉ nhân chứng riêng biệt. Địa chỉ được mã hóa Bech32 là một định dạng địa chỉ được phát triển đặc biệt cho SegWit. Bech32 đã được định nghĩa trong BIP173 vào cuối năm 2017. Một trong những tính năng chính của định dạng này là nó không phân biệt chữ hoa chữ thường (địa chỉ chỉ chứa 0-9, az), vì vậy nó có thể tránh nhầm lẫn một cách hiệu quả và dễ đọc hơn khi nhập liệu . Do địa chỉ cần ít ký tự hơn nên địa chỉ sử dụng mã hóa Base32 thay vì Base58 truyền thống, giúp việc tính toán trở nên thuận tiện và hiệu quả hơn. Dữ liệu có thể được lưu trữ chặt chẽ hơn trong Mã QR. Bech32 cung cấp khả năng bảo mật cao hơn, mã phát hiện lỗi tổng kiểm tra được tối ưu hóa tốt hơn và giảm thiểu khả năng địa chỉ không hợp lệ.
Địa chỉ Bech32 tương thích với SegWit. Không cần thêm dung lượng để đặt địa chỉ SegWit vào địa chỉ P2SH, vì vậy sử dụng địa chỉ định dạng Bech32, phí xử lý sẽ thấp hơn. Địa chỉ Bech32 có một số ưu điểm so với địa chỉ Base58 cũ hơn (mã hóa Base58Check được sử dụng để mã hóa các mảng byte trong Bitcoin thành các chuỗi có thể mã hóa được của con người): mã QR nhỏ hơn; chống lỗi tốt hơn; an toàn hơn; không thể phân biệt chữ hoa và chữ thường; chỉ bao gồm các chữ cái viết thường , vì vậy sẽ dễ đọc, gõ và hiểu hơn.
4. Định dạng Taproot (P2TR)
Bech32 có một nhược điểm: nếu ký tự cuối cùng của địa chỉ là p, việc chèn hoặc xóa bất kỳ số lượng ký tự q nào ngay trước p sẽ không làm mất hiệu lực tổng kiểm tra.
Để giảm bớt những thiếu sót trên của Bech32, địa chỉ Bech32m được đề xuất trong BIP0350:
- Đối với các địa chỉ segwit gốc có phiên bản 0, hãy sử dụng Bech32 trước đó;
- Đối với các địa chỉ segwit gốc có phiên bản 1 (hoặc cao hơn), hãy sử dụng Bech32m mới.
Đối với địa chỉ Bech32m, khi phiên bản là 1, chúng luôn bắt đầu bằng bc1p (tức là địa chỉ Taproot). Cụ thể, giống như segwit gốc, ví có thể bao gồm cụm từ khởi đầu và cụm mật khẩu. Chúng được sử dụng để tạo khóa công khai và khóa riêng mở rộng để lấy địa chỉ của các đường dẫn tùy ý trong ví xác định phân cấp. Nó chủ yếu lưu trữ BRC-20 và NFT của BTC.
5. Về chúng tôi
Spectrum Labs là một nhóm gồm các thạc sĩ và tiến sĩ tập trung vào nghiên cứu chuỗi khối, cũng như những người kỳ cựu trong ngành công nghiệp chuỗi khối . Chúng tôi cam kết nghiên cứu công nghệ Chuỗi chuỗi khối và ứng dụng của nó để giúp mọi người hiểu rõ hơn chuỗi khối. Hoạt động kinh doanh chính của Spectrum Labs bao gồm viết báo cáo nghiên cứu, viết khóa học và phát triển công cụ.
BTC NFT Chinese Community là một sàn giao dịch BTC NFT Chinese dành cho những người Trung Quốc mới đến trên khắp thế giới.


