Artikel ini hanya untuk berbagi teknis dan bukan merupakan nasihat investasi apa pun.
Akankah BTC juga memiliki kontrak pintarnya sendiri?
Dalam ekosistem Bitcoin baru-baru ini, Fraktal BTC akhirnya meluncurkan mainnet pada bulan September setelah melalui beberapa testnet. Fitur utama Fraktal adalah kemampuan untuk memiliki "kontrak pintar", dan hampir bersamaan dengan peluncuran mainnet, protokol token baru CAT 20 diluncurkan. Kepintaran teknis apa yang dimiliki CAT 20? Apa yang bisa kita pelajari?
Bitcoin Fraktal
Sebelum memahami CAT 20, kita perlu memahami secara singkat Fraktal Bitcoin. Hubungannya seperti ERC 20 dan ETH.
Fraktal Bitcoin, juga dikenal sebagai Fraktal Bitcoin, adalah jaringan "lapisan kedua" yang sepenuhnya kompatibel dengan BTC. Dibandingkan dengan BTC, waktu konfirmasi bloknya lebih cepat, hanya membutuhkan waktu 1 menit. Prinsip dasarnya sesuai dengan namanya, yaitu membuat beberapa salinan jaringan BTC. Setiap rantai akan memproses transaksi. Namun, rincian spesifiknya, seperti bagaimana jaringan yang berbeda berkomunikasi, masih belum jelas, dan tidak ada dokumen teknis resmi yang relevan untuk referensi.
Jika hanya transaksi berantai lapis kedua yang lebih cepat, sepertinya tidak ada gunanya kegembiraan. Namun, aktivasi OP_CAT di Fraktal, yang sudah lama ditinggalkan oleh BTC karena alasan keamanan, telah membawa kemampuan Fraktal Bitcoin ke tingkat yang lebih tinggi. Beberapa orang mengatakan bahwa OP_CAT dapat memungkinkan BTC memiliki kemampuan kontrak pintar tentu saja, masih ada ruang untuk berimajinasi.
Sekarang, seseorang telah menerapkan protokol mirip ERC 20 pada Fraktal Bitcoin.
Mengenai kenapa OP_CAT ditinggalkan dan kenapa bisa digunakan pada Fractal Bitcoin, kita bisa membicarakannya nanti.
Protokol CAT Silakan merujuk ke kertas putih untuk konten berikut: Pendahuluan |. Protokol CAT (https://catprotocol.org/)
Dan repositori github: GitHub - CATProtocol/cat-token-box: Monorepo untuk paket yang mengimplementasikan protokol CAT (https://github.com/CATProtocol/cat-token-box)
Dengan dukungan OP_CAT yang mendasarinya, protokol terkait, Protokol CAT, akan segera tersedia. Saat ini, protokol yang benar-benar berjalan adalah protokol CAT 20, dan panel terkait telah ditambahkan di Unisat: https://explorer.unisat.io/fractal-mainnet/cat20.
Setiap orang pasti bisa bereaksi ketika melihat nama CAT 20. Seharusnya lebih mirip dengan ERC 20. Dibandingkan dengan protokol ERC 20 yang sudah matang, sangat mudah bagi semua orang untuk menyebarkan Token. Bagaimana CAT 20 menerapkan siklus hidup yang mirip dengan ERC 20?
Menyebarkan
Sebelum penerapan, pengguna perlu menentukan alamat dompet mereka dan informasi dasar tentang token. Informasi dasar tentang token serupa dengan ERC 20:

Akan ada beberapa perbedaan. CAT 20 dapat menetapkan batas pra-penambangan dan kuantitas untuk setiap Mint. Tentu saja, ERC 20 juga dapat mencapai kemampuan tersebut melalui kemampuan kontrak.
Selama fase penerapan, dua transaksi akan dimulai, yang dapat dianggap sebagai dua fase: "komit" dan "ungkapkan". Mengutip diagram resminya, tahapan penerapannya adalah sebagai berikut:

Pada tahap "commit", informasi dasar token akan ditulis dalam skrip keluaran transaksi, seperti nama, simbol, dll dari token tersebut. HashId transaksi yang dimulai pada fase "commit" akan digunakan sebagai simbol token untuk membedakan token lainnya.

Anda dapat melihat bahwa utxo dari transaksi ini " bc 1 pucq...ashx " sesuai dengan komit. Lalu ada dua sisa transaksi yang mengarah ke " bc 1 pszp...rehc 4 ". Yang pertama digunakan untuk membayar biaya bahan bakar untuk tahap " pengungkapan " berikutnya, dan yang lainnya adalah perubahan.
Pada tahap "pengungkapan", Anda dapat melihat bahwa ada dua masukan utxo, yang sesuai dengan dua keluaran pertama dari tahap penerapan sebelumnya. Transaksi ini pertama-tama akan menghasilkan OP_RETURN, di mana Hash dari keadaan awal CAT 20 akan disimpan. Kemudian akan dihasilkan Minter, yang akan memainkan peran penting dalam proses Mint selanjutnya dan digunakan untuk mempertahankan perubahan status pada proses Mint.

Melihat kembali keseluruhan proses Deploy, "commit" dan "reveal" mengikuti dua langkah penyerahan dan pengungkapan yang umum digunakan di blockchain. tahapan akan terungkap.
Sebagai
Saat pertama kali kita melihat Mint Token, transaksinya terlihat seperti ini.

Seperti yang Anda lihat pada gambar di atas, proses Mint memiliki ciri-ciri sebagai berikut.
Input dari mint adalah minter, yang awalnya dihasilkan selama penerapan.
Setiap kali mint memiliki satu dan hanya satu minter sebagai input, dan sejumlah minter sebagai output (sedikit bermasalah)
Setiap mint hanya memiliki satu token (sedikit bermasalah)
Urutan keluaran wajib diisi, minter harus diikuti dengan token
Mengetahui proses Mint, sebenarnya kita dapat menemukan beberapa situasi khusus yang akan membuat keseluruhan proses Mint menarik.
Misalnya minter, sebagai output dari transaksi mint, bisa berupa 1, kelipatan, atau bahkan 0. Jika Mint disetel ke 1 setiap kali, maka jumlah minter yang dapat digunakan di seluruh jaringan tidak akan berubah (1), yang akan membuat Mint ramai, dan semua orang harus mengambil minter ini untuk menghindari hal ini dalam hal ini, Anda perlu mengatur jumlah keluaran pencetak setiap kali menjadi lebih besar dari 1, sehingga setelah pencetakan, semakin banyak pencetak yang dapat digunakan.
Namun, setiap tambahan keluaran minter berarti Anda harus membayar utxo ekstra. Karena alasan ekonomi, lebih banyak orang akan bersedia menyetel minter ke 0, yang pasti akan membuat minter deflasi, yang mengharuskan beberapa orang Datang untuk memberikan sumbangan dan membayar. minter ekstra secara sukarela.
Dalam versi V2, defaultnya adalah menghasilkan dua pembuat, dan status kedua pembuatnya akan semirip mungkin.
Penataan transaksi
Beberapa teman mungkin menemukan masalah, yaitu mengapa utxo minter bisa digunakan untuk melakukan transaksi? Untuk memahami masalah ini, Anda perlu menganalisis kode sumber "kontrak".
1.ungkapkan utxo
Pertama, kami menganalisis transaksi selama proses pengungkapan, dan kami menemukan bahwa transaksi tersebut menggunakan keluaran komit dari transaksi sebelumnya sebagai masukan. Mengapa kita dapat mengambil utxo yang bukan alamat kita dan membuat input transaksi?
Menurut akal sehat, kunci privat berhubungan dengan kunci publik, dan kunci publik mendapatkan alamatnya. Saat memverifikasi apakah masukan utxo valid, biasanya ditentukan dengan membandingkan apakah tanda tangan tersebut konsisten dengan transaksi asli setelah didekripsi dengan kunci publik. Bagian logika ini ditulis dalam skrip Bitcoin. Jadi kita bisa dengan cerdik menulis ulang logika skrip. Pasangan kunci publik dan privat yang ditulis dalam skrip adalah milik alamat kita sendiri, sehingga kita bisa mengendalikan utxo di dua alamat berbeda.
Melihat kode sumbernya kita dapat melihat apa yang terjadi:

Ada masalah lain di sini, yaitu kunci pribadi sama dengan kunci publik, jadi mengapa alamat komit yang dihasilkan berbeda dari alamat kita? Di sini Anda dapat melihatnya dari kode sumber

Dengan kata lain, kunci privat kita akan menyesuaikan kunci publik sesuai dengan ISSUE_PUBKEY, yang juga merupakan karakteristik dari alamat P 2 TR.
2,minter uxo
Pada proses pengungkapan, kami menggunakan utxo yang berbeda sebagai input, namun sebenarnya kunci enkripsinya sama, yaitu kunci pribadi penyebar. Namun pada tahap minter, semua orang bisa menggunakan utxo tersebut sebagai masukan, bagaimana caranya?
Saya kira bagian ini adalah kemampuan OP_CAT yang disebutkan sebelumnya, yaitu kemampuan kontrak pintar. Namun, kode sumber bagian ini belum dipublikasikan saat ini, dan kami belum mengetahui implementasi spesifiknya.
Status transaksi (V2)
Di Minter, negara juga dilestarikan. Keadaan ini ada di dua tempat: satu di OP_RETURN keluaran transaksi, dan yang lainnya disimpan dalam kontrak pintar, yaitu Minter dan Token yang disebutkan di atas.
Apa yang disimpan di OP_RETURN adalah Hash dari status keluaran transaksi saat ini, dan sisa waktu Mint Token disimpan dalam kontrak. Setelah setiap Mint, jumlah mint dari Minter yang baru dibuat akan sama dengan jumlah mint yang tersisa dibagi dua. Diwakili dengan diagram:

Di akhir permainan, jumlah Minter yang tersisa adalah 0.
Kembali ke gambaran aslinya, selain Minter merupakan smart contract, Token yang dihasilkan juga merupakan smart contract yaitu CAT 20. CAT 20 memiliki dua status dasar: kuantitas dan alamat pemilik Token. Anda dapat melihat bahwa tidak seperti BRC 20 atau prasasti sebelumnya, CAT 20 Anda tidak ada di UTXO alamat Anda.
Transfer
Saat mentransfer, jumlah token masukan dan keluaran dalam transaksi harus konsisten. Tentu saja, bisa terdapat beberapa token berbeda dalam transaksi yang sama, selama jumlah input dan output dari token yang berbeda konsisten.

Membakar
Jika kalian ingin melakukan pembakaran Token, kalian hanya perlu mentransfer Token tersebut ke alamat biasa.
Meringkaskan
Terlihat bahwa semua operasi dibuat oleh pengguna sendiri, yang sangat fleksibel, sehingga banyak logika verifikasi yang perlu dilakukan di bagian kontrak. Beberapa kerentanan yang terungkap selama ini juga disebabkan oleh kelalaian dalam logika verifikasi.
Desain seperti itu dapat memberikan beberapa manfaat:
Jika Anda ingin mengetahui status penyimpanan semua Token, Anda hanya perlu memeriksa utxo token tersebut, dan tidak perlu melanjutkan pencarian.
Jika Anda ingin memeriksa situasi mint saat ini, Anda dapat mencari transaksi dengan cat di OP_RETURN.
ZAN hadir untuk mendapatkan air tanpa batas apapun!
Tip: Anda dapat menerima 0,01 ETH token testnet gratis setiap 24 jam untuk mendukung Anda merasakan dan menguji proyek Web3 di ekosistem Ethereum. Klik untuk menerimanya sekarang: https://zan.top/faucet?chInfo=ch_WZ
Lebih banyak rantai publik akan segera didukung ~
Artikel ini ditulis oleh Yeezo (akun X @GaoYeezo 75065) dari Tim ZAN (akun X @zan_team)
