Diskon Saksi: Mengapa Beberapa Byte Lebih Murah Dibandingkan Lainnya

By Bitcoin Majalah - 4 bulan lalu - Waktu Membaca: 9 menit

Diskon Saksi: Mengapa Beberapa Byte Lebih Murah Dibandingkan Lainnya

Tahun ini terjadi peningkatan besar dalam permintaan karena terbatasnya ruang yang tersedia di dalamnya bitcoin blok, menyebabkan biaya yang lebih tinggi untuk transaksi berantai. Sebagian besar permintaannya adalah transaksi yang terbuka prasasti. Isi prasasti tersebut terungkap sebagai bagian dari data saksi1 dari bitcoin transaksi. Data1 saksi ini didiskon hingga seperempat biaya data transaksi lainnya. Mengapa kami memberikan diskon pada prasasti ini? Haruskah kita memberikan potongan harga untuk saksi?

Mengapa beberapa byte lebih murah dibandingkan byte lainnya?

Uang secara umum dan bitcoin khususnya beroperasi berdasarkan insentif manusia. Bitcoin menyelaraskan insentif bagi para penambang dan pelaku transaksi melalui penggunaan yang asli bitcoin token untuk membayar penambang untuk memasukkan transaksi tertentu ke dalam blok yang mereka bangun. Hal yang sama tidak dapat dikatakan dalam menyelaraskan insentif antara node runner dengan penambang dan pelaku transaksi, atau menyelaraskan insentif antara pengirim dan penerima.

Ada 3 perbaikan besar pada bitcoinpenyelarasan insentif hingga saat ini:

1. Membatasi ukuran blok

2. Pergeseran biaya naskah yang rumit dari pengirim ke penerima (P2SH)

3. Menyelaraskan biaya data antara node runner dan transactors (SegWit)

Membatasi Ukuran Blok

Para pelaku transaksi ingin melakukan banyak transaksi dan penambang ingin memungut banyak biaya transaksi; tetapi pelari node harus menyampaikan, memverifikasi, dan menyimpan semua data transaksi tersebut dan mereka tidak diberi kompensasi seperti penambang karena melakukan hal tersebut. Di awal bitcoinDalam sejarahnya, Satoshi berupaya mengatasi hal ini dengan menambahkan batas ukuran blok tetap (diberlakukan oleh node). Batasannya adalah 1 juta byte per blok, dan menetapkan batas atas jumlah data yang perlu diunduh dan diverifikasi oleh node. Pada saat itu, Satoshi menulis, "[kita] dapat melakukan perubahan secara bertahap nanti jika kita semakin membutuhkannya." Kemudian, mengacu pada patch untuk meningkatkan batas, dia mencatat, "[d]jangan gunakan patch ini, itu akan membuat Anda tidak kompatibel dengan jaringan", yang berarti bahwa meningkatkan batas ukuran blok adalah perubahan yang sulit dan memerlukan lebih banyak koordinasi bahkan daripada garpu lunak. Pada tahun-tahun berikutnya, bitcoin sengaja menghindari perubahan hard fork yang tidak kompatibel, yang juga berarti menjaga batas ukuran blok 1 juta byte.

Mengalihkan Biaya Skrip Kompleks Dari Pengirim ke Penerima

Karena bitcoin diamankan dengan mengunci skrip, selalu dimungkinkan untuk menguncinya dengan skrip tingkat lanjut, termasuk multisig. Di bawah desain asli, pengirim a bitcoin transaksi akan menempatkan skrip penguncian penuh penerima dalam transaksi mereka, dan membayar biaya apa pun untuk memasukkan skrip penguncian tersebut ke dalam blok. Pengembang menyadari bahwa seiring dengan kenaikan biaya, pengirim mungkin menjadi ragu untuk membayar pengguna skrip penguncian yang lebih besar karena biaya yang lebih tinggi untuk membayar pengguna tersebut. Skrip penguncian yang rumit ini juga menimbulkan masalah dalam penyandian ke alamat dan berbagi melalui mekanisme bandwidth rendah seperti Kode QR.

Untuk mengatasi hal ini, P2SH telah ditambahkan ke bitcoin sebagai garpu lunak. Berdasarkan aturan fork ini, alih-alih memasukkan seluruh skrip penguncian penerima ke dalam output transaksi, pengirim cukup menyertakan hashnya. Ketika penerima membelanjakan output tersebut, mereka menyertakan skrip lengkap dalam transaksi pembelanjaan, yang diperiksa berdasarkan hash skrip tempat koin dikunci sebelum divalidasi. Dengan perubahan ini, skrip penebusan dengan ukuran berapa pun dapat diwakili oleh skrip penguncian dengan panjang tetap dan pengirim tidak lagi memiliki kebutuhan (atau kemampuan) untuk membedakan penerima berdasarkan kondisi pembelanjaan mereka.

Menyelaraskan Biaya Data Antara Node Runner dan Transactors

Verifikasi paling mendasar yang dilakukan node bitcoin transaksi adalah itu bitcoin yang mereka coba belanjakan, pada kenyataannya, memang ada. Untuk melakukan hal ini, setiap node memelihara indeks setiap unit yang dapat dibelanjakan bitcoin (output transaksi yang belum terpakai, UTXO). Semakin besar indeks ini, semakin besar biaya menjalankan sebuah node dan memverifikasi transaksi di masa depan2. Akibatnya, transaksi yang meningkatkan ukuran indeks ini (memiliki lebih banyak output daripada input) memerlukan biaya lebih banyak dari waktu ke waktu dibandingkan transaksi dengan jumlah byte yang sama yang mengurangi ukuran indeks.

Bagian terbesar dari sebagian besar bitcoin membuka kunci skrip adalah tanda tangan kriptografi. Tanda tangan ini berukuran sekitar dua kali ukuran kunci publik terkait, yang membuat skrip pembuka kunci (bahkan tanpa P2SH) lebih besar daripada skrip penguncian.

Biaya konsumsi vs. pembuatan UTXO yang jauh lebih tinggi menciptakan konflik insentif antara node runner dan pelaku transaksi. Para pelaku transaksi tidak diberi insentif untuk membelanjakan UTXO kecil mereka (terutama pada saat biaya tinggi), dan lebih memilih untuk membelanjakan UTXO besar dan menciptakan lebih banyak UTXO perubahan kecil. Sementara itu, node runner membayar biaya akumulasi UTXO kecil ini dengan biaya validasi yang lebih tinggi untuk semua transaksi.

Anehnya, verifikasi bahwa setiap UTXO dibelanjakan oleh transaksi dalam sejarah blockchain apakah skrip pengunciannya dipenuhi oleh skrip pembuka kunci yang sesuai adalah hal yang kurang mendasar. Dalam hal ini, a bitcoin simpul berjalan default bitcoin core 26.x tidak akan memvalidasi eksekusi skrip penguncian penuh untuk transaksi sebelum blok 804000 (19 Agustus 2023).

Semua hal di atas berarti ada biaya berbeda yang dikenakan bitcoin node oleh bagian berbeda dari blockchain. Data yang diperlukan untuk menentukan dampak setiap transaksi harus divalidasi oleh setiap node yang disinkronkan dari blok genesis3, keluaran transaksi cenderung lebih mahal dibandingkan masukan transaksi dalam jangka panjang (terutama jika berumur panjang), dan banyak data saksi bahkan tidak diperiksa kecuali untuk transaksi terbaru.

Masukkan Saksi Terpisah

Grafik saksi terpisah (SegWit) soft fork adalah perubahan paling ambisius yang dilakukan bitcoin hingga saat ini. Motivasi terbesar untuk perubahan ini adalah untuk memperbaiki masalah TXID4 yang sudah lama ada sifat lunak5 in bitcoin. Untuk memperbaiki kelenturan ini, skrip pembuka kunci diganti dengan "saksi" yang baru dibuat. Dengan menghapus data otorisasi (yang seringkali dapat diubah oleh pihak ketiga tanpa mengubah efek transaksi) dari TXID, protokol (seperti Lightning) yang bergantung pada TXID yang tidak berubah menjadi mungkin.

Dengan data otorisasi dipindahkan dari struktur transaksi asli, data tersebut tidak lagi dihitung terhadap batas blok 1 juta byte. Batas baru diperlukan. Banyak pendekatan untuk membatasi data saksi terpisah yang dibahas pada saat itu: Batas byte saksi terpisah6, batas gabungan < 1 juta byte7, atau batas gabungan tertimbang. Pada akhirnya, batas gabungan tertimbang dipilih, dengan data saksi terpisah diberi bobot 1 unit, data transaksi diberi bobot 4 unit, dan batas blok bobot 4 juta. Setiap unit berat diperlakukan sebagai 1/4 byte virtual (vByte) untuk tujuan penghitungan biaya.

Mengapa beban ini? Mari kita lihat biaya input dan output transaksi dengan dan tanpa saksi terpisah:

Hal pertama yang perlu diperhatikan dari tabel ini adalah bagaimana tipe skrip saksi (P2WPKH, P2WSH) memiliki jumlah byte input dan output yang hampir sama (yang masing-masing dikenakan biaya vByte penuh). Pembelanja skrip saksi kemudian dikenai biaya 1/4 vByte untuk data yang mengesahkan pembelanjaan, sebagian besar tidak diverifikasi untuk transaksi apa pun kecuali transaksi terbaru, dan tidak ada satupun yang memiliki biaya berkelanjutan dalam indeks UTXO. Hal lain yang perlu diperhatikan di sini adalah bagaimana biaya penggunaan multisig 2-dari-3 yang lebih aman dibandingkan dengan tanda tangan tunggal berkurang dari 147 vBytes menjadi 36.25 vBytes.

Akar Tunggang Dan Prasasti Mengubah Segalanya (Atau Tidak Sama Sekali)

Seperti yang saya katakan di awal, bitcoin bergantung pada insentif manusia, dan di sini kita dapat melihat bagaimana perubahan telah dilakukan bitcoin selama bertahun-tahun untuk meningkatkan keselarasan insentif antara pihak-pihak yang menggunakan jaringan tersebut.

Akar tunggang sendiri “hanya” merupakan cara alternatif untuk mengunci bitcoin menggunakan saksi terpisah. Hal ini tidak mengubah insentif ini secara signifikan. Salah satu perubahan yang terjadi pada Taproot adalah menghilangkan batasan tertentu pada ukuran skrip. Hal ini dilakukan untuk mengurangi kompleksitas perancangan alat analisis bitcoin skrip, dan sebagai pengakuan atas biaya relatif berbagai jenis data. Penghapusan batasan ini membuat pembuatan prasasti menjadi lebih sederhana dibandingkan sebelum Taproot, namun tidak mengubah struktur insentif jaringan secara mendasar.

Sekarang ke inti permasalahannya. Prasasti terungkap di saksi, sehingga hanya dikenakan biaya 1/4 vByte per byte data prasasti. Apakah ini penyalahgunaan diskon saksi? Faktanya adalah bahwa data prasasti adalah salah satu data termurah yang dapat divalidasi oleh node di jaringan. Struktur skrip yang digunakan oleh prasasti secara eksplisit melewatkan eksekusi data prasasti, sehingga satu-satunya verifikasi yang dilakukan terhadapnya adalah pemeriksaan hash tunggal (memastikan bahwa prasasti yang terungkap adalah apa yang ingin diungkapkan oleh pembuatnya). Data ini di-hash satu kali dan kemudian tidak pernah dilihat lagi oleh node. Ini memiliki biaya komputasi yang sangat rendah (urutan besarnya lebih rendah dari skrip multisig berukuran setara).

Tapi prasasti menaikkan biaya dan menyingkirkan pengguna lain.

Ya! Dengan perangkat lunak saat ini tersedia untuk berinteraksi dengan bitcoin jaringan, juru tulis memiliki insentif ekonomi yang lebih besar untuk membuat prasasti mereka daripada yang harus dilakukan banyak orang untuk melakukan transaksi lainnya.

Hal ini sangat meringankan nilai peningkatan kepadatan ekonomi bitcoin transaksi. Lightning Network mengambil langkah besar menuju hal ini dengan memungkinkan ratusan, ribuan, atau jutaan transaksi ekonomi digabungkan menjadi satu bitcoin transaksi. Semakin besar kepadatan ekonomi setiap byte dalam suatu transaksi, semakin rendah biaya yang dibayarkan untuk aktivitas ekonomi tersebut. Sebagai kepadatan ekonomi bitcoin transaksi meningkat, penggunaan ruang blok lainnya telah dan akan terus dihargai9.

Itu perlu dicatat if protokol multisig off chain seperti MuSig2 or FROST, atau tanda tangan adaptor menjadi lazim; dia mungkin masuk akal untuk mengurangi atau menghilangkan diskon saksi. Protokol-protokol ini dapat mengaktifkan protokol lainnyawise kondisi pengeluaran yang besar untuk diwakili oleh satu tanda tangan. Hal ini, dikombinasikan dengan belanja jalur utama Taproot yang efisien, dapat menurunkan biaya input dengan kondisi rumit yang hampir sewenang-wenang menjadi hanya 105. Bytes.

Kesimpulan

Tanggapan terhadap biaya tinggi yang disebabkan oleh prasasti sama dengan skenario langit runtuh lainnya dalam sejarah bitcoin: Sabar membangun, sabar membangun. Ada banyak hal yang bisa kita lakukan untuk meningkatkan kepadatan ekonomi bitcoin transaksi mulai dari membangun dompet Lightning yang lebih baik hingga Bahtera untuk kontrak log diskrit dan seterusnya. Menghapuskan diskon saksi (sebelum waktunya), mengembalikan akar tunggang, atau tindakan kontra-produktif serupa hanya akan mengurangi kepadatan ekonomi negara-negara yang ada saat ini. bitcoin transaksi dan memperburuk situasi.

Tetap rendah hati, susun sats, dan bangun.

Catatan kaki

Istilah saksi diadopsi menjadi bitcoin dari jargon kriptografi yang mengacu pada data yang diperlukan untuk memverifikasi klaim kriptografi secara efisien. BIP141 mendefinisikannya sebagai "data apa pun yang diperlukan untuk memeriksa validitas transaksi tetapi tidak diperlukan untuk menentukan dampak transaksi". Kriptografer mungkin mengambil istilah tersebut dari pembuatan tanda saksi yang digunakan untuk memverifikasi kesejajaran komponen secara efisien. Itu Utreexo proyek bertujuan untuk mengubah ini untuk sebagian bitcoin node dengan memungkinkan mereka mengakumulasi akar penyertaan UTXO secara efisien dan kemudian menerima jalur penyertaan bersama dengan pembelanjaan UTXO tersebut. Jika ini menjadi cara yang umum digunakan bitcoin, hal ini mengalihkan biaya lebih banyak UTXO dari node ke pemegang UTXO tersebut. Itu Sinkronisasi Nol proyek bertujuan untuk mengubah ini untuk beberapa node dalam beberapa konteks. ID Transaksi: Urutan byte terbalik SHA256 ganda dari transaksi format jaringan pra-segwit. Beberapa transaksi valid dengan input dan output yang sama memiliki txid berbeda jika ditandatangani dengan cara berbeda atau tanda tangannya diubah oleh pihak ketiga. Dapat berupa nilai apa pun tanpa hard fork karena node lama tidak mengetahui data saksi yang dipisahkan. 1 juta atau kurang untuk menjaga kompatibilitas dan mencegah hard fork. Dengan asumsi penggunaan kunci publik yang ringkas dan tanda tangan DER R/S rendah 71-byte. Ada yang ingat Dadu Satoshi

Ini adalah postingan tamu oleh Brandon Black. Pendapat yang dikemukakan sepenuhnya merupakan pendapat mereka sendiri dan tidak mencerminkan pendapat BTC Inc atau Bitcoin Majalah.

Sumber asli: Bitcoin majalah