Segregated Witness adalah proposal (BIP-141) yang dirancang untuk memecahkan masalah kelenturan transaksi pada blockchain Bitcoin.


1. Apa yang dimaksud dengan Kelenturan Transaksi?

Artinya, isi transaksi tidak berubah, namun ID transaksinya berubah. Karena simetri kurva elips dalam algoritma tanda tangan ECDSA yang digunakan dalam jaringan Bitcoin, dua tanda tangan yang valid selalu dapat dihitung untuk menandatangani suatu transaksi, dan dua tanda tangan yang valid ini juga dapat dihitung satu sama lain. Setelah menyiarkan transaksi, publikasikan transaksi dengan konten yang sama menggunakan tanda tangan yang berbeda. Kedua transaksi tersebut memiliki konten yang sama tetapi ID transaksi berbeda, yang akan menyesatkan peserta jaringan.


2. Ekstensi transaksi mengubah tanda tangan, tetapi isi transaksi tetap tidak berubah. Pada akhirnya, jaringan akan tetap mengkonfirmasi isi transaksi. Tanda tangan kedua berbeda tetapi isi transaksi tetap sama dan tidak akan berpengaruh pada keamanan transaksi.Bahkan, jaringan juga akan mengkonfirmasi konten transaksi. Tidak akan ada masalah pembelanjaan ganda (uang yang sama dibelanjakan dua kali), lalu apa dampak sebenarnya dari perpanjangan transaksi?

Faktanya, hal ini terutama karena banyak layanan Bitcoin (seperti bursa, layanan otomatisasi on-chain pihak ketiga) mengandalkan ID transaksi sebagai identifikasi transaksi. Contohnya adalah Little A memulai penarikan mata uang dari bursa, dan kemudian transaksi penarikan mata uangnya disiarkan. Sebelum transaksinya diverifikasi oleh node, Little A melakukan serangan berskala, yang kebetulan merupakan transaksi baru yang dihasilkan oleh serangan tersebut. Transaksi dikonfirmasi terlebih dahulu, dan meskipun transaksi baru memungkinkan dia memperoleh koin, transaksi lama akan ditolak oleh jaringan. Namun, Little A mengeluh kepada pihak bursa bahwa dia belum menerima koin tersebut. Pihak bursa melihat bahwa transaksi sebelumnya untuk mentransfer uang ke Little A memang ditolak, sehingga pihak tersebut mengirimkan sejumlah koin lagi kepadanya.


3. Sepertinya masalahnya sebenarnya disebabkan oleh ID transaksi yang digunakan sebagai pengidentifikasi transaksi. Apakah mungkin untuk tidak menggunakan ID transaksi sebagai pengidentifikasi transaksi?

Analisis konten di blok btc, seperti menggunakan tinggi blok + posisi transaksi untuk menentukan identitas? Atau menentukan identitas sendiri berdasarkan hash input transaksi + output? Ini memang dapat digunakan sebagai pengidentifikasi unik, namun dalam praktiknya tidak efisien atau tidak senyaman dan seaman ID transaksi (ID transaksi akan langsung dicatat dalam konten blok dan tidak akan pernah berubah setelah diunggah ke rantai).


4. Bagaimana segwit mengatasi masalah skalabilitas transaksi?

Segwit secara efektif memecahkan masalah ini dengan memisahkan data tanda tangan transaksi (saksi) dari blok, dan mengubah tanda tangan tidak lagi mempengaruhi ID transaksi. Pada saat yang sama, segwit juga mengurangi ukuran blok sampai batas tertentu dan meningkatkan kemampuan pemrosesan transaksi (misalnya, spv dapat memproses lebih banyak konten transaksi dengan bandwidth yang sama).

segwit


5. Bagaimana masalah ini diselesaikan sebelum segwit?

Setelah transaksi gagal, Anda perlu melaporkan pesan kesalahan berdasarkan kegagalan transaksi di blockchain dan memeriksa apakah transaksi tersebut telah dimulai di jaringan dalam waktu singkat untuk menentukan apakah transaksi tersebut mengalami serangan ekstensi transaksi. Pada saat yang sama, Anda juga harus menghindari melakukan logika pada transaksi yang belum dikonfirmasi atau transaksi yang dikonfirmasi dalam beberapa blok. Namun metode ini tidak menyelesaikan masalah secara mendasar.

#BTC☀ #SegWit #技术学习

BTC
BTC
81,935.62
+0.63%