كريبتونوت 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.
مقدمة
لقد كان "Bitcoin" [1] بمثابة تطبيق ناجح لمفهوم النقد الإلكتروني p2p. كلاهما لقد أصبح المحترفون وعامة الناس يقدرون المزيج المناسب من المعاملات العامة و proof-of-work كنموذج ثقة. اليوم، قاعدة مستخدمي النقد الإلكتروني ينمو بوتيرة ثابتة. ينجذب العملاء إلى الرسوم المنخفضة وعدم الكشف عن هويتهم المقدمة بواسطة النقود الإلكترونية ويقدر التجار انبعاثاتها المتوقعة واللامركزية. Bitcoin لديه لقد أثبت بشكل فعال أن النقد الإلكتروني يمكن أن يكون بسيطًا مثل النقود الورقية ومريحًا مثل النقود الورقية بطاقات الائتمان. لسوء الحظ، Bitcoin يعاني من العديد من أوجه القصور. على سبيل المثال، يتم توزيع النظام الطبيعة غير مرنة، مما يمنع تنفيذ الميزات الجديدة حتى يقوم جميع مستخدمي الشبكة تقريبًا بتحديث عملائهم. بعض العيوب الخطيرة التي لا يمكن إصلاحها بسرعة تعيق Bitcoin انتشار واسع النطاق. في مثل هذه النماذج غير المرنة، يكون من الأكثر كفاءة طرح مشروع جديد بدلاً من إصلاح المشروع الأصلي بشكل دائم. في هذا البحث نقوم بدراسة واقتراح الحلول لأوجه القصور الرئيسية في Bitcoin. نحن نعتقد أن النظام الذي يأخذ في الاعتبار الحلول التي نقترحها سيؤدي إلى منافسة صحية بين أنظمة النقد الإلكترونية المختلفة. نقترح أيضًا عملتنا النقدية الإلكترونية الخاصة، "CryptoNote"، اسم يؤكد على التقدم القادم في مجال النقد الإلكتروني.
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 العيوب والحلول الممكنة
2 Bitcoin العيوب وبعض الحلول الممكنة 2.1 إمكانية تتبع المعاملات تعد الخصوصية وعدم الكشف عن هويتك من أهم جوانب النقد الإلكتروني. المدفوعات من نظير إلى نظير تسعى إلى أن تكون مخفية عن وجهة نظر الطرف الثالث، وهو فرق واضح بالمقارنة مع التقليدية المصرفية. على وجه الخصوص، وصف ت. أوكاموتو وك. أوتا ستة معايير للنقد الإلكتروني المثالي، والتي تضمنت "الخصوصية: يجب أن تكون العلاقة بين المستخدم ومشترياته غير قابلة للتتبع من قبل أي شخص" [30]. ومن وصفهم، استنتجنا خاصيتين مجهولتين تماما يجب أن يستوفي نموذج النقد الإلكتروني من أجل الامتثال للمتطلبات التي حددتها أوكاموتو وأوتا: عدم إمكانية التتبع: بالنسبة لكل معاملة واردة، يكون جميع المرسلين المحتملين متساوين. عدم قابلية الارتباط: بالنسبة لأي معاملتين صادرتين، من المستحيل إثبات أنه تم إرسالهما إليهما نفس الشخص. لسوء الحظ، Bitcoin لا يلبي متطلبات عدم التتبع. وبما أن جميع المعاملات التي تتم بين المشاركين في الشبكة تكون عامة، فإن أي معاملة يمكن أن تكون عامة 1 كريبتونوت v 2.0 نيكولا فان سابيرهاجن 17 أكتوبر 2013 1 مقدمة لقد كان "Bitcoin" [1] بمثابة تطبيق ناجح لمفهوم النقد الإلكتروني p2p. كلاهما لقد أصبح المحترفون وعامة الناس يقدرون المزيج المناسب من المعاملات العامة و proof-of-work كنموذج ثقة. اليوم، قاعدة مستخدمي النقد الإلكتروني ينمو بوتيرة ثابتة. ينجذب العملاء إلى الرسوم المنخفضة وعدم الكشف عن هويتهم المقدمة بواسطة النقود الإلكترونية ويقدر التجار انبعاثاتها المتوقعة واللامركزية. Bitcoin لديه لقد أثبت بشكل فعال أن النقد الإلكتروني يمكن أن يكون بسيطًا مثل النقود الورقية ومريحًا مثل النقود الورقية بطاقات الائتمان. لسوء الحظ، Bitcoin يعاني من العديد من أوجه القصور. على سبيل المثال، يتم توزيع النظام الطبيعة غير مرنة، مما يمنع تنفيذ الميزات الجديدة حتى يقوم جميع مستخدمي الشبكة تقريبًا بتحديث عملائهم. بعض العيوب الخطيرة التي لا يمكن إصلاحها بسرعة تعيق Bitcoin انتشار واسع النطاق. في مثل هذه النماذج غير المرنة، يكون من الأكثر كفاءة طرح مشروع جديد بدلاً من إصلاح المشروع الأصلي بشكل دائم. في هذا البحث نقوم بدراسة واقتراح الحلول لأوجه القصور الرئيسية في Bitcoin. نحن نعتقد أن النظام الذي يأخذ في الاعتبار الحلول التي نقترحها سيؤدي إلى منافسة صحية بين أنظمة النقد الإلكترونية المختلفة. نقترح أيضًا عملتنا النقدية الإلكترونية الخاصة، "CryptoNote"، اسم يؤكد على التقدم القادم في مجال النقد الإلكتروني. 2 Bitcoin العيوب وبعض الحلول الممكنة 2.1 إمكانية تتبع المعاملات تعد الخصوصية وعدم الكشف عن هويتك من أهم جوانب النقد الإلكتروني. المدفوعات من نظير إلى نظير تسعى إلى أن تكون مخفية عن وجهة نظر الطرف الثالث، وهو فرق واضح بالمقارنة مع التقليدية المصرفية. على وجه الخصوص، وصف ت. أوكاموتو وك. أوتا ستة معايير للنقد الإلكتروني المثالي، والتي تضمنت "الخصوصية: يجب أن تكون العلاقة بين المستخدم ومشترياته غير قابلة للتتبع من قبل أي شخص" [30]. ومن وصفهم، استنتجنا خاصيتين مجهولتين تماما يجب أن يستوفي نموذج النقد الإلكتروني من أجل الامتثال للمتطلبات التي حددتها أوكاموتو وأوتا: عدم إمكانية التتبع: بالنسبة لكل معاملة واردة، يكون جميع المرسلين المحتملين متساوين. عدم قابلية الارتباط: بالنسبة لأي معاملتين صادرتين، من المستحيل إثبات أنه تم إرسالهما إليهما نفس الشخص. لسوء الحظ، Bitcoin لا يلبي متطلبات عدم التتبع. وبما أن جميع المعاملات التي تتم بين المشاركين في الشبكة تكون عامة، فإن أي معاملة يمكن أن تكون عامة 1 3 Bitcoin يفشل بالتأكيد في "عدم التتبع". عندما أرسل لك BTC، المحفظة التي تم إرسالها منها تم ختمه بشكل لا رجعة فيه على blockchain. ليس هناك شك حول من أرسل تلك الأموال، لأنه لا يمكن إرسالها إلا لمن يعرف المفاتيح الخاصة.يمكن تتبعها بشكل لا لبس فيه إلى أصل فريد والمستلم النهائي. حتى لو تبادل اثنان من المشاركين الأموال بطريقة غير مباشرة، فإن أسلوب تحديد المسار المصمم بشكل صحيح سوف يكشف عن مصدر الأموال وأسبابها المستلم النهائي . من المشكوك فيه أيضًا أن Bitcoin لا يلبي الخاصية الثانية. بعض الباحثين ذكر ([33، 35، 29، 31]) أن تحليل blockchain الدقيق قد يكشف عن وجود صلة بين مستخدمي شبكة Bitcoin ومعاملاتهم. على الرغم من وجود عدد من الأساليب متنازع عليه [25]، يشتبه في أنه يمكن استخراج الكثير من المعلومات الشخصية المخفية من قاعدة بيانات عامة. يؤدي فشل Bitcoin في استيفاء الخاصيتين الموضحتين أعلاه إلى استنتاج أنه كذلك ليس نظامًا نقديًا إلكترونيًا مجهول الهوية ولكنه مجهول الهوية. كان المستخدمون سريعين في التطوير الحلول لتجاوز هذا النقص. هناك حلان مباشران هما "خدمات غسيل الأموال" [2] و تطوير الطرق الموزعة [3، 4]. يعتمد كلا الحلين على فكرة الخلط العديد من المعاملات العامة وإرسالها من خلال عنوان وسيط؛ والتي بدورها يعاني من عيب الحاجة إلى طرف ثالث موثوق به. في الآونة الأخيرة، تم اقتراح مخطط أكثر إبداعًا بواسطة I. Miers et al. [28]: "زيروكوين". زيروكوين يستخدم مراكم التشفير أحادي الاتجاه وإثباتات المعرفة الصفرية التي تسمح للمستخدمين بذلك "تحويل" عملات البيتكوين إلى عملات صفرية وإنفاقها باستخدام إثبات ملكية مجهول بدلاً من ذلك التوقيعات الرقمية الصريحة القائمة على المفتاح العام. ومع ذلك، فإن مثل هذه البراهين المعرفة لها ثابت ولكن الحجم غير مناسب - حوالي 30 كيلو بايت (استنادًا إلى حدود Bitcoin اليوم)، مما يجعل الاقتراح غير عملي. يعترف المؤلفون أنه من غير المرجح أن يتم قبول البروتوكول من قبل الأغلبية Bitcoin المستخدمين [5]. 2.2 الدالة proof-of-work وصف منشئ Bitcoin ساتوشي ناكاموتو خوارزمية اتخاذ القرار بالأغلبية بأنها "صوت واحد لوحدة معالجة مركزية واحدة" واستخدم وظيفة تسعير مرتبطة بوحدة المعالجة المركزية (مزدوج SHA-256) لـ proof-of-work مخطط. نظرًا لأن المستخدمين يصوتون لصالح السجل الفردي لأمر المعاملات [1]، فإن المعقولية و إن اتساق هذه العملية هي شروط حاسمة للنظام بأكمله. يعاني أمان هذا النموذج من عيبين. أولاً، يتطلب 51% من الشبكة قوة التعدين لتكون تحت سيطرة المستخدمين الشرفاء. ثانيًا، تقدم النظام (إصلاحات الأخطاء، الإصلاحات الأمنية، وما إلى ذلك...) تتطلب من الغالبية العظمى من المستخدمين دعم والموافقة على التغييرات (يحدث هذا عندما يقوم المستخدمون بتحديث برنامج محفظتهم) [6].وأخيرًا نفس التصويت تُستخدم الآلية أيضًا للاستطلاعات الجماعية حول تنفيذ بعض الميزات [7]. وهذا يسمح لنا بتخمين الخصائص التي يجب أن يستوفيها proof-of-work وظيفة التسعير. يجب ألا تمكن هذه الوظيفة أحد المشاركين في الشبكة من الحصول على أهمية كبيرة ميزة على مشارك آخر؛ فهو يتطلب التكافؤ بين الأجهزة المشتركة وعالية تكلفة الأجهزة المخصصة. من الأمثلة الحديثة [8]، يمكننا أن نرى أن الدالة SHA-256 المستخدمة في بنية Bitcoin لا تمتلك هذه الخاصية حيث يصبح التعدين أكثر كفاءة على وحدات معالجة الرسومات وأجهزة ASIC عند مقارنتها بوحدات المعالجة المركزية المتطورة. لذلك، Bitcoin يخلق ظروفًا مواتية لوجود فجوة كبيرة بين قوة التصويت المشاركين لأنه ينتهك مبدأ "صوت واحد لوحدة المعالجة المركزية" نظرًا لأن مالكي GPU وASIC يمتلكونه قوة تصويت أكبر بكثير بالمقارنة مع أصحاب وحدة المعالجة المركزية. إنه مثال كلاسيكي على مبدأ باريتو حيث يتحكم 20% من المشاركين في النظام في أكثر من 80% من الأصوات. يمكن للمرء أن يجادل بأن عدم المساواة هذا ليس له صلة بأمن الشبكة لأنه ليس كذلك قلة عدد المشاركين الذين يتحكمون في أغلبية الأصوات ولكن صدقهم المشاركين ما يهم. ومع ذلك، فإن هذه الحجة معيبة إلى حد ما لأنها بالأحرى إمكانية ظهور أجهزة متخصصة رخيصة الثمن بدلاً من صدق المشاركين فيها يشكل تهديدا. ولتوضيح ذلك، دعونا نأخذ المثال التالي. لنفترض حاقدة يكتسب الفرد قوة تعدينية كبيرة من خلال إنشاء مزرعة تعدين خاصة به بسعر رخيص 2 يمكن تتبعها بشكل لا لبس فيه إلى أصل فريد والمستلم النهائي. حتى لو تبادل اثنان من المشاركين الأموال بطريقة غير مباشرة، فإن أسلوب تحديد المسار المصمم بشكل صحيح سوف يكشف عن مصدر الأموال وأسبابها المستلم النهائي . من المشكوك فيه أيضًا أن Bitcoin لا يلبي الخاصية الثانية. بعض الباحثين ذكر ([33، 35، 29، 31]) أن تحليل blockchain الدقيق قد يكشف عن وجود صلة بين مستخدمي شبكة Bitcoin ومعاملاتهم. على الرغم من وجود عدد من الأساليب دمن المشكوك فيه [25]، أنه من الممكن استخراج الكثير من المعلومات الشخصية المخفية من قاعدة بيانات عامة. يؤدي فشل Bitcoin في استيفاء الخاصيتين الموضحتين أعلاه إلى استنتاج أنه كذلك ليس نظامًا نقديًا إلكترونيًا مجهول الهوية ولكنه مجهول الهوية. كان المستخدمون سريعين في التطوير الحلول لتجاوز هذا النقص. هناك حلان مباشران هما "خدمات غسيل الأموال" [2] و تطوير الطرق الموزعة [3، 4]. يعتمد كلا الحلين على فكرة الخلط العديد من المعاملات العامة وإرسالها من خلال عنوان وسيط؛ والتي بدورها يعاني من عيب الحاجة إلى طرف ثالث موثوق به. في الآونة الأخيرة، تم اقتراح مخطط أكثر إبداعًا بواسطة I. Miers et al. [28]: "زيروكوين". زيروكوين يستخدم مراكم التشفير أحادي الاتجاه وإثباتات المعرفة الصفرية التي تسمح للمستخدمين بذلك "تحويل" عملات البيتكوين إلى عملات صفرية وإنفاقها باستخدام إثبات ملكية مجهول بدلاً من ذلك التوقيعات الرقمية الصريحة القائمة على المفتاح العام. ومع ذلك، فإن مثل هذه البراهين المعرفة لها ثابت ولكن الحجم غير مناسب - حوالي 30 كيلو بايت (استنادًا إلى حدود Bitcoin اليوم)، مما يجعل الاقتراح غير عملي. يعترف المؤلفون أنه من غير المرجح أن يتم قبول البروتوكول من قبل الأغلبية Bitcoin المستخدمين [5]. 2.2 الدالة proof-of-work وصف منشئ Bitcoin ساتوشي ناكاموتو خوارزمية اتخاذ القرار بالأغلبية بأنها "صوت واحد لوحدة معالجة مركزية واحدة" واستخدم وظيفة تسعير مرتبطة بوحدة المعالجة المركزية (مزدوج SHA-256) لـ proof-of-work مخطط. نظرًا لأن المستخدمين يصوتون لصالح السجل الفردي لأمر المعاملات [1]، فإن المعقولية و إن اتساق هذه العملية هي شروط حاسمة للنظام بأكمله. يعاني أمان هذا النموذج من عيبين. أولاً، يتطلب 51% من الشبكة قوة التعدين لتكون تحت سيطرة المستخدمين الشرفاء. ثانيًا، تقدم النظام (إصلاحات الأخطاء، الإصلاحات الأمنية، وما إلى ذلك...) تتطلب من الغالبية العظمى من المستخدمين دعم والموافقة على التغييرات (يحدث هذا عندما يقوم المستخدمون بتحديث برنامج محفظتهم) [6].وأخيرًا نفس التصويت تُستخدم الآلية أيضًا للاستطلاعات الجماعية حول تنفيذ بعض الميزات [7]. وهذا يسمح لنا بتخمين الخصائص التي يجب أن يستوفيها proof-of-work وظيفة التسعير. يجب ألا تمكن هذه الوظيفة أحد المشاركين في الشبكة من الحصول على أهمية كبيرة ميزة على مشارك آخر؛ فهو يتطلب التكافؤ بين الأجهزة المشتركة وعالية تكلفة الأجهزة المخصصة. من الأمثلة الحديثة [8]، يمكننا أن نرى أن الدالة SHA-256 المستخدمة في بنية Bitcoin لا تمتلك هذه الخاصية حيث يصبح التعدين أكثر كفاءة على وحدات معالجة الرسومات وأجهزة ASIC عند مقارنتها بوحدات المعالجة المركزية المتطورة. لذلك، Bitcoin يخلق ظروفًا مواتية لوجود فجوة كبيرة بين قوة التصويت المشاركين لأنه ينتهك مبدأ "صوت واحد لوحدة المعالجة المركزية" نظرًا لأن مالكي GPU وASIC يمتلكونه قوة تصويت أكبر بكثير بالمقارنة مع أصحاب وحدة المعالجة المركزية. إنه مثال كلاسيكي على مبدأ باريتو حيث يتحكم 20% من المشاركين في النظام في أكثر من 80% من الأصوات. يمكن للمرء أن يجادل بأن عدم المساواة هذا ليس له صلة بأمن الشبكة لأنه ليس كذلك قلة عدد المشاركين الذين يتحكمون في أغلبية الأصوات ولكن صدقهم المشاركين ما يهم. ومع ذلك، فإن هذه الحجة معيبة إلى حد ما لأنها بالأحرى إمكانية ظهور أجهزة متخصصة رخيصة الثمن بدلاً من صدق المشاركين فيها يشكل تهديدا. ولتوضيح ذلك، دعونا نأخذ المثال التالي. لنفترض حاقدة يكتسب الفرد قوة تعدينية كبيرة من خلال إنشاء مزرعة تعدين خاصة به بسعر رخيص 2 4 من المفترض، إذا ساعد كل مستخدم في إخفاء هويته عن طريق إنشاء عنوان جديد دائمًا مقابل كل دفعة مستلمة (وهو أمر سخيف ولكنه من الناحية الفنية الطريقة "الصحيحة" للقيام بذلك)، وإذا ساعد كل مستخدم في إخفاء هوية الآخرين من خلال الإصرار على عدم إرسال الأموال أبدًا إلى نفس عنوان BTC مرتين، فإن Bitcoin سيظل يمرر فقط ظاهريًا اختبار عدم قابلية الارتباط. لماذا؟ يمكن استخدام بيانات المستهلك لمعرفة قدر مذهل من المعلومات عن الأشخاص طوال الوقت. انظر على سبيل المثال http://www.applieddatalabs.com/content/target-knows-it-shows الآن، تخيل أن هذا سيحدث بعد 20 عامًا في المستقبل، وتخيل أيضًا أن شركة Target لم تكن تعرف ذلك فحسب حول عادات الشراء الخاصة بك في Target، لكنهم كانوا يقومون بالتنقيب عن blockchain للجميع مشترياتك الشخصية باستخدام محفظة CoinBASE الخاصة بك في الماضي اثني عشر عاما. سيكونون مثل "مرحبًا يا صديقي، قد ترغب في شراء بعض أدوية السعال الليلة، لن تفعل ذلك أشعر أنني بحالة جيدة غدا." قد لا يكون هذا هو الحال إذا تم استغلال الفرز متعدد الأطراف بشكل صحيح. انظر على سبيل المثال هذامشاركة المدونة: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ لست مقتنعًا تمامًا بالرياضيات المتعلقة بذلك، ولكن... ورقة واحدة في كل مرة، أليس كذلك؟ الاقتباس مطلوب. في حين أن بروتوكول Zerocoin (المستقل) قد يكون غير كافٍ، فإن Zerocash يبدو أن البروتوكول قد نفذ معاملات بحجم 1 كيلو بايت. ويحظى هذا المشروع بدعم من الجيشان الأمريكي والإسرائيلي، بطبيعة الحال، فمن يعلم مدى قوتها. من ناحية أخرى ومن ناحية، لا أحد يريد أن يكون قادراً على إنفاق الأموال دون رقابة أكثر من الجيش. http://zerocash-project.org/ لست مقتنعا... أنظر مثلا http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf نقلاً عن مطور Cryptonote موريس بلانك (يُفترض أنه اسم مستعار) من cryptonote المنتديات: "زيروكوين، زيرو كاش. هذه هي التكنولوجيا الأكثر تقدما، ويجب أن أعترف. نعم الاقتباس أعلاه هو من تحليل الإصدار السابق من البروتوكول. على حد علمي، ليس كذلك 288، ولكن 384 بايت، ولكن على أي حال هذه أخبار جيدة. لقد استخدموا تقنية جديدة تمامًا تسمى SNARK، والتي لها جوانب سلبية معينة: على سبيل المثال، قاعدة بيانات أولية كبيرة من المعلمات العامة المطلوبة لإنشاء توقيع (أكثر من 1 جيجابايت) و الوقت اللازم لإنشاء المعاملة (أكثر من دقيقة). أخيرًا، يستخدمون أ العملات المشفرة الناشئة، والتي ذكرت أنها فكرة قابلة للنقاش: https://forum.cryptonote.org/viewtopic.php?f= " - موريس ب. الخميس 03 أبريل 2014 الساعة 7:56 مساءً وظيفة يتم تنفيذها في وحدة المعالجة المركزية (CPU) وهي غير مناسبة لوحدة معالجة الرسومات (GPU) أو FPGA أو ASIC حساب. يُشار إلى "اللغز" المستخدم في proof-of-work باسم وظيفة التسعير، أو وظيفة التكلفة، أو وظيفة اللغز.
يمكن تتبعها بشكل لا لبس فيه إلى أصل فريد والمستلم النهائي. حتى لو تبادل اثنان من المشاركين الأموال بطريقة غير مباشرة، فإن أسلوب تحديد المسار المصمم بشكل صحيح سوف يكشف عن مصدر الأموال وأسبابها المستلم النهائي . من المشكوك فيه أيضًا أن Bitcoin لا يلبي الخاصية الثانية. بعض الباحثين ذكر ([33، 35، 29، 31]) أن تحليل blockchain الدقيق قد يكشف عن وجود صلة بين مستخدمي شبكة Bitcoin ومعاملاتهم. على الرغم من وجود عدد من الأساليب متنازع عليه [25]، يشتبه في أنه يمكن استخراج الكثير من المعلومات الشخصية المخفية من قاعدة بيانات عامة. يؤدي فشل Bitcoin في استيفاء الخاصيتين الموضحتين أعلاه إلى استنتاج أنه كذلك ليس نظامًا نقديًا إلكترونيًا مجهول الهوية ولكنه مجهول الهوية. كان المستخدمون سريعين في التطوير الحلول لتجاوز هذا النقص. هناك حلان مباشران هما "خدمات غسيل الأموال" [2] و تطوير الطرق الموزعة [3، 4]. يعتمد كلا الحلين على فكرة الخلط العديد من المعاملات العامة وإرسالها من خلال عنوان وسيط؛ والتي بدورها يعاني من عيب الحاجة إلى طرف ثالث موثوق به. في الآونة الأخيرة، تم اقتراح مخطط أكثر إبداعًا بواسطة I. Miers et al. [28]: "زيروكوين". زيروكوين يستخدم مراكم التشفير أحادي الاتجاه وإثباتات المعرفة الصفرية التي تسمح للمستخدمين بذلك "تحويل" عملات البيتكوين إلى عملات صفرية وإنفاقها باستخدام إثبات ملكية مجهول بدلاً من ذلك التوقيعات الرقمية الصريحة القائمة على المفتاح العام. ومع ذلك، فإن مثل هذه البراهين المعرفة لها ثابت ولكن الحجم غير مناسب - حوالي 30 كيلو بايت (استنادًا إلى حدود Bitcoin اليوم)، مما يجعل الاقتراح غير عملي. يعترف المؤلفون أنه من غير المرجح أن يتم قبول البروتوكول من قبل الأغلبية Bitcoin المستخدمين [5]. 2.2 الدالة proof-of-work وصف منشئ Bitcoin ساتوشي ناكاموتو خوارزمية اتخاذ القرار بالأغلبية بأنها "صوت واحد لوحدة معالجة مركزية واحدة" واستخدم وظيفة تسعير مرتبطة بوحدة المعالجة المركزية (مزدوج SHA-256) لـ proof-of-work مخطط. نظرًا لأن المستخدمين يصوتون لصالح السجل الفردي لأمر المعاملات [1]، فإن المعقولية و إن اتساق هذه العملية هي شروط حاسمة للنظام بأكمله. يعاني أمان هذا النموذج من عيبين. أولاً، يتطلب 51% من الشبكة قوة التعدين لتكون تحت سيطرة المستخدمين الشرفاء. ثانيًا، تقدم النظام (إصلاحات الأخطاء، الإصلاحات الأمنية، وما إلى ذلك...) تتطلب من الغالبية العظمى من المستخدمين دعم والموافقة على التغييرات (يحدث هذا عندما يقوم المستخدمون بتحديث برنامج محفظتهم) [6].وأخيرًا نفس التصويت تُستخدم الآلية أيضًا للاستطلاعات الجماعية حول تنفيذ بعض الميزات [7]. وهذا يسمح لنا بتخمين الخصائص التي يجب أن يستوفيها proof-of-work وظيفة التسعير. يجب ألا تمكن هذه الوظيفة أحد المشاركين في الشبكة من الحصول على أهمية كبيرة ميزة على مشارك آخر؛ فهو يتطلب التكافؤ بين الأجهزة المشتركة وعالية تكلفة الأجهزة المخصصة. من الأمثلة الحديثة [8]، يمكننا أن نرى أن الدالة SHA-256 المستخدمة في بنية Bitcoin لا تمتلك هذه الخاصية حيث يصبح التعدين أكثر كفاءة على وحدات معالجة الرسومات وأجهزة ASIC عند مقارنتها بوحدات المعالجة المركزية المتطورة. ولذلك، فإن Bitcoin يخلق ظروفًا مواتية لوجود فجوة كبيرة بين قوة التصويت المشاركين لأنه ينتهك مبدأ "صوت واحد لوحدة المعالجة المركزية" نظرًا لأن مالكي GPU وASIC يمتلكونه قوة تصويت أكبر بكثير بالمقارنة مع أصحاب وحدة المعالجة المركزية. إنه مثال كلاسيكي على مبدأ باريتو حيث يتحكم 20% من المشاركين في النظام في أكثر من 80% من الأصوات. يمكن للمرء أن يجادل بأن عدم المساواة هذا ليس له صلة بأمن الشبكة لأنه ليس كذلك قلة عدد المشاركين الذين يتحكمون في أغلبية الأصوات ولكن صدقهم المشاركين ما يهم. ومع ذلك، فإن هذه الحجة معيبة إلى حد ما لأنها بالأحرى إمكانية ظهور أجهزة متخصصة رخيصة الثمن بدلاً من صدق المشاركين فيها يشكل تهديدا. ولتوضيح ذلك، دعونا نأخذ المثال التالي. لنفترض حاقدة يكتسب الفرد قوة تعدينية كبيرة من خلال إنشاء مزرعة تعدين خاصة به بسعر رخيص 2 يمكن تتبعها بشكل لا لبس فيه إلى أصل فريد والمستلم النهائي. حتى لو تبادل اثنان من المشاركين الأموال بطريقة غير مباشرة، فإن أسلوب تحديد المسار المصمم بشكل صحيح سوف يكشف عن مصدر الأموال وأسبابها المستلم النهائي . من المشكوك فيه أيضًا أن Bitcoin لا يلبي الخاصية الثانية. بعض الباحثين ذكر ([33، 35، 29، 31]) أن تحليل blockchain الدقيق قد يكشف عن وجود صلة بين مستخدمي شبكة Bitcoin ومعاملاتهم. على الرغم من وجود عدد من الأساليب دمن المشكوك فيه [25]، أنه من الممكن استخراج الكثير من المعلومات الشخصية المخفية من قاعدة بيانات عامة. يؤدي فشل Bitcoin في استيفاء الخاصيتين الموضحتين أعلاه إلى استنتاج أنه كذلك ليس نظامًا نقديًا إلكترونيًا مجهول الهوية ولكنه مجهول الهوية. كان المستخدمون سريعين في التطوير الحلول لتجاوز هذا النقص. هناك حلان مباشران هما "خدمات غسيل الأموال" [2] و تطوير الطرق الموزعة [3، 4]. يعتمد كلا الحلين على فكرة الخلط العديد من المعاملات العامة وإرسالها من خلال عنوان وسيط؛ والتي بدورها يعاني من عيب الحاجة إلى طرف ثالث موثوق به. في الآونة الأخيرة، تم اقتراح مخطط أكثر إبداعًا بواسطة I. Miers et al. [28]: "زيروكوين". زيروكوين يستخدم مراكم التشفير أحادي الاتجاه وإثباتات المعرفة الصفرية التي تسمح للمستخدمين بذلك "تحويل" عملات البيتكوين إلى عملات صفرية وإنفاقها باستخدام إثبات ملكية مجهول بدلاً من ذلك التوقيعات الرقمية الصريحة القائمة على المفتاح العام. ومع ذلك، فإن مثل هذه البراهين المعرفة لها ثابت ولكن الحجم غير مناسب - حوالي 30 كيلو بايت (استنادًا إلى حدود Bitcoin اليوم)، مما يجعل الاقتراح غير عملي. يعترف المؤلفون أنه من غير المرجح أن يتم قبول البروتوكول من قبل الأغلبية Bitcoin المستخدمين [5]. 2.2 الدالة proof-of-work وصف منشئ Bitcoin ساتوشي ناكاموتو خوارزمية اتخاذ القرار بالأغلبية بأنها "صوت واحد لوحدة المعالجة المركزية" واستخدم وظيفة تسعير مرتبطة بوحدة المعالجة المركزية (مزدوج SHA-256) لـ proof-of-work مخطط. نظرًا لأن المستخدمين يصوتون لصالح السجل الفردي لأمر المعاملات [1]، فإن المعقولية و إن اتساق هذه العملية هي شروط حاسمة للنظام بأكمله. يعاني أمان هذا النموذج من عيبين. أولاً، يتطلب 51% من الشبكة قوة التعدين لتكون تحت سيطرة المستخدمين الشرفاء. ثانيًا، تقدم النظام (إصلاحات الأخطاء، الإصلاحات الأمنية، وما إلى ذلك...) تتطلب من الغالبية العظمى من المستخدمين دعم والموافقة على التغييرات (يحدث هذا عندما يقوم المستخدمون بتحديث برنامج محفظتهم) [6].وأخيرًا نفس التصويت تُستخدم الآلية أيضًا للاستطلاعات الجماعية حول تنفيذ بعض الميزات [7]. وهذا يسمح لنا بتخمين الخصائص التي يجب أن يستوفيها proof-of-work وظيفة التسعير. يجب ألا تمكن هذه الوظيفة أحد المشاركين في الشبكة من الحصول على أهمية كبيرة ميزة على مشارك آخر؛ فهو يتطلب التكافؤ بين الأجهزة المشتركة وعالية تكلفة الأجهزة المخصصة. من الأمثلة الحديثة [8]، يمكننا أن نرى أن الدالة SHA-256 المستخدمة في بنية Bitcoin لا تمتلك هذه الخاصية حيث يصبح التعدين أكثر كفاءة على وحدات معالجة الرسومات وأجهزة ASIC عند مقارنتها بوحدات المعالجة المركزية المتطورة. ولذلك، فإن Bitcoin يخلق ظروفًا مواتية لوجود فجوة كبيرة بين قوة التصويت المشاركين لأنه ينتهك مبدأ "صوت واحد لوحدة المعالجة المركزية" نظرًا لأن مالكي GPU وASIC يمتلكونه قوة تصويت أكبر بكثير بالمقارنة مع أصحاب وحدة المعالجة المركزية. إنه مثال كلاسيكي على مبدأ باريتو حيث يتحكم 20% من المشاركين في النظام في أكثر من 80% من الأصوات. يمكن للمرء أن يجادل بأن عدم المساواة هذا ليس له صلة بأمن الشبكة لأنه ليس كذلك قلة عدد المشاركين الذين يتحكمون في أغلبية الأصوات ولكن صدقهم المشاركين ما يهم. ومع ذلك، فإن هذه الحجة معيبة إلى حد ما لأنها بالأحرى إمكانية ظهور أجهزة متخصصة رخيصة الثمن بدلاً من صدق المشاركين فيها يشكل تهديدا. ولتوضيح ذلك، دعونا نأخذ المثال التالي. لنفترض حاقدة يكتسب الفرد قوة تعدينية كبيرة من خلال إنشاء مزرعة تعدين خاصة به بسعر رخيص 2 التعليقات على الصفحة 2
Teknologi CryptoNote
Sekarang kita telah membahas keterbatasan teknologi Bitcoin, kita akan berkonsentrasi pada hal tersebut menyajikan fitur-fitur CryptoNote.
تقنية CryptoNote
الآن بعد أن قمنا بتغطية القيود المفروضة على تقنية Bitcoin، سنركز عليها تقديم ميزات CryptoNote.
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
المعاملات التي لا يمكن تعقبها
في هذا القسم، نقترح مخططًا للمعاملات المجهولة تمامًا والتي تلبي كلا من إمكانية التتبع
وشروط عدم الارتباط. من السمات المهمة لحلنا هو استقلاليته: المرسل
ليس مطلوبًا منه التعاون مع مستخدمين آخرين أو طرف ثالث موثوق به لإجراء معاملاته؛
ومن ثم يقوم كل مشارك بإنتاج حركة تغطية بشكل مستقل.
4.1
مراجعة الأدب
يعتمد مخططنا على التشفير البدائي المسمى بتوقيع المجموعة. تم تقديمه لأول مرة بواسطة
D. Chaum وE. van Heyst [19]، فهو يسمح للمستخدم بالتوقيع على رسالته نيابة عن المجموعة.
بعد التوقيع على الرسالة، يقدم المستخدم (لأغراض التحقق) وليس الجمهور الخاص به
1هذا ما يسمى "الحد الناعم" - تقييد العميل المرجعي لإنشاء كتل جديدة. الحد الأقصى الصعب
كان حجم الكتلة المحتمل 1 ميجابايت
4
لهم إذا لزم الأمر أن يسبب العيوب الرئيسية. لسوء الحظ، من الصعب التنبؤ بموعد حدوث ذلك
فقد تكون هناك حاجة إلى تغيير الثوابت، واستبدالها قد يؤدي إلى عواقب وخيمة.
من الأمثلة الجيدة على تغيير الحد المضمن الذي يؤدي إلى عواقب وخيمة هو الحظر
تم ضبط الحد الأقصى للحجم على 250 كيلو بايت1. وكان هذا الحد كافيا لإجراء حوالي 10000 معاملة قياسية. في
في أوائل عام 2013، كان هذا الحد قد تم الوصول إليه تقريبًا وتم التوصل إلى اتفاق لزيادة
الحد. تم تنفيذ التغيير في إصدار المحفظة 0.8 وانتهى بتقسيم سلسلة مكونة من 24 كتلة
وهجوم الإنفاق المزدوج الناجح [9]. في حين أن الخلل لم يكن في بروتوكول Bitcoin، ولكن
بل كان من الممكن اكتشافه بسهولة في محرك قاعدة البيانات عن طريق اختبار ضغط بسيط إذا كان هناك ذلك
لا يوجد حد لحجم الكتلة تم تقديمه بشكل مصطنع.
تعمل الثوابت أيضًا كشكل من أشكال نقطة المركزية.
على الرغم من طبيعة الند للند
Bitcoin، تستخدم الغالبية العظمى من العقد العميل المرجعي الرسمي [10] الذي تم تطويره بواسطة
مجموعة صغيرة من الناس. تتخذ هذه المجموعة القرار بتنفيذ التغييرات على البروتوكول
ومعظم الناس يقبلون هذه التغييرات بغض النظر عن "صحتها". تسببت بعض القرارات
نقاشات ساخنة وحتى دعوات للمقاطعة [11] مما يدل على أن المجتمع و
قد يختلف المطورون حول بعض النقاط المهمة. ولذلك يبدو من المنطقي أن يكون هناك بروتوكول
مع المتغيرات القابلة للتكوين والضبط الذاتي بواسطة المستخدم كطريقة ممكنة لتجنب هذه المشكلات.
2.5
مخطوطات ضخمة
يعد نظام البرمجة النصية في Bitcoin ميزة ثقيلة ومعقدة. من المحتمل أن يسمح للمرء بالإبداع
المعاملات المعقدة [12]، ولكن تم تعطيل بعض ميزاته بسبب مخاوف أمنية و
بعضها لم يتم استخدامه مطلقًا [13]. البرنامج النصي (بما في ذلك أجزاء المرسلين والمستقبلين)
تبدو المعاملة الأكثر شيوعًا في Bitcoin كما يلي:
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان نظامًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 8 يعمل التوقيع الدائري على النحو التالي: تريد أليكس تسريب رسالة إلى ويكيليكس حول صاحب عملها. كل موظف في شركتها لديه زوج مفاتيح خاص/عام (Ri، Ui). هي تؤلف توقيعها مع تعيين الإدخال كرسالة لها، وm، ومفتاحها الخاص، وRi، وEVERYBODY's المفاتيح العامة (Ui;i=1...n). يمكن لأي شخص (دون معرفة أي مفاتيح خاصة) التحقق من ذلك بسهولة بعض الزوج (Rj, Uj) لا بد أنه تم استخدامه لبناء التوقيع... شخص يعمل بالنسبة لصاحب العمل الذي يعمل به أليكس... لكن معرفة أي شخص يمكن أن يكون هو مجرد تخمين عشوائي. 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 لاحظ أن التوقيع الدائري القابل للربط الموصوف هنا هو نوع من عكس "غير قابل للربط" الموصوفة أعلاه. هنا، نقوم باعتراض رسالتين، ويمكننا تحديد ما إذا كانا متماثلين أرسلهم الطرف، على الرغم من أننا لا نزال غير قادرين على تحديد من هو هذا الطرف. ال إن تعريف "غير قابل للربط" المستخدم لإنشاء Cryptonote يعني أننا لا نستطيع تحديد ما إذا كان ويستقبلهم نفس الطرف. وبالتالي، ما لدينا هنا حقًا هو أربعة أشياء تحدث. يمكن أن يكون النظام قابلاً للربط أو غير قابل للربط، اعتمادًا على ما إذا كان من الممكن تحديد ما إذا كان المرسل أم لا رسالتان متماثلتان (بغض النظر عما إذا كان ذلك يتطلب إلغاء عدم الكشف عن هويتك). و يمكن أن يكون النظام غير قابل للربط أو غير قابل للربط، اعتمادًا على ما إذا كان من الممكن ذلك أم لا تحديد ما إذا كان متلقي رسالتين هو نفسه (بغض النظر عما إذا كان متلقي الرسالتين أم لا). وهذا يتطلب إلغاء عدم الكشف عن هويته). من فضلك لا تلومني على هذه المصطلحات الرهيبة. من المحتمل أن يكون منظرو الرسم البياني كذلك يسر. قد يشعر البعض منكم براحة أكبر مع "إمكانية ربط جهاز الاستقبال" مقابل "إمكانية ربط المرسل". http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 عندما قرأت هذا، بدت هذه ميزة سخيفة. ثم قرأت أنه قد يكون ميزة ل التصويت الإلكتروني، ويبدو أن هذا منطقي. رائع نوعا ما، من هذا المنظور. ولكن أنا لست متأكدًا تمامًا من تنفيذ التوقيعات الحلقية التي يمكن تتبعها عن قصد. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin's ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 9 يا إلهي، من المؤكد أن مؤلف هذه الورقة البيضاء كان بإمكانه صياغة هذا بشكل أفضل! دعنا نقول أن تريد الشركة المملوكة للموظفين إجراء تصويت على ما إذا كان سيتم شراء منتجات جديدة معينة أم لا الأصول، وأليكس وبريندا كلاهما موظفين. توفر الشركة لكل موظف أ رسالة مثل "أصوت بنعم على الاقتراح أ!" التي تحتوي على "مشكلة" المعلومات التعريفية [PROP A] ويطلب منهم التوقيع عليه بتوقيع حلقة يمكن تتبعه إذا كانوا يدعمون الاقتراح. باستخدام التوقيع الدائري التقليدي، يمكن للموظف غير الأمين التوقيع على الرسالة عدة مرات، من المفترض مع nonces مختلفة، من أجل التصويت عدة مرات كما يحلو لهم. من ناحية أخرى من ناحية، في مخطط التوقيع الدائري الذي يمكن تتبعه، ستذهب أليكس للتصويت، وسيحصل على مفتاحها الخاص تم استخدامها في المسألة [PROP A]. إذا حاول Alex التوقيع على رسالة مثل "أنا، بريندا، أوافق على ذلك الاقتراح أ!" "لتأطير" بريندا والتصويت المزدوج، ستواجه هذه الرسالة الجديدة المشكلة أيضًا [الدعوى أ]. نظرًا لأن مفتاح Alex الخاص قد نجح بالفعل في حل مشكلة [PROP A]، فقد تم تحديد هوية Alex سيتم الكشف عنها على الفور باعتبارها عملية احتيال. وهو، في مواجهة الأمر، رائع جدًا! فرض التشفير المساواة في التصويت. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 هذه الورقة مثيرة للاهتمام، حيث تقوم بشكل أساسي بإنشاء توقيع حلقة مخصص ولكن بدون أي من موافقة المشارك الآخر. قد يكون هيكل التوقيع مختلفًا؛ لم أحفر عميقة، ولم أر ما إذا كانت آمنة. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai توقيعات المجموعة المخصصة هي: التوقيعات الحلقية، وهي توقيعات جماعية بدون مجموعة المديرين، لا مركزية، ولكن يسمح لعضو في مجموعة مخصصة أن يدعي ذلك بشكل مثبت لقد (لم) يصدر التوقيع المجهول نيابة عن المجموعة. http://link.springer.com/chapter/10.1007/11908739_9 وهذا ليس صحيحًا تمامًا، حسب فهمي. ومن المرجح أن يتغير فهمي لقد تعمقت في هذا المشروع. لكن حسب فهمي، يبدو التسلسل الهرمي هكذا. علامات المجموعة: يتحكم مديرو المجموعة في إمكانية التتبع وإمكانية إضافة أو إزالة الأعضاء من كونهم موقعين. العلامات الدائرية: تشكيل جماعي تعسفي بدون مدير المجموعة. لا يوجد إبطال عدم الكشف عن هويته. لا توجد وسيلة للتنصل من توقيع معين. مع حلقة يمكن تتبعها وربطها التوقيعات، وعدم الكشف عن هويته قابلة للتحجيم إلى حد ما. توقيعات المجموعة المخصصة: مثل التوقيعات الحلقية، لكن يمكن للأعضاء إثبات أنهم لم يقموا بإنشائها توقيع معين. يعد هذا أمرًا مهمًا عندما يتمكن أي شخص في المجموعة من إنتاج توقيع. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 تم تعديل خوارزمية فوجيساكي وسوزوكي لاحقًا من قبل المؤلف لتوفير مرة واحدة. هكذا سنقوم بتحليل خوارزمية فوجيساكي وسوزوكي بالتزامن مع الخوارزمية الجديدة بدلاً من ذلك من المرور هنا.
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 10 تعني إمكانية الارتباط بمعنى "التوقيعات الحلقية القابلة للربط" أنه يمكننا معرفة ما إذا كانت المعاملتان الصادرتان جاءتا من نفس المصدر دون الكشف عن هوية المصدر. ضعف المؤلفون قابلية الارتباط وذلك من أجل (أ) الحفاظ على الخصوصية، ولكن (ب) اكتشاف أي معاملة باستخدام مفتاح خاص للمرة الثانية باطل حسنًا، هذا سؤال يتعلق بترتيب الأحداث. النظر في السيناريو التالي. التعدين الخاص بي سيكون لدى الكمبيوتر blockchain الحالي، وسيكون له كتلة المعاملات الخاصة به التي يستدعيها مشروعة، وستعمل على تلك الكتلة في لغز proof-of-work، وسيكون لها قائمة المعاملات المعلقة المراد إضافتها إلى الكتلة التالية. كما سيتم إرسال أي جديد المعاملات في تلك المجموعة من المعاملات المعلقة. إذا لم أحل الكتلة التالية، ولكن شخص آخر يفعل ذلك، أحصل على نسخة محدثة من blockchain. الكتلة التي كنت أعمل عليها و قد تحتوي قائمة المعاملات المعلقة الخاصة بي على بعض المعاملات التي تم دمجها الآن في blockchain. قم بكشف الكتلة المعلقة الخاصة بي، وادمجها مع قائمة المعاملات المعلقة الخاصة بي، وقم باستدعاء ذلك مجموعتي من المعاملات المعلقة. قم بإزالة أي شيء موجود رسميًا الآن في blockchain. الآن، ماذا أفعل؟ هل يجب أن أقوم أولاً بـ "إزالة كافة عمليات الإنفاق المزدوج"؟ من ناحية أخرى من ناحية، يجب أن أبحث في القائمة وأتأكد من أن كل مفتاح خاص لم يتم العثور عليه بعد المستخدمة، وإذا تم استخدامها بالفعل في قائمتي، فقد حصلت على النسخة الأولى أولاً، وبالتالي أي نسخة أخرى غير شرعية. وهكذا أشرع في حذف جميع الحالات بعد الأولى لنفس المفتاح الخاص. الهندسة الجبرية لم تكن أبدًا خياري القوي. http://en.wikipedia.org/wiki/EdDSA هذه السرعة، واو كثيرا. هذه هي الهندسة الجبرية للفوز. لا يعني ذلك أنني أعرف أي شيء حول ذلك. سواء أكان الأمر مثيرًا للمشاكل أم لا، فإن السجلات المنفصلة تصبح سريعة جدًا. وأجهزة الكمبيوتر الكمومية تأكلها لتناول الافطار. http://link.springer.com/article/10.1007/s13389-012-0027-1 يصبح هذا رقمًا مهمًا حقًا، لكن لا يوجد تفسير أو اقتباس لكيفية حدوثه تم اختياره. إن مجرد اختيار عدد أولي كبير واحد معروف سيكون أمرًا جيدًا، لكن إذا كان هناك عدد أولي معروف حقائق حول هذا العدد الأولي الكبير، والتي يمكن أن تؤثر على اختيارنا. أنواع مختلفة من العملات المشفرة يمكن اختيار قيم مختلفة لـ حسنًا، ولكن لا توجد مناقشة في هذه الورقة حول كيفية ذلك سيؤثر اختيارنا على اختياراتنا للمعلمات العالمية الأخرى المدرجة في الصفحة 5. تحتاج هذه الورقة إلى قسم حول اختيار قيم المعلمات.
مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. نموذج المفاتيح/المعاملات التقليدي Bitcoin. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. المفاتيح/المعاملات التقليدية Bitcoinش. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 11 لذا فإن هذا يشبه Bitcoin، ولكن مع عدد لا نهائي من صناديق البريد المجهولة، والتي لا يمكن استردادها إلا بواسطة المتلقي إنشاء مفتاح خاص مجهول مثل التوقيع الدائري. Bitcoin يعمل بهذه الطريقة. إذا كان لدى Alex 0.112 Bitcoin في محفظتها التي تلقتها للتو من فرانك، فهذا يعني أن لديها بالفعل توقيعًا موقعًا الرسالة "أنا، [فرانك]، أرسل 0.112 Bitcoin إلى [أليكس] + H0 + N0" حيث 1) وقع فرانك على رسالة بمفتاحه الخاص [فرانك]، 2) وقع فرانك على الرسالة مع جمهور أليكس المفتاح، [أليكس]، 3) قام فرانك بتضمين شكل من أشكال تاريخ البيتكوين، H0، و4) فرانك يتضمن بتًا عشوائيًا من البيانات يسمى nonce، N0. إذا أراد Alex بعد ذلك إرسال 0.011 Bitcoin إلى شارلين، فسوف تتلقى رسالة فرانك، وهي ستقوم بتعيين ذلك على H1، وتوقيع رسالتين: واحدة لمعاملتها، وواحدة للتغيير. H1= "أنا، [فرانك]، أرسل 0.112 Bitcoin إلى [أليكس] + H0 + N" "أنا، [ALEX]، أرسل 0.011 Bitcoin إلى [شارلين] + H1 + N1" ""أنا، [ALEX]، أرسل 0.101 Bitcoin كتغيير إلى [alex] + H1 + N2." حيث تقوم Alex بتوقيع كلتا الرسالتين باستخدام مفتاحها الخاص [ALEX]، وهي الرسالة الأولى مع رسالة شارلين المفتاح العام [شارلين]، الرسالة الثانية التي تحتوي على المفتاح العام لـ Alex [alex]، بما في ذلك التواريخ وبعض nonces N1 وN2 التي تم إنشاؤها عشوائيًا بشكل مناسب. يعمل Cryptonote بهذه الطريقة: إذا كان لدى Alex 0.112 Cryptonote في محفظتها التي تلقتها للتو من Frank، فهي بالفعل تمتلك توقيعًا موقعًا الرسالة "أنا، [شخص ما في مجموعة مخصصة]، أرسل 0.112 Cryptonote إلى [عنوان لمرة واحدة] + H0 + ن0." اكتشفت أليكس أن هذه أموالها عن طريق التحقق من مفتاحها الخاص [أليكس] مقابلها [عنوان لمرة واحدة] لكل رسالة عابرة، وإذا أرادت أن تقضيها فعلت ذلك بالطريقة التالية. لقد اختارت متلقيًا للمال، ربما بدأت شارلين في التصويت لصالح ضربات الطائرات بدون طيار يريد Alex إرسال الأموال إلى Brenda بدلاً من ذلك. لذا يبحث أليكس عن مفتاح بريندا العام، [بريندا]، وتستخدم مفتاحها الخاص، [ALEX]، لإنشاء عنوان لمرة واحدة [ALEX+brenda]. هي ثم تختار مجموعة عشوائية C من شبكة مستخدمي العملات المشفرة وتقوم بإنشائها توقيع رنين من هذه المجموعة المخصصة. أضفنا تاريخنا كالرسالة السابقة nonces، والمتابعة كالمعتاد؟ H1 = "أنا، [شخص ما في مجموعة مخصصة]، أرسل 0.112 Cryptonote إلى [عنوان لمرة واحدة] + H0 + ن0." "أنا، [شخص ما في المجموعة C]، أرسل 0.011 Cryptonote إلى [عنوان لمرة واحدة مصنوع من ALEX+brenda] + H1 + N1" "أنا، [شخص ما في المجموعة C]، أرسل 0.101 Cryptonote كتغيير إلى [one-time-address-madefrom-ALEX+alex] + H1 + N2" الآن، يقوم كل من Alex وBrenda بفحص جميع الرسائل الواردة بحثًا عن أي عناوين لمرة واحدة تم إنشاؤها باستخدام مفتاحهم. وإذا وجدوا أيًا منها، فإن هذه الرسالة ستكون جديدة تمامًا بالنسبة لهم عملة مشفرة! وحتى ذلك الحين، ستظل المعاملة تصل إلى blockchain. إذا كانت العملات تدخل هذا العنوان ومن المعروف أنها مرسلة من المجرمين أو المساهمين السياسيين أو من اللجان والحسابات بميزانيات صارمة (أي الاختلاس)، أو إذا ارتكب المالك الجديد لهذه العملات خطأً ويرسل هذه العملات المعدنية إلى عنوان مشترك مع العملات المعدنية المعروف أنه يمتلكها، وهي رقصة عدم الكشف عن هويته هو ما يصل في البيتكوين.
مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. نموذج المفاتيح/المعاملات التقليدي Bitcoin. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. المفاتيح/المعاملات التقليدية Bitcoinش. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 12 وبالتالي، بدلًا من قيام المستخدمين بإرسال العملات المعدنية من العنوان (وهو في الحقيقة مفتاح عام) إلى العنوان (مفتاح عام آخر) باستخدام مفاتيحهم الخاصة، يرسل المستخدمون العملات المعدنية من صندوق بريد لمرة واحدة (الذي يتم إنشاؤه باستخدام المفتاح العام لأصدقائك) إلى صندوق بريد لمرة واحدة (بالمثل) باستخدام الخاص بك المفاتيح الخاصة الخاصة. بمعنى ما، نحن نقول: "حسنًا، ليرفع الجميع أيديهم عن المال أثناء صرفه نقل حولها! يكفي ببساطة أن نعرف أن مفاتيحنا * يمكنها * فتح هذا الصندوق وذاك نحن نعرف مقدار المال الموجود في الصندوق. لا تضع بصمات أصابعك أبدًا على صندوق البريد أو استخدمه فعليًا، فقط قم بتداول الصندوق المليء بالنقود نفسها. وبهذه الطريقة لا نعرف من أرسل ماذا، لكن محتويات هذه العناوين العامة لا تزال غير قابلة للاحتكاك، وقابلة للاستبدال، وقابلة للقسمة، و لا تزال تمتلك كل الصفات اللطيفة الأخرى للأموال التي نرغب فيها مثل عملة البيتكوين." مجموعة لا حصر لها من صناديق البريد. قمت بنشر عنوان، لدي مفتاح خاص. أستخدم مفتاحي الخاص وعنوانك، و بعض البيانات العشوائية، لإنشاء مفتاح عام. تم تصميم الخوارزمية بحيث، منذ تم استخدام العنوان لإنشاء المفتاح العام، ويعمل مفتاحك الخاص فقط على فتح المفتاح رسالة. مراقب، حواء، يراك تنشر عنوانك، ويرى المفتاح العام الذي أعلنه. ومع ذلك، إنها لا تعرف ما إذا كنت قد أعلنت عن مفتاحي العام بناءً على عنوانك أو عنوانها أو عنوان بريندا أو شارلين، أو أيا كان. إنها تتحقق من مفتاحها الخاص مقابل المفتاح العام الذي أعلنته ويرى أنه لا يعمل؛ إنه ليس مالها. إنها لا تعرف المفتاح الخاص لأي شخص آخر، و فقط مستلم الرسالة لديه المفتاح الخاص الذي يمكنه فتح الرسالة. لذلك لا أحد الاستماع يمكن أن يحدد من الذي حصل على المال ناهيك عن أخذ المال.
عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 13 أتساءل كم سيكون الألم في الرقبة عند تنفيذ اختيار التشفير مخطط. إهليلجي أو غير ذلك. لذلك، إذا تم كسر بعض المخططات في المستقبل، تتحول العملة دون قلق. ربما ألم كبير في المؤخرة. حسنًا، هذا بالضبط ما شرحته للتو في تعليقي السابق. نوع ديفي هيلمان التبادلات نظيفة. لنفترض أن كل من Alex وBrenda لديه رقم سري، A وB، ورقم إنهم لا يهتمون بالحفاظ على السر، أ و ب. إنهم يرغبون في إنشاء سر مشترك بدون إيفا تكتشف ذلك. توصل ديفل وهيلمان إلى طريقة لمشاركة أليكس وبريندا الأرقام العامة a وb، ولكن ليس الأرقام الخاصة A وB، وإنشاء سر مشترك، K. باستخدام هذا السر المشترك، K، دون أن تستمع إيفا إلى القدرة على توليد نفس السر يمكن لـ K وAlex وBrenda الآن استخدام K كمفتاح تشفير سري وتمرير الرسائل السرية مرة أخرى وإيابا. وإليك كيفية عمل ذلك، على الرغم من أنه يجب أن يعمل مع أرقام أكبر بكثير من 100. سنستخدم 100 لأن العمل على الأعداد الصحيحة modulo 100 يعادل "التخلص من كل شيء" ولكن آخر رقمين من الرقم." يختار كل من Alex وBrenda A وa وB وb. إنهم يحتفظون بسرية A و B. تخبر أليكس بريندا بقيمتها وهي 100 (آخر رقمين فقط) وتخبر بريندا أليكس قيمة b modulo 100. الآن إيفا تعرف (a,b) modulo 100. لكن Alex تعرف (a,b,A) لذا فهي يمكن حساب x=abA modulo 100.يقطع Alex كل الرقم باستثناء الرقم الأخير لأننا نعمل تحت الأعداد الصحيحة modulo 100 مرة أخرى. وبالمثل، تعرف بريندا (أ، ب، ب) حتى تتمكن من إجراء العمليات الحسابية y=abB modulo 100. يستطيع Alex الآن نشر x ويمكن لبريندا نشر y. لكن الآن يستطيع Alex حساب yA = abBA modulo 100، ويمكن لبريندا حساب xB = أببأ مودولو 100. كلاهما يعرف نفس الرقم! لكن كل ما سمعته إيفا هو (أ، ب، أ * ب * أ، أ * ب * ب). ليس لديها طريقة سهلة لحساب أبأ*ب. الآن، هذه هي الطريقة الأسهل والأقل أمانًا للتفكير في بورصة Diffe-Hellman. توجد إصدارات أكثر أمانا. لكن معظم الإصدارات تعمل بسبب عوامل الأعداد الصحيحة والمنفصلة اللوغاريتمات صعبة، ويمكن حل هاتين المشكلتين بسهولة بواسطة أجهزة الكمبيوتر الكمومية. سأبحث في ما إذا كانت هناك أي إصدارات مقاومة للكم. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange يفتقد "تسلسل txn القياسي" المدرج هنا مجموعة كاملة من الخطوات، مثل التوقيعات. لقد تم أخذهم كأمر مسلم به هنا. وهو أمر سيء حقا، لأن الترتيب الذي نحن فيه أشياء التوقيع، والمعلومات المضمنة في الرسالة الموقعة، وما إلى ذلك... كل هذا للغاية مهم للبروتوكول. الخطأ في خطوة أو خطوتين من الخطوات، حتى لو كان خارج الترتيب قليلاً، أثناء تنفيذ " "تسلسل المعاملات القياسي" يمكن أن يلقي بظلال من الشك على أمن النظام بأكمله. علاوة على ذلك، فإن الأدلة المقدمة لاحقًا في الورقة قد لا تكون صارمة بما فيه الكفاية إذا كانت يتم تعريف الإطار الذي يعملون ضمنه بشكل فضفاض كما هو الحال في هذا القسم.
عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 14 لاحظ أن المؤلف (المؤلفين؟) يقومون بعمل رهيب في الحفاظ على مصطلحاتهم مباشرة طوال الوقت النص، ولكن بشكل خاص في هذا الجزء التالي. سيكون التجسيد التالي لهذه الورقة بالضرورة أكثر صرامة. يشيرون في النص إلى P كمفتاحهم العام لمرة واحدة. في الرسم البياني، يشيرون إلى R كـ "مفتاح Tx العام" الخاص بهم وP باعتباره "مفتاح الوجهة". لو كنت سأعيد كتابة هذا، لفعلت ضع بعض المصطلحات على وجه التحديد قبل مناقشة هذه الأقسام. هذا هائل. انظر الصفحة 5. من يختار ايل؟ يوضح الرسم البياني أن المفتاح العام للمعاملة R = rG، وهو عشوائي ومختار بواسطة المرسل، ليس جزءًا من إخراج Tx. هذا لأنه يمكن أن يكون هو نفسه بالنسبة لعدة المعاملات لعدة أشخاص، ولا يتم استخدامها لاحقًا للإنفاق. يتم إنشاء R جديد في كل مرة تريد بث معاملة CryptoNote جديدة. علاوة على ذلك، يتم استخدام R فقط للتحقق مما إذا كنت متلقي المعاملة. إنها ليست بيانات غير هامة، ولكنها غير هامة لأي شخص بدون المفاتيح الخاصة المرتبطة بـ (أ، ب). من ناحية أخرى، يعد مفتاح الوجهة P = Hs(rA)G + B جزءًا من إخراج Tx. الجميع يجب أن يتم فحص بيانات كل معاملة عابرة من خلال التحقق من P* الذي تم إنشاؤه مقابلها هذا P لمعرفة ما إذا كانوا يمتلكون هذه المعاملة العابرة. أي شخص لديه مخرجات معاملة غير منفقة (UTXO) ستحتوي على مجموعة من هذه العناصر مع كميات. من أجل قضاءد، هم قم بالتوقيع على بعض الرسائل الجديدة بما في ذلك P. يجب أن تقوم أليس بتوقيع هذه المعاملة باستخدام مفتاح (مفاتيح) خاصة لمرة واحدة مرتبطة بمفتاح (مفاتيح) الوجهة لمخرجات المعاملة غير المنفقة. يأتي كل مفتاح وجهة تملكه أليس مجهزًا بمفتاح خاص لمرة واحدة مملوك أيضًا (على الأرجح) لأليس. في كل مرة تريد أليس ذلك أرسل محتويات مفتاح الوجهة لي، أو لبوب، أو بريندا، أو تشارلي أو شارلين، هي تستخدم مفتاحها الخاص لتوقيع المعاملة. عند استلام المعاملة، سأحصل على جديد Tx، ومفتاح عام جديد للوجهة، وسأكون قادرًا على استعادة مفتاح خاص جديد لمرة واحدة x. الجمع بين مفتاحي الخاص لمرة واحدة، x، مع الوجهة العامة للمعاملة الجديدة المفتاح (المفاتيح) هو كيفية إرسال معاملة جديدة
- يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً وصفًا عامًا للخوارزمية الخاصة بنا دون أي إشارة صريحة إليها النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8
-
يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً جنرالًاالوصف الكامل لخوارزميتنا بدون إشارة صريحة إلى النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8 15 كيف تبدو مخرجات المعاملة غير المنفقة هنا؟ يشير الرسم البياني إلى أن مخرجات المعاملة تتكون فقط من نقطتي بيانات: المبلغ ومفتاح الوجهة. ولكن هذا ليس كذلك كافية لأنه عندما أحاول إنفاق هذا "الإخراج" سأظل بحاجة إلى معرفة R=rG. تذكر أنه يتم اختيار r من قبل المرسل، وR هو أ) يستخدم للتعرف على العملات المشفرة الواردة باعتبارها خاصة بك الخاصة و ب) المستخدمة لإنشاء المفتاح الخاص لمرة واحدة المستخدم "للمطالبة" بعملتك المشفرة. الجزء الذي لا أفهمه في هذا؟ أخذ النظرية "حسنًا، لدينا هذه التوقيعات والمعاملات، ونمررها ذهابًا وإيابًا" إلى عالم البرمجة "حسنًا، ما هي المعلومات على وجه التحديد التي تشكل الفرد UTXO؟" أفضل طريقة للإجابة على هذا السؤال هي البحث في نص التعليمات البرمجية غير المعلقة تمامًا. أحسنتم يا فريق بايتكوين. تذكر: إمكانية الارتباط تعني "هل أرسل نفس الشخص؟" وإلغاء الارتباط يعني "فعل الشيء نفسه". شخص يتلقى؟". لذلك يمكن أن يكون النظام قابلاً للربط أو غير قابل للربط، أو غير قابل للربط أو غير قابل للربط. مزعج، وأنا أعلم. لذلك عندما يقول نيك فان سابيرهاجن هنا "...المدفوعات الواردة [هي] مرتبطة لمرة واحدة المفاتيح العامة التي لا يمكن للمشاهد ربطها،" دعونا نرى ما يعنيه. أولاً، فكر في الموقف الذي ترسل فيه أليس إلى بوب معاملتين منفصلتين من نفس المعاملة عنوان إلى نفس العنوان. في الكون Bitcoin، ارتكبت أليس الخطأ بالفعل من الإرسال من نفس العنوان وهكذا فشلت الصفقة رغبتنا المحدودة قابلية الربط. علاوة على ذلك، بما أنها أرسلت الأموال إلى نفس العنوان، فقد فشلت في تحقيق رغبتنا لعدم قابلية الارتباط. كانت معاملة البيتكوين هذه قابلة للربط (بالكامل) وغير قابلة للربط. من ناحية أخرى، في عالم العملات المشفرة، لنفترض أن أليس أرسلت لبوب بعض الأوراق النقدية المشفرة، باستخدام عنوان بوب العام. لقد اختارت مجموعتها المبهمة من المفاتيح العامة المعروفة للجميع مفاتيح في منطقة مترو واشنطن العاصمة. تقوم Alex بإنشاء مفتاح عام لمرة واحدة باستخدام مفتاحها الخاص المعلومات والمعلومات العامة لبوب. إنها ترسل الأموال، وأي مراقب سيفعل ذلك لن يكون قادرًا إلا على جمع "أرسل شخص ما من منطقة مترو واشنطن العاصمة 2.3 عملة مشفرة إلى العنوان العام لمرة واحدة XYZ123." لدينا سيطرة احتمالية على قابلية الارتباط هنا، لذلك سنسميها "غير قابلة للربط تقريبًا". نرى أيضًا أنه يتم إرسال أموال المفاتيح العامة لمرة واحدة فقط. حتى لو اشتبهنا في المتلقي كما كان بوب، ليس لدينا مفاتيحه الخاصة وبالتالي لا يمكننا اختبار ما إذا كانت المعاملة ناجحة أم لا ينتمي إلى بوب ناهيك عن إنشاء مفتاحه الخاص لمرة واحدة لاسترداد ورقته المشفرة. إذن هذا هو، في الواقع، "غير قابل للربط" تمامًا. إذن، هذه هي الخدعة الأفضل على الإطلاق. من يريد أن يثق حقًا في MtGox آخر؟ قد نكون كذلك من المريح تخزين بعض كمية BTC على Coinbase، ولكن أقصى درجات أمان البيتكوين هي ذلك محفظة مادية. وهو أمر غير مريح. في هذه الحالة، يمكنك بكل ثقة التخلي عن نصف مفتاحك الخاص دون المساس بملكيتك القدرة الخاصة على إنفاق المال. عند القيام بذلك، كل ما تفعله هو إخبار شخص ما بكيفية كسر عدم إمكانية الارتباط. الآخر يتم الحفاظ على خصائص CN التي تعمل كعملة، كدليل ضد الإنفاق المزدوج و ماذا.
-
يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً وصفًا عامًا للخوارزمية الخاصة بنا دون أي إشارة صريحة إليها النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8
- يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً جنرالًاالوصف الكامل لخوارزميتنا بدون إشارة صريحة إلى النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8 16 نعم، لدينا الآن أ) عنوان الدفع و ب) معرف الدفع. يمكن للناقد أن يتساءل "هل نحتاج حقًا إلى القيام بذلك؟ بعد كل شيء، إذا تلقى التاجر 112.00678952 CN بالضبط، وكان هذا طلبي، ولدي لقطة شاشة أو إيصال أو أي شيء آخر، أليس كذلك درجة مجنونة من الدقة كافية؟" الجواب هو "ربما، في أغلب الأحيان، بشكل يومي، المعاملات وجهاً لوجه." ومع ذلك، فإن الوضع الأكثر شيوعًا (خاصة في العالم الرقمي) هو: التاجر يبيع مجموعة من الأشياء، لكل منها سعر ثابت. لنفترض أن الكائن A هو 0.001 CN، والكائن B هو 0.01 CN و الكائن C هو 0.1 CN. الآن، إذا تلقى التاجر طلبًا بقيمة 1.618 CN، فهناك الكثير (كثيرة!) طرق لترتيب طلب للعميل. وهكذا بدون أي نوع من معرف الدفع، تحديد ما يسمى بالطلب "الفريد" للعميل مع ما يسمى بالتكلفة "الفريدة" الخاصة به يصبح النظام مستحيلا. والأكثر تسلية: إذا كان كل شيء في متجري عبر الإنترنت يكلف 1.0 بالضبط CN، وأحصل على 1000 عميل يوميا؟ وتريد أن تثبت أنك اشتريت 3 أشياء بالضبط قبل اسبوعين؟ بدون معرف الدفع؟ حظا سعيدا يا صديقي. قصة قصيرة طويلة: عندما ينشر بوب عنوان الدفع، فقد ينتهي به الأمر أيضًا إلى نشر عنوان معرف الدفع أيضًا (راجع، على سبيل المثال، ودائع Poloniex XMR). وهذا مختلف عما هو موصوف في النص هنا حيث أليس هي التي تنشئ معرف الدفع. يجب أن تكون هناك طريقة ما ليقوم Bob بإنشاء معرف الدفع أيضًا. (أ،ب) تذكر أنه يمكن نشر مفتاح التتبع (أ، ب)؛ فقدان سرية قيمة الوصية "أ". لا تنتهك قدرتك على الإنفاق أو تسمح للآخرين بالسرقة منك (على ما أعتقد... ليتم إثباتها)، فهو سيسمح للأشخاص ببساطة برؤية جميع المعاملات الواردة. العنوان المقطوع، كما هو موضح في هذه الفقرة، يأخذ ببساطة الجزء "الخاص" من المفتاح ويولدها من الجزء "العام". سيؤدي الكشف عن قيمة "a" إلى إزالة عدم قابلية الارتباط ولكنها ستحافظ على بقية المعاملات. المؤلف يعني "غير قابل للربط" لأن غير قابل للربط يشير إلى المتلقي والقابل للربط يشير إلى المرسل. ومن الواضح أيضًا أن المؤلف لم يدرك أن هناك جانبين مختلفين لقابلية الارتباط. نظرًا لأن المعاملة هي كائن موجه على الرسم البياني، فسيكون هناك سؤالان: "هل هاتان المعاملتان تذهبان إلى نفس الشخص؟" و"هل هاتان المعاملتان قادمتان من نفس الشخص؟" هذه سياسة "عدم الرجوع" والتي بموجبها تكون خاصية إلغاء الارتباط الخاصة بـ CryptoNote مشروط. وهذا يعني أن بوب يمكنه اختيار معاملاته الواردة لتكون غير قابلة للربط باستخدام هذه السياسة. وهذا ادعاء أثبتوه بموجب نموذج أوراكل العشوائي. سوف نصل إلى ذلك؛ العشوائية أوراكل لديها إيجابيات وسلبيات.
VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 ربما يكون هذا غبيًا، ولكن يجب توخي الحذر عند توحيد S وP_s. إذا قمت فقط بإلحاق المفتاح العام الأخير حتى النهاية، يتم كسر عدم إمكانية الارتباط لأن أي شخص يتحقق من المعاملات العابرة يمكن فقط التحقق من آخر مفتاح عام مدرج في كل معاملة وازدهار. هذا هو المفتاح العام المرتبطة بالمرسل. لذلك بعد الاتحاد، يجب أن يكون هناك مولد أرقام عشوائية زائفة تستخدم لتبديل المفاتيح العامة المختارة. "...حتى ينتج المالك توقيعًا ثانيًا باستخدام نفس زوج المفاتيح." أتمنى للمؤلف (المؤلفين؟) سوف أشرح هذا بالتفصيل. أعتقد أن هذا يعني "تأكد في كل مرة تختار فيها مجموعة من المفاتيح العامة للتشويش بنفسك، يمكنك اختيار مجموعة جديدة تمامًا بدون مفتاحين متشابهين." والذي يبدو وكأنه حالة قوية جدًا لوضعها عند عدم إمكانية الارتباط. ربما "تختار مجموعة عشوائية جديدة من جميع المفاتيح الممكنة" مع افتراض أنه على الرغم من أن التقاطعات غير التافهة ستحدث حتماً يحدث، فلن يحدث كثيرًا. وفي كلتا الحالتين، أحتاج إلى التعمق في هذا البيان. يؤدي هذا إلى إنشاء التوقيع الدائري. أدلة صفر المعرفة رائعة: أتحداك أن تثبت لي أنك تعرف سرًا دون الكشف عن السر. على سبيل المثال، لنفترض أننا عند مدخل كهف على شكل كعكة الدونات، وفي الجزء الخلفي من الكهف (بعيدًا عن الأنظار من المدخل) يوجد oالطريق الجديد الباب الذي أنت ادعي أن لديك المفتاح. إذا ذهبت في اتجاه واحد، فإنه يسمح لك دائمًا بالمرور، ولكن إذا ذهبت الاتجاه الآخر، تحتاج إلى مفتاح. لكنك لا تريد حتى أن تريني المفتاح، ناهيك عن ذلك تبين لي أنه يفتح الباب. لكنك تريد أن تثبت لي أنك تعرف كيفية فتح الملف باب. في الوضع التفاعلي، أقوم بقلب العملة المعدنية. الرؤوس على اليسار، والذيول على اليمين، وتنزل إلى الأسفل كهف على شكل كعكة الدونات أينما توجهك العملة. في الخلف، بعيدًا عن عيني، أنت افتح الباب للعودة إلى الجانب الآخر. نكرر تجربة رمي العملة حتى أقتنع بأن لديك المفتاح. ولكن من الواضح أن هذا هو الدليل التفاعلي للمعرفة الصفرية. هناك إصدارات غير تفاعلية لا يتعين علينا أنا وأنت التواصل فيها أبدًا؛ بهذه الطريقة، لا يمكن لأي متنصت أن يتدخل. http://en.wikipedia.org/wiki/Zero-knowledge_proof وهذا عكس التعريف السابق.
VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 هذه المنطقة بأكملها لا تعرف العملات المشفرة، فهي تصف ببساطة خوارزمية التوقيع الحلقي بدونها الإشارة إلى العملات. أظن أن بعض التدوين يتوافق مع بقية الورقة، رغم ذلك. على سبيل المثال، x هو المفتاح السري "العشوائي" الذي تم اختياره في GEN، والذي يعطي المفتاح العام P وصورة المفتاح العام I. قيمة x هذه هي القيمة التي يحسبها بوب في الجزء 6 الصفحة 8. إذن هذه هي البدء في توضيح بعض الالتباس من الوصف السابق. هذا رائع نوعًا ما؛ لا يتم تحويل الأموال من "عنوان أليس العام إلى عنوان بوب العام العنوان." يتم نقله من عنوان لمرة واحدة إلى عنوان لمرة واحدة. لذا، إلى حد ما، إليك كيفية عمل الأشياء. إذا كان لدى Alex بعض العملات المشفرة لأن شخصًا ما أرسلتها إليها، وهذا يعني أن لديها المفاتيح الخاصة اللازمة لإرسالها إلى بوب. انها تستخدم تبادل Diffe-Hellman باستخدام المعلومات العامة لبوب لإنشاء عنوان جديد لمرة واحدة ويتم نقل العملات المشفرة إلى هذا العنوان. الآن، منذ استخدام تبادل DH (الذي يُفترض أنه آمن) لإنشاء عنوان جديد لمرة واحدة التي أرسلت إليها أليكس CN، بوب هو الوحيد الذي لديه المفاتيح الخاصة اللازمة لتكرار الرسالة أعلاه. والآن، بوب هو أليكس. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation يجب فهرسة الجمع على j وليس i. كل c_i عبارة عن خردة عشوائية (نظرًا لأن w_i عشوائية) باستثناء الحمار c_iمرتبط بالمفتاح الفعلي المتضمن في هذا التوقيع. قيمة ج هي hash من المعلومات السابقة. أعتقد أن هذا قد يحتوي على خطأ مطبعي أسوأ من إعادة استخدام الفهرس "i"، لأن c_s يبدو أن يتم تعريفها ضمنا، وليس صراحة. وبالفعل، إذا أخذنا هذه المعادلة على الإيمان، فإننا نحدد أن c_s = (1/2)c - (1/2) sum_i neq s c_i. أي hash ناقص مجموعة كاملة من الأرقام العشوائية. من ناحية أخرى، إذا كان المقصود من هذا الجمع أن يقرأ "c_s = (c - sum_j neq s c_j) mod l"، ثم نأخذ hash من معلوماتنا السابقة، ونولد مجموعة من الأرقام العشوائية، اطرح كل هذه الأرقام العشوائية من hash، وهذا يعطينا c_s. يبدو أن هذا ما "يجب" أن يحدث وفقًا لحدسي، ويطابق خطوة التحقق في الصفحة 10. ولكن الحدس ليس الرياضيات. سوف أتعمق في هذا. كما كان من قبل؛ كل هذه الأشياء ستكون عشوائية باستثناء تلك المرتبطة بالفعلي المفتاح العام للموقع x. باستثناء هذه المرة، هذا أكثر ما أتوقعه من الهيكل: r_i عشوائي لـ i!=s ويتم تحديد r_s فقط بواسطة السر x والقيم المفهرسة s لـ q_i وc_i.
VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر′ ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد بوب زوج المفاتيح لمرة واحدة (pi، Pi) ويخزنه في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد إخراج Bob زوج مفاتيح لمرة واحدة (pi، Pi) وstالخامات في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 19 في هذه المرحلة، أنا في حيرة شديدة. يتلقى Alex رسالة M تحتوي على توقيع (I,c_1, ..., c_n, r_1, ..., r_n) وقائمة عامة مفاتيح S. وهي تدير VER. سيؤدي هذا إلى حساب L_i' وR_i' هذا يتحقق من أن c_s = c - sum_i neq s c_i في الصفحة السابقة. في البداية كنت في حيرة من أمري. يمكن لأي شخص حساب L_i' وR_i'. في الواقع، كل r_i و تم نشر c_i في التوقيع سيجما مع قيمة I. المجموعة S = تم أيضًا نشر P_i لجميع المفاتيح العامة. لذلك أي شخص قد رأى سيجما ومجموعة من سيحصل المفتاحان S = P_i على نفس القيم لـ L_i' وR_i' ومن ثم التحقق من التوقيع. ولكن بعد ذلك تذكرت أن هذا القسم يصف ببساطة خوارزمية التوقيع، وليس "التحقق". إذا تم التوقيع، فتحقق مما إذا تم إرساله إلي، وإذا كان الأمر كذلك، فاذهب وأنفق الأموال." هذا هو ببساطة جزء التوقيع من اللعبة. أنا مهتم بقراءة الملحق أ عندما أصل إلى هناك أخيرًا. أرغب في رؤية مقارنة واسعة النطاق لكل عملية على حدة بين Cryptonote وBitcoin. أيضا، الكهرباء / الاستدامة. ما هي أجزاء الخوارزميات التي تشكل "المدخلات" هنا؟ أعتقد أن إدخال المعاملة هو مبلغ ومجموعة من UTXOs التي يبلغ مجموعها مبلغًا أكبر من المبلغ المبلغ. هذا غير واضح. "هدف الاختباء؟" لقد فكرت في هذا الأمر لبضع دقائق الآن وما زلت لم أفكر فيه فكرة ضبابية عما يمكن أن يعنيه ذلك. لا يمكن تنفيذ هجوم الإنفاق المزدوج إلا من خلال التلاعب بالمفتاح المستخدم المتصور للعقدة مجموعة الصور \(I\). "درجة الغموض" = n ولكن العدد الإجمالي للمفاتيح العامة المضمنة في المعاملة هو ن+1. وهذا يعني أن درجة الغموض ستكون "كم عدد الأشخاص الآخرين الذين تريدهم الحشد؟" من المحتمل أن تكون الإجابة افتراضيًا "أكبر عدد ممكن".
VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد بوب زوج المفاتيح لمرة واحدة (pi، Pi) ويخزنه في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد إخراج Bob زوج مفاتيح لمرة واحدة (pi، Pi) وstالخامات في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 20 هذا مثير للاهتمام؛ في وقت سابق، قمنا بتوفير وسيلة للمتلقي، بوب، لجعل كل الوارد المعاملات غير القابلة للربط إما عن طريق اختيار نصف مفاتيحه الخاصة بشكل حتمي أو عن طريق نشر نصف مفاتيحه الخاصة على أنها عامة. وهذا نوع من سياسة عدم العودة. وهنا نرى طريقة المرسل، Alex، لاختيار معاملة صادرة واحدة قابلة للربط، ولكن في الواقع هذا يكشف عن Alex باعتباره المرسل إلى الشبكة بأكملها. هذه ليست سياسة عدم العودة. هذه معاملة تلو الأخرى. هل هناك سياسة ثالثة؟ هل يستطيع المتلقي، بوب، إنشاء معرف دفع فريد لـ Alex لا يتغير أبدًا، ربما باستخدام بورصة Diffe-Hellman؟ إذا كان أي شخص يشمل هذا الدفع الهوية المجمعة في مكان ما في معاملتها إلى عنوان بوب، لا بد أنها جاءت من أليكس. بهذه الطريقة، لا تحتاج Alex إلى الكشف عن نفسها للشبكة بأكملها عن طريق اختيار ربط شبكة معينة المعاملة، ولكن لا يزال بإمكانها تعريف نفسها للشخص الذي ترسل إليه أموالها. أليس هذا ما تفعله بولونيكس؟
الصفقة إدخال تكساس الإخراج0 . . . الناتج . . . الإخراج الصورة الرئيسية التوقيعات التوقيع الدائري مفتاح الوجهة الإخراج1 مفتاح الوجهة الإخراج المعاملات الخارجية إخراج المرسل مفتاح الوجهة زوج مفاتيح لمرة واحدة لمرة واحدة مفتاح خاص أنا = xHp(P) ف، س الشكل 7. إنشاء توقيع الرنين في معاملة قياسية. 5 إثبات المساواة في العمل في هذا القسم نقترح ونبني خوارزمية proof-of-work الجديدة. هدفنا الأساسي الهدف هو سد الفجوة بين عمال المناجم من وحدة المعالجة المركزية (الأغلبية) وعمال المناجم GPU/FPGA/ASIC (الأقلية). إنه كذلك من المناسب أن بعض المستخدمين يمكن أن يتمتعوا بميزة معينة على الآخرين، ولكن استثماراتهم يجب أن تنمو على الأقل خطيا مع السلطة. وبشكل أعم، إنتاج أجهزة ذات أغراض خاصة يجب أن تكون أقل ربحية قدر الإمكان. 5.1 الأعمال ذات الصلة يستخدم بروتوكول Bitcoin proof-of-work الأصلي وظيفة التسعير المكثفة لوحدة المعالجة المركزية SHA-256. ويتكون بشكل أساسي من العوامل المنطقية الأساسية ويعتمد فقط على السرعة الحسابية المعالج، وبالتالي فهو مناسب تمامًا لتنفيذ متعدد النواة/الناقل. ومع ذلك، فإن أجهزة الكمبيوتر الحديثة لا تقتصر على عدد العمليات في الثانية وحدها، ولكن أيضًا حسب حجم الذاكرة. في حين أن بعض المعالجات يمكن أن تكون أسرع بكثير من غيرها [8]، من غير المرجح أن تختلف أحجام الذاكرة بين الأجهزة. تم تقديم وظائف السعر المرتبطة بالذاكرة لأول مرة بواسطة العبادي وآخرين وتم تعريفها على أنها "الوظائف التي يهيمن الوقت المستغرق في الوصول إلى الذاكرة على وقت حسابها" [15]. الفكرة الرئيسية هي بناء خوارزمية تخصص كتلة كبيرة من البيانات ("لوحة المسودة") داخل الذاكرة التي يمكن الوصول إليها ببطء نسبيًا (على سبيل المثال، ذاكرة الوصول العشوائي) و"الوصول إلى ملف تسلسل غير متوقع للمواقع "داخلها. يجب أن تكون الكتلة كبيرة بما يكفي للحفظ البيانات أكثر فائدة من إعادة حسابها لكل وصول. ينبغي للخوارزمية أيضًا منع التوازي الداخلي، وبالتالي يجب أن تتطلب الخيوط المتزامنة N ذاكرة أكبر بمقدار N مرة مرة واحدة. قام Dwork وآخرون [22] بالتحقيق في هذا النهج وإضفاء الطابع الرسمي عليه مما دفعهم إلى اقتراح نهج آخر متغير وظيفة التسعير: "Mbound". عمل آخر ينتمي إلى F. Coelho [20]، الذي 11 الصفقة إدخال تكساس الإخراج0 . . . الناتج . . . الإخراج الصورة الرئيسية التوقيعات التوقيع الدائري مفتاح الوجهة الإخراج1 مفتاح الوجهة الإخراج المعاملات الخارجية إخراج المرسل مفتاح الوجهة زوج مفاتيح لمرة واحدة لمرة واحدة مفتاح خاص أنا = xHp(P) ف، س الشكل 7. إنشاء توقيع الرنين في معاملة قياسية. 5 إثبات المساواة في العمل في هذا القسم نقترح ونبني خوارزمية proof-of-work الجديدة. هدفنا الأساسي الهدف هو سد الفجوة بين عمال المناجم من وحدة المعالجة المركزية (الأغلبية) وعمال المناجم GPU/FPGA/ASIC (الأقلية). إنه كذلك من المناسب أن بعض المستخدمين يمكن أن يتمتعوا بميزة معينة على الآخرين، ولكن استثماراتهم يجب أن تنمو على الأقل خطيا مع السلطة. وبشكل أعم، إنتاج أجهزة ذات أغراض خاصة يجب أن تكون أقل ربحية قدر الإمكان. 5.1 الأعمال ذات الصلة يستخدم بروتوكول Bitcoin proof-of-work الأصلي وظيفة التسعير المكثفة لوحدة المعالجة المركزية SHA-256. ويتكون بشكل أساسي من العوامل المنطقية الأساسية ويعتمد فقط على السرعة الحسابية المعالج، وبالتالي فهو مناسب تمامًا لتنفيذ متعدد النواة/الناقل. ومع ذلك، فإن أجهزة الكمبيوتر الحديثة لا تقتصر على عدد العمليات في الثانية وحدها، ولكن أيضًا حسب حجم الذاكرة. في حين أن بعض المعالجات يمكن أن تكون أسرع بكثير من غيرها [8]، من غير المرجح أن تختلف أحجام الذاكرة بين الأجهزة. تم تقديم وظائف السعر المرتبطة بالذاكرة لأول مرة بواسطة العبادي وآخرين وتم تعريفها على أنها "الوظائف التي يهيمن الوقت المستغرق في الوصول إلى الذاكرة على وقت حسابها" [15]. الفكرة الرئيسية هي بناء خوارزمية تخصص كتلة كبيرة من البيانات ("لوحة المسودة") داخل الذاكرة التي يمكن الوصول إليها ببطء نسبيًا (على سبيل المثال، ذاكرة الوصول العشوائي) و"الوصول إلى ملف تسلسل غير متوقع للمواقع "داخلها. يجب أن تكون الكتلة كبيرة بما يكفي للحفظ البيانات أكثر فائدة من إعادة حسابها لكل وصول. ينبغي للخوارزمية أيضًا منع التوازي الداخلي، وبالتالي يجب أن تتطلب الخيوط المتزامنة N ذاكرة أكبر بمقدار N مرة مرة واحدة. قام Dwork وآخرون [22] بالتحقيق في هذا النهج وإضفاء الطابع الرسمي عليه مما دفعهم إلى اقتراح نهج آخر متغير وظيفة التسعير: "Mbound". عمل آخر ينتمي إلى F. Coelho [20]، الذي 11 21 هذه، ظاهريًا، هي UTXO: المبالغ ومفاتيح الوجهة. إذا كان Alex هو من ينشئ هذه المعاملة القياسية ويرسلها إلى Bob، فإن Alex لديه أيضًا المفاتيح الخاصة لكل من هذه. يعجبني هذا المخطط كثيرًا، لأنه يجيب على بعض الأسئلة السابقة. يتكون إدخال Txn من مجموعة من مخرجات Txn و keصورة. ومن ثم يتم توقيعه بالتوقيع الدائري، بما في ذلك الكل المفاتيح الخاصة التي يملكها (أليكس) لجميع المعاملات الأجنبية المتضمنة في الصفقة. ال يتكون إخراج Txn من مبلغ ومفتاح الوجهة. يجوز لمتلقي المعاملة، كما يريدون، قم بإنشاء مفتاحهم الخاص لمرة واحدة كما هو موضح سابقًا في الورقة من أجل الإنفاق المال. سيكون من دواعي سروري معرفة مدى تطابق هذا مع الكود الفعلي ... لا، يصف نيك فان سابيرهاجن بشكل فضفاض بعض خصائص خوارزمية إثبات العمل، دون وصف تلك الخوارزمية فعليًا. سوف تتطلب خوارزمية CryptoNight نفسها تحليلًا عميقًا. عندما قرأت هذا، تلعثمت. هل يجب أن ينمو الاستثمار بشكل خطي على الأقل مع القوة، أم ينبغي هل ينمو الاستثمار على الأكثر بشكل خطي مع القوة؟ وبعد ذلك أدركت؛ أنا، كعامل منجم، أو مستثمر، أفكر عادةً في "مقدار القوة التي يمكنني الحصول عليها للاستثمار؟" وليس "ما مقدار الاستثمار المطلوب للحصول على قدر ثابت من الطاقة؟" بالطبع، تشير إلى الاستثمار بواسطة I والقوة بواسطة P. إذا كان I(P) هو الاستثمار كدالة للقوة وP(I) هي القوة كدالة للاستثمار، وسيكونان معكوسين لبعضهما البعض (أينما كان يمكن أن توجد معكوس). وإذا كان I(P) أسرع من الخطي فإن P(I) أبطأ من الخطي. وبالتالي، سيكون هناك انخفاض في معدل العائدات للمستثمرين. وهذا يعني أن ما يقوله المؤلف هنا هو: "بالتأكيد، كلما استثمرت أكثر، ستحصل على المزيد القوة. لكن يجب أن نحاول أن نجعل هذا الأمر يتعلق بمعدل عوائد منخفض." سوف تنتهي استثمارات وحدة المعالجة المركزية بشكل فرعي في النهاية؛ والسؤال هو ما إذا كان المؤلفون لقد صممنا خوارزمية أسرى الحرب التي ستجبر ASICs على القيام بذلك أيضًا. هل يجب أن يتم استخراج "العملة المستقبلية" الافتراضية دائمًا باستخدام الموارد الأبطأ/الأكثر محدودية؟ إن الورقة التي أعدها العبادي وآخرون (والتي تضم بعض مهندسي جوجل ومايكروسوفت كمؤلفين) هي، بشكل أساسي، وذلك باستخدام حقيقة أن حجم الذاكرة على مدى السنوات القليلة الماضية كان أصغر بكثير التباين عبر الأجهزة أكبر من سرعة المعالج، ومع نسبة استثمار إلى قوة أكثر من خطية. في غضون سنوات قليلة، قد يتعين إعادة تقييم هذا! كل شيء هو سباق تسلح.. من الصعب إنشاء دالة hash؛ يبدو أن إنشاء دالة hash تستوفي هذه القيود أكثر صعوبة. يبدو أن هذه الورقة ليس لديها تفسير للواقع hashing خوارزمية CryptoNight. أعتقد أنه تطبيق صعب الذاكرة لـ SHA-3، على أساس على مشاركات المنتدى ولكن ليس لدي أي فكرة... وهذا هو بيت القصيد. يجب شرحه.
اقترح الحل الأكثر فعالية: "هوكايدو". على حد علمنا، فإن العمل الأخير الذي يعتمد على فكرة عمليات البحث العشوائية الزائفة في مجموعة كبيرة هو الخوارزمية المعروفة باسم "scrypt" بواسطة C. Percival [32]. على عكس الوظائف السابقة التي يركز عليها اشتقاق المفتاح، وليس أنظمة proof-of-work. على الرغم من هذه الحقيقة، يمكن أن يخدم scrypt غرضنا: تعمل بشكل جيد كوظيفة تسعير في مشكلة التحويل الجزئية hash مثل SHA-256 في Bitcoin. حتى الآن تم تطبيق scrypt بالفعل في Litecoin [14] وبعض تفرعات Bitcoin الأخرى. ومع ذلك، فإن تنفيذها لا يرتبط حقًا بالذاكرة: نسبة "وقت الوصول إلى الذاكرة / الإجمالي". time" ليس كبيرًا بدرجة كافية لأن كل مثيل يستخدم 128 كيلو بايت فقط. وهذا يسمح لعمال المناجم GPU لتكون أكثر فعالية بحوالي 10 مرات وتستمر في ترك إمكانية الإنشاء نسبيًا أجهزة التعدين رخيصة ولكن ذات كفاءة عالية. علاوة على ذلك، فإن بناء السكربت نفسه يسمح بمبادلة خطية بين حجم الذاكرة ومساحة الذاكرة سرعة وحدة المعالجة المركزية نظرًا لأن كل كتلة في لوحة المسودة مشتقة فقط من سابقتها. على سبيل المثال، يمكنك تخزين كل كتلة ثانية وإعادة حساب الكتل الأخرى بطريقة كسولة، أي فقط عندما يصبح ذلك ضروريا. من المفترض أن يتم توزيع الفهارس العشوائية الزائفة بشكل موحد، وبالتالي فإن القيمة المتوقعة لإعادة حساب الكتل الإضافية هي 1 \(2 \cdot N\)، حيث N هو الرقم من التكرارات. يزيد الوقت الإجمالي للحساب بمقدار أقل من النصف نظرًا لوجود أيضًا العمليات المستقلة عن الوقت (الوقت الثابت) مثل إعداد لوحة المسودة وتشغيل hash كل التكرار. توفير 2/3 من تكاليف الذاكرة 1 3 \(\cdot\) ن + 1 3 \(\cdot\) \(2 \cdot N\) = N عمليات إعادة الحساب الإضافية؛ 9/10 النتائج في 1 10 \(\cdot\) ن + . . . + 1 10 \(\cdot\) 9 \(\cdot\) ن = 4.5ن. من السهل إظهار أن تخزين 1 فقط ق من جميع الكتل يزيد الوقت أقل من عامل s−1 2 . وهذا بدوره يعني أن الجهاز مزود بوحدة المعالجة المركزية أسرع 200 مرة من الرقائق الحديثة التي يمكنها تخزين 320 بايت فقط من لوحة المسودة. 5.2 الخوارزمية المقترحة نقترح خوارزمية جديدة مرتبطة بالذاكرة لوظيفة التسعير proof-of-work. يعتمد عليه الوصول العشوائي إلى ذاكرة بطيئة ويؤكد الاعتماد على زمن الوصول. على عكس scrypt كل تعتمد الكتلة الجديدة (طولها 64 بايت) على جميع الكتل السابقة. ونتيجة لذلك افتراضية يجب أن يزيد "موفر الذاكرة" من سرعة حسابه بشكل كبير. تتطلب الخوارزمية الخاصة بنا حوالي 2 ميجابايت لكل مثيل للأسباب التالية: 1. يتناسب مع ذاكرة التخزين المؤقت L3 (لكل نواة) للمعالجات الحديثة، والتي يجب أن تصبح سائدة في سنوات قليلة؛ 2. يعد ميغابايت من الذاكرة الداخلية حجمًا غير مقبول تقريبًا لخط أنابيب ASIC الحديث؛ 3. قد تقوم وحدات معالجة الرسومات بتشغيل مئات المثيلات المتزامنة، لكنها محدودة بطرق أخرى: ذاكرة GDDR5 أبطأ من ذاكرة التخزين المؤقت لوحدة المعالجة المركزية L3 وهي رائعة لعرض النطاق الترددي الخاص بها، وليس كذلك سرعة الوصول العشوائية. 4. إن التوسع الكبير في لوحة المسودة يتطلب زيادة في التكرارات، والتي بدوره يعني زيادة الوقت الإجمالي. قد تؤدي المكالمات "الثقيلة" في شبكة p2p غير الموثوقة إلى نقاط ضعف خطيرة، لأن العقد ملزمة بالتحقق من proof-of-work لكل كتلة جديدة. إذا كانت العقدة تقضي قدرًا كبيرًا من الوقت في كل تقييم hash، فيمكن بسهولة DDoSed بواسطة طوفان من الكائنات المزيفة مع بيانات العمل العشوائية (قيم nonce). 12 اقترح الحل الأكثر فعالية: "هوكايدو". على حد علمنا، فإن العمل الأخير الذي يعتمد على فكرة عمليات البحث العشوائية الزائفة في مجموعة كبيرة هو الخوارزمية المعروفة باسم "scrypt" بواسطة C. Percival [32]. على عكس الوظائف السابقة التي يركز عليها اشتقاق المفتاح، وليس أنظمة proof-of-work. على الرغم من هذه الحقيقة، يمكن أن يخدم scrypt غرضنا: تعمل بشكل جيد كوظيفة تسعير في مشكلة التحويل الجزئية hash مثل SHA-256 في Bitcoin. حتى الآن تم تطبيق scrypt بالفعل في Litecoin [14] وبعض شوكات Bitcoin الأخرى. ومع ذلك، فإن تنفيذها لا يرتبط حقًا بالذاكرة: نسبة "وقت الوصول إلى الذاكرة / الإجمالي". time" ليس كبيرًا بدرجة كافية لأن كل مثيل يستخدم 128 كيلو بايت فقط. وهذا يسمح لعمال المناجم GPU لتكون أكثر فعالية بحوالي 10 مرات وتستمر في ترك إمكانية الإنشاء نسبيًا أجهزة التعدين رخيصة ولكن ذات كفاءة عالية. علاوة على ذلك، فإن بناء السكربت نفسه يسمح بمبادلة خطية بين حجم الذاكرة ومساحة الذاكرة سرعة وحدة المعالجة المركزية نظرًا لأن كل كتلة في لوحة المسودة مشتقة فقط من سابقتها. على سبيل المثال، يمكنك تخزين كل كتلة ثانية وإعادة حساب الكتل الأخرى بطريقة كسولة، أي فقط عندما يصبح ذلك ضروريا. من المفترض أن يتم توزيع الفهارس العشوائية الزائفة بشكل موحد، وبالتالي فإن القيمة المتوقعة لإعادة حساب الكتل الإضافية هي 1 2 \(\cdot\) ن، حيثN هو الرقم من التكرارات. يزيد الوقت الإجمالي للحساب بمقدار أقل من النصف نظرًا لوجود أيضًا العمليات المستقلة عن الوقت (الوقت الثابت) مثل إعداد لوحة المسودة وتشغيل hash كل التكرار. توفير 2/3 من تكاليف الذاكرة 1 3 \(\cdot\) ن + 1 3 \(\cdot\) \(2 \cdot N\) = N عمليات إعادة الحساب الإضافية؛ 9/10 النتائج في 1 10 \(\cdot\) ن + . . . + 1 10 \(\cdot\) 9 \(\cdot\) ن = 4.5ن. من السهل إظهار أن تخزين 1 فقط ق من جميع الكتل يزيد الوقت أقل من عامل s−1 2 . وهذا بدوره يعني أن الجهاز مزود بوحدة المعالجة المركزية أسرع 200 مرة من الرقائق الحديثة التي يمكنها تخزين 320 بايت فقط من لوحة المسودة. 5.2 الخوارزمية المقترحة نقترح خوارزمية جديدة مرتبطة بالذاكرة لوظيفة التسعير proof-of-work. يعتمد عليه الوصول العشوائي إلى ذاكرة بطيئة ويؤكد الاعتماد على زمن الوصول. على عكس scrypt كل تعتمد الكتلة الجديدة (طولها 64 بايت) على جميع الكتل السابقة. ونتيجة لذلك افتراضية يجب أن يزيد "موفر الذاكرة" من سرعة حسابه بشكل كبير. تتطلب الخوارزمية الخاصة بنا حوالي 2 ميجابايت لكل مثيل للأسباب التالية: 1. يتناسب مع ذاكرة التخزين المؤقت L3 (لكل نواة) للمعالجات الحديثة، والتي يجب أن تصبح سائدة في سنوات قليلة؛ 2. يعد ميغابايت من الذاكرة الداخلية حجمًا غير مقبول تقريبًا لخط أنابيب ASIC الحديث؛ 3. قد تقوم وحدات معالجة الرسومات بتشغيل مئات المثيلات المتزامنة، لكنها محدودة بطرق أخرى: ذاكرة GDDR5 أبطأ من ذاكرة التخزين المؤقت لوحدة المعالجة المركزية L3 وهي رائعة لعرض النطاق الترددي الخاص بها، وليس كذلك سرعة الوصول العشوائية. 4. إن التوسع الكبير في لوحة المسودة يتطلب زيادة في التكرارات، والتي بدوره يعني زيادة الوقت الإجمالي. قد تؤدي المكالمات "الثقيلة" في شبكة p2p غير الموثوقة إلى نقاط ضعف خطيرة، لأن العقد ملزمة بالتحقق من proof-of-work لكل كتلة جديدة. إذا كانت العقدة تقضي قدرًا كبيرًا من الوقت في كل تقييم hash، فيمكن بسهولة DDoSed بواسطة طوفان من الكائنات المزيفة مع بيانات العمل العشوائية (قيم nonce). 12 22 لا يهم، هل هي عملة مشفرة؟ أين هي الخوارزمية؟ كل ما أراه هو إعلان. هذا هو المكان الذي ستتألق فيه Cryptonote حقًا، إذا كانت خوارزمية إثبات العمل (PoW) الخاصة بها جديرة بالاهتمام. انها ليست كذلك حقًا SHA-256، إنه ليس مشفرًا حقًا. إنها جديدة ومقيدة بالذاكرة وغير متكررة.
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 23 الوحدات الذرية. أحب ذلك. هل هذا يعادل ساتوشي؟ إذا كان الأمر كذلك، فهذا يعني أنه سيكون هناك 185 مليار عملة مشفرة. أعلم أنه يجب تعديل هذا في النهاية في بضع صفحات، أو ربما يكون هناك خطأ مطبعي؟ إذا كانت المكافأة الأساسية هي "جميع العملات المعدنية المتبقية"، فستكون كتلة واحدة فقط كافية للحصول على جميع العملات المعدنية. إنستاميني. ومن ناحية أخرى، إذا كان من المفترض أن يكون هذا متناسبًا بطريقة ما مع الفرق في الوقت بين الآن وبعض تاريخ انتهاء إنتاج العملة؟ من شأنه أن منطقي. أيضًا، في عالمي، علامتان أعظم من مثل هذه تعني "أعظم بكثير من". هل المؤلف ربما يعني شيئا آخر؟ إذا حدث تعديل للصعوبة في كل كتلة، فمن الممكن أن يمتلك المهاجم مزرعة كبيرة جدًا من الأسلحة تقوم الآلات بالتعدين داخل وخارج فترات زمنية مختارة بعناية. قد يتسبب هذا في انفجار فوضوي (أو اصطدام إلى الصفر) في الصعوبة، إذا لم يتم إخماد صيغ ضبط الصعوبة بشكل مناسب. لا شك أن طريقة Bitcoin غير مناسبة لإعادة الحسابات السريعة، ولكن فكرة القصور الذاتي في هذه الأنظمة سوف تحتاج إلى إثبات، وليس أمرا مفروغا منه. علاوة على ذلك، التذبذبات الصعوبة في الشبكة ليست بالضرورة مشكلة إلا إذا أدت إلى تذبذبات ظاهرية عرض العملات المعدنية - وقد يؤدي وجود صعوبة سريعة التغير إلى "الإفراط في التصحيح". الوقت المستغرق، خاصة خلال فترة زمنية قصيرة مثل بضع دقائق، سيكون متناسبًا مع "الإجمالي". عدد الكتل التي تم إنشاؤها على الشبكة." وثابت التناسب سوف ينمو في حد ذاته مع مرور الوقت، ويفترض أن يكون ذلك بشكل كبير إذا انطلق CN. قد تكون فكرة أفضل أن تقوم ببساطة بتعديل صعوبة الاحتفاظ "بإجمالي الكتل التي تم إنشاؤها على الشبكة منذ إضافة الكتلة الأخيرة إلى السلسلة الرئيسية" ضمن قيمة ثابتة معينة، أو مع تباين محدود أو شيء من هذا القبيل. إذا كانت الخوارزمية التكيفية حسابية يمكن تحديد سهولة التنفيذ، ويبدو أن هذا يحل المشكلة. ولكن بعد ذلك، إذا استخدمنا هذه الطريقة، يمكن لأي شخص لديه مزرعة تعدين كبيرة أن يغلق مزرعته لبضع ساعات، ثم أعد تشغيله مرة أخرى. بالنسبة للكتل القليلة الأولى، سوف تصنع تلك المزرعة البنك. لذا، في الواقع، ستثير هذه الطريقة نقطة مثيرة للاهتمام: يصبح التعدين (في المتوسط) أ خسارة اللعبة بدون عائد على الاستثمار، خاصة مع تزايد عدد الأشخاص الذين يستخدمون الشبكة. إذا كانت صعوبة التعدين شبكة يتم تتبعها عن كثب hashrate، أشك بطريقة أو بأخرى في أن الناس سوف يقومون بالتعدين بقدر ما يفعلون تفعل حاليا. أو، من ناحية أخرى، بدلاً من إبقاء مزارع التعدين الخاصة بهم تعمل على مدار الساعة طوال أيام الأسبوع، فقد يقومون بتحويلها يعمل لمدة 6 ساعات، أو إيقاف لمدة ساعتين، أو إيقاف لمدة 6 ساعات، أو إيقاف لمدة ساعتين، أو شيء من هذا القبيل. فقط قم بالتبديل إلى عملة أخرى لبضع ساعات، انتظر حتى تسقط الصعوبة، ثم قم بالقفز مرة أخرى للحصول على تلك النقاط الإضافية القليلة كتل الربحية مع تكيف الشبكة. وأنت تعرف ماذا؟ هذا هو في الواقع على الأرجح أحد أفضل سيناريوهات التعدين التي وضعتها في ذهني... يمكن أن يكون هذا أمرًا دائريًا، ولكن إذا كان متوسط وقت إنشاء الكتلة يصل إلى دقيقة تقريبًا، فهل يمكننا ذلك فقط استخدام عدد الكتل كبديل لـ "الوقت المستغرق؟"
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 24 حسنًا، لدينا blockchain، ولكل كتلة طوابع زمنية بالإضافة إلى كونها مجرد أمر. ومن الواضح أنه تم إدراج هذا ببساطة لصعوبة التعديل، لأن الطوابع الزمنية موجودة لا يمكن الاعتماد عليها للغاية، كما ذكرنا. هل يُسمح لنا بوجود طوابع زمنية متناقضة في السلسلة؟ إذا كانت المجموعة (أ) تأتي قبل المجموعة (ب) في السلسلة، وكان كل شيء متسقًا من حيث الموارد المالية، ولكن يبدو أن الكتلة "أ" قد تم إنشاؤها بعد الكتلة "ب"؟ لأنه ربما يملكها شخص ما جزء كبير من الشبكة؟ هل هذا جيد؟ ربما لأن الموارد المالية ليست مخطئة. حسنًا، أنا أكره هذا التعسفي "80% فقط من الكتل شرعية لـ blockchain الرئيسي" النهج. هل كان القصد منه منع الكاذبين من تعديل طوابعهم الزمنية؟ لكنها تضيف الآن حافز للجميع للكذب بشأن الطوابع الزمنية الخاصة بهم واختيار الوسيط فقط. يرجى تحديد. بمعنى "بالنسبة لهذه الكتلة، قم فقط بتضمين المعاملات التي تتضمن رسومًا أكبر من p%، ويفضل أن تكون الرسوم أكبر من 2p%" أو شيء من هذا القبيل؟ ماذا يقصدون بالكاذبة؟ إذا كانت المعاملة متوافقة مع التاريخ السابق لل blockchain، والمعاملة تتضمن رسومًا ترضي المعدنين، أليس هذا كافيًا؟ حسنا، لا، ليس بالضرورة. إذا لم يكن هناك حد أقصى لحجم الكتلة، فليس هناك ما يمكن الاحتفاظ به لمستخدم ضار من مجرد تحميل كتلة ضخمة من المعاملات لنفسه مرة واحدة فقط لإبطاء السرعة الشبكة. القاعدة الأساسية للحد الأقصى لحجم الكتلة تمنع الأشخاص من وضع كميات هائلة من النفايات البيانات الموجودة على blockchain مرة واحدة فقط لإبطاء الأمور. لكن مثل هذه القاعدة يجب أن تكون كذلك كن متكيفًا - خلال موسم عيد الميلاد، على سبيل المثال، يمكننا أن نتوقع ارتفاعًا حادًا في حركة المرور، و يصبح حجم الكتلة كبيرًا جدًا، وبعد ذلك مباشرة، ينخفض حجم الكتلة لاحقًا مرة أخرى. لذلك نحن بحاجة إما إلى أ) نوع من الغطاء التكيفي أو ب) غطاء كبير بما يكفي بحيث يكون 99% من قمم عيد الميلاد المعقولة لا تكسر الغطاء. وبطبيعة الحال، فإن هذا الثاني مستحيل تقدير - من يدري ما إذا كانت العملة ستنتشر؟ من الأفضل أن تجعلها قابلة للتكيف ولا تقلق عنه. ولكن بعد ذلك لدينا مشكلة نظرية التحكم: كيفية جعل هذا التكيف بدون قابلية للهجوم أو التذبذبات البرية والمجنونة؟ لاحظ أن الطريقة التكيفية لا تمنع المستخدمين الضارين من تجميع كميات صغيرة من البيانات غير المرغوب فيها بمرور الوقت على blockchain لتسبب انتفاخًا طويل المدى. هذه مسألة مختلفة تمامًا وواحدة تواجه العملات المشفرة مشكلات خطيرة معها.
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 25 وبإعادة قياس الوقت بحيث تكون وحدة زمنية واحدة هي N كتل، لا يزال من الممكن أن ينمو متوسط حجم الكتلة، نظريًا، بشكل متناسب إلى 2ˆt. من ناحية أخرى، سقف أكثر عمومية في الكتلة التالية سيكون M_nf(M_n) لبعض الوظائف f. ما هي خصائص f من شأنها نختار من أجل ضمان بعض "النمو المعقول" لحجم الكتلة؟ تطور ستكون أحجام الكتل (بعد إعادة قياس الوقت) كما يلي: 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( ... والهدف هنا هو اختيار f بحيث لا ينمو هذا التسلسل بشكل أسرع من، على سبيل المثال، خطيًا، أو ربما حتى كسجل (ر). بالطبع، إذا كانت f(M_n) = a لبعض الثابت a، فإن هذا التسلسل هو في الواقع M_n aM_n aˆ2M_n aˆ3M_n ... وبطبيعة الحال، الطريقة الوحيدة التي يمكن أن يقتصر بها هذا على النمو الخطي على الأكثر هي اختيار a=1. وهذا بالطبع غير ممكن. لا يسمح بالنمو على الإطلاق. من ناحية أخرى، إذا كانت f(M_n) دالة غير ثابتة، فإن الوضع أكبر من ذلك بكثير معقدة وقد تسمح بحل أنيق. سأفكر في هذا لبعض الوقت. يجب أن تكون هذه الرسوم كبيرة بما يكفي لخصم عقوبة الحجم الزائد من القسم التالي. لماذا يفترض أن المستخدم العام ذكر، هاه؟ هاه؟
إمكانية تضخيم blockchain وإنتاج حمل إضافي على العقد. لتثبيط المشاركون الخبيثون من إنشاء كتل كبيرة نقدم وظيفة عقوبة: NewReward = BaseReward \(\cdot\) حجم Blk مينيسوتا -1 2 يتم تطبيق هذه القاعدة فقط عندما يكون BlkSize أكبر من الحد الأدنى لحجم الكتلة الحرة الذي ينبغي كن قريبًا من الحد الأقصى (10 كيلو بايت، \(M_N \cdot 110\%\)). يُسمح لعمال المناجم بإنشاء كتل ذات "حجم عادي" وحتى تجاوزها بالربح عندما تتجاوز الرسوم الإجمالية العقوبة. لكن الرسوم من غير المرجح أن تنمو من الدرجة الثانية على عكس قيمة العقوبة لذلك سيكون هناك توازن. 6.3 البرامج النصية للمعاملات يحتوي CryptoNote على نظام فرعي بسيط جدًا للبرمجة النصية. يحدد المرسل التعبير Φ = f (x1, x2, . . . , xn)، حيث n هو عدد المفاتيح العامة للوجهة {Pi}n أنا = 1. خمسة فقط ثنائي يتم دعم العوامل: min وmax وsum وmul وcmp. عندما ينفق المتلقي هذه الدفعة، يقوم بإنتاج توقيعات 0 \(\geq k\) \(\geq n\) ويمررها إلى إدخال المعاملة. عملية التحقق ببساطة يتم تقييم Φ باستخدام xi = 1 للتحقق من وجود توقيع صالح للمفتاح العام Pi، وxi = 0. يقبل المدقق الدليل إذا كان > 0. على الرغم من بساطته، فإن هذا النهج يغطي كل الحالات المحتملة: • توقيع متعدد/عتبة. بالنسبة للتوقيع المتعدد "M-out-of-N" ذو النمط Bitcoin (أي. ينبغي أن يوفر المستقبل ما لا يقل عن 0 \(\geq M\) \(\geq N\) من التوقيعات الصالحة) Φ = x1+x2+. . .+xN \(\geq M\) (من أجل الوضوح نستخدم التدوين الجبري المشترك). توقيع العتبة المرجحة (قد تكون بعض المفاتيح أكثر أهمية من غيرها) ويمكن التعبير عنها بـ Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + WN \(\cdot\) xN \(\geq wM\). والسيناريو الذي يتوافق فيه المفتاح الرئيسي مع Φ = الحد الأقصى (\(M \cdot x\)، x1 + x2 + . . . + xN) \(\geq M\). من السهل إظهار أن أي حالة معقدة يمكن أن تكون كذلك يتم التعبير عنها باستخدام هذه العوامل، أي أنها تشكل الأساس. • الحماية بكلمة مرور. إن امتلاك كلمة مرور سرية يعادل معرفة مفتاح خاص، مشتق بشكل حتمي من كلمة المرور: k = KDF(s). وبالتالي جهاز استقبال يمكنه إثبات أنه يعرف كلمة المرور من خلال تقديم توقيع آخر تحت المفتاح k. يقوم المرسل ببساطة بإضافة المفتاح العام المقابل إلى مخرجاته الخاصة. لاحظ أن هذا تعد الطريقة أكثر أمانًا من "لغز المعاملات" المستخدم في Bitcoin [13]، حيث يتم تمرير كلمة المرور بشكل صريح في المدخلات. • الحالات المتدهورة. Φ = 1 يعني أنه يمكن لأي شخص إنفاق المال؛ Φ = 0 يمثل الإخراج على أنه غير قابل للإنفاق إلى الأبد. في حالة ما إذا كان البرنامج النصي الناتج مع المفاتيح العامة كبيرًا جدًا بالنسبة للمرسل، فإنه يمكن استخدام نوع إخراج خاص، مما يشير إلى أن المستلم سيضع هذه البيانات في مدخلاته بينما يقدم المرسل hash فقط منه. يشبه هذا الأسلوب أسلوب Bitcoin في "الدفع إلى hash" الميزة، ولكن بدلاً من إضافة أوامر نصية جديدة، فإننا نتعامل مع هذه الحالة في بنية البيانات المستوى. 7 الاستنتاج لقد قمنا بالتحقق من العيوب الرئيسية في Bitcoin واقترحنا بعض الحلول الممكنة. هذه الميزات المفيدة وتطويرنا المستمر يجعل نظام النقد الإلكتروني الجديد CryptoNote منافس جدي لـ Bitcoin، متفوقًا على كل شوكاته. 14 إمكانية تضخيم blockchain وإنتاج حمل إضافي على العقد. لتثبيط المشاركون الخبيثون من إنشاء كتل كبيرة نقدم وظيفة عقوبة: NewReward = BaseReward \(\cdot\) حجم Blk مينيسوتا -1 2 يتم تطبيق هذه القاعدة فقط عندما يكون BlkSize أكبر من الحد الأدنى لحجم الكتلة الحرة الذي ينبغي كن قريبًا من الحد الأقصى (10 كيلو بايت، \(M_N \cdot 110\%\)). يُسمح لعمال المناجم بإنشاء كتل ذات "حجم عادي" وحتى تجاوزها بالربح عندما تتجاوز الرسوم الإجمالية العقوبة. لكن الرسوم من غير المرجح أن تنمو من الدرجة الثانية على عكس قيمة العقوبة لذلك سيكون هناك توازن. 6.3 البرامج النصية للمعاملات يحتوي CryptoNote على نظام فرعي بسيط جدًا للبرمجة النصية. يحدد المرسل التعبير Φ = f (x1, x2, . . . , xn)، حيث n هو عدد المفاتيح العامة للوجهة {Pi}n أنا = 1. خمسة فقط ثنائي يتم دعم العوامل: min وmax وsum وmul وcmp. عندما ينفق المتلقي هذه الدفعة، يقوم بإنتاج توقيعات 0 \(\geq k\) \(\geq n\) ويمررها إلى إدخال المعاملة. عملية التحقق ببساطة يتم تقييم Φ باستخدام xi = 1 للتحقق من وجود توقيع صالح للمفتاح العام Pi، وxi = 0. يقبل المدقق الدليل إذا كان > 0. على الرغم من بساطته، فإن هذا النهج يغطي كل الحالات المحتملة: • توقيع متعدد/عتبة. بالنسبة للتوقيع المتعدد "M-out-of-N" ذو النمط Bitcoin (أي. ينبغي أن يوفر المستقبل ما لا يقل عن 0 \(\geq M\) \(\geq N\) من التوقيعات الصالحة) Φ = x1+x2+. . .+xN \(\geq M\) (من أجل الوضوح نستخدم التدوين الجبري المشترك). توقيع العتبة المرجحة (قد تكون بعض المفاتيح أكثر أهمية من غيرها) ويمكن التعبير عنها بـ Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + WN \(\cdot\) xN \(\geq wM\). والسيناريوio حيث يتوافق المفتاح الرئيسي مع Φ = الحد الأقصى (\(M \cdot x\)، x1 + x2 + . . . + xN) \(\geq M\). من السهل إظهار أن أي حالة معقدة يمكن أن تكون كذلك يتم التعبير عنها باستخدام هذه العوامل، أي أنها تشكل الأساس. • الحماية بكلمة مرور. إن امتلاك كلمة مرور سرية يعادل معرفة مفتاح خاص، مشتق بشكل حتمي من كلمة المرور: k = KDF(s). وبالتالي جهاز استقبال يمكنه إثبات أنه يعرف كلمة المرور من خلال تقديم توقيع آخر تحت المفتاح k. يقوم المرسل ببساطة بإضافة المفتاح العام المقابل إلى مخرجاته الخاصة. لاحظ أن هذا تعد هذه الطريقة أكثر أمانًا من "لغز المعاملات" المستخدم في Bitcoin [13]، حيث يتم تمرير كلمة المرور بشكل صريح في المدخلات. • الحالات المتدهورة. Φ = 1 يعني أنه يمكن لأي شخص إنفاق المال؛ Φ = 0 يمثل الإخراج على أنه غير قابل للإنفاق إلى الأبد. في حالة ما إذا كان البرنامج النصي الناتج مع المفاتيح العامة كبيرًا جدًا بالنسبة للمرسل، فإنه يمكن استخدام نوع إخراج خاص، مما يشير إلى أن المستلم سيضع هذه البيانات في مدخلاته بينما يقدم المرسل hash فقط منه. يشبه هذا الأسلوب أسلوب Bitcoin "الدفع إلى hash" الميزة، ولكن بدلاً من إضافة أوامر نصية جديدة، فإننا نتعامل مع هذه الحالة في بنية البيانات المستوى. 7 الاستنتاج لقد قمنا بالتحقق من العيوب الرئيسية في Bitcoin واقترحنا بعض الحلول الممكنة. هذه الميزات المفيدة وتطويرنا المستمر يجعل نظام النقد الإلكتروني الجديد CryptoNote منافس جدي لـ Bitcoin، متفوقًا على كل شوكاتها. 14 26 قد يكون هذا غير ضروري إذا تمكنا من اكتشاف طريقة لربط حجم الكتلة بمرور الوقت... وهذا أيضاً لا يمكن أن يكون صحيحاً. لقد قاموا للتو بتعيين "NewReward" على القطع المكافئ المتجه للأعلى حيث حجم الكتلة هو المتغير المستقل. لذا فإن المكافأة الجديدة تنفجر إلى ما لا نهاية. إذا، من جهة أخرى اليد، المكافأة الجديدة هي Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)) ثم المكافأة الجديدة سيكون قطعًا مكافئًا متجهًا للأسفل مع قمة عند حجم الكتلة = Mn، ومع تقاطعات عند حجم الكتلة = 0 وحجم الكتلة = 2Mn. ويبدو أن هذا هو ما يحاولون وصفه. ومع ذلك، هذا لا
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:
تحليل

5
ولا يعني ذلك أنه من المهم للغاية أن يعيش مليار شخص في العالم على أقل من دولار واحد
اليوم وليس لديهم أمل في المشاركة في أي نوع من شبكات التعدين...ولكنها اقتصادية
العالم الذي يقوده نظام عملة P2P مع وحدة معالجة مركزية واحدة وصوت واحد سيكون، على الأرجح، أكثر
عادلة من نظام مدفوع بالاحتياطي المصرفي الجزئي.
لكن بروتوكول Cryptonote لا يزال يتطلب 51% من المستخدمين الصادقين... انظر، على سبيل المثال، Cryptonote
المنتديات حيث يقول أحد المطورين، بليسكوف، إن هجوم استبدال البيانات التقليدي على blockchain بنسبة 51% لا يزال من الممكن أن يعمل. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
لاحظ أنك لا تحتاج حقًا إلى 51% من المستخدمين الصادقين. أنت فقط بحاجة حقًا إلى "عدم وجود أي شخص غير أمين
فصيل يتمتع بأكثر من 51% من قوة الشبكة."
دعونا نسمي هذه المشكلة المزعومة للبيتكوين "الصلابة التكيفية". حل Cryptonote للتكيف
الصلابة هي المرونة التكيفية في قيم معلمات البروتوكول. إذا كنت بحاجة إلى أحجام كتلة أكبر،
لا توجد مشكلة، ستكون الشبكة قد تم ضبطها بلطف طوال الوقت.
وهذا يعني،
يمكن تكرار الطريقة التي يقوم بها Bitcoin بضبط الصعوبة بمرور الوقت عبر جميع بروتوكولاتنا
المعلمات بحيث لا يلزم الحصول على إجماع الشبكة لتحديث البروتوكول.
ظاهريًا، تبدو هذه فكرة جيدة، ولكن من دون تفكير متأنٍ، فهي بمثابة تعديل ذاتي
يمكن أن يصبح النظام غير متوقع تمامًا وفوضويًا. سننظر في هذا لاحقًا بشكل أكبر
تنشأ الفرص. الأنظمة "الجيدة" تقع في مكان ما بين الصارمة والقابلة للتكيف
مرنة، وربما حتى الصلابة نفسها قابلة للتكيف.
إذا كان لدينا حقًا "صوت واحد لوحدة المعالجة المركزية"، فيجب التعاون وتطوير المجمعات للوصول إلى 51%
سيكون أكثر صعوبة. نتوقع أن تقوم كل وحدة معالجة مركزية في العالم بالتعدين من الهواتف
إلى وحدة المعالجة المركزية الموجودة على متن سيارة Tesla أثناء الشحن.
http://en.wikipedia.org/wiki/Pareto_principle
أزعم أن توازن باريتو أمر لا مفر منه إلى حد ما. إما أن 20% من النظام سوف
تمتلك 80% من وحدات المعالجة المركزية (CPUs)، أو 20% من النظام سيمتلك 80% من ASICs. أفترض ذلك لأن التوزيع الأساسي للثروة في المجتمع يُظهر بالفعل توزيع باريتو،
ومع انضمام عمال المناجم الجدد، يتم استخلاصهم من هذا التوزيع الأساسي.
ومع ذلك، فأنا أزعم أن البروتوكولات التي تحتوي على وحدة معالجة مركزية واحدة وصوت واحد ستشهد عائدًا على الاستثمار على الأجهزة.
كتلة
ستكون المكافأة لكل عقدة أكثر تناسباً مع عدد العقد في الشبكة لأن
سيكون توزيع الأداء عبر العقد أكثر إحكامًا. Bitcoin من جهة أخرى
اليد، ترى مكافأة الكتلة (لكل عقدة) أكثر تناسبًا مع القدرة الحسابية لذلك
عقدة. وهذا يعني أن "الكبار" فقط هم الذين ما زالوا في لعبة التعدين. ومن ناحية أخرى،
على الرغم من أن مبدأ باريتو سيظل قائمًا، في عالم وحدة المعالجة المركزية الواحدة والصوت الواحد، الجميع
يشارك في أمن الشبكات ويكسب القليل من دخل التعدين.
في عالم ASIC، ليس من المعقول تجهيز كل جهاز XBox وهاتف محمول خاص بي.
في عالم صوت واحد واحد، يعد هذا أمرًا معقولًا جدًا من حيث مكافأة التعدين. ونتيجة لذلك،
الحصول على 51% من الأصوات يكون أكثر صعوبة عندما يكون هناك المزيد والمزيد من الأصوات، مما يؤدي إلى نتيجة جميلة.
فائدة لأمن الشبكات..الأجهزة الموصوفة سابقًا. لنفترض أن معدل hashالعالمي ينخفض بشكل كبير، حتى بالنسبة
للحظة، يمكنه الآن استخدام قوة التعدين الخاصة به لتقسيم السلسلة والإنفاق المزدوج. كما سنرى
لاحقًا في هذه المقالة، ليس من غير المحتمل حدوث الحدث الموصوف مسبقًا.
2.3
انبعاث غير منتظم
Bitcoin له معدل انبعاث محدد مسبقًا: كل كتلة تم حلها تنتج كمية ثابتة من العملات المعدنية.
كل أربع سنوات تقريبًا يتم تخفيض هذه المكافأة إلى النصف. كان الهدف الأصلي هو إنشاء ملف
انبعاث سلس محدود مع اضمحلال أسي، ولكن في الواقع لدينا انبعاث خطي متعدد التعريف
الوظيفة التي قد تتسبب نقاط توقفها في حدوث مشكلات للبنية الأساسية Bitcoin.
عند حدوث نقطة التوقف، يبدأ المعدنون في تلقي نصف قيمة النقطة السابقة فقط
مكافأة. قد يكون الفرق المطلق بين 12.5 و6.25 بيتكوين (المتوقع لعام 2020)
يبدو مقبولا. ومع ذلك، عند فحص الانخفاض بمقدار 50 إلى 25 بيتكوين الذي حدث في نوفمبر
28 سبتمبر 2012، شعرت بأنها غير مناسبة لعدد كبير من أعضاء مجتمع التعدين. الشكل
يُظهر الشكل 1 انخفاضًا كبيرًا في معدل hash للشبكة في نهاية شهر نوفمبر، بالضبط عندما
حدث النصف. كان من الممكن أن يكون هذا الحدث هو اللحظة المثالية للفرد الخبيث
الموضحة في قسم الوظيفة proof-of-work لتنفيذ هجوم الإنفاق المزدوج [36].
الشكل 1. Bitcoin hashمخطط الأسعار
(المصدر: http://bitcoin.sipa.be)
2.4
الثوابت الثابتة
يحتوي Bitcoin على العديد من الحدود المشفرة، حيث يكون بعضها عناصر طبيعية للتصميم الأصلي (على سبيل المثال.
تردد الكتلة، الحد الأقصى لمبلغ المعروض النقدي، عدد التأكيدات) في حين أن غيرها
يبدو أنها قيود مصطنعة. إنها ليست الحدود بقدر ما هي عدم القدرة على التغيير بسرعة
3
الأجهزة الموصوفة سابقًا. لنفترض أن معدل hashالعالمي ينخفض بشكل ملحوظ، حتى بالنسبة
للحظة، يمكنه الآن استخدام قوة التعدين الخاصة به لتقسيم السلسلة والإنفاق المزدوج. كما سنرى
لاحقًا في هذه المقالة، ليس من غير المحتمل حدوث الحدث الموصوف مسبقًا.
2.3
انبعاث غير منتظم
Bitcoin له معدل انبعاث محدد مسبقًا: كل كتلة تم حلها تنتج كمية ثابتة من العملات المعدنية.
كل أربع سنوات تقريبًا يتم تخفيض هذه المكافأة إلى النصف. كان الهدف الأصلي هو إنشاء ملف
انبعاث سلس محدود مع اضمحلال أسي، ولكن في الواقع لدينا انبعاث خطي متعدد التعريف
الوظيفة التي قد تتسبب نقاط توقفها في حدوث مشكلات للبنية الأساسية Bitcoin.
عند حدوث نقطة التوقف، يبدأ المعدنون في تلقي نصف قيمة النقطة السابقة فقط
مكافأة. قد يكون الفرق المطلق بين 12.5 و6.25 بيتكوين (المتوقع لعام 2020)
يبدو مقبولا. ومع ذلك، عند فحص الانخفاض بمقدار 50 إلى 25 بيتكوين الذي حدث في نوفمبر
28 سبتمبر 2012، شعرت بأنها غير مناسبة لعدد كبير من أعضاء مجتمع التعدين. الشكل
يُظهر الشكل 1 انخفاضًا كبيرًا في معدل hash للشبكة في نهاية شهر نوفمبر، بالضبط عندما
حدث النصف. كان من الممكن أن يكون هذا الحدث هو اللحظة المثالية للفرد الخبيث
الموصوفة في قسم الوظيفة proof-of-work لتنفيذ هجوم الإنفاق المزدوج [36].
الشكل 1. Bitcoin hashمخطط الأسعار
(المصدر: http://bitcoin.sipa.be)
2.4
الثوابت الثابتة
يحتوي Bitcoin على العديد من الحدود المشفرة، حيث يكون بعضها عناصر طبيعية للتصميم الأصلي (على سبيل المثال.
تردد الكتلة، الحد الأقصى لمبلغ المعروض النقدي، عدد التأكيدات) في حين أن غيرها
يبدو أنها قيود مصطنعة. إنها ليست الحدود بقدر ما هي عدم القدرة على التغيير بسرعة
3
6
دعونا نسمي هذا كما هو، هجوم الزومبي.
دعونا نناقش كيف يمكن أن يكون الانبعاث المستمر
تتعلق بصوت واحد لوحدة المعالجة المركزية (CPU) في سيناريو هجوم الزومبي.
في عالم وحدة المعالجة المركزية الواحدة والصوت الواحد، سيتم تعدين كل هاتف محمول وسيارة، عندما يكون خاملاً. سيكون جمع أكوام من الأجهزة الرخيصة لإنشاء مزرعة تعدين أمرًا سهلاً للغاية، لأنه فقط
حول كل شيء يحتوي على وحدة المعالجة المركزية فيه. من ناحية أخرى، في تلك المرحلة، عدد وحدات المعالجة المركزية
أعتقد أن المطلوب لشن هجوم بنسبة 51٪ سيكون أمرًا مذهلاً للغاية.
علاوة على ذلك،
على وجه التحديد لأنه سيكون من السهل جمع الأجهزة الرخيصة، يمكننا أن نتوقع بشكل معقول أ
يبدأ الكثير من الأشخاص في تخزين أي شيء باستخدام وحدة المعالجة المركزية. سباق التسلح في عالم وحدة المعالجة المركزية والصوت الواحد
هو بالضرورة أكثر مساواة مما هو عليه في عالم ASIC.
وبالتالي انقطاع في الشبكة
يجب أن يكون الأمن الناتج عن معدلات الانبعاثات أقل مشكلة في عالم وحدة المعالجة المركزية الواحدة والصوت الواحد.
ومع ذلك، تبقى حقيقتان: 1) يمكن أن يؤدي التوقف في معدل الانبعاثات إلى تأثير متعثر في
الاقتصاد وأمن الشبكات على حد سواء، وهو أمر سيء، و2) على الرغم من هجوم 51٪
لا يزال من الممكن أن يتم إجراؤها بواسطة شخص يجمع أجهزة رخيصة في وحدة معالجة مركزية واحدة- عالم التصويت،
يبدو أنه ينبغي أن يكون أصعب.
ومن المفترض أن الضمانة ضد ذلك هي أن جميع الممثلين غير الشرفاء سيحاولون ذلك
في نفس الوقت، ونعود إلى المفهوم الأمني السابق لـ Bitcoin: "نحن لا نطلب أي غش أو خداع
فصيل للسيطرة على أكثر من 51% من الشبكة."
يدعي المؤلف هنا أن إحدى مشكلات البيتكوين هي عدم استمرار إصدار العملة
قد يؤدي هذا المعدل إلى انخفاض مفاجئ في مشاركة الشبكة، وبالتالي أمان الشبكة. وهكذا،
يفضل أن يكون معدل انبعاث العملة مستمرًا وقابلاً للتمييز وسلسًا.
المؤلف ليس مخطئا بالضرورة. أي نوع من الانخفاض المفاجئ في مشاركة الشبكة يمكن أن يحدث
يؤدي إلى مثل هذه المشكلة، وإذا تمكنا من إزالة مصدر واحد منها، فيجب علينا ذلك. وقد قلت ذلك، انها
من المحتمل أن فترات طويلة من انبعاث العملة "الثابتة نسبيًا" تتخللها تغيرات مفاجئة
هي الطريقة المثالية للذهاب من وجهة نظر اقتصادية. أنا لست خبيرا اقتصاديا. لذا، ربما نحن
يجب أن نقرر ما إذا كنا سنستبدل أمن الشبكات بشيء اقتصادي، ماذا يوجد هنا؟
http://arxiv.org/abs/1402.2009لهم إذا لزم الأمر أن يسبب العيوب الرئيسية. لسوء الحظ، من الصعب التنبؤ بموعد حدوث ذلك
فقد تكون هناك حاجة إلى تغيير الثوابت، واستبدالها قد يؤدي إلى عواقب وخيمة.
من الأمثلة الجيدة على تغيير الحد المضمن الذي يؤدي إلى عواقب وخيمة هو الحظر
تم ضبط الحد الأقصى للحجم على 250 كيلو بايت1. وكان هذا الحد كافيا لإجراء حوالي 10000 معاملة قياسية. في
في أوائل عام 2013، كان هذا الحد قد تم الوصول إليه تقريبًا وتم التوصل إلى اتفاق لزيادة
الحد. تم تنفيذ التغيير في إصدار المحفظة 0.8 وانتهى بتقسيم سلسلة مكونة من 24 كتلة
وهجوم الإنفاق المزدوج الناجح [9]. في حين أن الخلل لم يكن في بروتوكول Bitcoin، ولكن
بل كان من الممكن اكتشافه بسهولة في محرك قاعدة البيانات عن طريق اختبار ضغط بسيط إذا كان هناك ذلك
لا يوجد حد لحجم الكتلة تم تقديمه بشكل مصطنع.
تعمل الثوابت أيضًا كشكل من أشكال نقطة المركزية.
على الرغم من طبيعة الند للند
Bitcoin، تستخدم الغالبية العظمى من العقد العميل المرجعي الرسمي [10] الذي تم تطويره بواسطة
مجموعة صغيرة من الناس. تتخذ هذه المجموعة القرار بتنفيذ التغييرات على البروتوكول
ومعظم الناس يقبلون هذه التغييرات بغض النظر عن "صحتها". تسببت بعض القرارات
نقاشات ساخنة وحتى دعوات للمقاطعة [11] مما يدل على أن المجتمع و
قد يختلف المطورون حول بعض النقاط المهمة. ولذلك يبدو من المنطقي أن يكون هناك بروتوكول
مع المتغيرات القابلة للتكوين والضبط الذاتي بواسطة المستخدم كطريقة ممكنة لتجنب هذه المشكلات.
2.5
مخطوطات ضخمة
يعد نظام البرمجة النصية في Bitcoin ميزة ثقيلة ومعقدة. من المحتمل أن يسمح للمرء بالإبداع
المعاملات المعقدة [12]، ولكن تم تعطيل بعض ميزاته بسبب مخاوف أمنية و
بعضها لم يتم استخدامه مطلقًا [13]. البرنامج النصي (بما في ذلك أجزاء المرسلين والمستقبلين)
تبدو المعاملة الأكثر شيوعًا في Bitcoin كما يلي: