Perkenalan

Seringkali dianggap penting agar sistemnya transparan agar dapat berfungsi. Artinya, setiap node di jaringan dapat menyimpan salinannya dan memverifikasi bahwa tidak ada aturan yang dilanggar. Untuk banyak buku besar terdistribusi, siapa pun dapat memuat penjelajah blok online yang memungkinkan mereka mencari blok, transaksi, dan alamat.

Dari segi privasi, ini tidak ideal. Dalam sistem seperti Bitcoin, setiap transaksi dapat dihubungkan kembali ke transaksi sebelumnya. Koin secara teknis tidak dapat dipertukarkan, artinya masing-masing koin dapat dikaitkan dengan transaksi tertentu. Tidak ada seorang pun yang dapat mencegah Anda mengirimkan bitcoin, namun mereka dapat menolak menerima transaksi Anda jika koin tersebut sebelumnya telah melewati alamat yang masuk daftar hitam.

Dalam skenario terburuk, kurangnya kesepadanan dapat berdampak besar pada fondasi sistem. Koin yang bersih mungkin memiliki harga yang lebih tinggi, sedangkan koin yang lebih tua akan memiliki nilai yang lebih rendah mengingat sejarahnya.

Privasi dalam Bitcoin sering kali dilebih-lebihkan. Tidak hanya koin yang bisa dilacak, tetapi pengguna juga bisa. Mereka menggunakan nama samaran (alamat publik terlihat jelas, bukan nama), namun hal ini bukannya tanpa kekurangan. Teknik analisis yang canggih, dengan akurasi yang semakin meningkat, dapat mengelompokkan alamat bersama-sama dalam upaya untuk mendeanonimkan entitas jaringan.

Salah satu peningkatan yang diusulkan untuk menjadikan transaksi benar-benar pribadi adalah Transaksi Rahasia.


Apa itu Transaksi Rahasia?

Transaksi Rahasia (CT) pertama kali dibahas oleh CEO Blockstream Adam Back pada tahun 2013 dan kemudian diperluas oleh pengembang Bitcoin Gregory Maxwell. Maxwell menguraikan masalah yang disebutkan di bagian pertama (fungabilitas dan lemahnya nama samaran) – dan mengusulkan solusi. Jumlah yang ditransfer dapat dilindungi dari jaringan yang lebih luas sehingga hanya pihak yang bertransaksi yang mengetahui berapa jumlah yang telah dikirim.


Normal transactions vs Confidential transactions


Dalam keadaan normal (dengan transaksi yang dapat dilihat publik), node mudah memverifikasi bahwa jumlah yang diterima tidak melebihi jumlah yang dikirim. Jika Alice ingin mengirim 0,3 BTC ke Bob, dia mengambil output yang belum terpakai (sebut saja 1 BTC) dan membaginya menjadi dua bagian: 0,3 untuk dikirim ke Bob, dan 0,69 untuk dikirim kembali kepadanya (dengan sisanya hangus sebagai biaya penambangan).

Ini adalah aljabar sederhana untuk node lain: 1 melebihi 0,3 + 0,69, semua tanda tangan benar, dan masukan Alice belum digunakan di tempat lain, jadi transaksi harus valid. Namun, ketika jumlah dibutakan, segala sesuatunya menjadi tidak sepele. Bagaimana Anda mulai mengevaluasi jika suatu jumlah yang tidak diketahui sama dengan atau melebihi jumlah dua jumlah yang tidak diketahui lainnya?


Ikhtisar kriptografi yang terlibat

Untuk menyembunyikan data, diperlukan enkripsi. Namun, metode tradisional mirip dengan menyimpan dokumen di brankas: setelah terkunci di dalamnya, dokumen tersebut tidak dapat digunakan lagi hingga dokumen tersebut dikeluarkan. Yang kami perlukan agar Transaksi Rahasia dapat berfungsi adalah brankas digital yang isinya tidak diungkapkan, namun propertinya dapat diverifikasi oleh pihak luar.

Jawabannya terletak pada enkripsi homomorfik khususnya, dalam skema yang disebut komitmen Pedersen. Jenis enkripsi ini memungkinkan pihak luar melakukan operasi pada data terenkripsi (yang tidak dapat mereka lihat) untuk sejumlah tujuan. 

Hash biasa dapat digunakan untuk berkomitmen pada data yang ingin Anda ungkapkan nanti. Misalkan Anda ingin mengumumkan kompetisi di media sosial, di mana siapa pun yang menebak bursa favorit Anda akan memenangkan hadiah sebesar 0,01 BTC. Peserta mungkin akan skeptis karena Anda bisa saja melihat jawabannya setelah kompetisi ditutup, dan memilih pertukaran yang belum disebutkan.

Apa yang dapat Anda lakukan adalah memberikan hash kepada pengikut Anda: serangkaian angka dan karakter yang tampaknya acak yang dipetakan ke masukan tertentu. Anda meneruskan pertukaran Anda melalui suatu fungsi untuk mendapatkan keluaran tertentu. Kami akan mengilustrasikannya dengan algoritma SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Melihat ini, Anda tidak tahu apa masukannya. Anda juga tidak dapat membalikkan fungsi untuk mendapatkannya. Namun, jika Anda mengetahui bahwa masukannya adalah “Binance”, Anda dapat dengan mudah memeriksa apakah hashnya cocok dengan yang tercantum di atas. Dengan cara ini, pengikut Anda memiliki jaminan bahwa Anda tidak akan mengubah jawaban Anda pada akhir kompetisi – hal ini akan menghasilkan hasil yang sangat berbeda.

Namun secara realistis, hal ini tidak terlalu aman. Meskipun pengikut Anda tidak dapat merekayasa balik algoritme, mereka dapat membuat daftar kemungkinan pertukaran, melakukan hashing pada setiap pertukaran hingga mereka mendapatkan kecocokan. Kita dapat mengurangi kemungkinan terjadinya hal ini dengan menambahkan beberapa data acak yang disebut faktor buta pada data yang akan kita hash. 

Jika kita memasukkan “Binance adalah bursa favorit saya, saya lebih menyukainya dibandingkan bursa lainnya 2#43Wr”, maka akan menjadi jauh lebih sulit bagi lawan untuk menebaknya (dan untuk 0,01 BTC, tentu tidak mungkin ada orang yang akan mencobanya).

Komitmen Pedersen memungkinkan kami menambahkan masukan di balik komitmen tersebut. Seperti yang diilustrasikan Maxwell:


confidential transaction equation


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Dimana BF adalah faktor penutup dan D adalah datanya


Ada beberapa langkah lagi dari sini yang melibatkan kriptografi kurva elips dan bukti jangkauan, namun ide dasarnya adalah pengguna memiliki komitmen Pedersen untuk alamatnya. Saat mengirim dana, dua komitmen tambahan dibuat (satu untuk alamat perubahan yang akan dikembalikan ke pengguna, dan satu lagi untuk alamat tujuan). 

Tidak ada yang tahu berapa banyak yang dikirim, namun mereka dapat memeriksa bahwa perubahan dan komitmen tujuan (sisi kiri persamaan Maxwell) berjumlah alamat asal (sisi kanan persamaan). Jika evaluasi ini benar, maka transaksi pengguna valid, karena dapat dibuktikan bahwa inputnya sama dengan outputnya.


Apa yang dapat dicapai oleh Transaksi Rahasia?

Jika Transaksi Rahasia diterapkan dalam Bitcoin, kita akan menikmati sistem yang jauh lebih privat. Baik input maupun output akan disembunyikan dari jaringan yang lebih luas, dan entri pada buku besar akan dikaburkan - namun node masih dapat memverifikasi keasliannya. Dengan peningkatan privasi yang besar ini, bitcoin dapat secara efektif dianggap sepadan, karena analisis rantai tidak lagi mengungkapkan sejarahnya. dari satuan tertentu. 

Mengenai apakah Transaksi Rahasia akan diintegrasikan ke dalam protokol, hal tersebut tampaknya belum mungkin dilakukan saat ini. Dengan fungsionalitas tambahan ini, transaksi menjadi jauh lebih besar dibandingkan transaksi standar – mengingat terbatasnya ruang blok, hal ini hanya akan meningkatkan permintaan. Hal ini juga mengharuskan mayoritas peserta untuk menyetujui perubahan kode etik, sebuah tugas yang secara tradisional terbukti sulit.


Transaksi Rahasia telah mengalami beberapa iterasi pada mata uang kripto dan sidechain Bitcoin lainnya. Misalnya, Monero menggunakannya dalam kombinasi dengan konstruksi yang disebut tanda tangan cincin untuk mencapai anonimitas dan kesepadanan. Sidechain Liquid menerapkannya untuk privasi yang lebih baik, dan MimbleWimble memperluasnya ke tujuan yang sama.

Dari segi manfaat yang didapat, Transaksi Rahasia memiliki dampak yang lebih besar. Mata uang kripto sering kali mengalami kesulitan dengan skalabilitas dan throughput pada lapisan dasar, dan ukuran transaksi yang lebih besar tidak menarik bagi semua orang. Meskipun demikian, pendukung privasi percaya bahwa penting untuk menyembunyikan jumlah transaksi dan partisipan agar benar-benar mengizinkan cryptocurrency berfungsi sebagai uang yang sepadan.