* Sedikit tambahan dari komunitas AOBT daripada saya membuat thread baru hehe
Penulis:
witcher_senseTopik Original:
Silent payments
PerkenalanDalam thread kali ini, saya ingin membahas proposal menarik dari Ruben Somsen yang disebut "
Silent Payment/Pembayaran secara diam diam," yang merupakan sebuah teknik peningkatan privasi yang bertujuan untuk membuat pembayaran antara dua pihak di blockchain menjadi kurang transparan bagi para pengamat luar. Teknik ini didasarkan pada konsep seperti "
stealth addresses alamat tersembunyi" dan "
reusable payment codes kode pembayaran yang dapat digunakan kembali" dan pada dasarnya mencoba memecahkan masalah yang sama tetapi dengan cara yang lebih elegan.
Ide dasarnyaIde dasarnya adalah sebagai berikut:
pengguna A menerbitkan beberapa
pengenal (biasanya kunci publik), dan
pengguna B menggabungkan kunci privatnya dengan kunci yang diterbitkan milik
A dan membuat alamat unik yang hanya dapat digunakan oleh
A untuk membelanjakannya.
Pengguna C juga dapat mengirim uang ke
pengguna A dengan menggabungkan kunci privatnya dengan alamat milik
A dan memperoleh alamat unik lainnya.
Pengguna A akan mengetahui bahwa pengguna
B dan
C telah mengiriminya uang, tetapi
B dan
C tidak akan saling mengenal. Oleh karena itu, hal itu memungkinkan
pengguna A untuk menerima pembayaran pada alamat yang sama sekali tidak terhubung dengan hanya menggunakan satu alamat publik.
Cara kerjanyaMisalnya Bob ingin mengirim pembayaran diam-diam ke Alice.
1) Alice membuat pengenal unik (misalnya, kunci publik) menggunakan sebuah matematika kurva eliptik standar:
A = a*G, di mana
A - kunci publik Alice (titik pada kurva eliptik),
a - kunci privat Alice (angka acak yang harus dirahasiakan), dan
G - titik generator (beberapa titik yang telah ditentukan sebelumnya pada kurva eliptik).
2) Alice membuat pengenal
A ini menjadi publik sehingga Bob (dan juga pengguna lain seperti Carol) dapat mengetahui ke mana harus mengirim pembayaran.
3) Bob memilih salah satu masukan yang dikontrolnya yang berisi kunci publik
B = b*G, di mana
B - kunci publik Bob (titik pada kurva elips),
b - kunci privat Bob (bilangan bulat acak yang hanya diketahui Bob), dan
G - titik pembangkit.
4) Bob mengambil kunci publik Alice
A dan membuat kunci publik baru menggunakan rumus berikut:
A' = hash(b*A)*G + A, di mana
A' - kunci publik tempat pembayaran dilakukan oleh Bob.
5) Bob melakukan pembayaran kepada Alice yang menghasilkan keluaran yang terkait dengan kunci publik
A' yang dibuat sebelumnya.
6) Dengan diketahuinya
b*A = b*a*G = a*b*G = a*B, Alice dapat merekonstruksi kunci publik
A' yang sama dengan menggunakan kunci privatnya
a dengan rumus berikut:
A' = (hash(a*B) + a)*G, di mana
hash(a*B) + a - kunci privat baru Alice yang memungkinkannya untuk membelanjakan uang dari output yang sesuai dengan kunci publik
A'.
Namun, permasalahannya adalah Alice perlu mengetahui kunci publik Bob
B untuk mendeteksi pembayarannya, itulah sebabnya ia terus-menerus memindai blockchain untuk mencoba mencari tahu kunci publik mana yang dapat digabungkan dengan kunci privatnya
a guna merekonstruksi alamat bitcoin yang ada.
Pro:1) Tidak diperlukan interaksi antara pengirim dan penerima. Agar pengirim dapat melakukan pembayaran, ia hanya perlu membuat satu alamat dari kunci publik silent milik penerima.
2) Silent payment menggunakan ruang blok secara lebih efisien karena tidak diperlukan transaksi "announce", seperti dalam kasus BIP47. Oleh karena itu, satu transaksi sama dengan satu pembayaran, yang sempurna untuk donasi satu kali
3)
Silent Payment tidak dapat dibedakan dari transaksi biasa (misalnya tidak ada keluaran OP_RETURN untuk berbagi kunci publik sementara seperti dalam kasus "
Stealth addresses"), yang berarti dengan
Silent Payment, mudah bagi pengguna untuk bersembunyi di tengah keramaian - kumpulan anonimitas pada seluruh blockchain.
4) Alamat yang diturunkan dari kunci publik awal selalu deterministik dan unik karena setiap pengirim menggunakan kunci uniknya sendiri untuk mengubah kunci publik milik penerima.
5)
Silent Payment memberi insentif kepada penerima dana untuk tetap menjalankan penuh node Bitcoin mereka, yang secara otomatis menghasilkan jaringan yang lebih terdesentralisasi.
6) Tidak seorang pun, kecuali pengirim transaksi dan penerimanya, akan mengetahui bahwa pembayaran benar-benar terjadi.
7)
Silent Payment sangat meningkatkan fungibilitas transaksi bitcoin.
Kontra:1) Kerugian terbesar dari teknik ini adalah biaya validasi yang relatif tinggi. Mengingat bahwa penerima pembayaran tidak mengetahui terlebih dahulu alamat bitcoin mana yang dapat dibelanjakan dengan kunci pribadi yang dikendalikannya, ia harus memeriksa setiap masukan dari setiap transaksi, menghitung dan membandingkan kunci publik.
2) Potensi pengirim untuk penggunaan ulang alamat. Ketika pengirim memiliki beberapa masukan yang berbagi kunci publik yang sama, masing-masing masukan ini akan menghasilkan alamat terhitung yang sama. Penggunaan ulang alamat dianggap sebagai praktik privasi yang buruk dan harus dihindari dengan segala cara. Hal ini dapat dikurangi dengan memasukkan informasi tambahan ke dalam proses komputasi, tetapi menciptakan beban tambahan, terutama untuk klien ringan. Atau, pengirim dapat menghabiskan semua masukan dalam satu transaksi, tetapi ini juga mengungkapkan kepemilikan bersama, yang merusak privasi.
Referensi:1]
https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b82]
https://github.com/genjix/bips/blob/master/bip-stealth.mediawiki3]
https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki4]
https://en.m.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman5]
https://bitcoinops.org/en/newsletters/2022/04/06/6]
https://bitcoinmagazine.com/technical/bitcoin-silent-payments-secret-keys7]
https://bitcoinmagazine.com/technical/improving-bitcoin-privacy-with-silent-payments8]
https://gist.github.com/w0xlt/72390ded95dd797594f80baba5d2e6ee
Terjemahan ini di buat atas inisiasi: