Signet digunakan untuk menguji perangkat lunak Bitcoin bersama-sama. Jaringan ini memiliki rantai dan koin uji sendiri. Selain aturan biasa dan Proof of Work, blok baru harus memenuhi syarat khusus jaringan, berupa syarat tanda tangan pada Signet bawaan. Ini memudahkan pengujian, tetapi memakai model kepercayaan yang berbeda dari jaringan utama.
Anna ingin melihat tampilan dompet baru setelah mengirim pembayaran dan setelah pembayaran itu dikonfirmasi dalam blok. Dompet adalah aplikasi atau perangkat untuk menerima dan mengirim bitcoin. Blok mengelompokkan transaksi dalam satu kumpulan yang ditambahkan ke riwayat bersama. Di Signet ia dapat memakai koin uji, misalnya dari faucet, layanan yang membagikannya untuk percobaan. Koin itu bukan BTC di mainnet, jaringan utama, dan protokol tidak menukarkannya dengan bitcoin sungguhan. Alamat juga perlu diperhatikan: Signet berbagi beberapa format alamat uji dengan Testnet. Tampilan alamat saja tidak cukup untuk memastikan jaringan yang benar. [1] [2] [8]
Karl-Johan Alm dan Anthony Towns menulis BIP 325 (dokumen teknis yang menjelaskan Signet); Bitcoin Core v0.21.0 memperkenalkan dukungan Signet. Perangkat lunak menyediakan jaringan publik bawaan, tetapi sebuah tim dapat menentukan syarat pembuatan blok dan pesertanya sendiri. Karena itu, mengatakan “kami memakai Signet” belum cukup: kedua pihak harus menggunakan jaringan yang sama. Pengenal pesan jaringan diturunkan dari syarat tersebut, bukan dari nama proyek. [1] [3] [4]
Full Node adalah node yang memeriksa aturan secara mandiri. Ia tetap memverifikasi transaksi dan Proof of Work, hasil pekerjaan komputasi yang diperlukan untuk membuat blok, sekaligus memeriksa syarat tambahan Signet. Pada jaringan bawaan, menambang saja tidak cukup; tanda tangan yang sesuai juga diperlukan. Header, ringkasan singkat blok, tidak menggantikan pemeriksaan tambahan ini karena data yang diperlukan berada di dalam blok. [1] [9]
Tanda tangan digital memungkinkan orang lain memverifikasi bahwa pesan disetujui pemegang kunci privat yang sesuai, sebuah nilai angka rahasia, tanpa mengungkap kunci itu. Pihak yang dapat memenuhi syarat tanda tangan memengaruhi penambahan blok. Ia bisa menunda penandatanganan atau membatasi transaksi yang dimasukkan. Namun, hal itu tidak memberinya kunci privat Anna atau hak memaksa node Anna menerima sembarang transaksi tidak sah. Aturan lain tetap berlaku. Partisipasi yang diatur ini berguna untuk pengujian sekaligus menjelaskan mengapa Signet bukan salinan model keamanan mainnet. [1] [9]
Pengembangan membutuhkan lebih dari satu pembayaran yang berhasil. Tim perlu tahu respons aplikasi ketika blok berhenti atau terjadi reorganisasi, yaitu saat node mengganti blok terbaru dengan cabang sah lainnya. Uji yang dikoordinasikan dapat menciptakan situasi tersebut dan memeriksa apakah dompet memperbarui konfirmasi dengan benar. Signet tidak menjanjikan layanan tanpa henti. Ia juga membantu membuat pengujian kegagalan lebih terencana. [1] [5] [6]
Pembuatan blok di Testnet terbuka, dan fluktuasinya dapat menyulitkan percobaan bersama. Regtest memungkinkan blok dibuat dengan mudah sesuai kebutuhan, sehingga cocok untuk pengujian otomatis sendiri. Regtest juga bisa menghubungkan beberapa komputer; tidak harus berupa program yang berjalan sendirian. Signet menjawab kebutuhan lain: kerja sama lebih lama antara peserta independen dengan syarat pembuatan blok yang disepakati. Tidak satu pun mode ini menggantikan semua jenis pengujian lainnya. [1] [2]
Challenge adalah skrip, program pendek yang menjelaskan apa yang harus dibuktikan sebuah blok. Syaratnya dapat berupa satu tanda tangan atau Multisig, jumlah tanda tangan yang disepakati dari beberapa kunci. Signet khusus juga dapat menggunakan OP_TRUE, syarat yang terpenuhi tanpa tanda tangan. Solusi kosong sudah cukup dalam kasus itu. Jadi, penjelasan yang tepat adalah syarat skrip tambahan, bukan klaim bahwa setiap Signet selalu membutuhkan penanda tangan. [1] [9]
BIP 325 menempatkan solusi tidak kosong dalam data khusus Coinbase Transaction, transaksi pertama sebuah blok. Istilah ini tidak berkaitan dengan bursa bernama sama. Data memperluas komitmen BIP 141, catatan yang mengikat blok ke data witness termasuk tanda tangan, dan memakai penanda 0xecc7daa2. Ini bukan pembayaran biasa tambahan kepada penanda tangan. Syarat yang mudah terpenuhi dengan sendirinya memungkinkan solusi tambahan dihilangkan, bukan otomatis mengabaikan aturan blok lainnya. [1] [9] [10]
Jika pesan yang ditandatangani memuat tanda tangan itu sendiri, muncul ketergantungan melingkar. Karena itu, verifikasi menggunakan sidik jari transaksi yang dimodifikasi dengan solusi dikosongkan, bersama dua transaksi virtual. Keduanya untuk perhitungan, bukan dikirim sebagai pembayaran tambahan. Tanda tangan juga tidak mencakup nonce header, angka yang diubah saat mencari Proof of Work. Mengubahnya tidak memerlukan tanda tangan baru, tetapi bukan berarti bagian blok lainnya bebas diubah sesuka hati. [1] [9]
Anna memastikan terlebih dahulu bahwa dompet, node dan penjelajah blok memakai jaringan uji yang sama. Penjelajah blok adalah aplikasi untuk mencari transaksi dan blok pada jaringan tertentu. Di Bitcoin Core, getblockchaininfo dan kolom signet_challenge menunjukkan syarat yang dikonfigurasi. Ia kemudian mengamati konfirmasi yang benar-benar terjadi, bukan sekadar pesan “terkirim”, dan menggunakan dompet uji terpisah. Keberhasilan menunjukkan perilaku aplikasi dalam kondisi tersebut. Itu tidak menjamin keamanan dana atau ketahanan terhadap penyerang di mainnet. [7] [8]
Untuk gambaran yang lebih utuh, baca entri ini bersama Nakamoto Consensus, Block Propagation, Initial Block Download, Block Weight, Bitcoin, Bitcoin Core. Entri ini juga dirujuk dari Testnet, Miniscript, Dead Man’s Switch.