Pelajari prinsip-prinsip Protokol Ordinals dan inskripsi Bitcoin dalam satu artikel

Lanjutan1/1/2024, 4:54:08 AM
Artikel ini menjelaskan detail teknis dari protokol Ordinals dan evolusi detail alamat BTC.

Dengan lahirnya Protokol Ordinals, Bitcoin diberikan fungsi penomoran dan inskripsi, sehingga memperluas jangkauan produk ekosistem Bitcoin dan membawa vitalitas baru ke ekosistem Bitcoin. Dalam artikel ini, kita akan membahas detail Protokol Ordinal, termasuk bagaimana setiap Bitcoin dinomori dan dilacak, dan hubungan antara inskripsi dan nomor. Tetapi sebelum kita lebih dalam ke topik ini, kita perlu memahami beberapa latar belakang dasar Bitcoin untuk membantu kita memahami apa yang akan datang.

Setelah membaca artikel ini, Anda akan menguasai mekanisme transaksi Bitcoin dan model pembayaran, belajar bagaimana Ordinals dapat menghitung dan melacak setiap Satoshi, dan bagaimana inskripsi diciptakan dan diperdagangkan. Selain itu, Anda akan mempelajari perbedaan antara berbagai jenis dompet.

I. Latar Belakang Bitcoin

Bitcoin menggunakan model transaksi mirip tunai (sistem tunai), dan metode pembayarannya didasarkan pada model yang disebut UTXO, yang berbeda dari model tradisional berdasarkan saldo rekening. Sebagai contoh, dalam proses model pencatatan buku rekening bank, ketika A mentransfer 100 yuan ke B, bank mencatat tiga langkah. Tiga langkah ini membentuk proses transaksi. Langkah pertama adalah mengurangi 100 yuan dari rekening A. ID catatan untuk langkah ini adalah tid1. Langkah kedua adalah mendepositkan 100 yuan ke rekening B. ID catatan untuk langkah ini adalah tid2. Langkah ketiga adalah mencatat catatan transfer. Catatan ini menghubungkan tid1 dan tid2, menunjukkan pengurangan 100 yuan untuk rekening A dan penambahan 100 yuan untuk rekening B. Dengan cara ini, hubungan transfer antara A dan B dicatat dan dapat ditanyakan dan dilacak di masa mendatang. Sekarang, kita akan menjelaskan metode pembayaran Bitcoin melalui pengenalan UTXO dan model pembayaran.

UTXO

Dalam blockchain Bitcoin, semua saldo disimpan dalam daftar yang disebut “Unspent Transaction Output (UTXO)” (Keluaran Transaksi yang Belum Digunakan). Setiap UTXO berisi sejumlah bitcoin tertentu, bersama dengan informasi tentang pemilik bitcoin tersebut, dan menunjukkan apakah mereka tersedia. Bayangkan ini sebagai cek tunai dengan nama pemegangnya. Selama pemegangnya menandatanganinya, Anda dapat mentransfer hak untuk menggunakannya ke orang lain. Untuk alamat tertentu, semua jumlah UTXO-nya dijumlahkan untuk saldo dompet alamat tersebut. Dengan menjelajahi semua UTXO, kita dapat mendapatkan saldo saat ini untuk setiap alamat. Jumlah semua jumlah UTXO adalah jumlah total bitcoin yang beredar saat ini.

Dalam struktur transaksi Bitcoin, setiap transaksi mencakup beberapa input dan output. Setiap input adalah referensi ke UTXO yang ada, dan setiap output menentukan alamat penerimaan dana baru dan jumlah yang sesuai. Setelah transaksi dimulai, UTXO yang dirujuk dalam bagian input sementara dikunci untuk mencegah penggunaan ulang sampai transaksi selesai. Hanya ketika transaksi berhasil dikemas ke dalam blok (Blok) oleh penambang dan dikonfirmasi oleh jaringan, status UTXO yang relevan akan berubah. Secara khusus, UTXO yang digunakan untuk input transaksi akan dihapus dari daftar UTXO, menunjukkan bahwa mereka telah digunakan, dan output transaksi akan menghasilkan UTXO baru dan ditambahkan ke daftar UTXO. Ini bisa dimengerti bahwa cek tunai lama digunakan dan kemudian menjadi tidak valid, menciptakan cek tunai baru, yang dimiliki oleh pemegang baru.

Sangat penting untuk menekankan bahwa setiap UTXO hanya dapat digunakan sekali dalam satu transaksi. Begitu digunakan sebagai input, itu secara permanen dihapus dari daftar UTXO. Sementara itu, output yang baru dihasilkan ditambahkan ke daftar sebagai UTXO baru. Daftar UTXO terus berubah, dan ketika setiap blok baru dibuat, itu diperbarui sesuai. Juga, dengan menganalisis sejarah transaksi di blockchain, kita dapat merekonstruksi status daftar UTXO kapan saja.

Juga, jumlah input total dari sebuah transaksi biasanya sedikit melebihi jumlah output totalnya. Perbedaan ini, disebut biaya transaksi (biaya transaksi) atau biaya jaringan (biaya jaringan), diberikan sebagai insentif kepada para penambang yang bertanggung jawab atas pengemasan transaksi ke dalam blok. Besarnya biaya jaringan berbanding lurus dengan kompleksitas transaksi, sehingga transaksi dengan lebih banyak input dan output biasanya memerlukan biaya jaringan yang lebih tinggi.

Sekarang, untuk lebih memahami struktur transaksi Bitcoin, kita akan melakukan analisis mendalam melalui contoh spesifik. Struktur transaksi Bitcoin adalah sebagai berikut. Dua variabel vin dan vout mewakili "input" dan "output" dari transaksi Bitcoin, masing-masing. Transaksi Bitcoin tidak seperti model saldo akun tradisional yang mencatat perubahan data akun, tetapi diungkapkan melalui input dan output.

Kita dapat secara acak memilih catatan transaksi di blockchain.com untuk dianalisis. Angka di bawah ini menunjukkan ID hash adalah transaksi 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2. Ini berisi satu input dan dua output.

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

Dalam jaringan Bitcoin, output transaksi mengandung dua informasi penting: alamat (hash kunci publik) dan jumlah (dalam bitcoins). Jika output dari satu transaksi tidak digunakan sebagai input transaksi lainnya, maka output transaksi ini disebut sebagai unspent transaction output (UTXO). Siapa pun yang memiliki kunci pribadi yang sesuai dengan kunci publik di UTXO berhak untuk menggunakan (yaitu, menghabiskan) UTXO ini.

Mari kita lihat informasi di "vin" dalam kode di atas, yang menunjukkan bahwa UTXO yang dihabiskan pada pertukaran ini berasal dari transaksi lain (id-nya adalah 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18). Kita dapat menemukan jumlah UTXO ini dari transaksi historis (misalnya, 0.1), Oleh karena itu, dalam transaksi ini, pengguna menghabiskan 0.1 BTC. Nilai 0.1 tidak perlu ditulis secara eksplisit dalam transaksi, tetapi diperoleh dengan mencari informasi UTXO. "Vout" dari transaksi ini memiliki dua output. Kedua output ini adalah dua UTXO baru, yang sesuai dengan saldo baru dan pemegangnya hingga transaksi lain mengonsumsinya sebagai input.

  1. Untuk pengguna A, pertama-tama perlu menentukan semua set UTXO yang dimilikinya, yaitu, semua bitcoin yang dapat dikendalikan pengguna A;
  2. A memilih satu atau lebih UTXO dari himpunan ini sebagai input ke transaksi. Jumlah dari jumlah input ini adalah m (2+0.8+0.5 = 3.3 BTC) lebih besar dari jumlah yang akan dibayarkan n (3 BTC);
  3. Pengguna A menetapkan dua output untuk transaksi. Satu output dibayarkan ke alamat B, jumlahnya adalah n (3 BTC), dan output lainnya dibayarkan ke alamat nol milik A sendiri. Jumlahnya adalah m-n-fee (3.3-3-0.001 = 0.299) BTC). Dompet pengguna biasanya terdiri dari beberapa alamat. Biasanya, setiap alamat hanya digunakan sekali, dan nol dikembalikan ke alamat baru secara default;
  4. Setelah penambang memaketkan transaksi ini di rantai dan mengonfirmasinya, B dapat menerima informasi transaksi. Karena ada batas atas pada ukuran blok (sekitar 1 MB), penambang memberikan prioritas untuk mengonfirmasi transaksi dengan tingkat transaksi tinggi (fee_rate=fee/size) untuk mendapatkan pengembalian biaya tertinggi. Kami dapat melihat situasi biaya transaksi penambangan real-time di mempoolJika kita menginginkan konfirmasi tercepat selama proses transfer, kita dapat memilih Prioritas Tinggi (High Priority) atau Kustom (custom) dengan tarif transaksi yang sesuai.

II. Nomor dan Pelacakan Satoshi

Jumlah total bitcoin adalah 21 juta, dan setiap bitcoin berisi 10^8 Satoshi (Satoshi, Sat). Sebagai hasilnya, ada 21 juta*10^8 satoshi di jaringan Bitcoin. Protokol Ordinals membedakan Satoshi ini dan memberi nomor unik pada setiap Satoshi. Bagian ini menjelaskan bagaimana kesepakatan ini memberi nomor unik pada setiap Satoshi dan melacak akun di dalamnya. Selain itu, klasifikasi kelangkaan untuk Satoshi juga akan diperkenalkan.

nomor Satoshi

Menurut Perjanjian Ordinals, Satoshi dinomori sesuai dengan urutan penambangannya. Gambar di bawah ini menunjukkan bagaimana Satoshi ke-0 diwakili oleh blok ke-0.

Ada banyak cara untuk mengekspresikan Satoshi:

  1. Simbol integer: Sebagai contoh, 2099994106992659, menunjukkan nomor seri yang diberikan oleh Satoshi sesuai dengan urutan penambangan.
  2. Simbol desimal: Sebagai contoh, 3891094.16797. Angka pertama mengindikasikan tinggi blok di mana Satoshi ditambang, dan angka kedua mengindikasikan jumlah Satoshi dalam blok tersebut.
  3. Simbol derajat: Sebagai contoh, 3°111094′214″16797. Angka pertama adalah periode, diberi nomor mulai dari 0, angka kedua adalah indeks blok untuk separuh era, angka ketiga adalah indeks blok selama periode penyesuaian kesulitan, dan angka terakhir adalah indeks SAT dalam blok.
  4. Persen simbol: Sebagai contoh, 99,99971949060254%, menunjukkan posisi Satoshi dalam pasokan Bitcoin, diekspresikan sebagai persentase.
  5. Nama: Satoshi, misalnya. Nama yang menggunakan karakter a sampai z untuk mengkodekan angka-angka berurutan.

Kami akan menggunakan contoh untuk menjelaskan bagaimana cara menomori Bitcoin yang baru ditambang. Melihat blok ke-795952 dari blockchain Bitcoin, kita dapat melihat bahwa transaksi pertama Tx 3a1f… b177 mencatat hadiah penambang (transaksi Coinbase). Transaksi tersebut mencakup Bitcoin yang baru ditambang, yang merupakan hadiah yang dikemas untuk para penambang, dan biaya pemrosesan yang dibayarkan kepada para penambang oleh inisiator transaksi. Dengan melihat input pada gambar di bawah ini, kita dapat melihat bahwa ID UTxO-nya terdiri dari serangkaian nol dan tinggi blok. Alamat output adalah alamat dompet penambang, dan jumlahnya adalah total dari hadiah dan biaya tersebut di atas.

Jika kita melihat lebih dekat bagian output ke penambang, kita dapat melihat alamat, jumlah, dan distribusi Satoshi yang disertakan. Seperti yang disebutkan sebelumnya, ini termasuk imbalan penambangan dan biaya. Di antaranya, informasi nomor SATS hijau 1941220000000000-1941220625000000 adalah Satoshi baru yang dihasilkan oleh imbalan penambangan, dan 712 catatan Satoshi yang tersisa sesuai dengan semua biaya pemrosesan dalam blok ini.

Kami dapat memverifikasi angka Sat 1941220000000000. Nomor bloknya adalah 795952, dan simbol desimalnya adalah 795952.0, yang berarti bahwa ketinggian blok untuk menambang Satoshi ini adalah 795952, angka dalam blok ini adalah 0, dan kelangkaan yang mengikuti ditandai sebagai tidak umum, yang akan kami bahas lebih detail di bagian-bagian berikutnya.

Sirkulasi pintar

Karena setiap BTC dihasilkan melalui imbalan penambangan, mereka semua dapat dilacak. Akun Bitcoin menggunakan model UTXO. Misalkan pengguna A mendapatkan Satoshi ke-100 hingga ke-110 melalui penambangan (10 Satoshi disimpan utuh dalam UTXO dengan ID yang sama adc123). Ketika pengguna A ingin membayar pengguna B 5 Satoshi, ia memilih untuk menggunakan ID abc123 sebagai masukan untuk transaksi. Dari jumlah tersebut, 5 Satoshi diberikan kepada pengguna B, dan 5 Satoshi dikembalikan kepada pengguna A sebagai nol. Kedua salinan 5 Satoshi ini utuh, disimpan dalam dua UTXO dengan ID abc456 dan abc789, masing-masing. Jumlah ID UTXO dan Satoshi yang disebutkan di atas hanya ditunjukkan sebagai contoh. Dalam keadaan sebenarnya, jumlah minimum Satoshi yang dikirim dibatasi hingga 546, dan ID UTXO tidak diungkapkan dalam bentuk ini.

Dalam transaksi yang dijelaskan di atas, jalur transfer 10 Satoshi Pengguna A adalah:

  1. Pertambangan menghasilkan 10 Satoshi, jumlahnya adalah [100*, 110). *Ini menunjukkan bahwa Satoshi ke-100 hingga ke-109 disimpan di UTXO dengan ID ABC123, dan pemiliknya adalah Pengguna A.
  2. Ketika A mentransfer uang, 10 Satoshi dibagi menjadi 2 bagian, masing-masing 5 Satoshi. Prinsip 'first in, first out' digunakan di sini, yaitu, peringkat nomor Satoshi ditentukan oleh indeks mereka dalam output transaksi. Dengan asumsi bahwa urutan output adalah pengguna A pertama, kemudian pengguna B, maka sisa 5 nomor Satoshi untuk pengguna A adalah [100, 105), disimpan di UTXO dengan ID ABC456, sementara nomor seri 5 Satoshi pengguna B adalah [105, 110), disimpan di UTXO dengan ID ABC789.

Kelangkaan (Langka Satoshi)

Sebagai turunan dari Protokol Ordinals, kelangkaan Satoshi dapat didefinisikan berdasarkan urutan di mana mereka ditambang. Hal ini akan menyebabkan beberapa Satoshi khusus memiliki tingkat kelangkaan yang bervariasi. Inilah seberapa langka berbagai jenis pendengaran:

  1. Tingkat normal umum: Setiap Satoshi selain Satoshi pertama dalam blok (pasokan total adalah 2.100 triliun dolar)
  2. Tingkat Keunggulan Luar Biasa: Satoshi pertama dalam setiap blok (total pasokan adalah 6929999)
  3. Tingkat Langka: Satoshi pertama dalam setiap periode penyesuaian kesulitan (pasokan total adalah 3437)
  4. Tingkat Epik: Pertama Satoshi setelah setiap pemotongan separuh (total pasokan adalah 32)
  5. LENGENDARIS LEGENDARIS LEGENDARIS: Satoshi pertama dari setiap siklus (total pasokan adalah 5)
  6. Level Mitos Mitos: Satoshi pertama dalam blok Genesis (total pasokan adalah 1)

Konsep langka dan cerdas ini dapat menambah kesenangan dan nilai ekosistem Bitcoin. Satoshi dengan tingkat kelangkaan yang berbeda mungkin memiliki nilai yang berbeda di pasar, menarik para kolektor dan investor.

3. metode inskripsi

Ordinals secara signifikan berbeda dari NFT on-chain non-Bitcoin lainnya. Di antaranya, perbedaan utamanya adalah bahwa metadata Ordinals tidak disimpan di lokasi tertentu. Sebaliknya, metadata ini disematkan ke dalam data saksi transaksi (bidang saksi), itulah mengapa kami menyebutnya "inskripsi (inscription)", karena data ini "terukir" seperti inskripsi pada bagian tertentu dari transaksi Bitcoin, dan data ini melekat pada Satoshi tertentu. Proses inskripsi ini dicapai melalui segregated witness (SegWit) dan "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR)). Ini mencakup dua tahap pengajuan (commit) dan pengungkapan (reveal), dan dapat mengukir berbagai bentuk konten (seperti teks, gambar, atau video) pada papan cerdas yang ditentukan. Kami akan memperkenalkan metode penyimpanan langsung lainnya OP_RETURN di bawah ini dan menjelaskan mengapa itu tidak digunakan sebagai sarana inskripsi. Pada saat yang sama, kami akan memperkenalkan apa itu segregated witness dan pay-to-taproot, serta peran apa yang mereka mainkan dalam inskripsi. Pada akhirnya, kami akan memperkenalkan bagaimana inskripsi dibuat.

OP_RETURE

Pada versi 0.9 dari klien Bitcoin Core, kompromi akhirnya dicapai dengan menggunakan operator RETURN. RETURN memungkinkan pengembang menambahkan 80 byte data non-pembayaran ke output transaksi. Tidak seperti pembayaran palsu, RETURN menciptakan output yang tidak dapat disangkal dan diverifikasi; data tersebut tidak perlu disimpan dalam set UTXO. Output RETURN direkam di blockchain. Mereka mengonsumsi ruang disk dan juga menyebabkan blockchain berkembang dalam ukuran, tetapi karena mereka tidak disimpan dalam konsentrasi UTXO, mereka tidak memperluas pool memori UTXO, apalagi meningkatkan biaya memori yang mahal dari node keseluruhan.

Meskipun OP_RETURN adalah cara yang sangat langsung untuk menyimpan informasi ke blockchain Bitcoin, itu juga merupakan metode inskripsi potensial. Namun, keterbatasan OP_RETURN membuatnya menghadapi beberapa tantangan saat menangani penyimpanan metadata. Pertama, OP_RETURN hanya dapat menyimpan 80 byte data, dan untuk situasi di mana jumlah data yang lebih besar perlu disimpan, keterbatasan ini jelas tidak mungkin dipenuhi. Kedua, data OP_RETURN disimpan di bagian output transaksi. Meskipun data ini tidak disimpan secara terpusat di UTXO, hal ini menyebabkan peningkatan ruang penyimpanan blockchain, yang mengakibatkan peningkatan ukuran blockchain. Terakhir, penggunaan OP_RETURN mengakibatkan biaya transaksi yang lebih tinggi karena memerlukan pembayaran lebih untuk memposting transaksi-transaksi ini.

Saksi karantina

Sebaliknya, SegWit menyediakan pendekatan baru yang dapat mengatasi masalah-masalah ini. SegWit adalah pembaruan protokol penting untuk Bitcoin. Ini diusulkan oleh pengembang inti Bitcoin, Pieter Wuille pada tahun 2015 dan akhirnya diadopsi secara resmi dalam versi 0.16.0 pada tahun 2017. Segregated dalam segregated witness berarti pemisahan atau isolasi, dan witness adalah tanda tangan yang terkait dengan transaksi. Oleh karena itu, SegWit memisahkan data tanda tangan transaksi tertentu (data saksi) dari transaksi.

Manfaat utama dari memisahkan tanda tangan dari data terkait transaksi adalah pengurangan ukuran data yang disimpan dalam blok Bitcoin. Dengan cara ini, setiap blok memiliki kapasitas tambahan untuk menyimpan lebih banyak transaksi, yang juga berarti bahwa jaringan dapat memproses lebih banyak transaksi dan pengirim membayar biaya pemrosesan yang lebih rendah. Secara teknis, informasi tanda tangan skrip (scriptSig) diambil dari struktur dasar (blok dasar) dan ditempatkan dalam struktur data baru. Node dan penambang yang melakukan pekerjaan verifikasi juga akan memverifikasi tanda tangan skrip dalam struktur data baru ini untuk memastikan bahwa transaksi valid. Pembaruan Segwit memperkenalkan bidang saksi baru dalam output transaksi untuk memastikan privasi dan kinerja. Meskipun data saksi tidak dirancang untuk penyimpanan data, sebenarnya memberi kita kesempatan untuk menyimpan hal-hal seperti metadata inskripsi. Mari gunakan gambar berikut untuk lebih memahami saksi karantina:

Taproot

P2TR adalah jenis output transaksi untuk Bitcoin. Itu diperkenalkan dalam upgrade Taproot pada tahun 2021. Ini memungkinkan kondisi transaksi yang berbeda disimpan lebih privat di blockchain. Dalam inskripsi Ordinals, P2TR memainkan peran penting. Secara esensial, inskripsi menyematkan konten data spesifik ke transaksi Bitcoin, dan upgrade Taproot, khususnya P2TR, telah membuat data yang tertanam ini lebih fleksibel dan ekonomis.

Pertama, karena metode penyimpanan skrip Taproot, kita dapat menyimpan konten inskripsi dalam skrip pengeluaran jalur skrip Taproot ini. Skrip ini hampir tidak memiliki batasan pada konten, dan pada saat yang sama juga dapat memperoleh diskon pada data saksi, menjadikannya relatif ekonomis untuk menyimpan konten inskripsi. Karena penggunaan skrip Taproot hanya dapat dilakukan dari output Taproot yang sudah ada, inskripsi menggunakan proses pengajuan/pengungkapan dua tahap. Pertama, dalam mengajukan transaksi, output Taproot dibuat yang menjanjikan skrip yang berisi konten inskripsi. Kemudian, dalam transaksi pengungkapan, output yang dibuat dengan mengajukan transaksi dikonsumsi, sehingga mengungkapkan konten inskripsi di rantai.

Pendekatan ini telah sangat mengurangi konsumsi sumber daya. Jika P2TR tidak digunakan, informasi saksi disimpan di output transaksi. Dengan cara ini, selama output ini tidak dikonsumsi, informasi saksi akan selalu disimpan di dalam pool UTXO. Sebaliknya, jika P2TR digunakan, informasi saksi tidak akan muncul dalam transaksi yang dihasilkan selama fase pengajuan, sehingga tidak akan ditulis ke set UTXO. Hanya ketika UTXO ini dihabiskan, informasi saksi akan muncul di input transaksi selama fase pengungkapan. P2TR memungkinkan metadata ditulis ke blockchain Bitcoin, tetapi tidak pernah muncul di UTXO. Karena mempertahankan/memodifikasi set UTXO memerlukan lebih banyak sumber daya, pendekatan ini dapat menghemat sumber daya yang signifikan.

inskripsi

Protokol Ordinals menggunakan SegWit untuk melonggarkan pembatasan ukuran pada konten yang ditulis ke jaringan Bitcoin, menyimpan konten prasasti dalam data saksi. Ini memungkinkannya untuk menyimpan metadata hingga 4MB. Taproot membuatnya lebih mudah untuk menyimpan data saksi sewenang-wenang dalam transaksi Bitcoin, memungkinkan pengembang Ordinals Casey Rodarmor untuk menggunakan kembali opcode lama (OP_FALSE, OP_IF, OP_PUSH) untuk menyimpan data sewenang-wenang dalam apa yang ia gambarkan sebagai "amplop" yang disebut "prasasti."

Proses untuk mencetak sebuah inskripsi terdiri dari dua langkah berikut:

Pertama, diperlukan untuk membuat sebuah janji dalam transaksi pengiriman ke output Taproot dari skrip yang berisi konten dari inskripsi. Format penyimpanan adalah Taproot, yaitu, output dari transaksi sebelumnya adalah P2TR (Bayar-Kepada-Taproot), dan input dari transaksi terakhir menyematkan konten dalam format tertentu dalam skrip Taproot yang disaksikan; string ord pertama-tama ditumpuk untuk menghilangkan ambiguitas bahwa inskripsi memiliki penggunaan lain. OP_PUSH 1 menunjukkan bahwa dorongan selanjutnya berisi jenis konten, dan OP_PUSH 0 menunjukkan bahwa dorongan data berikutnya memasukkan konten itu sendiri. Inskripsi besar harus menggunakan dorongan data ganda karena salah satu dari sedikit batasan taproot adalah bahwa satu dorongan data tidak boleh lebih besar dari 520 byte. Pada titik ini, data inskripsi telah diterapkan ke output UTXO dari transaksi, tetapi belum diungkapkan.

Kedua, penting untuk mengungkapkan output yang dibuat oleh transaksi pengajuan pembelian dalam transaksi. Pada tahap ini, transaksi diinisiasi dengan menggunakan UTXO yang sesuai dengan inskripsi tersebut sebagai input. Pada titik ini, konten dari inskripsi yang sesuai dibuat menjadi publik ke seluruh jaringan.

Melalui dua langkah di atas, konten inskripsi telah terikat pada UTXO yang terukir. Selain itu, sesuai dengan posisi Satoshi yang dijelaskan di atas, inskripsi dilakukan pada Satoshi pertama yang sesuai dengan input UTXO, dan konten inskripsi disertakan dalam input yang menunjukkan transaksi. Menurut pengantar sirkulasi dan pelacakan Satoshi yang dijelaskan di atas, Satoshi ini, yang terukir dengan konten khusus, dapat ditransfer, dibeli, dijual, hilang, dan dipulihkan. Perlu diingat bahwa inskripsi tidak dapat diulang, jika tidak inskripsi berikutnya tidak akan valid.

Kami akan menjelaskan proses ini secara rinci dengan cara mengukir contoh gambar NFT BTC kecil. Proses ini terutama mencakup dua tahap pengajuan (commit) dan pengungkapan (reveal) yang disebutkan sebelumnya. Pertama, kita melihat bahwa ID Hash untuk transaksi pertama adalah 2ddf9... f585c. Dapat dicatat bahwa output dari transaksi ini tidak termasuk data saksi, dan tidak ada inskripsi relevan pada halaman tersebut.

Selanjutnya, mari kita lihat catatan tahap kedua. ID hash adalah e7454... 7c0e1. Di sini, kita dapat melihat informasi tentang Insripsi Ordinals, yaitu, konten dari inskripsi saksi. Alamat input untuk transaksi ini adalah alamat output dari transaksi sebelumnya, dan output 0.00000546 BTC (546 Satoshi) mengirimkan NFT ini ke alamatnya sendiri. Pada saat yang sama, kita juga dapat menggunakan Sat Find Satoshi di mana inskripsi ini terletak di 1893640468329373.

Di dompet Bitcoin, kita bisa melihat aset ini. Jika kita ingin melakukan perdagangan NFT ini, kita bisa mengirimkannya langsung ke alamat orang lain, yaitu mengirimkan UTXO ini, dan ini menyelesaikan sirkulasi inskripsi.

4. Dompet Bitcoin

Setelah kita mempelajari tentang ekosistem Ordinals, peredaran Satoshi, dan pengetahuan terkait tentang inskripsi, saat ini ada banyak skenario aplikasi. Baik itu munculnya perjanjian turunan terkait seperti BRC-20, ORC-20, BRC-721, GBRC-721, dll., kita memerlukan dompet yang sesuai untuk mendukung dan menampilkan informasi token atau gambar NFT kecil. Dalam bagian ini, kami akan memperkenalkan konsep dan karakteristik alamat dompet Bitcoin yang berbeda.

Alamat Bitcoin dimulai dengan 1, 3, atau bc1. Sama seperti alamat email, mereka dapat dibagikan dengan pengguna Bitcoin lain yang dapat menggunakannya untuk mengirim bitcoin langsung ke dompet mereka. Dari sudut pandang keamanan, alamat Bitcoin tidak memiliki konten sensitif. Ini dapat diposting di mana saja tanpa membahayakan keamanan akun. Berbeda dengan alamat email, kita dapat membuat alamat baru kapan pun diperlukan, yang semuanya akan menyetor dana langsung ke dompet Anda. Bahkan, banyak dompet modern secara otomatis membuat alamat baru untuk setiap transaksi guna memaksimalkan privasi. Dompet hanyalah kumpulan alamat dan kunci untuk membuka dana di dalamnya. Pertama, kita perlu tahu bagaimana alamat dompet Bitcoin dihasilkan.

Kunci privat dan publik Bitcoin

Bitcoin menggunakan kurva elips secp256k1. "Kunci pribadi" adalah angka acak antara 1 dan n-1. n adalah bilangan besar (256 bit), dan n dinyatakan dalam notasi ilmiah tentang 1,15792*10^77. Ruang lingkupnya sangat luas, dan hampir tidak mungkin bagi kita untuk menebak kunci pribadi orang lain. Kunci pribadi bilangan bulat acak ini dapat digunakan 256 bit menunjukkan bahwa ada banyak cara untuk menyandikan. Jika kunci privat menggunakan WIF atau WIF-compressed tidak dienkripsi, "bilangan bulat acak" asli dapat diperoleh dengan decoding. Metode lain adalah BIP38. Diusulkan untuk menggunakan algoritma AES untuk mengenkripsi kunci pribadi. Kunci pribadi yang diperoleh oleh skema ini dimulai dengan karakter 6P. Kunci pribadi ini harus diimpor ke berbagai dompet Bitcoin. Ini adalah kunci pribadi yang biasa kita gunakan.

Kemudian kami akan menggunakan formula kurva eliptis K = kG untuk menghasilkan kunci publik Bitcoin K dari kunci privat k. G adalah titik dasar, yang merupakan parameter secp256k1. Anda dapat mendapatkan dua koordinat K, yang merupakan dua ekspresi kunci publik, "Format Tak Tertekan" dan "Format Tertekan", masing-masing.

  1. Bentuk tak terkompresi adalah dengan langsung menghubungkan dua koordinat x dan y, lalu menambahkan awalan 0x04 di depannya;
  2. Bentuk yang terkompresi adalah ketika y adalah nomor genap, kode tersebut adalah 02 x, dan ketika y adalah nomor ganjil, kode tersebut adalah 03 x;

alamat Bitcoin

Berbagai jenis alamat Bitcoin dapat dilihat dalam gambar berikut. Ada empat cara untuk mengekspresikannya:

1. Format Warisan (P2PKH)

Contoh: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u

Alamat yang dimulai dengan “1” adalah format alamat Bitcoin asli dan masih digunakan hingga saat ini. Diperoleh dari kunci publik melalui perhitungan hash, juga dikenal sebagai P2PKH, singkatan dari Pay To PubKey Hash (pembayaran ke hash kunci publik).

2. Format SegWit Bersarang (P2SH)

Contoh: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan

Alamat dimulai dengan "3". P2SH adalah singkatan dari Pay To Script Hash (Pay To Script Hash), yang mendukung fitur yang lebih kompleks daripada alamat Legacy. P2SH bertingkat mendapatkan alamat P2SH yang sudah ada (dimulai dengan "3") dan mengemasnya dengan alamat SegWit.

3. Format Native SegWit (Bech32)

Alamat yang dimulai dengan bc1 diusulkan dalam BIP0173; mereka adalah alamat saksi karantina asli. Alamat yang dienkripsi Bech32 adalah format alamat yang dikembangkan khusus untuk SegWit. Bech32 didefinisikan dalam BIP173 pada akhir 2017. Salah satu fitur utama format ini adalah bahwa tidak sensitif terhadap huruf besar kecil (alamat hanya berisi 0-9, az), sehingga dapat efektif menghindari kebingungan dan lebih mudah dibaca saat memasukkan. Karena membutuhkan lebih sedikit karakter dalam alamat, alamat menggunakan enkripsi Base32 alih-alih Base58 tradisional, yang lebih nyaman dan efisien untuk dihitung. Data dapat disimpan lebih rapat dalam kode QR. Bech32 memberikan keamanan yang lebih tinggi, mengoptimalkan kode verifikasi dan deteksi kesalahan, dan meminimalkan kemungkinan alamat yang tidak valid.

Alamat Bech32 itu sendiri kompatibel dengan SegWit. Tidak ada ruang tambahan yang diperlukan untuk menempatkan alamat SegWit ke dalam alamat P2SH, sehingga menggunakan alamat format Bech32, biaya pemrosesan akan lebih rendah. Alamat Bech32 memiliki beberapa keunggulan dibandingkan dengan alamat lama Base58 (Pengkodean Base58Check digunakan untuk mengkodekan larik byte dalam Bitcoin ke dalam string yang dapat dienkripsi manusia): Kode QR lebih kecil; mereka lebih tahan kesalahan; mereka lebih aman; mereka tidak peka huruf besar-kecil; mereka hanya terdiri dari huruf kecil, sehingga lebih mudah dibaca, ketik, dan dipahami.

Format Taproot (P2TR)

Bech32 memiliki kekurangan: jika karakter terakhir dalam alamat adalah p, menyisipkan atau menghapus sejumlah karakter q segera sebelum p tidak akan membuat checksum-nya tidak valid.

Untuk mengurangi kekurangan di atas dari Bech32, alamat Bech32M diusulkan dalam BIP0350:

  1. Untuk alamat saksi terpisah asli dengan versi 0, gunakan Bech32 sebelumnya;
  2. Untuk alamat saksi karantina asli dengan versi 1 (atau lebih tinggi), gunakan Bech32M baru.

Untuk alamat Bech32M, ketika versi adalah 1, mereka selalu dimulai dengan bc1p (yaitu alamat Taproot). Secara khusus, seperti saksi karantina lokal, dompet bisa terdiri dari frasa benih dan frasa sandi. Mereka digunakan untuk menghasilkan kunci publik dan pribadi yang diperluas, dan digunakan untuk mendapatkan alamat untuk jalur sembarang di dompet deterministik hierarkis. Terutama NFT yang menyimpan BRC-20 dan BTC.

5. Tentang Kami

Spectrum Labs adalah tim dari para master dan PhD yang fokus pada penelitian blockchain, serta veteran di dalam industri blockchain. Kami berkomitmen pada teknologi rantai penelitian blockchain dan aplikasinya untuk membantu orang memahami blockchain dengan lebih baik. Bisnis utama Spectrum Labs meliputi penulisan laporan penelitian, penulisan kursus, dan pengembangan alat.

Komunitas Cina NFT BTC adalah platform pertukaran Cina NFT BTC untuk para pemula Cina dari seluruh dunia.

Penyangkalan:

  1. Artikel ini diambil dari [Laboratorium Spektrum]. Semua hak cipta milik penulis asli [Ash Li, Noah Ho]. Jika ada keberatan terhadap penerbitan ulang ini, silakan hubungi Gerbang Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang diungkapkan dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Pelajari prinsip-prinsip Protokol Ordinals dan inskripsi Bitcoin dalam satu artikel

Lanjutan1/1/2024, 4:54:08 AM
Artikel ini menjelaskan detail teknis dari protokol Ordinals dan evolusi detail alamat BTC.

Dengan lahirnya Protokol Ordinals, Bitcoin diberikan fungsi penomoran dan inskripsi, sehingga memperluas jangkauan produk ekosistem Bitcoin dan membawa vitalitas baru ke ekosistem Bitcoin. Dalam artikel ini, kita akan membahas detail Protokol Ordinal, termasuk bagaimana setiap Bitcoin dinomori dan dilacak, dan hubungan antara inskripsi dan nomor. Tetapi sebelum kita lebih dalam ke topik ini, kita perlu memahami beberapa latar belakang dasar Bitcoin untuk membantu kita memahami apa yang akan datang.

Setelah membaca artikel ini, Anda akan menguasai mekanisme transaksi Bitcoin dan model pembayaran, belajar bagaimana Ordinals dapat menghitung dan melacak setiap Satoshi, dan bagaimana inskripsi diciptakan dan diperdagangkan. Selain itu, Anda akan mempelajari perbedaan antara berbagai jenis dompet.

I. Latar Belakang Bitcoin

Bitcoin menggunakan model transaksi mirip tunai (sistem tunai), dan metode pembayarannya didasarkan pada model yang disebut UTXO, yang berbeda dari model tradisional berdasarkan saldo rekening. Sebagai contoh, dalam proses model pencatatan buku rekening bank, ketika A mentransfer 100 yuan ke B, bank mencatat tiga langkah. Tiga langkah ini membentuk proses transaksi. Langkah pertama adalah mengurangi 100 yuan dari rekening A. ID catatan untuk langkah ini adalah tid1. Langkah kedua adalah mendepositkan 100 yuan ke rekening B. ID catatan untuk langkah ini adalah tid2. Langkah ketiga adalah mencatat catatan transfer. Catatan ini menghubungkan tid1 dan tid2, menunjukkan pengurangan 100 yuan untuk rekening A dan penambahan 100 yuan untuk rekening B. Dengan cara ini, hubungan transfer antara A dan B dicatat dan dapat ditanyakan dan dilacak di masa mendatang. Sekarang, kita akan menjelaskan metode pembayaran Bitcoin melalui pengenalan UTXO dan model pembayaran.

UTXO

Dalam blockchain Bitcoin, semua saldo disimpan dalam daftar yang disebut “Unspent Transaction Output (UTXO)” (Keluaran Transaksi yang Belum Digunakan). Setiap UTXO berisi sejumlah bitcoin tertentu, bersama dengan informasi tentang pemilik bitcoin tersebut, dan menunjukkan apakah mereka tersedia. Bayangkan ini sebagai cek tunai dengan nama pemegangnya. Selama pemegangnya menandatanganinya, Anda dapat mentransfer hak untuk menggunakannya ke orang lain. Untuk alamat tertentu, semua jumlah UTXO-nya dijumlahkan untuk saldo dompet alamat tersebut. Dengan menjelajahi semua UTXO, kita dapat mendapatkan saldo saat ini untuk setiap alamat. Jumlah semua jumlah UTXO adalah jumlah total bitcoin yang beredar saat ini.

Dalam struktur transaksi Bitcoin, setiap transaksi mencakup beberapa input dan output. Setiap input adalah referensi ke UTXO yang ada, dan setiap output menentukan alamat penerimaan dana baru dan jumlah yang sesuai. Setelah transaksi dimulai, UTXO yang dirujuk dalam bagian input sementara dikunci untuk mencegah penggunaan ulang sampai transaksi selesai. Hanya ketika transaksi berhasil dikemas ke dalam blok (Blok) oleh penambang dan dikonfirmasi oleh jaringan, status UTXO yang relevan akan berubah. Secara khusus, UTXO yang digunakan untuk input transaksi akan dihapus dari daftar UTXO, menunjukkan bahwa mereka telah digunakan, dan output transaksi akan menghasilkan UTXO baru dan ditambahkan ke daftar UTXO. Ini bisa dimengerti bahwa cek tunai lama digunakan dan kemudian menjadi tidak valid, menciptakan cek tunai baru, yang dimiliki oleh pemegang baru.

Sangat penting untuk menekankan bahwa setiap UTXO hanya dapat digunakan sekali dalam satu transaksi. Begitu digunakan sebagai input, itu secara permanen dihapus dari daftar UTXO. Sementara itu, output yang baru dihasilkan ditambahkan ke daftar sebagai UTXO baru. Daftar UTXO terus berubah, dan ketika setiap blok baru dibuat, itu diperbarui sesuai. Juga, dengan menganalisis sejarah transaksi di blockchain, kita dapat merekonstruksi status daftar UTXO kapan saja.

Juga, jumlah input total dari sebuah transaksi biasanya sedikit melebihi jumlah output totalnya. Perbedaan ini, disebut biaya transaksi (biaya transaksi) atau biaya jaringan (biaya jaringan), diberikan sebagai insentif kepada para penambang yang bertanggung jawab atas pengemasan transaksi ke dalam blok. Besarnya biaya jaringan berbanding lurus dengan kompleksitas transaksi, sehingga transaksi dengan lebih banyak input dan output biasanya memerlukan biaya jaringan yang lebih tinggi.

Sekarang, untuk lebih memahami struktur transaksi Bitcoin, kita akan melakukan analisis mendalam melalui contoh spesifik. Struktur transaksi Bitcoin adalah sebagai berikut. Dua variabel vin dan vout mewakili "input" dan "output" dari transaksi Bitcoin, masing-masing. Transaksi Bitcoin tidak seperti model saldo akun tradisional yang mencatat perubahan data akun, tetapi diungkapkan melalui input dan output.

Kita dapat secara acak memilih catatan transaksi di blockchain.com untuk dianalisis. Angka di bawah ini menunjukkan ID hash adalah transaksi 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2. Ini berisi satu input dan dua output.

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

Dalam jaringan Bitcoin, output transaksi mengandung dua informasi penting: alamat (hash kunci publik) dan jumlah (dalam bitcoins). Jika output dari satu transaksi tidak digunakan sebagai input transaksi lainnya, maka output transaksi ini disebut sebagai unspent transaction output (UTXO). Siapa pun yang memiliki kunci pribadi yang sesuai dengan kunci publik di UTXO berhak untuk menggunakan (yaitu, menghabiskan) UTXO ini.

Mari kita lihat informasi di "vin" dalam kode di atas, yang menunjukkan bahwa UTXO yang dihabiskan pada pertukaran ini berasal dari transaksi lain (id-nya adalah 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18). Kita dapat menemukan jumlah UTXO ini dari transaksi historis (misalnya, 0.1), Oleh karena itu, dalam transaksi ini, pengguna menghabiskan 0.1 BTC. Nilai 0.1 tidak perlu ditulis secara eksplisit dalam transaksi, tetapi diperoleh dengan mencari informasi UTXO. "Vout" dari transaksi ini memiliki dua output. Kedua output ini adalah dua UTXO baru, yang sesuai dengan saldo baru dan pemegangnya hingga transaksi lain mengonsumsinya sebagai input.

  1. Untuk pengguna A, pertama-tama perlu menentukan semua set UTXO yang dimilikinya, yaitu, semua bitcoin yang dapat dikendalikan pengguna A;
  2. A memilih satu atau lebih UTXO dari himpunan ini sebagai input ke transaksi. Jumlah dari jumlah input ini adalah m (2+0.8+0.5 = 3.3 BTC) lebih besar dari jumlah yang akan dibayarkan n (3 BTC);
  3. Pengguna A menetapkan dua output untuk transaksi. Satu output dibayarkan ke alamat B, jumlahnya adalah n (3 BTC), dan output lainnya dibayarkan ke alamat nol milik A sendiri. Jumlahnya adalah m-n-fee (3.3-3-0.001 = 0.299) BTC). Dompet pengguna biasanya terdiri dari beberapa alamat. Biasanya, setiap alamat hanya digunakan sekali, dan nol dikembalikan ke alamat baru secara default;
  4. Setelah penambang memaketkan transaksi ini di rantai dan mengonfirmasinya, B dapat menerima informasi transaksi. Karena ada batas atas pada ukuran blok (sekitar 1 MB), penambang memberikan prioritas untuk mengonfirmasi transaksi dengan tingkat transaksi tinggi (fee_rate=fee/size) untuk mendapatkan pengembalian biaya tertinggi. Kami dapat melihat situasi biaya transaksi penambangan real-time di mempoolJika kita menginginkan konfirmasi tercepat selama proses transfer, kita dapat memilih Prioritas Tinggi (High Priority) atau Kustom (custom) dengan tarif transaksi yang sesuai.

II. Nomor dan Pelacakan Satoshi

Jumlah total bitcoin adalah 21 juta, dan setiap bitcoin berisi 10^8 Satoshi (Satoshi, Sat). Sebagai hasilnya, ada 21 juta*10^8 satoshi di jaringan Bitcoin. Protokol Ordinals membedakan Satoshi ini dan memberi nomor unik pada setiap Satoshi. Bagian ini menjelaskan bagaimana kesepakatan ini memberi nomor unik pada setiap Satoshi dan melacak akun di dalamnya. Selain itu, klasifikasi kelangkaan untuk Satoshi juga akan diperkenalkan.

nomor Satoshi

Menurut Perjanjian Ordinals, Satoshi dinomori sesuai dengan urutan penambangannya. Gambar di bawah ini menunjukkan bagaimana Satoshi ke-0 diwakili oleh blok ke-0.

Ada banyak cara untuk mengekspresikan Satoshi:

  1. Simbol integer: Sebagai contoh, 2099994106992659, menunjukkan nomor seri yang diberikan oleh Satoshi sesuai dengan urutan penambangan.
  2. Simbol desimal: Sebagai contoh, 3891094.16797. Angka pertama mengindikasikan tinggi blok di mana Satoshi ditambang, dan angka kedua mengindikasikan jumlah Satoshi dalam blok tersebut.
  3. Simbol derajat: Sebagai contoh, 3°111094′214″16797. Angka pertama adalah periode, diberi nomor mulai dari 0, angka kedua adalah indeks blok untuk separuh era, angka ketiga adalah indeks blok selama periode penyesuaian kesulitan, dan angka terakhir adalah indeks SAT dalam blok.
  4. Persen simbol: Sebagai contoh, 99,99971949060254%, menunjukkan posisi Satoshi dalam pasokan Bitcoin, diekspresikan sebagai persentase.
  5. Nama: Satoshi, misalnya. Nama yang menggunakan karakter a sampai z untuk mengkodekan angka-angka berurutan.

Kami akan menggunakan contoh untuk menjelaskan bagaimana cara menomori Bitcoin yang baru ditambang. Melihat blok ke-795952 dari blockchain Bitcoin, kita dapat melihat bahwa transaksi pertama Tx 3a1f… b177 mencatat hadiah penambang (transaksi Coinbase). Transaksi tersebut mencakup Bitcoin yang baru ditambang, yang merupakan hadiah yang dikemas untuk para penambang, dan biaya pemrosesan yang dibayarkan kepada para penambang oleh inisiator transaksi. Dengan melihat input pada gambar di bawah ini, kita dapat melihat bahwa ID UTxO-nya terdiri dari serangkaian nol dan tinggi blok. Alamat output adalah alamat dompet penambang, dan jumlahnya adalah total dari hadiah dan biaya tersebut di atas.

Jika kita melihat lebih dekat bagian output ke penambang, kita dapat melihat alamat, jumlah, dan distribusi Satoshi yang disertakan. Seperti yang disebutkan sebelumnya, ini termasuk imbalan penambangan dan biaya. Di antaranya, informasi nomor SATS hijau 1941220000000000-1941220625000000 adalah Satoshi baru yang dihasilkan oleh imbalan penambangan, dan 712 catatan Satoshi yang tersisa sesuai dengan semua biaya pemrosesan dalam blok ini.

Kami dapat memverifikasi angka Sat 1941220000000000. Nomor bloknya adalah 795952, dan simbol desimalnya adalah 795952.0, yang berarti bahwa ketinggian blok untuk menambang Satoshi ini adalah 795952, angka dalam blok ini adalah 0, dan kelangkaan yang mengikuti ditandai sebagai tidak umum, yang akan kami bahas lebih detail di bagian-bagian berikutnya.

Sirkulasi pintar

Karena setiap BTC dihasilkan melalui imbalan penambangan, mereka semua dapat dilacak. Akun Bitcoin menggunakan model UTXO. Misalkan pengguna A mendapatkan Satoshi ke-100 hingga ke-110 melalui penambangan (10 Satoshi disimpan utuh dalam UTXO dengan ID yang sama adc123). Ketika pengguna A ingin membayar pengguna B 5 Satoshi, ia memilih untuk menggunakan ID abc123 sebagai masukan untuk transaksi. Dari jumlah tersebut, 5 Satoshi diberikan kepada pengguna B, dan 5 Satoshi dikembalikan kepada pengguna A sebagai nol. Kedua salinan 5 Satoshi ini utuh, disimpan dalam dua UTXO dengan ID abc456 dan abc789, masing-masing. Jumlah ID UTXO dan Satoshi yang disebutkan di atas hanya ditunjukkan sebagai contoh. Dalam keadaan sebenarnya, jumlah minimum Satoshi yang dikirim dibatasi hingga 546, dan ID UTXO tidak diungkapkan dalam bentuk ini.

Dalam transaksi yang dijelaskan di atas, jalur transfer 10 Satoshi Pengguna A adalah:

  1. Pertambangan menghasilkan 10 Satoshi, jumlahnya adalah [100*, 110). *Ini menunjukkan bahwa Satoshi ke-100 hingga ke-109 disimpan di UTXO dengan ID ABC123, dan pemiliknya adalah Pengguna A.
  2. Ketika A mentransfer uang, 10 Satoshi dibagi menjadi 2 bagian, masing-masing 5 Satoshi. Prinsip 'first in, first out' digunakan di sini, yaitu, peringkat nomor Satoshi ditentukan oleh indeks mereka dalam output transaksi. Dengan asumsi bahwa urutan output adalah pengguna A pertama, kemudian pengguna B, maka sisa 5 nomor Satoshi untuk pengguna A adalah [100, 105), disimpan di UTXO dengan ID ABC456, sementara nomor seri 5 Satoshi pengguna B adalah [105, 110), disimpan di UTXO dengan ID ABC789.

Kelangkaan (Langka Satoshi)

Sebagai turunan dari Protokol Ordinals, kelangkaan Satoshi dapat didefinisikan berdasarkan urutan di mana mereka ditambang. Hal ini akan menyebabkan beberapa Satoshi khusus memiliki tingkat kelangkaan yang bervariasi. Inilah seberapa langka berbagai jenis pendengaran:

  1. Tingkat normal umum: Setiap Satoshi selain Satoshi pertama dalam blok (pasokan total adalah 2.100 triliun dolar)
  2. Tingkat Keunggulan Luar Biasa: Satoshi pertama dalam setiap blok (total pasokan adalah 6929999)
  3. Tingkat Langka: Satoshi pertama dalam setiap periode penyesuaian kesulitan (pasokan total adalah 3437)
  4. Tingkat Epik: Pertama Satoshi setelah setiap pemotongan separuh (total pasokan adalah 32)
  5. LENGENDARIS LEGENDARIS LEGENDARIS: Satoshi pertama dari setiap siklus (total pasokan adalah 5)
  6. Level Mitos Mitos: Satoshi pertama dalam blok Genesis (total pasokan adalah 1)

Konsep langka dan cerdas ini dapat menambah kesenangan dan nilai ekosistem Bitcoin. Satoshi dengan tingkat kelangkaan yang berbeda mungkin memiliki nilai yang berbeda di pasar, menarik para kolektor dan investor.

3. metode inskripsi

Ordinals secara signifikan berbeda dari NFT on-chain non-Bitcoin lainnya. Di antaranya, perbedaan utamanya adalah bahwa metadata Ordinals tidak disimpan di lokasi tertentu. Sebaliknya, metadata ini disematkan ke dalam data saksi transaksi (bidang saksi), itulah mengapa kami menyebutnya "inskripsi (inscription)", karena data ini "terukir" seperti inskripsi pada bagian tertentu dari transaksi Bitcoin, dan data ini melekat pada Satoshi tertentu. Proses inskripsi ini dicapai melalui segregated witness (SegWit) dan "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR)). Ini mencakup dua tahap pengajuan (commit) dan pengungkapan (reveal), dan dapat mengukir berbagai bentuk konten (seperti teks, gambar, atau video) pada papan cerdas yang ditentukan. Kami akan memperkenalkan metode penyimpanan langsung lainnya OP_RETURN di bawah ini dan menjelaskan mengapa itu tidak digunakan sebagai sarana inskripsi. Pada saat yang sama, kami akan memperkenalkan apa itu segregated witness dan pay-to-taproot, serta peran apa yang mereka mainkan dalam inskripsi. Pada akhirnya, kami akan memperkenalkan bagaimana inskripsi dibuat.

OP_RETURE

Pada versi 0.9 dari klien Bitcoin Core, kompromi akhirnya dicapai dengan menggunakan operator RETURN. RETURN memungkinkan pengembang menambahkan 80 byte data non-pembayaran ke output transaksi. Tidak seperti pembayaran palsu, RETURN menciptakan output yang tidak dapat disangkal dan diverifikasi; data tersebut tidak perlu disimpan dalam set UTXO. Output RETURN direkam di blockchain. Mereka mengonsumsi ruang disk dan juga menyebabkan blockchain berkembang dalam ukuran, tetapi karena mereka tidak disimpan dalam konsentrasi UTXO, mereka tidak memperluas pool memori UTXO, apalagi meningkatkan biaya memori yang mahal dari node keseluruhan.

Meskipun OP_RETURN adalah cara yang sangat langsung untuk menyimpan informasi ke blockchain Bitcoin, itu juga merupakan metode inskripsi potensial. Namun, keterbatasan OP_RETURN membuatnya menghadapi beberapa tantangan saat menangani penyimpanan metadata. Pertama, OP_RETURN hanya dapat menyimpan 80 byte data, dan untuk situasi di mana jumlah data yang lebih besar perlu disimpan, keterbatasan ini jelas tidak mungkin dipenuhi. Kedua, data OP_RETURN disimpan di bagian output transaksi. Meskipun data ini tidak disimpan secara terpusat di UTXO, hal ini menyebabkan peningkatan ruang penyimpanan blockchain, yang mengakibatkan peningkatan ukuran blockchain. Terakhir, penggunaan OP_RETURN mengakibatkan biaya transaksi yang lebih tinggi karena memerlukan pembayaran lebih untuk memposting transaksi-transaksi ini.

Saksi karantina

Sebaliknya, SegWit menyediakan pendekatan baru yang dapat mengatasi masalah-masalah ini. SegWit adalah pembaruan protokol penting untuk Bitcoin. Ini diusulkan oleh pengembang inti Bitcoin, Pieter Wuille pada tahun 2015 dan akhirnya diadopsi secara resmi dalam versi 0.16.0 pada tahun 2017. Segregated dalam segregated witness berarti pemisahan atau isolasi, dan witness adalah tanda tangan yang terkait dengan transaksi. Oleh karena itu, SegWit memisahkan data tanda tangan transaksi tertentu (data saksi) dari transaksi.

Manfaat utama dari memisahkan tanda tangan dari data terkait transaksi adalah pengurangan ukuran data yang disimpan dalam blok Bitcoin. Dengan cara ini, setiap blok memiliki kapasitas tambahan untuk menyimpan lebih banyak transaksi, yang juga berarti bahwa jaringan dapat memproses lebih banyak transaksi dan pengirim membayar biaya pemrosesan yang lebih rendah. Secara teknis, informasi tanda tangan skrip (scriptSig) diambil dari struktur dasar (blok dasar) dan ditempatkan dalam struktur data baru. Node dan penambang yang melakukan pekerjaan verifikasi juga akan memverifikasi tanda tangan skrip dalam struktur data baru ini untuk memastikan bahwa transaksi valid. Pembaruan Segwit memperkenalkan bidang saksi baru dalam output transaksi untuk memastikan privasi dan kinerja. Meskipun data saksi tidak dirancang untuk penyimpanan data, sebenarnya memberi kita kesempatan untuk menyimpan hal-hal seperti metadata inskripsi. Mari gunakan gambar berikut untuk lebih memahami saksi karantina:

Taproot

P2TR adalah jenis output transaksi untuk Bitcoin. Itu diperkenalkan dalam upgrade Taproot pada tahun 2021. Ini memungkinkan kondisi transaksi yang berbeda disimpan lebih privat di blockchain. Dalam inskripsi Ordinals, P2TR memainkan peran penting. Secara esensial, inskripsi menyematkan konten data spesifik ke transaksi Bitcoin, dan upgrade Taproot, khususnya P2TR, telah membuat data yang tertanam ini lebih fleksibel dan ekonomis.

Pertama, karena metode penyimpanan skrip Taproot, kita dapat menyimpan konten inskripsi dalam skrip pengeluaran jalur skrip Taproot ini. Skrip ini hampir tidak memiliki batasan pada konten, dan pada saat yang sama juga dapat memperoleh diskon pada data saksi, menjadikannya relatif ekonomis untuk menyimpan konten inskripsi. Karena penggunaan skrip Taproot hanya dapat dilakukan dari output Taproot yang sudah ada, inskripsi menggunakan proses pengajuan/pengungkapan dua tahap. Pertama, dalam mengajukan transaksi, output Taproot dibuat yang menjanjikan skrip yang berisi konten inskripsi. Kemudian, dalam transaksi pengungkapan, output yang dibuat dengan mengajukan transaksi dikonsumsi, sehingga mengungkapkan konten inskripsi di rantai.

Pendekatan ini telah sangat mengurangi konsumsi sumber daya. Jika P2TR tidak digunakan, informasi saksi disimpan di output transaksi. Dengan cara ini, selama output ini tidak dikonsumsi, informasi saksi akan selalu disimpan di dalam pool UTXO. Sebaliknya, jika P2TR digunakan, informasi saksi tidak akan muncul dalam transaksi yang dihasilkan selama fase pengajuan, sehingga tidak akan ditulis ke set UTXO. Hanya ketika UTXO ini dihabiskan, informasi saksi akan muncul di input transaksi selama fase pengungkapan. P2TR memungkinkan metadata ditulis ke blockchain Bitcoin, tetapi tidak pernah muncul di UTXO. Karena mempertahankan/memodifikasi set UTXO memerlukan lebih banyak sumber daya, pendekatan ini dapat menghemat sumber daya yang signifikan.

inskripsi

Protokol Ordinals menggunakan SegWit untuk melonggarkan pembatasan ukuran pada konten yang ditulis ke jaringan Bitcoin, menyimpan konten prasasti dalam data saksi. Ini memungkinkannya untuk menyimpan metadata hingga 4MB. Taproot membuatnya lebih mudah untuk menyimpan data saksi sewenang-wenang dalam transaksi Bitcoin, memungkinkan pengembang Ordinals Casey Rodarmor untuk menggunakan kembali opcode lama (OP_FALSE, OP_IF, OP_PUSH) untuk menyimpan data sewenang-wenang dalam apa yang ia gambarkan sebagai "amplop" yang disebut "prasasti."

Proses untuk mencetak sebuah inskripsi terdiri dari dua langkah berikut:

Pertama, diperlukan untuk membuat sebuah janji dalam transaksi pengiriman ke output Taproot dari skrip yang berisi konten dari inskripsi. Format penyimpanan adalah Taproot, yaitu, output dari transaksi sebelumnya adalah P2TR (Bayar-Kepada-Taproot), dan input dari transaksi terakhir menyematkan konten dalam format tertentu dalam skrip Taproot yang disaksikan; string ord pertama-tama ditumpuk untuk menghilangkan ambiguitas bahwa inskripsi memiliki penggunaan lain. OP_PUSH 1 menunjukkan bahwa dorongan selanjutnya berisi jenis konten, dan OP_PUSH 0 menunjukkan bahwa dorongan data berikutnya memasukkan konten itu sendiri. Inskripsi besar harus menggunakan dorongan data ganda karena salah satu dari sedikit batasan taproot adalah bahwa satu dorongan data tidak boleh lebih besar dari 520 byte. Pada titik ini, data inskripsi telah diterapkan ke output UTXO dari transaksi, tetapi belum diungkapkan.

Kedua, penting untuk mengungkapkan output yang dibuat oleh transaksi pengajuan pembelian dalam transaksi. Pada tahap ini, transaksi diinisiasi dengan menggunakan UTXO yang sesuai dengan inskripsi tersebut sebagai input. Pada titik ini, konten dari inskripsi yang sesuai dibuat menjadi publik ke seluruh jaringan.

Melalui dua langkah di atas, konten inskripsi telah terikat pada UTXO yang terukir. Selain itu, sesuai dengan posisi Satoshi yang dijelaskan di atas, inskripsi dilakukan pada Satoshi pertama yang sesuai dengan input UTXO, dan konten inskripsi disertakan dalam input yang menunjukkan transaksi. Menurut pengantar sirkulasi dan pelacakan Satoshi yang dijelaskan di atas, Satoshi ini, yang terukir dengan konten khusus, dapat ditransfer, dibeli, dijual, hilang, dan dipulihkan. Perlu diingat bahwa inskripsi tidak dapat diulang, jika tidak inskripsi berikutnya tidak akan valid.

Kami akan menjelaskan proses ini secara rinci dengan cara mengukir contoh gambar NFT BTC kecil. Proses ini terutama mencakup dua tahap pengajuan (commit) dan pengungkapan (reveal) yang disebutkan sebelumnya. Pertama, kita melihat bahwa ID Hash untuk transaksi pertama adalah 2ddf9... f585c. Dapat dicatat bahwa output dari transaksi ini tidak termasuk data saksi, dan tidak ada inskripsi relevan pada halaman tersebut.

Selanjutnya, mari kita lihat catatan tahap kedua. ID hash adalah e7454... 7c0e1. Di sini, kita dapat melihat informasi tentang Insripsi Ordinals, yaitu, konten dari inskripsi saksi. Alamat input untuk transaksi ini adalah alamat output dari transaksi sebelumnya, dan output 0.00000546 BTC (546 Satoshi) mengirimkan NFT ini ke alamatnya sendiri. Pada saat yang sama, kita juga dapat menggunakan Sat Find Satoshi di mana inskripsi ini terletak di 1893640468329373.

Di dompet Bitcoin, kita bisa melihat aset ini. Jika kita ingin melakukan perdagangan NFT ini, kita bisa mengirimkannya langsung ke alamat orang lain, yaitu mengirimkan UTXO ini, dan ini menyelesaikan sirkulasi inskripsi.

4. Dompet Bitcoin

Setelah kita mempelajari tentang ekosistem Ordinals, peredaran Satoshi, dan pengetahuan terkait tentang inskripsi, saat ini ada banyak skenario aplikasi. Baik itu munculnya perjanjian turunan terkait seperti BRC-20, ORC-20, BRC-721, GBRC-721, dll., kita memerlukan dompet yang sesuai untuk mendukung dan menampilkan informasi token atau gambar NFT kecil. Dalam bagian ini, kami akan memperkenalkan konsep dan karakteristik alamat dompet Bitcoin yang berbeda.

Alamat Bitcoin dimulai dengan 1, 3, atau bc1. Sama seperti alamat email, mereka dapat dibagikan dengan pengguna Bitcoin lain yang dapat menggunakannya untuk mengirim bitcoin langsung ke dompet mereka. Dari sudut pandang keamanan, alamat Bitcoin tidak memiliki konten sensitif. Ini dapat diposting di mana saja tanpa membahayakan keamanan akun. Berbeda dengan alamat email, kita dapat membuat alamat baru kapan pun diperlukan, yang semuanya akan menyetor dana langsung ke dompet Anda. Bahkan, banyak dompet modern secara otomatis membuat alamat baru untuk setiap transaksi guna memaksimalkan privasi. Dompet hanyalah kumpulan alamat dan kunci untuk membuka dana di dalamnya. Pertama, kita perlu tahu bagaimana alamat dompet Bitcoin dihasilkan.

Kunci privat dan publik Bitcoin

Bitcoin menggunakan kurva elips secp256k1. "Kunci pribadi" adalah angka acak antara 1 dan n-1. n adalah bilangan besar (256 bit), dan n dinyatakan dalam notasi ilmiah tentang 1,15792*10^77. Ruang lingkupnya sangat luas, dan hampir tidak mungkin bagi kita untuk menebak kunci pribadi orang lain. Kunci pribadi bilangan bulat acak ini dapat digunakan 256 bit menunjukkan bahwa ada banyak cara untuk menyandikan. Jika kunci privat menggunakan WIF atau WIF-compressed tidak dienkripsi, "bilangan bulat acak" asli dapat diperoleh dengan decoding. Metode lain adalah BIP38. Diusulkan untuk menggunakan algoritma AES untuk mengenkripsi kunci pribadi. Kunci pribadi yang diperoleh oleh skema ini dimulai dengan karakter 6P. Kunci pribadi ini harus diimpor ke berbagai dompet Bitcoin. Ini adalah kunci pribadi yang biasa kita gunakan.

Kemudian kami akan menggunakan formula kurva eliptis K = kG untuk menghasilkan kunci publik Bitcoin K dari kunci privat k. G adalah titik dasar, yang merupakan parameter secp256k1. Anda dapat mendapatkan dua koordinat K, yang merupakan dua ekspresi kunci publik, "Format Tak Tertekan" dan "Format Tertekan", masing-masing.

  1. Bentuk tak terkompresi adalah dengan langsung menghubungkan dua koordinat x dan y, lalu menambahkan awalan 0x04 di depannya;
  2. Bentuk yang terkompresi adalah ketika y adalah nomor genap, kode tersebut adalah 02 x, dan ketika y adalah nomor ganjil, kode tersebut adalah 03 x;

alamat Bitcoin

Berbagai jenis alamat Bitcoin dapat dilihat dalam gambar berikut. Ada empat cara untuk mengekspresikannya:

1. Format Warisan (P2PKH)

Contoh: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u

Alamat yang dimulai dengan “1” adalah format alamat Bitcoin asli dan masih digunakan hingga saat ini. Diperoleh dari kunci publik melalui perhitungan hash, juga dikenal sebagai P2PKH, singkatan dari Pay To PubKey Hash (pembayaran ke hash kunci publik).

2. Format SegWit Bersarang (P2SH)

Contoh: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan

Alamat dimulai dengan "3". P2SH adalah singkatan dari Pay To Script Hash (Pay To Script Hash), yang mendukung fitur yang lebih kompleks daripada alamat Legacy. P2SH bertingkat mendapatkan alamat P2SH yang sudah ada (dimulai dengan "3") dan mengemasnya dengan alamat SegWit.

3. Format Native SegWit (Bech32)

Alamat yang dimulai dengan bc1 diusulkan dalam BIP0173; mereka adalah alamat saksi karantina asli. Alamat yang dienkripsi Bech32 adalah format alamat yang dikembangkan khusus untuk SegWit. Bech32 didefinisikan dalam BIP173 pada akhir 2017. Salah satu fitur utama format ini adalah bahwa tidak sensitif terhadap huruf besar kecil (alamat hanya berisi 0-9, az), sehingga dapat efektif menghindari kebingungan dan lebih mudah dibaca saat memasukkan. Karena membutuhkan lebih sedikit karakter dalam alamat, alamat menggunakan enkripsi Base32 alih-alih Base58 tradisional, yang lebih nyaman dan efisien untuk dihitung. Data dapat disimpan lebih rapat dalam kode QR. Bech32 memberikan keamanan yang lebih tinggi, mengoptimalkan kode verifikasi dan deteksi kesalahan, dan meminimalkan kemungkinan alamat yang tidak valid.

Alamat Bech32 itu sendiri kompatibel dengan SegWit. Tidak ada ruang tambahan yang diperlukan untuk menempatkan alamat SegWit ke dalam alamat P2SH, sehingga menggunakan alamat format Bech32, biaya pemrosesan akan lebih rendah. Alamat Bech32 memiliki beberapa keunggulan dibandingkan dengan alamat lama Base58 (Pengkodean Base58Check digunakan untuk mengkodekan larik byte dalam Bitcoin ke dalam string yang dapat dienkripsi manusia): Kode QR lebih kecil; mereka lebih tahan kesalahan; mereka lebih aman; mereka tidak peka huruf besar-kecil; mereka hanya terdiri dari huruf kecil, sehingga lebih mudah dibaca, ketik, dan dipahami.

Format Taproot (P2TR)

Bech32 memiliki kekurangan: jika karakter terakhir dalam alamat adalah p, menyisipkan atau menghapus sejumlah karakter q segera sebelum p tidak akan membuat checksum-nya tidak valid.

Untuk mengurangi kekurangan di atas dari Bech32, alamat Bech32M diusulkan dalam BIP0350:

  1. Untuk alamat saksi terpisah asli dengan versi 0, gunakan Bech32 sebelumnya;
  2. Untuk alamat saksi karantina asli dengan versi 1 (atau lebih tinggi), gunakan Bech32M baru.

Untuk alamat Bech32M, ketika versi adalah 1, mereka selalu dimulai dengan bc1p (yaitu alamat Taproot). Secara khusus, seperti saksi karantina lokal, dompet bisa terdiri dari frasa benih dan frasa sandi. Mereka digunakan untuk menghasilkan kunci publik dan pribadi yang diperluas, dan digunakan untuk mendapatkan alamat untuk jalur sembarang di dompet deterministik hierarkis. Terutama NFT yang menyimpan BRC-20 dan BTC.

5. Tentang Kami

Spectrum Labs adalah tim dari para master dan PhD yang fokus pada penelitian blockchain, serta veteran di dalam industri blockchain. Kami berkomitmen pada teknologi rantai penelitian blockchain dan aplikasinya untuk membantu orang memahami blockchain dengan lebih baik. Bisnis utama Spectrum Labs meliputi penulisan laporan penelitian, penulisan kursus, dan pengembangan alat.

Komunitas Cina NFT BTC adalah platform pertukaran Cina NFT BTC untuk para pemula Cina dari seluruh dunia.

Penyangkalan:

  1. Artikel ini diambil dari [Laboratorium Spektrum]. Semua hak cipta milik penulis asli [Ash Li, Noah Ho]. Jika ada keberatan terhadap penerbitan ulang ini, silakan hubungi Gerbang Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penafian Tanggung Jawab: Pandangan dan opini yang diungkapkan dalam artikel ini semata-mata milik penulis dan tidak merupakan saran investasi apa pun.
  3. Terjemahan artikel ke dalam bahasa lain dilakukan oleh tim Gate Learn. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!