Apakah itu Segregated Witness (SegWit)?

Panduan pemula untuk Bitcoin SegWit 💭
Segregated Witness (SegWit) ialah peningkatan yang dibuat pada kod sumber Bitcoin pada 1 Ogos 2017.
Walaupun ramai yang melihatnya sebagai penambahbaikan kepada blockchain Bitcoin, SegWit mendapat tentangan kuat yang memecahbelahkan komuniti.
Punca isu ini ialah percanggahan kepentingan antara keuntungan pelombong (miners) dan pembangun rangkaian yang berusaha menjadikan Bitcoin lebih murah dan pantas untuk digunakan.
Ketegangan ini menyebabkan perpecahan dalam komuniti, memuncak dengan soft fork pertama yang diaktifkan pengguna dan perpecahan yang bermusuhan. Perpecahan ini melahirkan siri projek bercabang Bitcoin baharu, termasuk Bitcoin Cash.
Sehingga kini, SegWit kekal sebagai salah satu peristiwa paling kontroversi dalam sejarah Bitcoin. Namun, ia juga terbukti menjadi salah satu kemas kini terpenting untuk kelangsungan jangka panjang protokol tersebut.
Setiap tahun, ramai dalam komuniti Bitcoin meraikan 1 Ogos sebagai “hari kemerdekaan Bitcoin.” Peristiwa ini menandakan saat kehendak rakyat mengatasi kepentingan terpusat syarikat perlombongan Bitcoin yang sedia ada.
Mari kita terokai setiap peristiwa ini seperti yang berlaku dan bongkar sejarah di sebalik SegWit.
Bitcoin sebelum SegWit ⏮️
Sebelum pengaktifan SegWit, kapasiti blok Bitcoin kekal tidak berubah selama bertahun-tahun. Kapasiti blok merujuk kepada bilangan maksimum transaksi yang boleh direkodkan dalam blok tertentu.
Apabila Bitcoin dilancarkan pada tahun 2009, penciptanya Satoshi Nakamoto tidak menetapkan sebarang parameter untuk saiz blok Bitcoin.
Walau bagaimanapun, pada tahun 2010, Nakamoto secara rahsia menambah had saiz blok 1-megabait (MB) tanpa kelulusan penyumbang Bitcoin lain.
Ramai percaya Nakamoto memasukkan had tersebut untuk mencegah serangan penafian perkhidmatan teragih (DDoS) pada masa hadapan yang boleh menjejaskan rangkaian.
Had tetap pada kapasiti blok ini mempunyai kesan yang tidak diingini iaitu menyekat potensi Bitcoin untuk berskala dalam beberapa cara.
Daya pemprosesan rendah dan masa transaksi yang perlahan
Hanya sebilangan terhad transaksi boleh dimuatkan ke dalam blok 1MB yang agak kecil yang kini diterima pakai oleh Bitcoin. Kapasiti kecil ini bermakna rangkaian Bitcoin hanya boleh memproses sekitar 2–3 transaksi Bitcoin (BTC) sesaat — jauh berbeza daripada rangkaian pembayaran digital tradisional yang boleh memproses puluhan ribu transaksi sesaat.
Selain itu, untuk blok transaksi dianggap sah sebagai sebahagian daripada proses perlombongan Bitcoin, ia mesti menerima enam pengesahan. Dalam erti kata lain, enam blok baharu mesti ditambahkan ke blockchain selepas blok yang dimaksudkan sebelum ia dimuktamadkan. Dengan purata masa blok sepuluh minit, ini bermakna pengesahan blok Bitcoin mengambil masa sekitar satu jam.
Pada masa itu, apabila hanya segelintir ahli kriptografi “Cypherpunk” menyedari tentang Bitcoin, ia tidak semestinya menjadi isu besar. Tetapi, jika rangkaian Bitcoin ingin menjadi “sistem tunai elektronik peer-to-peer” global seperti yang dibayangkan oleh Satoshi dalam kertas putih Bitcoin, perkara perlu berubah.
Yuran yang tinggi
Daya pemprosesan Bitcoin yang rendah, yang dibatasi oleh kapasiti bloknya yang kecil, bermakna yuran juga secara perbandingan jauh lebih tinggi daripada hari ini.
Berikut adalah cara mudah untuk memahami isu ini. Bayangkan anda berdiri di luar dalam keramaian orang selepas menonton pertunjukan teater. Semua orang dari teater ingin menaiki teksi pulang pada masa yang sama. Jika terdapat banyak teksi di sekitar, sepatutnya mudah untuk semua orang pulang. Tetapi, jika hanya ada segelintir teksi, orang mungkin cuba membayar harga yang lebih tinggi kepada pemandu teksi untuk mendorong pemandu membawa mereka pulang terlebih dahulu. Bergantung pada permintaan, harga teksi boleh melonjak jauh lebih tinggi daripada kadar biasa.
Yuran Bitcoin berfungsi berdasarkan prinsip penawaran dan permintaan yang sama. Jika ramai orang ingin transaksi mereka diproses pada masa yang sama, sesetengah mungkin memilih untuk membayar lebih banyak yuran untuk mendapatkan transaksi mereka diproses lebih awal oleh pelombong. Semasa tempoh penggunaan tinggi pada rangkaian Bitcoin, kesesakan boleh mengakibatkan persaingan antara pengguna, yang boleh menyebabkan yuran transaksi melonjak dengan mendadak.
Kebolehubahan transaksi
Satu lagi nuansa yang wujud dalam cara blok Bitcoin berfungsi dikenali sebagai kebolehubahan transaksi (transaction malleability). Sebelum SegWit, orang boleh mengubah ID transaksi sebelum ia menerima pengesahan yang mencukupi pada blockchain.
Mengambil maklumat berkaitan transaksi tertentu dan menjalankannya melalui fungsi hash mencipta ID transaksi. Anda boleh mengetahui lebih lanjut tentang fungsi hash dalam artikel kami Bagaimana mata wang kripto menggunakan kriptografi?
Tetapi untuk memudahkan, anda boleh menganggap ID transaksi ini sebagai cap jari digital yang digunakan untuk mengenal pasti dan merujuk transaksi pada blockchain.
Mengubah ID transaksi mencipta hash yang sama sekali baharu yang kadang-kadang boleh mengelirukan perisian klien blockchain. Semua nod menjalankan perisian klien untuk berinteraksi dengan blockchain dan melaksanakan peranan penting seperti pengesahan data.
Pepijat kebolehubahan ini dalam kod Bitcoin membuka pintu kepada serangan berniat jahat. Salah satu contoh serangan kebolehubahan transaksi yang paling terkenal ialah penggodaman bursa Mt. Gox pada tahun 2014 — terkenal sebagai penggodaman Bitcoin terbesar dalam sejarah.
Pakar melaporkan seorang penggodam, atau kumpulan penggodam, mengosongkan dompet Bitcoin bursa Mt. Gox. Mereka melakukan ini sebahagiannya dengan mengubah ID transaksi pengeluaran mereka.
Serangan kebolehubahan transaksi ini menyebabkan ia kelihatan seolah-olah pengeluaran tidak disahkan pada blockchain, sedangkan sebenarnya ia telah disahkan.
Kelemahan ini, ditambah dengan vektor serangan lain, membolehkan penggodam menyedut lebih 840,000 BTC dari bursa tersebut.
Apakah penambahbaikan yang dibuat oleh SegWit? ⚙️
Penyumbang Bitcoin Pieter Wuille pertama kali membentangkan peningkatan SegWit pada acara Bitcoin Hong Kong pada tahun 2015.
Penyelesaiannya inovatif dalam tiga aspek. SegWit meningkatkan skalabiliti Bitcoin, menghapuskan kebolehubahan, dan membenarkan nod untuk menerima pakai struktur transaksi baharu. Paling penting, ini boleh dilaksanakan tanpa hard fork rangkaian.
Maklumat tandatangan digital dan transaksi yang berasingan
Cadangan Wuille meningkatkan kapasiti blok Bitcoin dengan "mengasingkan" data "witness" daripada blok dan memindahkannya ke transaksi coinbase. Transaksi coinbase ialah transaksi pertama dalam setiap blok Bitcoin baharu. Transaksi coinbase bertanggungjawab untuk mengeluarkan mata wang kripto yang baru dicetak ke dalam edaran sebagai ganjaran untuk proses perlombongan Bitcoin.
Pelombong yang berjaya memenangi pertandingan bukti kerja berasaskan kriptografi Bitcoin memperoleh token yang baru dicetak ini sebagai "ganjaran blok".
Data witness, juga dikenali sebagai ScriptSig atau Unlocking Script, termasuk tandatangan digital dan maklumat kunci awam yang diperlukan untuk membuka kunci Bitcoin yang dipindahkan. Peningkatan SegWit memperkenalkan "medan witness" yang berasingan untuk bahagian ScriptSig dalam transaksi.
Dengan memproses maklumat tandatangan digital secara berasingan daripada medan input transaksi, terdapat lebih banyak ruang untuk transaksi dimuatkan dalam setiap blok.
Lebih banyak transaksi setiap blok bermakna keupayaan daya pemprosesan transaksi yang lebih tinggi. Jadi, daripada 2-3 transaksi sesaat, Bitcoin boleh memproses antara 7-10 transaksi SegWit sesaat. Peningkatan kapasiti juga bermakna yuran yang lebih rendah, kerana blockchain Bitcoin boleh mengendalikan jumlah transaksi yang lebih tinggi.
Walaupun terdapat pemisahan, adalah penting untuk ambil perhatian bahawa nod masih memproses kedua-dua data transaksi dan data witness secara on-chain. Tiada sidechain atau protokol Lapisan 2 digunakan.
Berat blok
Sebelum SegWit, pelombong mengukur blok Bitcoin mengikut saiz (dalam bait). Sistem ini berfungsi dengan baik apabila blok mengandungi kedua-dua data witness dan transaksi, tetapi menghadapi masalah apabila ia dipisahkan.
Untuk mengatasi ini, peningkatan tersebut memperkenalkan metrik yang dipanggil berat blok (block weight) untuk menguruskan saiz blok.
Dengan konsep ini, setiap blok 1-megabait terdiri daripada 4,000,000 unit berat (WU). Setiap transaksi diberikan berat berdasarkan formula berikut:
Saiz transaksi asas dalam bait (tanpa data witness) * 3 + Jumlah saiz transaksi dalam bait.
Dengan mengeluarkan data medan witness daripada pengiraan, transaksi SegWit mempunyai berat yang jauh lebih rendah. Sebaliknya, transaksi bukan SegWit masih mengandungi data witness. Ini bermakna transaksi bukan SegWit sentiasa mempunyai berat 4 kali ganda lebih daripada transaksi SegWit.
Konsep ini secara teorinya meningkatkan saiz blok Bitcoin daripada 1MB kepada 4MB, jika blok terdiri hampir sepenuhnya daripada data witness. Walau bagaimanapun, ini tidak mungkin berlaku dalam amalan.
Faedah utama sistem berwajaran ini ialah ia memberi insentif kepada pelombong untuk memproses blok yang kebanyakannya mengandungi transaksi SegWit. Dengan mengandaikan transaksi SegWit membawa yuran yang sama seperti blok legasi, pelombong boleh memproses lebih banyak transaksi SegWit setiap blok. Lebih banyak transaksi yang mereka proses setiap blok, lebih banyak yuran yang mereka peroleh.
Situasi menang-menang untuk kedua-dua pihak. Atau begitulah yang anda fikirkan.
Tiada lagi isu kebolehubahan transaksi
Di bawah struktur SegWit, ID transaksi yang di-hash hanya mengandungi maklumat transaksi, bukan maklumat medan witness.
Perubahan ini menghapuskan komponen transaksi Bitcoin yang boleh diubah suai yang sebelum ini membolehkan serangan kebolehubahan.
Akibatnya, penyelesaian penskalaan sekunder seperti Bitcoin Lightning Network menjadi mungkin.
Mengapa SegWit kontroversi? 🤔
Ramai dalam komuniti pembangunan merasakan bahawa SegWit tidak cukup jauh untuk menangani isu penskalaan Bitcoin.
Hujah utama menentang pengaktifan SegWit termasuk:
- Daya pemprosesan Bitcoin yang meningkat sebanyak 7-10 transaksi sesaat masih jauh daripada cukup tinggi untuk sistem pembayaran global yang terdesentralisasi.
- Yuran akan kekal agak tinggi, menjadikan perkara seperti transaksi mikro tidak berdaya maju dari segi kewangan.
- Pelombong masih boleh memproses blok transaksi legasi, bermakna kebolehubahan masih menjadi ancaman.
- Kemudiannya didapati bahawa SegWit akan menafikan mekanisme ASICBOOST Bitmain; eksploitasi yang digunakan untuk meningkatkan kecekapan rig perlombongan dengan ketara.
Kira-kira setahun selepas cadangan Wuille, beliau dan pembangun Bitcoin Core lain termasuk Eric Lombrozo telah menyediakan kod untuk disiarkan dalam kemas kini Bitcoin Core 0.13.1 yang akan datang. Satu-satunya langkah yang tinggal untuk mengaktifkan SegWit ialah pelombong mula memproses blok SegWit baharu.
Untuk mengukuhkan pelaksanaannya, lebih 95% daripada semua pelombong Bitcoin perlu menunjukkan sokongan untuk SegWit dalam tempoh dua minggu pertama permulaannya — halangan besar memandangkan keadaan pada masa itu.
Soft fork yang diaktifkan pengguna
Tidak perlu dikatakan, firma perlombongan besar seperti Bitmain masih tidak berpuas hati dengan perubahan yang dicadangkan dan enggan menyokong pengaktifan SegWit.
Pada awal tahun 2017, seorang pembangun pseudonim bernama “Shaolinfry” membangkitkan kemungkinan nod Bitcoin menguatkuasakan soft fork dalam siaran bitcoin-dev dalam talian.
Soft fork yang diaktifkan pengguna tidak pernah dicuba pada rangkaian Bitcoin sebelum ini, tetapi ia akan membolehkan pembangun untuk meneruskan SegWit dengan sokongan sekitar 51% daripada pelombong. Mereka yang enggan menyokong blok baharu berisiko blok mereka ditolak oleh nod. Penyelesaian itu tidak tanpa risiko. Jika SegWit gagal menerima sokongan yang mencukupi daripada pelombong, hasilnya pasti akan membawa kepada perpecahan rantaian.
Mereka yang menentang SegWit mencadangkan peningkatan hard fork SegWit 2X yang berbeza. Satu yang akan melaksanakan SegWit dan meningkatkan saiz blok Bitcoin kepada 2MB.
Tidak seperti peningkatan sebelumnya, SegWit 2X tidak akan serasi ke belakang dengan versi klien Bitcoin sebelumnya. Perubahan ini bermakna nod perlu mengemas kini perisian mereka untuk terus beroperasi pada rangkaian.
SegWit & Perjanjian New York 🗽
Syarikat-syarikat terkemuka industri bertemu di Consensus 2017 dan secara kolektif menandatangani memorandum yang digelar "Perjanjian New York." Dokumen ini menggariskan rancangan untuk SegWit disiarkan pada musim panas dan untuk saiz blok Bitcoin meningkat kepada 2MB menjelang November.
Menjelang November, jurutera Waranti Bitmain, James Hillard, mencadangkan BIP baharu; BIP91. Penyelesaiannya bertujuan untuk menjadikan SegWit 2X dan BIP148 serasi antara satu sama lain. Mengapa mengambil risiko perpecahan rantaian atas dua kemas kini SegWit yang bersaing apabila anda boleh menjadikannya serasi?
Pada 1 Ogos, sokongan perlombongan yang mencukupi mengukuhkan pengaktifan SegWit. Walau bagaimanapun, peringkat kedua Perjanjian New York gagal menerima sokongan yang sama.
Kegagalan untuk meningkatkan saiz blok Bitcoin kepada 2MB mengakibatkan pembentukan Bitcoin Cash (BCH) — projek bercabang baharu daripada blockchain Bitcoin.
Kepentingan hari kemerdekaan Bitcoin
Pengenalan SegWit dan keputusan komuniti untuk menolak peningkatan saiz blok mewakili detik penting bagi komuniti Bitcoin yang lebih luas.
SegWit menunjukkan kepentingan konsensus apabila ia berkaitan dengan perubahan pada blockchain Bitcoin serta sejauh mana desentralisasi kuasa yang ditawarkan oleh Bitcoin.
Tiada individu tunggal yang dapat mengambil alih rangkaian dan melihat cadangan mereka dilaksanakan.
Sebaliknya, komuniti berdebat, mengulang kaji dan meneruskan proses panjang untuk mencapai konsensus sebagai kumpulan kolektif — bukan atas arahan individu tunggal.
Mula membeli Bitcoin
Kini setelah anda mempelajari semua tentang SegWit, adakah anda bersedia untuk meneruskan perjalanan kripto anda dan membeli Bitcoin?
Lihat panduan Pusat Pembelajaran Kraken kami untuk maklumat lanjut tentang Cara membeli Bitcoin (BTC) dan daftar akaun dengan Kraken hari ini.