Penulis: Ash Li, Noah Ho
Dengan terciptanya protokol Ordinal, yang menyediakan kemampuan untuk memberi nomor dan menuliskan bitcoin, jangkauan produk yang tersedia untuk ekosistem bitcoin telah meluas dan membawa dinamika baru ke ekosistem bitcoin. Dalam artikel ini, kita akan membahas detail protokol Ordinal, termasuk bagaimana setiap bitcoin diberi nomor dan dilacak, dan bagaimana penulisan terkait dengan penomoran. Namun, sebelum kita membahas topik ini, pertama-tama kita perlu memahami beberapa latar belakang dasar tentang Bitcoin untuk membantu kita lebih memahami apa yang akan dibahas selanjutnya.
Setelah menyelesaikan artikel ini, Anda akan menguasai mekanisme transaksi dan model pembayaran Bitcoin, memahami bagaimana Ordinals menerapkan penomoran dan pelacakan untuk setiap satoshi, dan bagaimana prasasti dibuat dan diperdagangkan. Selain itu, Anda akan memahami perbedaan antara berbagai jenis dompet.
I. Latar Belakang Bitcoin
Bitcoin menggunakan model transaksi seperti uang tunai, dan pembayarannya didasarkan pada model yang disebut UTXO, yang berbeda dari model berbasis saldo akun tradisional. Misalnya, dalam proses model pembukuan rekening bank, ketika A mentransfer $100 ke B, bank mencatat tiga langkah yang membentuk proses transaksi. Langkah pertama adalah mendebit $100 dari rekening A, dan ID catatan untuk langkah ini adalah tid1. Langkah kedua adalah menyetor $100 ke rekening B, dan ID catatan untuk langkah ini adalah tid2. Langkah ketiga adalah mencatat catatan transfer yang mengaitkan tid1 dengan tid2, yang menunjukkan bahwa akun A berkurang $100 dan akun B bertambah $100. Dengan cara ini, hubungan transfer antara A dan B dicatat dan dapat ditanyakan dan dilacak di masa mendatang. Sekarang, kami akan menjelaskan bagaimana pembayaran Bitcoin dilakukan dengan memperkenalkan UTXO dan model pembayaran.
UTXO
Dalam blockchain Bitcoin, semua saldo disimpan dalam daftar yang disebut Unspent Transaction Output (UTXO). Setiap UTXO berisi sejumlah bitcoin, beserta informasi tentang pemilik bitcoin tersebut, dan menunjukkan apakah bitcoin tersebut tersedia. Anggap saja sebagai cek tunai yang ditandatangani dengan nama pemegangnya, yang dapat ditransfer ke orang lain untuk digunakan selama pemegangnya menandatanganinya. Untuk alamat tertentu, semua jumlah UTXO-nya bertambah hingga mencapai saldo dompet di alamat tersebut. Dengan menelusuri semua UTXO, kita dapat memperoleh saldo terkini untuk setiap alamat. Menjumlahkan semua jumlah UTXO akan menghasilkan jumlah penuh bitcoin yang saat ini beredar.
Dalam struktur transaksi Bitcoin, setiap transaksi terdiri dari beberapa input dan output, di mana setiap input adalah referensi ke UTXO yang ada, dan setiap output menentukan alamat baru tempat dana akan diterima dan jumlah yang sesuai. Setelah transaksi dimulai, UTXO yang dirujuk di bagian inputnya dikunci sementara untuk mencegah penggunaan kembali hingga transaksi selesai. Hanya ketika transaksi ini berhasil dikemas ke dalam blok oleh penambang dan dikonfirmasi oleh jaringan, status UTXO terkait berubah. Secara khusus, UTXO yang digunakan sebagai input ke transaksi dihapus dari daftar UTXO, yang menunjukkan bahwa mereka telah dikonsumsi, sementara output dari transaksi menghasilkan UTXO baru yang ditambahkan ke daftar UTXO. Dapat dipahami bahwa cek tunai lama digunakan dan kemudian kedaluwarsa, menghasilkan cek tunai baru yang kepemilikannya dimiliki oleh pemegang baru.
Perlu ditekankan bahwa setiap UTXO hanya dapat digunakan satu kali dalam satu transaksi. Setelah digunakan sebagai input, UTXO tersebut akan dihapus secara permanen dari daftar UTXO. Pada saat yang sama, output yang baru dibuat ditambahkan ke daftar sebagai UTXO baru. Daftar UTXO terus berubah, dan setiap kali blok baru dibuat, daftar tersebut diperbarui sesuai dengan perubahan tersebut. Selain itu, dengan menganalisis riwayat transaksi dalam blockchain, kita dapat merekonstruksi status daftar UTXO pada titik waktu tertentu.
Selain itu, jumlah total input transaksi biasanya sedikit melebihi jumlah total outputnya. Perbedaan ini, yang disebut biaya Transaksi atau biaya Jaringan, diberikan sebagai insentif kepada penambang yang bertanggung jawab untuk mengemas transaksi ke dalam blok. Ukuran biaya jaringan sebanding dengan kompleksitas transaksi, sehingga transaksi yang berisi lebih banyak input dan output biasanya memerlukan biaya jaringan yang lebih tinggi.
Sekarang, untuk memahami struktur transaksi Bitcoin dengan cara yang lebih visual, kita akan membahas contoh konkret. Struktur transaksi Bitcoin adalah sebagai berikut, di mana variabel vin dan vout masing-masing mewakili "input" dan "output" dari transaksi Bitcoin. Transaksi Bitcoin tidak diwakili oleh input dan output, tidak seperti model saldo akun tradisional yang mencatat perubahan data berbentuk akun.

Kita dapat memilih catatan transaksi acak di blockchain.com untuk dianalisis. Gambar di bawah ini menunjukkan transaksi dengan ID Hash 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Transaksi ini berisi satu masukan dan dua keluaran.

Dengan menggunakan perintah bitcoin-cli getrawtransaction dan decoderawtransaction, kita dapat melihat struktur dasar transaksi di atas:

Dalam jaringan Bitcoin, keluaran transaksi berisi dua informasi penting: alamat (hash kunci publik) dan jumlah (dalam bitcoin). Jika keluaran transaksi tidak digunakan dalam input transaksi lain, maka keluaran transaksi ini disebut keluaran transaksi yang belum digunakan (UTXO). Siapa pun yang memiliki kunci privat yang sesuai dengan kunci publik dalam UTXO berhak menggunakan atau membelanjakan UTXO ini.
Mari kita lihat informasi dalam "vin" pada kode di atas, yang menunjukkan bahwa UTXO yang dihabiskan untuk transaksi ini berasal dari transaksi lain (dengan id 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18) dari output ke-0 (dapat ada lebih dari satu output dari suatu transaksi, indeks diberi nomor dari 0), kita dapat menemukan jumlah UTXO ini dari riwayat transaksi (misalnya, 0,1), jadi nilai 0,1 ini tidak perlu ditulis secara eksplisit dalam transaksi, tetapi diperoleh dengan mencari informasi UTXO. "Vout" dari transaksi ini memiliki dua output, yaitu dua UTXO baru, yang sesuai dengan saldo baru dan pemegang, hingga transaksi lain menggunakannya sebagai input.
Model Pembayaran
Untuk lebih memahami model pembayaran jaringan Bitcoin, kami menyajikan contoh proses pembayaran untuk pembayaran dari A ke B dalam jumlah n bitcoin. Diagram berikut menunjukkan proses pengiriman 3 bitcoin dari pengguna A ke pengguna B.

Untuk pengguna A, pertama-tama perlu ditentukan kumpulan semua UTXO yang dimilikinya, yaitu semua bitcoin yang dimiliki pengguna A;
A memilih satu atau lebih UTXO dari set ini sebagai input ke transaksi, dan jumlah input ini adalah m(2+0,8+0,5=3,3 BTC) yang lebih besar dari jumlah yang harus dibayarkan, n(3 BTC);
Pengguna A menetapkan dua keluaran untuk transaksi, satu keluaran untuk membayar ke alamat B sejumlah n(3 BTC) dan keluaran lainnya untuk membayar ke salah satu alamat uang kembalian milik A sejumlah m-n-biaya(3,3-3-0,001=0,299 BTC). (b) Dompet pengguna biasanya terdiri dari beberapa alamat, yang masing-masing biasanya hanya digunakan satu kali, dan uang kembalian dikembalikan ke alamat baru secara default;
Menunggu penambang mengemas transaksi ini pada rantai untuk konfirmasi, B dapat menerima informasi transaksi ini. Karena ukuran blok memiliki batas atas (sekitar 1 MB), penambang akan memberikan prioritas untuk mengonfirmasi transaksi dengan tingkat transaksi tinggi (fee_rate=fee/size ) untuk mendapatkan pengembalian biaya tertinggi. Kita dapat melihat biaya transaksi penambangan waktu nyata di mempool. Jika kita menginginkan konfirmasi tercepat selama proses transfer, kita dapat memilih Prioritas Tinggi atau menyesuaikan tingkat biaya transaksi yang sesuai.

II. Penomoran dan Pelacakan Satoshi
Jumlah total bitcoin adalah 21 juta, dan setiap bitcoin berisi 10^8 Satoshi (Sat). Jadi, ada 21 juta * 10^8 satoshi di jaringan Bitcoin. Protokol Ordinals membedakan satoshi ini dengan memberi nomor unik pada masing-masing satoshi. Bagian ini menjelaskan bagaimana protokol melakukannya, dan bagaimana protokol melacak akun tempat setiap satoshi berada. Selain itu, klasifikasi kelangkaan satoshi akan dijelaskan.
Penomoran Satoshi
Menurut protokol Ordinals, satoshi diberi nomor sesuai urutan penambangannya. Gambar berikut menunjukkan representasi satoshi ke-0 yang ditambang dari blok ke-0.

Ada berbagai representasi untuk bilangan Ordinal: (https://docs.ordinals.com/overview.html)
Notasi integer: [2099994106992659]() Angka urut, ditetapkan berdasarkan urutan penambangan satoshi.
Notasi desimal: [3891094.16797]() Angka pertama adalah tinggi blok tempat satoshi ditambang, angka kedua adalah offset satoshi dalam blok.
Notasi derajat: [3°111094′214″16797‴](). Angka pertama adalah siklus, diberi nomor mulai dari 0, angka kedua adalah indeks blok dalam periode halving, angka ketiga adalah indeks blok dalam periode penyesuaian kesulitan, dan angka terakhir adalah indeks sat dalam blok.
Notasi persentil: [99,99971949060254%](). Posisi satoshi dalam pasokan Bitcoin, dinyatakan dalam persentase.
Nama: [satoshi](). Pengodean nomor urut menggunakan karakter a hingga z.
Kita akan membahas contoh cara memberi nomor pada bitcoin yang baru ditambang. Dengan melihat blok 795952 dari blockchain bitcoin, kita dapat melihat bahwa transaksi pertama ini, Tx 3a1f...b177 mencatat imbalan penambang (transaksi coinbase). Transaksi ini berisi bitcoin yang baru ditambang, yang digunakan sebagai imbalan paket untuk penambang, serta biaya yang dibayarkan kepada penambang oleh pemrakarsa transaksi. Dengan melihat input diagram di bawah, kita dapat melihat bahwa id UTXO-nya terdiri dari serangkaian angka nol dan tinggi blok. Alamat output kemudian menjadi alamat dompet penambang, dan jumlahnya adalah jumlah imbalan dan biaya yang disebutkan di atas.

Jika kita melihat lebih jauh pada bagian output untuk penambang, kita dapat melihat distribusi alamat, jumlah, dan satoshi yang terkandung. Seperti yang disebutkan sebelumnya, ini berisi imbalan dan biaya penambangan. Dari semua ini, informasi nomor sats hijau 1941220000000000–1941220625000000 adalah satoshi baru yang dihasilkan oleh imbalan penambangan, sedangkan 712 catatan satoshi yang tersisa sesuai dengan semua biaya di blok tersebut.

Kita dapat memverifikasi angka Sat 1941220000000000. Nomor bloknya adalah 795952 dan desimalnya adalah 795952.0, yang berarti bahwa tinggi blok untuk menambang Satoshi ini adalah 795952, dan nomor Satoshi di blok ini adalah 0, diikuti oleh tanda kelangkaan untuk tidak umum, yang akan kami uraikan secara rinci di bagian selanjutnya.

Aliran Satoshi
Karena setiap BTC dihasilkan melalui imbalan penambangan, semuanya dapat dilacak. Akun Bitcoin menggunakan model UTXO. Mari kita asumsikan bahwa pengguna A telah memperoleh satoshi ke-100-110 melalui penambangan (10 satoshi disimpan secara keseluruhan dalam UTXO yang sama dengan id adc123). Ketika pengguna A ingin membayar pengguna B 5 satoshi, ia memilih untuk menggunakan id abc123 sebagai input transaksi, di mana 5 satoshi diberikan kepada pengguna B dan 5 satoshi dikembalikan ke pengguna A sebagai kembalian. Kedua salinan 5 satoshi disimpan secara keseluruhan dalam dua UTXO dengan id abc456 dan abc789. Id UTXO di atas dan jumlah satoshi ditampilkan sebagai contoh saja, dalam praktiknya jumlah minimum adalah 546 satoshi dan id UTXO tidak dinyatakan dalam bentuk ini.

Pada transaksi di atas, jalur aliran 10 satoshi pengguna A adalah
Penambangan menghasilkan 10 satoshi dengan nomor [100, 110). Ini berarti bahwa satoshi bernomor 100 hingga 109 disimpan di UTXO dengan id abc123 dan pemiliknya adalah pengguna A.
Ketika A melakukan transfer, 10 satoshi dibagi menjadi dua bagian, masing-masing dengan 5 satoshi. Prinsip "first-in-first-out" digunakan di sini, yaitu, penomoran satoshi ditentukan oleh indeksnya dalam keluaran transaksi. Dengan asumsi bahwa urutan keluaran adalah Pengguna A dan kemudian Pengguna B, maka 5 satoshi yang tersisa dari Pengguna A diberi nomor [100, 105) dan disimpan dalam UTXO dengan id abc456, sedangkan 5 satoshi dari Pengguna B diberi nomor [105, 110) dan disimpan dalam UTXO dengan id abc789.
Satoshi Langka
Sebagai turunan dari protokol Ordinals, kelangkaan Satoshi dapat ditentukan berdasarkan urutan penambangannya. Hal ini akan menghasilkan beberapa Satoshi khusus yang memiliki kelangkaan yang berbeda. Berikut ini adalah tingkat kelangkaan Satoshi yang berbeda:
umum: Setiap satelit yang bukan satelit pertama di bloknya (Total pasokan: 2,1 kuadriliun)
tidak umum: Sat pertama setiap blok (Total pasokan: 6.929.999)
langka: Sat pertama setiap periode penyesuaian tingkat kesulitan (Total pasokan: 3437)
epik: Sat pertama dari setiap zaman halving (Total pasokan: 32)
legendaris: Sabtu pertama setiap siklus (Total pasokan: 5)
mitis: Sat pertama dari blok genesis (Total pasokan: 1)
Konsep satoshi langka ini dapat menambah minat dan nilai bagi ekosistem bitcoin. Satoshi dengan tingkat kelangkaan yang berbeda dapat memiliki nilai yang berbeda di pasar, sehingga menarik minat kolektor dan investor.
III. Metode Prasasti
Ordinals sangat berbeda dari NFT lain pada rantai non-bitcoin. Salah satu perbedaan utamanya adalah metadata Ordinals tidak disimpan di lokasi tertentu. Sebaliknya, metadata tersebut disematkan dalam data saksi transaksi, itulah sebabnya kami menyebutnya "prasasti", karena "diukir" seperti prasasti pada bagian tertentu dari transaksi bitcoin. Data tersebut dilampirkan ke satoshi tertentu. Proses prasasti ini diimplementasikan melalui Segregated Witness (SegWitness) dan Pay-to-Taproot (P2TR), yang terdiri dari dua fase: commit dan reveal. Dimungkinkan untuk menuliskan semua jenis konten (misalnya teks, gambar, atau video) pada satoshi tertentu. Kami akan memperkenalkan metode penyimpanan lain yang lebih langsung, OP_RETURN, di bawah ini dan menjelaskan mengapa metode tersebut tidak digunakan sebagai sarana prasasti. Selain itu, kami akan menjelaskan apa itu isolated witness dan Pay-to-Taproot dan apa perannya dalam prasasti. Terakhir, kami akan memperkenalkan cara prasasti.
OP_RETUR
Pada klien Bitcoin Core versi 0.9, kompromi akhirnya tercapai dengan mengadopsi operator RETURN. RETURN memungkinkan pengembang untuk menambahkan 80 byte data nonpembayaran ke output transaksi. Tidak seperti pembayaran semu, RETURN membuat output yang tidak dapat dikonsumsi secara eksplisit; data tersebut tidak perlu disimpan dalam set UTXO. Output RETURN direkam pada blockchain, menghabiskan ruang disk dan menyebabkan blockchain bertambah besar, tetapi tidak disimpan dalam set UTXO dan oleh karena itu tidak meningkatkan kumpulan memori UTXO, juga tidak menambah biaya memori yang mahal dari simpul penuh.
Meskipun OP_RETURN merupakan cara yang sangat mudah untuk menyimpan informasi ke dalam blockchain Bitcoin, OP_RETURN juga merupakan cara potensial untuk pencatatan. Akan tetapi, keterbatasan OP_RETURN membuatnya menghadapi beberapa tantangan saat menangani penyimpanan metadata. Pertama, OP_RETURN hanya dapat menyimpan 80 byte data, batasan yang jelas tidak terpenuhi untuk kasus-kasus yang memerlukan penyimpanan data dalam jumlah yang lebih besar. Kedua, data OP_RETURN disimpan di bagian keluaran transaksi, dan meskipun data tersebut tidak disimpan dalam set UTXO, data tersebut menghabiskan ruang penyimpanan di blockchain, yang menyebabkan peningkatan ukuran blockchain. Terakhir, penggunaan OP_RETURN menyebabkan peningkatan biaya transaksi, karena memerlukan lebih banyak biaya yang harus dibayarkan untuk memposting transaksi ini.
Saksi Terpisah
Sebaliknya, SegWit menawarkan pendekatan baru yang mengatasi masalah ini. SegWit adalah peningkatan protokol utama untuk Bitcoin, yang diusulkan oleh Pieter Wuille, pengembang inti Bitcoin, pada tahun 2015 dan akhirnya diadopsi secara resmi dalam versi 0.16.0 pada tahun 2017. Segregated dalam Segregated Witness berarti terpisah, terisolasi, dan Witness adalah hal yang ditandatangani yang terkait dengan suatu transaksi. Dengan demikian, SegWit adalah pemisahan data tanda tangan transaksi tertentu (data saksi) dari transaksi.
Manfaat utama pemisahan tanda tangan dari data terkait transaksi adalah mengurangi ukuran data yang disimpan dalam blok bitcoin. Hal ini memberikan kapasitas ekstra bagi setiap blok untuk menyimpan lebih banyak transaksi, dan berarti jaringan dapat memproses lebih banyak transaksi dan pengirim membayar biaya yang lebih rendah. Secara teknis, ini berarti mengeluarkan informasi scriptSig dari blok dasar dan meletakkannya dalam struktur data baru. Pemutakhiran Segwit memperkenalkan bidang saksi baru dalam keluaran transaksi untuk memastikan privasi dan kinerja. Meskipun data saksi tidak dirancang untuk penyimpanan data, hal itu sebenarnya memberi kita kesempatan untuk menyimpan konten seperti metadata prasasti. Mari kita pahami saksi terpisah secara lebih grafis dengan diagram berikut:



Akar tunggang
P2TR adalah jenis keluaran transaksi Bitcoin yang diperkenalkan dalam pemutakhiran Taproot yang dilakukan pada tahun 2021, yang memungkinkan berbagai kondisi transaksi disimpan dalam blockchain dengan cara yang lebih privat. P2TR memainkan peran penting dalam prasasti Ordinals. Prasasti pada dasarnya menanamkan konten data tertentu ke dalam transaksi Bitcoin, dan pemutakhiran Taproot, dan khususnya P2TR, membuat data yang disematkan ini lebih fleksibel dan ekonomis.
Pertama, karena cara skrip Taproot disimpan, kita dapat menyimpan konten prasasti di skrip pengeluaran jalur skrip Taproot yang secara virtual tidak terbatas dalam hal konten, sementara masih menerima diskon pada data saksi, sehingga relatif ekonomis untuk menyimpan konten prasasti. Karena skrip Taproot hanya dapat dikonsumsi dari keluaran Taproot yang sudah ada, prasasti dikirimkan/diungkapkan menggunakan proses pengiriman/pengungkapan dua tahap. Pertama, dalam transaksi pengiriman, keluaran Taproot dibuat yang menjanjikan skrip yang berisi konten prasasti. Kemudian, dalam transaksi pengungkapan, keluaran yang dibuat oleh transaksi pengiriman dikonsumsi, sehingga mengungkapkan konten prasasti pada rantai.
Pendekatan ini secara signifikan mengurangi konsumsi sumber daya. Jika P2TR tidak digunakan, informasi saksi disimpan dalam keluaran transaksi. Jadi, selama keluaran ini tidak dikonsumsi, informasi saksi akan tetap disimpan dalam set UTXO. Sebaliknya, jika P2TR digunakan, informasi saksi tidak muncul dalam transaksi yang dihasilkan selama fase komit, jadi tidak ditulis ke set UTXO. Hanya ketika UTXO ini dikonsumsi, informasi saksi muncul dalam input transaksi selama fase pengungkapan. p2tr memungkinkan metadata ditulis ke blockchain bitcoin, tetapi tidak pernah muncul di set UTXO. Karena memelihara/memodifikasi set UTXO memerlukan lebih banyak sumber daya, pendekatan ini menghemat banyak sumber daya.
Prasasti
Protokol Ordinals memanfaatkan pelonggaran pembatasan ukuran SegWit pada penulisan konten jaringan Bitcoin dengan menyimpan konten prasasti dalam data saksi. Taproot mempermudah penyimpanan data saksi acak dalam transaksi bitcoin, yang memungkinkan pengembang Ordinals Casey Rodarmor untuk menggunakan kembali opcode lama (OP_FALSE, OP_IF, OP_PUSH) untuk apa yang ia gambarkan sebagai "amplop" guna menyimpan data acak untuk apa yang disebut "prasasti".
Proses pengecoran prasasti terdiri dari dua langkah berikut:
Pertama, perlu untuk membuat keluaran Commit-to-Taproot dari skrip yang berisi konten prasasti dalam transaksi yang dikirimkan. Format yang disimpan adalah Taproot, yaitu keluaran dari transaksi sebelumnya adalah P2TR (Pay-To-Taproot) dan masukan dari transaksi terakhir, dengan format khusus yang disematkan dalam skrip Taproot yang disaksikan; pertama-tama string ord diletakkan di tumpukan untuk menghilangkan ambiguitas prasasti dari penggunaan lain. OP_PUSH 1 menunjukkan bahwa dorongan berikutnya berisi jenis konten, dan OP_PUSH 0 menunjukkan bahwa dorongan data berikutnya berisi konten itu sendiri. Prasasti besar harus menggunakan beberapa dorongan data karena salah satu dari sedikit batasan taproot adalah bahwa dorongan data individual tidak boleh lebih besar dari 520 byte. Pada titik ini, data untuk prasasti sudah sesuai dengan UTXO dari keluaran transaksi, tetapi tidak dipublikasikan.

Tulisan prasasti yang berisi rangkaian kata "Halo, dunia!" diserialkan seperti di atas Kedua, perlu untuk menggunakan output yang dibuat dengan mengirimkan transaksi dalam transaksi pengungkapan. Pada tahap ini, transaksi dimulai dengan mengambil UTXO yang sesuai dengan prasasti tersebut sebagai input. Pada titik ini, konten prasasti yang sesuai diungkapkan ke seluruh jaringan.
Dengan dua langkah yang dijelaskan di atas, konten prasasti telah diikat ke UTXO yang sedang ditulis. Sekali lagi, menurut posisi satoshi yang dijelaskan di atas, prasasti dibuat pada satoshi pertama yang sesuai dengan UTXO inputnya, dan konten prasasti disertakan dalam input yang menunjukkan transaksi. Menurut pengantar aliran dan pelacakan satoshi yang dijelaskan di atas, satoshi yang ditulis dengan konten khusus ini dapat ditransfer, dibeli, dijual, hilang, dan dikembalikan. Perlu dicatat bahwa prasasti tidak dapat diulang, jika tidak, prasasti selanjutnya tidak valid.
Kami akan mengilustrasikan proses ini secara terperinci dengan menuliskan contoh gambar NFT BTC kecil, yang terdiri dari dua fase utama yang disebutkan sebelumnya, commit dan reveal. Pertama, kita melihat bahwa Hash ID dari transaksi pertama adalah 2ddf9...f585c. Dapat dicatat bahwa output dari transaksi ini tidak berisi data saksi dan tidak ada tulisan yang relevan di halaman web.

Selanjutnya, kita melihat tahap kedua dari rekaman, yang Hash ID-nya adalah e7454...7c0e1. Di sini kita dapat melihat informasi tentang prasasti Ordinals, yang merupakan konten prasasti saksi. Alamat input dari transaksi ini adalah alamat output dari transaksi sebelumnya, sedangkan output sebesar 0,00000546BTC (546 Satoshi) mengirim NFT ini ke alamatnya sendiri. Selain itu, kita dapat menemukan satoshi tempat prasasti ini berada di Sat 1893640468329373.


Di dompet Bitcoin, kita dapat melihat aset ini. Jika kita ingin memperdagangkan NFT ini, kita dapat mengirimkannya langsung ke alamat orang lain, yang berarti mengirimkan UTXO ini, yang melengkapi alur prasasti.

IV. Dompet Bitcoin
Setelah kita memahami apa itu Ordinals, aliran Satoshi, dan pengetahuan tentang prasasti, ada banyak skenario aplikasi yang saat ini muncul, baik itu BRC-20, ORC-20, BRC-721, GBRC-721, dan protokol turunan terkait lainnya yang mengharuskan kita memiliki dompet yang sesuai untuk mendukung dan menampilkan informasi token atau gambar NFT kecil. Di bagian ini, kami akan memperkenalkan konsep dan karakteristik berbagai alamat dompet bitcoin.
Alamat Bitcoin dimulai dengan angka 1, 3, atau bc1. Sama seperti alamat email, alamat tersebut dapat dibagikan dengan pengguna Bitcoin lain yang dapat menggunakannya untuk mengirim Bitcoin langsung ke dompet mereka. Dari perspektif keamanan, alamat Bitcoin tidak memiliki konten sensitif apa pun. Alamat tersebut dapat dipublikasikan di mana saja tanpa membahayakan keamanan akun. Tidak seperti alamat email, kita dapat membuat alamat baru sesering yang dibutuhkan, yang semuanya akan menyetorkan dana langsung ke dompet Anda. Faktanya, banyak dompet modern secara otomatis membuat alamat baru untuk setiap transaksi demi privasi maksimum. Dompet hanyalah kumpulan alamat dan kunci untuk membuka kunci dana di dalamnya. Pertama-tama, kita perlu mengetahui bagaimana alamat dompet Bitcoin dibuat.
Kunci Pribadi dan Publik Bitcoin
Bitcoin menggunakan kurva eliptik Secp256k1, di mana "kunci pribadi" adalah angka acak antara 1 dan n-1, n merupakan angka yang sangat besar (256 bit), dan n dinyatakan dalam notasi ilmiah sebagai berikut: 1,15792*10^77.
Rentangnya sangat besar sehingga hampir mustahil untuk menebak kunci pribadi orang lain. Kunci pribadi bilangan bulat acak ini dapat direpresentasikan oleh 256 bit dan ada banyak cara untuk mengodekannya. Jika kunci pribadi dalam WIF, bentuk terkompresi WIF tidak terenkripsi, kunci tersebut dapat didekodekan untuk mendapatkan "bilangan bulat acak" asli. Cara lain adalah BIP38, yang mengusulkan untuk mengenkripsi kunci pribadi dengan algoritma AES. Kunci pribadi yang diperoleh dari skema ini dimulai dengan karakter 6P, dan kunci pribadi ini harus dimasukkan sebagai kata sandi untuk diimpor ke berbagai dompet bitcoin, yang merupakan kunci pribadi yang biasa kita gunakan.
Selanjutnya, kita akan menggunakan rumus kurva eliptik K = kG untuk menghasilkan kunci publik K Bitcoin dari kunci privat k. G adalah Titik Dasar, yang merupakan parameter secp256k1. Dua koordinat K adalah dua ekspresi kunci publik, yaitu "Format tidak terkompresi" dan "Format terkompresi".

Tidak terkompresi, yang merupakan gabungan langsung dua koordinat x dan y, didahului oleh awalan 0x04;
Bentuk terkompresi, yang dikodekan sebagai 02 x, ketika y genap dan 03 x ketika y ganjil;
Alamat Bitcoin
Berbagai jenis alamat bitcoin dapat ditunjukkan dalam diagram berikut, dengan empat representasi:

Format Warisan (P2PKH)
Contoh: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
Alamat tersebut dimulai dengan angka "1" dan merupakan format alamat asli untuk Bitcoin, yang masih digunakan hingga saat ini. Alamat tersebut juga dikenal sebagai P2PKH, yang merupakan singkatan dari Pay To PubKey Hash, dan diperoleh dengan menghitung kunci publik melalui hash.
Format SegWit Bersarang (P2SH)
Contoh: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
P2SH bersarang, yang mengambil alamat P2SH yang ada (dimulai dengan "3") dan membungkusnya dengan alamat SegWit.
Format SegWit Asli (Bech32)
Contoh: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Alamat yang dimulai dengan bc1 diusulkan dalam BIP0173, dan merupakan alamat Isolated Witness asli. Alamat yang dikodekan bech32, format alamat yang dikembangkan khusus untuk SegWit. Bech32 didefinisikan dalam BIP173 pada akhir tahun 2017, dan salah satu fitur utama dari format tersebut Salah satu fitur utamanya adalah tidak peka huruf besar/kecil (hanya 0-9, az, yang disertakan dalam alamat), sehingga efektif dalam menghindari kebingungan dan lebih mudah dibaca saat dimasukkan. Karena lebih sedikit karakter yang dibutuhkan dalam alamat, alamat dikodekan menggunakan Base32, bukan Base58 tradisional, sehingga komputasi menjadi lebih mudah dan efisien. Data dapat disimpan lebih rapat dalam kode QR. Bech32 menyediakan keamanan yang lebih tinggi, pengoptimalan kode checksum dan deteksi kesalahan yang lebih baik, dan meminimalkan kemungkinan alamat yang tidak valid.
Alamat Bech32 sendiri kompatibel dengan SegWit. Tidak diperlukan ruang tambahan untuk memasukkan alamat SegWit ke alamat P2SH, sehingga biaya lebih rendah dengan alamat format Bech32. Alamat Bech32 memiliki beberapa keunggulan dibandingkan alamat Base58 (pengodean Base58Check digunakan untuk mengodekan array byte dalam Bitcoin menjadi string yang dapat dikodekan manusia): kode QR yang lebih kecil; anti-kesalahan yang lebih baik; lebih aman; tidak peka huruf besar-kecil; dan hanya terdiri dari huruf kecil, sehingga lebih mudah dibaca, diketik, dan dipahami.
Format Akar Tunggang (P2TR)
Bech32 memiliki kekurangan: jika karakter terakhir alamat adalah p, memasukkan atau menghapus sejumlah karakter q sebelum p tidak akan membatalkan checksumnya.
Untuk mengatasi kelemahan Bech32 ini, alamat Bech32m diusulkan dalam BIP0350:
Untuk alamat saksi terisolasi asli versi 0, gunakan Bech32 sebelumnya;
Untuk alamat saksi terisolasi asli versi 1 (atau lebih tinggi), Bech32m baru digunakan.
Untuk alamat Bech32m, alamat tersebut selalu dimulai dengan bc1p (yaitu alamat Taproot) saat versi 1 digunakan. Secara khusus, seperti saksi lokal yang terisolasi, dompet dapat terdiri dari frasa awal dan frasa kriptografi. Ini digunakan untuk menghasilkan kunci publik dan privat yang diperluas yang digunakan untuk memperoleh alamat jalur arbitrer dalam dompet deterministik hierarkis. Tujuan utamanya adalah untuk menyimpan BRC-20 serta NFT untuk BTC, dll.
V. Tentang Kami
Spectrum Labs adalah tim yang terdiri dari para Magister dan Doktor yang berfokus pada penelitian blockchain, serta para veteran dalam industri blockchain. Kami berdedikasi pada teknologi rantai penelitian blockchain dan aplikasinya untuk membantu orang-orang lebih memahami blockchain. Kegiatan utama Spectrum Labs meliputi penulisan laporan penelitian, pengembangan kurikulum, dan pengembangan alat.
Komunitas Tionghoa BTC NFT (中文社区) merupakan wadah komunikasi Tionghoa BTC NFT untuk para pendatang baru di komunitas Tionghoa global.
