CryptoNote v2.0
Makalah yang disajikan di sini adalah whitepaper CryptoNote v2.0 karya Nicolas van Saberhagen (2013), yang mendeskripsikan fondasi kriptografi yang mendasari Monero. Ini bukan whitepaper khusus Monero — Monero diluncurkan pada tahun 2014 sebagai fork dari implementasi referensi CryptoNote (Bytecoin) dan sejak saat itu telah berkembang jauh melampaui protokol aslinya.
Perkenalan
“Bitcoin” [1] telah berhasil menerapkan konsep uang elektronik p2p. Keduanya para profesional dan masyarakat umum mulai menghargai kombinasi yang nyaman dari transaksi publik dan proof-of-work sebagai model kepercayaan. Saat ini, basis pengguna uang elektronik tumbuh dengan kecepatan yang stabil; pelanggan tertarik dengan biaya rendah dan anonimitas yang diberikan oleh uang elektronik dan pedagang menilai emisi yang diprediksi dan didesentralisasi. Bitcoin punya secara efektif membuktikan bahwa uang elektronik bisa sesederhana uang kertas dan senyaman mungkin kartu kredit. Sayangnya, Bitcoin mempunyai beberapa kekurangan. Misalnya saja sistem terdistribusi sifatnya tidak fleksibel, mencegah penerapan fitur-fitur baru hingga hampir semua pengguna jaringan memperbarui klien mereka. Beberapa kelemahan kritis yang tidak dapat diperbaiki dengan cepat menghalangi Bitcoin penyebarannya secara luas. Dalam model yang tidak fleksibel seperti ini, akan lebih efisien jika meluncurkan proyek baru daripada terus-menerus memperbaiki proyek aslinya. Dalam makalah ini, kami mempelajari dan mengusulkan solusi terhadap kekurangan utama Bitcoin. Kami percaya bahwa sistem yang mempertimbangkan solusi yang kami usulkan akan menghasilkan persaingan yang sehat antara sistem kas elektronik yang berbeda. Kami juga mengusulkan uang elektronik kami sendiri, “CryptoNote”, sebuah nama yang menekankan terobosan berikutnya dalam uang elektronik.
giriiş
“Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin birçok eksiklikten muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızla düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim.
Bitcoin Kekurangan dan Kemungkinan Solusinya
2 Bitcoin kekurangan dan beberapa kemungkinan solusi 2.1 Ketertelusuran transaksi Privasi dan anonimitas adalah aspek terpenting dari uang elektronik. Pembayaran antar rekan berusaha untuk disembunyikan dari pandangan pihak ketiga, perbedaan yang nyata jika dibandingkan dengan tradisional perbankan. Secara khusus, T. Okamoto dan K. Ohta menjelaskan enam kriteria uang elektronik yang ideal, yang mencakup “privasi: hubungan antara pengguna dan pembeliannya harus tidak dapat dilacak oleh siapa pun” [30]. Dari uraiannya, kami memperoleh dua properti yang sepenuhnya anonim model uang elektronik harus memenuhi persyaratan yang digariskan oleh Okamoto dan Ohta: Untraceability: untuk setiap transaksi masuk, semua pengirim yang mungkin memiliki kemungkinan yang sama. Tidak dapat dihubungkan: untuk dua transaksi keluar mana pun, tidak mungkin dibuktikan bahwa mereka telah dikirim orang yang sama. Sayangnya, Bitcoin tidak memenuhi persyaratan tidak dapat dilacak. Karena semua transaksi yang terjadi di antara peserta jaringan bersifat publik, maka transaksi apa pun bisa bersifat publik 1 Catatan Kripto v 2.0 Nicolas van Saberhagen 17 Oktober 2013 1 Pendahuluan “Bitcoin” [1] telah berhasil menerapkan konsep uang elektronik p2p. Keduanya para profesional dan masyarakat umum mulai menghargai kombinasi yang nyaman dari transaksi publik dan proof-of-work sebagai model kepercayaan. Saat ini, basis pengguna uang elektronik tumbuh dengan kecepatan yang stabil; pelanggan tertarik dengan biaya rendah dan anonimitas yang diberikan oleh uang elektronik dan pedagang menilai emisi yang diprediksi dan didesentralisasi. Bitcoin punya secara efektif membuktikan bahwa uang elektronik bisa sesederhana uang kertas dan senyaman mungkin kartu kredit. Sayangnya, Bitcoin mempunyai beberapa kekurangan. Misalnya saja sistem terdistribusi sifatnya tidak fleksibel, mencegah penerapan fitur-fitur baru hingga hampir semua pengguna jaringan memperbarui klien mereka. Beberapa kelemahan kritis yang tidak dapat diperbaiki dengan cepat menghalangi Bitcoin penyebarannya secara luas. Dalam model yang tidak fleksibel seperti ini, akan lebih efisien jika meluncurkan proyek baru daripada terus-menerus memperbaiki proyek aslinya. Dalam makalah ini, kami mempelajari dan mengusulkan solusi terhadap kekurangan utama Bitcoin. Kami percaya bahwa sistem yang mempertimbangkan solusi yang kami usulkan akan menghasilkan persaingan yang sehat antara sistem kas elektronik yang berbeda. Kami juga mengusulkan uang elektronik kami sendiri, “CryptoNote”, sebuah nama yang menekankan terobosan berikutnya dalam uang elektronik. 2 Bitcoin kekurangan dan beberapa kemungkinan solusi 2.1 Ketertelusuran transaksi Privasi dan anonimitas adalah aspek terpenting dari uang elektronik. Pembayaran antar rekan berusaha untuk disembunyikan dari pandangan pihak ketiga, perbedaan yang nyata jika dibandingkan dengan tradisional perbankan. Secara khusus, T. Okamoto dan K. Ohta menjelaskan enam kriteria uang elektronik yang ideal, yang mencakup “privasi: hubungan antara pengguna dan pembeliannya harus tidak dapat dilacak oleh siapa pun” [30]. Dari uraiannya, kami memperoleh dua properti yang sepenuhnya anonim model uang elektronik harus memenuhi persyaratan yang digariskan oleh Okamoto dan Ohta: Untraceability: untuk setiap transaksi masuk, semua pengirim yang mungkin memiliki kemungkinan yang sama. Tidak dapat dihubungkan: untuk dua transaksi keluar mana pun, tidak mungkin dibuktikan bahwa mereka telah dikirim orang yang sama. Sayangnya, Bitcoin tidak memenuhi persyaratan tidak dapat dilacak. Karena semua transaksi yang terjadi di antara peserta jaringan bersifat publik, maka transaksi apa pun bisa bersifat publik 1 3 Bitcoin pasti gagal dalam "tidak dapat dilacak". Saat saya mengirimi Anda BTC, dompet asal pengirimannya dicap secara tidak dapat ditarik kembali pada blockchain. Tidak ada pertanyaan tentang siapa yang mengirim dana tersebut, karena hanya orang yang mengetahui kunci privat yang dapat mengirimkannya.ditelusuri secara jelas ke asal yang unik dan penerima akhir. Bahkan jika dua peserta bertukar dana secara tidak langsung, metode pencarian jalur yang dirancang dengan baik akan mengungkap asal usul dan penerima akhir. Diduga juga Bitcoin tidak memenuhi properti kedua. Beberapa peneliti menyatakan ([33, 35, 29, 31]) bahwa analisis blockchain yang cermat dapat mengungkapkan hubungan antara pengguna jaringan Bitcoin dan transaksinya. Meskipun ada beberapa metode yang bisa dilakukan disengketakan [25], diduga banyak informasi pribadi tersembunyi yang dapat diambil dari basis data publik. Kegagalan Bitcoin dalam memenuhi kedua sifat yang diuraikan di atas membuat kita menyimpulkan bahwa hal tersebut memang benar adanya bukan sistem kas elektronik anonim melainkan sistem kas elektronik pseudo-anonim. Pengguna cepat berkembang solusi untuk menghindari kelemahan ini. Dua solusi langsung adalah “layanan pencucian” [2] dan pengembangan metode terdistribusi [3, 4]. Kedua solusi tersebut didasarkan pada gagasan pencampuran beberapa transaksi publik dan mengirimkannya melalui beberapa alamat perantara; yang pada gilirannya menderita kelemahan karena membutuhkan pihak ketiga yang tepercaya. Baru-baru ini, skema yang lebih kreatif diusulkan oleh I. Miers dkk. [28]: “Nolkoin”. nol koin menggunakan akumulator kriptografi satu arah dan bukti tanpa pengetahuan yang memungkinkan pengguna melakukannya “konversi” bitcoin menjadi zerocoin dan belanjakan menggunakan bukti kepemilikan anonim tanda tangan digital berbasis kunci publik yang eksplisit. Namun, bukti-bukti pengetahuan tersebut mempunyai keteguhan tetapi ukurannya tidak nyaman - sekitar 30kb (berdasarkan batas Bitcoin saat ini), yang membuat proposal tidak praktis. Penulis mengakui bahwa protokol tersebut kemungkinan besar tidak akan pernah diterima oleh mayoritas orang Bitcoin pengguna [5]. 2.2 Fungsi proof-of-work Pencipta Bitcoin Satoshi Nakamoto mendeskripsikan algoritme pengambilan keputusan mayoritas sebagai “oneCPU-one-vote” dan menggunakan fungsi penetapan harga yang terikat CPU (ganda SHA-256) untuk proof-of-work miliknya skema. Karena pengguna memilih satu riwayat transaksi pesanan [1], kewajaran dan Konsistensi proses ini merupakan kondisi kritis bagi keseluruhan sistem. Keamanan model ini memiliki dua kelemahan. Pertama, ini membutuhkan 51% jaringan kekuatan penambangan berada di bawah kendali pengguna yang jujur. Kedua, kemajuan sistem (perbaikan bug, perbaikan keamanan, dll...) mengharuskan sebagian besar pengguna untuk mendukung dan menyetujuinya perubahan (ini terjadi ketika pengguna memperbarui perangkat lunak dompet mereka) [6]. Akhirnya pemungutan suara yang sama Mekanisme ini juga digunakan untuk jajak pendapat kolektif tentang penerapan beberapa fitur [7]. Hal ini memungkinkan kita untuk menduga sifat-sifat yang harus dipenuhi oleh proof-of-work fungsi penetapan harga. Fungsi tersebut tidak boleh memungkinkan peserta jaringan untuk memiliki signifikansi keunggulan dibandingkan peserta lain; itu membutuhkan keseimbangan antara perangkat keras umum dan perangkat keras tinggi biaya perangkat khusus. Dari contoh terbaru [8], kita dapat melihat bahwa fungsi SHA-256 digunakan dalam arsitektur Bitcoin tidak memiliki properti ini karena penambangan menjadi lebih efisien pada GPU dan perangkat ASIC jika dibandingkan dengan CPU kelas atas. Oleh karena itu, Bitcoin menciptakan kondisi yang menguntungkan bagi kesenjangan yang besar antara hak suara peserta karena melanggar prinsip “satu CPU-satu suara” yang dimiliki oleh pemilik GPU dan ASIC hak suara yang jauh lebih besar jika dibandingkan dengan pemilik CPU. Ini adalah contoh klasik dari Prinsip Pareto dimana 20% peserta sistem mengontrol lebih dari 80% suara. Ada yang berpendapat bahwa ketidaksetaraan tersebut tidak relevan dengan keamanan jaringan karena memang tidak relevan jumlah peserta yang sedikit menguasai suara mayoritas tetapi kejujurannya peserta yang penting. Akan tetapi, argumen tersebut agak cacat karena justru merupakan argumen yang salah kemungkinan munculnya perangkat keras khusus yang murah daripada kejujuran peserta yang mana menimbulkan ancaman. Untuk mendemonstrasikannya, mari kita ambil contoh berikut. Misalkan seorang yang jahat individu memperoleh kekuatan penambangan yang signifikan dengan menciptakan lahan penambangannya sendiri dengan biaya murah 2 ditelusuri secara jelas ke asal yang unik dan penerima akhir. Bahkan jika dua peserta bertukar dana secara tidak langsung, metode pencarian jalur yang dirancang dengan baik akan mengungkap asal usul dan penerima akhir. Diduga juga Bitcoin tidak memenuhi properti kedua. Beberapa peneliti menyatakan ([33, 35, 29, 31]) bahwa analisis blockchain yang cermat dapat mengungkapkan hubungan antara pengguna jaringan Bitcoin dan transaksinya. Meskipun ada beberapa metode yang bisa dilakukan ddisengketakan [25], diduga banyak informasi pribadi tersembunyi yang dapat diekstraksi dari basis data publik. Kegagalan Bitcoin dalam memenuhi dua sifat yang diuraikan di atas membuat kita menyimpulkan bahwa hal tersebut memang benar adanya bukan sistem kas elektronik anonim melainkan sistem kas elektronik pseudo-anonim. Pengguna cepat berkembang solusi untuk menghindari kelemahan ini. Dua solusi langsung adalah “layanan pencucian” [2] dan pengembangan metode terdistribusi [3, 4]. Kedua solusi tersebut didasarkan pada gagasan pencampuran beberapa transaksi publik dan mengirimkannya melalui beberapa alamat perantara; yang pada gilirannya menderita kelemahan karena membutuhkan pihak ketiga yang tepercaya. Baru-baru ini, skema yang lebih kreatif diusulkan oleh I. Miers dkk. [28]: “Nolkoin”. nol koin menggunakan akumulator kriptografi satu arah dan bukti tanpa pengetahuan yang memungkinkan pengguna melakukannya “konversi” bitcoin menjadi zerocoin dan belanjakan menggunakan bukti kepemilikan anonim tanda tangan digital berbasis kunci publik yang eksplisit. Namun, bukti-bukti pengetahuan tersebut mempunyai keteguhan tetapi ukurannya tidak nyaman - sekitar 30kb (berdasarkan batas Bitcoin saat ini), yang membuat proposal tidak praktis. Penulis mengakui bahwa protokol tersebut kemungkinan besar tidak akan pernah diterima oleh mayoritas orang Bitcoin pengguna [5]. 2.2 Fungsi proof-of-work Pencipta Bitcoin Satoshi Nakamoto mendeskripsikan algoritme pengambilan keputusan mayoritas sebagai “oneCPU-one-vote” dan menggunakan fungsi penetapan harga yang terikat CPU (ganda SHA-256) untuk proof-of-work miliknya skema. Karena pengguna memilih satu riwayat transaksi pesanan [1], kewajaran dan Konsistensi proses ini merupakan kondisi kritis bagi keseluruhan sistem. Keamanan model ini memiliki dua kelemahan. Pertama, ini membutuhkan 51% jaringan kekuatan penambangan berada di bawah kendali pengguna yang jujur. Kedua, kemajuan sistem (perbaikan bug, perbaikan keamanan, dll...) mengharuskan sebagian besar pengguna untuk mendukung dan menyetujuinya perubahan (ini terjadi ketika pengguna memperbarui perangkat lunak dompet mereka) [6]. Akhirnya pemungutan suara yang sama Mekanisme ini juga digunakan untuk jajak pendapat kolektif tentang penerapan beberapa fitur [7]. Hal ini memungkinkan kita untuk menduga sifat-sifat yang harus dipenuhi oleh proof-of-work fungsi penetapan harga. Fungsi tersebut tidak boleh memungkinkan peserta jaringan untuk memiliki signifikansi keunggulan dibandingkan peserta lain; itu membutuhkan keseimbangan antara perangkat keras umum dan perangkat keras tinggi biaya perangkat khusus. Dari contoh terbaru [8], kita dapat melihat bahwa fungsi SHA-256 digunakan dalam arsitektur Bitcoin tidak memiliki properti ini karena penambangan menjadi lebih efisien GPU dan perangkat ASIC jika dibandingkan dengan CPU kelas atas. Oleh karena itu, Bitcoin menciptakan kondisi yang menguntungkan bagi kesenjangan yang besar antara hak suara peserta karena melanggar prinsip “satu CPU-satu suara” yang dimiliki oleh pemilik GPU dan ASIC hak suara yang jauh lebih besar jika dibandingkan dengan pemilik CPU. Ini adalah contoh klasik dari Prinsip Pareto dimana 20% peserta sistem mengontrol lebih dari 80% suara. Ada yang berpendapat bahwa ketidaksetaraan tersebut tidak relevan dengan keamanan jaringan karena memang tidak relevan jumlah peserta yang sedikit menguasai suara mayoritas tetapi kejujurannya peserta yang penting. Akan tetapi, argumen tersebut agak cacat karena justru merupakan argumen yang salah kemungkinan munculnya perangkat keras khusus yang murah daripada kejujuran peserta yang mana menimbulkan ancaman. Untuk mendemonstrasikannya, mari kita ambil contoh berikut. Misalkan seorang yang jahat individu memperoleh kekuatan penambangan yang signifikan dengan menciptakan lahan penambangannya sendiri dengan biaya murah 2 4 Agaknya, jika setiap pengguna membantu anonimitas mereka dengan selalu membuat alamat baru untuk SETIAP pembayaran yang diterima (yang tidak masuk akal tetapi secara teknis merupakan cara yang "benar" untuk melakukannya), dan jika setiap pengguna membantu anonimitas orang lain dengan bersikeras bahwa mereka tidak pernah mengirim dana ke alamat BTC yang sama dua kali, maka Bitcoin hanya akan secara tidak langsung meneruskan tes ketidakterhubungan. Mengapa? Data konsumen dapat digunakan untuk mengetahui banyak hal tentang orang-orang sepanjang waktu. Lihat, misalnya http://www.applieddatalabs.com/content/target-knows-it-shows Sekarang, bayangkan ini 20 tahun ke depan dan bayangkan lebih jauh bahwa Target tidak mengetahuinya begitu saja tentang kebiasaan pembelian Anda di Target, tetapi mereka telah menambang blockchain untuk SEMUANYA PEMBELIAN PRIBADI ANDA DENGAN DOMPET COINBASE ANDA UNTUK MASA LALU DUA BELAS TAHUN. Mereka akan berkata, "hai sobat, kamu mungkin ingin membeli obat batuk malam ini, tapi kamu tidak akan melakukannya merasa sehat besok." Hal ini mungkin tidak terjadi jika penyortiran multi-pihak dieksploitasi dengan benar. Lihat, misalnya, inientri blog: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Saya tidak sepenuhnya yakin dengan perhitungan matematisnya, tapi... satu makalah pada satu waktu, bukan? Diperlukan kutipan. Meskipun protokol Zerocoin (mandiri) mungkin tidak mencukupi, Zerocash protokol tampaknya telah menerapkan transaksi berukuran 1kb. Proyek itu didukung oleh tentu saja militer AS dan Israel, jadi siapa yang tahu tentang ketangguhannya. Di sisi lain Di sisi lain, tidak ada orang yang lebih ingin mengeluarkan dana tanpa pengawasan selain pihak militer. http://zerocash-project.org/ Saya tidak yakin... lihat, misalnya, http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Mengutip pengembang Cryptonote Maurice Planck (mungkin nama samaran) dari cryptonote tersebut forum: "Zerocoin, Zerocash. Harus saya akui, ini adalah teknologi tercanggih. Ya, kutipannya di atas adalah dari analisis protokol versi sebelumnya. Sepengetahuan saya, ternyata tidak 288, tapi 384 byte, tapi bagaimanapun ini adalah kabar baik. Mereka menggunakan teknik baru yang disebut SNARK, yang memiliki kelemahan tertentu: misalnya, database awal yang besar dari parameter publik yang diperlukan untuk membuat tanda tangan (lebih dari 1 GB) dan waktu yang signifikan diperlukan untuk membuat transaksi (lebih dari satu menit). Akhirnya, mereka menggunakan a crypto muda, yang saya sebutkan sebagai ide yang bisa diperdebatkan: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Kam 03 Apr 2014 19:56 Fungsi yang dijalankan di CPU dan tidak cocok untuk GPU, FPGA, atau ASIC komputasi. "Teka-teki" yang digunakan di proof-of-work disebut sebagai fungsi harga, fungsi biaya, atau fungsi teka-teki.
ditelusuri secara jelas ke asal yang unik dan penerima akhir. Bahkan jika dua peserta bertukar dana secara tidak langsung, metode pencarian jalur yang dirancang dengan baik akan mengungkap asal usul dan penerima akhir. Diduga juga Bitcoin tidak memenuhi properti kedua. Beberapa peneliti menyatakan ([33, 35, 29, 31]) bahwa analisis blockchain yang cermat dapat mengungkapkan hubungan antara pengguna jaringan Bitcoin dan transaksinya. Meskipun ada beberapa metode yang bisa dilakukan disengketakan [25], diduga banyak informasi pribadi tersembunyi yang dapat diambil dari basis data publik. Kegagalan Bitcoin dalam memenuhi kedua sifat yang diuraikan di atas membuat kita menyimpulkan bahwa hal tersebut memang benar adanya bukan sistem kas elektronik anonim melainkan sistem kas elektronik pseudo-anonim. Pengguna cepat berkembang solusi untuk menghindari kelemahan ini. Dua solusi langsung adalah “layanan pencucian” [2] dan pengembangan metode terdistribusi [3, 4]. Kedua solusi tersebut didasarkan pada gagasan pencampuran beberapa transaksi publik dan mengirimkannya melalui beberapa alamat perantara; yang pada gilirannya menderita kelemahan karena membutuhkan pihak ketiga yang tepercaya. Baru-baru ini, skema yang lebih kreatif diusulkan oleh I. Miers dkk. [28]: “Nolkoin”. nol koin menggunakan akumulator kriptografi satu arah dan bukti tanpa pengetahuan yang memungkinkan pengguna melakukannya “konversi” bitcoin menjadi zerocoin dan belanjakan menggunakan bukti kepemilikan anonim tanda tangan digital berbasis kunci publik yang eksplisit. Namun, bukti-bukti pengetahuan tersebut mempunyai keteguhan tetapi ukurannya tidak nyaman - sekitar 30kb (berdasarkan batas Bitcoin hari ini), yang membuat proposal tidak praktis. Penulis mengakui bahwa protokol tersebut kemungkinan besar tidak akan pernah diterima oleh mayoritas orang Bitcoin pengguna [5]. 2.2 Fungsi proof-of-work Pencipta Bitcoin Satoshi Nakamoto mendeskripsikan algoritme pengambilan keputusan mayoritas sebagai “oneCPU-one-vote” dan menggunakan fungsi penetapan harga yang terikat CPU (ganda SHA-256) untuk proof-of-work miliknya skema. Karena pengguna memilih satu riwayat transaksi pesanan [1], kewajaran dan Konsistensi proses ini merupakan kondisi kritis bagi keseluruhan sistem. Keamanan model ini memiliki dua kelemahan. Pertama, ini membutuhkan 51% jaringan kekuatan penambangan berada di bawah kendali pengguna yang jujur. Kedua, kemajuan sistem (perbaikan bug, perbaikan keamanan, dll...) mengharuskan sebagian besar pengguna untuk mendukung dan menyetujuinya perubahan (ini terjadi ketika pengguna memperbarui perangkat lunak dompet mereka) [6]. Akhirnya pemungutan suara yang sama Mekanisme ini juga digunakan untuk jajak pendapat kolektif tentang penerapan beberapa fitur [7]. Hal ini memungkinkan kita untuk menduga sifat-sifat yang harus dipenuhi oleh proof-of-work fungsi penetapan harga. Fungsi tersebut tidak boleh memungkinkan peserta jaringan untuk memiliki signifikansi keunggulan dibandingkan peserta lain; itu membutuhkan keseimbangan antara perangkat keras umum dan perangkat keras tinggi biaya perangkat khusus. Dari contoh terbaru [8], kita dapat melihat bahwa fungsi SHA-256 digunakan dalam arsitektur Bitcoin tidak memiliki properti ini karena penambangan menjadi lebih efisien pada GPU dan perangkat ASIC jika dibandingkan dengan CPU kelas atas. Oleh karena itu, Bitcoin menciptakan kondisi yang menguntungkan bagi kesenjangan yang besar antara hak suara peserta karena melanggar prinsip “satu CPU-satu suara” yang dimiliki oleh pemilik GPU dan ASIC hak suara yang jauh lebih besar jika dibandingkan dengan pemilik CPU. Ini adalah contoh klasik dari Prinsip Pareto dimana 20% peserta sistem mengontrol lebih dari 80% suara. Ada yang berpendapat bahwa ketidaksetaraan tersebut tidak relevan dengan keamanan jaringan karena memang tidak relevan jumlah peserta yang sedikit menguasai suara mayoritas tetapi kejujurannya peserta yang penting. Akan tetapi, argumen tersebut agak cacat karena justru merupakan argumen yang salah kemungkinan munculnya perangkat keras khusus yang murah daripada kejujuran peserta yang mana menimbulkan ancaman. Untuk mendemonstrasikannya, mari kita ambil contoh berikut. Misalkan seorang yang jahat individu memperoleh kekuatan penambangan yang signifikan dengan menciptakan lahan penambangannya sendiri dengan biaya murah 2 ditelusuri secara jelas ke asal yang unik dan penerima akhir. Bahkan jika dua peserta bertukar dana secara tidak langsung, metode pencarian jalur yang dirancang dengan baik akan mengungkap asal usul dan penerima akhir. Diduga juga Bitcoin tidak memenuhi properti kedua. Beberapa peneliti menyatakan ([33, 35, 29, 31]) bahwa analisis blockchain yang cermat dapat mengungkapkan hubungan antara pengguna jaringan Bitcoin dan transaksinya. Meskipun ada beberapa metode yang bisa dilakukan ddisengketakan [25], diduga banyak informasi pribadi tersembunyi yang dapat diekstraksi dari basis data publik. Kegagalan Bitcoin dalam memenuhi kedua sifat yang diuraikan di atas membuat kita menyimpulkan bahwa hal tersebut memang benar adanya bukan sistem kas elektronik anonim melainkan sistem kas elektronik pseudo-anonim. Pengguna cepat berkembang solusi untuk menghindari kelemahan ini. Dua solusi langsung adalah “layanan pencucian” [2] dan pengembangan metode terdistribusi [3, 4]. Kedua solusi tersebut didasarkan pada gagasan pencampuran beberapa transaksi publik dan mengirimkannya melalui beberapa alamat perantara; yang pada gilirannya menderita kelemahan karena membutuhkan pihak ketiga yang tepercaya. Baru-baru ini, skema yang lebih kreatif diusulkan oleh I. Miers dkk. [28]: “Nolkoin”. nol koin menggunakan akumulator kriptografi satu arah dan bukti tanpa pengetahuan yang memungkinkan pengguna melakukannya “konversi” bitcoin menjadi zerocoin dan belanjakan menggunakan bukti kepemilikan anonim tanda tangan digital berbasis kunci publik yang eksplisit. Namun, bukti-bukti pengetahuan tersebut mempunyai keteguhan tetapi ukurannya tidak nyaman - sekitar 30kb (berdasarkan batas Bitcoin saat ini), yang membuat proposal tidak praktis. Penulis mengakui bahwa protokol tersebut kemungkinan besar tidak akan pernah diterima oleh mayoritas orang Bitcoin pengguna [5]. 2.2 Fungsi proof-of-work Pencipta Bitcoin Satoshi Nakamoto mendeskripsikan algoritme pengambilan keputusan mayoritas sebagai “oneCPU-one-vote” dan menggunakan fungsi penetapan harga yang terikat CPU (ganda SHA-256) untuk proof-of-work miliknya skema. Karena pengguna memilih satu riwayat transaksi pesanan [1], kewajaran dan Konsistensi proses ini merupakan kondisi kritis bagi keseluruhan sistem. Keamanan model ini memiliki dua kelemahan. Pertama, ini membutuhkan 51% jaringan kekuatan penambangan berada di bawah kendali pengguna yang jujur. Kedua, kemajuan sistem (perbaikan bug, perbaikan keamanan, dll...) mengharuskan sebagian besar pengguna untuk mendukung dan menyetujuinya perubahan (ini terjadi ketika pengguna memperbarui perangkat lunak dompet mereka) [6]. Akhirnya pemungutan suara yang sama Mekanisme ini juga digunakan untuk jajak pendapat kolektif tentang penerapan beberapa fitur [7]. Hal ini memungkinkan kita untuk menduga sifat-sifat yang harus dipenuhi oleh proof-of-work fungsi penetapan harga. Fungsi tersebut tidak boleh memungkinkan peserta jaringan untuk memiliki signifikansi keunggulan dibandingkan peserta lain; itu membutuhkan keseimbangan antara perangkat keras umum dan perangkat keras tinggi biaya perangkat khusus. Dari contoh terbaru [8], kita dapat melihat bahwa fungsi SHA-256 digunakan dalam arsitektur Bitcoin tidak memiliki properti ini karena penambangan menjadi lebih efisien pada GPU dan perangkat ASIC jika dibandingkan dengan CPU kelas atas. Oleh karena itu, Bitcoin menciptakan kondisi yang menguntungkan bagi kesenjangan yang besar antara hak suara peserta karena melanggar prinsip “satu CPU-satu suara” yang dimiliki oleh pemilik GPU dan ASIC hak suara yang jauh lebih besar jika dibandingkan dengan pemilik CPU. Ini adalah contoh klasik dari Prinsip Pareto dimana 20% peserta sistem mengontrol lebih dari 80% suara. Ada yang berpendapat bahwa ketidaksetaraan tersebut tidak relevan dengan keamanan jaringan karena memang tidak relevan jumlah peserta yang sedikit menguasai suara mayoritas tetapi kejujurannya peserta yang penting. Akan tetapi, argumen tersebut agak cacat karena justru merupakan argumen yang salah kemungkinan munculnya perangkat keras khusus yang murah daripada kejujuran peserta yang mana menimbulkan ancaman. Untuk mendemonstrasikannya, mari kita ambil contoh berikut. Misalkan seorang yang jahat individu memperoleh kekuatan penambangan yang signifikan dengan menciptakan lahan penambangannya sendiri dengan biaya murah 2 Komentar di halaman 2
Bitcoin Dezavantajları ve Olası Çözümler
2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Maalesef Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 CryptoNote v 2.0 Nicolas van Saberhagen 17 Ekim 2013 1 Giriş “Bitcoin” [1], p2p elektronik nakit kavramının başarılı bir uygulaması olmuştur. Her ikisi de profesyoneller ve genel halk, aşağıdakilerin uygun kombinasyonunu takdir etmeye başladı halka açık işlemler ve güven modeli olarak proof-of-work. Günümüzde elektronik paranın kullanıcı tabanı istikrarlı bir hızla büyüyor; Müşteriler düşük ücretlerden ve sağlanan anonimlikten etkilenirler elektronik nakit ve tüccarlar tahmin edilen ve merkezi olmayan emisyona değer veriyor. Bitcoin var elektronik paranın kağıt para kadar basit ve kullanışlı olabileceğini etkili bir şekilde kanıtladı kredi kartları. Maalesef Bitcoin çeşitli eksikliklerden muzdariptir. Örneğin, sistemin dağıtılmış doğası esnek değildir ve neredeyse tüm ağ kullanıcıları istemcilerini güncelleyinceye kadar yeni özelliklerin uygulanmasını engeller. Hızlı bir şekilde düzeltilemeyen bazı kritik kusurlar Bitcoin'nin çalışmasını caydırır yaygın yayılma. Bu tür esnek olmayan modellerde yeni bir projenin hayata geçirilmesi daha verimlidir. Orijinal projeyi sürekli olarak düzeltmek yerine. Bu yazıda Bitcoin'nın ana eksikliklerini inceliyor ve bunlara çözümler öneriyoruz. inanıyoruz önerdiğimiz çözümleri dikkate alan bir sistemin sağlıklı bir rekabete yol açacağı farklı elektronik nakit sistemleri arasında. Ayrıca kendi elektronik paramız olan “CryptoNote”u da öneriyoruz. elektronik nakitte bir sonraki atılımı vurgulayan bir isim. 2 Bitcoin dezavantajları ve bazı olası çözümler 2.1 İşlemlerin izlenebilirliği Gizlilik ve anonimlik elektronik paranın en önemli unsurlarıdır. Eşler arası ödemeler Geleneksel ile karşılaştırıldığında belirgin bir fark, üçüncü tarafın görüşünden gizlenmeye çalışılmasıdır. bankacılık. Özellikle, T. Okamoto ve K. Ohta ideal elektronik paranın altı kriterini tanımladılar: "Gizlilik: kullanıcı ile satın aldıkları arasındaki ilişki takip edilemez olmalıdır" herkes tarafından” [30]. Açıklamalarından, tamamen anonim olan iki özellik elde ettik. Okamoto tarafından belirtilen gerekliliklere uymak için elektronik nakit modelinin karşılanması gerekir ve Ohta: Takip edilemezlik: Gelen her işlem için tüm olası göndericilerin eşit olasılıklı olması. Bağlantısızlık: Yapılan herhangi iki işlem için bunların gönderildiğini kanıtlamak imkansızdır. aynı kişi. Ne yazık ki Bitcoin izlenemezlik şartını karşılamıyor. Ağın katılımcıları arasında gerçekleşen tüm işlemler halka açık olduğundan, herhangi bir işlem gerçekleştirilebilir. 1 3 Bitcoin kesinlikle "takip edilemezlik" konusunda başarısız oluyor. Size BTC gönderdiğimde, bunun gönderildiği cüzdan blockchain üzerine geri dönülemez şekilde damgalanmıştır. Bu fonları kimin gönderdiğine dair hiçbir soru yok. çünkü yalnızca özel anahtarları bilenler bunları gönderebilir.benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden olur: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantıyı ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve onların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak belirtildiyse, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 4 Muhtemelen, eğer her kullanıcı her zaman yeni bir adres oluşturarak kendi anonimliğini ortadan kaldırıyorsa Alınan HER ödeme için (bu saçma ama teknik olarak bunu yapmanın "doğru" yolu), ve eğer her kullanıcı, asla para göndermemeleri konusunda ısrar ederek diğer herkesin anonimliğine yardımcı olsaydı aynı BTC adresine iki kez gitse, Bitcoin yine de yalnızca dolaylı olarak iletecektir bağlantı kurulamazlık testi Neden? Tüketici verileri, insanlar hakkında her zaman şaşırtıcı miktarda bilgi edinmek için kullanılabilir. Örneğin bkz. http://www.applieddatalabs.com/content/target-knows-it-shows Şimdi bunun 20 yıl gelecekte olduğunu hayal edin ve ayrıca Target'in bunu bilmediğini hayal edin. Target'taki satın alma alışkanlıklarınız hakkında, ancak ALL OF için blockchain madenciliği yapıyorlardı GEÇMİŞ İÇİN COINBASE CÜZDANINIZ İLE KİŞİSEL ALIŞVERİŞLERİNİZ ON İKİ YIL. Şöyle diyecekler: "Hey dostum, bu gece biraz öksürük ilacı almak isteyebilirsin, almayacaksın yarın kendini iyi hisset." Çok partili sıralama doğru şekilde kullanılırsa durum böyle olmayabilir. Örneğin buna bakınblog yazısı: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Bunun matematiğine tam olarak ikna olmadım ama... her seferinde bir kağıt, değil mi? Alıntı gerekli. Zerocoin protokolü (bağımsız) yetersiz olabilirken Zerocash protokolün 1kb boyutunda bir işlem gerçekleştirmiş olduğu görülüyor. O proje destekleniyor Tabii ki ABD ve İsrail orduları, yani sağlamlığını kim bilebilir? diğer tarafta Öte yandan hiç kimse ordu kadar gözetim olmadan fon harcamayı istemez. http://zerocash-project.org/ İkna olmadım... örneğin bkz. http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Cryptonote geliştiricisi Maurice Planck'tan (muhtemelen takma ad) kripto nottan alıntı fora: "Sıfırcoin, Zerocash. Bu en ileri teknoloji, itiraf etmeliyim. Evet alıntı Yukarıdaki, protokolün önceki versiyonunun analizinden alınmıştır. Bildiğim kadarıyla öyle değil 288 ama 384 byte ama yine de bu iyi bir haber. SNARK adında yepyeni bir teknik kullandılar, bunun da bazı dezavantajları var: Örneğin; Bir imza oluşturmak için gereken genel parametrelerden oluşan geniş bir başlangıç veri tabanı (1 GB'den fazla) ve bir işlem oluşturmak için önemli bir sürenin gerekli olması (bir dakikadan fazla). Son olarak, bir tartışılabilir bir fikir olduğundan bahsettiğim genç kripto: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Per 03 Nis 2014 19:56 CPU'da gerçekleştirilen ve GPU, FPGA veya ASIC için uygun olmayan bir işlev hesaplama. proof-of-work'de kullanılan "bulmaca", fiyatlandırma işlevi, maliyet işlevi veya bulmaca işlevi.
benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin'nin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da [25] ihtilaflı olduğundan, birçok gizli kişisel bilginin bu siteden alınabileceğinden şüpheleniliyor halka açık veritabanı. Bitcoin'in yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm “aklama hizmetleri” idi [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu, proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oy verme gücü arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 benzersiz bir kökene ve nihai alıcıya kadar izi sürülebilir. İki katılımcı değişse bile Dolaylı bir şekilde fon sağlanması durumunda, uygun şekilde tasarlanmış bir yol bulma yöntemi, kaynağı ve kaynağı ortaya çıkaracaktır. son alıcı. Ayrıca Bitcoin öğesinin ikinci özelliği karşılamadığından da şüpheleniliyor. Bazı araştırmacılar ([33, 35, 29, 31]) dikkatli bir blockchain analizinin aralarında bir bağlantı olduğunu ortaya çıkarabileceğini belirtmiştir ([33, 35, 29, 31]) Bitcoin ağının kullanıcıları ve bunların işlemleri. Her ne kadar bir takım yöntemler mevcut olsa da d[25] olarak öne sürülen bu siteden birçok gizli kişisel bilginin alınabileceğinden şüpheleniliyor. halka açık veritabanı. Bitcoin'nin yukarıda özetlenen iki özelliği karşılamadaki başarısızlığı, bunun şu sonuca varmasına neden oluyor: anonim değil, sahte anonim bir elektronik nakit sistemi. Kullanıcılar hızla gelişti Bu eksikliği ortadan kaldıracak çözümler. İki doğrudan çözüm "aklama hizmetleri" [2] ve dağıtılmış yöntemlerin geliştirilmesi [3, 4]. Her iki çözüm de karıştırma fikrine dayanmaktadır. çeşitli kamu işlemleri ve bunların bazı aracı adresler aracılığıyla gönderilmesi; hangisi sırayla güvenilir bir üçüncü tarafa ihtiyaç duymanın dezavantajını yaşar. Son zamanlarda I. Miers ve diğerleri tarafından daha yaratıcı bir plan önerildi. [28]: “Sıfırcoin”. Sıfırcoin kullanıcıların kriptografik tek yönlü akümülatörleri ve sıfır bilgi kanıtlarını kullanır. Bitcoin'leri sıfır paraya "dönüştürün" ve bunları, yerine anonim sahiplik kanıtı kullanarak harcayın Açık genel anahtar tabanlı dijital imzalar. Ancak bu tür bilgi kanıtlarının sabit bir değeri vardır. ancak uygunsuz boyut - yaklaşık 30 kb (bugünün Bitcoin sınırlarına göre), bu da teklifi geçerli kılıyor pratik değil. Yazarlar, protokolün çoğunluk tarafından kabul edilmesinin pek mümkün olmadığını itiraf ediyor Bitcoin kullanıcılar [5]. 2.2 proof-of-work işlevi Bitcoin yaratıcısı Satoshi Nakamoto, çoğunluk karar verme algoritmasını "bir CPU-bir oy" olarak tanımladı ve proof-of-work için CPU'ya bağlı fiyatlandırma işlevini (çift SHA-256) kullandı. şeması. Kullanıcılar tek işlem geçmişi emri [1] için oy verdiğinden, makullük ve Bu sürecin tutarlılığı tüm sistem için kritik koşullardır. Bu modelin güvenliği iki dezavantaja sahiptir. İlk olarak, ağın %51'ini gerektirir Madencilik gücünün dürüst kullanıcıların kontrolü altında olması. İkinci olarak sistemin ilerlemesi (hata düzeltmeleri, güvenlik düzeltmeleri vb.) kullanıcıların büyük çoğunluğunun aşağıdakileri desteklemesini ve kabul etmesini gerektirir: değişiklikler (bu, kullanıcılar cüzdan yazılımlarını güncellediklerinde meydana gelir) [6].Sonunda aynı oylama mekanizma aynı zamanda bazı özelliklerin uygulanmasına ilişkin toplu anketler için de kullanılıyor [7]. Bu bize proof-of-work tarafından karşılanması gereken özellikleri tahmin etmemizi sağlar. fiyatlandırma fonksiyonu Bu tür bir işlev, bir ağ katılımcısının önemli bir yetkiye sahip olmasını sağlamamalıdır. başka bir katılımcıya göre avantaj; ortak donanım ve yüksek seviye arasında bir eşitlik gerektirir özel cihazların maliyeti. Son örneklerden [8], SHA-256 fonksiyonunun kullanıldığını görebiliriz Bitcoin mimarisinde madencilik daha verimli hale geldiğinden bu özelliğe sahip değildir Üst düzey CPU'larla karşılaştırıldığında GPU'lar ve ASIC cihazları. Bu nedenle Bitcoin, oylama güçleri arasında büyük bir fark olması için uygun koşullar yaratır. GPU ve ASIC sahiplerinin sahip olduğu "bir CPU-bir oy" ilkesini ihlal ettiği için katılımcılar CPU sahipleriyle karşılaştırıldığında çok daha büyük bir oylama gücü. Bunun klasik bir örneğidir Bir sistemdeki katılımcıların %20'sinin oyların %80'inden fazlasını kontrol ettiği Pareto ilkesi. Böyle bir eşitsizliğin ağın güvenliğiyle ilgili olmadığı, çünkü Oyların çoğunluğunu kontrol eden az sayıda katılımcı ancak bunların dürüstlüğü önemli olan katılımcılar. Ancak böyle bir argüman biraz kusurlu çünkü daha ziyade katılımcıların dürüstlüğünden ziyade ucuz özel donanımın ortaya çıkma olasılığı tehdit oluşturuyor. Bunu göstermek için aşağıdaki örneği ele alalım. Diyelim ki kötü niyetli birey, ucuz yöntemlerle kendi madencilik çiftliğini kurarak önemli bir madencilik gücü elde eder. 2 2. sayfadaki yorumlar
Teknologi CryptoNote
Sekarang kita telah membahas keterbatasan teknologi Bitcoin, kita akan berkonsentrasi pada hal tersebut menyajikan fitur-fitur CryptoNote.
CryptoNote Teknolojisi
Artık Bitcoin teknolojisinin sınırlamalarını ele aldığımıza göre, şu konulara odaklanacağız: CryptoNote'un özelliklerini sunuyor.
Transaksi yang Tidak Dapat Dilacak
Pada bagian ini kami mengusulkan skema transaksi anonim yang memenuhi kedua kondisi tidak dapat dilacak
dan kondisi tidak dapat dihubungkan. Fitur penting dari solusi kami adalah otonominya: pengirim
tidak diharuskan bekerja sama dengan pengguna lain atau pihak ketiga yang dipercaya untuk melakukan transaksinya;
karenanya setiap peserta menghasilkan lalu lintas sampul secara mandiri.
4.1
Tinjauan literatur
Skema kami bergantung pada primitif kriptografi yang disebut tanda tangan grup. Pertama kali disajikan oleh
D. Chaum dan E. van Heyst [19], memungkinkan pengguna untuk menandatangani pesannya atas nama grup.
Setelah menandatangani pesan, pengguna memberikan (untuk tujuan verifikasi) bukan pesan publiknya sendiri
1Ini disebut “batas lunak” — batasan klien referensi untuk membuat blok baru. Keras maksimal
kemungkinan ukuran blokir adalah 1 MB
4
mereka jika perlu yang menyebabkan kelemahan utama. Sayangnya, sulit untuk memprediksi kapan hal tersebut akan terjadi
konstanta mungkin perlu diubah dan menggantinya dapat menimbulkan konsekuensi yang buruk.
Contoh bagus dari perubahan batas hardcode yang menyebabkan konsekuensi bencana adalah pemblokiran
batas ukuran disetel ke 250kb1. Batas ini cukup untuk menampung sekitar 10.000 transaksi standar. Di
awal tahun 2013, batas tersebut hampir tercapai dan tercapai kesepakatan untuk meningkatkannya
batas. Perubahan tersebut diterapkan pada dompet versi 0.8 dan diakhiri dengan pemisahan rantai 24 blok
dan serangan pembelanjaan ganda yang berhasil [9]. Meskipun bugnya bukan pada protokol Bitcoin, tapi
melainkan di mesin database, hal itu bisa dengan mudah ditangkap dengan stress test sederhana jika ada
tidak ada batasan ukuran blok yang diperkenalkan secara artifisial.
Konstanta juga berperan sebagai bentuk titik sentralisasi.
Meskipun bersifat peer-to-peer
Bitcoin, sebagian besar node menggunakan klien referensi resmi [10] yang dikembangkan oleh
sekelompok kecil orang. Kelompok ini membuat keputusan untuk menerapkan perubahan pada protokol
dan kebanyakan orang menerima perubahan ini terlepas dari “kebenarannya”. Beberapa keputusan menyebabkan
diskusi yang memanas bahkan seruan boikot [11], yang menandakan bahwa komunitas dan
pengembang mungkin tidak setuju pada beberapa poin penting. Oleh karena itu tampaknya logis untuk memiliki protokol
dengan variabel yang dapat dikonfigurasi pengguna dan dapat disesuaikan sendiri sebagai cara yang mungkin untuk menghindari masalah ini.
2.5
Skrip besar
Sistem skrip di Bitcoin adalah fitur yang berat dan kompleks. Ini berpotensi memungkinkan seseorang untuk berkreasi
transaksi canggih [12], namun beberapa fiturnya dinonaktifkan karena masalah keamanan dan
bahkan ada yang belum pernah dipakai [13]. Naskah (termasuk bagian pengirim dan penerima)
untuk transaksi terpopuler di Bitcoin tampilannya seperti ini:
kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar kami, kami memilih untuk menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan ke Bitcoin di masa depan. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Peningkatan privasi memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar, kami memilihe menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan ke Bitcoin di masa depan. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Privasi yang ditingkatkan memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 8 Tanda tangan cincin berfungsi seperti ini: Alex ingin membocorkan pesan ke WikiLeaks tentang majikannya. Setiap karyawan di Perusahaannya memiliki pasangan kunci privat/publik (Ri, Ui). Dia menulis tanda tangannya dengan masukan yang ditetapkan sebagai pesannya, m, kunci pribadinya, Ri, dan milik SEMUA ORANG kunci publik, (Ui;i=1...n). Siapa pun (tanpa mengetahui kunci pribadi apa pun) dapat memverifikasinya dengan mudah beberapa pasangan (Rj, Uj) pasti digunakan untuk membuat tanda tangan... seseorang yang bekerja untuk majikan Alex... tapi pada dasarnya ini hanyalah tebakan acak untuk mengetahui perusahaan mana yang dimaksud. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Perhatikan bahwa tanda cincin yang dapat ditautkan yang dijelaskan di sini adalah kebalikan dari "tidak dapat ditautkan" dijelaskan di atas. Di sini, kami mencegat dua pesan, dan kami dapat menentukan apakah pesan tersebut sama pihak yang mengirimkannya, meskipun kami masih belum dapat menentukan siapa pihak tersebut. Itu definisi "tidak dapat ditautkan" yang digunakan untuk membuat Cryptonote berarti kita tidak dapat menentukan apakah pihak yang sama menerimanya. Oleh karena itu, apa yang sebenarnya kita miliki di sini adalah EMPAT hal yang terjadi. Suatu sistem dapat ditautkan atau tidak dapat ditautkan, tergantung pada apakah mungkin untuk menentukan apakah pengirimnya dua pesan adalah sama (terlepas dari apakah hal ini memerlukan pencabutan anonimitas). Dan suatu sistem dapat dibatalkan tautannya atau tidak dapat dibatalkan tautannya, bergantung pada apakah hal itu memungkinkan atau tidak menentukan apakah penerima dua pesan itu sama (terlepas dari apakah atau tidak ini memerlukan pencabutan anonimitas). Tolong jangan salahkan saya atas terminologi buruk ini. Para ahli teori grafik mungkin seharusnya begitu senang. Beberapa dari Anda mungkin lebih nyaman dengan "receiver linkable" versus "sender linkable". http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Ketika saya membaca ini, ini tampak seperti fitur yang konyol. Kemudian saya membaca bahwa itu mungkin fitur untuk pemungutan suara elektronik, dan itu tampaknya masuk akal. Agak keren, dari sudut pandang itu. Tapi aku tidak sepenuhnya yakin tentang penerapan tanda tangan cincin yang dapat dilacak dengan sengaja. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar kami, kami memilih untuk menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan ke Bitcoin di masa depan. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Privasi yang ditingkatkan memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar, kami memilihe menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan pada Bitcoin di masa mendatang. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Privasi yang ditingkatkan memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 9 Astaga, penulis whitepaper ini pasti bisa menjelaskannya dengan lebih baik! Katakanlah sebuah perusahaan milik karyawan ingin mengambil suara apakah akan mengakuisisi perusahaan baru tertentu atau tidak aset, dan Alex serta Brenda keduanya adalah karyawan. Perusahaan membekali setiap karyawan a pesan seperti "Saya memilih ya pada Proposisi A!" yang memiliki metainformasi "masalah" [PROP A] dan meminta mereka untuk menandatanganinya dengan tanda cincin yang dapat dilacak jika mereka mendukung proposisi tersebut. Dengan menggunakan tanda tangan cincin tradisional, karyawan yang tidak jujur dapat menandatangani pesan tersebut berkali-kali, mungkin dengan nonce yang berbeda, untuk memilih sebanyak yang mereka suka. Di sisi lain sisi lain, dalam skema tanda tangan cincin yang dapat dilacak, Alex akan memilih, dan kunci pribadinya akan memilikinya telah digunakan pada masalah [PROP A]. Jika Alex mencoba menandatangani pesan seperti "Saya, Brenda, menyetujuinya proposisi A!" untuk "menjebak" Brenda dan memberikan suara ganda, pesan baru ini juga akan menimbulkan masalah [PROP A]. Karena kunci pribadi Alex telah mengatasi masalah [PROP A], identitas Alex akan segera terungkap sebagai penipuan. Jujur saja, itu cukup keren! Kriptografi menegakkan kesetaraan suara. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Makalah ini menarik, pada dasarnya membuat tanda tangan cincin ad-hoc tetapi tanpa satupun persetujuan peserta lain. Struktur tanda tangannya mungkin berbeda; Saya belum menggali dalam, dan saya belum melihat apakah itu aman. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Tanda tangan kelompok ad-hoc adalah: tanda tangan cincin, yaitu tanda tangan kelompok yang tidak ada kelompoknya manajer, tidak ada sentralisasi, namun mengizinkan anggota dalam kelompok ad-hoc untuk mengklaim hal tersebut mereka (belum) mengeluarkan tanda tangan anonim atas nama grup. http://link.springer.com/chapter/10.1007/11908739_9 Menurut pemahaman saya, ini kurang tepat. Dan pemahaman saya kemungkinan besar akan berubah Saya mendalami proyek ini lebih dalam. Tapi dari pemahaman saya, hierarkinya terlihat seperti ini. Tanda grup: manajer grup mengontrol ketertelusuran dan kemampuan menambah atau menghapus anggota dari menjadi penandatangan. Ring sign : Pembentukan grup secara sewenang-wenang tanpa adanya manajer grup. Tidak ada pencabutan anonimitas. Tidak ada cara untuk menolak diri sendiri dari tanda tangan tertentu. Dengan cincin yang dapat dilacak dan dihubungkan tanda tangan, anonimitas agak terukur. Tanda tangan kelompok ad-hoc: seperti tanda tangan cincin, namun anggota dapat membuktikan bahwa mereka tidak membuat tanda tangan tertentu. Hal ini penting ketika siapa pun dalam kelompok dapat membuat tanda tangan. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Algoritme Fujisaki dan Suzuki kemudian diubah oleh penulis untuk memberikan ketepatan waktu. Jadi kami akan menganalisis algoritma Fujisaki dan Suzuki secara bersamaan dengan algoritma baru daripada membahasnya di sini.
kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar kami, kami memilih untuk menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan ke Bitcoin di masa depan. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Privasi yang ditingkatkan memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 kunci, tetapi kunci semua pengguna grupnya. Verifier yakin bahwa penandatangan sebenarnya adalah a anggota kelompok, tetapi tidak dapat secara eksklusif mengidentifikasi penandatangannya. Protokol asli memerlukan pihak ketiga yang tepercaya (disebut Manajer Grup), dan dialah yang melakukannya satu-satunya yang bisa melacak penandatangannya. Versi selanjutnya yang disebut tanda tangan cincin, diperkenalkan oleh Rivest dkk. di [34], merupakan skema otonom tanpa Manajer Grup dan anonimitas pencabutan. Berbagai modifikasi skema ini muncul kemudian: tanda tangan cincin yang dapat ditautkan [26, 27, 17] diperbolehkan untuk menentukan apakah dua tanda tangan dihasilkan oleh anggota kelompok yang sama, dapat dilacak tanda tangan cincin [24, 23] membatasi anonimitas berlebihan dengan memberikan kemungkinan untuk melacak penandatangan dua pesan sehubungan dengan metainformasi yang sama (atau “tag” dalam istilah [24]). Konstruksi kriptografi serupa juga dikenal sebagai tanda tangan kelompok ad-hoc [16, 38]. Itu menekankan pembentukan kelompok yang sewenang-wenang, sedangkan skema tanda tangan kelompok/lingkaran lebih menyiratkan a kumpulan anggota yang tetap. Sebagian besar, solusi kami didasarkan pada karya “Traceable Ring Signature” oleh E. Fujisaki dan K.Suzuki [24]. Untuk membedakan algoritma asli dan modifikasi kami, kami akan melakukannya menyebut yang terakhir sebagai tanda dering satu kali, yang menekankan kemampuan pengguna untuk menghasilkan hanya satu tanda dering yang valid tanda tangan di bawah kunci pribadinya. Kami melemahkan properti ketertelusuran dan mempertahankan keterhubungan hanya untuk memberikan ketepatan waktu: kunci publik dapat muncul di banyak set verifikasi asing dan kunci pribadi dapat digunakan untuk menghasilkan tanda tangan anonim yang unik. Jika terjadi pembelanjaan ganda upayakan kedua tanda tangan ini akan dihubungkan bersama, tetapi tidak perlu mengungkapkan penandatangannya untuk tujuan kita. 4.2 Definisi 4.2.1 Parameter kurva elips Sebagai algoritma tanda tangan dasar, kami memilihe menggunakan skema cepat EdDSA, yang dikembangkan dan dilaksanakan oleh D.J. Bernstein dkk. [18]. Seperti ECDSA Bitcoin, ECDSA ini didasarkan pada kurva elips masalah logaritma diskrit, sehingga skema kami juga dapat diterapkan ke Bitcoin di masa depan. Parameter umum adalah: q: bilangan prima; q = 2255 −19; d: unsur Fq; d = −121665/121666; E: persamaan kurva elips; −x2 + y2 = 1 + dx2y2; G: titik dasar; G = (x, −4/5); l : orde prima dari titik dasar; aku = 2252 + 27742317777372353535851937790883648493; \(H_s\): fungsi kriptografi hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): fungsi hash deterministik \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologi Peningkatan privasi memerlukan terminologi baru yang berbeda dengan entitas Bitcoin. private ec-key adalah kunci privat kurva elips standar: angka \(a \in [1, l - 1]\); kunci ec publik adalah kunci publik kurva elips standar: titik A = aG; pasangan kunci satu kali adalah sepasang kunci pribadi dan publik; 5 10 Keterhubungan dalam arti “tanda tangan cincin yang dapat ditautkan” berarti kita dapat mengetahui apakah dua transaksi keluar berasal dari sumber yang sama tanpa mengungkapkan siapa sumbernya. Para penulis melemah keterhubungan sehingga (a) menjaga privasi, namun tetap (b) mendeteksi transaksi apa pun yang menggunakan kunci pribadi kedua kalinya sebagai tidak sah. Oke, jadi ini pertanyaan urutan kejadian. Pertimbangkan skenario berikut. Penambangan saya komputer akan memiliki blockchain saat ini, ia akan memiliki blok transaksi sendiri yang dipanggilnya sah, ia akan mengerjakan blok itu dalam teka-teki proof-of-work, dan ia akan memiliki daftar transaksi yang tertunda untuk ditambahkan ke blok berikutnya. Itu juga akan mengirimkan yang baru transaksi ke dalam kumpulan transaksi yang tertunda itu. Jika saya tidak menyelesaikan blok berikutnya, tapi orang lain melakukannya, saya mendapatkan salinan terbaru dari blockchain. Blok yang sedang saya kerjakan dan daftar transaksi saya yang tertunda, keduanya mungkin memiliki beberapa transaksi yang sekarang dimasukkan ke dalam blockchain. Buka blok saya yang tertunda, gabungkan itu dengan daftar transaksi saya yang tertunda, dan panggil itu kumpulan transaksi saya yang tertunda. Hapus semua yang sekarang secara resmi ada di blockchain. Sekarang, apa yang harus saya lakukan? Haruskah saya terlebih dahulu melakukan dan "menghapus semua pembelanjaan ganda"? Di sisi lain Sebaliknya, haruskah saya menelusuri daftar dan memastikan bahwa setiap kunci pribadi belum ada digunakan, dan jika sudah digunakan dalam daftar saya, maka saya menerima salinan pertama terlebih dahulu, dan karenanya salinan selanjutnya tidak sah. Jadi saya melanjutkan dengan menghapus semua instance setelah yang pertama dari kunci pribadi yang sama. Geometri aljabar tidak pernah menjadi keahlian saya. http://en.wikipedia.org/wiki/EdDSA Kecepatan seperti itu, wow. INI adalah geometri aljabar untuk kemenangan. Bukannya aku tahu apa pun tentang itu. Masalahnya, atau tidak, log diskrit menjadi sangat cepat. Dan komputer kuantum memakannya untuk sarapan. http://link.springer.com/article/10.1007/s13389-012-0027-1 Ini menjadi angka yang sangat penting, namun tidak ada penjelasan atau kutipan bagaimana caranya dipilih. Cukup dengan memilih satu bilangan prima besar yang diketahui saja sudah cukup, tetapi jika memang ada bilangan prima yang diketahui fakta tentang bilangan prima besar ini, yang dapat memengaruhi pilihan kita. Varian berbeda dari cryptonote dapat memilih nilai yang berbeda eh, tapi belum ada pembahasan di tulisan ini tentang bagaimana caranya pilihan kita akan memengaruhi pilihan kita terhadap parameter global lainnya yang tercantum di halaman 5. Makalah ini memerlukan bagian tentang pemilihan nilai parameter.
kunci pengguna pribadi adalah pasangan (a, b) dari dua kunci pribadi yang berbeda; kunci pelacakan adalah pasangan (a, B) dari kunci ec pribadi dan publik (di mana B = bG dan a ̸= b); kunci pengguna publik adalah pasangan (A, B) dari dua kunci ec publik yang berasal dari (a, b); alamat standar adalah representasi kunci pengguna publik yang diberikan ke dalam string ramah manusia dengan koreksi kesalahan; alamat terpotong adalah representasi paruh kedua (titik B) dari kunci pengguna publik yang diberikan menjadi string ramah manusia dengan koreksi kesalahan. Struktur transaksi tetap serupa dengan struktur di Bitcoin: setiap pengguna dapat memilih beberapa pembayaran masuk independen (keluaran transaksi), tandatangani dengan yang sesuai kunci pribadi dan mengirimkannya ke tujuan yang berbeda. Bertentangan dengan model Bitcoin, di mana pengguna memiliki kunci pribadi dan publik yang unik, dalam model yang diusulkan pengirim menghasilkan kunci publik satu kali berdasarkan alamat penerima dan beberapa data acak. Dalam pengertian ini, transaksi masuk untuk penerima yang sama dikirim ke a kunci publik satu kali (tidak langsung ke alamat unik) dan hanya penerima yang dapat memulihkannya bagian pribadi yang sesuai untuk menebus dananya (menggunakan kunci pribadi uniknya). Penerima bisa membelanjakan dananya menggunakan tanda tangan cincin, menjaga kepemilikan dan pengeluaran aktualnya tetap anonim. Rincian protokol dijelaskan pada subbagian berikutnya. 4.3 Pembayaran yang tidak dapat ditautkan Alamat Bitcoin klasik, setelah dipublikasikan, menjadi pengenal yang jelas untuk masuk pembayaran, menghubungkannya dan mengaitkannya dengan nama samaran penerima. Jika seseorang ingin menerima transaksi “tidak terikat”, ia harus menyampaikan alamatnya kepada pengirim melalui saluran pribadi. Jika dia ingin menerima transaksi berbeda yang tidak dapat dibuktikan milik pemilik yang sama dia harus membuat semua alamat yang berbeda dan tidak pernah mempublikasikannya dengan nama samarannya sendiri. Publik Pribadi Alice Karol Addr Bob 1 Addr Bob 2 Kunci Bob 1 Kunci Bob 2 Bob Gambar 2. Model kunci/transaksi Bitcoin tradisional. Kami mengusulkan solusi yang memungkinkan pengguna untuk mempublikasikan satu alamat dan menerima tanpa syarat pembayaran yang tidak dapat dihubungkan. Tujuan dari setiap keluaran CryptoNote (secara default) adalah kunci publik, berasal dari alamat penerima dan data acak pengirim. Keuntungan utama melawan Bitcoin adalah setiap kunci tujuan bersifat unik secara default (kecuali pengirim menggunakan data yang sama untuk masing-masing kunci tujuan transaksinya kepada penerima yang sama). Oleh karena itu, tidak ada masalah seperti “penggunaan kembali alamat” oleh desainnya dan tidak ada pengamat yang dapat menentukan apakah ada transaksi yang dikirim ke alamat atau tautan tertentu dua alamat bersama-sama. 6 kunci pengguna pribadi adalah pasangan (a, b) dari dua kunci pribadi yang berbeda; kunci pelacakan adalah pasangan (a, B) dari kunci ec pribadi dan publik (di mana B = bG dan a ̸= b); kunci pengguna publik adalah pasangan (A, B) dari dua kunci ec publik yang berasal dari (a, b); alamat standar adalah representasi kunci pengguna publik yang diberikan ke dalam string ramah manusia dengan koreksi kesalahan; alamat terpotong adalah representasi paruh kedua (titik B) dari kunci pengguna publik yang diberikan menjadi string ramah manusia dengan koreksi kesalahan. Struktur transaksi tetap serupa dengan struktur di Bitcoin: setiap pengguna dapat memilih beberapa pembayaran masuk independen (keluaran transaksi), tandatangani dengan yang sesuai kunci pribadi dan mengirimkannya ke tujuan yang berbeda. Bertentangan dengan model Bitcoin, di mana pengguna memiliki kunci pribadi dan publik yang unik, dalam model yang diusulkan pengirim menghasilkan kunci publik satu kali berdasarkan alamat penerima dan beberapa data acak. Dalam pengertian ini, transaksi masuk untuk penerima yang sama dikirim ke a kunci publik satu kali (tidak langsung ke alamat unik) dan hanya penerima yang dapat memulihkannya bagian pribadi yang sesuai untuk menebus dananya (menggunakan kunci pribadi uniknya). Penerima bisa membelanjakan dananya menggunakan tanda tangan cincin, menjaga kepemilikan dan pengeluaran aktualnya tetap anonim. Rincian protokol dijelaskan pada subbagian berikutnya. 4.3 Pembayaran yang tidak dapat ditautkan Alamat Bitcoin klasik, setelah dipublikasikan, menjadi pengenal yang jelas untuk masuk pembayaran, menghubungkannya dan mengaitkannya dengan nama samaran penerima. Jika seseorang ingin menerima transaksi “tidak terikat”, ia harus menyampaikan alamatnya kepada pengirim melalui saluran pribadi. Jika dia ingin menerima transaksi berbeda yang tidak dapat dibuktikan milik pemilik yang sama dia harus membuat semua alamat yang berbeda dan tidak pernah mempublikasikannya dengan nama samarannya sendiri. Publik Pribadi Alice Karol Addr Bob 1 Addr Bob 2 Kunci Bob 1 Kunci Bob 2 Bob Gambar 2. Mod kunci/transaksi Bitcoin tradisionalel. Kami mengusulkan solusi yang memungkinkan pengguna untuk mempublikasikan satu alamat dan menerima tanpa syarat pembayaran yang tidak dapat dihubungkan. Tujuan dari setiap keluaran CryptoNote (secara default) adalah kunci publik, berasal dari alamat penerima dan data acak pengirim. Keuntungan utama melawan Bitcoin adalah setiap kunci tujuan bersifat unik secara default (kecuali pengirim menggunakan data yang sama untuk masing-masing kunci tujuan transaksinya kepada penerima yang sama). Oleh karena itu, tidak ada masalah seperti “penggunaan kembali alamat” oleh desainnya dan tidak ada pengamat yang dapat menentukan apakah ada transaksi yang dikirim ke alamat atau tautan tertentu dua alamat bersama-sama. 6 11 Jadi ini seperti Bitcoin, tetapi dengan PO Box anonim yang tak terbatas, hanya dapat ditukarkan oleh penerima menghasilkan kunci pribadi yang anonim seperti tanda tangan cincin. Bitcoin bekerja dengan cara ini. Jika Alex memiliki 0,112 Bitcoin di dompetnya yang baru saja dia terima dari Frank, dia benar-benar memiliki tanda tangan pesan "Saya, [FRANK], kirim 0,112 Bitcoin ke [alex] + H0 + N0" dimana 1) Frank telah menandatangani pesan dengan kunci pribadinya [FRANK], 2) Frank telah menandatangani pesan tersebut dengan publik Alex key, [alex], 3) Frank telah memasukkan beberapa bentuk sejarah bitcoin, H0, dan 4) Frank menyertakan sedikit data acak yang disebut nonce, N0. Jika Alex kemudian ingin mengirim 0,011 Bitcoin ke Charlene, dia akan menerima pesan Frank, dan dia akan menyetelnya ke H1, dan menandatangani dua pesan: satu untuk transaksinya, dan satu lagi untuk perubahan. H1= "Saya, [FRANK], kirim 0,112 Bitcoin ke [alex] + H0 + N" "Saya, [ALEX], kirim 0,011 Bitcoin ke [charlene] + H1 + N1" "Saya, [ALEX], kirim 0,101 Bitcoin sebagai perubahan ke [alex] + H1 + N2." di mana Alex menandatangani kedua pesan dengan kunci pribadinya [ALEX], pesan pertama dengan milik Charlene kunci publik [charlene], pesan kedua dengan kunci publik Alex [alex], dan termasuk sejarah dan beberapa nonces N1 dan N2 yang dihasilkan secara acak dengan tepat. Cryptonote bekerja dengan cara ini: Jika Alex memiliki 0,112 Cryptonote di dompetnya yang baru saja dia terima dari Frank, dia benar-benar memiliki tanda tangan pesan "Saya, [seseorang dalam grup ad-hoc], mengirim 0,112 Cryptonote ke [alamat satu kali] + H0 + Tidak0." Alex mengetahui bahwa ini adalah uangnya dengan memeriksa kunci pribadinya [ALEX]. [alamat satu kali] untuk setiap pesan yang lewat, dan jika dia ingin membelanjakannya, dia melakukannya cara berikut. Dia memilih penerima uang, mungkin Charlene sudah mulai memilih serangan drone Alex malah ingin mengirim uang ke Brenda. Jadi Alex mencari kunci publik Brenda, [brenda], dan menggunakan kunci pribadinya sendiri, [ALEX], untuk menghasilkan alamat satu kali [ALEX+brenda]. Dia kemudian memilih koleksi C yang sewenang-wenang dari jaringan pengguna cryptonote dan dia membangunnya tanda tangan cincin dari grup ad-hoc ini. Kami mengatur riwayat kami seperti pesan sebelumnya, tambahkan nonces, dan lanjutkan seperti biasa? H1 = "Saya, [seseorang dalam grup ad-hoc], mengirim 0,112 Cryptonote ke [alamat satu kali] + H0 + Tidak0." "Saya, [seseorang di koleksi C], mengirim 0,011 Cryptonote ke [alamat-satu-kali-dibuat-dariALEX+brenda] + H1 + N1" "Saya, [seseorang di koleksi C], mengirimkan 0,101 Cryptonote sebagai perubahan ke [alamat-satu-kali-dibuat dari-ALEX+alex] + H1 + N2" Sekarang, Alex dan Brenda memindai semua pesan masuk untuk mencari alamat satu kali yang ada dibuat menggunakan kunci mereka. Jika mereka menemukannya, maka pesan itu adalah pesan baru bagi mereka uang kripto! Itupun transaksinya masih akan mencapai blockchain. Jika koin masuk ke alamat itu diketahui dikirim dari penjahat, kontributor politik, atau dari komite dan akun dengan anggaran yang ketat (yaitu penggelapan), atau jika pemilik baru koin tersebut melakukan kesalahan dan mengirimkan koin-koin ini ke alamat yang sama dengan koin-koin yang diketahui miliknya, jig anonimitas ada di bitcoin.
kunci pengguna pribadi adalah pasangan (a, b) dari dua kunci pribadi yang berbeda; kunci pelacakan adalah pasangan (a, B) dari kunci ec pribadi dan publik (di mana B = bG dan a ̸= b); kunci pengguna publik adalah pasangan (A, B) dari dua kunci ec publik yang berasal dari (a, b); alamat standar adalah representasi kunci pengguna publik yang diberikan ke dalam string ramah manusia dengan koreksi kesalahan; alamat terpotong adalah representasi paruh kedua (titik B) dari kunci pengguna publik yang diberikan menjadi string ramah manusia dengan koreksi kesalahan. Struktur transaksi tetap serupa dengan struktur di Bitcoin: setiap pengguna dapat memilih beberapa pembayaran masuk independen (keluaran transaksi), tandatangani dengan yang sesuai kunci pribadi dan mengirimkannya ke tujuan yang berbeda. Bertentangan dengan model Bitcoin, di mana pengguna memiliki kunci pribadi dan publik yang unik, dalam model yang diusulkan pengirim menghasilkan kunci publik satu kali berdasarkan alamat penerima dan beberapa data acak. Dalam pengertian ini, transaksi masuk untuk penerima yang sama dikirim ke a kunci publik satu kali (tidak langsung ke alamat unik) dan hanya penerima yang dapat memulihkannya bagian pribadi yang sesuai untuk menebus dananya (menggunakan kunci pribadi uniknya). Penerima bisa membelanjakan dananya menggunakan tanda tangan cincin, menjaga kepemilikan dan pengeluaran aktualnya tetap anonim. Rincian protokol dijelaskan pada subbagian berikutnya. 4.3 Pembayaran yang tidak dapat ditautkan Alamat Bitcoin klasik, setelah dipublikasikan, menjadi pengenal yang jelas untuk masuk pembayaran, menghubungkannya dan mengaitkannya dengan nama samaran penerima. Jika seseorang ingin menerima transaksi “tidak terikat”, ia harus menyampaikan alamatnya kepada pengirim melalui saluran pribadi. Jika dia ingin menerima transaksi berbeda yang tidak dapat dibuktikan milik pemilik yang sama dia harus membuat semua alamat yang berbeda dan tidak pernah mempublikasikannya dengan nama samarannya sendiri. Publik Pribadi Alice Karol Addr Bob 1 Addr Bob 2 Kunci Bob 1 Kunci Bob 2 Bob Gambar 2. Model kunci/transaksi Bitcoin tradisional. Kami mengusulkan solusi yang memungkinkan pengguna untuk mempublikasikan satu alamat dan menerima tanpa syarat pembayaran yang tidak dapat dihubungkan. Tujuan dari setiap keluaran CryptoNote (secara default) adalah kunci publik, berasal dari alamat penerima dan data acak pengirim. Keuntungan utama melawan Bitcoin adalah setiap kunci tujuan bersifat unik secara default (kecuali pengirim menggunakan data yang sama untuk masing-masing kunci tujuan transaksinya kepada penerima yang sama). Oleh karena itu, tidak ada masalah seperti “penggunaan kembali alamat” oleh desainnya dan tidak ada pengamat yang dapat menentukan apakah ada transaksi yang dikirim ke alamat atau tautan tertentu dua alamat bersama-sama. 6 kunci pengguna pribadi adalah pasangan (a, b) dari dua kunci pribadi yang berbeda; kunci pelacakan adalah pasangan (a, B) dari kunci ec pribadi dan publik (di mana B = bG dan a ̸= b); kunci pengguna publik adalah pasangan (A, B) dari dua kunci ec publik yang berasal dari (a, b); alamat standar adalah representasi kunci pengguna publik yang diberikan ke dalam string ramah manusia dengan koreksi kesalahan; alamat terpotong adalah representasi paruh kedua (titik B) dari kunci pengguna publik yang diberikan menjadi string ramah manusia dengan koreksi kesalahan. Struktur transaksi tetap serupa dengan struktur di Bitcoin: setiap pengguna dapat memilih beberapa pembayaran masuk independen (keluaran transaksi), tandatangani dengan yang sesuai kunci pribadi dan mengirimkannya ke tujuan yang berbeda. Bertentangan dengan model Bitcoin, di mana pengguna memiliki kunci pribadi dan publik yang unik, di model yang diusulkan pengirim menghasilkan kunci publik satu kali berdasarkan alamat penerima dan beberapa data acak. Dalam pengertian ini, transaksi masuk untuk penerima yang sama dikirim ke a kunci publik satu kali (tidak langsung ke alamat unik) dan hanya penerima yang dapat memulihkannya bagian pribadi yang sesuai untuk menebus dananya (menggunakan kunci pribadi uniknya). Penerima bisa membelanjakan dananya menggunakan tanda tangan cincin, menjaga kepemilikan dan pengeluaran aktualnya tetap anonim. Rincian protokol dijelaskan pada subbagian berikutnya. 4.3 Pembayaran yang tidak dapat ditautkan Alamat Bitcoin klasik, setelah dipublikasikan, menjadi pengenal yang jelas untuk masuk pembayaran, menghubungkannya dan mengaitkannya dengan nama samaran penerima. Jika seseorang ingin menerima transaksi “tidak terikat”, ia harus menyampaikan alamatnya kepada pengirim melalui saluran pribadi. Jika dia ingin menerima transaksi berbeda yang tidak dapat dibuktikan milik pemilik yang sama dia harus membuat semua alamat yang berbeda dan tidak pernah mempublikasikannya dengan nama samarannya sendiri. Publik Pribadi Alice Karol Addr Bob 1 Addr Bob 2 Kunci Bob 1 Kunci Bob 2 Bob Gambar 2. Mod kunci/transaksi Bitcoin tradisionalel. Kami mengusulkan solusi yang memungkinkan pengguna untuk mempublikasikan satu alamat dan menerima tanpa syarat pembayaran yang tidak dapat dihubungkan. Tujuan dari setiap keluaran CryptoNote (secara default) adalah kunci publik, berasal dari alamat penerima dan data acak pengirim. Keuntungan utama melawan Bitcoin adalah setiap kunci tujuan bersifat unik secara default (kecuali pengirim menggunakan data yang sama untuk masing-masing kunci tujuan transaksinya kepada penerima yang sama). Oleh karena itu, tidak ada masalah seperti “penggunaan kembali alamat” oleh desainnya dan tidak ada pengamat yang dapat menentukan apakah ada transaksi yang dikirim ke alamat atau tautan tertentu dua alamat bersama-sama. 6 12 Oleh karena itu, daripada pengguna mengirimkan koin dari alamat (yang sebenarnya merupakan kunci publik) ke alamat (kunci publik lainnya) menggunakan kunci pribadi mereka, pengguna mengirimkan koin dari PO-box satu kali (yang dihasilkan menggunakan kunci publik teman Anda) ke PO-box satu kali (demikian pula) menggunakan kunci pribadinya sendiri. Dalam arti tertentu, kita mengatakan, "Oke, semuanya, ambillah uang itu selagi masih ada dipindahkan! Cukup mengetahui bahwa kunci kita dapat membuka kotak itu dan itu kita tahu berapa banyak uang yang ada di dalam kotak. Jangan pernah menaruh sidik jari Anda di PO Box atau benar-benar menggunakannya, cukup tukarkan kotak yang berisi uang tunai itu sendiri. Dengan begitu kita tidak tahu siapa yang mengirim apa, tapi isi dari pidato publik ini masih tanpa gesekan, sepadan, dapat dibagi, dan masih memiliki semua kualitas uang bagus lainnya yang kita inginkan seperti bitcoin." Satu set kotak PO yang tak terbatas. Anda mempublikasikan alamat, saya punya kunci pribadi. Saya menggunakan kunci pribadi saya dan alamat Anda, dan beberapa data acak, untuk menghasilkan kunci publik. Algoritma ini dirancang sedemikian rupa sehingga, sejak Anda alamat digunakan untuk menghasilkan kunci publik, hanya kunci pribadi ANDA yang berfungsi untuk membuka kunci pesan. Seorang pengamat, Eve, melihat Anda mempublikasikan alamat Anda, dan melihat kunci publik yang saya umumkan. Namun, dia tidak tahu apakah saya mengumumkan kunci publik saya berdasarkan alamat Anda, alamatnya, atau alamat Brenda atau milik Charlene, atau siapa pun. Dia memeriksa kunci pribadinya dengan kunci publik yang saya umumkan dan melihatnya tidak berhasil; itu bukan uangnya. Dia tidak mengetahui kunci pribadi orang lain, dan hanya penerima pesan yang memiliki kunci pribadi yang dapat membuka kunci pesan tersebut. Jadi tidak ada seorang pun mendengarkan dapat menentukan siapa yang menerima uang apalagi mengambil uang tersebut.
Publik Pribadi Alice Karol Kunci satu kali Kunci satu kali Kunci satu kali Bob Kunci Bob Alamat Bob Gambar 3. Kunci/model transaksi CryptoNote. Pertama, pengirim melakukan pertukaran Diffie-Hellman untuk mendapatkan rahasia bersama dari datanya dan setengah dari alamat penerima. Kemudian dia menghitung kunci tujuan satu kali, menggunakan kunci bersama rahasia dan paruh kedua alamat. Dua kunci ec yang berbeda diperlukan dari penerima untuk dua langkah ini, jadi alamat CryptoNote standar hampir dua kali lebih besar dari dompet Bitcoin alamat. Penerima juga melakukan pertukaran Diffie-Hellman untuk memulihkannya kunci rahasia. Urutan transaksi standar adalah sebagai berikut: 1. Alice ingin mengirimkan pembayaran kepada Bob, yang telah mempublikasikan alamat standarnya. Dia membongkar alamatnya dan mendapatkan kunci publik Bob (A, B). 2. Alice membangkitkan r acak \(\in\)[1, l−1] dan menghitung kunci publik satu kali \(P = H_s(rA)G +\) B. 3. Alice menggunakan P sebagai kunci tujuan untuk keluaran dan juga mengemas nilai R = rG (sebagai bagian dari bursa Diffie-Hellman) di suatu tempat dalam transaksi. Perhatikan bahwa dia bisa mencipta keluaran lain dengan kunci publik unik: kunci penerima yang berbeda (Ai, Bi) menyiratkan Pi yang berbeda bahkan dengan r yang sama. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan R = rG P = Hs(rA)G + B Penerima kunci publik Data acak pengirim r (A,B) Gambar 4. Struktur transaksi standar. 4. Alice mengirimkan transaksi. 5. Bob memeriksa setiap transaksi yang lewat dengan kunci privatnya (a, b), dan menghitung P ′ = Hs(ar)G + B. Jika transaksi Alice dengan Bob sebagai penerima ada di antara mereka, maka aR = arG = rA dan P′ = P. 7 Publik Pribadi Alice Karol Kunci satu kali Kunci satu kali Kunci satu kali Bob Kunci Bob Alamat Bob Gambar 3. Kunci/model transaksi CryptoNote. Pertama, pengirim melakukan pertukaran Diffie-Hellman untuk mendapatkan rahasia bersama dari datanya dan setengah dari alamat penerima. Kemudian dia menghitung kunci tujuan satu kali, menggunakan kunci bersama rahasia dan paruh kedua alamat. Dua kunci ec yang berbeda diperlukan dari penerima untuk dua langkah ini, jadi alamat CryptoNote standar hampir dua kali lebih besar dari dompet Bitcoin alamat. Penerima juga melakukan pertukaran Diffie-Hellman untuk memulihkannya kunci rahasia. Urutan transaksi standar adalah sebagai berikut: 1. Alice ingin mengirimkan pembayaran kepada Bob, yang telah mempublikasikan alamat standarnya. Dia membongkar alamatnya dan mendapatkan kunci publik Bob (A, B). 2. Alice membangkitkan r acak \(\in\)[1, l−1] dan menghitung kunci publik satu kali \(P = H_s(rA)G +\) B. 3. Alice menggunakan P sebagai kunci tujuan untuk keluaran dan juga mengemas nilai R = rG (sebagai bagian dari bursa Diffie-Hellman) di suatu tempat dalam transaksi. Perhatikan bahwa dia bisa mencipta keluaran lain dengan kunci publik unik: kunci penerima yang berbeda (Ai, Bi) menyiratkan Pi yang berbeda bahkan dengan r yang sama. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan R = rG P = Hs(rA)G + B Penerima kunci publik Data acak pengirim r (A,B) Gambar 4. Struktur transaksi standar. 4. Alice mengirimkan transaksi. 5. Bob memeriksa setiap transaksi yang lewat dengan kunci privatnya (a, b), dan menghitung P ′ = Hs(ar)G + B. Jika transaksi Alice dengan Bob sebagai penerima ada di antara mereka, maka aR = arG = rA dan P′ = P. 7 13 Saya bertanya-tanya betapa sulitnya menerapkan pilihan kriptografi skema. Elips atau lainnya. Jadi jika suatu skema dilanggar di masa depan, mata uang akan beralih tanpa rasa khawatir. Mungkin sangat menyebalkan. Oke, ini persis seperti yang baru saja saya jelaskan di komentar saya sebelumnya. Tipe Diffe-Hellman pertukarannya rapi. Katakanlah Alex dan Brenda masing-masing mempunyai nomor rahasia, A dan B, dan sebuah nomor mereka tidak peduli untuk menjaga rahasia, a dan b. Mereka ingin menghasilkan rahasia bersama tanpa Eva menemukannya. Diffie dan Hellman menemukan cara agar Alex dan Brenda berbagi nomor publik a dan b, tetapi bukan nomor pribadi A dan B, dan menghasilkan rahasia bersama, K. Menggunakan rahasia bersama ini, K, tanpa ada Eva yang mendengarkan untuk dapat menghasilkan hal yang sama K, Alex dan Brenda sekarang dapat menggunakan K sebagai kunci enkripsi rahasia dan meneruskan pesan rahasia kembali dan sebagainya. Begini cara kerjanya BISA, meskipun harus bekerja dengan angka yang jauh lebih besar dari 100. Kita akan menggunakan 100 karena mengerjakan bilangan bulat modulo 100 sama dengan "membuang semua tapi dua digit terakhir dari sebuah angka." Alex dan Brenda masing-masing memilih A, a, B, dan b. Mereka merahasiakan A dan B. Alex memberi tahu Brenda nilai modulo 100 (hanya dua digit terakhir) dan Brenda memberi tahu Alex nilai b modulo 100. Sekarang Eva tahu (a,b) modulo 100. Tapi Alex tahu (a,b,A) jadi dia dapat menghitung x=abA modulo 100.Alex memotong semuanya kecuali angka terakhir karena kami sedang mengerjakan di bawah bilangan bulat modulo 100 lagi. Demikian pula, Brenda mengetahui (a,b,B) sehingga dia dapat menghitung y=abB modulo 100. Alex sekarang dapat mempublikasikan x dan Brenda dapat mempublikasikan y. Tapi sekarang Alex bisa menghitung yA = abBA modulo 100, dan Brenda bisa menghitung xB = abBA modulo 100. Mereka berdua tahu nomor yang sama! Tapi yang Eva dengar hanyalah (a,b,abA,abB). Dia tidak memiliki cara mudah untuk menghitung abA*B. Sekarang, ini adalah cara berpikir yang paling mudah dan paling tidak aman tentang pertukaran Diffie-Hellman. Ada versi yang lebih aman. Tetapi sebagian besar versi berfungsi karena faktorisasi bilangan bulat dan diskrit logaritma itu sulit, dan kedua permasalahan tersebut mudah diselesaikan oleh komputer kuantum. Saya akan melihat apakah ada versi yang tahan terhadap kuantum. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange "Urutan txn standar" yang tercantum di sini tidak memiliki banyak langkah, seperti TANDA TANGAN. Mereka dianggap remeh di sini. Yang benar-benar buruk, karena urutannya kita barang tanda tangan, informasi yang disertakan dalam pesan yang ditandatangani, dan sebagainya... semua ini luar biasa penting bagi protokol. Melakukan satu atau dua langkah yang salah, bahkan sedikit tidak sesuai, saat menerapkan "the urutan transaksi standar" dapat mempertanyakan keamanan seluruh sistem. Selain itu, bukti-bukti yang disajikan kemudian dalam makalah ini mungkin tidak cukup teliti jika kerangka kerja di mana mereka bekerja didefinisikan secara longgar seperti pada bagian ini.
Publik Pribadi Alice Karol Kunci satu kali Kunci satu kali Kunci satu kali Bob Kunci Bob Alamat Bob Gambar 3. Kunci/model transaksi CryptoNote. Pertama, pengirim melakukan pertukaran Diffie-Hellman untuk mendapatkan rahasia bersama dari datanya dan setengah dari alamat penerima. Kemudian dia menghitung kunci tujuan satu kali, menggunakan kunci bersama rahasia dan paruh kedua alamat. Dua kunci ec yang berbeda diperlukan dari penerima untuk dua langkah ini, jadi alamat CryptoNote standar hampir dua kali lebih besar dari dompet Bitcoin alamat. Penerima juga melakukan pertukaran Diffie-Hellman untuk memulihkannya kunci rahasia. Urutan transaksi standar adalah sebagai berikut: 1. Alice ingin mengirimkan pembayaran kepada Bob, yang telah mempublikasikan alamat standarnya. Dia membongkar alamatnya dan mendapatkan kunci publik Bob (A, B). 2. Alice membangkitkan r acak \(\in\)[1, l−1] dan menghitung kunci publik satu kali \(P = H_s(rA)G +\) B. 3. Alice menggunakan P sebagai kunci tujuan untuk keluaran dan juga mengemas nilai R = rG (sebagai bagian dari bursa Diffie-Hellman) di suatu tempat dalam transaksi. Perhatikan bahwa dia bisa mencipta keluaran lain dengan kunci publik unik: kunci penerima yang berbeda (Ai, Bi) menyiratkan Pi yang berbeda bahkan dengan r yang sama. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan R = rG P = Hs(rA)G + B Penerima kunci publik Data acak pengirim r (A,B) Gambar 4. Struktur transaksi standar. 4. Alice mengirimkan transaksi. 5. Bob memeriksa setiap transaksi yang lewat dengan kunci privatnya (a, b), dan menghitung P ′ = Hs(ar)G + B. Jika transaksi Alice dengan Bob sebagai penerima ada di antara mereka, maka aR = arG = rA dan P′ = P. 7 Publik Pribadi Alice Karol Kunci satu kali Kunci satu kali Kunci satu kali Bob Kunci Bob Alamat Bob Gambar 3. Kunci/model transaksi CryptoNote. Pertama, pengirim melakukan pertukaran Diffie-Hellman untuk mendapatkan rahasia bersama dari datanya dan setengah dari alamat penerima. Kemudian dia menghitung kunci tujuan satu kali, menggunakan kunci bersama rahasia dan paruh kedua alamat. Dua kunci ec yang berbeda diperlukan dari penerima untuk dua langkah ini, jadi alamat CryptoNote standar hampir dua kali lebih besar dari dompet Bitcoin alamat. Penerima juga melakukan pertukaran Diffie-Hellman untuk memulihkannya kunci rahasia. Urutan transaksi standar adalah sebagai berikut: 1. Alice ingin mengirimkan pembayaran kepada Bob, yang telah mempublikasikan alamat standarnya. Dia membongkar alamatnya dan mendapatkan kunci publik Bob (A, B). 2. Alice membangkitkan r acak \(\in\)[1, l−1] dan menghitung kunci publik satu kali \(P = H_s(rA)G +\) B. 3. Alice menggunakan P sebagai kunci tujuan untuk keluaran dan juga mengemas nilai R = rG (sebagai bagian dari bursa Diffie-Hellman) di suatu tempat dalam transaksi. Perhatikan bahwa dia bisa mencipta keluaran lain dengan kunci publik unik: kunci penerima yang berbeda (Ai, Bi) menyiratkan Pi yang berbeda bahkan dengan r yang sama. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan R = rG P = Hs(rA)G + B Penerima kunci publik Data acak pengirim r (A,B) Gambar 4. Struktur transaksi standar. 4. Alice mengirimkan transaksi. 5. Bob memeriksa setiap transaksi yang lewat dengan kunci privatnya (a, b), dan menghitung P ′ = Hs(ar)G + B. Jika transaksi Alice dengan Bob sebagai penerima ada di antara mereka, maka aR = arG = rA dan P′ = P. 7 14 Perhatikan bahwa penulisnya melakukan pekerjaan yang buruk dalam menjaga terminologi mereka tetap lurus teksnya, tetapi terutama di bagian berikutnya. Inkarnasi berikutnya dari makalah ini tentu saja akan terjadi jauh lebih ketat. Dalam teks mereka menyebut P sebagai kunci publik satu kali. Dalam diagram, mereka menyebut R sebagai "Kunci publik Tx" dan P sebagai "Kunci Tujuan". Jika saya ingin menulis ulang ini, saya akan melakukannya secara khusus memaparkan beberapa terminologi sebelum membahas bagian ini. Ell ini sangat besar. Lihat halaman 5. Siapa yang memilih El? Diagram tersebut menggambarkan bahwa transaksi kunci publik R = rG yang bersifat acak dan terpilih oleh pengirim, bukan bagian dari keluaran Tx. Ini karena bisa jadi sama untuk banyak orang transaksi ke banyak orang, dan tidak digunakan KEMUDIAN untuk dibelanjakan. R baru dihasilkan setiap kali Anda ingin menyiarkan transaksi CryptoNote baru. Selanjutnya R hanya digunakan untuk memeriksa apakah Anda adalah penerima transaksi. Ini bukan data sampah, tapi sampah bagi siapa pun tanpa kunci pribadi yang terkait dengan (A,B). Sebaliknya, kunci Tujuan, P = Hs(rA)G + B adalah bagian dari keluaran Tx. Semuanya mengobrak-abrik setiap data transaksi yang lewat harus memeriksa P* yang dihasilkannya sendiri P ini untuk melihat apakah mereka memiliki transaksi yang lewat ini. Siapa pun yang memiliki keluaran transaksi yang belum terpakai (UTXO) akan memiliki banyak Ps yang berserakan dengan jumlah. Untuk menghabiskand, mereka menandatangani beberapa pesan baru termasuk P. Alice harus menandatangani transaksi ini dengan kunci pribadi satu kali yang terkait dengan Kunci Tujuan keluaran transaksi yang tidak terpakai. Setiap kunci tujuan yang dimiliki oleh Alice dilengkapi dengan kunci pribadi satu kali yang juga dimiliki (mungkin) oleh Alice. Setiap kali Alice menginginkannya kirimkan isi kunci tujuan kepadaku, atau Bob, atau Brenda, atau Charlie atau Charlene, dia menggunakan kunci pribadinya untuk menandatangani transaksi. Setelah menerima transaksi, saya akan menerima yang baru Kunci publik Tx, kunci publik Tujuan baru, dan saya akan dapat memulihkan kunci pribadi satu kali yang baru x. Menggabungkan kunci pribadi satu kali saya, x, dengan Tujuan publik transaksi baru kuncinya adalah cara kami mengirim transaksi baru
- Bob dapat memulihkan kunci pribadi satu kali yang sesuai: x = Hs(aR) + b, sehingga P = xG. Dia dapat membelanjakan output ini kapan saja dengan menandatangani transaksi dengan x. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan P′ = Hs(aR)G + bG kunci publik satu kali x = Hs(aR) + b kunci pribadi satu kali Penerima kunci pribadi (a,b) R P' ?= hal Gambar 5. Pengecekan transaksi masuk. Hasilnya Bob mendapat pembayaran masuk, terkait dengan kunci publik satu kali tidak dapat dihubungkan untuk penonton. Beberapa catatan tambahan: • Ketika Bob “mengenali” transaksinya (lihat langkah 5) praktis dia hanya menggunakan setengah dari transaksinya informasi pribadi: (a, B). Pasangan ini, juga dikenal sebagai kunci pelacakan, dapat diteruskan kepada pihak ketiga (Carol). Bob dapat mendelegasikan kepadanya pemrosesan transaksi baru. Bob tidak perlu mempercayai Carol secara eksplisit, karena dia tidak dapat memulihkan kunci rahasia satu kali p tanpa kunci pribadi lengkap Bob (a, b). Pendekatan ini berguna ketika Bob kekurangan bandwidth atau kekuatan komputasi (ponsel pintar, dompet perangkat keras, dll.). • Jika Alice ingin membuktikan bahwa dia mengirimkan transaksi ke alamat Bob, dia dapat mengungkapkannya r atau gunakan protokol tanpa pengetahuan apa pun untuk membuktikan bahwa dia mengetahui r (misalnya dengan menandatangani transaksi dengan r). • Jika Bob ingin memiliki alamat yang kompatibel dengan audit di mana semua transaksi masuk berada dapat ditautkan, dia dapat mempublikasikan kunci pelacakannya atau menggunakan alamat yang terpotong. Alamat itu hanya mewakili satu kunci ec publik B, dan bagian sisanya yang diperlukan oleh protokol adalah diturunkan darinya sebagai berikut: a = Hs(B) dan A = Hs(B)G. Dalam kedua kasus tersebut, setiap orang demikian mampu “mengenali” semua transaksi masuk Bob, namun tentu saja tidak ada yang bisa membelanjakannya dana yang terkandung di dalamnya tanpa kunci rahasia b. 4.4 Tanda tangan cincin satu kali Protokol yang didasarkan pada tanda tangan dering satu kali memungkinkan pengguna mencapai ketidakterhubungan tanpa syarat. Sayangnya, jenis tanda tangan kriptografi biasa mengizinkan pelacakan transaksi ke mereka masing-masing pengirim dan penerima. Solusi kami terhadap kekurangan ini terletak pada penggunaan tanda tangan yang berbeda jenisnya dibandingkan yang saat ini digunakan dalam sistem kas elektronik. Pertama-tama kami akan memberikan gambaran umum tentang algoritma kami tanpa referensi eksplisit uang elektronik. Tanda tangan dering satu kali berisi empat algoritma: (GEN, SIG, VER, LNK): GEN: mengambil parameter publik dan mengeluarkan pasangan ec (P, x) dan kunci publik I. SIG: mengambil pesan m, satu set \(S'\) kunci publik {Pi}i̸=s, sepasang (Ps, xs) dan menghasilkan tanda tangan \(\sigma\) dan himpunan \(S = \)S'\( \cup \{P_s\}\). 8
-
Bob dapat memulihkan kunci pribadi satu kali yang sesuai: x = Hs(aR) + b, sehingga P = xG. Dia dapat membelanjakan output ini kapan saja dengan menandatangani transaksi dengan x. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan P′ = Hs(aR)G + bG kunci publik satu kali x = Hs(aR) + b kunci pribadi satu kali Penerima kunci pribadi (a,b) R P' ?= hal Gambar 5. Pengecekan transaksi masuk. Hasilnya Bob mendapat pembayaran masuk, terkait dengan kunci publik satu kali tidak dapat dihubungkan untuk penonton. Beberapa catatan tambahan: • Ketika Bob “mengenali” transaksinya (lihat langkah 5) praktis dia hanya menggunakan setengah dari transaksinya informasi pribadi: (a, B). Pasangan ini, juga dikenal sebagai kunci pelacakan, dapat diteruskan kepada pihak ketiga (Carol). Bob dapat mendelegasikan kepadanya pemrosesan transaksi baru. Bob tidak perlu mempercayai Carol secara eksplisit, karena dia tidak dapat memulihkan kunci rahasia satu kali p tanpa kunci pribadi lengkap Bob (a,b). Pendekatan ini berguna ketika Bob kekurangan bandwidth atau kekuatan komputasi (ponsel pintar, dompet perangkat keras, dll.). • Jika Alice ingin membuktikan bahwa dia mengirimkan transaksi ke alamat Bob, dia dapat mengungkapkannya r atau gunakan protokol tanpa pengetahuan apa pun untuk membuktikan bahwa dia mengetahui r (misalnya dengan menandatangani transaksi dengan r). • Jika Bob ingin memiliki alamat yang kompatibel dengan audit di mana semua transaksi masuk berada dapat ditautkan, dia dapat mempublikasikan kunci pelacakannya atau menggunakan alamat yang terpotong. Alamat itu hanya mewakili satu kunci ec publik B, dan bagian sisanya yang diperlukan oleh protokol adalah diturunkan darinya sebagai berikut: a = Hs(B) dan A = Hs(B)G. Dalam kedua kasus tersebut, setiap orang demikian mampu “mengenali” semua transaksi masuk Bob, namun tentu saja tidak ada yang bisa membelanjakannya dana yang terkandung di dalamnya tanpa kunci rahasia b. 4.4 Tanda tangan cincin satu kali Protokol yang didasarkan pada tanda tangan dering satu kali memungkinkan pengguna mencapai ketidakterhubungan tanpa syarat. Sayangnya, jenis tanda tangan kriptografi biasa mengizinkan pelacakan transaksi ke mereka masing-masing pengirim dan penerima. Solusi kami terhadap kekurangan ini terletak pada penggunaan tanda tangan yang berbeda jenisnya dibandingkan yang saat ini digunakan dalam sistem kas elektronik. Pertama-tama kami akan menyediakan general deskripsi algoritma kami tanpa referensi eksplisit uang elektronik. Tanda tangan dering satu kali berisi empat algoritma: (GEN, SIG, VER, LNK): GEN: mengambil parameter publik dan mengeluarkan pasangan ec (P, x) dan kunci publik I. SIG: mengambil pesan m, satu set \(S'\) kunci publik {Pi}i̸=s, sepasang (Ps, xs) dan menghasilkan tanda tangan \(\sigma\) dan himpunan \(S = \)S'\( \cup \{P_s\}\). 8 15 Seperti apa keluaran transaksi yang belum terpakai di sini? Diagram menunjukkan bahwa keluaran transaksi hanya terdiri dari dua titik data: jumlah dan kunci tujuan. Tapi ini tidak cukup karena ketika saya mencoba menggunakan "output" ini saya masih perlu mengetahui R=rG. Ingat, r dipilih oleh pengirim, dan R a) digunakan untuk mengenali catatan kripto yang masuk sebagai milik Anda milik sendiri dan b) digunakan untuk menghasilkan kunci pribadi satu kali yang digunakan untuk "mengklaim" uang kripto Anda. Bagian tentang ini yang aku tidak mengerti? Mengambil teori "oke, kita punya ini tanda tangan dan transaksi, dan kami menyebarkannya bolak-balik" ke dunia pemrograman "oke informasi apa khususnya yang membentuk seorang individu UTXO?" Cara terbaik untuk menjawab pertanyaan itu adalah dengan menggali isi kode yang sepenuhnya tidak dikomentari. Bagus sekali, tim bytecoin. Ingat: keterhubungan berarti "apakah orang yang sama mengirim?" dan unlinkability berarti "melakukan hal yang sama orang menerima?". Jadi suatu sistem bisa bersifat linkable atau non-linkable, unlinkable atau non-unlinkable. Mengganggu, aku tahu. Jadi ketika Nic van Saberhagen di sini mengatakan "...pembayaran yang masuk dikaitkan dengan satu kali saja kunci publik yang tidak dapat ditautkan oleh penonton," mari kita lihat apa maksudnya. Pertama, pertimbangkan situasi di mana Alice mengirim Bob dua transaksi terpisah dari transaksi yang sama alamat ke alamat yang sama. Di alam semesta Bitcoin, Alice telah melakukan kesalahan mengirim dari alamat yang sama sehingga transaksi telah gagal memenuhi keinginan kami secara terbatas keterhubungan. Terlebih lagi, karena dia mengirimkan uang ke alamat yang sama, dia menggagalkan keinginan kami untuk tidak dapat dihubungkan. Transaksi bitcoin ini (sepenuhnya) dapat ditautkan dan tidak dapat dibatalkan tautannya. Di sisi lain, di dunia cryptonote, katakanlah Alice mengirimi Bob beberapa cryptonote, menggunakan alamat publik Bob. Dia memilih sebagai kumpulan kunci publiknya yang mengaburkan semua publik yang dikenal kunci di wilayah metro Washington DC. Alex menghasilkan kunci publik satu kali menggunakan miliknya sendiri informasi dan informasi publik Bob. Dia mengirimkan uangnya, dan pengamat mana pun akan melakukannya hanya dapat memperoleh informasi "Seseorang dari wilayah metro Washington DC mengirim 2,3 cryptonotes ke alamat publik satu kali XYZ123." Kami memiliki kendali probabilistik atas keterhubungan di sini, jadi kami menyebutnya "hampir tidak dapat ditautkan". Kami juga hanya melihat satu kali kunci publik yang menjadi tujuan pengiriman uang. Bahkan jika kita mencurigai penerimanya adalah Bob, kami tidak memiliki kunci pribadinya sehingga kami tidak dapat menguji apakah transaksi tersebut lewat milik Bob apalagi menghasilkan kunci pribadi satu kali untuk menebus cryptonote-nya. Jadi ini pada kenyataannya, sama sekali "tidak dapat dihubungkan". Jadi, ini adalah trik yang paling rapi. Siapa yang ingin mempercayai MtGox lain? Kita mungkin saja nyaman menyimpan sejumlah BTC di Coinbase, tetapi keamanan bitcoin yang paling utama adalah dompet fisik. Itu tidak nyaman. Dalam hal ini, Anda dapat memberikan setengah dari kunci pribadi Anda tanpa mengorbankan kunci pribadi Anda kemampuan sendiri untuk membelanjakan uang. Saat melakukan ini, yang Anda lakukan hanyalah memberi tahu seseorang cara memutus ketidakterhubungan. Yang lainnya properti CN yang bertindak seperti mata uang dipertahankan, sebagai bukti terhadap pembelanjaan ganda dan yang lainnya.
-
Bob dapat memulihkan kunci pribadi satu kali yang sesuai: x = Hs(aR) + b, sehingga P = xG. Dia dapat membelanjakan output ini kapan saja dengan menandatangani transaksi dengan x. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan P′ = Hs(aR)G + bG kunci publik satu kali x = Hs(aR) + b kunci pribadi satu kali Penerima kunci pribadi (a,b) R P' ?= hal Gambar 5. Pengecekan transaksi masuk. Hasilnya Bob mendapat pembayaran masuk, terkait dengan kunci publik satu kali tidak dapat dihubungkan untuk penonton. Beberapa catatan tambahan: • Ketika Bob “mengenali” transaksinya (lihat langkah 5) praktis dia hanya menggunakan setengah dari transaksinya informasi pribadi: (a, B). Pasangan ini, juga dikenal sebagai kunci pelacakan, dapat diteruskan kepada pihak ketiga (Carol). Bob dapat mendelegasikan kepadanya pemrosesan transaksi baru. Bob tidak perlu mempercayai Carol secara eksplisit, karena dia tidak dapat memulihkan kunci rahasia satu kali p tanpa kunci pribadi lengkap Bob (a, b). Pendekatan ini berguna ketika Bob kekurangan bandwidth atau kekuatan komputasi (ponsel pintar, dompet perangkat keras, dll.). • Jika Alice ingin membuktikan bahwa dia mengirimkan transaksi ke alamat Bob, dia dapat mengungkapkannya r atau gunakan protokol tanpa pengetahuan apa pun untuk membuktikan bahwa dia mengetahui r (misalnya dengan menandatangani transaksi dengan r). • Jika Bob ingin memiliki alamat yang kompatibel dengan audit di mana semua transaksi masuk berada dapat ditautkan, dia dapat mempublikasikan kunci pelacakannya atau menggunakan alamat yang terpotong. Alamat itu hanya mewakili satu kunci ec publik B, dan bagian sisanya yang diperlukan oleh protokol adalah diturunkan darinya sebagai berikut: a = Hs(B) dan A = Hs(B)G. Dalam kedua kasus tersebut, setiap orang demikian mampu “mengenali” semua transaksi masuk Bob, namun tentu saja tidak ada yang bisa membelanjakannya dana yang terkandung di dalamnya tanpa kunci rahasia b. 4.4 Tanda tangan cincin satu kali Protokol yang didasarkan pada tanda tangan dering satu kali memungkinkan pengguna mencapai ketidakterhubungan tanpa syarat. Sayangnya, jenis tanda tangan kriptografi biasa mengizinkan pelacakan transaksi ke mereka masing-masing pengirim dan penerima. Solusi kami terhadap kekurangan ini terletak pada penggunaan tanda tangan yang berbeda jenisnya dibandingkan yang saat ini digunakan dalam sistem kas elektronik. Pertama-tama kami akan memberikan gambaran umum tentang algoritma kami tanpa referensi eksplisit uang elektronik. Tanda tangan dering satu kali berisi empat algoritma: (GEN, SIG, VER, LNK): GEN: mengambil parameter publik dan mengeluarkan pasangan ec (P, x) dan kunci publik I. SIG: mengambil pesan m, satu set \(S'\) kunci publik {Pi}i̸=s, sepasang (Ps, xs) dan menghasilkan tanda tangan \(\sigma\) dan himpunan \(S = \)S'\( \cup \{P_s\}\). 8
- Bob dapat memulihkan kunci pribadi satu kali yang sesuai: x = Hs(aR) + b, sehingga P = xG. Dia dapat membelanjakan output ini kapan saja dengan menandatangani transaksi dengan x. Transaksi Terima kasih kunci publik Keluaran terima kasih Jumlah Kunci tujuan P′ = Hs(aR)G + bG kunci publik satu kali x = Hs(aR) + b kunci pribadi satu kali Penerima kunci pribadi (a,b) R P' ?= hal Gambar 5. Pengecekan transaksi masuk. Hasilnya Bob mendapat pembayaran masuk, terkait dengan kunci publik satu kali tidak dapat dihubungkan untuk penonton. Beberapa catatan tambahan: • Ketika Bob “mengenali” transaksinya (lihat langkah 5) praktis dia hanya menggunakan setengah dari transaksinya informasi pribadi: (a, B). Pasangan ini, juga dikenal sebagai kunci pelacakan, dapat diteruskan kepada pihak ketiga (Carol). Bob dapat mendelegasikan kepadanya pemrosesan transaksi baru. Bob tidak perlu mempercayai Carol secara eksplisit, karena dia tidak dapat memulihkan kunci rahasia satu kali p tanpa kunci pribadi lengkap Bob (a,b). Pendekatan ini berguna ketika Bob kekurangan bandwidth atau kekuatan komputasi (ponsel pintar, dompet perangkat keras, dll.). • Jika Alice ingin membuktikan bahwa dia mengirimkan transaksi ke alamat Bob, dia dapat mengungkapkannya r atau gunakan protokol tanpa pengetahuan apa pun untuk membuktikan bahwa dia mengetahui r (misalnya dengan menandatangani transaksi dengan r). • Jika Bob ingin memiliki alamat yang kompatibel dengan audit di mana semua transaksi masuk berada dapat ditautkan, dia dapat mempublikasikan kunci pelacakannya atau menggunakan alamat yang terpotong. Alamat itu hanya mewakili satu kunci ec publik B, dan bagian sisanya yang diperlukan oleh protokol adalah diturunkan darinya sebagai berikut: a = Hs(B) dan A = Hs(B)G. Dalam kedua kasus tersebut, setiap orang demikian mampu “mengenali” semua transaksi masuk Bob, namun tentu saja tidak ada yang bisa membelanjakannya dana yang terkandung di dalamnya tanpa kunci rahasia b. 4.4 Tanda tangan cincin satu kali Protokol yang didasarkan pada tanda tangan dering satu kali memungkinkan pengguna mencapai ketidakterhubungan tanpa syarat. Sayangnya, jenis tanda tangan kriptografi biasa mengizinkan pelacakan transaksi ke mereka masing-masing pengirim dan penerima. Solusi kami terhadap kekurangan ini terletak pada penggunaan tanda tangan yang berbeda jenisnya dibandingkan yang saat ini digunakan dalam sistem kas elektronik. Pertama-tama kami akan menyediakan general deskripsi algoritma kami tanpa referensi eksplisit uang elektronik. Tanda tangan dering satu kali berisi empat algoritma: (GEN, SIG, VER, LNK): GEN: mengambil parameter publik dan mengeluarkan pasangan ec (P, x) dan kunci publik I. SIG: mengambil pesan m, satu set \(S'\) kunci publik {Pi}i̸=s, sepasang (Ps, xs) dan menghasilkan tanda tangan \(\sigma\) dan himpunan \(S = \)S'\( \cup \{P_s\}\). 8 16 Ya, jadi sekarang kami memiliki a) alamat pembayaran dan b) ID pembayaran. Kritikus mungkin bertanya "apakah kita benar-benar perlu melakukan ini? Lagi pula, jika pedagang menerima 112.00678952 CN tepatnya, dan itu pesanan saya, dan saya punya tangkapan layar atau tanda terima atau apa pun, bukan tingkat presisi yang gila, cukup?" Jawabannya adalah "mungkin, sering kali, dalam kehidupan sehari-hari, transaksi tatap muka.” Namun, situasi yang lebih umum (terutama di dunia digital) adalah: seorang pedagang menjual sekumpulan objek yang masing-masing mempunyai harga tetap. Katakanlah benda A 0,001 CN, benda B 0,01 CN dan benda C adalah 0,1 CN. Nah kalau merchant mendapat order 1.618 CN, banyak sekali (banyak!) cara untuk mengatur pesanan untuk pelanggan. Jadi tanpa semacam ID pembayaran, mengidentifikasi apa yang disebut pesanan "unik" pelanggan dengan apa yang disebut biaya "unik" mereka ketertiban menjadi mustahil. Yang lebih lucu lagi: jika semua yang ada di toko online saya harganya tepat 1,0 CN, dan saya mendapatkan 1000 pelanggan sehari? Dan Anda ingin membuktikan bahwa Anda membeli tepat 3 benda dua minggu lalu? Tanpa ID pembayaran? Semoga berhasil, sobat. Singkat cerita: Saat Bob menerbitkan alamat pembayaran, dia mungkin juga menerbitkan a ID pembayaran juga (lihat, misalnya deposit Poloniex XMR). Hal ini berbeda dengan apa yang dijelaskan dalam teks di sini di mana Alice adalah orang yang menghasilkan ID pembayaran. Pasti ada cara bagi Bob untuk menghasilkan ID pembayaran juga. (a,b) Ingatlah bahwa kunci pelacakan (a,B) dapat dipublikasikan; kehilangan kerahasiaan nilai surat wasiat 'a' tidak melanggar kemampuan Anda untuk membelanjakan uang atau membiarkan orang mencuri dari Anda (menurut saya... itu akan terjadi dibuktikan), itu hanya akan memungkinkan orang untuk melihat semua transaksi masuk. Alamat yang terpotong, seperti yang dijelaskan dalam paragraf ini, hanya mengambil bagian "pribadi" dari kunci tersebut dan menghasilkannya dari bagian "publik". Mengungkap nilai 'a' akan menghilangkan ketidakterhubungan tetapi akan mempertahankan sisa transaksi. Yang dimaksud penulis adalah "tidak dapat ditautkan" karena tidak dapat ditautkan mengacu pada penerima dan dapat ditautkan mengacu pada pengirimnya. Jelas juga bahwa penulis tidak menyadari bahwa ada dua aspek berbeda dalam keterhubungan. Karena transaksi adalah objek berarah pada grafik, maka akan timbul dua pertanyaan: "Apakah kedua transaksi ini ditujukan kepada orang yang sama?" dan "apakah kedua transaksi ini akan datang dari orang yang sama?" Ini adalah kebijakan "tidak ada jalan kembali" yang mendasari properti tidak dapat ditautkannya CryptoNote bersyarat. Artinya, Bob dapat memilih agar transaksi masuknya tidak dapat dibatalkan tautannya menggunakan kebijakan ini. Ini adalah klaim yang mereka buktikan berdasarkan Random Oracle Model. Kita akan membahasnya; yang Acak Oracle memiliki pro dan kontra.
VER: mengambil pesan m, satu set S, tanda tangan \(\sigma\) dan menghasilkan output “benar” atau “salah”. LNK: mengambil himpunan I = {Ii}, tanda tangan \(\sigma\) dan menghasilkan keluaran “tertaut” atau “indep”. Ide di balik protokol ini cukup sederhana: pengguna membuat tanda tangan diperiksa oleh sekumpulan kunci publik, bukan kunci publik unik. Identitas penandatangan adalah tidak dapat dibedakan dari pengguna lain yang kunci publiknya ada di set sampai pemiliknya memproduksinya tanda tangan kedua menggunakan pasangan kunci yang sama. Kunci pribadi x0 \(\cdots\) xi \(\cdots\) xn Kunci publik P0 \(\cdots\) pi \(\cdots\) hal Cincin Tanda tangan tanda tangan verifikasi Gambar 6. Anonimitas tanda tangan dering. GEN: Penanda tangan mengambil kunci rahasia acak \(x \in [1, l - 1]\) dan menghitung kunci rahasia yang sesuai kunci publik P = xG. Selain itu, dia menghitung kunci publik lain I = xHp(P) yang akan kita lakukan sebut "gambar kunci". SIG: Penandatangan menghasilkan tanda tangan dering satu kali dengan pengetahuan nol non-interaktif pembuktian menggunakan teknik dari [21]. Dia memilih subset acak \(S'\) dari n dari pengguna lain. kunci publik Pi, pasangan kuncinya sendiri (x, P) dan gambar kunci I. Misalkan \(0 \leq s \leq n\) menjadi indeks rahasia penanda tangan di S (sehingga kunci publiknya adalah Ps). Dia memilih {qi | secara acak saya = 0 . . . n} dan {wi | saya = 0 . . . n, i ̸= s} dari (1 . . . l) dan menerapkan transformasi berikut: Li = ( qiG, jika saya = s qiG + wiPi, jika saya ̸= s Ri = ( qiHp(Pi), jika saya = s qiHp(Pi) + wiI, jika saya ̸= s Langkah selanjutnya adalah mendapatkan tantangan non-interaktif: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Akhirnya penandatangan menghitung responsnya: ci = wi, jika saya ̸= s c - nP saya=0 ci mod aku, jika saya = s ri = ( qi, jika saya ̸= s qs−csx mod aku, jika saya = s Tanda tangan yang dihasilkan adalah \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: mengambil pesan m, satu set S, tanda tangan \(\sigma\) dan menghasilkan output “benar” atau “salah”. LNK: mengambil himpunan I = {Ii}, tanda tangan \(\sigma\) dan menghasilkan keluaran “tertaut” atau “indep”. Ide di balik protokol ini cukup sederhana: pengguna membuat tanda tangan diperiksa oleh sekumpulan kunci publik, bukan kunci publik unik. Identitas penandatangan adalah tidak dapat dibedakan dari pengguna lain yang kunci publiknya ada di set sampai pemiliknya memproduksinya tanda tangan kedua menggunakan pasangan kunci yang sama. Kunci pribadi x0 \(\cdots\) xi \(\cdots\) xn Kunci publik P0 \(\cdots\) pi \(\cdots\) hal Cincin Tanda tangan tanda tangan verifikasi Gambar 6. Anonimitas tanda tangan dering. GEN: Penanda tangan mengambil kunci rahasia acak \(x \in [1, l - 1]\) dan menghitung kunci rahasia yang sesuai kunci publik P = xG. Selain itu, dia menghitung kunci publik lain I = xHp(P) yang akan kita lakukan sebut "gambar kunci". SIG: Penandatangan menghasilkan tanda tangan dering satu kali dengan pengetahuan nol non-interaktif pembuktian menggunakan teknik dari [21]. Dia memilih subset acak \(S'\) dari n dari pengguna lain. kunci publik Pi, pasangan kuncinya sendiri (x, P) dan gambar kunci I. Misalkan \(0 \leq s \leq n\) menjadi indeks rahasia penanda tangan di S (sehingga kunci publiknya adalah Ps). Dia memilih {qi | secara acak saya = 0 . . . n} dan {wi | saya = 0 . . . n, i ̸= s} dari (1 . . . l) dan menerapkan transformasi berikut: Li = ( qiG, jika saya = s qiG + wiPi, jika saya ̸= s Ri = ( qiHp(Pi), jika saya = s qiHp(Pi) + wiI, jika saya ̸= s Langkah selanjutnya adalah mendapatkan tantangan non-interaktif: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Akhirnya penandatangan menghitung responsnya: ci = wi, jika saya ̸= s c - nP saya=0 ci mod aku, jika saya = s ri = ( qi, jika saya ̸= s qs−csx mod aku, jika saya = s Tanda tangan yang dihasilkan adalah \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 Mungkin ini bodoh, tapi kehati-hatian harus diberikan saat menyatukan S dan P_s. Jika Anda hanya menambahkan kunci publik terakhir sampai akhir, ketidakterhubungan rusak karena siapa pun memeriksa transaksi yang lewat cukup memeriksa kunci publik terakhir yang terdaftar di setiap transaksi dan booming. Itu kunci publiknya berhubungan dengan pengirimnya. Jadi setelah penyatuan, generator nomor pseudorandom harus ada digunakan untuk mengubah kunci publik yang dipilih. "...sampai pemilik membuat tanda tangan kedua menggunakan pasangan kunci yang sama." Saya berharap penulisnya? akan menguraikan hal ini. Saya yakin ini berarti "pastikan bahwa setiap kali Anda memilih sekumpulan kunci publik untuk dikaburkan sendiri, Anda memilih satu set yang benar-benar baru tanpa dua kunci yang sama." Yang tampak seperti a kondisi yang cukup kuat untuk ditempatkan pada ketidakterhubungan. Mungkin "Anda memilih kumpulan acak baru semua kunci yang mungkin" dengan asumsi bahwa, meskipun persimpangan nontrivial pasti akan terjadi terjadi, hal itu tidak akan sering terjadi. Apa pun yang terjadi, saya perlu menggali lebih dalam pernyataan ini. Ini menghasilkan tanda tangan cincin. Bukti tanpa pengetahuan itu luar biasa: Saya menantang Anda untuk membuktikan kepada saya bahwa Anda mengetahui sebuah rahasia tanpa mengungkapkan rahasianya. Misalnya saja kita berada di pintu masuk gua yang berbentuk donat, dan di belakang gua (di luar pandangan dari pintu masuk) ada opintu baru ke mana Anda mengaku kamu punya kuncinya. Jika Anda pergi ke satu arah, ia selalu membiarkan Anda lewat, tetapi jika Anda pergi ke arah yang lain arah lain, Anda memerlukan kunci. Tapi Anda bahkan tidak mau TUNJUKKAN kuncinya kepada saya, apalagi tunjukkan padaku bahwa itu membuka pintu. Tapi Anda ingin membuktikan kepada saya bahwa Anda tahu cara membukanya pintu. Dalam suasana interaktif, saya melempar koin. Kepala di kiri, ekor di kanan, dan Anda turun ke bawah gua berbentuk donat ke arah mana pun koin mengarahkan Anda. Di belakang, di luar pandanganku, kamu buka pintu untuk kembali ke sisi lain. Kami mengulangi eksperimen melempar koin sampai saya puas bahwa Anda memiliki kuncinya. Tapi itu jelas merupakan bukti tanpa pengetahuan yang INTERAKTIF. Ada versi non-interaktif di mana Anda dan saya tidak perlu berkomunikasi; dengan cara ini, tidak ada penyadap yang dapat mengganggu. http://en.wikipedia.org/wiki/Zero-knowledge_proof Ini kebalikan dari definisi sebelumnya.
VER: mengambil pesan m, satu set S, tanda tangan \(\sigma\) dan menghasilkan output “benar” atau “salah”. LNK: mengambil himpunan I = {Ii}, tanda tangan \(\sigma\) dan menghasilkan keluaran “tertaut” atau “indep”. Ide di balik protokol ini cukup sederhana: pengguna membuat tanda tangan diperiksa oleh sekumpulan kunci publik, bukan kunci publik unik. Identitas penandatangan adalah tidak dapat dibedakan dari pengguna lain yang kunci publiknya ada di set sampai pemiliknya memproduksinya tanda tangan kedua menggunakan pasangan kunci yang sama. Kunci pribadi x0 \(\cdots\) xi \(\cdots\) xn Kunci publik P0 \(\cdots\) pi \(\cdots\) hal Cincin Tanda tangan tanda tangan verifikasi Gambar 6. Anonimitas tanda tangan dering. GEN: Penanda tangan mengambil kunci rahasia acak \(x \in [1, l - 1]\) dan menghitung kunci rahasia yang sesuai kunci publik P = xG. Selain itu, dia menghitung kunci publik lain I = xHp(P) yang akan kita lakukan sebut "gambar kunci". SIG: Penandatangan menghasilkan tanda tangan dering satu kali dengan pengetahuan nol non-interaktif bukti menggunakan teknik dari [21]. Dia memilih subset acak \(S'\) dari n dari pengguna lain. kunci publik Pi, pasangan kuncinya sendiri (x, P) dan gambar kunci I. Misalkan \(0 \leq s \leq n\) menjadi indeks rahasia penanda tangan di S (sehingga kunci publiknya adalah Ps). Dia memilih {qi | secara acak saya = 0 . . . n} dan {wi | saya = 0 . . . n, i ̸= s} dari (1 . . . l) dan menerapkan transformasi berikut: Li = ( qiG, jika saya = s qiG + wiPi, jika saya ̸= s Ri = ( qiHp(Pi), jika saya = s qiHp(Pi) + wiI, jika saya ̸= s Langkah selanjutnya adalah mendapatkan tantangan non-interaktif: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Akhirnya penandatangan menghitung responsnya: ci = wi, jika saya ̸= s c - nP saya=0 ci mod aku, jika saya = s ri = ( qi, jika saya ̸= s qs−csx mod aku, jika saya = s Tanda tangan yang dihasilkan adalah \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: mengambil pesan m, satu set S, tanda tangan \(\sigma\) dan menghasilkan output “benar” atau “salah”. LNK: mengambil himpunan I = {Ii}, tanda tangan \(\sigma\) dan menghasilkan keluaran “tertaut” atau “indep”. Ide di balik protokol ini cukup sederhana: pengguna membuat tanda tangan diperiksa oleh sekumpulan kunci publik, bukan kunci publik unik. Identitas penandatangan adalah tidak dapat dibedakan dari pengguna lain yang kunci publiknya ada di set sampai pemiliknya memproduksinya tanda tangan kedua menggunakan pasangan kunci yang sama. Kunci pribadi x0 \(\cdots\) xi \(\cdots\) xn Kunci publik P0 \(\cdots\) pi \(\cdots\) hal Cincin Tanda tangan tanda tangan verifikasi Gambar 6. Anonimitas tanda tangan dering. GEN: Penanda tangan mengambil kunci rahasia acak \(x \in [1, l - 1]\) dan menghitung kunci rahasia yang sesuai kunci publik P = xG. Selain itu, dia menghitung kunci publik lain I = xHp(P) yang akan kita lakukan sebut "gambar kunci". SIG: Penandatangan menghasilkan tanda tangan dering satu kali dengan pengetahuan nol non-interaktif bukti menggunakan teknik dari [21]. Dia memilih subset acak \(S'\) dari n dari pengguna lain. kunci publik Pi, pasangan kuncinya sendiri (x, P) dan gambar kunci I. Misalkan \(0 \leq s \leq n\) menjadi indeks rahasia penanda tangan di S (sehingga kunci publiknya adalah Ps). Dia memilih {qi | secara acak saya = 0 . . . n} dan {wi | saya = 0 . . . n, i ̸= s} dari (1 . . . l) dan menerapkan transformasi berikut: Li = ( qiG, jika saya = s qiG + wiPi, jika saya ̸= s Ri = ( qiHp(Pi), jika saya = s qiHp(Pi) + wiI, jika saya ̸= s Langkah selanjutnya adalah mendapatkan tantangan non-interaktif: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Akhirnya penandatangan menghitung responsnya: ci = wi, jika saya ̸= s c - nP saya=0 ci mod aku, jika saya = s ri = ( qi, jika saya ̸= s qs−csx mod aku, jika saya = s Tanda tangan yang dihasilkan adalah \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 Seluruh area ini adalah cryptonote agnostic, hanya menggambarkan algoritma tanda tangan cincin tanpa referensi mata uang. Saya curiga beberapa notasinya konsisten dengan makalah lainnya, meskipun begitu. Misalnya, x adalah kunci rahasia "acak" yang dipilih di GEN, yang menghasilkan kunci publik P dan gambar kunci publik I. Nilai x ini adalah nilai yang dihitung Bob di bagian 6 halaman 8. Jadi begini mulai menjernihkan beberapa kebingungan dari uraian sebelumnya. Ini keren; uang tidak ditransfer dari "alamat publik Alice ke publik Bob alamat." Ini sedang ditransfer dari alamat satu kali ke alamat satu kali. Jadi, dalam arti tertentu, inilah cara kerjanya. Jika Alex memiliki beberapa cryptonotes karena seseorang mengirimkannya kepadanya, ini berarti dia memiliki kunci pribadi yang diperlukan untuk mengirimkannya kepada Bob. Dia menggunakan pertukaran Diffie-Hellman menggunakan informasi publik Bob untuk menghasilkan alamat satu kali yang baru dan cryptonotes ditransfer ke alamat itu. Sekarang, karena pertukaran DH (yang mungkin aman) digunakan untuk menghasilkan alamat satu kali yang baru kepada siapa Alex mengirimkan CN-nya, Bob adalah satu-satunya yang memiliki kunci pribadi yang diperlukan untuk mengulanginya di atas. Jadi sekarang, Bob adalah Alex. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Penjumlahan harus diindeks pada j bukan i. Setiap c_i adalah sampah acak (karena w_i acak) kecuali pantat c_iterkait dengan kunci sebenarnya yang terlibat dalam tanda tangan ini. Nilai c adalah a hash dari informasi sebelumnya. Saya pikir ini mungkin mengandung kesalahan ketik yang lebih buruk daripada menggunakan kembali indeks 'i', karena sepertinya c_s untuk didefinisikan secara implisit, bukan eksplisit. Memang, jika kita mengambil persamaan ini dengan keyakinan, maka kita menentukan bahwa c_s = (1/2)c - (1/2) jumlah_i neq s c_i. Artinya, hash dikurangi sejumlah angka acak. Sebaliknya jika penjumlahan ini dimaksudkan untuk dibaca "c_s = (c - sum_j neq s c_j) mod l", lalu kita ambil hash dari informasi kita sebelumnya, buat sekumpulan angka acak, kurangi semua angka acak itu dari hash, dan itu memberi kita c_s. Ini tampaknya terjadi apa yang "seharusnya" terjadi berdasarkan intuisi saya, dan cocok dengan langkah verifikasi di halaman 10. Tapi intuisi bukanlah matematika. Saya akan menggali lebih dalam tentang ini. Sama seperti sebelumnya; semua ini akan menjadi sampah acak kecuali yang terkait dengan yang sebenarnya kunci publik penandatangan x. Kecuali kali ini, inilah yang saya harapkan dari strukturnya: r_i acak untuk i!=s dan r_s hanya ditentukan oleh rahasia x dan nilai indeks s dari q_i dan c_i.
VER: Pemverifikasi memeriksa tanda tangan dengan menerapkan transformasi terbalik: ( aku saya = riG + ciPi R′ saya = riHp(Pi) + ciI Akhirnya, pemverifikasi memeriksa apakah nP saya=0 ci ?= Hs(m, L′ 0, . . . , aku′ n, R′ 0, . . . , R′ n) mod l Jika persamaan ini benar, pemverifikasi menjalankan algoritma LNK. Jika tidak, pemverifikasi akan menolak tanda tangan. LNK: Pemverifikasi memeriksa apakah saya telah digunakan pada tanda tangan sebelumnya (nilai-nilai ini disimpan di set I). Penggunaan ganda menyiratkan bahwa dua tanda tangan dihasilkan di bawah kunci rahasia yang sama. Arti protokol: dengan menerapkan transformasi L, penandatangan membuktikan bahwa dia mengetahuinya sedemikian rupa sehingga setidaknya satu Pi = xG. Untuk membuat bukti ini tidak dapat diulangi, kami memperkenalkan gambar kuncinya karena saya = xHp(P). Penandatangan menggunakan koefisien yang sama (ri, ci) untuk membuktikan pernyataan yang hampir sama: dia mengetahui x sedemikian rupa sehingga setidaknya satu \(H_p(P_i) = I \cdot x^{-1}\). Jika pemetaan \(x \to I\) adalah injeksi: 1. Tidak ada seorang pun yang dapat memulihkan kunci publik dari gambar kunci dan mengidentifikasi penandatangannya; 2. Penanda tangan tidak boleh membuat dua tanda tangan dengan huruf I berbeda dan x yang sama. Analisis keamanan lengkap disediakan di Lampiran A. 4.5 Transaksi CryptoNote standar Dengan menggabungkan kedua metode (kunci publik yang tidak dapat ditautkan dan tanda tangan cincin yang tidak dapat dilacak), Bob berhasil mencapainya tingkat privasi baru dibandingkan dengan skema Bitcoin asli. Itu mengharuskan dia untuk menyimpan saja satu kunci pribadi (a, b) dan publikasikan (A, B) untuk mulai menerima dan mengirim transaksi anonim. Saat memvalidasi setiap transaksi, Bob juga hanya melakukan dua perkalian kurva elips dan satu penambahan per output untuk memeriksa apakah suatu transaksi miliknya. Untuk setiap miliknya keluaran Bob memulihkan pasangan kunci satu kali (pi, Pi) dan menyimpannya di dompetnya. Masukan apa saja bisa terbukti secara tidak langsung mempunyai pemilik yang sama hanya jika mereka muncul dalam satu transaksi. Di Faktanya, hubungan ini jauh lebih sulit untuk dibangun karena tanda tangan satu kali saja. Dengan tanda tangan cincin, Bob dapat secara efektif menyembunyikan setiap masukan dari masukan orang lain; semua mungkin pembelanja akan sama besarnya, bahkan pemilik sebelumnya (Alice) tidak memiliki informasi lebih dari itu pengamat mana pun. Saat menandatangani transaksinya, Bob menentukan n output luar negeri dengan jumlah yang sama dengan miliknya keluaran, mencampur semuanya tanpa partisipasi pengguna lain. Bob sendiri (dan juga orang lain) tidak mengetahui apakah pembayaran ini telah dibelanjakan: suatu keluaran dapat digunakan dalam ribuan tanda tangan sebagai faktor ambiguitas dan tidak pernah menjadi sasaran persembunyian. Ganda pemeriksaan pembelanjaan terjadi pada fase LNK saat memeriksa kumpulan gambar kunci yang digunakan. Bob dapat memilih sendiri derajat ambiguitasnya: n = 1 berarti probabilitas yang dimilikinya menghabiskan output adalah probabilitas 50%, n = 99 menghasilkan 1%. Ukuran tanda tangan yang dihasilkan bertambah linier sebagai O(n+1), sehingga peningkatan anonimitas memerlukan biaya transaksi tambahan bagi Bob. Dia juga bisa setel n = 0 dan buat tanda tangan cincinnya hanya terdiri dari satu elemen, namun ini akan langsung terjadi mengungkapkan dia sebagai seorang pemboros. 10 VER: Pemverifikasi memeriksa tanda tangan dengan menerapkan transformasi terbalik: ( aku saya = riG + ciPi R′ saya = riHp(Pi) + ciI Akhirnya, pemverifikasi memeriksa apakah nP saya=0 ci ?= Hs(m, L′ 0, . . . , aku' n, R′ 0, . . . , R′ n) mod l Jika persamaan ini benar, pemverifikasi menjalankan algoritma LNK. Jika tidak, pemverifikasi akan menolak tanda tangan. LNK: Pemverifikasi memeriksa apakah saya telah digunakan pada tanda tangan sebelumnya (nilai-nilai ini disimpan di set I). Penggunaan ganda menyiratkan bahwa dua tanda tangan dihasilkan di bawah kunci rahasia yang sama. Arti protokol: dengan menerapkan transformasi L, penandatangan membuktikan bahwa dia mengetahuinya sedemikian rupa sehingga setidaknya satu Pi = xG. Untuk membuat bukti ini tidak dapat diulangi, kami memperkenalkan gambar kuncinya karena saya = xHp(P). Penandatangan menggunakan koefisien yang sama (ri, ci) untuk membuktikan pernyataan yang hampir sama: dia mengetahui x sedemikian rupa sehingga setidaknya satu \(H_p(P_i) = I \cdot x^{-1}\). Jika pemetaan \(x \to I\) adalah injeksi: 1. Tidak ada seorang pun yang dapat memulihkan kunci publik dari gambar kunci dan mengidentifikasi penandatangannya; 2. Penanda tangan tidak boleh membuat dua tanda tangan dengan huruf I berbeda dan x yang sama. Analisis keamanan lengkap disediakan di Lampiran A. 4.5 Transaksi CryptoNote standar Dengan menggabungkan kedua metode (kunci publik yang tidak dapat ditautkan dan tanda tangan cincin yang tidak dapat dilacak), Bob berhasil mencapainya tingkat privasi baru dibandingkan dengan skema Bitcoin asli. Itu mengharuskan dia untuk menyimpan saja satu kunci pribadi (a, b) dan publikasikan (A, B) untuk mulai menerima dan mengirim transaksi anonim. Saat memvalidasi setiap transaksi, Bob juga hanya melakukan dua perkalian kurva elips dan satu penambahan per output untuk memeriksa apakah suatu transaksi miliknya. Untuk setiap miliknya output Bob memulihkan keypair satu kali (pi, Pi) dan stbijih itu di dompetnya. Masukan apa saja bisa terbukti secara tidak langsung mempunyai pemilik yang sama hanya jika mereka muncul dalam satu transaksi. Di Faktanya, hubungan ini jauh lebih sulit untuk dibangun karena tanda tangan satu kali saja. Dengan tanda tangan cincin, Bob dapat secara efektif menyembunyikan setiap masukan dari masukan orang lain; semua mungkin pembelanja akan sama besarnya, bahkan pemilik sebelumnya (Alice) tidak memiliki informasi lebih dari itu pengamat mana pun. Saat menandatangani transaksinya, Bob menentukan n output luar negeri dengan jumlah yang sama dengan miliknya keluaran, mencampur semuanya tanpa partisipasi pengguna lain. Bob sendiri (dan juga orang lain) tidak mengetahui apakah pembayaran ini telah dibelanjakan: suatu keluaran dapat digunakan dalam ribuan tanda tangan sebagai faktor ambiguitas dan tidak pernah menjadi sasaran persembunyian. Ganda pemeriksaan pembelanjaan terjadi pada fase LNK saat memeriksa kumpulan gambar kunci yang digunakan. Bob dapat memilih sendiri derajat ambiguitasnya: n = 1 berarti probabilitas yang dimilikinya menghabiskan output adalah probabilitas 50%, n = 99 menghasilkan 1%. Ukuran tanda tangan yang dihasilkan bertambah linier sebagai O(n+1), sehingga peningkatan anonimitas memerlukan biaya transaksi tambahan bagi Bob. Dia juga bisa setel n = 0 dan buat tanda tangan cincinnya hanya terdiri dari satu elemen, namun ini akan langsung terjadi mengungkapkan dia sebagai seorang pemboros. 10 19 Saat ini, saya sangat bingung. Alex menerima pesan M dengan tanda tangan (I,c_1, ..., c_n, r_1, ..., r_n) dan daftar publik kunci S. dan dia menjalankan VER. Ini akan menghitung L_i' dan R_i' Ini memverifikasi bahwa c_s = c - sum_i neq s c_i pada halaman sebelumnya. Awalnya saya SANGAT (ha) bingung. Siapa pun dapat menghitung L_i' dan R_i'. Memang, masing-masing r_i dan c_i telah diterbitkan dalam tanda tangan sigma sama dengan nilai I. Himpunan S = P_i dari semua kunci publik juga telah dipublikasikan. Jadi siapapun yang pernah melihat sigma dan himpunan kunci S = P_i akan mendapatkan nilai yang sama untuk L_i' dan R_i' dan karenanya periksa tanda tangannya. Tapi kemudian saya ingat bagian ini hanya menjelaskan algoritma tanda tangan, bukan "cek jika ditandatangani, periksa apakah DIKIRIM KEPADA SAYA, dan jika demikian, belanjakan uangnya." Ini HANYA bagian tanda tangan dari permainan. Saya tertarik untuk membaca Lampiran A ketika saya akhirnya sampai di sana. Saya ingin melihat perbandingan operasi demi operasi skala penuh antara Cryptonote dengan Bitcoin. Juga, listrik/keberlanjutan. Bagian algoritma apa yang merupakan "input" di sini? Saya yakin masukan transaksi adalah Jumlah dan kumpulan UTXO yang jumlahnya lebih besar daripada jumlah Jumlah. Ini tidak jelas. “Target persembunyian?” Saya telah memikirkan hal ini selama beberapa menit sekarang dan saya masih belum memikirkannya gagasan paling kabur tentang apa artinya itu. Serangan pembelanjaan ganda hanya dapat dilakukan dengan memanipulasi kunci yang dianggap digunakan oleh sebuah node kumpulan gambar \(I\). "Tingkat ambiguitas" = n tetapi jumlah total kunci publik yang termasuk dalam transaksi adalah n+1. Artinya, tingkat ambiguitas adalah "berapa banyak orang LAIN yang Anda inginkan orang banyak?" Jawabannya mungkin, secara default, "sebanyak mungkin".
VER: Pemverifikasi memeriksa tanda tangan dengan menerapkan transformasi terbalik: ( aku saya = riG + ciPi R′ saya = riHp(Pi) + ciI Akhirnya, pemverifikasi memeriksa apakah nP saya=0 ci ?= Hs(m, L′ 0, . . . , aku' n, R′ 0, . . . , R′ n) mod l Jika persamaan ini benar, pemverifikasi menjalankan algoritma LNK. Jika tidak, pemverifikasi akan menolak tanda tangan. LNK: Pemverifikasi memeriksa apakah saya telah digunakan pada tanda tangan sebelumnya (nilai-nilai ini disimpan di set I). Penggunaan ganda menyiratkan bahwa dua tanda tangan dihasilkan di bawah kunci rahasia yang sama. Arti protokol: dengan menerapkan transformasi L, penandatangan membuktikan bahwa dia mengetahuinya sedemikian rupa sehingga setidaknya satu Pi = xG. Untuk membuat bukti ini tidak dapat diulangi, kami memperkenalkan gambar kuncinya karena saya = xHp(P). Penandatangan menggunakan koefisien yang sama (ri, ci) untuk membuktikan pernyataan yang hampir sama: dia mengetahui x sedemikian rupa sehingga setidaknya satu \(H_p(P_i) = I \cdot x^{-1}\). Jika pemetaan \(x \to I\) adalah injeksi: 1. Tidak ada seorang pun yang dapat memulihkan kunci publik dari gambar kunci dan mengidentifikasi penandatangannya; 2. Penanda tangan tidak boleh membuat dua tanda tangan dengan huruf I berbeda dan x yang sama. Analisis keamanan lengkap disediakan di Lampiran A. 4.5 Transaksi CryptoNote standar Dengan menggabungkan kedua metode (kunci publik yang tidak dapat ditautkan dan tanda tangan cincin yang tidak dapat dilacak), Bob berhasil mencapainya tingkat privasi baru dibandingkan dengan skema Bitcoin asli. Itu mengharuskan dia untuk menyimpan saja satu kunci pribadi (a, b) dan publikasikan (A, B) untuk mulai menerima dan mengirim transaksi anonim. Saat memvalidasi setiap transaksi, Bob juga hanya melakukan dua perkalian kurva elips dan satu penambahan per output untuk memeriksa apakah suatu transaksi miliknya. Untuk setiap miliknya keluaran Bob memulihkan pasangan kunci satu kali (pi, Pi) dan menyimpannya di dompetnya. Masukan apa saja bisa terbukti secara tidak langsung mempunyai pemilik yang sama hanya jika mereka muncul dalam satu transaksi. Di Faktanya, hubungan ini jauh lebih sulit untuk dibangun karena tanda tangan satu kali saja. Dengan tanda tangan cincin, Bob dapat secara efektif menyembunyikan setiap masukan dari masukan orang lain; semua mungkin pembelanja akan sama besarnya, bahkan pemilik sebelumnya (Alice) tidak memiliki informasi lebih dari itu pengamat mana pun. Saat menandatangani transaksinya, Bob menentukan n output luar negeri dengan jumlah yang sama dengan miliknya keluaran, mencampur semuanya tanpa partisipasi pengguna lain. Bob sendiri (dan juga orang lain) tidak mengetahui apakah pembayaran ini telah dibelanjakan: suatu keluaran dapat digunakan dalam ribuan tanda tangan sebagai faktor ambiguitas dan tidak pernah menjadi sasaran persembunyian. Ganda pemeriksaan pembelanjaan terjadi pada fase LNK saat memeriksa kumpulan gambar kunci yang digunakan. Bob dapat memilih sendiri derajat ambiguitasnya: n = 1 berarti probabilitas yang dimilikinya menghabiskan output adalah probabilitas 50%, n = 99 menghasilkan 1%. Ukuran tanda tangan yang dihasilkan bertambah linier sebagai O(n+1), sehingga peningkatan anonimitas memerlukan biaya transaksi tambahan bagi Bob. Dia juga bisa setel n = 0 dan buat tanda tangan cincinnya hanya terdiri dari satu elemen, namun ini akan langsung terjadi mengungkapkan dia sebagai seorang pemboros. 10 VER: Pemverifikasi memeriksa tanda tangan dengan menerapkan transformasi terbalik: ( aku saya = riG + ciPi R′ saya = riHp(Pi) + ciI Akhirnya, pemverifikasi memeriksa apakah nP saya=0 ci ?= Hs(m, L′ 0, . . . , aku' n, R′ 0, . . . , R′ n) mod l Jika persamaan ini benar, pemverifikasi menjalankan algoritma LNK. Jika tidak, pemverifikasi akan menolak tanda tangan. LNK: Pemverifikasi memeriksa apakah saya telah digunakan pada tanda tangan sebelumnya (nilai-nilai ini disimpan di set I). Penggunaan ganda menyiratkan bahwa dua tanda tangan dihasilkan di bawah kunci rahasia yang sama. Arti protokol: dengan menerapkan transformasi L, penandatangan membuktikan bahwa dia mengetahuinya sedemikian rupa sehingga setidaknya satu Pi = xG. Untuk membuat bukti ini tidak dapat diulangi, kami memperkenalkan gambar kuncinya karena saya = xHp(P). Penandatangan menggunakan koefisien yang sama (ri, ci) untuk membuktikan pernyataan yang hampir sama: dia mengetahui x sedemikian rupa sehingga setidaknya satu \(H_p(P_i) = I \cdot x^{-1}\). Jika pemetaan \(x \to I\) adalah injeksi: 1. Tidak ada seorang pun yang dapat memulihkan kunci publik dari gambar kunci dan mengidentifikasi penandatangannya; 2. Penanda tangan tidak boleh membuat dua tanda tangan dengan huruf I berbeda dan x yang sama. Analisis keamanan lengkap disediakan di Lampiran A. 4.5 Transaksi CryptoNote standar Dengan menggabungkan kedua metode (kunci publik yang tidak dapat ditautkan dan tanda tangan cincin yang tidak dapat dilacak), Bob berhasil mencapainya tingkat privasi baru dibandingkan dengan skema Bitcoin asli. Itu mengharuskan dia untuk menyimpan saja satu kunci pribadi (a, b) dan publikasikan (A, B) untuk mulai menerima dan mengirim transaksi anonim. Saat memvalidasi setiap transaksi, Bob juga hanya melakukan dua perkalian kurva elips dan satu penambahan per output untuk memeriksa apakah suatu transaksi miliknya. Untuk setiap miliknya output Bob memulihkan keypair satu kali (pi, Pi) dan stbijih itu di dompetnya. Masukan apa saja bisa terbukti secara tidak langsung mempunyai pemilik yang sama hanya jika mereka muncul dalam satu transaksi. Di Faktanya, hubungan ini jauh lebih sulit untuk dibangun karena tanda tangan satu kali saja. Dengan tanda tangan cincin, Bob dapat secara efektif menyembunyikan setiap masukan dari masukan orang lain; semua mungkin pembelanja akan sama besarnya, bahkan pemilik sebelumnya (Alice) tidak memiliki informasi lebih dari itu pengamat mana pun. Saat menandatangani transaksinya, Bob menentukan n output luar negeri dengan jumlah yang sama dengan miliknya keluaran, mencampur semuanya tanpa partisipasi pengguna lain. Bob sendiri (dan juga orang lain) tidak mengetahui apakah pembayaran ini telah dibelanjakan: suatu keluaran dapat digunakan dalam ribuan tanda tangan sebagai faktor ambiguitas dan tidak pernah menjadi sasaran persembunyian. Ganda pemeriksaan pembelanjaan terjadi pada fase LNK saat memeriksa kumpulan gambar kunci yang digunakan. Bob dapat memilih sendiri derajat ambiguitasnya: n = 1 berarti probabilitas yang dimilikinya menghabiskan output adalah probabilitas 50%, n = 99 menghasilkan 1%. Ukuran tanda tangan yang dihasilkan bertambah linier sebagai O(n+1), sehingga peningkatan anonimitas memerlukan biaya transaksi tambahan bagi Bob. Dia juga bisa setel n = 0 dan buat tanda tangan cincinnya hanya terdiri dari satu elemen, namun ini akan langsung terjadi mengungkapkan dia sebagai seorang pemboros. 10 20 Ini menarik; sebelumnya, kami menyediakan cara bagi penerima, Bob, untuk melakukan semua MASUK transaksi tidak dapat dibatalkan tautannya baik dengan memilih setengah dari kunci pribadinya secara deterministik atau dengan menerbitkan setengah kunci pribadinya sebagai publik. Ini adalah kebijakan yang tidak ada jalan mundurnya. Di sini, kita lihat cara pengirim, Alex, untuk memilih satu transaksi keluar yang dapat ditautkan, namun kenyataannya begini mengungkapkan Alex sebagai pengirim ke seluruh jaringan. Ini BUKAN kebijakan yang tidak bisa mundur. Ini adalah transaksi demi transaksi. Apakah ada kebijakan ketiga? Bisakah penerima, Bob, membuat ID pembayaran unik untuk Alex itu tidak pernah berubah, mungkin menggunakan pertukaran Diffie-Hellman? Jika ada yang memasukkan pembayaran itu ID yang dibundel di suatu tempat dalam transaksinya ke alamat Bob, pasti berasal dari Alex. Dengan cara ini, Alex tidak perlu mengungkapkan dirinya ke seluruh jaringan dengan memilih untuk menghubungkan jaringan tertentu transaksi, namun dia masih dapat mengidentifikasi dirinya kepada orang yang dia kirimi uang. Bukankah ini yang dilakukan Poloniex?
Transaksi Terima kasih masukannya Keluaran0 . . . Keluaran saya . . . Keluaran Gambar kunci Tanda tangan Tanda Tangan Cincin Kunci tujuan Keluaran1 Kunci tujuan Keluaran Transaksi luar negeri Keluaran pengirim Kunci tujuan Pasangan kunci satu kali Satu kali kunci pribadi Saya = xHp(P) hal, x Gambar 7. Pembuatan tanda tangan dering dalam transaksi standar. 5 Bukti Kerja Egalitarian Pada bagian ini kami mengusulkan dan menerapkan algoritma proof-of-work yang baru. Tujuan utama kami adalah untuk menutup kesenjangan antara penambang CPU (mayoritas) dan GPU/FPGA/ASIC (minoritas). Itu benar tepat bahwa beberapa pengguna dapat memiliki keunggulan tertentu dibandingkan yang lain, tetapi investasi mereka harus tumbuh setidaknya secara linear dengan kekuatan. Secara umum, memproduksi perangkat dengan tujuan khusus harus menjadi sesedikit mungkin menguntungkan. 5.1 Pekerjaan terkait Protokol Bitcoin proof-of-work asli menggunakan fungsi penetapan harga intensif CPU SHA-256. Ini terutama terdiri dari operator logika dasar dan hanya mengandalkan kecepatan komputasi prosesor, oleh karena itu sangat cocok untuk implementasi multicore/konveyor. Namun, komputer modern tidak dibatasi oleh jumlah operasi per detik saja, tetapi juga berdasarkan ukuran memori. Meskipun beberapa prosesor bisa jauh lebih cepat dibandingkan prosesor lainnya [8], ukuran memori cenderung bervariasi antar mesin. Fungsi harga terikat memori pertama kali diperkenalkan oleh Abadi et al dan didefinisikan sebagai “fungsi yang waktu komputasinya didominasi oleh waktu yang dihabiskan untuk mengakses memori” [15]. Ide utamanya adalah untuk membangun sebuah algoritma yang mengalokasikan blok data yang besar (“scratchpad”) dalam memori yang dapat diakses secara relatif lambat (misalnya, RAM) dan “mengakses sebuah urutan lokasi yang tidak dapat diprediksi” di dalamnya. Satu blok harus cukup besar untuk dapat diawetkan data lebih menguntungkan daripada menghitung ulang untuk setiap akses. Algoritmenya juga harus mencegah paralelisme internal, maka N thread simultan memerlukan memori N kali lebih banyak sekaligus. Dwork et al [22] menyelidiki dan memformalkan pendekatan ini sehingga mereka menyarankan pendekatan lain varian fungsi penetapan harga: “Mbound”. Satu lagi karya milik F. Coelho [20] yang 11 Transaksi Terima kasih masukannya Keluaran0 . . . Keluaran saya . . . Keluaran Gambar kunci Tanda tangan Tanda Tangan Cincin Kunci tujuan Keluaran1 Kunci tujuan Keluaran Transaksi luar negeri Keluaran pengirim Kunci tujuan Pasangan kunci satu kali Satu kali kunci pribadi Saya = xHp(P) hal, x Gambar 7. Pembuatan tanda tangan dering dalam transaksi standar. 5 Bukti Kerja Egalitarian Di bagian ini kami mengusulkan dan mendasarkan algoritma proof-of-work baru. Tujuan utama kami adalah untuk menutup kesenjangan antara penambang CPU (mayoritas) dan GPU/FPGA/ASIC (minoritas). Itu benar tepat bahwa beberapa pengguna dapat memiliki keunggulan tertentu dibandingkan yang lain, tetapi investasi mereka harus tumbuh setidaknya secara linear dengan kekuatan. Secara umum, memproduksi perangkat dengan tujuan khusus harus menjadi sesedikit mungkin menguntungkan. 5.1 Pekerjaan terkait Protokol Bitcoin proof-of-work asli menggunakan fungsi penetapan harga intensif CPU SHA-256. Ini terutama terdiri dari operator logika dasar dan hanya mengandalkan kecepatan komputasi prosesor, oleh karena itu sangat cocok untuk implementasi multicore/konveyor. Namun, komputer modern tidak dibatasi oleh jumlah operasi per detik saja, tetapi juga berdasarkan ukuran memori. Meskipun beberapa prosesor bisa jauh lebih cepat dibandingkan prosesor lainnya [8], ukuran memori cenderung bervariasi antar mesin. Fungsi harga terikat memori pertama kali diperkenalkan oleh Abadi et al dan didefinisikan sebagai “fungsi yang waktu komputasinya didominasi oleh waktu yang dihabiskan untuk mengakses memori” [15]. Ide utamanya adalah untuk membangun sebuah algoritma yang mengalokasikan blok data yang besar (“scratchpad”) dalam memori yang dapat diakses secara relatif lambat (misalnya, RAM) dan “mengakses sebuah urutan lokasi yang tidak dapat diprediksi” di dalamnya. Satu blok harus cukup besar untuk dapat diawetkan data lebih menguntungkan daripada menghitung ulang untuk setiap akses. Algoritmenya juga harus mencegah paralelisme internal, maka N thread simultan memerlukan memori N kali lebih banyak sekaligus. Dwork et al [22] menyelidiki dan memformalkan pendekatan ini sehingga mereka menyarankan pendekatan lain varian fungsi penetapan harga: “Mbound”. Satu lagi karya milik F. Coelho [20] yang 11 21 Tampaknya ini adalah UTXO kami: jumlah dan kunci tujuan. Jika Alex yang membuat transaksi standar ini dan mengirimkannya ke Bob, maka Alex juga memiliki kunci privatnya untuk masing-masing ini. Saya sangat menyukai diagram ini, karena menjawab beberapa pertanyaan sebelumnya. Masukan Txn terdiri dari satu set keluaran Txn dan kekamu gambar. Kemudian ditandatangani dengan tanda tangan cincin, termasuk semuanya kunci pribadi yang dimiliki Alex untuk semua transaksi luar negeri yang terbungkus dalam kesepakatan itu. Itu Output Txn terdiri dari jumlah dan kunci tujuan. Penerima transaksi dapat, sesuka hati, buat kunci pribadi satu kali seperti yang dijelaskan sebelumnya di makalah untuk dibelanjakan uangnya. Akan menyenangkan untuk mengetahui seberapa cocoknya ini dengan kode sebenarnya... Tidak, Nic van Saberhagen menjelaskan secara longgar beberapa properti dari algoritma bukti kerja, tanpa benar-benar menjelaskan algoritma itu. Algoritma CryptoNight sendiri MEMBUTUHKAN analisis mendalam. Ketika saya membaca ini, saya tergagap. Haruskah investasi tumbuh setidaknya secara linear dengan kekuatan, atau seharusnya investasi tumbuh paling banyak secara linear dengan kekuatan? Dan kemudian saya menyadari; Saya, sebagai penambang, atau investor, biasanya memikirkan "seberapa besar kekuatan yang bisa saya peroleh untuk investasi?" bukan "berapa banyak investasi yang diperlukan untuk jumlah listrik yang tetap?" Tentu saja, nyatakan investasi dengan I dan daya dengan P. Jika I(P) adalah investasi sebagai fungsi daya dan P(I) adalah kekuatan sebagai fungsi investasi, keduanya akan berbanding terbalik satu sama lain (di mana pun invers bisa ada). Dan jika I(P) lebih cepat dari linier maka P(I) lebih lambat dari linier. Oleh karena itu, akan ada penurunan tingkat pengembalian bagi investor. Dengan kata lain, apa yang ingin penulis katakan di sini adalah: "Tentu saja, jika Anda berinvestasi lebih banyak, Anda akan mendapatkan lebih banyak kekuatan. Tapi kita harus mencoba membuat tingkat pengembaliannya lebih rendah." Investasi CPU pada akhirnya akan terbatas secara sub-linear; pertanyaannya adalah apakah penulisnya telah merancang algoritma POW yang akan memaksa ASIC untuk juga melakukan hal ini. Haruskah “mata uang masa depan” hipotetis selalu ditambang dengan sumber daya yang paling lambat/terbatas? Makalah yang ditulis oleh Abadi dkk (yang ditulis oleh beberapa insinyur Google dan Microsoft) adalah, pada dasarnya, menggunakan fakta bahwa selama beberapa tahun terakhir ukuran memori menjadi jauh lebih kecil variansi antar mesin dibandingkan kecepatan prosesor, dan dengan rasio investasi-daya yang lebih dari linier. Dalam beberapa tahun, hal ini mungkin harus dikaji ulang! Semuanya adalah perlombaan senjata... Membangun fungsi hash sulit; membangun fungsi hash yang memenuhi batasan ini tampaknya lebih sulit. Tulisan ini sepertinya tidak memiliki penjelasan yang sebenarnya hashing algoritma CryptoNight. Saya pikir ini adalah implementasi SHA-3 yang berbasis memori di postingan forum tapi saya tidak tahu... dan itulah intinya. Itu harus dijelaskan.
mengusulkan solusi paling efektif: “Hokkaido”. Sepengetahuan kami, karya terakhir yang didasarkan pada gagasan pencarian pseudo-acak dalam array besar adalah algoritma yang dikenal sebagai "scrypt" oleh C. Percival [32]. Berbeda dengan fungsi sebelumnya yang menjadi fokusnya derivasi kunci, dan bukan sistem proof-of-work. Meskipun demikian, scrypt dapat memenuhi tujuan kita: ini berfungsi dengan baik sebagai fungsi penetapan harga dalam masalah konversi parsial hash seperti SHA-256 di Bitcoin. Saat ini scrypt telah diterapkan di Litecoin [14] dan beberapa fork Bitcoin lainnya. Namun, implementasinya tidak terlalu terikat pada memori: rasio “waktu akses memori / keseluruhan time” tidak cukup besar karena setiap instance hanya menggunakan 128 KB. Ini mengizinkan penambang GPU menjadi kira-kira 10 kali lebih efektif dan terus meninggalkan kemungkinan penciptaan secara relatif perangkat penambangan yang murah namun sangat efisien. Selain itu, konstruksi scrypt itu sendiri memungkinkan pertukaran linier antara ukuran memori dan Kecepatan CPU karena fakta bahwa setiap blok di scratchpad hanya diturunkan dari blok sebelumnya. Misalnya, Anda dapat menyimpan setiap blok kedua dan menghitung ulang blok lainnya dengan cara yang malas, yaitu saja ketika hal itu menjadi perlu. Indeks pseudo-acak diasumsikan terdistribusi secara seragam, maka nilai yang diharapkan dari perhitungan ulang blok tambahan adalah 1 \(2 \cdot N\), dimana N adalah nomornya dari iterasi. Waktu komputasi keseluruhan bertambah kurang dari setengahnya karena ada juga operasi yang tidak bergantung pada waktu (waktu konstan) seperti menyiapkan alas gores dan hashmelanjutkan setiap iterasi. Menghemat 2/3 memori membutuhkan biaya 1 3 \(\cdot\) T+1 3 \(\cdot\) \(2 \cdot N\) = N perhitungan ulang tambahan; 9/10 menghasilkan 1 10 \(\cdot\) T+. . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Mudah untuk menunjukkan bahwa menyimpan hanya 1 s dari semua blok meningkatkan waktu kurang dari faktor s−1 2. Hal ini pada gilirannya menyiratkan bahwa mesin dengan CPU 200 kali lebih cepat dibandingkan chip modern yang hanya mampu menyimpan 320 byte scratchpad. 5.2 Algoritma yang diusulkan Kami mengusulkan algoritma terikat memori baru untuk fungsi penetapan harga proof-of-work. Itu bergantung pada akses acak ke memori lambat dan menekankan ketergantungan latensi. Berbeda dengan scrypt every blok baru (panjang 64 byte) bergantung pada semua blok sebelumnya. Hasilnya bersifat hipotetis "penghemat memori" akan meningkatkan kecepatan penghitungannya secara eksponensial. Algoritme kami memerlukan sekitar 2 Mb per instance karena alasan berikut: 1. Cocok dengan cache L3 (per inti) prosesor modern, yang seharusnya menjadi mainstream dalam beberapa tahun; 2. Memori internal satu megabyte adalah ukuran yang hampir tidak dapat diterima untuk pipeline ASIC modern; 3. GPU dapat menjalankan ratusan instance secara bersamaan, namun dibatasi dalam hal lain: Memori GDDR5 lebih lambat dari cache CPU L3 dan luar biasa karena bandwidthnya kecepatan akses acak. 4. Perluasan scratchpad secara signifikan memerlukan peningkatan iterasi, yang mana dalam hal ini giliran menyiratkan peningkatan waktu secara keseluruhan. Panggilan “berat” di jaringan p2p yang tidak dapat dipercaya dapat menyebabkan kerentanan serius, karena node wajib memeriksa proof-of-work setiap blok baru. Jika sebuah node menghabiskan banyak waktu pada setiap evaluasi hash, maka node tersebut dapat dengan mudah DDoS oleh banjir objek palsu dengan data kerja sewenang-wenang (nilainonce). 12 mengusulkan solusi paling efektif: “Hokkaido”. Sepengetahuan kami, karya terakhir yang didasarkan pada gagasan pencarian pseudo-acak dalam array besar adalah algoritma yang dikenal sebagai "scrypt" oleh C. Percival [32]. Berbeda dengan fungsi sebelumnya yang menjadi fokusnya derivasi kunci, dan bukan sistem proof-of-work. Meskipun demikian, scrypt dapat memenuhi tujuan kita: ini berfungsi dengan baik sebagai fungsi penetapan harga dalam masalah konversi parsial hash seperti SHA-256 di Bitcoin. Saat ini scrypt telah diterapkan di Litecoin [14] dan beberapa fork Bitcoin lainnya. Namun, implementasinya tidak terlalu terikat pada memori: rasio “waktu akses memori / keseluruhan time” tidak cukup besar karena setiap instance hanya menggunakan 128 KB. Ini mengizinkan penambang GPU menjadi kira-kira 10 kali lebih efektif dan terus meninggalkan kemungkinan penciptaan secara relatif perangkat penambangan yang murah namun sangat efisien. Selain itu, konstruksi scrypt itu sendiri memungkinkan pertukaran linier antara ukuran memori dan Kecepatan CPU karena fakta bahwa setiap blok di scratchpad hanya diturunkan dari blok sebelumnya. Misalnya, Anda dapat menyimpan setiap blok kedua dan menghitung ulang blok lainnya dengan cara yang malas, yaitu saja ketika hal itu menjadi perlu. Indeks pseudo-acak diasumsikan terdistribusi secara seragam, maka nilai yang diharapkan dari perhitungan ulang blok tambahan adalah 1 \(2 \cdot N\), dimanaN adalah nomornya dari iterasi. Waktu komputasi keseluruhan bertambah kurang dari setengahnya karena ada juga operasi yang tidak bergantung pada waktu (waktu konstan) seperti menyiapkan alas gores dan hashmelanjutkan setiap iterasi. Menghemat 2/3 memori membutuhkan biaya 1 3 \(\cdot\) T+1 3 \(\cdot\) \(2 \cdot N\) = N perhitungan ulang tambahan; 9/10 menghasilkan 1 10 \(\cdot\) T+. . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Mudah untuk menunjukkan bahwa menyimpan hanya 1 s dari semua blok meningkatkan waktu kurang dari faktor s−1 2. Hal ini pada gilirannya menyiratkan bahwa mesin dengan CPU 200 kali lebih cepat dibandingkan chip modern yang hanya mampu menyimpan 320 byte scratchpad. 5.2 Algoritma yang diusulkan Kami mengusulkan algoritma terikat memori baru untuk fungsi penetapan harga proof-of-work. Itu bergantung pada akses acak ke memori lambat dan menekankan ketergantungan latensi. Berbeda dengan scrypt every blok baru (panjang 64 byte) bergantung pada semua blok sebelumnya. Hasilnya bersifat hipotetis "penghemat memori" akan meningkatkan kecepatan penghitungannya secara eksponensial. Algoritme kami memerlukan sekitar 2 Mb per instance karena alasan berikut: 1. Cocok dengan cache L3 (per inti) prosesor modern, yang seharusnya menjadi mainstream dalam beberapa tahun; 2. Memori internal satu megabyte adalah ukuran yang hampir tidak dapat diterima untuk pipeline ASIC modern; 3. GPU dapat menjalankan ratusan instance secara bersamaan, namun dibatasi dalam hal lain: Memori GDDR5 lebih lambat dari cache CPU L3 dan luar biasa karena bandwidthnya kecepatan akses acak. 4. Perluasan scratchpad secara signifikan memerlukan peningkatan iterasi, yang mana dalam hal ini giliran menyiratkan peningkatan waktu secara keseluruhan. Panggilan “berat” di jaringan p2p yang tidak dapat dipercaya dapat menyebabkan kerentanan serius, karena node wajib memeriksa proof-of-work setiap blok baru. Jika sebuah node menghabiskan banyak waktu pada setiap evaluasi hash, maka node tersebut dapat dengan mudah DDoS oleh banjir objek palsu dengan data kerja sewenang-wenang (nilainonce). 12 22 Sudahlah, itu koin scrypt? Dimana algoritmanya? Yang saya lihat hanyalah sebuah iklan. Di sinilah Cryptonote, jika algoritma PoW mereka bermanfaat, akan benar-benar bersinar. Bukan itu sungguh SHA-256, sebenarnya bukan scrypt. Ini baru, terikat memori, dan non-rekursif.
6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung relasi aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berurusan dengan pertukaran antara menyeimbangkan biaya dan keuntungan dari biaya dan menetapkan biayanya sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung hubungan aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berkaitan dengan pertukaran antara penyeimbangan the biaya dan keuntungan dari biaya dan menetapkan sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 23 Unit atom. Saya suka itu. Apakah ini setara dengan Satoshi? Jika demikian, berarti akan ada 185 miliar cryptonote. Saya tahu ini pada akhirnya harus diubah dalam beberapa halaman, atau mungkin ada kesalahan ketik? Jika hadiah dasarnya adalah "semua koin yang tersisa" maka hanya satu blok yang cukup untuk mendapatkan semua koin. Instamin. Di sisi lain, jika hal ini seharusnya proporsional dengan perbedaan waktu antara sekarang dan tanggal penghentian produksi koin? Itu akan terjadi masuk akal. Juga, di duniaku, dua tanda lebih besar dari seperti ini berarti "lebih besar dari". Apakah penulisnya mungkin maksudnya lain? Jika penyesuaian terhadap kesulitan terjadi di setiap blok maka penyerang dapat memiliki lahan yang sangat besar mesin menambang dan mematikan dalam interval waktu yang dipilih dengan cermat. Hal ini dapat menyebabkan ledakan yang kacau (atau jatuh ke titik nol) pada tingkat kesulitan, jika formula penyesuaian tingkat kesulitan tidak diredam dengan tepat. Tidak diragukan lagi bahwa metode Bitcoin tidak cocok untuk penghitungan ulang cepat, tetapi gagasan tentang inersia dalam sistem ini perlu dibuktikan, bukan dianggap remeh. Selanjutnya osilasi dalam kesulitan jaringan belum tentu menjadi masalah kecuali jika hal itu mengakibatkan fluktuasi yang nyata persediaan koin - dan perubahan kesulitan yang sangat cepat dapat menyebabkan "koreksi berlebihan". Waktu yang dihabiskan, terutama dalam rentang waktu yang singkat seperti beberapa menit, akan sebanding dengan “total jumlah blok yang dibuat di jaringan." Konstanta proporsionalitas akan tumbuh dengan sendirinya seiring waktu, mungkin secara eksponensial jika CN lepas landas. Mungkin merupakan ide yang lebih baik untuk menyesuaikan kesulitan untuk menjaga "total blok yang dibuat pada jaringan sejak blok terakhir ditambahkan ke rantai utama" dalam beberapa nilai konstan, atau dengan variasi terbatas atau semacamnya. Jika algoritma adaptif yaitu komputasi mudah diimplementasikan dapat ditentukan, ini tampaknya menyelesaikan masalah. Namun, jika kita menggunakan metode itu, seseorang yang memiliki lahan pertambangan besar bisa saja menutup lahan pertaniannya selama beberapa jam, dan hidupkan kembali. Untuk beberapa blok pertama, lahan pertanian tersebut akan berhasil bank. Jadi sebenarnya cara ini akan memunculkan satu hal menarik: penambangan menjadi (rata-rata) a kalah tanpa ROI, terutama karena semakin banyak orang yang menggunakan jaringan. Jika penambangannya sulit jaringan yang dilacak dengan sangat dekat hashrate, entah bagaimana saya ragu orang akan menambang sebanyak mereka saat ini lakukan. Atau, di sisi lain, alih-alih menjaga lahan pertambangan mereka tetap beroperasi 24/7, mereka malah mengubahnya menyala selama 6 jam, mati selama 2 jam, hidup selama 6 jam, mati selama 2 jam, atau semacamnya. Beralih saja ke koin lain selama beberapa jam, tunggu hingga tingkat kesulitannya mereda, lalu lanjutkan lagi untuk mendapatkan tambahan tersebut blok profitabilitas saat jaringan beradaptasi. Dan tahukah Anda? Ini sebenarnya mungkin salah satu skenario penambangan terbaik yang pernah saya pikirkan... Ini bisa bersifat melingkar, tetapi jika waktu pembuatan blok rata-rata sekitar satu menit, bisakah kita melakukannya? gunakan jumlah blok sebagai proksi untuk "waktu yang dihabiskan?"
6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung hubungan aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berurusan dengan pertukaran antara menyeimbangkan biaya dan keuntungan dari biaya dan menetapkan biayanya sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung hubungan aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berkaitan dengan pertukaran antara penyeimbangan the biaya dan keuntungan dari biaya dan menetapkan sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 24 Oke, jadi kita punya blockchain, dan setiap blok memiliki stempel waktu SELAIN sekedar menjadi dipesan. Ini jelas dimasukkan hanya untuk kesulitan penyesuaian, karena ada stempel waktunya sangat tidak dapat diandalkan, seperti yang disebutkan. Apakah kita diperbolehkan memiliki stempel waktu yang bertentangan dalam rantai? Jika Blok A berada sebelum Blok B dalam rantai tersebut, dan semuanya konsisten dalam hal keuangan, tapi Blok A sepertinya dibuat setelah Blok B? Karena, mungkin, ada yang memilikinya sebagian besar jaringan? Apakah itu oke? Mungkin karena keuangannya tidak salah. Oke, jadi saya benci kesewenang-wenangan ini "hanya 80% blok yang sah untuk blockchain utama" pendekatan. Itu dimaksudkan untuk mencegah pembohong mengubah stempel waktunya? Tapi sekarang, ia menambahkan insentif bagi semua orang untuk berbohong tentang stempel waktunya dan hanya memilih median. Silakan jelaskan. Artinya “untuk blok ini, hanya mencakup transaksi yang menyertakan biaya lebih besar dari p%, lebih disukai dengan biaya lebih besar dari 2p%" atau sesuatu seperti itu? Apa yang mereka maksud dengan palsu? Jika transaksi tersebut konsisten dengan riwayat masa lalu blockchain, dan transaksi tersebut mencakup biaya yang memuaskan para penambang, apakah itu tidak cukup? Nah, tidak, belum tentu. Jika tidak ada ukuran blok maksimum, tidak ada yang bisa menahan pengguna jahat dari sekadar mengunggah sejumlah besar transaksi ke dirinya sendiri sekaligus hanya untuk memperlambat jaringan. Aturan inti untuk ukuran blok maksimum mencegah orang membuang sampah dalam jumlah besar data di blockchain sekaligus hanya untuk memperlambat segalanya. Namun aturan seperti itu tentu saja harus dilakukan bersikap adaptif - selama musim Natal, misalnya, kita dapat memperkirakan lalu lintas akan melonjak, dan ukuran blok menjadi sangat besar, dan segera setelah itu, ukuran blok kemudian turun lagi. Jadi kita memerlukan a) semacam batasan adaptif atau b) batasan yang cukup besar sehingga 99%. puncak Natal yang masuk akal tidak akan merusak batasnya. Tentu saja, yang kedua itu tidak mungkin dilakukan perkiraan - siapa yang tahu apakah suatu mata uang akan berhasil? Lebih baik membuatnya adaptif dan tidak khawatir tentang hal itu. Tapi kemudian kita mempunyai masalah teori kontrol: bagaimana membuat ini adaptif tanpanya kerentanan terhadap serangan atau osilasi liar & gila? Perhatikan bahwa metode adaptif tidak menghentikan pengguna jahat untuk mengumpulkan sejumlah kecil uang data sampah dari waktu ke waktu di blockchain menyebabkan pembengkakan jangka panjang. Ini adalah masalah yang berbeda semuanya dan koin cryptonote memiliki masalah serius.
6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung hubungan aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berurusan dengan pertukaran antara menyeimbangkan biaya dan keuntungan dari biaya dan menetapkan biayanya sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 6 Keuntungan lebih lanjut 6.1 Emisi halus Batas atas jumlah keseluruhan koin digital CryptoNote adalah: MSupply = 264 −1 satuan atom. Ini adalah batasan alami yang hanya didasarkan pada batasan implementasi, bukan berdasarkan intuisi seperti “N koin seharusnya cukup untuk siapa pun”. Untuk menjamin kelancaran proses emisi kami menggunakan formula blok berikut hadiah: BaseReward = (MSupply −A) ≫18, di mana A adalah jumlah koin yang dihasilkan sebelumnya. 6.2 Parameter yang dapat disesuaikan 6.2.1 Kesulitan CryptoNote berisi algoritma penargetan yang mengubah kesulitan setiap blok. Ini mengurangi waktu reaksi sistem ketika laju hash jaringan meningkat atau menyusut secara intensif, mempertahankan tingkat blok yang konstan. Metode Bitcoin asli menghitung relasi aktual dan menargetkan rentang waktu antara blok 2016 terakhir dan menggunakannya sebagai pengali untuk blok saat ini kesulitan. Jelas ini tidak cocok untuk perhitungan ulang yang cepat (karena inersia yang besar) dan menghasilkan osilasi. Ide umum di balik algoritme kami adalah menjumlahkan semua pekerjaan yang diselesaikan oleh node dan membaginya dengan waktu yang telah mereka habiskan. Ukuran pekerjaan adalah nilai kesulitan yang sesuai di setiap blok. Namun karena stempel waktu yang tidak akurat dan tidak dapat dipercaya, kami tidak dapat menentukan waktu yang tepat interval waktu antar blok. Seorang pengguna dapat menggeser stempel waktunya ke masa depan dan waktu berikutnya intervalnya mungkin sangat kecil atau bahkan negatif. Agaknya akan ada beberapa insiden semacam ini, jadi kita tinggal mengurutkan stempel waktu dan menghilangkan outliernya (yaitu 20%). Kisaran nilai sisanya adalah waktu yang dihabiskan untuk 80% blok terkait. 6.2.2 Batasan ukuran Pengguna membayar untuk menyimpan blockchain dan berhak memilih ukurannya. Setiap penambang berkaitan dengan pertukaran antara penyeimbangan the biaya dan keuntungan dari biaya dan menetapkan sendiri “batas lunak” untuk membuat blok. Aturan inti untuk ukuran blok maksimum juga diperlukan mencegah blockchain dibanjiri transaksi palsu, namun nilai ini seharusnya tidak dikodekan secara keras. Misalkan MN adalah nilai median dari N ukuran blok terakhir. Kemudian “batas keras” untuk ukurannya menerima blok adalah \(2 \cdot M_N\). Ini mencegah blockchain membengkak tetapi masih memungkinkan batasnya perlahan tumbuh seiring waktu jika perlu. Ukuran transaksi tidak perlu dibatasi secara eksplisit. Itu dibatasi oleh ukuran sebuah balok; dan jika seseorang ingin membuat transaksi besar dengan ratusan input/output (atau dengan tingkat ambiguitas yang tinggi dalam tanda tangan cincin), ia dapat melakukannya dengan membayar biaya yang cukup. 6.2.3 Hukuman kelebihan ukuran Seorang penambang masih memiliki kemampuan untuk mengisi satu blok penuh dengan transaksi tanpa biaya miliknya hingga maksimum ukuran \(2 \cdot M_b\). Meskipun hanya mayoritas penambang yang dapat menggeser nilai median, masih ada a 13 25 Dengan mengubah skala waktu sehingga satu satuan waktu menjadi N blok, ukuran rata-rata blok, secara teoritis, masih dapat tumbuh secara eksponensial secara proporsional hingga 2ˆt. Di sisi lain, batasan yang lebih umum di blok berikutnya adalah M_nf(M_n) untuk beberapa fungsi f. Sifat f apa yang akan dimilikinya kita memilih untuk menjamin "pertumbuhan yang wajar" dalam ukuran blok? Kemajuan dari ukuran blok (setelah waktu penskalaan ulang) akan menjadi seperti ini: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... Dan tujuannya di sini adalah untuk memilih f sehingga barisan ini tumbuh tidak lebih cepat dari, katakanlah, secara linear, atau mungkin bahkan sebagai Log(t). Tentu saja, jika f(M_n) = a untuk suatu konstanta a, barisan ini adalah sebenarnya M_n aM_n aˆ2M_n aˆ3M_n ... Dan, tentu saja, satu-satunya cara untuk membatasi pertumbuhan linear maksimal adalah dengan memilih a=1. Tentu saja hal ini tidak mungkin dilakukan. Itu tidak memungkinkan pertumbuhan sama sekali. Sebaliknya, jika f(M_n) adalah fungsi non-konstanta, maka situasinya jauh lebih buruk. rumit dan memungkinkan solusi yang elegan. Saya akan memikirkan hal ini sebentar. Biaya ini harus cukup besar untuk mendiskon penalti kelebihan ukuran dari bagian berikutnya. Kenapa pengguna umum diasumsikan laki-laki ya? Hah?
kemungkinan untuk mengasapi blockchain dan menghasilkan beban tambahan pada node. Untuk mencegah peserta jahat dari pembuatan blok besar kami memperkenalkan fungsi penalti: Hadiah Baru = Hadiah Dasar \(\cdot\) Ukuran Blk jamak −1 2 Aturan ini diterapkan hanya ketika BlkSize lebih besar dari ukuran blok bebas minimal yang seharusnya mendekati maksimal (10kb, \(M_N \cdot 110\%\)). Penambang diizinkan membuat blok dengan “ukuran biasa” dan genap melampauinya dengan keuntungan ketika biaya keseluruhan melebihi denda. Namun biayanya kemungkinan tidak akan meningkat kuadratik berbeda dengan nilai penalti sehingga akan terjadi keseimbangan. 6.3 Skrip transaksi CryptoNote memiliki subsistem skrip yang sangat minimalis. Pengirim menentukan ekspresi Φ = f (x1, x2, . . . , xn), dimana n adalah jumlah kunci publik tujuan {Pi}n saya=1. Hanya lima biner operator yang didukung: min, max, sum, mul dan cmp. Ketika penerima membelanjakan pembayaran ini, dia menghasilkan \(0 \leq k \leq n\) tanda tangan dan meneruskannya ke input transaksi. Proses verifikasi cukup evaluasi Φ dengan xi = 1 untuk memeriksa tanda tangan yang valid untuk kunci publik Pi, dan xi = 0. Verifier menerima bukti iffΦ > 0. Meskipun sederhana, pendekatan ini mencakup setiap kasus yang mungkin terjadi: • Tanda tangan Multi-/Ambang Batas. Untuk multi-tanda tangan “M-out-of-N” gaya Bitcoin (yaitu penerima harus memberikan setidaknya \(0 \leq M \leq N\) tanda tangan yang sah) Φ = x1+x2+. . .+xN \(\geq M\) (untuk kejelasan kami menggunakan notasi aljabar umum). Tanda tangan ambang batas tertimbang (beberapa kunci mungkin lebih penting dari yang lain) dapat dinyatakan sebagai Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Dan skenario di mana kunci utama berhubungan dengan Φ = maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Mudah untuk menunjukkan bahwa kasus secanggih apa pun bisa terjadi dinyatakan dengan operator-operator ini, yaitu mereka membentuk basis. • Perlindungan kata sandi. Kepemilikan kata sandi rahasia setara dengan pengetahuan kunci pribadi, yang secara deterministik diturunkan dari kata sandi: k = KDF(s). Oleh karena itu, penerima dapat membuktikan bahwa dia mengetahui kata sandinya dengan memberikan tanda tangan lain di bawah kunci k. Pengirim cukup menambahkan kunci publik yang sesuai ke keluarannya sendiri. Perhatikan bahwa ini metode ini jauh lebih aman daripada “teka-teki transaksi” yang digunakan di Bitcoin [13], di mana kata sandi secara eksplisit diteruskan dalam input. • Kasus-kasus yang merosot. Φ = 1 berarti siapa pun dapat membelanjakan uangnya; Φ = 0 menandai output sebagai tidak dapat dibelanjakan selamanya. Jika skrip keluaran yang digabungkan dengan kunci publik terlalu besar untuk pengirim, dia dapat menggunakan tipe keluaran khusus, yang menunjukkan bahwa penerima akan memasukkan data ini ke dalam masukannya sedangkan pengirim hanya memberikan hash saja. Pendekatan ini mirip dengan “bayar-ke-hash” Bitcoin fitur, tapi alih-alih menambahkan perintah skrip baru, kami menangani kasus ini di struktur data tingkat. 7 Kesimpulan Kami telah menyelidiki kelemahan utama di Bitcoin dan mengusulkan beberapa kemungkinan solusi. Fitur-fitur bermanfaat ini dan pengembangan berkelanjutan kami menjadikan sistem uang elektronik baru CryptoNote saingan serius bagi Bitcoin, mengungguli semua cabangnya. 14 kemungkinan untuk mengasapi blockchain dan menghasilkan beban tambahan pada node. Untuk mencegah peserta jahat dari pembuatan blok besar kami memperkenalkan fungsi penalti: Hadiah Baru = Hadiah Dasar \(\cdot\) Ukuran Blk jamak −1 2 Aturan ini diterapkan hanya ketika BlkSize lebih besar dari ukuran blok bebas minimal yang seharusnya mendekati maksimal (10kb, \(M_N \cdot 110\%\)). Penambang diizinkan membuat blok dengan “ukuran biasa” dan genap melampauinya dengan keuntungan ketika biaya keseluruhan melebihi denda. Namun biayanya kemungkinan tidak akan meningkat kuadratik berbeda dengan nilai penalti sehingga akan terjadi keseimbangan. 6.3 Skrip transaksi CryptoNote memiliki subsistem skrip yang sangat minimalis. Pengirim menentukan ekspresi Φ = f (x1, x2, . . . , xn), dimana n adalah jumlah kunci publik tujuan {Pi}n saya=1. Hanya lima biner operator yang didukung: min, max, sum, mul dan cmp. Ketika penerima membelanjakan pembayaran ini, dia menghasilkan \(0 \leq k \leq n\) tanda tangan dan meneruskannya ke input transaksi. Proses verifikasi cukup evaluasi Φ dengan xi = 1 untuk memeriksa tanda tangan yang valid untuk kunci publik Pi, dan xi = 0. Verifier menerima bukti iffΦ > 0. Meskipun sederhana, pendekatan ini mencakup setiap kasus yang mungkin terjadi: • Tanda tangan Multi-/Ambang Batas. Untuk multi-tanda tangan “M-out-of-N” gaya Bitcoin (yaitu penerima harus memberikan setidaknya \(0 \leq M \leq N\) tanda tangan yang sah) Φ = x1+x2+. . .+xN \(\geq M\) (untuk kejelasan kami menggunakan notasi aljabar umum). Tanda tangan ambang batas tertimbang (beberapa kunci mungkin lebih penting dari yang lain) dapat dinyatakan sebagai Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Dan skenarioio dimana kunci utama berhubungan dengan Φ = maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Mudah untuk menunjukkan bahwa kasus secanggih apa pun bisa terjadi dinyatakan dengan operator-operator ini, yaitu mereka membentuk basis. • Perlindungan kata sandi. Kepemilikan kata sandi rahasia setara dengan pengetahuan kunci pribadi, yang secara deterministik diturunkan dari kata sandi: k = KDF(s). Oleh karena itu, penerima dapat membuktikan bahwa dia mengetahui kata sandinya dengan memberikan tanda tangan lain di bawah kunci k. Pengirim cukup menambahkan kunci publik yang sesuai ke keluarannya sendiri. Perhatikan bahwa ini metode ini jauh lebih aman daripada “teka-teki transaksi” yang digunakan di Bitcoin [13], di mana kata sandi secara eksplisit diteruskan dalam input. • Kasus-kasus yang merosot. Φ = 1 berarti siapa pun dapat membelanjakan uangnya; Φ = 0 menandai output sebagai tidak dapat dibelanjakan selamanya. Jika skrip keluaran yang digabungkan dengan kunci publik terlalu besar untuk pengirim, dia dapat menggunakan tipe keluaran khusus, yang menunjukkan bahwa penerima akan memasukkan data ini ke dalam masukannya sedangkan pengirim hanya memberikan hash saja. Pendekatan ini mirip dengan “bayar-untuk-hash” dari Bitcoin fitur, tapi alih-alih menambahkan perintah skrip baru, kami menangani kasus ini di struktur data tingkat. 7 Kesimpulan Kami telah menyelidiki kelemahan utama di Bitcoin dan mengusulkan beberapa kemungkinan solusi. Fitur-fitur bermanfaat ini dan pengembangan berkelanjutan kami menjadikan sistem uang elektronik baru CryptoNote saingan serius bagi Bitcoin, mengungguli semua cabangnya. 14 26 Ini mungkin tidak diperlukan jika kita dapat menemukan cara untuk membatasi ukuran blok dari waktu ke waktu... Ini juga tidak mungkin benar. Mereka hanya menyetel "NewReward" ke parabola yang menghadap ke atas ukuran blok adalah variabel independen. Jadi pahala baru meledak hingga tak terhingga. Jika, di sisi lain di sisi lain, hadiah barunya adalah Maks(0,Hadiah Dasar(1-(BlkSize/Mn - 1)ˆ2)), lalu hadiah baru akan menjadi parabola menghadap ke bawah dengan puncak pada ukuran blok = Mn, dan dengan titik potong pada Ukuran Blok = 0 dan Ukuran Blok = 2Mn. Dan sepertinya itulah yang ingin mereka gambarkan. Namun, hal ini tidak terjadi
Takip Edilemeyen İşlemler
Bu bölümde, hem izlenemezliği hem de koşulları karşılayan tamamen anonim işlemlere yönelik bir plan öneriyoruz.
ve bağlanamazlık koşulları. Çözümümüzün önemli bir özelliği özerkliğidir: gönderen
işlemlerini gerçekleştirmek için diğer kullanıcılarla veya güvenilir bir üçüncü tarafla işbirliği yapması gerekmemektedir;
dolayısıyla her katılımcı bağımsız olarak bir kapak trafiği üretir.
4.1
Literatür taraması
Planımız grup imzası adı verilen kriptografik temele dayanıyor. İlk kez sunulan
D. Chaum ve E. van Heyst [19], bir kullanıcının grup adına mesajını imzalamasına olanak tanır.
Kullanıcı mesajı imzaladıktan sonra (doğrulama amacıyla) kendi geneline ait değil
1Buna "yumuşak limit" denir; yeni bloklar oluşturmak için referans istemci kısıtlaması. Zor maksimum
olası blok boyutu 1 MB'tı
4
Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor.
sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir.
Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur.
boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde
2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı.
Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi
ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da
bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi.
yapay olarak getirilmiş blok boyutu sınırı yoktur.
Sabitler ayrıca bir tür merkezileştirme noktası görevi görür.
Eşler arası doğasına rağmen
Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor
küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir
ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu
hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve
geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor
Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır.
2.5
Hacimli komut dosyaları
Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir
karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve
bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil)
Bitcoin'deki en popüler işlem için şuna benzer:
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 8 Yüzük imzası şu şekilde çalışır: Alex, işvereniyle ilgili bir mesajı WikiLeaks'e sızdırmak ister. Şirketindeki her çalışanın özel/genel anahtar çifti (Ri, Ui) vardır. O besteliyor girişi mesajı, m, özel anahtarı, Ri ve HERKE\(S'\)inki olarak ayarlanan imzası ortak anahtarlar, (Ui;i=1...n). Herkes (herhangi bir özel anahtar bilmeden) bunu kolayca doğrulayabilir İmzayı oluşturmak için bir çift (Rj, Uj) kullanılmış olmalı... çalışan biri Alex'in işvereni için... ama hangisi olabileceğini anlamak aslında rastgele bir tahmin. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Burada açıklanan bağlanabilir halka imzasının "bağlanamaz" ifadesinin tam tersi olduğuna dikkat edin. yukarıda açıklanmıştır. Burada iki mesajı yakalıyoruz ve aynı olup olmadığını belirleyebiliyoruz. taraf gönderdi, ancak yine de o tarafın kim olduğunu belirleyemeyiz.
Cryptonote'u oluşturmak için kullanılan "bağlanamaz" tanımı, Cryptonote'u oluşturup oluşturmadığımızı belirleyemeyeceğimiz anlamına gelir. onları aynı taraf alıyor. Dolayısıyla burada gerçekte olan DÖRT şeyin devam etmesidir. Bir sistem bağlanabilir veya gönderenin olup olmadığını belirlemenin mümkün olup olmadığına bağlı olarak bağlantı kurulamaz. iki mesaj aynıdır (bunun anonimliğin iptal edilmesini gerektirip gerektirmediğine bakılmaksızın). Ve bir sistemin mümkün olup olmamasına bağlı olarak bağlantısız veya bağlantısız olabilir. iki mesajın alıcısının aynı olup olmadığına karar verin (olup olmadığına bakılmaksızın) bu, anonimliğin iptal edilmesini gerektirir). Lütfen bu korkunç terminoloji için beni suçlamayın. Grafik teorisyenleri muhtemelen memnun oldum. Bazılarınız "alıcıya bağlanabilirlik" yerine "göndere bağlanabilirlik" konusunda daha rahat olabilir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bunu okuduğumda bu aptalca bir özellik gibi geldi. Daha sonra bunun bir özellik olabileceğini okudum. elektronik oylama ve bu mantıklı görünüyordu. Bu açıdan bakınca çok hoş. Ama ben izlenebilir halka imzaların bilinçli olarak uygulanması konusunda tam olarak emin değilim. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nın ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 9 Tanrım, bu teknik incelemenin yazarı bunu kesinlikle daha iyi ifade edebilirdi! Diyelim ki bir Çalışanların sahibi olduğu şirket, belirli yeni ürünleri satın alıp almama konusunda oylama yapmak istiyor varlıklardır ve Alex ve Brenda'nın ikisi de çalışandır. Şirket her çalışana bir "Öneri A'ya evet oyu veriyorum!" gibi bir mesaj "sorun" meta bilgisine sahip olan [PROP A] ve eğer teklifi destekliyorlarsa izlenebilir bir yüzük imzasıyla imzalamalarını istiyor. Dürüst olmayan bir çalışan, geleneksel zil sesi imzasını kullanarak mesajı birden çok kez imzalayabilir. muhtemelen farklı nonce'lerle, istedikleri kadar oy verebilmek için. diğer tarafta izlenebilir bir halka imza şemasında Alex oy kullanmaya gidecek ve onun özel anahtarı [PROP A] sorunu üzerinde kullanıldı. Alex "Ben, Brenda, onaylıyorum" gibi bir mesajı imzalamaya çalışırsa A önermesi!" Brenda'yı "çerçevelemek" ve çifte oylama yapmak için, bu yeni mesaj aynı zamanda sorunu da çözecek [PROP A]. Alex'in özel anahtarı zaten [PROP A] sorununu tetiklediği için Alex'in kimliği dolandırıcılık olduğu hemen ortaya çıkacaktır. Kabul et ki bu oldukça havalı! Kriptografi oy eşitliğini zorunlu kıldı. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bu makale ilginçtir, esas olarak geçici bir halka imzası oluşturur, ancak bu imzalardan herhangi birini içermez. diğer katılımcının onayı. İmzanın yapısı farklı olabilir; kazmadım derin ve güvenli olup olmadığını görmedim. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Geçici grup imzaları şunlardır: grubu olmayan grup imzaları olan halka imzalar yöneticiler, merkezileştirme yok, ancak geçici bir gruptaki bir üyenin kanıtlanabilir bir şekilde şunu iddia etmesine izin veriyor: grup adına isimsiz imzayı vermiştir/vermemiştir. http://link.springer.com/chapter/10.1007/11908739_9 Anladığım kadarıyla bu pek doğru değil. Ve anlayışım muhtemelen değişecek Bu projenin derinliklerine iniyorum. Ama benim anladığım kadarıyla hiyerarşi şöyle görünüyor. Grup imzaları: grup yöneticileri izlenebilirliği ve üye ekleme veya çıkarma yeteneğini kontrol eder imzacı olmaktan. Ring işaretleri: Grup yöneticisi olmadan keyfi grup oluşumu. Anonimliğin iptali yok. Belirli bir imzayı reddetmenin hiçbir yolu yoktur. İzlenebilir ve bağlanabilir halkalı imzalar, anonimlik bir şekilde ölçeklenebilir. Geçici grup imzaları: halka imzalara benzer ancak üyeler kendilerinin oluşturmadığını kanıtlayabilir özel bir imza. Gruptaki herhangi biri imza atabildiğinde bu önemlidir. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Fujisaki ve Suzuki'nin algoritması daha sonra yazar tarafından tek seferliklik sağlayacak şekilde ayarlandı. Yani Fujisaki ve Suzuki’nin algoritmasını yeni algoritmayla eş zamanlı olarak analiz edeceğiz. burada üzerinden geçmek yerine.
anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'de, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak, geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmayı seçtik. D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nun ECDSA'sı gibi eliptik eğriye dayanmaktadır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 anahtar, ancak grubundaki tüm kullanıcıların anahtarları. Doğrulayıcının, gerçek imzalayanın bir kişi olduğuna ikna olması grubun üyesidir, ancak yalnızca imzalayanın kimliğini belirleyemez. Orijinal protokol, güvenilir bir üçüncü tarafa (Grup Yöneticisi adı verilen) ihtiyaç duyuyordu ve o da imzalayanın izini sürebilecek tek kişi. Halka imza adı verilen bir sonraki sürüm tanıtıldı Rivest ve diğerleri tarafından. [34]'da, Grup Yöneticisi olmayan ve anonimlik içermeyen özerk bir plandı iptal. Bu şemanın çeşitli modifikasyonları daha sonra ortaya çıktı: bağlanabilir halka imzası [26, 27, 17] iki imzanın aynı grup üyesi tarafından üretilip üretilmediğini belirlemeye izin verildi, izlenebilir halka imza [24, 23] imzalayanın izini sürme olanağı sağlayarak aşırı anonimliği sınırladı aynı meta bilgiye (veya [24] anlamında "etiket") ilişkin iki mesaj. Benzer bir kriptografik yapı aynı zamanda geçici grup imzası olarak da bilinir [16, 38]. o Grup/halka imza şemaları daha çok bir grup/halka imza şemasını ima ederken, keyfi grup oluşumunu vurgulamaktadır. sabit üye kümesi. Çözümümüz çoğunlukla E. Fujisaki'nin "İzlenebilir halka imzası" çalışmasına dayanmaktadır. ve K. Suzuki [24]. Orijinal algoritmayı ve yaptığımız değişikliği ayırt etmek için ikincisini tek seferlik zil imzası olarak adlandırın ve kullanıcının yalnızca bir geçerli zil sesi üretme yeteneğini vurgulayın özel anahtarının altına imza atar. İzlenebilirlik özelliğini zayıflattık ve bağlanabilirliği koruduk yalnızca tek seferliklik sağlamak için: genel anahtar birçok yabancı doğrulama setinde görünebilir ve özel anahtar benzersiz bir anonim imza oluşturmak için kullanılabilir. Çift harcama durumunda Bu iki imza birbirine bağlanacaktır ancak imzalayanın açıklanmasına gerek yoktur bizim amaçlarımız için. 4.2 Tanımlar 4.2.1 Eliptik eğri parametreleri Temel imza algoritmamız olarak seçiyoruze geliştirilen ve geliştirilen hızlı EdDSA şemasını kullanmak D.J. tarafından uygulandı. Bernstein ve ark. [18]. Bitcoin'nin ECDSA'sı gibi eliptik eğriyi temel alır ayrık logaritma problemi olduğundan, şemamız gelecekte Bitcoin'ye de uygulanabilir. Ortak parametreler şunlardır: q: bir asal sayı; q = 2255 −19; d: Fq'nun bir elemanı; d = −121665/121666; E: eliptik bir eğri denklemi; −x2 + y2 = 1 + dx2y2; G: bir taban noktası; G = (x, −4/5); l: taban noktasının asal sırası; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): kriptografik bir hash işlevi \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): deterministik bir hash fonksiyonu \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminoloji Gelişmiş gizlilik, Bitcoin varlıklarla karıştırılmaması gereken yeni bir terminoloji gerektirir. özel ec-anahtarı standart bir eliptik eğri özel anahtarıdır: bir sayı \(a \in [1, l - 1]\); genel ec-anahtarı standart bir eliptik eğridir genel anahtar: bir nokta A = aG; tek kullanımlık anahtar çifti, bir çift özel ve genel ec anahtarıdır; 5 10 "Bağlanabilir halka imzaları" anlamındaki bağlanabilirlik, kaynağın kim olduğunu açıklamadan, giden iki işlemin aynı kaynaktan gelip gelmediğini söyleyebilmemiz anlamına gelir. Yazarlar zayıfladı (a) gizliliği korumak, ancak yine de (b) özel anahtar kullanarak herhangi bir işlemi tespit etmek için bağlanabilirlik ikinci kez geçersiz. Tamam, bu bir olaylar sırası sorusudur. Aşağıdaki senaryoyu düşünün. Benim madenciliğim bilgisayar geçerli blockchain numarasına sahip olacak, çağırdığı kendi işlem bloğuna sahip olacak meşru, bir proof-of-work bulmacasındaki o blok üzerinde çalışacak ve Bir sonraki bloğa eklenecek bekleyen işlemlerin listesi. Ayrıca yenilerini de gönderecek işlemleri bekleyen işlemler havuzuna aktarır. Bir sonraki bloğu çözemezsem ama başkası bunu yaparsa blockchain dosyasının güncellenmiş bir kopyasını alırım. Üzerinde çalıştığım blok ve bekleyen işlemler listemin her ikisinde de şu anda dahil edilmiş bazı işlemler bulunabilir blockchain içine. Bekleyen bloğumu çöz, bunu bekleyen işlemler listemle birleştir ve buna çağrı yap bekleyen işlemler havuzum. Şu anda resmi olarak blockchain içinde bulunanları kaldırın. Şimdi ne yapacağım? İlk önce "tüm çift harcamaları kaldırmalı mıyım"? diğer tarafta Öte yandan, listede arama yapıp her özel anahtarın henüz değiştirilmediğinden emin olmalı mıyım? kullanılmış ve listemde zaten kullanılmışsa, ilk kopyayı ilk ben aldım ve dolayısıyla bundan sonraki herhangi bir kopya gayri meşrudur. Böylece ilkinden sonra tüm örnekleri silmeye devam ediyorum. aynı özel anahtardan. Cebirsel geometri hiçbir zaman bana göre bir güç olmadı. http://en.wikipedia.org/wiki/EdDSA Bu kadar hız, çok vay be. BU kazanmaya yönelik cebirsel geometridir. Hiçbir şey bildiğimden değil bu konuda. Sorunlu olsun veya olmasın, ayrık günlükler çok hızlı hale geliyor. Ve kuantum bilgisayarlar onları yiyor kahvaltı için. http://link.springer.com/article/10.1007/s13389-012-0027-1 Bu gerçekten önemli bir sayı haline geliyor, ancak nasıl olduğuna dair hiçbir açıklama veya alıntı yok. seçildi. Bilinen tek bir büyük asal sayıyı seçmek yeterli olacaktır, ancak eğer bilinenler varsa seçimimizi etkileyebilecek bu büyük asal sayı hakkındaki gerçekler. Kripto notun farklı çeşitleri farklı değerler seçilebilir eh, ama bu yazıda bunun nasıl olduğuna dair bir tartışma yok. seçim, sayfa 5'te listelenen diğer küresel parametrelere ilişkin seçimlerimizi etkileyecektir. Bu yazının parametre değerlerinin seçimiyle ilgili bir bölüme ihtiyacı var.
özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'a karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 11 Yani bu Bitcoin gibi, ancak sonsuz, anonim Posta Kutuları var, yalnızca alıcı tarafından kullanılabilecek Bir halka imzasının olabileceği kadar anonim olan özel bir anahtar oluşturmak. Bitcoin bu şekilde çalışır. Eğer Alex'in Frank'ten yeni aldığı cüzdanında 0,112 Bitcoin varsa, gerçekten imzalı bir parası var demektir "Ben, [FRANK], 0.112 Bitcoin'yi [alex] + H0 + N0'a gönder" mesajı burada 1) Frank imzaladı özel anahtarıyla [FRANK] mesaj attı, 2) Frank mesajı Alex'in herkese açık anahtarıyla imzaladı anahtar, [alex], 3) Frank Bitcoin'in geçmişinin bir kısmını dahil etti, H0 ve 4) Frank nonce, N0 adı verilen rastgele bir veri biti içerir. Alex daha sonra Charlene'e 0,011 Bitcoin göndermek isterse Frank'in mesajını alacak ve bunu H1'e ayarlayacak ve iki mesaj imzalayacak: biri işlemi için, diğeri değişiklik için. H1= "Ben, [FRANK], 0,112 Bitcoin'yi [alex] + H0 + N'ye gönder" "I, [ALEX], 0,011 Bitcoin'yi gönder [charlene] + H1 + N1" "Ben, [ALEX], [alex] + H1 + N2'ye değişiklik olarak 0.101 Bitcoin gönder." Alex'in her iki mesajı da kendi özel anahtarıyla [ALEX] imzaladığı yer, Charlene'nin şifresini içeren ilk mesaj genel anahtar [charlene], Alex'in genel anahtarının [alex] bulunduğu ikinci mesaj ve geçmişleri ve bazıları rastgele oluşturulmuş nonces N1 ve N2'yi uygun şekilde oluşturur. Cryptonote şu şekilde çalışır: Alex'in Frank'ten yeni aldığı cüzdanında 0.112 Cryptonote varsa gerçekten imzalı bir parası var demektir. "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." Alex, özel anahtarını [ALEX] kontrol ederek bunun kendisine ait olduğunu keşfetti. Her geçen mesaj için [tek seferlik bir adres] ve eğer onu harcamak isterse bunu aşağıdaki şekilde. Paranın alıcısını seçiyor, belki de Charlene drone saldırılarına oy vermeye başlamıştır. Alex bunun yerine Brenda'ya para göndermek istiyor. Alex, Brenda'nın genel anahtarına (brenda) bakar, ve tek seferlik bir adres [ALEX+brenda] oluşturmak için kendi özel anahtarı olan [ALEX]'i kullanır. O daha sonra kriptonot kullanıcıları ağından rastgele bir C koleksiyonu seçer ve oluşturur bu geçici gruptan bir halka imzası. Geçmişimizi bir önceki mesaj olarak ayarladık, ekledik nonces ve her zamanki gibi devam edilsin mi? H1 = "Ben, [geçici bir gruptaki biri], [tek seferlik bir adrese] + H0'a 0.112 Cryptonote gönderiyorum + Hayır." "Ben, [C koleksiyonundan biri], [ALEX+brenda'dan tek seferlik adres yapımı] + H1 + N1'e 0,011 Cryptonote gönderiyorum" "Ben, [C koleksiyonundan biri], değişiklik olarak 0.101 Cryptonote'u [ALEX+alex'ten yapılan tek seferlik adres] + H1 + N2'ye gönderiyorum" Artık Alex ve Brenda, gelen tüm mesajları tek seferlik adresler için tarıyor. anahtarları kullanılarak oluşturulmuştur. Eğer herhangi bir şey bulurlarsa, o zaman bu mesaj kendilerine ait yepyeni bir mesajdır. kriptonot! Ve o zaman bile işlem yine de blockchain'ye ulaşacaktır. Eğer o adrese giren coinler suçlulardan, siyasi katkıda bulunanlardan veya komitelerden ve hesaplardan gönderildiği biliniyor bütçeleri kısıtlıysa (örn. zimmete para geçirme) veya bu paraların yeni sahibi bir hata yaparsa ve bu paraları sahibi olduğu bilinen paralarla ortak bir adrese, anonimlik oyununa gönderir Bitcoin'de yükseliş var.
özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler modeli. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 özel kullanıcı anahtarı iki farklı özel ec anahtarından oluşan bir (a, b) çiftidir; izleme anahtarı, özel ve genel ec anahtarının bir çiftidir (a, B) (burada B = bG ve a̸= b); genel kullanıcı anahtarı, (a, b)'den türetilen iki genel ec anahtarının (A, B) çiftidir; standart adres, insan dostu dizeye verilen genel kullanıcı anahtarının bir temsilidir hata düzeltme ile; kısaltılmış adres, verilen genel kullanıcı anahtarının ikinci yarısının (B noktası) temsilidir hata düzeltmeyle insan dostu dizeye dönüştürülür. İşlem yapısı Bitcoin'deki yapıya benzer kalır: her kullanıcı seçebilir birkaç bağımsız gelen ödeme (işlem çıktıları), bunları ilgili imzalarla imzalayın özel anahtarlar ve bunları farklı hedeflere gönderin. Kullanıcının benzersiz özel ve genel anahtara sahip olduğu Bitcoin modelinin aksine, Önerilen modelde gönderici, alıcının adresine dayalı olarak tek seferlik bir genel anahtar üretir ve bazı rastgele veriler. Bu anlamda aynı alıcıya gelen bir işlem, tek kullanımlık genel anahtar (doğrudan benzersiz bir adrese değil) ve yalnızca alıcı bu anahtarı kurtarabilir fonlarını kullanmak için karşılık gelen özel kısım (benzersiz özel anahtarını kullanarak). Alıcı şunları yapabilir: fonları bir yüzük imzası kullanarak, mülkiyetini ve fiili harcamalarını anonim tutarak harcayacaktır. Protokolün detayları sonraki alt bölümlerde açıklanmaktadır. 4.3 Bağlantısı kaldırılamayan ödemeler Klasik Bitcoin adresleri yayınlandıktan sonra gelenler için kesin bir tanımlayıcı haline gelir. ödemeleri birbirine bağlamak ve alıcının takma adlarına bağlamak. Birisi isterse “bağlantısız” bir işlem alıyorsa, göndericiye adresini özel bir kanaldan iletmesi gerekir. Aynı sahibine ait olduğu kanıtlanamayan farklı işlemleri almak istiyorsa tüm farklı adresleri oluşturmalı ve bunları asla kendi takma adıyla yayınlamamalıdır. halka açık Özel Alice Carol Bob'un adresi 1 Bob'un adresi 2 Bob'un anahtarı 1 Bob'un anahtarı 2 Bob Şekil 2. Geleneksel Bitcoin anahtarlar/işlemler moduel. Kullanıcının tek bir adres yayınlamasına ve koşulsuz olarak almasına olanak tanıyan bir çözüm öneriyoruz bağlantısız ödemeler Her CryptoNote çıkışının hedefi (varsayılan olarak) bir genel anahtardır, alıcının adresinden ve gönderenin rastgele verilerinden elde edilir. Bitcoin'ye karşı ana avantaj her hedef anahtarın varsayılan olarak benzersiz olmasıdır (gönderen her anahtar için aynı verileri kullanmadığı sürece) işlemlerinin aynı alıcıya yapılması). Dolayısıyla “adresin yeniden kullanılması” gibi bir sorun söz konusu değildir. tasarım ve hiçbir gözlemci herhangi bir işlemin belirli bir adrese veya bağlantıya gönderilip gönderilmediğini belirleyemez iki adres bir arada. 6 12 Bu nedenle, kullanıcıların adresten (aslında bir genel anahtardır) adrese para göndermesi yerine (başka bir genel anahtar) özel anahtarlarını kullanarak kullanıcılar tek kullanımlık posta kutusundan para gönderiyorlar (arkadaşlarınızın genel anahtarını kullanarak oluşturuyor) tek seferlik posta kutusuna (benzer şekilde) kendi özel anahtarlarınız. Bir anlamda "Tamam, herkes paranın üzerinden elini çeksin" diyoruz. etrafa transfer edildi! Anahtarlarımızın o kutuyu açabileceğini bilmek yeterli. Kutuda ne kadar para olduğunu biliyoruz. Hiçbir zaman parmak izlerinizi Posta Kutusunun veya onu gerçekten kullan, sadece nakit dolu kutuyu takas et. Bu şekilde kimin gönderdiğini bilmiyoruz ama bu halka açık konuşmaların içerikleri hala sürtünmesiz, takas edilebilir, bölünebilir ve Bitcoin gibi paranın arzu ettiğimiz tüm diğer güzel niteliklerine hâlâ sahibiz.” Sonsuz sayıda posta kutusu seti. Bir adres yayınlıyorsun, benim özel anahtarım var. Özel anahtarımı ve adresinizi kullanıyorum ve ortak anahtar oluşturmak için bazı rastgele veriler. Algoritma öyle tasarlanmıştır ki, adresiniz genel anahtarı oluşturmak için kullanıldı, yalnızca SİZİN özel anahtarınız kilidi açmak için çalışır mesaj. Bir gözlemci olan Eve, adresinizi yayınladığınızı ve duyurduğum genel anahtarı görüyor. Ancak, Genel anahtarımı sizin adresinize mi yoksa onun adresine mi, yoksa Brenda'ya mı dayanarak açıkladığımı bilmiyor ya da Charlene'ninki ya da her kimse. Özel anahtarını açıkladığım genel anahtarla karşılaştırıyor ve işe yaramadığını görüyor; bu onun parası değil. Başka kimsenin özel anahtarını bilmiyor ve mesajın kilidini açabilecek özel anahtar yalnızca mesajın alıcısına sahiptir. Yani kimse dinlemek, parayı kimin aldığını çok daha az belirleyebilir.
halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor Bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı büyüklüğündedir. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 13 Kriptografi seçeneğini uygulamanın ne kadar büyük bir acı olacağını merak ediyorum. şeması. Eliptik veya başka türlü. Yani gelecekte bir plan bozulursa para birimi değişir endişelenmeden. Muhtemelen büyük bir baş ağrısı. Tamam, bu tam olarak önceki yorumumda açıkladığım şey. Diffe-Hellman tipi takaslar gayet düzgün. Alex ve Brenda'nın her birinin gizli bir numarası, A ve B'si ve bir numarası olduğunu varsayalım. sır saklamayı umursamıyorlar, a ve b. Paylaşılan bir sır oluşturmak istiyorlar Eva bunu keşfediyor. Diffe ve Hellman, Alex ve Brenda'nın bu durumu paylaşması için bir yol buldular. genel numaralar a ve b, ancak özel numaralar A ve B değil ve paylaşılan bir sır oluşturur, K. Bu paylaşılan sırrı kullanarak, K, Eva'nın dinlemesine gerek kalmadan aynı şeyi üretebilir. K, Alex ve Brenda artık K'yi gizli bir şifreleme anahtarı olarak kullanabilir ve gizli mesajları geri iletebilir ve ileri. 100'den çok daha büyük sayılarla çalışması gerekmesine rağmen CAN şu şekilde çalışır. 100'ü kullanacağız çünkü modulo 100 tamsayıları üzerinde çalışmak "hepsini atmak" ile eşdeğerdir ama bir sayının son iki rakamı." Alex ve Brenda'nın her biri A, a, B ve b'yi seçiyor. A ve B'yi gizli tutuyorlar. Alex, Brenda'ya modulo 100'ün değerini (yalnızca son iki rakam) söyler ve Brenda, Alex'e söyler. b modulo 100'ün değeri. Artık Eva (a,b) modulo 100'ü biliyor. Ama Alex (a,b,A)'yı biliyor, dolayısıyla o x=abA modulo 100'ü hesaplayabilir.Alex çalıştığımız için son rakam hariç hepsini kesiyor tekrar modulo 100 tamsayılarının altında. Benzer şekilde, Brenda da (a,b,B)'yi bildiğinden hesaplayabilmektedir. y=abB modulo 100. Alex artık x'i yayınlayabilir ve Brenda da y'yi yayınlayabilir. Ama şimdi Alex yA = abBA modulo 100'ü hesaplayabiliyor ve Brenda da xB'yi hesaplayabiliyor = abBA modulo 100. İkisi de aynı numarayı biliyor! Ama Eva'nın tek duyduğu şey (a,b,abA,abB). abA*B'yi hesaplamanın kolay bir yolu yok. Diffe-Hellman değişimi hakkında düşünmenin en kolay ve en az güvenli yolu bu. Daha güvenli versiyonlar mevcut. Ancak çoğu sürüm, tamsayı çarpanlarına ayırma ve ayrıklık nedeniyle çalışır. logaritmalar zordur ve bu sorunların her ikisi de kuantum bilgisayarlar tarafından kolaylıkla çözülebilir. Kuantuma dirençli versiyonların olup olmadığına bakacağım. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Burada listelenen "standart txn dizisi"nde, İMZALAR gibi birçok adım eksik. Burada olduğu gibi kabul ediliyorlar. Bu gerçekten kötü, çünkü içinde bulunduğumuz sıra imza maddeleri, imzalı mesajın içerdiği bilgiler vb... bunların hepsi son derece protokol için önemlidir. Uygulama sırasında adımlardan bir veya ikisinin yanlış, hatta biraz bozuk olması standart işlem sırası" tüm sistemin güvenliğini sorgulayabilir. Ayrıca, makalede daha sonra sunulan kanıtlar yeterince kesin olmayabilir. altında çalıştıkları çerçeve bu bölümde olduğu gibi gevşek bir şekilde tanımlanmıştır.
halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 halka açık Özel Alice Carol Tek kullanımlık anahtar Tek kullanımlık anahtar Tek kullanımlık anahtar Bob Bob'un Anahtarı Bob'un Adresi Şekil 3. CryptoNote anahtarları/işlem modeli. İlk olarak gönderen, verilerinden paylaşılan bir sır elde etmek için bir Diffe-Hellman alışverişi gerçekleştirir ve alıcının adresinin yarısı. Daha sonra paylaşılan anahtarı kullanarak tek seferlik bir hedef anahtarı hesaplar. gizli ve adresin ikinci yarısı. Alıcıdan iki farklı ec-anahtarı isteniyor bu iki adım için standart bir CryptoNote adresi, Bitcoin cüzdanının neredeyse iki katı kadardır. adresi. Alıcı ayrıca karşılık gelen verileri kurtarmak için bir Diffe-Hellman değişimi gerçekleştirir. gizli anahtar. Standart bir işlem sırası şu şekildedir: 1. Alice, standart adresini yayınlayan Bob'a ödeme göndermek istiyor. O adresi açar ve Bob'un genel anahtarını (A, B) alır. 2. Alice rastgele bir \(r \in [1, l - 1]\) üretir ve bir kerelik genel anahtarı \(P = H_s(rA)G +\) hesaplar B. 3. Alice, çıktı için hedef anahtar olarak P'yi kullanır ve aynı zamanda R = rG değerini de paketler (bir parça olarak) Diffe-Hellman borsasının) işlemin bir yerinde. oluşturabileceğini unutmayın. benzersiz ortak anahtarlara sahip diğer çıktılar: farklı alıcıların anahtarları (Ai, Bi) farklı Pi anlamına gelir aynı r ile bile. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı R = rG P = Hs(rA)G + B Alıcının genel anahtar Gönderenin rastgele verileri r (A, B) Şekil 4. Standart işlem yapısı. 4. Alice işlemi gönderir. 5. Bob geçen her işlemi özel anahtarıyla (a, b) kontrol eder ve P ′ = değerini hesaplar Hs(aR)G + B. Alice'in alıcı olarak Bob'la yaptığı işlem bunların arasındaysa, o zaman aR = arG = rA ve P ′ = P. 7 14 Yazar(lar)ın baştan sona terminolojilerini düz tutmak konusunda berbat bir iş çıkardıklarını unutmayın. metin, ama özellikle bu sonraki kısımda. Bu makalenin bir sonraki enkarnasyonu mutlaka olacaktır. çok daha titiz. Metinde P'den tek kullanımlık genel anahtar olarak bahsediyorlar. Diyagramda R'ye şu şekilde atıfta bulunurlar: "Tx genel anahtarı" ve "Hedef anahtarı" olarak P. Eğer bunu yeniden yazacak olsaydım, Bu bölümleri tartışmadan önce bazı terminolojiyi çok spesifik olarak ortaya koyacağım. Bu cehennem çok büyük. 5. sayfaya bakın. Ell'i kim seçer? Diyagram, rastgele ve seçilen işlem genel anahtarı R = rG'yi göstermektedir. gönderen tarafından Tx çıkışının bir parçası değildir. Bunun nedeni birden fazla kişi için aynı olabilmesidir. birden fazla kişiye yapılan işlemlerdir ve harcamak için SONRA kullanılmaz. Yeni bir R üretilir her yeni CryptoNote işlemini yayınlamak istediğinizde. Ayrıca, R yalnızca kullanılır İşlemin alıcısı olup olmadığınızı kontrol etmek için. Bunlar önemsiz veriler değil, ancak herkes için önemsizdir (A,B) ile ilişkili özel anahtarlar olmadan. Hedef tuşu ise P = Hs(rA)G + B, Tx çıkışının bir parçasıdır. Herkes Her geçen işlemin verilerini inceleyerek kendi oluşturdukları P*'yi kontrol etmelidir. Bu geçen işlemin sahibi olup olmadıklarını görmek için bu P'yi kullanın. Harcanmamış işlem çıktısı olan herkes (UTXO) bu P'lerden bir demetini ortalıkta miktarlarla birlikte bulunduracak. Harcamak içind, onlar P'nin de dahil olduğu yeni bir mesaj imzalayın. Alice, bu işlemi, harcanmamış işlem çıktısı/çıktıları Hedef Anahtarı/Anahtarları ile ilişkili bir kerelik özel anahtar/anahtarlarla imzalamalıdır. Alice'in sahip olduğu her hedef anahtarı donanımlı olarak gelir (muhtemelen) Alice'e ait olan tek seferlik özel anahtarla. Alice her istediğinde hedef anahtarının içeriğini bana veya Bob'a veya Brenda'ya veya Charlie'ye veya Charlene'e gönder, o işlemi imzalamak için özel anahtarını kullanır. İşlemi aldıktan sonra yeni bir tane alacağım Tx genel anahtarı, yeni bir Hedef ortak anahtarı ve yeni bir kerelik özel anahtar x'i kurtarabileceğim. Tek kullanımlık özel anahtarım x'i yeni işlemin genel Hedefi ile birleştirme anahtar(lar) yeni bir işlemi nasıl gönderdiğimizdir
- Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8
-
Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 15 Harcanmamış bir işlem çıktısı burada nasıl görünüyor? Diyagram, işlem çıktısının yalnızca iki veri noktasından oluştuğunu göstermektedir: miktar ve hedef anahtar. Ama bu değil Yeterli çünkü bu "çıktıyı" harcamaya çalıştığımda hala R=rG'yi bilmem gerekecek. Unutmayın, r gönderen tarafından seçilir ve R a) gelen kriptonotları sizin şifreniz olarak tanımak için kullanılır. kendi ve b) kriptonotunuzu "talep etmek" için kullanılan tek seferlik özel anahtarı oluşturmak için kullanılır. Bu konuda anlamadığım kısım? Teorik olarak "tamam, elimizde bunlar var imzalar ve işlemler ve bunları programlama dünyasına ileri geri aktarıyoruz "peki özellikle hangi bilgiler bir kişiyi UTXO oluşturur?" Bu soruyu cevaplamanın en iyi yolu, tamamen yorumlanmamış kodun gövdesini incelemektir. Tebrikler bytecoin ekibi. Hatırlayın: bağlanabilirlik "aynı kişi mi gönderdi?" anlamına gelir. ve bağlantı kurulamazlık "aynısını yaptım" anlamına gelir kişi alıyor mu?" Dolayısıyla bir sistem bağlanabilir veya bağlanamaz, bağlanamaz veya bağlanamaz olabilir. Sinir bozucu, biliyorum. Nic van Saberhagen burada "...gelen ödemeler tek seferlik ödemelerle ilişkilidir" dediğinde İzleyici için bağlantı kurulamayan genel anahtarlar" derken ne demek istediğini görelim. İlk olarak, Alice'in Bob'a aynı yerden iki ayrı işlem gönderdiği bir durumu düşünün. adresi aynı adrese. Bitcoin evreninde Alice zaten hatayı yaptı aynı adresten gönderim yapılması nedeniyle sınırlı işlem isteğimiz başarısız oldu bağlanabilirlik. Üstelik parayı aynı adrese gönderdiği için isteğimizi boşa çıkardı bağlantı kurulamazlığı için. Bu bitcoin işlemi hem (tamamen) bağlanabilir hem de bağlantısı kaldırılamaz nitelikteydi. Öte yandan kriptonot evreninde Alice'in Bob'a bir kriptonot gönderdiğini varsayalım, Bob'un genel adresini kullanarak. Gizleyici ortak anahtarlar kümesi olarak bilinen tüm halka açık anahtarları seçiyor Washington DC metro bölgesindeki anahtarlar. Alex kendi anahtarını kullanarak tek seferlik bir genel anahtar üretiyor bilgiler ve Bob'un kamuya açık bilgileri. Parayı o gönderiyor ve herhangi bir gözlemci sadece "Washington DC metropol bölgesinden biri şu adrese 2,3 kriptonot gönderdi" tek seferlik genel adres XYZ123." Burada bağlanabilirlik üzerinde olasılıksal bir kontrolümüz var, dolayısıyla buna "neredeyse bağlantı kurulamaz" adını vereceğiz. Ayrıca paranın gönderildiği tek seferlik ortak anahtarları da görüyoruz. Alıcıdan şüphelensek bile Bob'du, onun özel anahtarlarına sahip değiliz ve bu nedenle geçen bir işlemin olup olmadığını test edemiyoruz bırakın kripto notunu kullanmak için tek seferlik özel anahtarını oluşturmayı bırakın Bob'a aittir. Yani bu aslında tamamen "bağlanamaz". Yani bu en güzel numaradır. Kim gerçekten başka bir MtGox'a güvenmek ister? Biz olabiliriz Bir miktar BTC'yi Coinbase'de depolamak rahattır, ancak bitcoin güvenliğinde son nokta fiziksel bir cüzdan. Bu da sakıncalı. Bu durumda, özel anahtarınızın yarısını, gizliliğinizi tehlikeye atmadan, güvenle verebilirsiniz. para harcamak için kendi yeteneği. Bunu yaparken yaptığınız tek şey birine bağlantısızlığın nasıl ortadan kaldırılacağını anlatmaktır. Diğeri CN'nin bir para birimi gibi davranan özellikleri korunur; çifte harcamaya karşı kanıt ve ne değil.
-
Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. Öncelikle algoritmamızın genel bir tanımını, açık bir referans olmadan sunacağız. elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8
- Bob karşılık gelen bir kerelik özel anahtarı kurtarabilir: x = Hs(aR) + b, yani P = xG. Bu çıktıyı istediği zaman x ile bir işlem imzalayarak harcayabilir. İşlem Tx ortak anahtarı Gönderim çıkışı Tutar Hedef anahtarı P ′ = Hs(aR)G + bG tek kullanımlık genel anahtar x = Hs(aR) + b tek kullanımlık özel anahtar Alıcının özel anahtar (a, b) R P' ?= P Şekil 5. Gelen işlem kontrolü. Sonuç olarak Bob, tek seferlik ortak anahtarlarla ilişkili gelen ödemeleri alır. izleyici için bağlanılamaz. Bazı ek notlar: • Bob işlemlerini "tanıdığında" (bkz. adım 5) pratikte parasının yalnızca yarısını kullanır. Özel bilgiler: (a, B). İzleme anahtarı olarak da bilinen bu çift, iletilebilir üçüncü bir tarafa (Carol). Bob, yeni işlemlerin işlenmesi konusunda ona yetki verebilir. Bob Carol'a açıkça güvenmesine gerek yok çünkü tek seferlik gizli anahtarı kurtaramıyor Bob'un tam özel anahtarı (a, b) olmadan. Bu yaklaşım Bob'un bant genişliğinin yetersiz olduğu durumlarda faydalıdır veya hesaplama gücü (akıllı telefonlar, donanım cüzdanları vb.). • Alice, Bob'un adresine bir işlem gönderdiğini kanıtlamak isterse bunu açıklayabilir r veya r'yi bildiğini kanıtlamak için herhangi bir tür sıfır bilgi protokolü kullanın (örneğin imzalayarak) r) ile yapılan işlem. • Bob, gelen tüm işlemlerin kaydedildiği denetim uyumlu bir adrese sahip olmak istiyorsa bağlanabilirse, izleme anahtarını yayınlayabilir veya kısaltılmış bir adres kullanabilir. Bu adres yalnızca bir genel ec-anahtarı B'yi temsil eder ve protokolün gerektirdiği geri kalan kısım bundan şu şekilde türetilir: a = Hs(B) ve A = Hs(B)G. Her iki durumda da her insan Bob'un gelen tüm işlemlerini "tanıyabilir", ancak elbette hiçbiri bu parayı harcayamaz. gizli anahtar olmadan içlerinde yer alan fonlar b. 4.4 Tek seferlik zil imzaları Tek seferlik halka imzalara dayalı bir protokol, kullanıcıların koşulsuz bağlantı kurulamazlığına erişmesine olanak tanır. Ne yazık ki, sıradan kriptografik imza türleri, işlemlerin ilgili gönderici ve alıcılar. Bu eksikliğe çözümümüz farklı bir imza kullanmaktan geçiyor Şu anda elektronik nakit sistemlerinde kullanılanlardan daha fazla tür. İlk önce bir gen sağlayacağızaçık bir referans olmadan algoritmamızın tüm açıklaması elektronik nakit. Bir kerelik halka imzası dört algoritma içerir: (GEN, SIG, VER, LNK): GEN: genel parametreleri alır ve bir ec çifti (P, x) ve bir genel anahtar I çıkarır. SIG: bir m mesajını, {Pi}i̸=s genel anahtarlarından oluşan bir \(S'\) kümesini, bir çifti (Ps, xs) alır ve bir \(\sigma\) imzası çıkarır ve bir \(S = \)S'\( \cup \{P_s\}\) kümesi. 8 16 Evet, artık a) bir ödeme adresimiz ve b) bir ödeme kimliğimiz var. Bir eleştirmen şunu sorabilir: "Bunu gerçekten yapmamız gerekiyor mu? Sonuçta, bir tüccar 112.00678952 alırsa Tam olarak CN, benim siparişim de buydu ve elimde ekran görüntüsü ya da makbuz falan var, değil mi çılgın derecede kesinlik yeterli mi?" Cevap şu: "Belki de çoğu zaman, günlük yaşamda, yüz yüze işlemler." Ancak (özellikle dijital dünyada) daha yaygın olan durum şudur: Bir tüccar, her biri sabit bir fiyata sahip olan bir dizi nesne. A nesnesinin 0,001 CN, B nesnesinin 0,01 CN olduğunu ve C nesnesi 0,1 CN'dir. Şimdi, eğer satıcı 1.618 CN tutarında bir sipariş alırsa, çok sayıda sipariş var. Bir müşteri için sipariş ayarlamanın (birçok!) yolu. Ve bir tür ödeme kimliği olmadan, Bir müşterinin sözde "benzersiz" siparişini, müşterilerinin sözde "benzersiz" maliyetiyle tanımlamak düzen imkansız hale gelir. Daha da komik: çevrimiçi mağazamdaki her şeyin maliyeti tam olarak 1,0 ise CN ve benim günde 1000 müşterim mi oluyor? Ve tam olarak 3 nesne satın aldığınızı kanıtlamak istiyorsunuz iki hafta önce mi? Ödeme kimliği olmadan mı? İyi şanslar dostum. Uzun lafın kısası: Bob bir ödeme adresi yayınladığında, aynı zamanda bir ödeme adresi de yayınlayabilir. ödeme kimliği de (bkz. örneğin Poloniex XMR para yatırma işlemleri). Bu anlatılandan farklı Buradaki metinde ödeme kimliğini oluşturan kişinin Alice olduğu yer almaktadır. Bob'un da bir ödeme kimliği oluşturmasının bir yolu olmalı. (a,B) İzleme anahtarının (a,B) yayınlanabileceğini hatırlayın; 'a'nın değerinin gizliliğini kaybetmek harcama yeteneğinizi ihlal etmeyin veya başkalarının sizden çalmasına izin vermeyin (sanırım... bu Kanıtlanacak), insanların gelen tüm işlemleri görmesine izin verecek. Bu paragrafta açıklandığı gibi kısaltılmış bir adres, anahtarın "özel" kısmını alır. ve onu "genel" kısımdan üretir. 'a'nın değerinin ortaya çıkarılması, bağlanamazlığı ortadan kaldıracaktır ancak işlemlerin geri kalanını koruyacaktır. Yazar "bağlantı kurulamaz" demek istiyor çünkü bağlantı kurulamaz alıcıyı ve bağlantı kurulabilir olanı ifade ediyor göndereni ifade eder. Ayrıca yazarın bağlanabilirliğin iki farklı yönü olduğunu fark etmediği de açıktır. Sonuçta işlem bir grafik üzerinde yönlendirilmiş bir nesne olduğundan iki soru ortaya çıkacaktır: "Bu iki işlem aynı kişiye mi gidiyor?" ve "bu iki işlem geliyor mu? aynı kişiden mi?" Bu, CryptoNote'un bağlantı kurulamazlık özelliğinin geçerli olduğu bir "geri dönmeme" politikasıdır. şartlı. Yani Bob, gelen işlemlerinin bağlantısının kesilemez olmasını seçebilir bu politikayı kullanarak. Bu, Rastgele Oracle Modeli kapsamında kanıtladıkları bir iddiadır. Buna ulaşacağız; Rastgele Oracle'ın artıları ve eksileri var.
VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod ben, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 17 Belki bu aptalcadır, ancak S ve P_'leri birleştirirken dikkatli olunmalıdır. Eğer sadece şunu eklerseniz sona kadar olan son genel anahtar, herhangi biri geçen işlemleri kontrol ettiğinden bağlantı kurulamazlık bozuldu her işlemde ve patlamada listelenen son genel anahtarı kontrol edebilirsiniz. Bu genel anahtardır gönderenle ilişkilidir. Yani birleştirmeden sonra, bir sözde rasgele sayı üreteci oluşturulmalıdır. seçilen genel anahtarlara izin vermek için kullanılır. "...sahibi aynı anahtar çiftini kullanarak ikinci bir imza oluşturana kadar." Keşke yazar(lar?) bu konuyu detaylandıracaktı. Bunun şu anlama geldiğine inanıyorum: "Gizlenmek için bir dizi genel anahtar seçtiğinizde her zaman emin olun. Kendinize, iki anahtarın birbirine benzemediği tamamen yeni bir set seçersiniz." bağlantı kurulamaz duruma getirilecek oldukça güçlü bir durum. Belki "yeni bir rastgele set seçersiniz her ne kadar önemsiz olmayan kesişmeler kaçınılmaz olsa da, tüm olası anahtarlar" varsayımıyla olur, sık sık olmazlar. Her iki durumda da, bu ifadeyi daha derinlemesine incelemem gerekiyor. Bu, halka imzasını oluşturuyor. Sıfır bilgi kanıtları muhteşem: Bir sırrı bildiğinizi bana kanıtlamanız için size meydan okuyorum sırrını açıklamadan. Mesela çörek şeklinde bir mağaranın girişinde olduğumuzu varsayalım. ve mağaranın arka tarafında (girişin görülemeyeceği yerde) bir o vardır.hangi yöne giden kapı anahtarın sende olduğunu iddia et. Bir yöne gidersen her zaman geçmene izin verir, ama diğer yöne gidersen diğer yönde ise bir anahtara ihtiyacınız var. Ama bırakın anahtarı bana göstermek bile istemiyorsunuz bana kapıyı açtığını göster. Ama sen bana kapıyı nasıl açacağını bildiğini kanıtlamak istiyorsun. kapı. İnteraktif ortamda yazı tura atıyorum. Yazılar sola, yazılar sağa ve aşağıya iniyorsunuz madeni para sizi nereye yönlendirirse yönlendirsin, çörek şeklindeki mağara. Arkada, görüş alanımın ötesinde, sen diğer tarafa dönmek için kapıyı açın. Yazı-tura atma deneyini tekrarlıyoruz Anahtarın sende olduğundan emin olana kadar. Ancak bu açıkça ETKİLEŞİMLİ sıfır bilgi kanıtıdır. Sizin ve benim hiçbir zaman iletişim kurmak zorunda olmadığımız, etkileşimli olmayan versiyonlar da var; bu şekilde kulak misafiri olan kimse müdahale edemez. http://en.wikipedia.org/wiki/Zero-knowledge_proof Bu önceki tanımın tersidir.
VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 VER: m mesajını, S kümesini, \(\sigma\) imzasını alır ve “doğru” veya “yanlış” çıktısını verir. LNK: bir I = {Ii} kümesini, bir \(\sigma\) imzasını alır ve "bağlantılı" veya "indep" çıktısını verir. Protokolün arkasındaki fikir oldukça basittir: Bir kullanıcı, imzalanabilecek bir imza üretir. benzersiz bir genel anahtar yerine bir dizi genel anahtarla kontrol edilir. İmzalayanın kimliği: sahibi üretinceye kadar ortak anahtarları sette bulunan diğer kullanıcılardan ayırt edilemez aynı anahtar çiftini kullanan ikinci bir imza. Özel anahtarlar x0 \(\cdots\) xi \(\cdots\) xn Genel anahtarlar P0 \(\cdots\) Pi \(\cdots\) Pn Yüzük İmza işaret doğrulamak Şekil 6. Halka imzasının anonimliği. GEN: İmzalayan kişi rastgele bir \(x \in [1, l - 1]\) gizli anahtarını seçer ve karşılık gelen değeri hesaplar. ortak anahtar P = xG. Ek olarak başka bir genel anahtar olan I = xHp(P)'yi de hesaplar. “anahtar resim” olarak adlandırın. SIG: İmzalayan, etkileşimli olmayan sıfır bilgiyle tek seferlik halka imza oluşturur [21] tekniklerini kullanarak kanıt. Diğer kullanıcıların arasından n'nin rastgele bir \(S'\) alt kümesini seçer. genel anahtarlar Pi, kendi anahtar çifti (x, P) ve anahtar görüntüsü I. İmzalayanın gizli dizini \(0 \leq s \leq n\) olsun \(S'\)de (ortak anahtarı Ps olacak şekilde). Rastgele bir {qi | ben = 0. . . n} ve {wi | ben = 0. . . (1 . . . l)'den n, i ̸= s} ve şunu uygular: aşağıdaki dönüşümler: Li = ( qiG, eğer ben = s qiG + wiPi, eğer ben ̸= s Ri = ( qiHp(Pi), eğer ben = s qiHp(Pi) + wiI, eğer ben ̸= s Bir sonraki adım etkileşimli olmayan mücadeleyi almaktır: c = Hs(m, L1, . . , Ln, R1, . . , Rn) Son olarak imzalayan kişi yanıtı hesaplar: ci = wi, eğer ben ̸= s c - nP ben=0 ci mod l, eğer ben = s ri = ( qi, eğer ben ̸= s qs –csx mod l, eğer ben = s Sonuçta ortaya çıkan imza \(\sigma\) = (I, c1, . . , cn, r1, . . , rn) olur. 9 18 Tüm bu alan kriptonottan bağımsızdır, halka imza algoritmasını basitçe tanımlar. para birimlerine referans. Bazı notasyonların makalenin geri kalanıyla tutarlı olduğundan şüpheleniyorum. yine de. Örneğin x, GEN'de seçilen ve P genel anahtarını veren "rastgele" gizli anahtardır. ve genel anahtar görüntüsü I. X'in bu değeri Bob'un bölüm 6, sayfa 8'de hesapladığı değerdir. Önceki açıklamadaki bazı karışıklıkları gidermeye başlıyoruz. Bu çok hoş; "Alice'in genel adresinden Bob'un genel adresine para aktarılmıyor Adres." Tek kullanımlık adresten tek kullanımlık adrese aktarılıyor. Yani bir bakıma işler şu şekilde yürüyor. Eğer Alex'in bazı kriptonotları varsa çünkü birisi bunları ona gönderdiyse bu, bunları Bob'a göndermek için gereken özel anahtarlara sahip olduğu anlamına gelir. O kullanıyor yeni bir tek seferlik adres oluşturmak için Bob'un kamuya açık bilgilerini kullanan bir Diffe-Hellman alışverişi ve kriptonotlar bu adrese aktarılır. Şimdi, yeni tek seferlik adresi oluşturmak için (muhtemelen güvenli) bir DH değişimi kullanıldığı için Alex'in CN'sini gönderdiği yerde, mesajı tekrarlamak için gereken özel anahtarlara sahip olan tek kişi Bob'tur. yukarıda. Artık Bob Alex oldu. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Toplama i yerine j üzerinden indekslenmelidir. Her c_i rastgele önemsizdir (w_i rastgele olduğundan) c_i eşek hariçBu imzada yer alan gerçek anahtarla bağlantılıdır. c'nin değeri önceki bilgilerin hash'u. Bunun 'i' indeksini yeniden kullanmaktan daha kötü bir yazım hatası içerebileceğini düşünüyorum çünkü c_s görünüyor açıkça değil, örtülü olarak tanımlanmalıdır. Aslında bu denklemi güvenerek alırsak c_s = (1/2)c - (1/2) olduğunu tespit ederiz. toplam_i neq s c_i. Yani, bir hash eksi bir grup rastgele sayı. Öte yandan bu toplamın okunması amaçlanıyorsa "c_s = (c - sum_j neq s c_j) mod" l", sonra önceki bilgilerimizin hash değerini alırız, bir grup rastgele sayı üretiriz, tüm bu rastgele sayıları hash'den çıkarırız ve bu bize c_s'yi verir. Bu öyle görünüyor sezgilerime göre ne "olması gerektiği" ve sayfa 10'daki doğrulama adımıyla eşleştiği. Ancak sezgi matematik değildir. Bu konuyu daha derinlemesine inceleyeceğim. Daha önce olduğu gibi; gerçek olayla ilişkili olanlar dışında bunların tümü rastgele önemsiz olacaktır. imzalayanın genel anahtarı x. Bu seferki hariç, yapıdan beklediğim şey daha fazlası: r_i, i!=s için rastgeledir ve r_s, yalnızca gizli x ve s-indeksli değerleri tarafından belirlenir. q_i ve c_i.
VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 19 Bu noktada kafam çok karışık. Alex, imzayı (I,c_1, ..., c_n, r_1, ..., r_n) ve genel listeyi içeren bir M mesajı alır. S. tuşlarına basıyor ve VER'i çalıştırıyor. Bu L_i' ve R_i'yi hesaplayacaktır Bu, önceki sayfada c_s = c - sum_i neq s c_i olduğunu doğrular. İlk başta kafam çok karışıktı. Herkes L_i' ve R_i'yi hesaplayabilir. Aslında her r_i ve c_i imzada yayınlandı sigma I değeriyle birlikte. S = kümesi Tüm genel anahtarların P_i'si de yayınlandı. Yani sigmayı ve setini gören herkes S = P_i tuşları L_i' ve R_i' için aynı değerleri alacak ve dolayısıyla imzayı kontrol edecektir. Ancak daha sonra bu bölümün bir "kontrol" değil, yalnızca bir imza algoritmasını tanımladığını hatırladım. İmzalanmışsa, BANA GÖNDERİLİP GÖNDERİLMEDİĞİNİ kontrol et ve eğer öyleyse, git parayı harca." Bu KESİNLİKLE Oyunun imza kısmı. Sonunda oraya vardığımda Ek A'yı okumak isterim. Cryptonote'un Bitcoin ile tam ölçekli operasyon bazında karşılaştırmasını görmek istiyorum. Ayrıca elektrik/sürdürülebilirlik. Algoritmanın hangi parçaları burada "girdi" oluşturuyor? İşlem girişinin bir Tutar ve toplamı UTXOs kümesinden oluştuğuna inanıyorum. Tutar. Bu belirsiz. "Gizlenme hedefi mi?" Bunu birkaç dakikadır düşünüyorum ve hala bulamadım bunun ne anlama gelebileceğine dair en belirsiz fikir. Çift harcama saldırısı yalnızca bir düğümün algılanan kullanılmış anahtarı değiştirilerek gerçekleştirilebilir resimler \(I\) olarak ayarlandı. "Belirsizlik derecesi" = n ancak işleme dahil edilen genel anahtarların toplam sayısı n+1. Yani belirsizlik derecesi "başka kaç kişinin olmasını istiyorsunuz" olacaktır. kalabalık mı?" Cevap muhtemelen varsayılan olarak "mümkün olduğu kadar çok" olacaktır.
VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin düzeniyle karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve bunu cüzdanında saklar. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 VER: Doğrulayıcı, ters dönüşümleri uygulayarak imzayı kontrol eder: ( L' i = riG + ciPi R' i = riHp(Pi) + ciI Son olarak, doğrulayıcı şunları kontrol eder: nP ben=0 ci ?= Hs(m, L' 0, . . . , L' n, R' 0, . . . , R' n) mod l Bu eşitlik doğruysa, doğrulayıcı LNK algoritmasını çalıştırır. Aksi takdirde doğrulayıcı reddeder imza. LNK: Doğrulayıcı geçmiş imzalarda I kullanılıp kullanılmadığını kontrol eder (bu değerler I'i ayarla). Çoklu kullanım, aynı gizli anahtar altında iki imzanın üretildiği anlamına gelir. Protokolün anlamı: L-dönüşümlerini uygulayarak imzalayan kişi bildiğini kanıtlar öyle bir x ki, en az bir Pi = xG. Bu kanıtı tekrarlanamaz kılmak için anahtar görseli tanıtıyoruz I = xHp(P) olarak. İmzalayan kişi neredeyse aynı ifadeyi kanıtlamak için aynı katsayıları (ri, ci) kullanır: öyle bir x biliyor ki, en az bir \(H_p(P_i) = I \cdot x^{-1}\). Eğer \(x \to I\) eşlemesi bir enjeksiyon ise: 1. Hiç kimse anahtar görselden genel anahtarı kurtaramaz ve imzalayanı tanımlayamaz; 2. İmzalayan kişi farklı I'lere ve aynı x'e sahip iki imza atamaz. Tam bir güvenlik analizi Ek A'da verilmektedir. 4.5 Standart CryptoNote işlemi Bob, her iki yöntemi (bağlanamayan genel anahtarlar ve izlenemeyen halka imza) birleştirerek şunu başarır: Orijinal Bitcoin şemasıyla karşılaştırıldığında yeni gizlilik düzeyi. Yalnızca saklamasını gerektirir anonim işlemleri almaya ve göndermeye başlamak için bir özel anahtar (a, b) ve yayınlayın (A, B). Bob, her işlemi doğrularken ayrıca işlemin kendisine ait olup olmadığını kontrol etmek için yalnızca iki eliptik eğri çarpımı ve çıktı başına bir toplama işlemi gerçekleştirir. Onun için her çıktı Bob bir kerelik anahtar çiftini (pi, Pi) kurtarır ve stcüzdanında saklıyor. Herhangi bir giriş olabilir yalnızca tek bir işlemde ortaya çıkmaları durumunda aynı sahibine sahip oldukları ikinci dereceden kanıtlanmıştır. içinde Aslında tek seferlik zil imzası nedeniyle bu ilişkinin kurulması çok daha zordur. Bir halka imzasıyla Bob, her girişi başkasının girişleri arasında etkili bir şekilde gizleyebilir; hepsi mümkün Önceki sahibin (Alice) bile bundan daha fazla bilgisi olmasa bile harcama yapanlar eşit olasılıklı olacaktır. herhangi bir gözlemci Bob, işlemini imzalarken, kendisininkiyle aynı miktarda yabancı çıktı belirtir. çıktı, diğer kullanıcıların katılımı olmadan hepsini karıştırıyor. Bob'un kendisi (aynı zamanda başkası) bu ödemelerden herhangi birinin harcanıp harcanmadığını bilmiyor: bir çıktı kullanılabilir Binlerce imzada belirsizlik unsuru olarak yer alıyor ve asla saklanma hedefi olarak görülmüyor. Çift Harcama kontrolü LNK aşamasında, kullanılan anahtar görseller setine göre kontrol edilirken gerçekleşir. Bob belirsizlik derecesini kendisi seçebilir: n = 1, sahip olduğu olasılık anlamına gelir harcanan çıktının olasılığı %50, n=99 ise %1'i verir. Ortaya çıkan imzanın boyutu artar O(n+1) şeklinde doğrusaldır, dolayısıyla geliştirilmiş anonimlik Bob'a ekstra işlem ücreti maliyeti getirir. O da yapabilir n = 0'ı ayarlayın ve halka imzasının yalnızca bir öğeden oluşmasını sağlayın, ancak bu anında onu müsrif biri olarak ifşa et. 10 20 Bu ilginç; daha önce Bob adlı alıcının tüm GELENLERİ alabilmesi için bir yol sunmuştuk. özel anahtarlarının yarısını deterministik olarak seçerek veya özel anahtarlarının yarısını herkese açık olarak yayınlıyor. Bu geri dönüşü olmayan bir politikadır. Burada görüyoruz Gönderenin Alex'in tek bir giden işlemi bağlanabilir olarak seçmesinin bir yolu, ama aslında bu Alex'in tüm ağın göndericisi olduğunu ortaya koyuyor. Bu geri dönüşü olmayan bir politika DEĞİLDİR. Bu, işlem bazındadır. Üçüncü bir politika var mı? Alıcı Bob, Alex için benzersiz bir ödeme kimliği oluşturabilir mi? belki Diffe-Hellman değişimini kullanarak hiç değişmiyor? Birisi bu ödemeyi dahil ederse İşlemin bir yerinde Bob'un adresine gönderilen kimlik, Alex'ten gelmiş olmalı. Bu şekilde, Alex'in belirli bir bağlantıya bağlanmayı seçerek kendisini tüm ağa göstermesine gerek kalmaz. ancak yine de parasını gönderdiği kişiye kendisini tanıtabilir. Poloniex'in yaptığı da bu değil mi?
İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olsa da [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve diğerleri [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yönlendirdi fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 İşlem Gönderim girişi Çıkış0 . . . Çıkış . . . Çıkış Anahtar resim İmzalar Yüzük İmzası Hedef anahtarı Çıkış1 Hedef anahtarı Çıkış Yabancı işlemler Gönderenin çıktısı Hedef anahtarı Tek kullanımlık anahtar eşleştirme Bir kerelik özel anahtar ben = xHp(P) P, x Şekil 7. Standart bir işlemde halka imzası üretimi. 5 Eşitlikçi İş Kanıtı Bu bölümde yeni proof-of-work algoritmasını öneriyor ve temellendiriyoruz. Öncelikli hedefimiz CPU (çoğunluk) ve GPU/FPGA/ASIC (azınlık) madencileri arasındaki boşluğu kapatmaktır. öyle bazı kullanıcıların diğerlerine göre belirli bir avantaja sahip olabileceği ancak yatırımlarının en azından güçle birlikte doğrusal olarak büyümelidir. Daha genel olarak özel amaçlı cihazların üretilmesi mümkün olduğu kadar az kârlı olmalıdır. 5.1 İlgili çalışmalar Orijinal Bitcoin proof-of-work protokolü, CPU yoğun fiyatlandırma işlevini SHA-256 kullanır. Temel olarak temel mantıksal operatörlerden oluşur ve yalnızca hesaplama hızına dayanır. işlemci bu nedenle çok çekirdekli/taşıyıcı uygulaması için mükemmel şekilde uygundur. Ancak modern bilgisayarlar yalnızca saniyedeki işlem sayısıyla sınırlı değildir. ama aynı zamanda hafıza boyutuna göre. Bazı işlemciler diğerlerinden önemli ölçüde daha hızlı olabilse de [8], bellek boyutlarının makineler arasında değişme olasılığı daha azdır. Belleğe bağlı fiyat fonksiyonları ilk olarak Abadi ve diğerleri tarafından tanıtıldı ve şu şekilde tanımlandı: “hesaplama zamanına belleğe erişimde harcanan sürenin hakim olduğu işlevler” [15]. Ana fikir, büyük bir veri bloğunu (“not defteri”) tahsis eden bir algoritma oluşturmaktır. Nispeten yavaş erişilebilen bellek içinde (örneğin RAM) ve “bir içindeki öngörülemeyen konumlar dizisi”. Bir blok muhafaza edilebilecek kadar büyük olmalıdır Verileri her erişim için yeniden hesaplamaktan daha avantajlıdır. Algoritma aynı zamanda dahili paralelliği önler, dolayısıyla N eşzamanlı iş parçacığı N kat daha fazla bellek gerektirir hemen. Dwork ve arkadaşları [22] bu yaklaşımı araştırıp resmileştirdiler ve bu da onları başka bir yaklaşım önermeye yöneltti. fiyatlandırma fonksiyonunun bir çeşidi: “Mbound”. Bir eser daha F. Coelho'ya ait [20] 11 21 Görünüşte bunlar bizim UTXO'larımız: tutarlar ve hedef anahtarlarımız. Bu standart işlemi oluşturan ve Bob'a gönderen kişi Alex ise, o zaman Alex'in özel anahtarları da vardır bunların her birine. Bu diyagramı çok seviyorum çünkü daha önceki bazı sorulara yanıt veriyor. Bir Txn girişi oluşur bir dizi Txn çıkışı ve bir keresim. Daha sonra tümü dahil olmak üzere halka imzayla imzalanır. Alex'in anlaşmaya dahil edilen tüm yabancı işlemlere ait özel anahtarları. Txn çıktısı bir miktar ve bir hedef anahtarından oluşur. İşlemin alıcısı, harcamak için makalede daha önce açıklandığı gibi tek kullanımlık özel anahtarlarını istedikleri zaman oluşturabilirler. para. Bunun gerçek kodla ne kadar eşleştiğini öğrenmek çok keyifli olacak... Hayır, Nic van Saberhagen iş kanıtı algoritmasının bazı özelliklerini gevşek bir şekilde açıklıyor, aslında bu algoritmayı tanımlamadan. CryptoNight algoritmasının kendisi derin bir analiz GEREKTİRİR. Bunu okuyunca kekeledim. Yatırım en azından güçle birlikte doğrusal olarak mı büyümeli, yoksa yatırım en fazla güçle doğrusal olarak mı büyüyor? Ve sonra şunu fark ettim; Ben bir madenci veya yatırımcı olarak genellikle "ne kadar güç elde edebilirim" diye düşünürüm yatırım için mi?" "Sabit miktardaki güç için ne kadar yatırım gerekir?" değil. Elbette, yatırımı I ile, gücü ise P ile belirtin. Eğer I(P) gücün bir fonksiyonu olarak yatırım ise ve P(I) yatırımın bir fonksiyonu olarak güçtür, birbirlerinin tersi olacaktır (nerede olursa olsun) tersler mevcut olabilir). Ve eğer I(P), doğrusaldan daha hızlıysa, P(I) doğrusaldan daha yavaştır. Bu nedenle, yatırımcılar için daha düşük bir getiri oranı olacaktır. Yani yazarın burada söylediği şu: "Elbette, ne kadar çok yatırım yaparsanız, o kadar çok kazanırsınız. güç. Ancak bunu daha düşük bir getiri oranı meselesi haline getirmeye çalışmalıyız." CPU yatırımları eninde sonunda alt sınıra ulaşacak; soru, yazarların ASIC'leri de bunu yapmaya zorlayacak bir POW algoritması tasarladık. Varsayımsal bir "geleceğin para birimi" her zaman en yavaş/en sınırlı kaynaklarla mı madencilik yapmalı? Abadi ve arkadaşlarının (bazı Google ve Microsoft mühendislerinin yazar olduğu) makalesi şöyledir: esasen, son birkaç yıldır bellek boyutunun çok daha küçük olduğu gerçeğini kullanarak makineler arasında işlemci hızından daha fazla farklılık vardır ve doğrusaldan daha fazla bir yatırım-güç oranına sahiptir. Birkaç yıl içinde bunun yeniden değerlendirilmesi gerekebilir! Herşey bir silahlanma yarışı... Bir hash işlevinin oluşturulması zordur; bu kısıtlamaları karşılayan bir hash işlevi oluşturmak daha zor görünüyor. Bu yazıda gerçekle ilgili hiçbir açıklama yok gibi görünüyor hashing algoritması CryptoNight. Bunun SHA-3'ün hafıza açısından zor bir uygulaması olduğunu düşünüyorum. forum gönderilerinde ama hiçbir fikrim yok... ve mesele de bu. Açıklanması gerekir.
en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme ve proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüşüm probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerinin kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), burada N sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 en etkili çözümü önerdi: “Hokkaido”. Bildiğimiz kadarıyla büyük bir dizide sözde rastgele arama fikrine dayanan son çalışma C. Percival [32] tarafından “scrypt” olarak bilinen algoritma. Önceki işlevlerden farklı olarak aşağıdakilere odaklanır: anahtar türetme, proof-of-work sistemler değil. Bu gerçeğe rağmen scrypt amacımıza hizmet edebilir: SHA-256 gibi kısmi hash dönüştürme probleminde bir fiyatlandırma işlevi olarak iyi çalışır. Bitcoin. Şu ana kadar Litecoin [14] ve diğer bazı Bitcoin çatallarda şifre zaten uygulandı. Bununla birlikte, uygulanması aslında belleğe bağlı değildir: "bellek erişim süresi / genel" oranı time" yeterince büyük değil çünkü her örnek yalnızca 128 KB kullanıyor. Bu, GPU madencilerine izin verir kabaca 10 kat daha etkili olmaya devam ediyor ve nispeten yaratma olanağı bırakmaya devam ediyor ucuz ama son derece verimli madencilik cihazları. Dahası, şifre yapısının kendisi bellek boyutu ile bellek boyutu arasında doğrusal bir değiş tokuşa izin verir. Karalama defterindeki her bloğun yalnızca bir öncekinden türetilmesi nedeniyle CPU hızı. Örneğin, her ikinci bloğu saklayabilir ve diğerlerini tembel bir şekilde yeniden hesaplayabilirsiniz, yani yalnızca gerekli olduğunda. Sözde rastgele indekslerin düzgün dağıldığı varsayılır, dolayısıyla ek blokların yeniden hesaplamalarının beklenen değeri 1'dir \(2 \cdot N\), buradaN sayıdır yinelemelerden oluşur. Genel hesaplama süresi yarıdan daha az artar çünkü ayrıca karalama defterinin hazırlanması ve hashing gibi zamandan bağımsız (sabit zamanlı) işlemler her yineleme. Bellek maliyetlerinin 2/3'ünden tasarruf etmek 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N ek yeniden hesaplama; 9/10 sonuç 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5K. Sadece 1 tanesinin saklandığını göstermek kolaydır. tüm bloklardan zamanı s−1 faktöründen daha az artırır 2. Bu da CPU'lu bir makinenin olduğu anlamına gelir. Modern çiplerden 200 kat daha hızlı olan çipler, karalama defterinin yalnızca 320 baytını depolayabiliyor. 5.2 Önerilen algoritma proof-of-work fiyatlandırma işlevi için yeni bir belleğe bağlı algoritma öneriyoruz. Şuna dayanır: Yavaş bir belleğe rastgele erişim ve gecikme bağımlılığını vurgular. Her birini şifrelemenin aksine yeni blok (64 bayt uzunluğunda) önceki tüm bloklara bağlıdır. Sonuç olarak varsayımsal "Hafıza koruyucu" hesaplama hızını katlanarak artırmalıdır. Algoritmamız aşağıdaki nedenlerden dolayı örnek başına yaklaşık 2 Mb gerektirir: 1. Modern işlemcilerin ana akım haline gelmesi gereken L3 önbelleğine (çekirdek başına) sığar birkaç yıl içinde; 2. Bir megabayt dahili bellek, modern bir ASIC boru hattı için neredeyse kabul edilemez bir boyuttur; 3. GPU'lar yüzlerce eş zamanlı örneği çalıştırabilir ancak başka açılardan sınırlıdırlar: GDDR5 bellek, CPU L3 önbelleğinden daha yavaştır ve bant genişliği açısından dikkat çekicidir. rastgele erişim hızı. 4. Karalama defterinin önemli ölçüde genişlemesi yinelemelerde bir artış gerektirecektir; dönüş genel bir süre artışı anlamına gelir. Güvenin olmadığı bir p2p ağında "ağır" çağrılar, ciddi güvenlik açıkları var çünkü düğümler her yeni bloğun proof-of-work değerini kontrol etmek zorunda. Bir düğüm her hash değerlendirmesine önemli miktarda zaman harcıyorsa, bu kolayca yapılabilir. Rastgele çalışma verilerine (nonce değerleri) sahip bir dizi sahte nesne tarafından DDoS uygulandı. 12 22 Boşver, bu bir şifreli para mı? Algoritma nerede? Gördüğüm tek şey bir reklam. Burası, eğer PoW algoritması değerliyse, Cryptonote'un gerçekten parlayacağı yerdir. değil gerçekten SHA-256, gerçekten şifreli değil. Yenidir, belleğe bağlıdır ve yinelenmez.
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun bir şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 23 Atomik birimler. Bunu sevdim. Bu Satoshi'nin eşdeğeri mi? Eğer öyleyse, bu 185 milyar kriptonot olacağı anlamına geliyor. Bunun eninde sonunda birkaç sayfada düzeltilmesi gerektiğini biliyorum, yoksa bir yazım hatası mı var? Temel ödül "kalan tüm paralar" ise tüm paraları almak için yalnızca bir blok yeterlidir. Instamine. Öte yandan, eğer bunun bir şekilde orantılı olması gerekiyorsa, şimdi ile madeni para üretim-sonlandırma-tarihi arasında zaman farkı var mı? bu olurdu mantıklı. Ayrıca benim dünyamda bunun gibi iki büyüktür işareti "çok daha büyük" anlamına gelir. Yazar mı muhtemelen başka bir şey mi kastediyorsun? Eğer zorluğa uyum her blokta gerçekleşirse, saldırganın çok büyük bir çiftliği olabilir. makineler dikkatle seçilmiş zaman aralıklarında madencilik yapar ve kapatır. Zorluk ayarlama formülleri uygun şekilde sönümlenmezse, bu durum zorlukta kaotik bir patlamaya (veya sıfıra çarpmaya) neden olabilir. Bitcoin'nin yönteminin hızlı yeniden hesaplamalar için uygun olmadığına şüphe yok, ancak eylemsizlik fikri bu sistemlerde olduğu gibi kabul edilmesi değil, kanıtlanması gerekir. Ayrıca salınımlar görünürde dalgalanmalara neden olmadığı sürece ağ zorluğu mutlaka bir sorun değildir. madeni para arzı - ve çok hızlı değişen bir zorluğa sahip olmak "aşırı düzeltmeye" neden olabilir. Özellikle birkaç dakika gibi kısa bir zaman diliminde harcanan zaman, "toplam" ile orantılı olacaktır. ağda oluşturulan blok sayısı." Orantılılık sabitinin kendisi büyüyecek zamanla, eğer CN başlarsa muhtemelen katlanarak. "Oluşturulan toplam blokları" korumak için zorluğu basitçe ayarlamak daha iyi bir fikir olabilir. Son bloğun ana zincire eklenmesinden bu yana ağ" sabit bir değer dahilinde veya sınırlı varyasyon veya buna benzer bir şey. Hesaplamalı uyarlanabilir bir algoritma ise uygulanması kolay belirlenebilirse, bu sorunu çözüyor gibi görünmektedir. Ancak bu yöntemi kullanırsak, büyük bir madencilik çiftliği olan birisi çiftliğini kapatabilir. birkaç saatliğine açın ve tekrar açın. İlk birkaç blokta o çiftlik banka. Yani aslında bu yöntem ilginç bir noktayı gündeme getiriyor: madencilik (ortalama olarak) bir Özellikle daha fazla insan ağa bağlandıkça yatırım getirisi olmadan oyunu kaybetmek. Madencilik zorluğu varsa ağ çok yakından takip ediliyor hashoranı, insanların bu kadar madencilik yapacağından bir şekilde şüpheliyim şu anda yapıyorum. Veya diğer taraftan madencilik çiftliklerini 7/24 çalışır durumda tutmak yerine, onları çevirebilirler. 6 saat açık, 2 saat kapalı, 6 saat açık, 2 saat kapalı veya bunun gibi bir şey. Sadece başka bir paraya geçin birkaç saat boyunca zorluğun düşmesini bekleyin, sonra birkaç ekstra kazanmak için tekrar atlayın ağ uyum sağladıkça karlılık blokları. Ve biliyor musun? Bu aslında muhtemelen Aklıma koyduğum en iyi madencilik senaryolarından biri... Bu döngüsel olabilir, ancak blok oluşturma süresi ortalama yaklaşık bir dakika ise, bunu yapabilir miyiz? "harcanan zaman" için blok sayısını temsili olarak mı kullanacaksınız?
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy kullanma hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 24 Tamam, elimizde bir blockchain var ve her blokta yalnızca zaman damgaları var EK OLARAK sipariş edildi. Bu açıkça ayarlamayı zorlaştırmak için eklenmiştir, çünkü zaman damgaları Bahsedildiği gibi çok güvenilmez. Zincirde çelişen zaman damgalarına sahip olmamıza izin veriliyor mu? Zincirde A Blok B Bloktan önce geliyorsa ve finansal açıdan her şey tutarlıysa, ancak A Blok, B Bloktan sonra oluşturulmuş gibi görünüyor? Çünkü belki birisinin sahibi ağın büyük bir kısmı? Tamam mı? Muhtemelen mali durum iyi olmadığı için. Tamam, bu keyfi "blokların yalnızca %80'i ana blockchain için meşru" olmasından nefret ediyorum yaklaşım. Yalancıların zaman damgalarını değiştirmesini engellemek için mi tasarlanmıştı? Ama şimdi ekliyor herkesin zaman damgaları hakkında yalan söylemesi ve sadece ortalamayı seçmesi için teşvik. Lütfen tanımlayın. Anlamı "Bu blok için yalnızca daha yüksek ücretler içeren işlemleri dahil edin" %p'den fazla, tercihen %2p'den yüksek ücretlerle" veya buna benzer bir şey mi? Sahte derken neyi kastediyorlar? İşlemin geçmiş geçmişiyle tutarlı olması durumunda blockchain ve işlem madencileri tatmin edecek ücretler içeriyor, bu yeterli değil mi? Peki, hayır, mutlaka değil. Maksimum blok boyutu yoksa, kötü niyetli bir kullanıcıyı tutacak hiçbir şey yoktur. Yavaşlamak için devasa bir işlem bloğunu tek seferde kendisine yüklemekten ağ. Maksimum blok boyutuna yönelik temel bir kural, insanların çok büyük miktarda çöp koymasını engeller işleri yavaşlatmak için blockchain üzerindeki verilerin hepsini aynı anda. Ancak böyle bir kuralın mutlaka Adaptif olun - örneğin Noel sezonunda trafiğin artmasını bekleyebiliriz ve blok boyutu çok büyüyecek ve hemen ardından blok boyutu düşecek tekrar. Yani ya a) bir çeşit uyarlanabilir üst sınıra ya da b) yeterince büyük bir üst sınıra ihtiyacımız var ki böylece %99'u makul Noel zirveleri sınırı aşmaz. Tabiki ikincisini yapmak imkansız tahmin - bir para biriminin tutunup tutunamayacağını kim bilebilir? Uyarlanabilir hale getirmek ve endişelenmemek daha iyi bu konuda. Ama sonra bir kontrol teorisi problemimiz var: bunu nasıl uyarlanabilir hale getireceğiz? saldırıya karşı savunmasızlık mı yoksa vahşi ve çılgın salınımlar mı? Uyarlanabilir bir yöntemin kötü niyetli kullanıcıların küçük miktarlar biriktirmesini engellemediğine dikkat edin blockchain üzerinde zamanla gereksiz verilerin birikmesi uzun vadeli şişkinliğe neden olur. Bu farklı bir konu tamamen ve kripto paraların ciddi sorunları olduğu bir durum.
6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashoranı yoğun bir şekilde büyüdüğünde veya daraldığında sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci maliyetleri dengelemek ile ücretlerden elde edilen karı dengelemek arasında karar verir ve kendi kararını verir Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 6 Diğer avantajlar 6.1 Sorunsuz emisyon CryptoNote dijital paralarının toplam miktarının üst sınırı şöyledir: MSarzı = 264 −1 atom birimleri. Bu, sezgiye değil, yalnızca uygulama sınırlarına dayanan doğal bir kısıtlamadır. "N tane para herkese yetmeli" gibi. Emisyon sürecinin düzgünlüğünü sağlamak için blok için aşağıdaki formülü kullanıyoruz: ödüller: Temel Ödül = (MSarzı −A) ≫18, burada A, daha önce üretilen madeni paraların miktarıdır. 6.2 Ayarlanabilir parametreler 6.2.1 Zorluk CryptoNote, her bloğun zorluğunu değiştiren bir hedefleme algoritması içerir. Bu Ağ hashhızının yoğun şekilde arttığı veya daraldığı durumlarda sistemin tepki süresini azaltır, sabit bir blok oranının korunması. Orijinal Bitcoin yöntemi, gerçek değer ilişkisini hesaplar ve son 2016 blok arasındaki zaman aralığını hedef alır ve bunu mevcut blok için çarpan olarak kullanır zorluk. Açıkçası bu, hızlı yeniden hesaplamalar için uygun değildir (büyük atalet nedeniyle) ve salınımlarla sonuçlanır. Algoritmamızın arkasındaki genel fikir, düğümlerin tamamladığı tüm işleri toplamak ve harcadıkları zamana bölün. İşin ölçüsü karşılık gelen zorluk değerleridir her blokta. Ancak yanlış ve güvenilmeyen zaman damgaları nedeniyle kesin zamanı belirleyemiyoruz bloklar arasındaki zaman aralığı. Kullanıcı zaman damgasını geleceğe ve bir sonraki zamana kaydırabilir aralıklar beklenmedik derecede küçük veya hatta negatif olabilir. Muhtemelen birkaç olay yaşanacak bu tür, böylece zaman damgalarını sıralayabilir ve aykırı değerleri (yani %20) kesebiliriz. aralığı geri kalan değerler karşılık gelen blokların %80'i için harcanan süredir. 6.2.2 Boyut sınırları Kullanıcılar blockchain dosyasını depolamak için ödeme yapar ve boyutuna göre oy verme hakkına sahip olur. Her madenci dengeleme arasındaki değiş tokuşla ilgilenirÜcretlerden maliyetleri ve karı kendisi belirler Blok oluşturmak için “yumuşak limit”. Ayrıca maksimum blok boyutuna ilişkin temel kural aşağıdakiler için gereklidir: blockchain'nin sahte işlemlerle doldurulması engelleniyor, ancak bu değerin sabit kodlanmış olmayın. MN, son N blok boyutunun medyan değeri olsun. Daha sonra boyut için "zor sınır" Blok kabul etme oranı \(2 \cdot M_N\)'dir. blockchain öğesinin şişmesini önler ancak yine de sınırın aşılmasına izin verir Gerekirse zamanla yavaş yavaş büyüyün. İşlem boyutunun açıkça sınırlandırılmasına gerek yoktur. Bir bloğun boyutuyla sınırlıdır; ve eğer birisi yüzlerce girdi/çıktı (veya Halka imzalardaki belirsizlik derecesinin yüksek olması nedeniyle) bunu yeterli ücret ödeyerek yapabilir. 6.2.3 Aşırı boyut cezası Bir madenci hâlâ kendi sıfır ücretli işlemleriyle dolu bir bloğu maksimum seviyeye kadar doldurma yeteneğine sahiptir boyut \(2 \cdot M_b\). Her ne kadar madencilerin yalnızca çoğunluğu medyan değeri değiştirebilse de, hala 13 25 Bir birim zaman N blok olacak şekilde zamanı yeniden ölçeklendirdiğimizde, ortalama blok boyutu yine de teorik olarak 2ˆt ile orantılı olarak üstel olarak büyüyebilir. Öte yandan, daha genel bir sınır sonraki blokta bazı f fonksiyonları için M_nf(M_n) olacaktır. f'nin hangi özellikleri Blok boyutunun bir miktar "makul büyümesini" garanti etmek için mi seçiyoruz? ilerlemesi blok boyutları (yeniden ölçeklendirme süresinden sonra) şöyle olur: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... Buradaki amaç, f dizisini doğrusal olarak daha hızlı büyümeyecek şekilde seçmektir: veya belki Log(t) olarak bile. Elbette, eğer bir a sabiti için f(M_n) = a ise, bu dizi şu şekildedir: aslında M_n aM_n aˆ2M_n aˆ3M_n ... Ve elbette, bunu en fazla doğrusal büyümeyle sınırlamanın tek yolu a=1'i seçmektir. Bu elbette mümkün değildir. Hiçbir şekilde büyümeye izin vermiyor. Öte yandan f(M_n) sabit olmayan bir fonksiyon ise durum çok daha karmaşıktır. karmaşıktır ve zarif bir çözüme izin verebilir. Bir süre bunun üzerinde düşüneceğim. Bu ücretin bir sonraki bölümdeki aşırı boyut cezasını indirecek kadar büyük olması gerekecektir. Genel bir kullanıcının neden erkek olduğu varsayılıyor? Ha?
blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci genel anahtar Pi için geçerli bir imza olup olmadığını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve ana anahtarın Φ ='ye karşılık geldiği senaryo maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'da kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım, Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'daki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 blockchain'yi şişirme ve düğümlerde ek yük oluşturma olasılığı. Cesaretini kırmak Kötü niyetli katılımcıların büyük bloklar oluşturmasını önleyen bir ceza fonksiyonu sunuyoruz: Yeni Ödül = Temel Ödül \(\cdot\) BlkBoyut MN −1 2 Bu kural yalnızca BlkSize minimum serbest blok boyutundan büyük olduğunda uygulanır; maksimuma yakın olmalıdır (10kb, MN \(\cdot\) %110). Madencilerin "normal boyutta" bloklar oluşturmasına izin veriliyor ve hatta Toplam ücretler cezayı aştığında bunu kârla aşarsınız. Ancak ücretlerin artması pek olası değil Ceza değerinden ikinci dereceden farklı olarak bir denge oluşacaktır. 6.3 İşlem komut dosyaları CryptoNote'un oldukça minimalist bir komut dosyası alt sistemi vardır. Gönderici bir ifade belirtir: Φ = f (x1, x2, . . . , xn), burada n, {Pi}n hedef genel anahtarlarının sayısıdır ben=1. Yalnızca beş ikili operatörler desteklenir: min, max, sum, mul ve cmp. Alıcı bu ödemeyi harcadığında, \(0 \leq k \leq n\) adet imza üretip bunları işlem girişine aktarır. Doğrulama süreci Pi ortak anahtarının geçerli bir imzasını kontrol etmek için Φ'yi xi = 1 ile değerlendirir ve xi = 0'dır. Doğrulayıcı, eğer > 0 ise ispatı kabul eder. Basitliğine rağmen bu yaklaşım olası her durumu kapsar: • Çoklu/Eşik imzası. Bitcoin tarzı "N'den M" çoklu imza için (ör. alıcı en az \(0 \leq M \leq N\) geçerli imza sağlamalıdır) Φ = x1+x2+. . .+xN \(\geq M\) (açıklık sağlamak için ortak cebirsel gösterimi kullanıyoruz). Ağırlıklı eşik imzası (bazı tuşlar diğerlerinden daha önemli olabilir) Φ = \(w_1 \cdot x_1\) + olarak ifade edilebilir \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Ve senaryoio burada ana anahtar şuna karşılık gelir: Φ = maks(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Herhangi bir karmaşık durumun olabileceğini göstermek kolaydır. bu operatörlerle ifade edilir, yani temeli oluştururlar. • Şifre koruması. Gizli bir şifreye sahip olmak, onu bilmekle eşdeğerdir. deterministik olarak şu paroladan türetilen özel bir anahtar: k = KDF(ler). Dolayısıyla bir alıcı k anahtarının altına başka bir imza sağlayarak şifreyi bildiğini kanıtlayabilir. Gönderen, ilgili genel anahtarı kendi çıktısına ekler. Bunu unutmayın yöntem, Bitcoin [13]'de kullanılan "işlem bulmacasından" çok daha güvenlidir; Girişlerde şifre açıkça iletilir. • Dejenere vakalar. Φ = 1 herkesin parayı harcayabileceği anlamına gelir; Φ = 0, çıktının sonsuza kadar harcanamaz olması. Genel anahtarlarla birleştirilmiş çıktı betiğinin gönderen için çok büyük olması durumunda, alıcının bu verileri girişine koyacağını belirten özel çıktı türünü kullanabilir gönderen bunun yalnızca hash kısmını sağlar. Bu yaklaşım Bitcoin'nin "hash'ye öde" yaklaşımına benzer özelliği, ancak yeni komut dosyası komutları eklemek yerine bu durumu veri yapısında ele alıyoruz seviye. 7 Sonuç Bitcoin'deki ana kusurları araştırdık ve bazı olası çözümler önerdik. Bu avantajlı özellikler ve devam eden gelişimimiz, CryptoNote'u yeni elektronik nakit sistemi haline getiriyor Bitcoin'nin ciddi bir rakibi, tüm çatallarını geride bırakıyor. 14 26 Eğer zaman içinde blok boyutunu sınırlamanın bir yolunu bulabilirsek bu gereksiz olabilir... Bu da doğru olamaz. "NewReward"ı yukarıya bakan bir parabole yerleştirdiler. blok boyutu bağımsız değişkendir. Böylece yeni ödül sonsuza kadar patlar. Diğer taraftan ise elde, yeni ödül Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)) olur, ardından yeni ödül tepe noktası blok boyutunda = Mn olan ve kesişme noktaları olan aşağıya doğru bakan bir parabol olacaktır. Blokboyutu = 0 ve Blokboyutu = 2Mn. Ve tanımlamaya çalıştıkları şey de bu gibi görünüyor. Ancak bu durum
Analisa

5
Hal ini tidak terlalu menjadi masalah ketika satu miliar orang di dunia hidup dengan pendapatan kurang dari satu dolar per tahun
hari dan tidak punya harapan untuk berpartisipasi dalam jaringan penambangan apa pun... kecuali jaringan ekonomi
dunia yang digerakkan oleh sistem mata uang p2p dengan satu cpu-satu suara, mungkin akan lebih baik lagi
lebih adil daripada sistem yang didorong oleh perbankan cadangan fraksional.
Namun protokol Cryptonote masih membutuhkan 51% pengguna yang jujur... lihat, misalnya, Cryptonote
forum di mana salah satu pengembangnya, Pliskov, mengatakan bahwa serangan tradisional replace-the-data-on-theblockchain 51% masih bisa berhasil. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
Perhatikan bahwa Anda tidak terlalu membutuhkan 51% pengguna yang jujur. Anda hanya benar-benar membutuhkan "tidak ada satu pun orang yang tidak jujur
faksi dengan lebih dari 51% kekuatan jaringan."
Sebut saja masalah bitcoin ini sebagai "kekakuan adaptif". Solusi Cryptonote untuk adaptif
kekakuan adalah fleksibilitas adaptif dalam nilai parameter protokol. Jika Anda membutuhkan ukuran blok yang lebih besar,
tidak masalah, jaringan akan menyesuaikan secara perlahan sepanjang waktu.
Artinya,
cara Bitcoin menyesuaikan kesulitan dari waktu ke waktu dapat direplikasi di seluruh protokol kami
parameter sehingga konsensus jaringan tidak perlu diperoleh untuk memperbarui protokol.
Di permukaan, ini sepertinya ide yang bagus, tapi tanpa pemikiran yang matang, itu hanya penyesuaian diri
sistem bisa menjadi sangat tidak terduga dan kacau. Kami akan membahasnya lebih lanjut nanti sebagai
peluang muncul. Sistem yang "baik" berada di antara sistem adaptif kaku dan adaptif
fleksibel, dan bahkan mungkin kekakuan itu sendiri bersifat adaptif.
Jika kita benar-benar memiliki "satu CPU-satu suara", maka berkolaborasi dan mengembangkan kumpulan akan mencapai 51%
akan lebih sulit. Kami berharap setiap CPU di dunia menambang, dari ponsel
ke CPU terpasang di Tesla Anda saat sedang diisi dayanya.
http://en.wikipedia.org/wiki/Pareto_principle
Saya menyatakan bahwa keseimbangan Pareto tidak dapat dihindari. 20% dari sistem akan melakukannya
memiliki 80% CPU, atau 20% sistem akan memiliki 80% ASIC. Saya berhipotesis demikian karena distribusi kekayaan yang mendasari masyarakat sudah menunjukkan distribusi Pareto,
dan ketika para penambang baru bergabung, mereka diambil dari distribusi yang mendasarinya.
Namun, saya berpendapat bahwa protokol dengan satu-cpu-satu-suara akan melihat ROI pada perangkat keras.
Blokir
imbalan per node akan lebih berbanding lurus dengan jumlah node dalam jaringan karena
distribusi kinerja di seluruh node akan jauh lebih ketat. Bitcoin, di sisi lain
di sisi lain, melihat imbalan blok (per node) lebih sebanding dengan kapasitas komputasinya
simpul. Artinya, hanya “anak-anak besar” yang masih terlibat dalam penambangan. Di sisi lain,
meskipun prinsip Pareto akan tetap berlaku, di dunia satu cpu-satu suara, semua orang
berpartisipasi dalam keamanan jaringan dan memperoleh sedikit pendapatan penambangan.
Di dunia ASIC, tidak masuk akal untuk memasang setiap XBox dan ponsel milik saya.
Di dunia onecpu-one-vote, sangat masuk akal dalam hal imbalan penambangan. Sebagai konsekuensi yang menggembirakan,
memperoleh 51% suara lebih sulit ketika ada lebih banyak suara, menghasilkan hasil yang bagus
manfaat untuk keamanan jaringan..perangkat keras yang dijelaskan sebelumnya. Misalkan tingkat hash global menurun secara signifikan, bahkan untuk
sebentar, dia sekarang dapat menggunakan kekuatan penambangannya untuk membuat rantai bercabang dan melakukan pembelanjaan ganda. Seperti yang akan kita lihat
nanti di artikel ini, kemungkinan besar peristiwa yang dijelaskan sebelumnya akan terjadi.
2.3
Emisi tidak teratur
Bitcoin memiliki tingkat emisi yang telah ditentukan: setiap blok yang dipecahkan menghasilkan sejumlah koin yang tetap.
Kira-kira setiap empat tahun, imbalan ini dikurangi setengahnya. Niat awalnya adalah untuk membuat a
emisi halus terbatas dengan peluruhan eksponensial, namun kenyataannya kita memiliki emisi linier sepotong-sepotong
fungsi yang breakpointnya dapat menyebabkan masalah pada infrastruktur Bitcoin.
Ketika breakpoint terjadi, penambang mulai menerima hanya setengah dari nilai sebelumnya
hadiah. Perbedaan absolut antara 12,5 dan 6,25 BTC (diproyeksikan untuk tahun 2020) mungkin
tampaknya dapat ditoleransi. Namun, ketika memeriksa penurunan 50 hingga 25 BTC yang terjadi pada bulan November
28 Tahun 2012, dirasa tidak pantas untuk sejumlah besar anggota komunitas pertambangan. Gambar
Gambar 1 menunjukkan penurunan drastis pada tingkat hash jaringan pada akhir bulan November, tepatnya ketika
separuh terjadi. Peristiwa ini bisa saja menjadi momen yang tepat bagi individu jahat tersebut
dijelaskan di bagian fungsi proof-of-work untuk melakukan serangan pembelanjaan ganda [36].
Gambar 1. Bitcoin hashbagan tarif
(sumber: http://bitcoin.sipa.be)
2.4
Konstanta yang dikodekan secara keras
Bitcoin memiliki banyak batasan yang dikodekan secara permanen, yang beberapa di antaranya merupakan elemen alami dari desain aslinya (mis.
frekuensi blok, jumlah maksimum uang beredar, jumlah konfirmasi) sedangkan lainnya
tampaknya merupakan kendala buatan. Yang penting bukanlah batasannya, melainkan ketidakmampuan untuk berubah dengan cepat
3
perangkat keras yang dijelaskan sebelumnya. Misalkan tingkat hash global menurun secara signifikan, bahkan untuk
sebentar, dia sekarang dapat menggunakan kekuatan penambangannya untuk membuat rantai bercabang dan melakukan pembelanjaan ganda. Seperti yang akan kita lihat
nanti di artikel ini, kemungkinan besar peristiwa yang dijelaskan sebelumnya akan terjadi.
2.3
Emisi tidak teratur
Bitcoin memiliki tingkat emisi yang telah ditentukan: setiap blok yang dipecahkan menghasilkan sejumlah koin yang tetap.
Kira-kira setiap empat tahun, imbalan ini dikurangi setengahnya. Niat awalnya adalah untuk membuat a
emisi halus terbatas dengan peluruhan eksponensial, namun kenyataannya kita memiliki emisi linier sepotong-sepotong
fungsi yang breakpointnya dapat menyebabkan masalah pada infrastruktur Bitcoin.
Ketika breakpoint terjadi, penambang mulai menerima hanya setengah dari nilai sebelumnya
hadiah. Perbedaan absolut antara 12,5 dan 6,25 BTC (diproyeksikan untuk tahun 2020) mungkin
tampaknya dapat ditoleransi. Namun, ketika memeriksa penurunan 50 hingga 25 BTC yang terjadi pada bulan November
28 Tahun 2012, dirasa tidak pantas untuk sejumlah besar anggota komunitas pertambangan. Gambar
Gambar 1 menunjukkan penurunan drastis pada tingkat hashjaringan pada akhir bulan November, tepatnya ketika
separuh terjadi. Peristiwa ini bisa saja menjadi momen yang tepat bagi individu jahat tersebut
dijelaskan di bagian fungsi proof-of-work untuk melakukan serangan pembelanjaan ganda [36].
Gambar 1. Bitcoin hashbagan tarif
(sumber: http://bitcoin.sipa.be)
2.4
Konstanta yang dikodekan secara keras
Bitcoin memiliki banyak batasan yang dikodekan secara keras, yang beberapa di antaranya merupakan elemen alami dari desain aslinya (mis.
frekuensi blok, jumlah maksimum uang beredar, jumlah konfirmasi) sedangkan lainnya
tampaknya merupakan kendala buatan. Yang penting bukanlah batasannya, melainkan ketidakmampuan untuk berubah dengan cepat
3
6
Sebut saja ini, serangan zombie.
Mari kita bahas bagaimana emisi berkelanjutan bisa terjadi
terkait dengan satu-cpu-satu-suara dalam skenario serangan zombie.
Di dunia satu-cpu-satu-suara, setiap ponsel dan mobil, kapan pun tidak digunakan, akan ditambang. Mengumpulkan banyak perangkat keras murah untuk membuat pertambangan akan sangat mudah, karena sederhana
tentang segala sesuatu memiliki CPU di dalamnya. Di sisi lain, pada saat itu, jumlah CPU
diperlukan untuk melancarkan serangan 51% akan cukup mencengangkan, menurutku.
Selain itu,
justru karena mengumpulkan perangkat keras yang murah akan mudah, kita dapat mengharapkan a
banyak orang mulai menimbun apa pun dengan CPU. Perlombaan senjata di dunia satu cpu-satu suara
tentu lebih egaliter dibandingkan di dunia ASIC.
Oleh karena itu, diskontinuitas dalam jaringan
keamanan karena tingkat emisi seharusnya KURANG menjadi masalah di dunia satu-cpu-satu-suara.
Namun, masih ada dua fakta yang tersisa: 1) diskontinuitas laju emisi dapat menyebabkan dampak yang menghambat
ekonomi dan keamanan jaringan keduanya, yang buruk, dan 2) meskipun serangan 51%.
dilakukan oleh seseorang yang mengumpulkan perangkat keras murah masih bisa terjadi dalam satu-cpu-satu-pilih dunia,
sepertinya itu harusnya lebih sulit.
Agaknya, perlindungan terhadap hal ini adalah semua pelaku yang tidak jujur akan mencoba hal ini
secara bersamaan, dan kita kembali ke gagasan keamanan Bitcoin sebelumnya: "kita tidak memerlukan tindakan tidak jujur
faksi untuk mengendalikan lebih dari 51% jaringan."
Penulis mengklaim di sini bahwa satu masalah dengan bitcoin adalah diskontinuitas emisi koin
Tingkat ini dapat menyebabkan penurunan tiba-tiba dalam partisipasi jaringan, dan karenanya keamanan jaringan. Jadi,
tingkat emisi koin yang berkelanjutan, dapat dibedakan, dan mulus lebih disukai.
Penulisnya tidak salah. Penurunan partisipasi jaringan secara tiba-tiba dapat terjadi
menyebabkan masalah seperti itu, dan jika kita dapat menghilangkan salah satu sumbernya, kita harus melakukannya. Karena itu, itu benar
mungkin saja emisi koin yang "relatif konstan" dalam jangka waktu lama diselingi oleh perubahan yang tiba-tiba
adalah cara ideal untuk melangkah dari sudut pandang ekonomi. Saya bukan seorang ekonom. Jadi, mungkin kita
harus memutuskan apakah kita akan menukar keamanan jaringan dengan sesuatu yang ekonomis-apa yang ada di sini?
http://arxiv.org/abs/1402.2009mereka jika perlu yang menyebabkan kelemahan utama. Sayangnya, sulit untuk memprediksi kapan hal tersebut akan terjadi
konstanta mungkin perlu diubah dan menggantinya dapat menimbulkan konsekuensi yang buruk.
Contoh bagus dari perubahan batas hardcode yang menyebabkan konsekuensi bencana adalah pemblokiran
batas ukuran disetel ke 250kb1. Batas ini cukup untuk menampung sekitar 10.000 transaksi standar. Di
awal tahun 2013, batas tersebut hampir tercapai dan tercapai kesepakatan untuk meningkatkannya
batas. Perubahan tersebut diterapkan pada dompet versi 0.8 dan diakhiri dengan pemisahan rantai 24 blok
dan serangan pembelanjaan ganda yang berhasil [9]. Meskipun bugnya bukan pada protokol Bitcoin, tapi
melainkan di mesin database, hal itu bisa dengan mudah ditangkap dengan stress test sederhana jika ada
tidak ada batasan ukuran blok yang diperkenalkan secara artifisial.
Konstanta juga berperan sebagai bentuk titik sentralisasi.
Meskipun bersifat peer-to-peer
Bitcoin, sebagian besar node menggunakan klien referensi resmi [10] yang dikembangkan oleh
sekelompok kecil orang. Kelompok ini membuat keputusan untuk menerapkan perubahan pada protokol
dan kebanyakan orang menerima perubahan ini terlepas dari “kebenarannya”. Beberapa keputusan menyebabkan
diskusi yang memanas bahkan seruan boikot [11], yang menandakan bahwa komunitas dan
pengembang mungkin tidak setuju pada beberapa poin penting. Oleh karena itu tampaknya logis untuk memiliki protokol
dengan variabel yang dapat dikonfigurasi pengguna dan dapat disesuaikan sendiri sebagai cara yang mungkin untuk menghindari masalah ini.
2.5
Skrip besar
Sistem skrip di Bitcoin adalah fitur yang berat dan kompleks. Ini berpotensi memungkinkan seseorang untuk berkreasi
transaksi canggih [12], namun beberapa fiturnya dinonaktifkan karena masalah keamanan dan
bahkan ada yang belum pernah dipakai [13]. Naskah (termasuk bagian pengirim dan penerima)
untuk transaksi terpopuler di Bitcoin tampilannya seperti ini:
Analiz

5
Dünyada bir milyar insanın günde bir dolardan daha az bir parayla yaşaması pek de önemli değil.
ve herhangi bir madencilik ağına katılma konusunda hiçbir umudum yok... ama ekonomik bir
Bir işlemci-bir oy ilkesine dayalı bir p2p para sistemi tarafından yönlendirilen dünya, muhtemelen daha fazla olacaktır.
Kısmi rezerv bankacılığının yönlendirdiği bir sistemden daha adil.
Ancak Cryptonote'un protokolü hala %51 dürüst kullanıcı gerektiriyor... örneğin Cryptonote'a bakın
Geliştiricilerden biri olan Pliskov'un, geleneksel veriyi değiştirmeblockchain %51 saldırısının hala işe yarayabileceğini söylediği forumlarda. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
Gerçekten %51 dürüst kullanıcıya ihtiyacınız olmadığını unutmayın. Gerçekten ihtiyacın olan tek bir sahtekârın olmaması
ağın hashing gücünün %51'inden fazlasına sahip olan grup."
Bitcoin'in bu sözde sorununa "adaptif katılık" adını verelim. Cryptonote'un uyarlanabilirlik çözümü
katılık, protokol parametre değerlerinde uyarlanabilir esnekliktir. Daha büyük blok boyutlarına ihtiyacınız varsa,
sorun değil, ağ sürekli olarak yavaş yavaş ayarlanıyor olacaktır.
Yani,
Bitcoin'in zaman içinde zorluğu ayarlama şekli tüm protokolümüzde kopyalanabilir
Böylece protokolün güncellenmesi için ağ konsensusunun elde edilmesine gerek kalmaz.
Görünüşte bu iyi bir fikir gibi görünüyor, ancak dikkatli bir öngörü olmadan, kendi kendini ayarlayan bir
sistem oldukça öngörülemez ve kaotik hale gelebilir. Bu konuyu daha sonra detaylı olarak inceleyeceğiz
fırsatlar ortaya çıkıyor. "İyi" sistemler uyarlanabilir katı ve uyarlanabilir arasında bir yerdedir
esnektir ve belki de katılığın kendisi bile uyarlanabilirdir.
Eğer gerçekten "bir CPU-bir oy"a sahip olsaydık, %51'e ulaşmak için işbirliği yapıp havuzlar geliştirebilirdik
daha zor olurdu. Dünyadaki her CPU'nun telefonlardan madencilik yapmasını beklerdik
Tesla'nız şarj olurken yerleşik CPU'ya.
http://en.wikipedia.org/wiki/Pareto_principle
Pareto dengesinin bir şekilde kaçınılmaz olduğunu iddia ediyorum. Sistemin %20'si
CPU'ların %80'ine sahip olacak veya sistemin %20'si ASIC'lerin %80'ine sahip olacak. Bunu varsayıyorum çünkü toplumdaki temel zenginlik dağılımı zaten Pareto dağılımını gösteriyor,
ve yeni madenciler katıldıkça bu temel dağılımdan yararlanıyorlar.
Ancak, bir işlemci-bir oy ilkesine dayalı protokollerin donanım üzerinde yatırım getirisi göreceğini savunuyorum.
Blok
Düğüm başına ödül, ağdaki düğüm sayısıyla daha yakından orantılı olacaktır çünkü
Performansın düğümler arasındaki dağılımı çok daha sıkı olacaktır. Bitcoin, diğer tarafta
bir blok ödülünün (düğüm başına) hesaplama kapasitesiyle daha orantılı olduğunu düşünüyor
düğüm. Yani madencilik oyununda hâlâ yalnızca "büyük adamlar" var. Öte yandan,
Pareto ilkesi hâlâ yürürlükte olsa da, bir işlemcinin bir oy olduğu bir dünyada herkes
ağ güvenliğine katılır ve bir miktar madencilik geliri elde eder.
ASIC dünyasında, her XBox'u ve cep telefonunu madencilik için donatmak mantıklı değil.
Tek işlemcili bir oy dünyasında, madencilik ödülü açısından bu çok mantıklı. Keyifli bir sonuç olarak,
Oyların sayısı arttıkça %51 oy almak daha zor oluyor ve bu da güzel bir sonuç sağlıyor.
ağ güvenliğine fayda sağlar..Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım.
Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi
Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir.
2.3
Düzensiz emisyon
Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir.
Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı
üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz
kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev.
Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar.
ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark,
tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken
28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil
Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor;
yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi.
proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır.
Şekil 1. Bitcoin hashoran tablosu
(kaynak: http://bitcoin.sipa.be)
2.4
Sabit kodlanmış sabitler
Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör.
blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer
yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil
3
Daha önce açıklanan donanım. Küresel hashoranın önemli ölçüde azaldığını varsayalım.
Bir anlığına artık madencilik gücünü kullanarak zinciri çatallayabilir ve çift harcama yapabilir. Göreceğimiz gibi
Bu makalenin ilerleyen kısımlarında, daha önce anlatılan olayın gerçekleşmesi pek olası değildir.
2.3
Düzensiz emisyon
Bitcoin önceden belirlenmiş bir emisyon oranına sahiptir: çözülen her blok sabit miktarda para üretir.
Yaklaşık her dört yılda bir bu ödül yarıya indirilir. Asıl amaç bir yaratmaktı
üstel bozulma ile sınırlı düzgün emisyon, ancak aslında parçalı doğrusal bir emisyona sahibiz
kesme noktaları Bitcoin altyapısında sorunlara neden olabilecek işlev.
Kırılma noktası oluştuğunda madenciler önceki değerlerinin yalnızca yarısını almaya başlarlar.
ödül. 12,5 ile 6,25 BTC (2020 yılı için öngörülen) arasındaki mutlak fark,
tolere edilebilir görünüyor. Ancak Kasım ayında gerçekleşen 50 ila 25 BTC düşüşünü incelerken
28 2012, madencilik camiasının önemli sayıda üyesi için uygunsuz bulundu. Şekil
Şekil 1, Kasım ayı sonunda ağın hashoranında çarpıcı bir düşüş gösteriyor;
yarılanma gerçekleşti. Bu olay kötü niyetli birey için mükemmel bir an olabilirdi.
proof-of-work işlev bölümünde çift harcama saldırısı [36] gerçekleştirmek için açıklanmıştır.
Şekil 1. Bitcoin hashoran tablosu
(kaynak: http://bitcoin.sipa.be)
2.4
Sabit kodlanmış sabitler
Bitcoin, bazıları orijinal tasarımın doğal unsurları olan birçok sabit kodlanmış sınıra sahiptir (ör.
blok sıklığı, maksimum para arzı miktarı, onay sayısı) ve diğer
yapay kısıtlamalar gibi görünüyor. Hızla değişememe gibi, sınırlar da değil
3
6
Buna bir zombi saldırısı diyelim.
Sürekli emisyonun nasıl olabileceğini tartışalım
zombi saldırısı senaryosunda bir işlemci bir oy ile ilgili.
Tek işlemcinin tek oy olduğu bir dünyada, her cep telefonu ve araba boşta kaldığında madencilik yapıyor olurdu. Bir madencilik çiftliği oluşturmak için yığınla ucuz donanım toplamak çok çok kolay olurdu çünkü
neredeyse her şeyin içinde bir CPU vardır. Öte yandan, bu noktada CPU sayısı
% 51'lik bir saldırı başlatmak için gerekli olanın oldukça şaşırtıcı olacağını düşünüyorum.
Ayrıca,
kesinlikle çünkü ucuz donanım toplamak kolay olacaktır, makul bir şekilde
Pek çok insan CPU ile her şeyi istiflemeye başlıyor. Tek işlemcinin tek oy olduğu bir dünyada silahlanma yarışı
ASIC dünyasına göre mutlaka daha eşitlikçidir.
Bu nedenle ağda bir süreksizlik
Emisyon oranlarından kaynaklanan güvenlik, tek işlemcinin bir oy olduğu bir dünyada DAHA AZ sorun olmalıdır.
Ancak geriye iki gerçek kalıyor: 1) Emisyon oranındaki süreksizlik, emisyon oranında kekemelik etkisine yol açabilir.
hem ekonomi hem de ağ güvenliği açısından kötü, ve 2) %51'lik bir saldırı olmasına rağmen
Ucuz donanım toplayan biri tarafından gerçekleştirilen tek işlemcili bir bilgisayarda da gerçekleşebilir-oy ver dünya,
sanki daha zor olmalı.
Muhtemelen buna karşı önlem, tüm sahtekâr aktörlerin bunu deneyecek olmasıdır
eşzamanlı olarak Bitcoin'nin önceki güvenlik kavramına geri dönüyoruz: "dürüst olmayanlara ihtiyacımız yok
ağın %51'inden fazlasını kontrol eden grup."
Yazar burada bitcoin ile ilgili bir problemin madeni para emisyonundaki süreksizlik olduğunu iddia ediyor
oranı, ağ katılımında ve dolayısıyla ağ güvenliğinde ani düşüşlere neden olabilir. Böylece,
sürekli, farklılaştırılabilir, düzgün bir madeni para emisyon oranı tercih edilir.
Yazar mutlaka hatalı değil. Ağ katılımındaki herhangi bir ani düşüş,
böyle bir soruna yol açıyor ve eğer bunun bir kaynağını ortadan kaldırabiliyorsak bunu kaldırmalıyız. Bunu söyledikten sonra,
Uzun süreli "nispeten sabit" madeni para emisyonunun ani değişikliklerle kesintiye uğraması mümkün
ekonomik açıdan gidilecek ideal yoldur. Ben bir ekonomist değilim. Yani belki biz
Ağ güvenliğini ekonomik bir şeyle takas edip etmeyeceğimize karar vermemiz gerekiyor; burada ne var?
http://arxiv.org/abs/1402.2009Gerektiğinde bunları kullanmak ana dezavantajlara neden olur. Maalesef ne zaman geleceğini tahmin etmek zor.
sabitlerin değiştirilmesi gerekebilir ve bunların değiştirilmesi korkunç sonuçlara yol açabilir.
Felaket sonuçlara yol açan sabit kodlanmış bir limit değişikliğine iyi bir örnek, bloktur.
boyut sınırı 250kb1 olarak ayarlandı. Bu limit yaklaşık 10.000 standart işlemi tutmaya yetiyordu. içinde
2013 yılının başında bu sınıra neredeyse ulaşıldı ve bu limitin artırılması konusunda anlaşmaya varıldı.
Sınır. Değişiklik cüzdan 0.8 sürümünde uygulandı ve 24 blokluk zincir bölünmesiyle sona erdi
ve başarılı bir çift harcama saldırısı [9]. Hata Bitcoin protokolünde olmasa da
bunun yerine veritabanı motorunda, eğer varsa basit bir stres testiyle kolayca yakalanabilirdi.
yapay olarak getirilmiş blok boyutu sınırı yoktur.
Sabitler ayrıca bir tür merkezileştirme noktası görevi görür.
Eşler arası doğasına rağmen
Bitcoin, düğümlerin büyük çoğunluğu tarafından geliştirilen resmi referans istemcisi [10] kullanılıyor
küçük bir grup insan. Bu grup protokolde değişiklik yapılmasına karar verir
ve çoğu insan bu değişiklikleri “doğruluklarına” bakılmaksızın kabul ediyor. Bazı kararlar neden oldu
hararetli tartışmalar ve hatta boykot çağrıları [11], bu da topluluğun ve
geliştiriciler bazı önemli noktalarda aynı fikirde olmayabilir. Bu nedenle bir protokole sahip olmak mantıklı görünüyor
Bu sorunları önlemenin olası bir yolu olarak kullanıcı tarafından yapılandırılabilen ve kendi kendini ayarlayan değişkenler kullanılır.
2.5
Hacimli komut dosyaları
Bitcoin'deki komut dosyası sistemi ağır ve karmaşık bir özelliktir. Potansiyel olarak kişinin yaratmasına izin verir
karmaşık işlemler [12], ancak güvenlik endişeleri nedeniyle bazı özellikleri devre dışı bırakıldı ve
bazıları hiç kullanılmamış bile [13]. Komut dosyası (hem gönderici hem de alıcı kısımları dahil)
Bitcoin'daki en popüler işlem için şuna benzer: