Pengarang: A Jian
Judul artikel tersebut berasal dari Bitcoiner Xiong Yue.
Upgrade soft fork Taproot Bitcoin akan diaktifkan pada ketinggian blok Bitcoin 709632 (diharapkan 15 November 2021). Peningkatan ini berisi banyak konten penting dan luar biasa, namun kurang mendapat perhatian di dunia Tiongkok. Artikel ini akan secara singkat memperkenalkan konten pemutakhiran Taproot dari sudut pandang teknis, dan mencerminkan arah pengembangan Bitcoin.
Narasi umumnya adalah bahwa Taproot meningkatkan privasi Bitcoin, fungsionalitas kontrak pintar, homogenitas, dan sebagainya. Namun, untuk memahami konten dan imajinasi pemutakhiran Taproot, kita perlu memahami beberapa bitcoin terlebih dahulu.
Kontrak Cerdas pada Bitcoin
Yang tidak dipahami banyak orang adalah bahwa Bitcoin juga mendukung pemrograman smart contract2 , tetapi jenis smart contract-nya berbeda dengan blockchain lainnya (seperti Ethereum). Penjelasan rinci tentang perbedaan ini akan memerlukan artikel terpisah, dan tidak penting di sini. Berikut adalah beberapa modul umum3 dari pemrograman kontrak pintar Bitcoin, sehingga semua orang dapat memahami skenario penerapannya:
- Kontrak multi-tanda tangan. Bitcoin mendukung otorisasi multi-tanda tangan untuk menggunakan dana: Di antara kunci publik yang direkam N, harus ada kunci pribadi yang sesuai dengan penandatanganan kunci publik M (untuk operasi yang sama), dan dana dapat digunakan. Bitcoin mendukung kontrak multi-tanda tangan hingga 15 kunci publik.
- kunci waktu. Pengguna dapat menggunakan dua jenis kunci waktu untuk menentukan periode dana yang tersedia: (1) CLTV, kunci waktu absolut, ditentukan oleh waktu tertentu atau tinggi blok tertentu, dan hanya dapat digunakan setelah waktu ini; (2) ) CSV, relatif terhadap penguncian waktu, misalnya, dana hanya dapat digunakan setelah 1000 blok pada rangkaian transaksi yang menghasilkan dana.
- Pemrograman multi-kondisi. Yaitu, gunakan pernyataan "JIKA ... ELSE ..." dalam skrip untuk mengatur beberapa kondisi pembukaan kunci untuk dana yang sama, dan dana tersebut dapat digunakan jika kondisi apa pun terpenuhi. Misalnya: "Kunci pribadi yang sesuai dengan kunci publik A dapat dibuka, atau, setelah ketinggian blok XXXX, kunci pribadi yang sesuai dengan kunci publik B dapat dibuka, atau, setelah blok YYYY pada rantai transaksi, A, Kunci privat yang sesuai dengan dua dari tiga kunci publik B dan C dapat dibuka kuncinya”
Seperti yang dapat dibayangkan oleh pembaca, modul-modul ini terlihat sangat sederhana, tetapi ada banyak kemungkinan untuk menggabungkannya: kontrak multi-tanda tangan menentukan izin dari subjek yang berbeda, dan dapat beradaptasi dengan skenario aplikasi yang sangat kaya, mulai dari operasi perusahaan hingga perbendaharaan keluarga; waktu Kunci menentukan izin dari subjek yang berbeda pada waktu yang berbeda. Berbagai kondisi secara signifikan memperbesar efek gabungan dari kontrol izin ini.
Anda bahkan dapat membuat kontrak yang mendukung pemulihan sosial dan memiliki efek pembagian warisan hanya dengan beberapa syarat: "Saya (kunci publik) dapat mengontrol dana ini; jika tidak ada yang menggunakannya selama tiga bulan, saya (kunci publik B) ) dan empat teman, tiga dari lima dapat mengontrol dana ini bersama-sama, jika tidak ada yang menggunakannya selama setahun, istri saya dapat mengontrol dana ini.”
Namun, agar kontrak ini benar-benar bermanfaat, ada dua faktor yang tidak dapat diabaikan: efisiensi dan privasi.
Efisiensi berarti biaya transaksi Bitcoin dihitung berdasarkan volume transaksi, dan skrip dengan kondisi lebih banyak akan memakan lebih banyak ruang (dalam byte), dan biaya transaksi akan lebih tinggi.
Pertimbangan privasi adalah paparan skrip akan membuat orang lain tahu bahwa beberapa kunci publik terkait satu sama lain, sehingga memudahkan untuk menganalisis identitas sebenarnya dari pemilik kunci publik.
Saat ini, kontrak Bitcoin diwujudkan sebagai "alamat" P2SH (sebenarnya nilai hash). Karakteristiknya adalah ketika kontrak dibuat, skrip tidak dapat diungkapkan, dan nilai hash skrip dibayarkan langsung jika perlu; namun, ketika dana ini dibelanjakan, skrip yang sesuai dengan nilai hash akan diungkapkan sepenuhnya dan masukkan ke dalam transaksi (jika tidak, tidak ada cara untuk memverifikasi bahwa hash skrip ini persis seperti hash ini). Mengambil contoh kontrak multi-tanda tangan, orang lain dapat langsung membayar nilai hash dari skrip kontrak multi-tanda tangan, tetapi ketika peserta kontrak multi-tanda tangan ingin menggunakan dana ini, mereka harus mengungkapkan seluruh skrip3 .
Selain itu, sebelum peningkatan SegWit, ada perbedaan yang jelas antara dompet pribadi tanda tangan tunggal dan dompet kontrak, yang pertama adalah alamat P2PKH, dan yang terakhir adalah alamat P2SH, dapat dilihat dari alamatnya saja, yang lain faktor yang tidak menguntungkan untuk privasi. Setelah peningkatan SegWit, dompet pribadi yang mendukung Saksi Terpisah juga dapat berbentuk P2SH, tetapi alamat Saksi Terpisah asli (P2WPKH) dan alamat kontrak (P2WSH) masih berbeda 4 .
Dengan mengingat hal itu, mari kita lihat bagaimana tiga bagian pemutakhiran Taproot (MAST, tanda tangan Schnorr, Taproot) dapat bekerja lebih baik.
Pohon Sintaks Abstrak Merkle (MAST)
Arti Merklized Abstract Syntax Trees (MAST) 5 adalah untuk mendukung verifikasi bukti Merkle dalam verifikasi skrip Bitcoin.
Pohon Merkle adalah metode kriptografi untuk melakukan hashing beberapa elemen data menjadi satu nilai hash. Struktur dan karakteristik fungsi hash menentukan bahwa beberapa bukti (nilai hash) dapat diberikan untuk membuktikan bahwa elemen data tertentu berpartisipasi dalam menghasilkan nilai hash. Seperti yang ditunjukkan pada gambar di bawah ini: kami terus melakukan hash elemen data (berdekatan) secara berpasangan, dan akhirnya menghasilkan root Merkle.
Demikian pula, seperti yang ditunjukkan pada gambar di bawah ini, ketika saya ingin membuktikan bahwa data merah "Banana" berpartisipasi dalam menghasilkan nilai hash ungu (merkel root), saya hanya perlu memberikan data merah dan tiga nilai hash hijau. -menghasilkan sisa 7 elemen akar Merkle. Inilah yang dilakukan pohon Merkle dan bukti Merkle.
Bukti Merkle individu untuk Pisang, Persik, dan Kumquat
Pembaca yang cerdas pasti berpikir bahwa dengan fungsi ini, penulis kontrak dapat membagi beberapa kondisi menjadi elemen data yang berbeda dan mengeluarkan nilai root Merkle; ketika kondisi tertentu diperlukan untuk membuka kunci Bitcoin Ketika , hanya perlu membuktikan bahwa ini kondisi ada di pohon Merkle ini, dan tidak perlu mengungkapkan semua kondisi lainnya.
Yap, itulah yang dilakukan MAST. Seperti yang ditunjukkan pada gambar di bawah, ada dua kondisi pembukaan kunci untuk dana ini, dan penulis memisahkannya dan mengabstraksinya menjadi nilai hash dengan pohon Merkle. Saat membuka kunci dan menggunakan salah satu dari kondisi tersebut, tidak ada Buat publik lainnya.
MAST telah mengambil langkah besar berdasarkan P2SH, dan efek peningkatannya pertama kali tercermin dalam privasi: awalnya di P2SH, kontrak harus mengungkapkan semua konten skrip saat digunakan, terlepas dari apakah konten tersebut digunakan atau tidak. diungkapkan; sekarang, dengan MAST, pengguna hanya perlu mengungkapkan kondisi pembukaan kunci yang perlu digunakan, dan tidak perlu mengungkapkan semua konten; pada saat yang sama, orang lain tidak tahu berapa banyak kondisi yang masih Anda miliki.
Kedua, ini juga meningkatkan efisiensi: pengguna hanya perlu menyediakan beberapa skrip yang perlu digunakan, dan bukti Merkle mereka.Ketika seluruh skrip relatif besar, efek penghematan volume ini akan sangat jelas.
Akibatnya, pengguna bitcoin masa depan dapat menulis kontrak dengan banyak kondisi untuk mendapatkan efek kontrol yang lebih baik dan hanya perlu membayar lebih sedikit biaya penanganan; bahkan, mereka dapat dengan sengaja memasukkan beberapa kondisi sampah untuk memperkaya pohon Merkle dan mendapatkan Efek peningkatan privasi.
Ini juga merupakan asal mula subtitle dari artikel ini "Hash is the bank": Skrip Bitcoin sebenarnya berputar di sekitar kontrol dana. Kunci untuk mencapai kontrol ini adalah berbagai kondisi. Dengan MAST, bahkan jika ada banyak kondisi Manajemen aset skrip , juga dapat dikompresi menjadi nilai hash, dan hanya sebagian saja yang perlu diekspos saat digunakan. Pengurangan biaya dapat membuka banyak kemungkinan, menunggu pengembang dompet untuk mengetahuinya.
Tanda tangan Schnorr
Setelah pemutakhiran Taproot, Bitcoin tidak hanya akan mendukung tanda tangan kriptografi berbasis kurva eliptik, tetapi juga mendukung skema tanda tangan digital Schnorr6 .
Metode pembuatan tanda tangan Schnorr tidak disebutkan di sini, kami hanya memperkenalkan properti pentingnya: agregasi tanda tangan/kunci - tanda tangan dari beberapa kunci pribadi dapat digabungkan menjadi satu tanda tangan, yang terlihat seolah-olah ditandatangani oleh satu kunci pribadi. Saat menandatangani, itu masih ditandatangani oleh masing-masing pemegang kunci pribadi; saat memverifikasi tanda tangan, tampaknya tanda tangan ini adalah kunci pribadi yang sesuai dengan kunci publik yang diketahui (tentu saja, kunci publik dikumpulkan oleh kunci publik dari peserta ini). kunci keluar.
Dengan kata lain, dengan tanda tangan Schnorr, orang lain tidak dapat mengetahui apakah tanda tangan ditandatangani oleh satu orang atau banyak orang; kondisi membuka kunci tanda tangan multi dapat diganti dengan kunci publik gabungan. Semua kontrak multi-tanda tangan nn dapat menikmati perlindungan privasi yang disediakan oleh tanda tangan Schnorr. Penerapannya yang paling jelas adalah saluran Jaringan Petir, karena saluran Jaringan Petir adalah kontrak 2-2 multi-tanda tangan; setelah itu, orang lain tidak akan dapat membedakan saluran pembayaran dan pengguna individu berdasarkan jumlah tanda tangan.
Mengenai kontrak multi-tanda tangan mn, jangan khawatir, jangan lupa bahwa kita memiliki MAST: kita dapat mengubah semua situasi pembukaan kunci yang mungkin menjadi cabang, dan saat menggunakan cabang, tanda tangan yang diberikan hanya perlu berupa tanda tangan agregat. Misalnya, kita ingin membuat 2-3 kontrak multi-tanda tangan, dan memilih dua kunci publik A, B, dan C. Efek dari kontrak multi-tanda tangan ini setara dengan "salah satu (A, B) membuka , atau (B, C ) buka kunci, atau (A, C) buka kunci", yang dapat dipahami sebagai skrip multi-kondisi, setiap kondisi adalah 2-2 multi-tanda tangan, sehingga kunci publik gabungan yang sesuai juga dapat digunakan untuk menentukan kondisi buka kunci (dan tidak perlu ditentukan dalam istilah multi-tanda tangan). Oleh karena itu, ketika kita perlu membuka kunci dana dalam kombinasi tertentu, kita hanya perlu menggunakan MAST untuk mengekspos cabang dan memberikan tanda tangan, dan yang lainnya masih belum tahu apakah itu satu orang, dua orang, atau banyak orang.
Ini belum selesai.
Akar tunggang
Menurut jalur yang kami pahami, bagian terakhir dari upgrade Taproot adalah Taproot, yang merupakan asal usul namanya. Dalam mengusulkan konsep ini, Gregory Maxwell menulis7 :
Pertanyaan yang sering muncul saat membahas skrip Merkleized adalah apakah kita dapat mengimplementasikan kontrak pintar yang tidak dapat dibedakan dari pembayaran yang paling umum dan membosankan. Jika tidak, serangkaian keluaran anonim menggunakan teknik trendi ini, yang hanyalah rangkaian khusus lainnya, tidak masuk akal dalam praktiknya.
Di sini, Maxwell memahami inti masalahnya dengan tajam: perlindungan privasi Bitcoin berasal dari "besar yang tersembunyi di pasar" Ini adalah yang paling sulit dipahami. Namun, ketika fungsi baru diperkenalkan, jenis "alamat" baru tidak dapat dihindari. Jika hanya ada sedikit pengguna yang menggunakan fungsi ini, kemungkinan identitas asli setiap pengguna akan sangat meningkat, dan ini dapat menyebabkan masalah ini. Fungsionalitas baru tidak akan digunakan sama sekali, sehingga kehilangan artinya.
Selain itu, meskipun MAST memainkan peran penting dalam privasi kontrak, jika masih sama seperti dulu, dompet pribadi adalah dompet pribadi, dan dompet kontrak adalah dompet kontrak. , harus dikatakan bahwa privasi seperti itu masih cacat. .
Orang-orang sangat membutuhkan cara untuk mengakhiri perbedaan dompet pribadi/dompet kontrak ini dan menambahkan sentuhan akhir pada privasi Bitcoin. Untuk itu, hal minimal yang harus disadari adalah bahwa harga dompet berkontrak semacam ini tidak berbeda dengan dompet pribadi biasa (hemat) dalam penggunaan sehari-hari pengguna.
Taproot adalah metode yang memanfaatkan karakteristik agregasi kunci dan mengusulkan mode skrip dengan dua jalur penggunaan: satu adalah kontrak multi-tanda tangan, yang lainnya adalah skrip kontrak yang ditentukan pengguna.
Mengikuti contoh dalam teks asli Maxwell: Misalkan dua pengguna memiliki kunci publik A dan B, dan dua kunci publik agregat A + B = C, dan kemudian buat kunci publik terakhir P = C + H(C||S)*G , di mana S adalah skrip khusus. Kunci publik terakhir P digunakan untuk menentukan kondisi pembukaan kunci dana. Dengan asumsi bahwa kedua pengguna sedang online, mereka dapat dengan mudah menggunakan dana bersama, asalkan salah satu dari mereka menambahkan H(C||S) ke kunci privatnya saat menandatangani; jika hanya salah satu dari mereka yang online, misalnya, S mendefinisikan The kondisi di mana B dapat membelanjakan dana, aturan Taproot mengizinkan pengguna kunci publik B untuk membelanjakan dana dengan mengungkapkan agregat kunci publik P dan H(C||S) dan menyediakan kondisi di mana S dapat dipenuhi.
Kontrak multi-tanda tangan 2-2 digunakan di sini, tetapi pengguna dapat membayangkan bahwa selama teknologi agregasi kunci tersedia, 1-1, yaitu tanda tangan tunggal, juga dapat menggunakan metode penulisan skrip ini. Poin-poin penting adalah: (1) Meskipun ini adalah dana dengan kontrak khusus, ketika kontrak tidak digunakan dan hanya digunakan multi-tanda tangan, biaya biaya penanganannya tidak berbeda dengan dana yang dibuka dengan satu tanda tangan ! (2) Saat menggunakan nn multi-signature, orang lain tidak tahu bahwa dana ini dapat dibuka dan digunakan dengan cara lain!
Dengan cara ini, pengguna individu dan pengguna kontrak dapat disatukan dalam satu mode skrip ("alamat" P2TR), dan pengguna individu dapat dengan aman menambahkan kontrak ke dana mereka sendiri tanpa khawatir membayar biaya penanganan yang lebih tinggi setiap hari; pengguna kontrak Individu pengguna menikmati kumpulan anonimitas yang lebih besar karena mereka menggunakan "alamat" yang sama, dan bahkan menggunakan kontrak tanpa mengekspos diri mereka sendiri dalam banyak kasus. Semua orang bahagia.
Secara keseluruhan, setelah Taproot, orang lain tidak akan dapat mengetahui apakah alamat P2TR adalah pengguna individu atau pengguna kontrak dari formulir alamat; karena pengaruh tanda tangan Schnorr, ketika dana di alamat ini dibuka kuncinya dengan tanda tangan tunggal, orang lain tidak akan dapat mengetahui apakah itu pengguna individu atau pengguna kontrak. Apakah itu digunakan oleh satu orang atau n orang bersama-sama, tidak mungkin untuk mengetahui apakah ada skrip khusus di alamat ini; karena efek MAST, ketika pengguna menggunakan skrip khusus untuk menghabiskan dana, mereka hanya perlu mengekspos bagian-bagian yang perlu digunakan Skrip; meskipun orang lain tahu bahwa alamat ini memiliki skrip khusus, masih belum diketahui kondisi apa yang termasuk dalam seluruh skrip.
Jadi, sementara beberapa orang mempertanyakan bahwa Taproot pada gilirannya dapat membahayakan privasi Bitcoin7 , saya sama sekali tidak terlalu khawatir. Karena "alamat" Taproot tidak diragukan lagi adalah yang terbaik dalam sejarah Bitcoin dalam hal kenyamanan, privasi, dan ekonomi, sangat diharapkan dapat menyatukan jenis "alamat" Bitcoin dan membentuk anonimitas terbesar dalam set sejarah Bitcoin.
Epilog
Bagi mereka yang mengetahui beberapa teknologi kriptografi, mempelajari pengembangan dan peningkatan Bitcoin sangat menyenangkan dan bahkan membuka mata. Dalam peningkatannya, Anda dapat melihat bahwa orang tanpa lelah menggunakan kriptografi untuk terus mengoptimalkan sistem ini-berkat sifat modular dari sistem itu sendiri, pengoptimalan ini nyata. Akar tunggang adalah salah satunya.
Saya percaya bahwa proses belajar tentang Bitcoin (dan khususnya Taproot) akan mengajari pembaca apa itu "cryptocurrency" yang sebenarnya.
Taproot mungkin merupakan peningkatan terpenting dalam sejarah Bitcoin, yang akan menciptakan mata uang kripto paling murni dalam sejarah — mata uang yang menggunakan kriptografi secara ekstrem, paling ringan, dan memiliki vitalitas paling ulet.
catatan kaki:
- Proposal peningkatan Bitcoin Penjelasan teknis Taproot, https://www.btcstudy.org/2021/09/29/bitcoin-taproot-a-technical-explanation/
- Kontrak Cerdas Bitcoin Wiki, https://en.wikipedia.org/wiki/Smart_contract
- Master Bitcoin Versi Cina Bab 7: Transaksi dan Skrip Tingkat Lanjut, https://github.com/tianmingyun/MasterBitcoin2CN/blob/master/ch07.md
- Jenis transaksi Bitcoin - Bagian II Segwit, https://blog.susanka.eu/types-of-bitcoin-transactions-part-ii-segwit/
- Apa itu Pohon Sintaks Abstrak Merklized Bitcoin, https://www.btcstudy.org/2021/09/07/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast/
- Bagaimana Tanda Tangan Schnorr Dapat Meningkatkan Bitcoin, https://www.btcstudy.org/2021/09/09/how-schnorr-signatures-may-improve-bitcoin/
- Taproot: Skrip yang menjaga privasi, https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html
- Jelaskan dampak Taproot terhadap privasi dalam bahasa sederhana, https://www.btcstudy.org/2021/09/23/explain-like-im-not-a-developer-taproot-privacy/
Sumber: Buku Jeruk
Penafian: Cointelegraph Chinese adalah platform informasi berita blockchain, dan informasi yang diberikan hanya mewakili pendapat pribadi penulis, yang tidak ada hubungannya dengan posisi platform Cointelegraph Chinese, dan bukan merupakan nasihat investasi dan keuangan apa pun. Pembaca diminta untuk menetapkan konsep mata uang dan konsep investasi yang benar, dan dengan sungguh-sungguh meningkatkan kesadaran akan risiko.