КриптоНота v2.0

بقلم Nicolas van Saberhagen · 2013

الورقة المقدَّمة هنا هي الورقة البيضاء CryptoNote v2.0 بقلم Nicolas van Saberhagen (2013)، التي تصف الأسس التشفيرية التي يقوم عليها Monero. وهي ليست ورقةً بيضاءَ خاصةً بـ Monero — إذ انطلق Monero عام 2014 بوصفه تفرُّعاً من التطبيق المرجعي لـ CryptoNote (Bytecoin) وتطوّر منذ ذلك الحين بصورة ملحوظة عمّا نصّ عليه البروتوكول الأصلي.

مقدمة

لقد كان "Bitcoin" [1] بمثابة تطبيق ناجح لمفهوم النقد الإلكتروني p2p. كلاهما لقد أصبح المحترفون وعامة الناس يقدرون المزيج المناسب من المعاملات العامة و proof-of-work كنموذج ثقة. اليوم، قاعدة مستخدمي النقد الإلكتروني ينمو بوتيرة ثابتة. ينجذب العملاء إلى الرسوم المنخفضة وعدم الكشف عن هويتهم المقدمة بواسطة النقود الإلكترونية ويقدر التجار انبعاثاتها المتوقعة واللامركزية. Bitcoin لديه لقد أثبت بشكل فعال أن النقد الإلكتروني يمكن أن يكون بسيطًا مثل النقود الورقية ومريحًا مثل النقود الورقية بطاقات الائتمان. لسوء الحظ، Bitcoin يعاني من العديد من أوجه القصور. على سبيل المثال، يتم توزيع النظام الطبيعة غير مرنة، مما يمنع تنفيذ الميزات الجديدة حتى يقوم جميع مستخدمي الشبكة تقريبًا بتحديث عملائهم. بعض العيوب الخطيرة التي لا يمكن إصلاحها بسرعة تعيق Bitcoin انتشار واسع النطاق. في مثل هذه النماذج غير المرنة، يكون من الأكثر كفاءة طرح مشروع جديد بدلاً من إصلاح المشروع الأصلي بشكل دائم. في هذا البحث نقوم بدراسة واقتراح الحلول لأوجه القصور الرئيسية في Bitcoin. نحن نعتقد أن النظام الذي يأخذ في الاعتبار الحلول التي نقترحها سيؤدي إلى منافسة صحية بين أنظمة النقد الإلكترونية المختلفة. نقترح أيضًا عملتنا النقدية الإلكترونية الخاصة، "CryptoNote"، اسم يؤكد على التقدم القادم في مجال النقد الإلكتروني.

Введение

«Bitcoin» [1] представляет собой успешную реализацию концепции электронных денег p2p. оба профессионалы и широкая общественность оценили удобное сочетание публичные транзакции и proof-of-work как модель доверия. Сегодня пользовательская база электронных денег растет устойчивыми темпами; клиентов привлекают низкие комиссии и обеспечиваемая анонимность электронными деньгами, и торговцы ценят ее прогнозируемую и децентрализованную эмиссию. Bitcoin имеет эффективно доказал, что электронные деньги могут быть такими же простыми, как бумажные деньги, и такими же удобными, как кредитные карты. К сожалению, Bitcoin имеет несколько недостатков. Например, распределенная система природа негибка и не позволяет внедрять новые функции до тех пор, пока почти все пользователи сети не обновят свои клиенты. Некоторые критические недостатки, которые невозможно быстро исправить, отпугивают Bitcoin. широкое распространение. В таких негибких моделях эффективнее развернуть новый проект. вместо того, чтобы постоянно исправлять первоначальный проект. В этой статье мы изучаем и предлагаем решения основных недостатков Bitcoin. Мы верим что система, учитывающая предлагаемые нами решения, приведет к здоровой конкуренции среди различных электронных денежных систем. Мы также предлагаем собственные электронные деньги «CryptoNote», имя, подчеркивающее следующий прорыв в области электронных денег.

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

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]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [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 создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов доспаривается [25], есть подозрение, что много скрытой личной информации может быть извлечено из общедоступная база данных. Неспособность Bitcoin удовлетворять двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [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 создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и 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= » — Морис П. Четверг, 3 апреля 2014 г., 19:56 Функция, выполняемая в ЦП и не подходящая для графического процессора, FPGA или ASIC. расчет. «Загадка», используемая в proof-of-work, называется функцией ценообразования, функцией затрат или функция головоломки.

однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов оспариваемый [25], есть подозрение, что из него можно извлечь много скрытой личной информации. общедоступная база данных. Неспособность Bitcoin удовлетворить двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [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 создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 однозначно прослеживается уникальное происхождение и конечный получатель. Даже если два участника поменяются средства косвенным путем, правильно разработанный метод поиска пути выявит происхождение и конечный получатель. Также есть подозрение, что Bitcoin не удовлетворяет второму свойству. Некоторые исследователи заявил ([33, 35, 29, 31]), что тщательный анализ blockchain может выявить связь между пользователи сети Bitcoin и их транзакции. Хотя ряд методов доспаривается [25], есть подозрение, что много скрытой личной информации может быть извлечено из общедоступная база данных. Неспособность Bitcoin удовлетворять двум свойствам, изложенным выше, приводит нас к выводу, что это не анонимная, а псевдоанонимная электронная кассовая система. Пользователи быстро развивались решения, позволяющие обойти этот недостаток. Двумя прямыми решениями были «услуги по отмыванию денег» [2] и развитие распределенных методов [3, 4]. Оба решения основаны на идее смешивания несколько публичных транзакций и отправка их через какой-то промежуточный адрес; что в свою очередь имеет тот недостаток, что требует доверенной третьей стороны. Недавно более креативную схему предложили И. Майерс с соавт. [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 создает благоприятные условия для большого разрыва между количеством голосов участников, так как это нарушает принцип «один процессор — один голос», поскольку владельцы графических процессоров и ASIC обладают гораздо большее количество голосов по сравнению с владельцами процессоров. Это классический пример Принцип Парето, согласно которому 20% участников системы контролируют более 80% голосов. Можно утверждать, что такое неравенство не имеет отношения к безопасности сети, поскольку оно не небольшое количество участников, контролирующих большинство голосов, но честность этих участников, что имеет значение. Однако такой аргумент несколько ошибочен, поскольку он скорее является вероятность появления дешевого специализированного оборудования, а не честность участников, которая представляет угрозу. Чтобы продемонстрировать это, возьмем следующий пример. Предположим, злонамеренный человек получает значительную майнинговую мощь, создавая свою собственную майнинг-ферму за счет дешевых 2 Комментарии на странице 2

تقنية CryptoNote

الآن بعد أن قمنا بتغطية القيود المفروضة على تقنية Bitcoin، سنركز عليها تقديم ميزات CryptoNote.

Технология CryptoNote

Теперь, когда мы рассмотрели ограничения технологии PH_0000, мы сосредоточимся на представление возможностей CryptoNote.

المعاملات التي لا يمكن تعقبها

في هذا القسم، نقترح مخططًا للمعاملات المجهولة تمامًا والتي تلبي كلا من إمكانية التتبع وشروط عدم الارتباط. من السمات المهمة لحلنا هو استقلاليته: المرسل ليس مطلوبًا منه التعاون مع مستخدمين آخرين أو طرف ثالث موثوق به لإجراء معاملاته؛ ومن ثم يقوم كل مشارك بإنتاج حركة تغطية بشكل مستقل. 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 كما يلي: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. يبلغ طول البرنامج النصي 164 بايت بينما الغرض الوحيد منه هو التحقق مما إذا كان المتلقي يمتلك ملف المفتاح السري مطلوب للتحقق من توقيعه. 3 تقنية CryptoNote الآن بعد أن قمنا بتغطية القيود المفروضة على تقنية Bitcoin، سنركز عليها تقديم ميزات CryptoNote. 4 المعاملات التي لا يمكن تعقبها في هذا القسم، نقترح مخططًا للمعاملات المجهولة تمامًا والتي تلبي كلا من إمكانية التتبع وشروط عدم الارتباط. من السمات المهمة لحلنا هو استقلاليته: المرسل ليس مطلوبًا منه التعاون مع مستخدمين آخرين أو طرف ثالث موثوق به لإجراء معاملاته؛ ومن ثم يقوم كل مشارك بإنتاج حركة تغطية بشكل مستقل. 4.1 مراجعة الأدب يعتمد مخططنا على التشفير البدائي المسمى بتوقيع المجموعة. تم تقديمه لأول مرة بواسطة D. Chaum وE. van Heyst [19]، فهو يسمح للمستخدم بالتوقيع على رسالته نيابة عن المجموعة. بعد التوقيع على الرسالة، يقدم المستخدم (لأغراض التحقق) وليس الجمهور الخاص به 1هذا ما يسمى "الحد الناعم" - تقييد العميل المرجعي لإنشاء كتل جديدة. الحد الأقصى الصعب كان حجم الكتلة المحتمل 1 ميجابايت 4 7 إذا نظرنا إلى الماضي، يبدو أنه كان من الخطأ الكبير جعل حجم الكتلة حدًا ثابتًا في الكود. يمكن لـ Visa وMastercard معالجة آلاف، إن لم يكن مئات الآلاف، من المعاملات في الثانية الواحدة. ومع ذلك، فإن المعاملات تأتي في عملية عشوائية، وأحيانا في رشقات نارية ضخمة. في بعض الأحيان يكون هادئًا لساعات. فكر في حجم تبادل البيتكوين. تبدو فكرة عظيمة لتصميم نظام يزيد حجم الكتلة ديناميكيًا عند الضرورة لاستيعاب حركة المعاملات المتزايدة، وتقليلها ديناميكيًا عند الضرورة زيادة كفاءة عرض النطاق الترددي. الآن، قم بتطبيق هذه الفكرة على جميع معلمات النظام. وطالما أننا حريصون على الحفاظ على النظام من صيد الأسماك خارج نطاق السيطرة، وهذا شسوف تعمل بشكل رائع. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki كما ذكرنا سابقًا، إذا تم ضبط المتغيرات ذاتيًا، فيجب فرض بعض الضوابط من أجل ذلك منع النظام من الخروج عن نطاق السيطرة. سوف نصل إلى ذلك. إذا كانت هذه مقالة في ويكيبيديا، فسيتم تصنيفها على أنها "STUB". على الرغم من أننا بالتأكيد في القسم الذي يعرض "مشاكل Bitcoin"، أود الحصول على بعض التفاصيل هنا. لماذا 164 بايت غير مقبولة لمهمة "التحقق من وجود مفتاح سري" بسيطة؟ ما مدى صغر حجمها الذي يمكنهم الحصول عليه لغة برمجة معقولة؟ أنا لست عالم كمبيوتر، رغم ذلك. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 تتطلب توقيعات المجموعة، كما هو موضح، مديرًا للمجموعة. مدير المجموعة قادر إلغاء عدم الكشف عن هويته لأي موقع. وبالتالي، هناك مركزية مدمجة في المجموعة مخطط التوقيع.

المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [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، مع الوجهة العامة للمعاملة الجديدة المفتاح (المفاتيح) هو كيفية إرسال معاملة جديدة

  1. يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: 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
  2. يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: 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 التي تعمل كعملة، كدليل ضد الإنفاق المزدوج و ماذا.

  3. يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: 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

  4. يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: 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. ويبدو أن هذا هو ما يحاولون وصفه. ومع ذلك، هذا لا

Неотслеживаемые транзакции

В этом разделе мы предлагаем схему полностью анонимных транзакций, обеспечивающую как неотслеживаемость, так и невозможность отслеживания. и условия несвязности. Важной особенностью нашего решения является его автономность: отправитель не обязан сотрудничать с другими пользователями или доверенной третьей стороной для совершения своих транзакций; следовательно, каждый участник производит прикрывающий трафик независимо. 4.1 Обзор литературы Наша схема основана на криптографическом примитиве, называемом групповой подписью. Впервые представлено Д. Чаум и Э. ван Хейст [19], позволяет пользователю подписать свое сообщение от имени группы. После подписания сообщения пользователь предоставляет (в целях проверки) не свой единственный публичный 1Это так называемый «мягкий лимит» — ограничение эталонного клиента на создание новых блоков. Жесткий максимум возможный размер блока составлял 1 МБ 4 их при необходимости, что вызывает основные недостатки. К сожалению, трудно предсказать, когда константы, возможно, придется изменить, а их замена может привести к ужасным последствиям. Хорошим примером жестко запрограммированного изменения лимита, приводящего к катастрофическим последствиям, является блок ограничение размера установлено на 250 КБ1. Этого лимита было достаточно для проведения около 10 000 стандартных транзакций. В В начале 2013 года этот предел был почти достигнут, и было достигнуто соглашение об увеличении предел. Изменение было реализовано в версии кошелька 0.8 и закончилось разделением цепочки на 24 блока. и успешная атака двойной траты [9]. Хотя ошибка была не в протоколе Bitcoin, а скорее, в ядре базы данных его можно было бы легко обнаружить с помощью простого стресс-теста, если бы было отсутствие искусственно введенного ограничения размера блока. Константы также действуют как форма точки централизации. Несмотря на одноранговый характер Bitcoin, подавляющее большинство узлов используют официальный эталонный клиент [10], разработанный небольшая группа людей. Эта группа принимает решение о внесении изменений в протокол. и большинство людей принимают эти изменения независимо от их «правильности». Некоторые решения вызвали бурные дискуссии и даже призывы к бойкоту [11], что свидетельствует о том, что сообщество и разработчики могут расходиться во мнениях по некоторым важным моментам. Поэтому кажется логичным иметь протокол с настраиваемыми пользователем и самонастраивающимися переменными как возможный способ избежать этих проблем. 2,5 Громоздкие скрипты Система сценариев в Bitcoin — сложная и тяжелая функция. Потенциально это позволяет создавать сложные транзакции [12], но некоторые из его функций отключены из соображений безопасности и некоторые даже никогда не использовались [13]. Скрипт (включая часть отправителя и получателя) для самой популярной транзакции в Bitcoin выглядит так: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Длина скрипта составляет 164 байта, и его единственная цель — проверить, обладает ли получатель секретный ключ, необходимый для проверки его подписи. 3 Технология CryptoNote Теперь, когда мы рассмотрели ограничения технологии Bitcoin, мы сосредоточимся на представление возможностей CryptoNote. 4 Неотслеживаемые транзакции В этом разделе мы предлагаем схему полностью анонимных транзакций, обеспечивающую как неотслеживаемость, так и невозможность отслеживания. и условия несвязности. Важной особенностью нашего решения является его автономность: отправитель не обязан сотрудничать с другими пользователями или доверенной третьей стороной для совершения своих транзакций; следовательно, каждый участник производит прикрывающий трафик независимо. 4.1 Обзор литературы Наша схема основана на криптографическом примитиве, называемом групповой подписью. Впервые представлено Д. Чаум и Э. ван Хейст [19], позволяет пользователю подписать свое сообщение от имени группы. После подписания сообщения пользователь предоставляет (в целях проверки) не свой единственный публичный 1Это так называемый «мягкий лимит» — ограничение эталонного клиента на создание новых блоков. Жесткий максимум возможный размер блока составлял 1 МБ 4 7 Оглядываясь назад, можно сказать, что было большой ошибкой устанавливать фиксированный предел размера блока в коде. Visa и Mastercard могут обрабатывать тысячи, если не сотни тысяч транзакций. в секунду. Однако транзакции происходят в виде стохастического процесса, иногда массовыми всплесками. иногда молчать часами. Подумайте об объеме обмена биткойнов. Кажется, это грандиозная идея — разработать систему, которая динамически увеличивает размер блока, когда это необходимо. чтобы приспособиться к увеличению трафика транзакций и динамически уменьшать его, когда это необходимо. повысить эффективность использования полосы пропускания. Теперь примените это понятие ко всем параметрам системы. И пока мы стараемся сохранить система от рыбьего хвоста вышла из-под контроля, этоотлично сработает. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki Как упоминалось ранее, если переменные самонастраиваются, необходимо ввести некоторый контроль, чтобы не дать системе выйти из-под контроля. Мы доберемся до этого. Если бы это была статья в Википедии, она была бы помечена как «КОНЕЦ». Хотя мы, конечно, в В разделе, посвященном «Проблемам Bitcoin», мне хотелось бы получить здесь некоторые пояснения. Почему 164 байта неприемлемы для простой задачи «проверка секретного ключа»? Насколько маленькими они могут стать за разумный язык сценариев? Хотя я не компьютерщик. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 Для групповых подписей, как описано, требуется менеджер группы. Менеджер группы способен отзыва анонимности любого подписавшего. Следовательно, в группе существует встроенная централизация. схема подписи.

ключ, а ключи всех пользователей его группы. Подтверждающее лицо убеждено, что настоящим подписывающим лицом является член группы, но не может однозначно идентифицировать подписавшего. Исходный протокол требовал доверенной третьей стороны (называемой менеджером группы), и он был единственный, кто мог отследить подписавшего. Следующая версия, названная кольцевой подписью, представила Ривест и др. в [34] была автономная схема без менеджера группы и анонимности. отзыв. Позднее появились различные модификации этой схемы: связываемая кольцевая подпись [26, 27, 17] позволило определить, были ли две подписи созданы одним и тем же членом группы, прослеживаемые Кольцевая подпись [24, 23] ограничивала чрезмерную анонимность, предоставляя возможность отследить подписавшего два сообщения относительно одной и той же метаинформации (или «тега» в терминах [24]). Подобная криптографическая конструкция известна также как подпись специальной группы [16, 38]. Это подчеркивает произвольное формирование группы, тогда как схемы групповой/кольцевой подписи скорее предполагают фиксированный набор членов. По большей части наше решение основано на работе «Прослеживаемая кольцевая подпись» Э. Фудзисаки. и К. Сузуки [24]. Чтобы отличить оригинальный алгоритм от нашей модификации, будем назовем последнюю одноразовой кольцевой подписью, подчеркивая возможность пользователя создать только одну действительную подпись. подпись под своим секретным ключом. Мы ослабили свойство прослеживаемости и сохранили возможность связывания. только для обеспечения одноразовости: открытый ключ может появляться во многих иностранных проверочных наборах, а закрытый ключ можно использовать для создания уникальной анонимной подписи. В случае двойной траты попытка эти две подписи будут связаны друг с другом, но раскрытие подписавшего не требуется для наших целей. 4.2 Определения 4.2.1 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбрали быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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 Кольцевая подпись работает следующим образом: Алекс хочет передать WikiLeaks сообщение о своем работодателе. У каждого сотрудника в ее компании есть пара частного/открытого ключей (Ri, Ui). Она сочиняет ее подпись с набором входных данных в качестве ее сообщения, m, ее секретный ключ, Ri, и ВСЕХ открытые ключи (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]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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 Черт возьми, автор этого документа наверняка мог бы сформулировать это лучше! Скажем, компания, принадлежащая сотрудникам, хочет проголосовать за то, приобретать или нет определенные новые активы, а Алекс и Бренда являются сотрудниками. Компания предоставляет каждому сотруднику сообщение типа «Я голосую за предложение А!» который имеет метаинформационную «проблему» [ПРОП А] и просит их подписать его отслеживаемой кольцевой подписью, если они поддерживают это предложение. Используя традиционную кольцевую подпись, недобросовестный сотрудник может подписать сообщение несколько раз. предположительно с разными nonce, чтобы голосовать столько раз, сколько захотят. С другой стороны С другой стороны, в схеме отслеживаемой кольцевой подписи Алекс пойдет голосовать, и ее закрытый ключ будет иметь был использован по вопросу [ПРОП А]. Если Алекс попытается подписать сообщение типа «Я, Бренда, одобряю предложение А!» чтобы «подставить» Бренду и провести двойное голосование, в этом новом сообщении также будет проблема [ПРОП А]. Поскольку закрытый ключ Алекса уже вызвал проблему [PROP A], личность Алекса будет сразу же раскрыто как мошенничество. Что, согласитесь, очень круто! Криптография обеспечивала равенство голосов. 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]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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 Параметры эллиптической кривой В качестве базового алгоритма подписи мы выбралие использовать быструю схему EdDSA, которая разработана и реализованный Д.Дж. Бернштейн и др. [18]. Как и ECDSA Bitcoin, он основан на эллиптической кривой. задача дискретного логарифма, поэтому нашу схему можно будет применить и к Bitcoin в будущем. Общие параметры: q: простое число; q = 2255 −19; d: элемент Fq; д = -121665/121666; E: уравнение эллиптической кривой; −x2 + y2 = 1 + dx2y2; 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. В этой статье необходим раздел, посвященный выбору значений параметров.

приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционная модель ключей/транзакций Bitcoin. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционный мод Bitcoin ключей/транзакцийэл. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 11 Это похоже на Bitcoin, но с бесконечным количеством анонимных почтовых ящиков, погашать которые может только получатель. создание закрытого ключа, который настолько же анонимен, насколько это возможно при использовании кольцевой подписи. Bitcoin работает следующим образом. Если у Алекс в кошельке есть 0,112 Bitcoin, который она только что получила от Фрэнка, у нее действительно есть подписанный сообщение «Я, [ФРАНК], отправлю 0.112 Bitcoin на [alex] + H0 + N0», где 1) Фрэнк подписал сообщение своим секретным ключом [FRANK], 2) Фрэнк подписал сообщение открытым ключом Алекса. ключ, [алекс], 3) Фрэнк включил некоторую форму истории биткойна, H0, и 4) Фрэнк включает случайный бит данных, называемый nonce, N0. Если затем Алекс захочет отправить 0,011 Bitcoin Шарлин, она примет сообщение Фрэнка и установит для него значение H1 и подпишет два сообщения: одно для ее транзакции и одно для изменения. H1= "Я, [ФРАНК], отправь 0,112 Bitcoin на [alex] + H0 + N" "Я, [ALEX], отправь 0,011 Bitcoin на [charlene] + H1 + N1" "Я, [ALEX], отправляю 0,101 Bitcoin в качестве изменения на [alex] + H1 + N2." где Алекс подписывает оба сообщения своим секретным ключом [ALEX], первое сообщение с именем Шарлин открытый ключ [charlene], второе сообщение с открытым ключом Алекса [alex], включая истории и некоторые случайно сгенерированные nonce N1 и N2 соответственно. Cryptonote работает следующим образом: Если у Алекс в кошельке есть криптовалюта 0,112, которую она только что получила от Фрэнка, значит, у нее действительно есть подписанная сообщение «Я, [кто-то из специальной группы], отправляю 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 в качестве изменения на [одноразовый адрес-сделанный из-ALEX+alex] + H1 + N2» Теперь Алекс и Бренда сканируют все входящие сообщения на наличие одноразовых адресов, которые были созданный с использованием их ключа. Если они его найдут, то это будет их собственное, совершенно новое сообщение. криптонота! И даже в этом случае транзакция все равно достигнет blockchain. Если монеты, поступающие по этому адресу известно, что они отправляются от преступников, политических деятелей или от комитетов и счетов. со строгим бюджетом (т. е. хищением), или если новый владелец этих монет когда-либо совершит ошибку и отправляет эти монеты на общий адрес с монетами, которыми он, как известно, владеет, приспособление для анонимности в биткойнах.

приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционная модель ключей/транзакций Bitcoin. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 приватный ключ пользователя — это пара (a, b) двух разных приватных ec-ключей; ключ отслеживания — пара (a, B) частного и публичного ec-ключа (где B = bG и a ̸= b); открытый ключ пользователя — это пара (A, B) двух открытых электронных ключей, полученных из (a, b); стандартный адрес — это представление открытого ключа пользователя, представленного в удобной для человека строке. с исправлением ошибок; усеченный адрес представляет собой представление второй половины (точка B) открытого ключа пользователя, заданного в удобную для человека строку с коррекцией ошибок. Структура транзакции остается аналогичной структуре в Bitcoin: каждый пользователь может выбрать несколько независимых входящих платежей (выходов транзакций), подпишите их соответствующими секретные ключи и отправлять их в разные места назначения. В отличие от модели Bitcoin, где пользователь обладает уникальными закрытым и открытым ключами, в предлагаемая модель: отправитель генерирует одноразовый открытый ключ на основе адреса получателя и некоторые случайные данные. В этом смысле входящая транзакция для того же получателя отправляется одноразовый открытый ключ (не напрямую к уникальному адресу), и только получатель может восстановить соответствующую частную часть для выкупа его средств (с использованием его уникального закрытого ключа). Получатель может тратить средства, используя кольцевую подпись, сохраняя анонимность своего владельца и фактических расходов. Подробности протокола описаны в следующих подразделах. 4.3 Непривязываемые платежи Классические адреса Bitcoin после публикации становятся однозначным идентификатором для входящих платежи, связывая их между собой и привязывая к псевдонимам получателя. Если кто-то хочет получить «несвязанную» транзакцию, он должен передать свой адрес отправителю по частному каналу. Если он хочет получать разные транзакции, принадлежность которых не может быть доказано одному и тому же владельцу он должен генерировать все разные адреса и никогда не публиковать их под своим псевдонимом. Общественный Частный Алиса Кэрол Адрес Боба 1 Адрес Боба 2 Ключ Боба 1 Ключ Боба 2 Боб Рис. 2. Традиционный мод Bitcoin ключей/транзакцийэл. Мы предлагаем решение, позволяющее пользователю публиковать один адрес и получать безоговорочную несвязанные платежи. Назначением каждого вывода CryptoNote (по умолчанию) является открытый ключ. получается на основе адреса получателя и случайных данных отправителя. Основное преимущество против Bitcoin заключается в том, что каждый ключ назначения по умолчанию уникален (если только отправитель не использует одни и те же данные для каждого его транзакций одному и тому же получателю). Следовательно, не существует такой проблемы, как «повторное использование адреса» дизайн, и ни один наблюдатель не может определить, были ли какие-либо транзакции отправлены на определенный адрес или ссылку. два адреса вместе. 6 12 Следовательно, вместо того, чтобы пользователи отправляли монеты с адреса (который на самом деле является открытым ключом) на адрес (еще один открытый ключ) используя свои приватные ключи, пользователи отправляют монеты из одноразового почтового ящика (который генерируется с использованием открытого ключа вашего друга) на одноразовый почтовый ящик (аналогично) с использованием вашего собственные секретные ключи. В каком-то смысле мы говорим: «Хорошо, уберите руки от денег, пока они находятся в обороте». перенесено! Достаточно просто знать, что наши ключи могут открыть этот ящик и что мы знаем, сколько денег в коробке. Никогда не оставляйте отпечатки пальцев на почтовом ящике или на самом деле используйте его, просто продайте саму коробку, наполненную деньгами. Таким образом, мы не знаем, кто отправил что, но содержание этих публичных обращений по-прежнему остается гладким, взаимозаменяемым, делимым и по-прежнему обладают всеми другими приятными качествами денег, которые мы желаем, например, биткойнами». Бесконечный набор почтовых ящиков. Вы публикуете адрес, у меня есть закрытый ключ. Я использую свой закрытый ключ и ваш адрес, и некоторые случайные данные для генерации открытого ключа. Алгоритм разработан таким образом, что, поскольку ваш адрес использовался для генерации открытого ключа, только ВАШ закрытый ключ работает для разблокировки сообщение. Наблюдатель, Ева, видит, что вы публикуете свой адрес, и видит открытый ключ, который я объявляю. Однако, она не знает, объявил ли я свой открытый ключ на основе вашего адреса, ее адреса или адреса Бренды. или Шарлин, или кто бы то ни было. Она сверяет свой закрытый ключ с открытым ключом, который я объявил. и видит, что это не работает; это не ее деньги. Она не знает чужого закрытого ключа, и только получатель сообщения имеет закрытый ключ, который может разблокировать сообщение. Так что никто Прослушивание может определить, кто получил деньги, а тем более взять деньги.

Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес Bitcoin кошелька. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес Bitcoin кошелька. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 13 Интересно, какой головной болью будет реализовать выбор криптографии? схема. Эллиптический или другой. Поэтому, если какая-то схема в будущем сломается, валюта поменяется. без беспокойства. Наверное, это большая заноза в заднице. Хорошо, это именно то, что я только что объяснил в своем предыдущем комментарии. Тип Диффе-Хеллмана обмены аккуратные. Скажем, у Алекса и Бренды есть секретный номер A и B, а также номер они не заботятся о сохранении тайны, а и б. Они хотят создать общий секрет без Ева обнаруживает это. Дайфф и Хеллман придумали, как Алекс и Бренда могли поделиться общедоступные номера a и b, но не частные номера A и B, и сгенерировать общий секрет, К. Используя этот общий секрет, К., без какой-либо подслушивающей Евы, смог создать тот же самый К, Алекс и Бренда теперь могут использовать К в качестве секретного ключа шифрования и передавать секретные сообщения обратно. и вперед. Вот как это МОЖЕТ работать, хотя оно должно работать и с числами, гораздо большими, чем 100. Мы будем использовать 100, потому что работа с целыми числами по модулю 100 эквивалентна «выбрасыванию всех но последние две цифры числа». Алекс и Бренда выбирают A, a, B и b. Они держат А и Б в секрете. Алекс сообщает Бренде свое значение по модулю 100 (только две последние цифры), а Бренда сообщает Алексу. ее значение b по модулю 100. Теперь Ева знает (a,b) по модулю 100. Но Алекс знает (a,b,A), поэтому она может вычислить x=abA по модулю 100.Алекс отсекает все, кроме последней цифры, потому что мы работаем снова под целыми числами по модулю 100. Точно так же Бренда знает (a,b,B), поэтому она может вычислить y=abB по модулю 100. Теперь Алекс может публиковать x, а Бренда может публиковать y. Но теперь Алекс может вычислить yA = abBA по модулю 100, а Бренда может вычислить xB. = абВА по модулю 100. Они оба знают одно и то же число! Но все, что слышала Ева, это (а,б,абА,абВ). У нее нет простого способа вычислить abA*B. Это самый простой и наименее безопасный способ рассмотрения обмена Диффи-Хеллмана. Существуют более безопасные версии. Но большинство версий работают, поскольку целочисленная факторизация и дискретная логарифмы сложны, и обе эти проблемы легко решаются квантовыми компьютерами. Я проверю, существуют ли какие-либо версии, устойчивые к квантовому воздействию. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange В приведенной здесь «стандартной последовательности txn» отсутствует целый ряд шагов, например ПОДПИСЕЙ. Здесь они воспринимаются как нечто само собой разумеющееся. Что очень плохо, потому что порядок, в котором мы подписываемые материалы, информация, содержащаяся в подписанном сообщении, и так далее... все это чрезвычайно важно для протокола. Если сделать один или два шага неправильно, даже немного не по порядку, при реализации « стандартная последовательность транзакций» может поставить под вопрос безопасность всей системы. Более того, доказательства, представленные далее в статье, могут оказаться недостаточно строгими, если Структура, в которой они работают, определена так же свободно, как и в этом разделе.

Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес кошелька Bitcoin. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 Общественный Частный Алиса Кэрол Одноразовый ключ Одноразовый ключ Одноразовый ключ Боб Ключ Боба Адрес Боба Рис. 3. Модель ключей/транзакций CryptoNote. Сначала отправитель выполняет обмен Диффи-Хеллмана, чтобы получить общий секрет из своих данных и половина адреса получателя. Затем он вычисляет одноразовый ключ назначения, используя общий секрет и вторая половина адреса. От получателя требуются два разных электронных ключа. для этих двух шагов, поэтому стандартный адрес CryptoNote почти в два раза больше, чем адрес кошелька Bitcoin. адрес. Получатель также выполняет обмен Диффи-Хеллмана для восстановления соответствующего сообщения. секретный ключ. Стандартная последовательность транзакций выглядит следующим образом: 1. Алиса хочет отправить платеж Бобу, который опубликовал свой стандартный адрес. Она распаковывает адрес и получает открытый ключ Боба (A, B). 2. Алиса генерирует случайное число \(r \in [1, l - 1]\) и вычисляет одноразовый открытый ключ \(P = H_s(rA)G +\). Б. 3. Алиса использует P в качестве ключа назначения для вывода, а также упаковывает значение R = rG (как часть обмена Диффи-Хеллмана) где-то в транзакции. Обратите внимание, что она может создавать другие выходные данные с уникальными открытыми ключами: разные ключи получателей (Ai, Bi) подразумевают разные Pi даже с тем же р. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения Р = гГ P = Hs(rA)G + B Получателя открытый ключ Случайные данные отправителя р (А, Б) Рис. 4. Стандартная структура транзакции. 4. Алиса отправляет транзакцию. 5. Боб проверяет каждую проходящую транзакцию своим секретным ключом (a, b) и вычисляет P ′ = Hs(aR)G + Б. Если среди них была транзакция Алисы с Бобом в качестве получателя, тогда aR = arG = rA и P ′ = P. 7 14 Обратите внимание, что автор(ы?) ужасно стараются придерживаться четкой терминологии. текст, но особенно в следующем фрагменте. Следующим воплощением этой статьи обязательно будет гораздо более строгий. В тексте они называют P своим одноразовым открытым ключом. На диаграмме они обозначают R как их «открытый ключ Tx» и P в качестве «ключа назначения». Если бы я собирался переписать это, я бы Прежде чем обсуждать эти разделы, очень подробно изложите некоторую терминологию. Этот эл огромен. См. стр. 5. Кто выбирает Эл? Диаграмма показывает, что открытый ключ транзакции R = rG, который является случайным и выбранным. отправителем, не является частью вывода Tx. Это потому, что оно может быть одинаковым для нескольких транзакции нескольким людям и не используются ПОЗЖЕ для расходов. Генерируется новый R каждый раз, когда вы хотите транслировать новую транзакцию CryptoNote. Кроме того, R используется только чтобы проверить, являетесь ли вы получателем транзакции. Это не мусорные данные, но это мусор для всех без закрытых ключей, связанных с (A,B). С другой стороны, ключ назначения P = Hs(rA)G + B является частью вывода Tx. Все просматривая данные каждой проходящей транзакции, необходимо сверять свои собственные сгенерированные P* с этот P, чтобы узнать, владеют ли они этой проходящей транзакцией. Любой, у кого есть неизрасходованный вывод транзакции (UTXO) будет лежать куча этих P с суммами. Чтобы потратитьд, они подпишите какое-нибудь новое сообщение, включая P. Алиса должна подписать эту транзакцию с помощью одноразового закрытого ключа(ов), связанного с неизрасходованными выходными транзакцией (ключами назначения). Каждый ключ назначения, принадлежащий Алисе, оснащен с одноразовым закрытым ключом, также принадлежащим (предположительно) Алисе. Каждый раз, когда Алисе хочется отправьте содержимое ключа назначения мне, или Бобу, или Бренде, или Чарли, или Шарлин, она использует свой закрытый ключ для подписи транзакции. После получения транзакции я получу новый Открытый ключ Tx, новый открытый ключ назначения, и я смогу восстановить новый одноразовый закрытый ключ x. Объединение моего одноразового закрытого ключа x с общедоступным местом назначения новой транзакции. ключ(и) — это то, как мы отправляем новую транзакцию

  1. Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 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
  2. Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 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?" Лучший способ ответить на этот вопрос — покопаться в теле полностью некомментированного кода. Так держать, команда bytecoin. Напомним: возможность связывания означает «отправил один и тот же человек?» а несвязность означает «сделал то же самое» человек получит?». Таким образом, система может быть подключаемой или несвязываемой, несвязываемой или несвязываемой. Раздражает, я знаю. Поэтому, когда Ник ван Саберхаген говорит здесь: «...входящие платежи [связаны] с единовременными открытые ключи, которые невозможно связать со зрителем», давайте посмотрим, что он имеет в виду. Во-первых, рассмотрим ситуацию, в которой Алиса отправляет Бобу две отдельные транзакции из одной и той же транзакции. обращение по тому же адресу. Во вселенной Bitcoin Алиса уже совершила ошибку. отправки с того же адреса, и поэтому транзакция не удалась, наше желание ограничить возможность связывания. Более того, поскольку она отправила деньги на тот же адрес, наше желание ей не удалось. для несвязности. Эта биткойн-транзакция была одновременно (полностью) привязываемой и неотключаемой. С другой стороны, предположим, что во вселенной криптонот Алиса отправляет Бобу некоторую криптоноту: используя публичный адрес Боба. В качестве своего запутанного набора открытых ключей она выбирает все известные общедоступные ключи. ключи в районе метро Вашингтона. Алекс генерирует одноразовый открытый ключ, используя свой собственный информация и общедоступная информация Боба. Она отсылает деньги, и любой наблюдатель это заметит. только смогу узнать: «Кто-то из района метро Вашингтона отправил 2,3 криптоноты на одноразовый публичный адрес XYZ123». Здесь у нас есть вероятностный контроль над возможностью связывания, поэтому мы назовем это «почти не связанным». Мы также видим только те одноразовые открытые ключи, на которые отправляются деньги. Даже если бы мы заподозрили получателя был Боб, у нас нет его закрытых ключей, поэтому мы не можем проверить, прошла ли транзакция принадлежит Бобу, не говоря уже о том, чтобы сгенерировать его одноразовый закрытый ключ для выкупа его криптоноты. Итак, это на самом деле совершенно «несовместимо». Итак, это самый изящный трюк из всех. Кто хочет по-настоящему доверять другому MtGox? Мы можем быть удобно хранить некоторое количество BTC на Coinbase, но максимальная безопасность биткойнов — это физический кошелек. Что неудобно. В этом случае вы можете без доверия отдать половину своего закрытого ключа, не ставя под угрозу свои собственная способность тратить деньги. При этом все, что вы делаете, — это рассказываете кому-то, как преодолеть несвязность. Другой свойства CN, действующие как валюта, сохраняются, например, защита от двойных расходов и еще много чего.

  3. Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 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

  4. Боб может восстановить соответствующий одноразовый закрытый ключ: x = Hs(aR) + b, так что P = xG. Он может потратить этот выход в любое время, подписав транзакцию с помощью x. Транзакция Открытый ключ передачи Выход передачи Сумма Ключ назначения P ′ = Hs(aR)G + bG одноразовый открытый ключ х = Hs(aR) + b одноразовый закрытый ключ Получателя закрытый ключ (а, б) Р П ' ?= П Рис. 5. Проверка входящей транзакции. В результате Боб получает входящие платежи, связанные с одноразовыми открытыми ключами, которые непередаваемо для зрителя. Некоторые дополнительные примечания: • Когда Боб «узнаёт» свои транзакции (см. шаг 5), он практически использует только половину своих средств. личная информация: (a, B). Эту пару, также известную как ключ отслеживания, можно передать третьему лицу (Кэрол). Боб может делегировать ей обработку новых транзакций. Боб ей не нужно явно доверять Кэрол, потому что она не может восстановить одноразовый секретный ключ p без полного закрытого ключа Боба (a, b). Этот подход полезен, когда Бобу не хватает пропускной способности. или вычислительная мощность (смартфоны, аппаратные кошельки и т. д.). • В случае, если Алиса хочет доказать, что она отправила транзакцию на адрес Боба, она может либо раскрыть r или использовать любой протокол с нулевым разглашением, чтобы доказать, что она знает r (например, подписав транзакция с r). • Если Боб хочет иметь адрес, совместимый с аудитом, по которому будут связанный, он может либо опубликовать свой ключ отслеживания, либо использовать усеченный адрес. Этот адрес представляют только один открытый ec-ключ B, а оставшаяся часть, требуемая протоколом, получены из него следующим образом: a = Hs(B) и A = Hs(B)G. В обоих случаях каждый человек способен «распознать» все входящие транзакции Боба, но, конечно, никто не может потратить средства, заключенные в них без секретного ключа b. 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). Это отличается от того, что описано в тексте здесь, где Алиса генерирует идентификатор платежа. У Боба также должен быть какой-то способ сгенерировать идентификатор платежа. (а, Б) Напомним, что ключ отслеживания (a,B) может быть опубликован; потеря тайны значения «а» будет не нарушать вашу способность тратить и не позволять людям воровать у вас (я думаю... это было бы чтобы быть доказанным), это просто позволит людям видеть все входящие транзакции. Усеченный адрес, как описано в этом параграфе, просто берет «частную» часть ключа. и генерирует его из «публичной» части. Раскрытие значения «a» устранит невозможность связывания. но сохранит остальные транзакции. Автор имеет в виду «не несвязываемый», потому что «несвязываемый» относится к получателю, а «связываемый» относится к отправителю. Также очевидно, что автор не осознавал, что существует два разных аспекта возможности связывания. Поскольку все-таки транзакция — это направленный объект на графе, то возникнет два вопроса: «Эти две транзакции отправляются одному и тому же человеку?» и «придут ли эти две транзакции от одного и того же человека?" Это политика «без возврата», согласно которой свойство отсутствия связи CryptoNote условный. То есть Боб может выбрать, чтобы его входящие транзакции были неотключаемыми. используя эту политику. Это утверждение они доказывают в рамках модели случайного оракула. Мы доберемся до этого; Случайный У Oracle есть плюсы и минусы.

VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци =    ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци =    ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 17 Возможно, это глупо, но при объединении S и P_s нужно соблюдать осторожность. Если вы просто добавите последний открытый ключ до конца, невозможность связывания нарушена, поскольку любой проверяет проходящие транзакции можно просто проверить последний открытый ключ, указанный в каждой транзакции, и бум. Это открытый ключ связанный с отправителем. Таким образом, после объединения необходимо использовать генератор псевдослучайных чисел. используется для перестановки выбранных открытых ключей. «...пока владелец не создаст вторую подпись, используя ту же пару ключей». Желаю автору(ам?) подробнее об этом. Я считаю, что это означает: «Убедитесь, что каждый раз, когда вы выбираете набор открытых ключей для запутывания самостоятельно, вы выбираете совершенно новый набор, в котором нет двух одинаковых ключей». довольно сильное условие для невозможности соединения. Возможно, «вы выбираете новый случайный набор из все возможные ключи» с предположением, что хотя и нетривиальные пересечения неизбежно случаются, они случаются не часто. В любом случае, мне нужно углубиться в это утверждение. Это генерирует кольцевую подпись. Доказательства с нулевым разглашением — это потрясающе: я призываю вас доказать мне, что вы знаете секрет не раскрывая тайны. Например, предположим, что мы находимся у входа в пещеру в форме пончика. а в задней части пещеры (вне поля зрения входа) находится одверь, к которой ты утверждайте, что у вас есть ключ. Если ты пойдешь в одном направлении, тебя всегда пропустят, но если ты пойдешь в другом в другом направлении, вам нужен ключ. Но ты даже не хочешь ПОКАЗАТЬ мне ключ, не говоря уже о покажи мне, что он открывает дверь. Но ты хочешь доказать мне, что знаешь, как открыть дверь. В интерактивной обстановке я подбрасываю монетку. Орел слева, решка справа, и вы идете вниз по пещера в форме пончика, куда бы вас ни направила монета. Сзади, вне моего поля зрения, ты откройте дверь, чтобы вернуться с другой стороны. Повторяем эксперимент с подбрасыванием монеты. пока я не удостоверюсь, что у вас есть ключ. Но это явно ИНТЕРАКТИВНОЕ доказательство с нулевым разглашением. Есть неинтерактивные версии, в которых нам с вами никогда не придется общаться; таким образом, никакие подслушивающие устройства не смогут вмешаться. http://en.wikipedia.org/wiki/Zero-knowledge_proof Это противоположное предыдущему определению.

VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци =    ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 VER: принимает сообщение m, набор S, подпись \(\sigma\) и выводит «истина» или «ложь». LNK: принимает набор I = {Ii}, подпись \(\sigma\) и выводит «связанный» или «независимый». Идея протокола довольно проста: пользователь создает подпись, которую можно проверяется набором открытых ключей, а не уникальным открытым ключом. Личность подписывающего лица неотличимы от других пользователей, чьи открытые ключи находятся в наборе, пока владелец не предоставит вторая подпись с использованием той же пары ключей. Закрытые ключи х0 \(\cdots\) xi \(\cdots\) хн Открытые ключи Р0 \(\cdots\) Пи \(\cdots\) пн Кольцо Подпись знак проверить Рис. 6. Анонимность кольцевой подписи. ОБЩ: подписывающая сторона выбирает случайный секретный ключ \(x \in [1, l - 1]\) и вычисляет соответствующий открытый ключ P = xG. Дополнительно он вычисляет еще один открытый ключ I = xHp(P), который мы и будем использовать. назвать «ключевым изображением». SIG: подписывающая сторона генерирует одноразовую кольцевую подпись с неинтерактивной подписью с нулевым разглашением. доказательство с использованием методов из [21]. Он выбирает случайное подмножество \(S'\) из n из числа других пользователей. открытые ключи Pi, его собственная пара ключей (x, P) и образ ключа I. Пусть \(0 \leq s \leq n\) — секретный индекс подписывающего лица. в S (так что его открытый ключ — Ps). Он выбирает случайное {ци | я = 0. . . n} и {wi | я = 0. . . n, i ̸= s} из (1 . . . l) и применяет следующие преобразования: Ли = ( циГ, если я = с киГ + вайПи, если я ̸= s Ри = ( qiHp(Пи), если я = с qiHp(Pi) + wiI, если я ̸= s Следующий шаг — получение неинтерактивного задания: c = Hs(m, L1,...,Ln, R1,...,Rn) Наконец подписывающая сторона вычисляет ответ: ци =    ви, если я ̸= s с — НП я = 0 ци мод л, если я = с ри = ( ци, если я ̸= s qs -csx мод л, если я = с Результирующая сигнатура имеет вид \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\). 9 18 Вся эта область не зависит от криптонот, просто описывая алгоритм кольцевой подписи без ссылка на валюты. Я подозреваю, что некоторые обозначения совпадают с остальной частью статьи. хотя. Например, x — это «случайный» секретный ключ, выбранный в GEN, который дает открытый ключ P. и изображение открытого ключа I. Это значение x — это значение, которое Боб вычисляет в части 6 на странице 8. Итак, это начинаю прояснять некоторую путаницу из предыдущего описания. Это круто; деньги не переводятся с публичного адреса Алисы на публичный адрес Боба. адрес." Он пересылается с одноразового адреса на одноразовый адрес. В каком-то смысле вот как все работает. Если у Алекса есть криптоноты, потому что кто-то отправила их ей, это означает, что у нее есть секретные ключи, необходимые для отправки их Бобу. Она использует обмен Диффе-Хеллманом с использованием общедоступной информации Боба для создания нового одноразового адреса и криптоноты передаются на этот адрес. Теперь, поскольку для генерации нового одноразового адреса использовался (предположительно безопасный) обмен DH на который Алекс отправила свой CN, Боб — единственный, у кого есть закрытые ключи, необходимые для повторения выше. Итак, теперь Боб — это Алекс. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Суммирование должно индексироваться по j, а не по i. Каждый c_i является случайным мусором (поскольку w_i является случайным) кроме задницы c_iсвязан с фактическим ключом, включенным в эту подпись. Значение c равно 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: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и сохраняет ее в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и stхранит это в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 19 В этот момент я ужасно запутался. Алекс получает сообщение 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. А также электричество/устойчивое развитие. Какие части алгоритмов здесь представляют собой «входные данные»? Я полагаю, что входные данные транзакции представляют собой сумму и набор UTXO, сумма которых превышает сумму Сумма. Это неясно. «Цель спряталась?» Я думал об этом уже несколько минут, но до сих пор не понял. смутное представление о том, что это могло означать. Атака двойного расходования может быть выполнена только путем манипулирования предполагаемым используемым ключом узла. набор изображений \(I\). «Степень неоднозначности» = n, но общее количество открытых ключей, включенных в транзакцию, равно п+1. Другими словами, степень двусмысленности будет такой: «Сколько ДРУГИХ людей вы хотите видеть в группе?» толпа?" Ответ, вероятно, будет по умолчанию «как можно больше».

VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и сохраняет ее в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 VER: Верификатор проверяет подпись, применяя обратные преобразования: ( Л' я = riG + ciPi Р' я = riHp(Pi) + ciI Наконец, проверяющий проверяет, НП я = 0 ци ?= Hs(m, L′ 0, . . . , Л' п, Р' 0, . . . , Р' п) мод л Если это равенство верно, верификатор запускает алгоритм LNK. В противном случае проверяющий отклоняет подпись. LNK: верификатор проверяет, использовалось ли I в прошлых подписях (эти значения хранятся в набор И). Многократное использование подразумевает, что две подписи были созданы под одним и тем же секретным ключом. Смысл протокола: применяя L-преобразования, подписывающий доказывает, что он знает такой x, что хотя бы один Pi = xG. Чтобы сделать это доказательство неповторяемым, введем ключевой образ поскольку I = xHp(P). Подписавшийся использует те же коэффициенты (ri, ci), чтобы доказать почти одно и то же утверждение: он знает такой x, что хотя бы один \(H_p(P_i) = I \cdot x^{-1}\). Если отображение \(x \to I\) является инъекцией: 1. Никто не может восстановить открытый ключ по образу ключа и идентифицировать подписавшего; 2. Подписавшийся не может поставить две подписи с разными I и одним и тем же x. Полный анализ безопасности представлен в Приложении А. 4,5 Стандартная транзакция CryptoNote Комбинируя оба метода (непривязываемые открытые ключи и неотслеживаемую кольцевую подпись), Боб достигает новый уровень конфиденциальности по сравнению с исходной схемой Bitcoin. Требуется, чтобы он хранил только один закрытый ключ (a, b) и публикацию (A, B), чтобы начать получать и отправлять анонимные транзакции. При проверке каждой транзакции Боб дополнительно выполняет только два умножения эллиптической кривой и одно сложение на каждый выход, чтобы проверить, принадлежит ли ему транзакция. Для каждого его вывод Боб восстанавливает одноразовую пару ключей (pi, Pi) и stхранит это в своем кошельке. Любые входы могут быть косвенно доказано, что они принадлежат одному и тому же владельцу только в том случае, если они фигурируют в одной сделке. В На самом деле эту связь гораздо сложнее установить из-за одноразовой кольцевой подписи. С помощью кольцевой подписи Боб может эффективно скрыть все вводимые данные среди чужих; все возможно потратители будут равновероятны, даже предыдущий владелец (Алиса) располагает не большей информацией, чем любой наблюдатель. Подписывая свою транзакцию, Боб указывает n зарубежных выходов на ту же сумму, что и его вывод, смешивая их все без участия других пользователей. Сам Боб (а также кто-либо еще) не знает, были ли потрачены какие-либо из этих платежей: результат можно использовать в тысячах подписей как фактор двусмысленности, а не как цель сокрытия. Двойной Проверка расходов происходит на этапе LNK при проверке по используемому набору ключевых изображений. Боб может выбрать степень неоднозначности самостоятельно: n = 1 означает, что вероятность, которую он имеет потраченный выход имеет вероятность 50%, n = 99 дает 1%. Размер полученной подписи увеличивается линейно как O(n+1), поэтому улучшение анонимности обходится Бобу дополнительными комиссиями за транзакцию. Он также может установите n = 0 и сделайте его кольцевую подпись состоящей только из одного элемента, однако это мгновенно раскрыть его как транжиру. 10 20 Это интересно; ранее мы предоставили получателю Бобу возможность отправлять все ВХОДЯЩИЕ транзакции не могут быть отсоединены либо путем детерминированного выбора половины его закрытых ключей, либо путем опубликовав половину своих личных ключей как публичные. Это своего рода политика без пути назад. Здесь мы видим способ отправителя Алекса выбрать одну исходящую транзакцию как связанную, но на самом деле это раскрывает Алекса как отправителя всей сети. Это НЕ политика безвозвратного пути. Это транзакция за транзакцией. Есть ли третья политика? Может ли получатель, Боб, создать для Алекса уникальный идентификатор платежа, который никогда не меняется, возможно, используя обмен Диффе-Хеллмана? Если кто-нибудь включит этот платеж Идентификатор, указанный где-то в ее транзакции на адрес Боба, он, должно быть, исходил от Алекса. Таким образом, Алексу не нужно раскрывать себя всей сети, выбирая ссылку на конкретный транзакцию, но она все равно может идентифицировать себя с человеком, которому она отправляет свои деньги. Разве не это делает Poloniex?

Транзакция Вход передачи Выход0 . . . Выходные данные . . . Выходной Ключевое изображение Подписи Кольцевая подпись Ключ назначения Выход1 Ключ назначения Выходной Зарубежные операции Вывод отправителя Ключ назначения Одноразовая пара ключей Одноразовый закрытый ключ Я = хГП(П) П, х Рис. 7. Генерация кольцевой подписи в стандартной транзакции. 5 Эгалитарное доказательство работы В этом разделе мы предлагаем и обосновываем новый алгоритм proof-of-work. Наша основная цель заключается в сокращении разрыва между майнерами CPU (большинство) и GPU/FPGA/ASIC (меньшинство). Это уместно, что некоторые пользователи могут иметь определенное преимущество перед другими, но их инвестиции должно расти по крайней мере линейно с мощностью. В более общем смысле, производство устройств специального назначения. должна быть как можно менее прибыльной. 5.1 Связанные работы Исходный протокол Bitcoin proof-of-work использует функцию ценообразования с интенсивным использованием ЦП SHA-256. Он в основном состоит из основных логических операторов и полагается исключительно на скорость вычислений. процессор, поэтому идеально подходит для многоядерной/конвейерной реализации. Однако современные компьютеры ограничены не только количеством операций в секунду. но и по размеру памяти. Хотя некоторые процессоры могут быть значительно быстрее других [8], размеры памяти вряд ли будут различаться между машинами. Ценовые функции, связанные с памятью, были впервые введены Абади и др. и определены как «функции, время вычисления которых во многом зависит от времени, затрачиваемого на доступ к памяти» [15]. Основная идея заключается в построении алгоритма, выделяющего большой блок данных («блокнот»). в памяти, доступ к которой возможен относительно медленно (например, ОЗУ) и «доступ к непредсказуемая последовательность локаций» внутри него. Блок должен быть достаточно большим, чтобы можно было сохранить данные более выгодны, чем пересчитывать их для каждого доступа. Алгоритм также должен предотвратить внутренний параллелизм, следовательно, N одновременных потоков должны требовать в N раз больше памяти сразу. Дворк и др. [22] исследовали и формализовали этот подход, что привело их к предложению другого вариант функции ценообразования: «Mbound». Еще одна работа принадлежит Ф. Коэльо [20], который 11 Транзакция Вход передачи Выход0 . . . Выходные данные . . . Выходной Ключевое изображение Подписи Кольцевая подпись Ключ назначения Выход1 Ключ назначения Выходной Зарубежные сделки Вывод отправителя Ключ назначения Одноразовая пара ключей Одноразовый закрытый ключ Я = хГП(П) П, х Рис. 7. Генерация кольцевой подписи в стандартной транзакции. 5 Эгалитарное доказательство работы В этом разделе мы предлагаем и обосновываем новый алгоритм proof-of-work. Наша основная цель заключается в сокращении разрыва между майнерами CPU (большинство) и GPU/FPGA/ASIC (меньшинство). Это уместно, что некоторые пользователи могут иметь определенное преимущество перед другими, но их инвестиции должно расти по крайней мере линейно с мощностью. В более общем смысле, производство устройств специального назначения. должна быть как можно менее прибыльной. 5.1 Связанные работы Исходный протокол Bitcoin proof-of-work использует функцию ценообразования с интенсивным использованием ЦП SHA-256. Он в основном состоит из основных логических операторов и полагается исключительно на скорость вычислений. процессор, поэтому идеально подходит для многоядерной/конвейерной реализации. Однако современные компьютеры ограничены не только количеством операций в секунду. но и по размеру памяти. Хотя некоторые процессоры могут быть значительно быстрее других [8], размеры памяти вряд ли будут различаться между машинами. Ценовые функции, связанные с памятью, были впервые введены Абади и др. и определены как «функции, время вычислений которых во многом зависит от времени, затрачиваемого на доступ к памяти» [15]. Основная идея заключается в построении алгоритма, выделяющего большой блок данных («блокнот»). в памяти, доступ к которой возможен относительно медленно (например, ОЗУ) и «доступ к непредсказуемая последовательность локаций» внутри него. Блок должен быть достаточно большим, чтобы можно было сохранить данные более выгодны, чем пересчитывать их для каждого доступа. Алгоритм также должен предотвратить внутренний параллелизм, следовательно, N одновременных потоков должны требовать в N раз больше памяти сразу. Дворк и др. [22] исследовали и формализовали этот подход, что привело их к предложению другого вариант функции ценообразования: «Mbound». Еще одна работа принадлежит Ф. Коэльо [20], который 11 21 Это, якобы, наши UTXO: суммы и ключи назначения. Если Алекс создает эту стандартную транзакцию и отправляет ее Бобу, то у Алекса также есть закрытые ключи. каждому из них. Мне очень нравится эта диаграмма, потому что она отвечает на некоторые предыдущие вопросы. Вход Txn состоит из набора выходов Txn и key изображение. Затем он подписывается кольцевой подписью, включая все личных ключей, которыми владеет Алекс, ко всем зарубежным транзакциям, включенным в сделку. Вывод Txn состоит из суммы и ключа назначения. Получатель транзакции может: по своему желанию генерировать свой одноразовый закрытый ключ, как описано ранее в статье, чтобы потратить деньги. Будет приятно узнать, насколько это соответствует реальному коду... Нет, Ник ван Саберхаген в общих чертах описывает некоторые свойства алгоритма доказательства работы: без фактического описания этого алгоритма. Сам алгоритм CryptoNight ТРЕБУЕТ глубокого анализа. Когда я это прочитал, я заикался. Должны ли инвестиции расти хотя бы линейно с ростом власти, или же следует инвестиции растут максимум линейно с ростом мощности? И тогда я понял; Я, как майнер или инвестор, обычно думаю о том, «сколько энергии я могу получить». для инвестиций?» а не «сколько инвестиций требуется для фиксированного количества энергии?» Конечно, обозначим инвестиции через I, а мощность через P. Если I(P) — это инвестиции как функция мощности а P(I) — мощность как функция инвестиций, они будут обратными друг другу (где бы то ни было). обратные могут существовать). И если I(P) быстрее линейного, чем P(I) медленнее линейного. Следовательно, будет снижена норма прибыли для инвесторов. То есть автор здесь говорит следующее: «конечно, чем больше вы вкладываете, тем больше и получаете». мощность. Но мы должны попытаться добиться снижения нормы прибыли». В конечном итоге инвестиции в процессоры окажутся сублинейными; вопрос в том, являются ли авторы разработали алгоритм POW, который заставит ASIC также делать это. Должна ли гипотетическая «валюта будущего» всегда майнить с использованием самых медленных/наиболее ограниченных ресурсов? Статья Абади и др. (авторами которой являются несколько инженеров Google и Microsoft): по сути, используя тот факт, что за последние несколько лет объем памяти был намного меньше разница между машинами превышает скорость процессора, а соотношение инвестиций к мощности более чем линейное. Через несколько лет, возможно, придется переоценить это! Всё это гонка вооружений... Создать функцию hash сложно; создание функции hash, удовлетворяющей этим ограничениям, кажется более сложной задачей. Эта статья, похоже, не содержит объяснения фактического hashалгоритм CryptoNight. Я думаю, что это реализация SHA-3 с жесткими требованиями к памяти, основанная в сообщениях на форуме, но я понятия не имею... и в этом вся суть. Это необходимо объяснить.

предложил наиболее эффективное решение: «Хоккайдо». Насколько нам известно, последней работой, основанной на идее псевдослучайного поиска в большом массиве, является алгоритм, известный как «scrypt» К. Персиваля [32]. В отличие от предыдущих функций, он фокусируется на получение ключа, а не системы proof-of-work. Несмотря на этот факт, скрипт может служить нашей цели: она хорошо работает как функция ценообразования в задаче частичного преобразования hash, такой как SHA-256 в Bitcoin. На данный момент scrypt уже применяется в Litecoin [14] и некоторых других ветвях Bitcoin. Однако его реализация на самом деле не привязана к памяти: соотношение «время доступа к памяти/общее time» недостаточно велик, поскольку каждый экземпляр использует только 128 КБ. Это позволяет майнерам с графическим процессором быть примерно в 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. Это зависит от произвольный доступ к медленной памяти и подчеркивает зависимость от задержки. В отличие от сценария каждого новый блок (длиной 64 байта) зависит от всех предыдущих блоков. В результате гипотетический «Экономия памяти» должна увеличить скорость вычислений в геометрической прогрессии. Наш алгоритм требует около 2 Мб на экземпляр по следующим причинам: 1. Он помещается в кэш L3 (на ядро) современных процессоров, которые должны стать массовыми. через несколько лет; 2. Мегабайт внутренней памяти — практически неприемлемый размер для современного ASIC-конвейера; 3. На графических процессорах могут одновременно работать сотни экземпляров, но они ограничены в других отношениях: Память GDDR5 медленнее кэша CPU L3 и отличается своей пропускной способностью, а не Скорость произвольного доступа. 4. Значительное расширение блокнота потребует увеличения количества итераций, что в ход подразумевает общее увеличение времени. «Тяжелые» вызовы в ненадежной p2p-сети могут привести к серьезные уязвимости, поскольку узлы обязаны проверять proof-of-work каждого нового блока. Если узел тратит значительное количество времени на каждую оценку hash, его можно легко DDoS-атака вызвана потоком поддельных объектов с произвольными рабочими данными (значения nonce). 12 предложил наиболее эффективное решение: «Хоккайдо». Насколько нам известно, последней работой, основанной на идее псевдослучайного поиска в большом массиве, является алгоритм, известный как «scrypt» К. Персиваля [32]. В отличие от предыдущих функций, он фокусируется на получение ключа, а не системы proof-of-work. Несмотря на этот факт, скрипт может служить нашей цели: она хорошо работает как функция ценообразования в задаче частичного преобразования hash, такой как SHA-256 в Bitcoin. На данный момент scrypt уже применяется в Litecoin [14] и некоторых других ветвях Bitcoin. Однако его реализация на самом деле не привязана к памяти: соотношение «время доступа к памяти/общее time» недостаточно велик, поскольку каждый экземпляр использует только 128 КБ. Это позволяет майнерам с графическим процессором быть примерно в 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. Это зависит от произвольный доступ к медленной памяти и подчеркивает зависимость от задержки. В отличие от сценария каждого новый блок (длиной 64 байта) зависит от всех предыдущих блоков. В результате гипотетический «Экономия памяти» должна увеличить скорость вычислений в геометрической прогрессии. Наш алгоритм требует около 2 Мб на экземпляр по следующим причинам: 1. Он помещается в кэш L3 (на ядро) современных процессоров, которые должны стать массовыми. через несколько лет; 2. Мегабайт внутренней памяти — практически неприемлемый размер для современного ASIC-конвейера; 3. На графических процессорах могут одновременно работать сотни экземпляров, но они ограничены в других отношениях: Память GDDR5 медленнее кэша CPU L3 и отличается своей пропускной способностью, а не Скорость произвольного доступа. 4. Значительное расширение блокнота потребует увеличения количества итераций, что в ход подразумевает общее увеличение времени. «Тяжелые» вызовы в ненадежной p2p-сети могут привести к серьезные уязвимости, поскольку узлы обязаны проверять proof-of-work каждого нового блока. Если узел тратит значительное количество времени на каждую оценку hash, его можно легко DDoS-атака вызвана потоком поддельных объектов с произвольными рабочими данными (значения nonce). 12 22 Неважно, это скрипт-монета? Где алгоритм? Я вижу только рекламу. Именно здесь Cryptonote, если их алгоритм PoW того стоит, действительно проявит себя. Это не на самом деле SHA-256, это не совсем скрипт. Он новый, привязан к памяти и нерекурсивный.

6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод 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 монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (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 часов, выключен на 2, включен на 6, выключен на 2 или что-то в этом роде. Просто переключитесь на другую монету в течение нескольких часов, подождите, пока сложность упадет, затем запрыгивайте обратно, чтобы получить эти несколько дополнительных очков. блоков прибыльности по мере адаптации сети. И знаешь что? Это на самом деле, наверное один из лучших сценариев добычи полезных ископаемых, которые я придумал... Это могло бы быть циклично, но если время создания блока в среднем составляет около минуты, можем ли мы просто использовать количество блоков в качестве показателя «затраченного времени?»

6 Дополнительные преимущества 6.1 Плавное излучение Верхняя граница общего количества цифровых монет CryptoNote составляет: MSupply = 264 −1. атомные единицы. Это естественное ограничение, основанное только на ограничениях реализации, а не на интуиции. например: «N монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод 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 монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (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 монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод 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 монет должно хватить всем». Для обеспечения плавности процесса эмиссии воспользуемся следующей формулой для блока награды: Базовое вознаграждение = (MSupply −A) ≫18, где A — количество ранее сгенерированных монет. 6.2 Регулируемые параметры 6.2.1 Сложность CryptoNote содержит алгоритм таргетинга, который меняет сложность каждого блока. Это уменьшает время реакции системы при интенсивном росте или сокращении сети hashrate, сохранение постоянной скорости блокировки. Исходный метод 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 так, чтобы эта последовательность росла не быстрее, чем, скажем, линейно: или, возможно, даже как Log(t). Конечно, если f(M_n) = a для некоторой константы a, эта последовательность будет на самом деле М_н аМ_н аˆ2М_н аˆ3М_н ... И, конечно же, единственный способ ограничить максимально линейный рост — это выбрать a=1. Это, конечно, неосуществимо. Это вообще не дает возможности роста. Если же, с другой стороны, f(M_n) — непостоянная функция, то ситуация гораздо сложнее. сложен и может позволить найти элегантное решение. Я подумаю над этим некоторое время. Этот сбор должен быть достаточно большим, чтобы исключить штраф за превышение размера, предусмотренный в следующем разделе. Почему обычный пользователь считается мужчиной, а? А?

возможность раздуть blockchain и создать дополнительную нагрузку на узлы. Препятствовать злонамеренным участникам от создания крупных блоков вводим штрафную функцию: Новая награда = Базовая награда \(\cdot\) БлкСизе Миннесота −1 2 Это правило применяется только тогда, когда BlkSize превышает минимальный размер свободного блока, который должен быть близким к max(10kb, \(M_N \cdot 110\%\)). Майнерам разрешено создавать блоки «обычного размера» и даже превысить его с прибылью, когда общие сборы превысят штраф. Но сборы вряд ли вырастут квадратично отличается от значения штрафа, поэтому будет равновесие. 6.3 Скрипты транзакций CryptoNote имеет очень минималистическую подсистему сценариев. Отправитель указывает выражение Φ = f (x1, x2,..., xn), где n — количество открытых ключей назначения {Pi}n я = 1. Всего пять двоичных поддерживаются операторы: min, max, sum, mul и cmp. Когда получатель тратит этот платеж, он создает \(0 \leq k \leq n\) подписей и передает их на вход транзакции. Процесс проверки просто оценивает Φ с xi = 1, чтобы проверить действительную подпись для открытого ключа Pi и xi = 0. Верификатор принимает доказательство, если Φ > 0. Несмотря на свою простоту, этот подход охватывает все возможные случаи: • Многопороговая сигнатура. Для мультиподписи в стиле Bitcoin «M-из-N» (т. е. получатель должен предоставить как минимум \(0 \leq M \leq N\) действительных подписей) Φ = x1+x2+. . .+xN \(\geq M\) (для ясности мы используем общепринятые алгебраические обозначения). Взвешенная пороговая сигнатура (некоторые ключи могут быть более важными, чем другие) можно выразить как Φ = \(w_1 \cdot x_1\) + ш2 \(\cdot\) х2 + . . . + \(w_N \cdot x_N\) \(\geq wM\). И сценарий, в котором мастер-ключ соответствует Φ = max(\(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 и создать дополнительную нагрузку на узлы. Препятствовать злонамеренным участникам от создания крупных блоков вводим штрафную функцию: Новая награда = Базовая награда \(\cdot\) БлкСизе Миннесота −1 2 Это правило применяется только тогда, когда BlkSize превышает минимальный размер свободного блока, который должен быть близким к max(10kb, \(M_N \cdot 110\%\)). Майнерам разрешено создавать блоки «обычного размера» и даже превысить его с прибылью, когда общие сборы превысят штраф. Но сборы вряд ли вырастут квадратично отличается от значения штрафа, поэтому будет равновесие. 6.3 Скрипты транзакций CryptoNote имеет очень минималистическую подсистему сценариев. Отправитель указывает выражение Φ = f (x1, x2,..., xn), где n — количество открытых ключей назначения {Pi}n я = 1. Всего пять двоичных поддерживаются операторы: min, max, sum, mul и cmp. Когда получатель тратит этот платеж, он создает \(0 \leq k \leq n\) подписей и передает их на вход транзакции. Процесс проверки просто оценивает Φ с xi = 1, чтобы проверить действительную подпись для открытого ключа Pi и xi = 0. Верификатор принимает доказательство, если Φ > 0. Несмотря на свою простоту, этот подход охватывает все возможные случаи: • Многопороговая сигнатура. Для мультиподписи в стиле Bitcoin «M-из-N» (т. е. получатель должен предоставить как минимум \(0 \leq M \leq N\) действительных подписей) Φ = x1+x2+. . .+xN \(\geq M\) (для ясности мы используем общепринятые алгебраические обозначения). Взвешенная пороговая сигнатура (некоторые ключи могут быть более важными, чем другие) можно выразить как Φ = \(w_1 \cdot x_1\) + ш2 \(\cdot\) х2 + . . . + \(w_N \cdot x_N\) \(\geq wM\). И скэнарio, где мастер-ключ соответствует Φ = max(\(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. И, кажется, именно это они пытаются описать. Однако это не

تحليل

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

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 كما يلي: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. يبلغ طول البرنامج النصي 164 بايت بينما الغرض الوحيد منه هو التحقق مما إذا كان المتلقي يمتلك ملف المفتاح السري مطلوب للتحقق من توقيعه.

Анализ

5 Не то чтобы это имело большое значение, когда миллиард человек в мире живут менее чем на доллар в год. и у меня нет никакой надежды когда-либо участвовать в какой-либо горнодобывающей сети... кроме экономической мир, управляемый валютной системой p2p с принципом «один процессор – один голос», по-видимому, был бы более справедливее, чем система, основанная на частичном банковском резервировании. Но протокол Cryptonote по-прежнему требует 51% честных пользователей... см., например, Cryptonote форумы, где один из разработчиков, Плишков, говорит, что традиционная атака 51% с заменой данных на blockchain все еще может работать. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 Обратите внимание: на самом деле вам не нужен 51% честных пользователей. Вам просто очень не нужно «ни одного нечестного фракция, владеющая более чем 51% hash мощи сети." Давайте назовем эту так называемую проблему Биткойна «адаптивной жесткостью». Решение Cryptonote для адаптивного жесткость – это адаптивная гибкость значений параметров протокола. Если вам нужны блоки большего размера, нет проблем, сеть все это время будет плавно настраиваться. То есть, способ, которым Bitcoin регулирует сложность с течением времени, можно воспроизвести во всем нашем протоколе. параметры, чтобы не требовалось достижение сетевого консенсуса для обновления протокола. На первый взгляд это кажется хорошей идеей, но без тщательного обдумывания это саморегулирующаяся идея. система может стать совершенно непредсказуемой и хаотичной. Мы рассмотрим это подробнее позже, поскольку возможности возникают. «Хорошие» системы находятся где-то между адаптивно-жесткими и адаптивно-гибкими. гибки, и, возможно, даже сама жесткость адаптивна. Если бы у нас действительно был принцип «один процессор — один голос», то совместная работа и разработка пулов позволили бы достичь 51 %. было бы сложнее. Мы ожидаем, что каждый процессор в мире будет заниматься майнингом с телефонов. к встроенному процессору вашей Tesla во время зарядки. http://en.wikipedia.org/wiki/Pareto_principle Я утверждаю, что равновесие Парето в некоторой степени неизбежно. Либо 20% системы владеть 80% процессоров, или 20% системы будет владеть 80% ASIC. Я предполагаю это, потому что основное распределение богатства в обществе уже демонстрирует распределение Парето: и по мере того, как присоединяются новые майнеры, они выбираются из этого базового распределения. Тем не менее, я утверждаю, что протоколы с принципом «один процессор — один голос» принесут окупаемость инвестиций в аппаратное обеспечение. Блокировать вознаграждение за узел будет более точно пропорционально количеству узлов в сети, поскольку распределение производительности по узлам будет гораздо более плотным. Bitcoin, с другой стороны, видит вознаграждение за блок (за узел), более пропорциональное вычислительной мощности этого узла. узел. То есть в горнодобывающей отрасли все еще участвуют только «большие мальчики». С другой стороны, хотя принцип Парето по-прежнему будет действовать, в мире «один процессор — один голос» каждый участвует в сетевой безопасности и получает небольшой доход от майнинга. В мире ASIC нецелесообразно привязывать к себе каждый XBox и мобильный телефон. В мире «один процессор — один голос» это очень разумно с точки зрения вознаграждения за майнинг. Как приятное последствие, набрать 51% голосов труднее, когда голосов становится все больше и больше, что дает прекрасный польза для сетевой безопасности..оборудование, описанное ранее. Предположим, что глобальная скорость hash значительно снижается, даже для мгновение, теперь он может использовать свою мощность майнинга, чтобы разветвить цепочку и удвоить расходы. Как мы увидим далее в этой статье вполне вероятно, что ранее описанное событие имело место. 2.3 Нерегулярная эмиссия Bitcoin имеет заранее определенную скорость эмиссии: каждый решенный блок производит фиксированное количество монет. Примерно каждые четыре года эта награда уменьшается вдвое. Первоначальное намерение состояло в том, чтобы создать ограниченное плавное излучение с экспоненциальным затуханием, но по факту мы имеем кусочно-линейное излучение функция, точки останова которой могут вызвать проблемы в инфраструктуре Bitcoin. Когда происходит точка останова, майнеры начинают получать только половину стоимости своих предыдущих награда. Абсолютная разница между 12,5 и 6,25 BTC (прогноз на 2020 год) может кажутся терпимыми. Однако при рассмотрении падения BTC с 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 BTC (прогноз на 2020 год) может кажутся терпимыми. Однако при рассмотрении падения BTC с 50 до 25, произошедшего в ноябре 28 2012 года, посчитали его неприемлемым для значительного числа членов горнодобывающего сообщества. Рисунок 1 показано резкое снижение скорости hash сети в конце ноября, как раз тогда, когда произошло халвинг. Это событие могло стать идеальным моментом для злонамеренного человека. описано в разделе функции proof-of-work для проведения атаки двойных расходов [36]. Рис. 1. График курса Bitcoin hash (источник: http://bitcoin.sipa.be) 2.4 Жестко запрограммированные константы Bitcoin имеет множество жестко запрограммированных ограничений, некоторые из которых являются естественными элементами исходного дизайна (например, частота блоков, максимальная сумма денежной массы, количество подтверждений), тогда как другие кажутся искусственными ограничениями. Дело не столько в ограничениях, сколько в невозможности быстро меняться. 3 6 Давайте назовем это тем, чем оно является, атакой зомби. Давайте обсудим, каким может быть непрерывное излучение. Это связано с принципом «один процессор — один голос» в сценарии атаки зомби. В мире «один процессор – один голос» каждый сотовый телефон и каждый автомобиль, когда бы они ни находились в режиме ожидания, будут заниматься майнингом. Собрать кучу дешевого оборудования для создания майнинг-фермы было бы очень-очень легко, потому что всего лишь почти во всем есть процессор. С другой стороны, в этот момент количество процессоров Я думаю, что необходимое для запуска атаки 51% было бы весьма удивительным. Кроме того, именно поскольку было бы легко собрать дешевое оборудование, мы можем разумно ожидать многие люди начинают копить что-нибудь с процессором. Гонка вооружений в мире «один процессор – один голос» обязательно более эгалитарен, чем в мире ASIC. Следовательно, разрыв в сети безопасность из-за уровня выбросов должна быть МЕНЬШЕЙ проблемой в мире «один процессор – один голос». Однако остаются два факта: 1) скачок в скорости выбросов может привести к эффекту заикания в и в экономике, и в сетевой безопасности, что плохо, и 2) хоть и атака 51% выполненный кем-то, кто собирает дешевое оборудование, все еще может происходить в однопроцессорном процессоре-голосуйте за мир, кажется, должно быть сложнее. Предположительно, защита от этого состоит в том, что все нечестные актеры будут пытаться это сделать. одновременно, и мы возвращаемся к предыдущему понятию безопасности Bitcoin: «мы не требуем нечестных действий». фракция будет контролировать более 51% сети». Автор утверждает здесь, что одна из проблем с биткойнами заключается в том, что может привести к внезапному снижению участия в сети и, следовательно, к снижению безопасности сети. Таким образом, Предпочтительна непрерывная, дифференцируемая и плавная скорость эмиссии монет. Автор не ошибается, это факт. Любое внезапное снижение участия в сети может привести к такой проблеме, и если мы можем устранить один из ее источников, мы должны это сделать. Сказав это, это возможно, что длительные периоды «относительно постоянной» эмиссии монет, перемежающиеся внезапными изменениями Это идеальный путь с экономической точки зрения. Я не экономист. Так что, возможно, мы должны решить, собираемся ли мы обменивать сетевую безопасность на что-то экономическое — что здесь? http://arxiv.org/abs/1402.2009их при необходимости, что вызывает основные недостатки. К сожалению, трудно предсказать, когда константы, возможно, придется изменить, а их замена может привести к ужасным последствиям. Хорошим примером жестко запрограммированного изменения лимита, приводящего к катастрофическим последствиям, является блок ограничение размера установлено на 250 КБ1. Этого лимита было достаточно для проведения около 10 000 стандартных транзакций. В В начале 2013 года этот предел был почти достигнут, и было достигнуто соглашение об увеличении предел. Изменение было реализовано в версии кошелька 0.8 и закончилось разделением цепочки на 24 блока. и успешная атака двойной траты [9]. Хотя ошибка была не в протоколе Bitcoin, а скорее, в ядре базы данных его можно было бы легко обнаружить с помощью простого стресс-теста, если бы было отсутствие искусственно введенного ограничения размера блока. Константы также действуют как форма точки централизации. Несмотря на одноранговый характер Bitcoin, подавляющее большинство узлов используют официальный эталонный клиент [10], разработанный небольшая группа людей. Эта группа принимает решение о внесении изменений в протокол. и большинство людей принимают эти изменения независимо от их «правильности». Некоторые решения вызвали бурные дискуссии и даже призывы к бойкоту [11], что свидетельствует о том, что сообщество и разработчики могут расходиться во мнениях по некоторым важным моментам. Поэтому кажется логичным иметь протокол с настраиваемыми пользователем и самонастраивающимися переменными как возможный способ избежать этих проблем. 2,5 Громоздкие скрипты Система сценариев в Bitcoin — сложная и тяжелая функция. Потенциально это позволяет создавать сложные транзакции [12], но некоторые из его функций отключены из соображений безопасности и некоторые даже никогда не использовались [13]. Скрипт (включая часть отправителя и получателя) для самой популярной транзакции в Bitcoin выглядит так: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Длина скрипта составляет 164 байта, и его единственная цель — проверить, обладает ли получатель секретный ключ, необходимый для проверки его подписи.

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013