CryptoNote 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"، اسم يؤكد على التقدم القادم في مجال النقد الإلكتروني.

Introduction

« Bitcoin » [1] est une mise en œuvre réussie du concept de monnaie électronique p2p. Les deux les professionnels et le grand public en sont venus à apprécier la combinaison pratique de transactions publiques et proof-of-work comme modèle de confiance. Aujourd'hui, la base d'utilisateurs de la monnaie électronique croît à un rythme soutenu ; les clients sont attirés par les frais peu élevés et l’anonymat assuré par la monnaie électronique et les commerçants valorisent son émission prévue et décentralisée. Bitcoin a a prouvé que l’argent électronique peut être aussi simple que le papier-monnaie et aussi pratique que le papier-monnaie. cartes de crédit. Malheureusement, Bitcoin souffre de plusieurs déficiences. Par exemple, le système distribué la nature est inflexible, empêchant la mise en œuvre de nouvelles fonctionnalités jusqu'à ce que presque tous les utilisateurs du réseau mettent à jour leurs clients. Certaines failles critiques qui ne peuvent pas être corrigées rapidement découragent les Bitcoin propagation généralisée. Dans des modèles aussi inflexibles, il est plus efficace de déployer un nouveau projet plutôt que de réparer perpétuellement le projet original. Dans cet article, nous étudions et proposons des solutions aux principales déficiences de Bitcoin. Nous croyons qu'un système prenant en compte les solutions que nous proposons conduira à une saine concurrence entre les différents systèmes de monnaie électronique. Nous proposons également notre propre monnaie électronique, « CryptoNote », un nom qui souligne la prochaine avancée dans le domaine de la monnaie électronique.

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 Inconvénients et solutions possibles

2 Bitcoin inconvénients et quelques solutions possibles 2.1 Traçabilité des transactions La confidentialité et l’anonymat sont les aspects les plus importants de l’argent électronique. Paiements peer-to-peer cherchent à être cachés à la vue des tiers, une différence nette par rapport aux systèmes traditionnels. bancaire. En particulier, T. Okamoto et K. Ohta ont décrit six critères de la monnaie électronique idéale, qui incluait « la vie privée : la relation entre l'utilisateur et ses achats doit être introuvable par n’importe qui » [30]. De leur description, nous avons dérivé deux propriétés dont une personne totalement anonyme le modèle de monnaie électronique doit satisfaire afin de se conformer aux exigences décrites par Okamoto et Ohta : Intraçabilité : pour chaque transaction entrante, tous les expéditeurs possibles sont équiprobables. Inassociation : pour deux transactions sortantes, il est impossible de prouver qu'elles ont été envoyées à la même personne. Malheureusement, Bitcoin ne satisfait pas à l'exigence d'intracabilité. Puisque toutes les transactions qui ont lieu entre les participants du réseau sont publiques, toute transaction peut être 1 CryptoNote version 2.0 Nicolas van Saberhagen 17 octobre 2013 1 Introduction « Bitcoin » [1] est une mise en œuvre réussie du concept de monnaie électronique p2p. Les deux les professionnels et le grand public en sont venus à apprécier la combinaison pratique de transactions publiques et proof-of-work comme modèle de confiance. Aujourd'hui, la base d'utilisateurs de la monnaie électronique croît à un rythme soutenu ; les clients sont attirés par les frais peu élevés et l’anonymat assuré par la monnaie électronique et les commerçants valorisent son émission prévue et décentralisée. Bitcoin a a prouvé que l’argent électronique peut être aussi simple que le papier-monnaie et aussi pratique que le papier-monnaie. cartes de crédit. Malheureusement, Bitcoin souffre de plusieurs déficiences. Par exemple, le système distribué la nature est inflexible, empêchant la mise en œuvre de nouvelles fonctionnalités jusqu'à ce que presque tous les utilisateurs du réseau mettent à jour leurs clients. Certaines failles critiques qui ne peuvent pas être corrigées rapidement découragent les Bitcoin propagation généralisée. Dans des modèles aussi inflexibles, il est plus efficace de déployer un nouveau projet plutôt que de réparer perpétuellement le projet original. Dans cet article, nous étudions et proposons des solutions aux principales déficiences de Bitcoin. Nous croyons qu'un système prenant en compte les solutions que nous proposons conduira à une saine concurrence entre les différents systèmes de monnaie électronique. Nous proposons également notre propre monnaie électronique, « CryptoNote », un nom qui souligne la prochaine avancée dans le domaine de la monnaie électronique. 2 Bitcoin inconvénients et quelques solutions possibles 2.1 Traçabilité des transactions La confidentialité et l’anonymat sont les aspects les plus importants de l’argent électronique. Paiements peer-to-peer cherchent à être cachés à la vue des tiers, une différence nette par rapport aux systèmes traditionnels. bancaire. En particulier, T. Okamoto et K. Ohta ont décrit six critères de la monnaie électronique idéale, qui incluait « la vie privée : la relation entre l'utilisateur et ses achats doit être introuvable par n’importe qui » [30]. De leur description, nous avons dérivé deux propriétés dont une personne totalement anonyme le modèle de monnaie électronique doit satisfaire afin de se conformer aux exigences décrites par Okamoto et Ohta : Intraçabilité : pour chaque transaction entrante, tous les expéditeurs possibles sont équiprobables. Inassociation : pour deux transactions sortantes, il est impossible de prouver qu'elles ont été envoyées à la même personne. Malheureusement, Bitcoin ne satisfait pas à l'exigence d'intracabilité. Puisque toutes les transactions qui ont lieu entre les participants du réseau sont publiques, toute transaction peut être 1 3 Bitcoin échoue définitivement à l'« intraçabilité ». Quand je vous envoie du BTC, le portefeuille à partir duquel il est envoyé est irrévocablement estampillé sur le blockchain. Il n'y a aucun doute sur qui a envoyé ces fonds, car seul celui qui connaît les clés privées peut les envoyer.sans ambiguïté jusqu'à une origine et un destinataire final uniques. Même si deux participants échangent fonds de manière indirecte, une méthode de recherche de chemin correctement conçue révélera l’origine et destinataire final. On soupçonne également que Bitcoin ne satisfait pas à la deuxième propriété. Certains chercheurs a déclaré ([33, 35, 29, 31]) qu'une analyse minutieuse blockchain peut révéler un lien entre les utilisateurs du réseau Bitcoin et leurs transactions. Bien qu'un certain nombre de méthodes soient contesté [25], on soupçonne que de nombreuses informations personnelles cachées peuvent être extraites du base de données publique. L’incapacité de Bitcoin à satisfaire les deux propriétés décrites ci-dessus nous amène à conclure qu’il est il ne s'agit pas d'un système de monnaie électronique anonyme mais pseudo-anonyme. Les utilisateurs ont été rapides à développer solutions pour contourner cette lacune. Deux solutions directes étaient les « services de blanchiment » [2] et le développement de méthodes distribuées [3, 4]. Les deux solutions sont basées sur l'idée du mélange plusieurs transactions publiques et leur envoi via une adresse intermédiaire ; qui à son tour présente l’inconvénient de nécessiter un tiers de confiance. Récemment, un schéma plus créatif a été proposé par I. Miers et al. [28] : « Zérocoin ». Zérocoin utilise des accumulateurs cryptographiques unidirectionnels et des preuves sans connaissance qui permettent aux utilisateurs de « convertissez » les bitcoins en zerocoins et dépensez-les en utilisant une preuve de propriété anonyme au lieu de signatures numériques explicites basées sur une clé publique. Cependant, de telles preuves de connaissances ont une constante mais taille peu pratique - environ 30 Ko (sur la base des limites Bitcoin actuelles), ce qui fait la proposition peu pratique. Les auteurs admettent qu'il est peu probable que le protocole soit un jour accepté par la majorité des Bitcoin utilisateurs [5]. 2.2 La fonction proof-of-work Le créateur de Bitcoin, Satoshi Nakamoto, a décrit l'algorithme de prise de décision majoritaire comme « un processeur, un vote » et a utilisé une fonction de tarification liée au processeur (double SHA-256) pour son proof-of-work. schéma. Étant donné que les utilisateurs votent pour l'ordre d'historique unique des transactions [1], le caractère raisonnable et la cohérence de ce processus sont des conditions critiques pour l’ensemble du système. La sécurité de ce modèle souffre de deux inconvénients. Premièrement, cela nécessite 51 % du réseau la puissance minière doit être sous le contrôle d’utilisateurs honnêtes. Deuxièmement, la progression du système (corrections de bugs, correctifs de sécurité, etc...) nécessitent que l'écrasante majorité des utilisateurs soutiennent et acceptent le changements (cela se produit lorsque les utilisateurs mettent à jour leur logiciel de portefeuille) [6]. Enfin, ce même vote Le mécanisme est également utilisé pour les sondages collectifs sur la mise en œuvre de certaines fonctionnalités [7]. Cela nous permet de conjecturer les propriétés qui doivent être satisfaites par le proof-of-work fonction de tarification. Une telle fonction ne doit pas permettre à un participant au réseau d'avoir un avantage sur un autre participant ; cela nécessite une parité entre le matériel commun et le haut coût des appareils personnalisés. À partir des exemples récents [8], nous pouvons voir que la fonction SHA-256 utilisée dans l'architecture Bitcoin ne possède pas cette propriété car l'exploitation minière devient plus efficace sur GPU et périphériques ASIC par rapport aux processeurs haut de gamme. Par conséquent, Bitcoin crée des conditions favorables à un écart important entre le pouvoir de vote des participants car cela viole le principe « un CPU, une voix » puisque les propriétaires de GPU et d'ASIC possèdent un pouvoir de vote beaucoup plus important par rapport aux propriétaires de processeurs. C'est un exemple classique de Principe de Pareto selon lequel 20 % des participants d’un système contrôlent plus de 80 % des voix. On pourrait affirmer qu’une telle inégalité n’est pas pertinente pour la sécurité du réseau puisqu’elle n’est pas pertinente. le petit nombre de participants contrôlant la majorité des votes mais l'honnêteté de ceux-ci participants qui comptent. Cependant, un tel argument est quelque peu erroné puisqu’il s’agit plutôt du possibilité d’apparition de matériel spécialisé bon marché plutôt que l’honnêteté des participants qui constitue une menace. Pour le démontrer, prenons l’exemple suivant. Supposons qu'un malveillant L’individu acquiert un pouvoir minier significatif en créant sa propre ferme minière grâce à des prix bon marché. 2 sans ambiguïté jusqu'à une origine et un destinataire final uniques. Même si deux participants échangent fonds de manière indirecte, une méthode de recherche de chemin correctement conçue révélera l’origine et destinataire final. On soupçonne également que Bitcoin ne satisfait pas à la deuxième propriété. Certains chercheurs a déclaré ([33, 35, 29, 31]) qu'une analyse minutieuse blockchain peut révéler un lien entre les utilisateurs du réseau Bitcoin et leurs transactions. Bien qu'un certain nombre de méthodes soient réSelon le [25], on soupçonne que de nombreuses informations personnelles cachées peuvent être extraites du base de données publique. L’incapacité de Bitcoin à satisfaire les deux propriétés décrites ci-dessus nous amène à conclure qu’il est il ne s'agit pas d'un système de monnaie électronique anonyme mais pseudo-anonyme. Les utilisateurs ont été rapides à développer solutions pour contourner cette lacune. Deux solutions directes étaient les « services de blanchiment » [2] et le développement de méthodes distribuées [3, 4]. Les deux solutions sont basées sur l'idée du mélange plusieurs transactions publiques et leur envoi via une adresse intermédiaire ; qui à son tour présente l’inconvénient de nécessiter un tiers de confiance. Récemment, un schéma plus créatif a été proposé par I. Miers et al. [28] : « Zérocoin ». Zérocoin utilise des accumulateurs cryptographiques unidirectionnels et des preuves sans connaissance qui permettent aux utilisateurs de « convertissez » les bitcoins en zerocoins et dépensez-les en utilisant une preuve de propriété anonyme au lieu de signatures numériques explicites basées sur une clé publique. Cependant, de telles preuves de connaissances ont une constante mais taille peu pratique - environ 30 Ko (sur la base des limites Bitcoin actuelles), ce qui fait la proposition peu pratique. Les auteurs admettent qu'il est peu probable que le protocole soit un jour accepté par la majorité des Bitcoin utilisateurs [5]. 2.2 La fonction proof-of-work Le créateur de Bitcoin, Satoshi Nakamoto, a décrit l'algorithme de prise de décision majoritaire comme « un processeur, un vote » et a utilisé une fonction de tarification liée au processeur (double SHA-256) pour son proof-of-work. schéma. Étant donné que les utilisateurs votent pour l'ordre unique d'historique des transactions [1], le caractère raisonnable et la cohérence de ce processus sont des conditions critiques pour l’ensemble du système. La sécurité de ce modèle souffre de deux inconvénients. Premièrement, cela nécessite 51 % du réseau la puissance minière doit être sous le contrôle d’utilisateurs honnêtes. Deuxièmement, la progression du système (corrections de bugs, correctifs de sécurité, etc...) nécessitent que l'écrasante majorité des utilisateurs soutiennent et acceptent le changements (cela se produit lorsque les utilisateurs mettent à jour leur logiciel de portefeuille) [6]. Enfin, ce même vote Le mécanisme est également utilisé pour les sondages collectifs sur la mise en œuvre de certaines fonctionnalités [7]. Cela nous permet de conjecturer les propriétés qui doivent être satisfaites par le proof-of-work fonction de tarification. Une telle fonction ne doit pas permettre à un participant au réseau d'avoir un avantage sur un autre participant ; cela nécessite une parité entre le matériel commun et le haut coût des appareils personnalisés. À partir des exemples récents [8], nous pouvons voir que la fonction SHA-256 utilisée dans l'architecture Bitcoin ne possède pas cette propriété car l'exploitation minière devient plus efficace sur GPU et périphériques ASIC par rapport aux processeurs haut de gamme. Par conséquent, Bitcoin crée des conditions favorables à un écart important entre le pouvoir de vote des participants car cela viole le principe « un CPU, une voix » puisque les propriétaires de GPU et d'ASIC possèdent un pouvoir de vote beaucoup plus important par rapport aux propriétaires de processeurs. C'est un exemple classique de Principe de Pareto selon lequel 20 % des participants d’un système contrôlent plus de 80 % des voix. On pourrait affirmer qu’une telle inégalité n’est pas pertinente pour la sécurité du réseau puisqu’elle n’est pas pertinente. le petit nombre de participants contrôlant la majorité des votes mais l'honnêteté de ceux-ci participants qui comptent. Cependant, un tel argument est quelque peu erroné puisqu’il s’agit plutôt du possibilité d’apparition de matériel spécialisé bon marché plutôt que l’honnêteté des participants qui constitue une menace. Pour le démontrer, prenons l’exemple suivant. Supposons qu'un malveillant L’individu acquiert un pouvoir minier significatif en créant sa propre ferme minière grâce à des prix bon marché. 2 4 Vraisemblablement, si chaque utilisateur contribue à son propre anonymat en générant toujours une nouvelle adresse pour CHAQUE paiement reçu (ce qui est absurde mais techniquement la façon "correcte" de le faire), et si chaque utilisateur contribuait à l’anonymat des autres en insistant sur le fait qu’il n’envoie jamais de fonds à la même adresse BTC deux fois, alors Bitcoin ne transmettrait toujours que de manière circonstancielle le test de dissociation. Pourquoi? Les données sur les consommateurs peuvent être utilisées à tout moment pour déterminer une quantité étonnante de choses sur les gens. Voir, par exemple http://www.applieddatalabs.com/content/target-knows-it-shows Maintenant, imaginez que nous soyons dans 20 ans et imaginez encore plus que Target ne savait pas seulement sur vos habitudes d'achat chez Target, mais ils exploitaient le blockchain pendant TOUS VOS ACHATS PERSONNELS AVEC VOTRE PORTEFEUILLE COINBASE POUR LE PASSÉ DOUZE ANS. Ils diront "Hé mon pote, tu voudras peut-être acheter des médicaments contre la toux ce soir, tu ne le feras pas". je me sentirai bien demain." Cela peut ne pas être le cas si le tri multipartite est exploité correctement. Voir par exemple ceciarticle de blog : http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Je ne suis pas totalement convaincu des calculs à ce sujet, mais... un article à la fois, n'est-ce pas ? Citation nécessaire. Alors que le protocole Zerocoin (standalone) peut s'avérer insuffisant, le Zerocash le protocole semble avoir implémenté des transactions de 1 Ko. Ce projet est soutenu par les militaires américains et israéliens, bien sûr, alors qui connaît sa robustesse. De l'autre D’un autre côté, personne ne veut plus pouvoir dépenser des fonds sans surveillance que l’armée. http://zerocash-project.org/ Je ne suis pas convaincu... voir, par exemple, http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Citant un développeur de Cryptonote, Maurice Planck (vraisemblablement un pseudonyme) de la cryptonote forums : "Zérocoin, Zérocash. C’est la technologie la plus avancée, je dois l’admettre. Oui, la citation ci-dessus est issu de l’analyse de la version précédente du protocole. A ma connaissance, ce n'est pas le cas 288, mais 384 octets, mais c'est quand même une bonne nouvelle. Ils ont utilisé une toute nouvelle technique appelée SNARK, qui présente certains inconvénients : par exemple, grande base de données initiale de paramètres publics nécessaires à la création d'une signature (plus de 1 Go) et temps important nécessaire pour créer une transaction (plus d'une minute). Enfin, ils utilisent un jeune crypto, que j'ai mentionné comme étant une idée discutable : https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. jeu. 3 avril 2014 19:56 Une fonction exécutée dans le CPU et qui ne convient pas aux GPU, FPGA ou ASIC calcul. Le « puzzle » utilisé dans proof-of-work est appelé fonction de tarification, fonction de coût ou fonction de puzzle.

sans ambiguïté jusqu'à une origine et un destinataire final uniques. Même si deux participants échangent fonds de manière indirecte, une méthode de recherche de chemin correctement conçue révélera l’origine et destinataire final. On soupçonne également que Bitcoin ne satisfait pas à la deuxième propriété. Certains chercheurs a déclaré ([33, 35, 29, 31]) qu'une analyse minutieuse blockchain peut révéler un lien entre les utilisateurs du réseau Bitcoin et leurs transactions. Bien qu'un certain nombre de méthodes soient contesté [25], on soupçonne que de nombreuses informations personnelles cachées peuvent être extraites du base de données publique. L'incapacité de Bitcoin à satisfaire les deux propriétés décrites ci-dessus nous amène à conclure qu'il est il ne s'agit pas d'un système de monnaie électronique anonyme mais pseudo-anonyme. Les utilisateurs ont été rapides à développer solutions pour contourner cette lacune. Deux solutions directes étaient les « services de blanchiment » [2] et le développement de méthodes distribuées [3, 4]. Les deux solutions sont basées sur l'idée du mélange plusieurs transactions publiques et leur envoi via une adresse intermédiaire ; qui à son tour présente l’inconvénient de nécessiter un tiers de confiance. Récemment, un schéma plus créatif a été proposé par I. Miers et al. [28] : « Zérocoin ». Zérocoin utilise des accumulateurs cryptographiques unidirectionnels et des preuves sans connaissance qui permettent aux utilisateurs de « convertissez » les bitcoins en zerocoins et dépensez-les en utilisant une preuve de propriété anonyme au lieu de signatures numériques explicites basées sur une clé publique. Cependant, de telles preuves de connaissances ont une constante mais taille peu pratique - environ 30 Ko (sur la base des limites Bitcoin actuelles), ce qui fait la proposition peu pratique. Les auteurs admettent qu'il est peu probable que le protocole soit un jour accepté par la majorité des Bitcoin utilisateurs [5]. 2.2 La fonction proof-of-work Le créateur de Bitcoin, Satoshi Nakamoto, a décrit l'algorithme de prise de décision majoritaire comme « un processeur, un vote » et a utilisé une fonction de tarification liée au processeur (double SHA-256) pour son proof-of-work. schéma. Étant donné que les utilisateurs votent pour l'ordre d'historique unique des transactions [1], le caractère raisonnable et la cohérence de ce processus sont des conditions critiques pour l’ensemble du système. La sécurité de ce modèle souffre de deux inconvénients. Premièrement, cela nécessite 51 % du réseau la puissance minière doit être sous le contrôle d’utilisateurs honnêtes. Deuxièmement, la progression du système (corrections de bugs, correctifs de sécurité, etc...) nécessitent que l'écrasante majorité des utilisateurs soutiennent et acceptent le changements (cela se produit lorsque les utilisateurs mettent à jour leur logiciel de portefeuille) [6]. Finalement, ce même vote Le mécanisme est également utilisé pour les sondages collectifs sur la mise en œuvre de certaines fonctionnalités [7]. Cela nous permet de conjecturer les propriétés qui doivent être satisfaites par le proof-of-work fonction de tarification. Une telle fonction ne doit pas permettre à un participant au réseau d'avoir un avantage sur un autre participant ; cela nécessite une parité entre le matériel commun et le haut coût des appareils personnalisés. À partir d'exemples récents [8], nous pouvons voir que la fonction SHA-256 utilisée dans l'architecture Bitcoin ne possède pas cette propriété car l'exploitation minière devient plus efficace sur GPU et périphériques ASIC par rapport aux processeurs haut de gamme. Par conséquent, Bitcoin crée des conditions favorables à un écart important entre le pouvoir de vote des participants car cela viole le principe « un CPU, une voix » puisque les propriétaires de GPU et d'ASIC possèdent un pouvoir de vote beaucoup plus important par rapport aux propriétaires de processeurs. C'est un exemple classique de Principe de Pareto selon lequel 20 % des participants d’un système contrôlent plus de 80 % des voix. On pourrait affirmer qu’une telle inégalité n’est pas pertinente pour la sécurité du réseau puisqu’elle n’est pas pertinente. le petit nombre de participants contrôlant la majorité des votes mais l'honnêteté de ceux-ci participants qui comptent. Cependant, un tel argument est quelque peu erroné puisqu’il s’agit plutôt du possibilité d’apparition de matériel spécialisé bon marché plutôt que l’honnêteté des participants qui constitue une menace. Pour le démontrer, prenons l’exemple suivant. Supposons qu'un malveillant L’individu acquiert un pouvoir minier significatif en créant sa propre ferme minière grâce à des prix bon marché. 2 sans ambiguïté jusqu'à une origine et un destinataire final uniques. Même si deux participants échangent fonds de manière indirecte, une méthode de recherche de chemin correctement conçue révélera l’origine et destinataire final. On soupçonne également que Bitcoin ne satisfait pas à la deuxième propriété. Certains chercheurs a déclaré ([33, 35, 29, 31]) qu'une analyse minutieuse blockchain peut révéler un lien entre les utilisateurs du réseau Bitcoin et leurs transactions. Bien qu'un certain nombre de méthodes soient réSelon [25], on soupçonne que de nombreuses informations personnelles cachées peuvent être extraites du base de données publique. L'incapacité de Bitcoin à satisfaire les deux propriétés décrites ci-dessus nous amène à conclure qu'il est il ne s'agit pas d'un système de monnaie électronique anonyme mais pseudo-anonyme. Les utilisateurs ont été rapides à développer solutions pour contourner cette lacune. Deux solutions directes étaient les « services de blanchiment » [2] et le développement de méthodes distribuées [3, 4]. Les deux solutions sont basées sur l'idée du mélange plusieurs transactions publiques et leur envoi via une adresse intermédiaire ; qui à son tour présente l’inconvénient de nécessiter un tiers de confiance. Récemment, un schéma plus créatif a été proposé par I. Miers et al. [28] : « Zérocoin ». Zérocoin utilise des accumulateurs cryptographiques unidirectionnels et des preuves sans connaissance qui permettent aux utilisateurs de « convertissez » les bitcoins en zerocoins et dépensez-les en utilisant une preuve de propriété anonyme au lieu de signatures numériques explicites basées sur une clé publique. Cependant, de telles preuves de connaissances ont une constante mais taille peu pratique - environ 30 Ko (sur la base des limites Bitcoin actuelles), ce qui fait la proposition peu pratique. Les auteurs admettent qu'il est peu probable que le protocole soit un jour accepté par la majorité des Bitcoin utilisateurs [5]. 2.2 La fonction proof-of-work Le créateur de Bitcoin, Satoshi Nakamoto, a décrit l'algorithme de prise de décision majoritaire comme « un processeur, un vote » et a utilisé une fonction de tarification liée au processeur (double SHA-256) pour son proof-of-work. schéma. Étant donné que les utilisateurs votent pour l'ordre d'historique unique des transactions [1], le caractère raisonnable et la cohérence de ce processus sont des conditions critiques pour l’ensemble du système. La sécurité de ce modèle souffre de deux inconvénients. Premièrement, cela nécessite 51 % du réseau la puissance minière doit être sous le contrôle d’utilisateurs honnêtes. Deuxièmement, la progression du système (corrections de bugs, correctifs de sécurité, etc...) nécessitent que l'écrasante majorité des utilisateurs soutiennent et acceptent le changements (cela se produit lorsque les utilisateurs mettent à jour leur logiciel de portefeuille) [6]. Enfin, ce même vote Le mécanisme est également utilisé pour les sondages collectifs sur la mise en œuvre de certaines fonctionnalités [7]. Cela nous permet de conjecturer les propriétés qui doivent être satisfaites par le proof-of-work fonction de tarification. Une telle fonction ne doit pas permettre à un participant au réseau d'avoir un avantage sur un autre participant ; cela nécessite une parité entre le matériel commun et le haut coût des appareils personnalisés. À partir des exemples récents [8], nous pouvons voir que la fonction SHA-256 utilisée dans l'architecture Bitcoin ne possède pas cette propriété car l'exploitation minière devient plus efficace sur GPU et périphériques ASIC par rapport aux processeurs haut de gamme. Par conséquent, Bitcoin crée des conditions favorables à un écart important entre le pouvoir de vote des participants car cela viole le principe « un CPU, une voix » puisque les propriétaires de GPU et d'ASIC possèdent un pouvoir de vote beaucoup plus important par rapport aux propriétaires de processeurs. C'est un exemple classique de Principe de Pareto selon lequel 20 % des participants d’un système contrôlent plus de 80 % des voix. On pourrait affirmer qu’une telle inégalité n’est pas pertinente pour la sécurité du réseau puisqu’elle n’est pas pertinente. le petit nombre de participants contrôlant la majorité des votes mais l'honnêteté de ceux-ci participants qui comptent. Cependant, un tel argument est quelque peu erroné puisqu’il s’agit plutôt du possibilité d’apparition de matériel spécialisé bon marché plutôt que l’honnêteté des participants qui constitue une menace. Pour le démontrer, prenons l’exemple suivant. Supposons qu'un malveillant L’individu acquiert un pouvoir minier significatif en créant sa propre ferme minière grâce à des prix bon marché. 2 Commentaires à la page 2

تقنية CryptoNote

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

La technologie CryptoNote

Maintenant que nous avons couvert les limites de la technologie Bitcoin, nous allons nous concentrer sur présentant les fonctionnalités de 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. ويبدو أن هذا هو ما يحاولون وصفه. ومع ذلك، هذا لا

Transactions intraçables

Dans cette section, nous proposons un schéma de transactions totalement anonymes satisfaisant à la fois l'intracabilité et les conditions de non-liaison. Une caractéristique importante de notre solution est son autonomie : l'expéditeur n'est pas tenu de coopérer avec d'autres utilisateurs ou un tiers de confiance pour effectuer ses transactions ; chaque participant produit donc indépendamment un trafic de couverture. 4.1 Revue de la littérature Notre schéma repose sur la primitive cryptographique appelée signature de groupe. Présenté pour la première fois par D. Chaum et E. van Heyst [19], il permet à un utilisateur de signer son message au nom du groupe. Après avoir signé le message, l'utilisateur ne fournit (à des fins de vérification) pas son propre public. 1C'est ce qu'on appelle la « limite souple » — la restriction client de référence pour la création de nouveaux blocs. Dur maximum de la taille de bloc possible était de 1 Mo 4 si nécessaire, cela provoque les principaux inconvénients. Malheureusement, il est difficile de prédire quand les constantes devront peut-être être modifiées et leur remplacement peut avoir des conséquences terribles. Un bon exemple de changement de limite codé en dur conduisant à des conséquences désastreuses est le blocage limite de taille fixée à 250 Ko1. Cette limite était suffisante pour contenir environ 10 000 transactions standards. Dans début 2013, cette limite était presque atteinte et un accord a été trouvé pour augmenter le limite. Le changement a été implémenté dans la version 0.8 du portefeuille et s'est terminé par une division de chaîne de 24 blocs. et une attaque réussie de double dépense [9]. Bien que le bug ne soit pas dans le protocole Bitcoin, mais au contraire, dans le moteur de base de données, il aurait pu être facilement détecté par un simple test de résistance s'il y avait eu aucune limite de taille de bloc introduite artificiellement. Les constantes agissent également comme une forme de point de centralisation. Malgré la nature peer-to-peer de Bitcoin, une écrasante majorité de nœuds utilisent le client de référence officiel [10] développé par un petit groupe de personnes. Ce groupe prend la décision de mettre en œuvre des modifications au protocole et la plupart des gens acceptent ces changements indépendamment de leur « exactitude ». Certaines décisions ont provoqué discussions animées et même appels au boycott [11], ce qui indique que la communauté et le les développeurs peuvent être en désaccord sur certains points importants. Il semble donc logique d'avoir un protocole avec des variables configurables par l'utilisateur et auto-ajustables comme moyen possible d'éviter ces problèmes. 2.5 Scripts volumineux Le système de script de Bitcoin est une fonctionnalité lourde et complexe. Cela permet potentiellement de créer transactions sophistiquées [12], mais certaines de ses fonctionnalités sont désactivées en raison de problèmes de sécurité et certains n'ont même jamais été utilisés [13]. Le script (y compris les parties des expéditeurs et des destinataires) pour la transaction la plus populaire en Bitcoin ressemble à ceci : OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Le script fait 164 octets alors que son seul but est de vérifier si le récepteur possède le clé secrète nécessaire pour vérifier sa signature. 3 La technologie CryptoNote Maintenant que nous avons couvert les limites de la technologie Bitcoin, nous allons nous concentrer sur présentant les fonctionnalités de CryptoNote. 4 Transactions intraçables Dans cette section, nous proposons un schéma de transactions totalement anonymes satisfaisant à la fois l'intracabilité et les conditions de non-liaison. Une caractéristique importante de notre solution est son autonomie : l'expéditeur n'est pas tenu de coopérer avec d'autres utilisateurs ou un tiers de confiance pour effectuer ses transactions ; chaque participant produit donc indépendamment un trafic de couverture. 4.1 Revue de la littérature Notre schéma repose sur la primitive cryptographique appelée signature de groupe. Présenté pour la première fois par D. Chaum et E. van Heyst [19], il permet à un utilisateur de signer son message au nom du groupe. Après avoir signé le message, l'utilisateur ne fournit (à des fins de vérification) pas son propre public. 1C'est ce qu'on appelle la « limite souple » — la restriction client de référence pour la création de nouveaux blocs. Dur maximum de la taille de bloc possible était de 1 Mo 4 7 Rétrospectivement, cela semble avoir été une grave erreur de faire de la taille des blocs une limite fixe dans le code. Visa et Mastercard peuvent traiter des milliers, voire des centaines de milliers de transactions par seconde. Cependant, les transactions s'effectuent selon un processus stochastique, parfois par rafales massives, parfois rester silencieux pendant des heures. Pensez au volume des échanges de bitcoins. Cela semble être une excellente idée de concevoir un système qui augmente dynamiquement la taille des blocs lorsque cela est nécessaire pour s'adapter à l'augmentation du trafic de transactions et le diminuer de manière dynamique si nécessaire pour augmenter l’efficacité de la bande passante. Maintenant, appliquez cette notion à tous les paramètres du système. Et tant que nous prenons soin de garder le système de queue de poisson hors de contrôle, ce shça marcherait très bien. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki Comme mentionné précédemment, si les variables s'ajustent automatiquement, certains contrôles doivent être imposés afin de empêcher le système de devenir incontrôlable. Nous y reviendrons. S’il s’agissait d’un article Wikipédia, il serait intitulé « STUB ». Même si nous sommes certainement dans le section présentant les « Problèmes de Bitcoin », j'aimerais avoir quelques précisions ici. Pourquoi 164 octets inacceptables pour une simple tâche de « vérification de la clé secrète » ? Jusqu'à quel point peuvent-ils être petits pour un langage de script raisonnable ? Cependant, je ne suis pas informaticien. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 Les signatures de groupe, telles que décrites, nécessitent un gestionnaire de groupe. Le responsable du groupe est capable de révoquer l'anonymat de tout signataire. Il existe donc une centralisation intrinsèque au sein d’un groupe. schéma de signature.

clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisi d'utiliser le schéma rapide EdDSA, qui est développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisie d'utiliser le schéma rapide EdDSA, développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 8 Une signature en anneau fonctionne comme ceci : Alex veut divulguer un message à WikiLeaks au sujet de son employeur. Chaque collaborateur de son entreprise dispose d'une paire de clés privée/publique (Ri, Ui). Elle compose sa signature avec l'entrée définie comme son message, m, sa clé privée, Ri et celle de TOUT LE MONDE clés publiques, (Ui;i=1...n). N'importe qui (sans connaître de clés privées) peut facilement vérifier que quelque couple (Rj, Uj) a dû être utilisé pour construire la signature... quelqu'un qui travaille pour l’employeur d’Alex… mais il s’agit essentiellement d’une estimation aléatoire pour déterminer de laquelle il s’agit. 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 Notez qu'une signature en anneau pouvant être liée décrite ici est un peu à l'opposé de "non liée". décrit ci-dessus. Ici, nous interceptons deux messages et nous pouvons déterminer si le même parti les a envoyés, même si nous ne devrions toujours pas être en mesure de déterminer qui est ce parti. Le La définition de « non-liable » utilisée pour construire Cryptonote signifie que nous ne pouvons pas déterminer si c'est le même parti qui les reçoit. Par conséquent, ce que nous avons réellement ici, ce sont QUATRE choses qui se passent. Un système peut être lié ou non associable, selon qu'il est possible ou non de déterminer si l'expéditeur du message deux messages sont identiques (que cela nécessite ou non la révocation de l'anonymat). Et un système peut être dissociable ou non, selon qu'il est possible ou non de déterminer si le destinataire de deux messages est le même (indépendamment du fait que cela nécessite la révocation de l'anonymat). S’il vous plaît, ne me blâmez pas pour cette terrible terminologie. Les théoriciens des graphes devraient probablement être content. Certains d'entre vous seront peut-être plus à l'aise avec « liaison entre le récepteur » et avec « liaison avec l'expéditeur ». http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Quand j'ai lu ceci, cela m'a semblé une fonctionnalité idiote. Puis j'ai lu que cela pouvait être une fonctionnalité pour vote électronique, et cela semblait logique. Plutôt cool, de ce point de vue. Mais je suis pas totalement sûr de mettre en œuvre délibérément des signatures en anneau traçables. http://search.ieice.org/bin/summary.php?id=e95-a_1_151

clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisi d'utiliser le schéma rapide EdDSA, qui est développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisie d'utiliser le schéma rapide EdDSA, développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 9 Mon Dieu, l’auteur de ce livre blanc aurait certainement pu mieux formuler cela ! Disons qu'un l'entreprise détenue par ses salariés souhaite procéder à un vote sur l'acquisition ou non de certains nouveaux actifs, et Alex et Brenda sont tous deux employés. La Société offre à chaque employé un message comme "Je vote oui sur la proposition A!" qui a le "problème" de métainformation [PROP A] et leur demande de le signer avec une signature en anneau traçable s'ils soutiennent la proposition. En utilisant une signature en anneau traditionnelle, un employé malhonnête peut signer le message plusieurs fois, probablement avec différents nonce, afin de voter autant de fois qu'ils le souhaitent. De l'autre D'un autre côté, dans un système de signature en anneau traçable, Alex ira voter et sa clé privée aura été utilisé sur la question [PROP A]. Si Alex essaie de signer un message comme "Moi, Brenda, j'approuve proposition A!" pour "cadrer" Brenda et doubler le vote, ce nouveau message aura aussi de l'enjeu [PROPRIÉTÉ A]. Puisque la clé privée d'Alex a déjà déclenché le problème [PROP A], l'identité d'Alex sera immédiatement révélé comme une fraude. Ce qui, avouons-le, est plutôt cool ! La cryptographie a imposé l’égalité des votes. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Cet article est intéressant, car il crée essentiellement une signature en anneau ad hoc mais sans aucun des le consentement de l’autre participant. La structure de la signature peut être différente ; je n'ai pas creusé profond, et je n’ai pas vu si c’est sécurisé. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Les signatures des groupes ad hoc sont : les signatures en anneau, qui sont des signatures de groupe sans groupe gestionnaires, pas de centralisation, mais permet à un membre d'un groupe ad hoc de prétendre de manière prouvée que il n'a (pas) émis la signature anonyme au nom du groupe. http://link.springer.com/chapter/10.1007/11908739_9 Ce n’est pas tout à fait exact, d’après ma compréhension. Et ma compréhension changera probablement à mesure que J'approfondis ce projet. Mais d'après ma compréhension, la hiérarchie ressemble à ceci. Signatures de groupe : les gestionnaires de groupe contrôlent la traçabilité et la possibilité d'ajouter ou de supprimer des membres d'être signataires. Ring sigs : Formation de groupe arbitraire sans chef de groupe. Pas de révocation de l'anonymat. Pas question de se répudier d'une signature particulière. Avec anneau traçable et connectable signatures, l'anonymat est quelque peu évolutif. Signatures de groupe ad hoc : comme les signatures en anneau, mais les membres peuvent prouver qu'ils n'ont pas créé une signature particulière. Ceci est important lorsque n’importe qui dans un groupe peut produire une signature. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 L'algorithme de Fujisaki et Suzuki est modifié plus tard par l'auteur pour fournir un caractère unique. Alors nous analyserons l'algorithme de Fujisaki et Suzuki en même temps que le nouvel algorithme plutôt que de le parcourir ici.

clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisi d'utiliser le schéma rapide EdDSA, qui est développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 clé, mais les clés de tous les utilisateurs de son groupe. Un vérificateur est convaincu que le véritable signataire est un membre du groupe, mais ne peut identifier exclusivement le signataire. Le protocole initial nécessitait un tiers de confiance (appelé le gestionnaire de groupe), et il était le seul à pouvoir retrouver le signataire. La version suivante appelée signature en anneau, introduite par Rivest et coll. en [34], était un système autonome sans gestionnaire de groupe et sans anonymat révocation. Diverses modifications de ce schéma sont apparues plus tard : signature en anneau connectable [26, 27, 17] a permis de déterminer si deux signatures ont été produites par le même membre du groupe, traçables la signature en anneau [24, 23] limitait l'anonymat excessif en offrant la possibilité de retrouver le signataire de deux messages concernant la même métainformation (ou « tag » en termes de [24]). Une construction cryptographique similaire est également connue sous le nom de signature de groupe ad hoc [16, 38]. Il met l'accent sur la formation arbitraire de groupes, alors que les schémas de signature de groupe/anneau impliquent plutôt une ensemble fixe de membres. Pour l’essentiel, notre solution s’appuie sur l’ouvrage « Traceable ring signature » de E. Fujisaki et K. Suzuki [24]. Afin de distinguer l'algorithme original de notre modification, nous allons appelons cette dernière une signature en anneau à usage unique, soulignant la capacité de l'utilisateur à produire une seule signature valide. signature sous sa clé privée. Nous avons affaibli la propriété de traçabilité et conservé la possibilité de liaison uniquement pour fournir un caractère unique : la clé publique peut apparaître dans de nombreux ensembles de vérification étrangers et le la clé privée peut être utilisée pour générer une signature anonyme unique. En cas de double dépense tentative, ces deux signatures seront liées entre elles, mais il n'est pas nécessaire de révéler le signataire à nos fins. 4.2 Définitions 4.2.1 Paramètres de courbe elliptique Comme algorithme de signature de base, nous avons choisie d'utiliser le schéma rapide EdDSA, développé et mis en œuvre par D.J. Bernstein et coll. [18]. Comme l'ECDSA de Bitcoin, il est basé sur la courbe elliptique problème de logarithme discret, notre schéma pourrait donc également être appliqué à Bitcoin à l'avenir. Les paramètres courants sont : q : un nombre premier ; q = 2255 −19 ; d : un élément de Fq ; d = −121665/121666 ; E : une équation de courbe elliptique ; −x2 + y2 = 1 + dx2y2 ; G : un point de base ; G = (x, −4/5); l : un ordre premier du point de base ; l = 2252 + 27742317777372353535851937790883648493 ; Hs : une fonction cryptographique hash \(\{0, 1\}^* \to \mathbb{F}_q\) ; Hp : une fonction déterministe hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie La confidentialité renforcée nécessite une nouvelle terminologie qui ne doit pas être confondue avec les entités Bitcoin. la clé ec privée est une clé privée à courbe elliptique standard : un nombre \(a \in [1, l - 1]\) ; la clé ec publique est une clé publique à courbe elliptique standard : un point A = aG ; une paire de clés à usage unique est une paire de clés électroniques privées et publiques ; 5 10 La liaison au sens de « signatures en anneau pouvant être liées » signifie que nous pouvons savoir si deux transactions sortantes proviennent de la même source sans révéler qui est la source. Les auteurs affaiblis possibilité de lien afin de (a) préserver la confidentialité, mais toujours (b) repérer toute transaction utilisant une clé privée une seconde fois comme invalide. D'accord, c'est donc une question d'ordre des événements. Considérez le scénario suivant. Mon exploitation minière l'ordinateur aura le blockchain actuel, il aura son propre bloc de transactions qu'il appelle légitime, il travaillera sur ce bloc dans un puzzle proof-of-work, et il aura un liste des transactions en attente à ajouter au bloc suivant. Il enverra également tout nouveau transactions dans ce pool de transactions en attente. Si je ne résous pas le bloc suivant, mais quelqu'un d'autre le fait, je reçois une copie mise à jour du blockchain. Le bloc sur lequel je travaillais et ma liste de transactions en attente peut contenir toutes deux des transactions qui sont maintenant incorporées dans le blockchain. Démêlez mon bloc en attente, combinez-le avec ma liste de transactions en attente et appelez-le mon pool de transactions en attente. Supprimez ceux qui se trouvent maintenant officiellement dans le blockchain. Maintenant, que dois-je faire ? Dois-je d'abord passer par « supprimer toutes les doubles dépenses » ? De l'autre D'autre part, dois-je parcourir la liste et m'assurer que chaque clé privée n'a pas encore été utilisé, et s'il a déjà été utilisé dans ma liste, alors j'ai reçu le premier exemplaire en premier, et donc toute autre copie est illégitime. Ainsi, je supprime simplement toutes les instances après la première de la même clé privée. La géométrie algébrique n’a jamais été mon point fort. http://en.wikipedia.org/wiki/EdDSA Une telle vitesse, vraiment wow. C'est la géométrie algébrique pour la victoire. Non pas que je sache quoi que ce soit à ce sujet. Problématique ou non, les journaux discrets deviennent très rapides. Et les ordinateurs quantiques les mangent pour le petit déjeuner. http://link.springer.com/article/10.1007/s13389-012-0027-1 Cela devient un nombre vraiment important, mais il n'y a aucune explication ni citation sur la manière dont il est obtenu. a été choisi. Choisir simplement un seul grand nombre premier connu serait bien, mais s'il y a des nombres premiers connus des faits sur ce grand nombre premier, qui pourraient influencer notre choix. Différentes variantes de cryptonote pourrait choisir différentes valeurs de eh bien, mais il n'y a aucune discussion dans cet article sur la façon dont cela Ce choix affectera nos choix d’autres paramètres globaux répertoriés à la page 5. Cet article nécessite une section sur le choix des valeurs des paramètres.

la clé d'utilisateur privée est une paire (a, b) de deux clés ec privées différentes ; la clé de suivi est une paire (a, B) de clés ec privées et publiques (où B = bG et a ̸ = b) ; la clé publique d'utilisateur est une paire (A, B) de deux clés ec publiques dérivées de (a, b) ; l'adresse standard est une représentation d'une clé d'utilisateur publique donnée dans une chaîne conviviale avec correction d'erreurs ; l'adresse tronquée est une représentation de la seconde moitié (point B) d'une clé d'utilisateur publique donnée en chaîne conviviale avec correction d’erreur. La structure de la transaction reste similaire à celle de Bitcoin : chaque utilisateur peut choisir plusieurs encaissements indépendants (sorties d'opérations), signez-les avec le code correspondant clés privées et les envoyer à différentes destinations. Contrairement au modèle de Bitcoin, où un utilisateur possède une clé privée et publique unique, dans le cas modèle proposé, un expéditeur génère une clé publique unique basée sur l'adresse du destinataire et quelques données aléatoires. En ce sens, une transaction entrante pour le même destinataire est envoyée à un clé publique unique (pas directement à une adresse unique) et seul le destinataire peut récupérer la partie privée correspondante pour racheter ses fonds (en utilisant sa clé privée unique). Le destinataire peut dépenser les fonds en utilisant une signature en anneau, en gardant anonymes sa propriété et ses dépenses réelles. Les détails du protocole sont expliqués dans les sous-sections suivantes. 4.3 Paiements non liés Les adresses classiques Bitcoin, une fois publiées, deviennent un identifiant sans ambiguïté pour les paiements, en les reliant entre eux et en les liant aux pseudonymes du destinataire. Si quelqu'un veut reçoit une transaction « déliée », il doit transmettre son adresse à l'expéditeur par un canal privé. \(S'\)il souhaite recevoir différentes transactions dont il ne peut être prouvé qu'elles appartiennent au même propriétaire il doit générer toutes les différentes adresses et ne jamais les publier sous son propre pseudonyme. Publique Privé Alice Carole Adresse de Bob 1 Adresse de Bob 2 La clé de Bob 1 La clé de Bob 2 Bob Fig. 2. Modèle traditionnel de clés/transactions Bitcoin. Nous proposons une solution permettant à un utilisateur de publier une adresse unique et de recevoir des paiements non liés. La destination de chaque sortie CryptoNote (par défaut) est une clé publique, dérivé de l’adresse du destinataire et des données aléatoires de l’expéditeur. Le principal avantage contre Bitcoin est que chaque clé de destination est unique par défaut (sauf si l'expéditeur utilise les mêmes données pour chaque clé). de ses transactions vers le même destinataire). Il n’existe donc pas de problème de « réutilisation des adresses » par conception et aucun observateur ne peut déterminer si des transactions ont été envoyées à une adresse ou un lien spécifique deux adresses ensemble. 6 la clé d'utilisateur privée est une paire (a, b) de deux clés ec privées différentes ; la clé de suivi est une paire (a, B) de clés ec privées et publiques (où B = bG et a ̸ = b) ; la clé publique d'utilisateur est une paire (A, B) de deux clés ec publiques dérivées de (a, b) ; l'adresse standard est une représentation d'une clé d'utilisateur publique donnée dans une chaîne conviviale avec correction d'erreurs ; l'adresse tronquée est une représentation de la seconde moitié (point B) d'une clé d'utilisateur publique donnée en chaîne conviviale avec correction d’erreur. La structure de la transaction reste similaire à celle de Bitcoin : chaque utilisateur peut choisir plusieurs encaissements indépendants (sorties d'opérations), signez-les avec le code correspondant clés privées et les envoyer à différentes destinations. Contrairement au modèle de Bitcoin, où un utilisateur possède une clé privée et publique unique, dans le cas modèle proposé, un expéditeur génère une clé publique unique basée sur l'adresse du destinataire et quelques données aléatoires. En ce sens, une transaction entrante pour le même destinataire est envoyée à un clé publique unique (pas directement à une adresse unique) et seul le destinataire peut récupérer la partie privée correspondante pour racheter ses fonds (en utilisant sa clé privée unique). Le destinataire peut dépenser les fonds en utilisant une signature en anneau, en gardant anonymes sa propriété et ses dépenses réelles. Les détails du protocole sont expliqués dans les sous-sections suivantes. 4.3 Paiements non liés Les adresses classiques Bitcoin, une fois publiées, deviennent un identifiant sans ambiguïté pour les paiements, en les reliant entre eux et en les liant aux pseudonymes du destinataire. Si quelqu'un veut reçoit une transaction « déliée », il doit transmettre son adresse à l'expéditeur par un canal privé. \(S'\)il souhaite recevoir différentes transactions dont il ne peut être prouvé qu'elles appartiennent au même propriétaire il doit générer toutes les différentes adresses et ne jamais les publier sous son propre pseudonyme. Publique Privé Alice Carole Adresse de Bob 1 Adresse de Bob 2 La clé de Bob 1 La clé de Bob 2 Bob Fig. 2. Mod traditionnel de clés/transactions Bitcoinél. Nous proposons une solution permettant à un utilisateur de publier une adresse unique et de recevoir des paiements non liés. La destination de chaque sortie CryptoNote (par défaut) est une clé publique, dérivé de l’adresse du destinataire et des données aléatoires de l’expéditeur. Le principal avantage contre Bitcoin est que chaque clé de destination est unique par défaut (sauf si l'expéditeur utilise les mêmes données pour chaque clé). de ses transactions vers le même destinataire). Il n’existe donc pas de problème de « réutilisation des adresses » par conception et aucun observateur ne peut déterminer si des transactions ont été envoyées à une adresse ou un lien spécifique deux adresses ensemble. 6 11 C'est donc comme Bitcoin, mais avec des boîtes postales infinies et anonymes, échangeables uniquement par le destinataire. générer une clé privée aussi anonyme qu'une signature en anneau peut l'être. Bitcoin fonctionne de cette façon. Si Alex a 0,112 Bitcoin dans son portefeuille qu'elle vient de recevoir de Frank, elle a en réalité un message "Je, [FRANK], envoie 0,112 Bitcoin à [alex] + H0 + N0" où 1) Frank a signé le message avec sa clé privée [FRANK], 2) Frank a signé le message avec la clé publique d'Alex clé, [alex], 3) Frank a inclus une certaine forme de l'histoire du bitcoin, H0, et 4) Frank comprend un bit de données aléatoire appelé nonce, N0. Si Alex veut alors envoyer 0,011 Bitcoin à Charlene, elle prendra le message de Frank, et elle définira cela sur H1 et signera deux messages : un pour sa transaction et un pour le changement. H1= "Je, [FRANK], envoie 0,112 Bitcoin à [alex] + H0 + N" "Je, [ALEX], envoie 0,011 Bitcoin à [charlene] + H1 + N1" "Je, [ALEX], envoie 0,101 Bitcoin comme changement à [alex] + H1 + N2." où Alex signe les deux messages avec sa clé privée [ALEX], le premier message avec celle de Charlene clé publique [charlene], le deuxième message avec la clé publique d'Alex [alex], et incluant la historiques et certains nonces N1 et N2 générés aléatoirement de manière appropriée. Cryptonote fonctionne de cette façon : Si Alex a 0,112 Cryptonote dans son portefeuille qu'elle vient de recevoir de Frank, elle a en réalité un message "Je, [quelqu'un dans un groupe ad hoc], envoie 0,112 Cryptonote à [une adresse unique] + H0 +N0." Alex a découvert qu'il s'agissait de son argent en vérifiant sa clé privée [ALEX] [une adresse unique] pour chaque message qui passe, et si elle souhaite le dépenser, elle le fait en de la manière suivante. Elle choisit un destinataire de l'argent, peut-être que Charlene a commencé à voter pour les frappes de drones, alors Alex veut plutôt envoyer de l'argent à Brenda. Alors Alex recherche la clé publique de Brenda, [brenda], et utilise sa propre clé privée, [ALEX], pour générer une adresse unique [ALEX+brenda]. Elle puis choisit une collection arbitraire C parmi le réseau d'utilisateurs de cryptonotes et elle construit une signature circulaire de ce groupe ad hoc. Nous définissons notre historique comme message précédent, ajoutons nonces, et procéder comme d'habitude ? H1 = "Je, [quelqu'un dans un groupe ad hoc], envoie 0,112 Cryptonote à [une adresse unique] + H0 +N0." "Moi, [quelqu'un dans la collection C], j'envoie 0,011 Cryptonote à [adresse unique-faite-à partir d'ALEX+brenda] + H1 + N1" "Moi, [quelqu'un dans la collection C], j'envoie 0,101 Cryptonote en guise de modification à [one-time-address-madefrom-ALEX+alex] + H1 + N2" Désormais, Alex et Brenda analysent tous les deux tous les messages entrants à la recherche d'adresses uniques qui étaient créé à l’aide de leur clé. \(S'\)ils en trouvent, alors ce message est leur propre marque. cryptonote! Et même dans ce cas, la transaction atteindra toujours le blockchain. Si les pièces entrant dans cette adresse sont connus pour être envoyés par des criminels, des contributeurs politiques ou des comités et des comptes avec des budgets stricts (c'est-à-dire détournement de fonds), ou si le nouveau propriétaire de ces pièces commet une erreur et envoie ces pièces à une adresse commune avec les pièces qu'il est connu pour posséder, le gabarit d'anonymat est en hausse en Bitcoin.

la clé d'utilisateur privée est une paire (a, b) de deux clés ec privées différentes ; la clé de suivi est une paire (a, B) de clés ec privées et publiques (où B = bG et a ̸ = b) ; la clé publique d'utilisateur est une paire (A, B) de deux clés ec publiques dérivées de (a, b) ; l'adresse standard est une représentation d'une clé d'utilisateur publique donnée dans une chaîne conviviale avec correction d'erreurs ; l'adresse tronquée est une représentation de la seconde moitié (point B) d'une clé d'utilisateur publique donnée en chaîne conviviale avec correction d’erreur. La structure de la transaction reste similaire à celle de Bitcoin : chaque utilisateur peut choisir plusieurs encaissements indépendants (sorties d'opérations), signez-les avec le code correspondant clés privées et les envoyer à différentes destinations. Contrairement au modèle de Bitcoin, où un utilisateur possède une clé privée et publique unique, dans le cas modèle proposé, un expéditeur génère une clé publique unique basée sur l'adresse du destinataire et quelques données aléatoires. En ce sens, une transaction entrante pour le même destinataire est envoyée à un clé publique unique (pas directement à une adresse unique) et seul le destinataire peut récupérer la partie privée correspondante pour racheter ses fonds (en utilisant sa clé privée unique). Le destinataire peut dépenser les fonds en utilisant une signature en anneau, en gardant anonymes sa propriété et ses dépenses réelles. Les détails du protocole sont expliqués dans les sous-sections suivantes. 4.3 Paiements non liés Les adresses classiques Bitcoin, une fois publiées, deviennent un identifiant sans ambiguïté pour les paiements, en les reliant entre eux et en les liant aux pseudonymes du destinataire. Si quelqu'un veut reçoit une transaction « déliée », il doit transmettre son adresse à l'expéditeur par un canal privé. \(S'\)il souhaite recevoir différentes transactions dont il ne peut être prouvé qu'elles appartiennent au même propriétaire il doit générer toutes les différentes adresses et ne jamais les publier sous son propre pseudonyme. Publique Privé Alice Carole Adresse de Bob 1 Adresse de Bob 2 La clé de Bob 1 La clé de Bob 2 Bob Fig. 2. Modèle traditionnel de clés/transactions Bitcoin. Nous proposons une solution permettant à un utilisateur de publier une adresse unique et de recevoir des paiements non liés. La destination de chaque sortie CryptoNote (par défaut) est une clé publique, dérivé de l’adresse du destinataire et des données aléatoires de l’expéditeur. Le principal avantage contre Bitcoin est que chaque clé de destination est unique par défaut (sauf si l'expéditeur utilise les mêmes données pour chaque clé). de ses transactions vers le même destinataire). Il n’existe donc pas de problème de « réutilisation des adresses » par conception et aucun observateur ne peut déterminer si des transactions ont été envoyées à une adresse ou un lien spécifique deux adresses ensemble. 6 la clé d'utilisateur privée est une paire (a, b) de deux clés ec privées différentes ; la clé de suivi est une paire (a, B) de clés ec privées et publiques (où B = bG et a ̸ = b) ; la clé publique d'utilisateur est une paire (A, B) de deux clés ec publiques dérivées de (a, b) ; l'adresse standard est une représentation d'une clé d'utilisateur publique donnée dans une chaîne conviviale avec correction d'erreurs ; l'adresse tronquée est une représentation de la seconde moitié (point B) d'une clé d'utilisateur publique donnée en chaîne conviviale avec correction d’erreur. La structure de la transaction reste similaire à celle de Bitcoin : chaque utilisateur peut choisir plusieurs encaissements indépendants (sorties d'opérations), signez-les avec le code correspondant clés privées et les envoyer à différentes destinations. Contrairement au modèle de Bitcoin, où un utilisateur possède une clé privée et publique unique, dans le cas modèle proposé, un expéditeur génère une clé publique unique basée sur l'adresse du destinataire et quelques données aléatoires. En ce sens, une transaction entrante pour le même destinataire est envoyée à un clé publique unique (pas directement à une adresse unique) et seul le destinataire peut récupérer la partie privée correspondante pour racheter ses fonds (en utilisant sa clé privée unique). Le destinataire peut dépenser les fonds en utilisant une signature en anneau, en gardant anonymes sa propriété et ses dépenses réelles. Les détails du protocole sont expliqués dans les sous-sections suivantes. 4.3 Paiements non liés Les adresses classiques Bitcoin, une fois publiées, deviennent un identifiant sans ambiguïté pour les paiements, en les reliant entre eux et en les liant aux pseudonymes du destinataire. Si quelqu'un veut reçoit une transaction « déliée », il doit transmettre son adresse à l'expéditeur par un canal privé. \(S'\)il souhaite recevoir différentes transactions dont il ne peut être prouvé qu'elles appartiennent au même propriétaire il doit générer toutes les différentes adresses et ne jamais les publier sous son propre pseudonyme. Publique Privé Alice Carole Adresse de Bob 1 Adresse de Bob 2 La clé de Bob 1 La clé de Bob 2 Bob Fig. 2. Mod traditionnel de clés/transactions Bitcoinél. Nous proposons une solution permettant à un utilisateur de publier une adresse unique et de recevoir des paiements non liés. La destination de chaque sortie CryptoNote (par défaut) est une clé publique, dérivé de l’adresse du destinataire et des données aléatoires de l’expéditeur. Le principal avantage contre Bitcoin est que chaque clé de destination est unique par défaut (sauf si l'expéditeur utilise les mêmes données pour chaque clé). de ses transactions vers le même destinataire). Il n’existe donc pas de problème de « réutilisation des adresses » par conception et aucun observateur ne peut déterminer si des transactions ont été envoyées à une adresse ou un lien spécifique deux adresses ensemble. 6 12 Par conséquent, plutôt que d’envoyer des pièces depuis une adresse (qui est en réalité une clé publique) vers une adresse (une autre clé publique) en utilisant leurs clés privées, les utilisateurs envoient des pièces depuis une boîte postale unique (qui génère en utilisant la clé publique de vos amis) vers une boîte postale unique (de la même manière) en utilisant votre propres clés privées. Dans un sens, nous disons : « D'accord, tout le monde ne met pas la main sur l'argent pendant qu'il est en cours. transféré! Il suffit simplement de savoir que nos clés peuvent ouvrir cette boîte et que nous savons combien d'argent il y a dans la boîte. Ne mettez jamais vos empreintes digitales sur la boîte postale ou Pour l'utiliser réellement, échangez simplement la boîte remplie d'argent liquide elle-même. De cette façon, nous ne savons pas qui a envoyé quoi, mais le contenu de ces discours publics est toujours sans friction, fongible, divisible et possèdent toujours toutes les autres belles qualités d’argent que nous désirons, comme le bitcoin. » Un ensemble infini de boîtes postales. Vous publiez une adresse, j'ai une clé privée. J'utilise ma clé privée et votre adresse, et quelques données aléatoires, pour générer une clé publique. L'algorithme est conçu de telle sorte que, puisque votre L'adresse a été utilisée pour générer la clé publique, seule VOTRE clé privée fonctionne pour déverrouiller le message. Une observatrice, Eve, vous voit publier votre adresse, et voit la clé publique que j'annonce. Cependant, elle ne sait pas si j'ai annoncé ma clé publique en fonction de votre adresse, de la sienne ou de celle de Brenda ou celui de Charlene, ou celui de qui que ce soit. Elle vérifie sa clé privée avec la clé publique que j'ai annoncée et voit que ça ne marche pas ; ce n'est pas son argent. Elle ne connaît la clé privée de personne d’autre, et seul le destinataire du message possède la clé privée permettant de déverrouiller le message. Donc personne écouter peut déterminer qui a reçu l’argent et encore moins prendre l’argent.

Publique Privé Alice Carole Clé à usage unique Clé à usage unique Clé à usage unique Bob La clé de Bob L'adresse de Bob Fig. 3. Modèle de clés/transactions CryptoNote. Tout d'abord, l'expéditeur effectue un échange Diffie-Hellman pour obtenir un secret partagé à partir de ses données et la moitié de l’adresse du destinataire. Il calcule ensuite une clé de destination unique, en utilisant la clé partagée secret et la seconde moitié de l'adresse. Deux clés EC différentes sont requises du destinataire pour ces deux étapes, une adresse CryptoNote standard est donc presque deux fois plus grande qu'un portefeuille Bitcoin adresse. Le récepteur effectue également un échange Diffie-Hellman pour récupérer le signal correspondant. clé secrète. Une séquence de transaction standard se déroule comme suit : 1. Alice souhaite envoyer un paiement à Bob, qui a publié son adresse standard. Elle décompresse l'adresse et obtient la clé publique de Bob (A, B). 2. Alice génère un \(r \in [1, l - 1]\) aléatoire et calcule une clé publique unique \(P = H_s(rA)G +\) B. 3. Alice utilise P comme clé de destination pour la sortie et regroupe également la valeur R = rG (dans le cadre d'une partie de la bourse Diffie-Hellman) quelque part dans la transaction. Notez qu'elle peut créer autres sorties avec des clés publiques uniques : les clés de différents destinataires (Ai, Bi) impliquent des Pi différents même avec le même r. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination R = rG P = Hs(rA)G + B Le récepteur clé publique Données aléatoires de l'expéditeur r (A, B) Figure 4. Structure de transaction standard. 4. Alice envoie la transaction. 5. Bob vérifie chaque transaction qui passe avec sa clé privée (a, b) et calcule P ′ = Hs(aR)G + B. Si la transaction d’Alice avec Bob comme destinataire en faisait partie, alors aR = arG = rA et P′ = P. 7 Publique Privé Alice Carole Clé à usage unique Clé à usage unique Clé à usage unique Bob La clé de Bob L'adresse de Bob Fig. 3. Modèle de clés/transactions CryptoNote. Tout d'abord, l'expéditeur effectue un échange Diffie-Hellman pour obtenir un secret partagé à partir de ses données et la moitié de l’adresse du destinataire. Il calcule ensuite une clé de destination unique, en utilisant la clé partagée secret et la seconde moitié de l'adresse. Deux clés EC différentes sont requises du destinataire pour ces deux étapes, une adresse CryptoNote standard est donc presque deux fois plus grande qu'un portefeuille Bitcoin adresse. Le récepteur effectue également un échange Diffie-Hellman pour récupérer le signal correspondant. clé secrète. Une séquence de transaction standard se déroule comme suit : 1. Alice souhaite envoyer un paiement à Bob, qui a publié son adresse standard. Elle décompresse l'adresse et obtient la clé publique de Bob (A, B). 2. Alice génère un \(r \in [1, l - 1]\) aléatoire et calcule une clé publique unique \(P = H_s(rA)G +\) B. 3. Alice utilise P comme clé de destination pour la sortie et regroupe également la valeur R = rG (dans le cadre d'une partie de la bourse Diffie-Hellman) quelque part dans la transaction. Notez qu'elle peut créer autres sorties avec des clés publiques uniques : les clés de différents destinataires (Ai, Bi) impliquent des Pi différents même avec le même r. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination R = rG P = Hs(rA)G + B Le récepteur clé publique Données aléatoires de l'expéditeur r (A, B) Figure 4. Structure de transaction standard. 4. Alice envoie la transaction. 5. Bob vérifie chaque transaction qui passe avec sa clé privée (a, b) et calcule P ′ = Hs(aR)G + B. Si la transaction d’Alice avec Bob comme destinataire en faisait partie, alors aR = arG = rA et P′ = P. 7 13 Je me demande à quel point ce serait pénible de mettre en œuvre un choix de cryptographie schéma. Elliptique ou autre. Ainsi, si un système est brisé à l'avenir, la devise change sans souci. Probablement un gros emmerdeur. D'accord, c'est exactement ce que je viens d'expliquer dans mon commentaire précédent. Le type Diffie-Hellman les échanges sont soignés. Disons qu'Alex et Brenda ont chacun un numéro secret, A et B, et un numéro ils ne se soucient pas de garder le secret, a et b. Ils souhaitent générer un secret partagé sans Eva le découvre. Diffie et Hellman ont trouvé un moyen pour qu'Alex et Brenda partagent les numéros publics a et b, mais pas les numéros privés A et B, et générer un secret partagé, K. En utilisant ce secret partagé, K, sans qu'aucune Eva ne l'écoute pour pouvoir générer le même K, Alex et Brenda peuvent désormais utiliser K comme clé de cryptage secrète et renvoyer des messages secrets et en avant. Voici comment cela PEUT fonctionner, même si cela devrait fonctionner avec des nombres beaucoup plus grands que 100. Nous utiliserons 100 car travailler sur les entiers modulo 100 équivaut à "jeter tout mais les deux derniers chiffres d'un nombre. Alex et Brenda choisissent chacun A, a, B et b. Ils gardent A et B secrets. Alex dit à Brenda sa valeur d'un modulo 100 (juste les deux derniers chiffres) et Brenda le dit à Alex. sa valeur de b modulo 100. Maintenant Eva connaît (a,b) modulo 100. Mais Alex sait (a,b,A) donc elle peut calculer x=abA modulo 100.Alex coupe tous les chiffres sauf le dernier parce qu'on travaille sous les entiers modulo 100 à nouveau. De même, Brenda connaît (a,b,B) donc elle peut calculer y=abB modulo 100. Alex peut désormais publier x et Brenda peut publier y. Mais maintenant, Alex peut calculer yA = abBA modulo 100, et Brenda peut calculer xB. = abBA modulo 100. Ils connaissent tous les deux le même numéro ! Mais tout ce qu'Eva a entendu, c'est (une,b,unebUNE,unebB). Elle n’a pas de moyen simple de calculer abA*B. C’est la manière la plus simple et la moins sûre d’envisager l’échange Diffie-Hellman. Des versions plus sécurisées existent. Mais la plupart des versions fonctionnent car la factorisation entière et discrète les logarithmes sont difficiles, et ces deux problèmes sont facilement résolus par les ordinateurs quantiques. Je vérifierai s’il existe des versions résistantes au quantique. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Il manque tout un tas d'étapes dans la "séquence txn standard" répertoriée ici, comme les SIGNATURES. Ici, ils sont simplement tenus pour acquis. Ce qui est vraiment dommage, car l'ordre dans lequel nous les trucs de signature, les informations incluses dans le message signé, et ainsi de suite... tout cela est extrêmement important pour le protocole. Se tromper sur une ou deux étapes, même légèrement dans le désordre, tout en mettant en œuvre « le séquence de transactions standard" pourrait remettre en question la sécurité de l'ensemble du système. De plus, les preuves présentées plus loin dans cet article risquent de ne pas être suffisamment rigoureuses si le Le cadre dans lequel ils travaillent est aussi vaguement défini que dans cette section.

Publique Privé Alice Carole Clé à usage unique Clé à usage unique Clé à usage unique Bob La clé de Bob L'adresse de Bob Fig. 3. Modèle de clés/transactions CryptoNote. Tout d'abord, l'expéditeur effectue un échange Diffie-Hellman pour obtenir un secret partagé à partir de ses données et la moitié de l’adresse du destinataire. Il calcule ensuite une clé de destination unique, en utilisant la clé partagée secret et la seconde moitié de l'adresse. Deux clés EC différentes sont requises du destinataire pour ces deux étapes, une adresse CryptoNote standard est donc presque deux fois plus grande qu'un portefeuille Bitcoin adresse. Le récepteur effectue également un échange Diffie-Hellman pour récupérer le signal correspondant. clé secrète. Une séquence de transaction standard se déroule comme suit : 1. Alice souhaite envoyer un paiement à Bob, qui a publié son adresse standard. Elle décompresse l'adresse et obtient la clé publique de Bob (A, B). 2. Alice génère un \(r \in [1, l - 1]\) aléatoire et calcule une clé publique unique \(P = H_s(rA)G +\) B. 3. Alice utilise P comme clé de destination pour la sortie et regroupe également la valeur R = rG (dans le cadre d'une partie de la bourse Diffie-Hellman) quelque part dans la transaction. Notez qu'elle peut créer autres sorties avec des clés publiques uniques : les clés de différents destinataires (Ai, Bi) impliquent des Pi différents même avec le même r. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination R = rG P = Hs(rA)G + B Le récepteur clé publique Données aléatoires de l'expéditeur r (A, B) Figure 4. Structure de transaction standard. 4. Alice envoie la transaction. 5. Bob vérifie chaque transaction qui passe avec sa clé privée (a, b) et calcule P ′ = Hs(aR)G + B. Si la transaction d’Alice avec Bob comme destinataire en faisait partie, alors aR = arG = rA et P′ = P. 7 Publique Privé Alice Carole Clé à usage unique Clé à usage unique Clé à usage unique Bob La clé de Bob L'adresse de Bob Fig. 3. Modèle de clés/transactions CryptoNote. Tout d'abord, l'expéditeur effectue un échange Diffie-Hellman pour obtenir un secret partagé à partir de ses données et la moitié de l’adresse du destinataire. Il calcule ensuite une clé de destination unique, en utilisant la clé partagée secret et la seconde moitié de l'adresse. Deux clés EC différentes sont requises du destinataire pour ces deux étapes, une adresse CryptoNote standard est donc presque deux fois plus grande qu'un portefeuille Bitcoin adresse. Le récepteur effectue également un échange Diffie-Hellman pour récupérer le signal correspondant. clé secrète. Une séquence de transaction standard se déroule comme suit : 1. Alice souhaite envoyer un paiement à Bob, qui a publié son adresse standard. Elle décompresse l'adresse et obtient la clé publique de Bob (A, B). 2. Alice génère un \(r \in [1, l - 1]\) aléatoire et calcule une clé publique unique \(P = H_s(rA)G +\) B. 3. Alice utilise P comme clé de destination pour la sortie et regroupe également la valeur R = rG (dans le cadre d'une partie de la bourse Diffie-Hellman) quelque part dans la transaction. Notez qu'elle peut créer autres sorties avec des clés publiques uniques : les clés de différents destinataires (Ai, Bi) impliquent des Pi différents même avec le même r. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination R = rG P = Hs(rA)G + B Le récepteur clé publique Données aléatoires de l'expéditeur r (A, B) Figure 4. Structure de transaction standard. 4. Alice envoie la transaction. 5. Bob vérifie chaque transaction qui passe avec sa clé privée (a, b) et calcule P ′ = Hs(aR)G + B. Si la transaction d’Alice avec Bob comme destinataire en faisait partie, alors aR = arG = rA et P′ = P. 7 14 Notez que le(s) auteur(s ?) font un travail épouvantable en gardant leur terminologie claire tout au long le texte, mais surtout dans ce morceau suivant. La prochaine incarnation de cet article sera nécessairement beaucoup plus rigoureux. Dans le texte, ils font référence à P comme étant leur clé publique unique. Dans le diagramme, ils font référence à R comme leur « clé publique Tx » et P comme leur « clé de destination ». Si je devais réécrire ceci, je le ferais exposez très spécifiquement une certaine terminologie avant de discuter de ces sections. Cette aune est massive. Voir page 5. Qui les choisit ? Le diagramme illustre que la clé publique de transaction R = rG, qui est aléatoire et choisie par l'expéditeur, ne fait pas partie de la sortie Tx. C'est parce que cela pourrait être le même pour plusieurs transactions à plusieurs personnes et n’est pas utilisé * PLUS TARD * pour dépenser. Un nouveau R est généré chaque fois que vous souhaitez diffuser une nouvelle transaction CryptoNote. De plus, R n’est utilisé que pour vérifier si vous êtes le destinataire de la transaction. Ce ne sont pas des données indésirables, mais elles le sont pour tout le monde. sans les clés privées associées à (A,B). La clé de destination, en revanche, P = Hs(rA)G + B fait partie de la sortie Tx. Tout le monde qui fouille dans les données de chaque transaction en cours doit vérifier son propre P* généré par rapport à ce P pour voir s'ils possèdent cette transaction de passage. Toute personne disposant d'un résultat de transaction non dépensé (UTXO) aura un tas de ces P qui traînent avec des montants. Afin de dépenserd, ils signez un nouveau message incluant P. Alice doit signer cette transaction avec une ou plusieurs clés privées à usage unique associées à la ou aux clés de destination des sorties de transaction non dépensées. Chaque clé de destination appartenant à Alice est équipée avec une clé privée unique appartenant également (vraisemblablement) à Alice. Chaque fois qu'Alice veut m'envoyer le contenu d'une clé de destination, ou Bob, ou Brenda, ou Charlie ou Charlene, elle utilise sa clé privée pour signer la transaction. Dès réception de la transaction, je recevrai un nouveau Clé publique Tx, une nouvelle clé publique de destination, et je pourrai récupérer une nouvelle clé privée unique x. Combiner ma clé privée unique, x, avec la destination publique de la nouvelle transaction la ou les clés sont la façon dont nous envoyons une nouvelle transaction

  1. Bob peut récupérer la clé privée unique correspondante : x = Hs(aR) + b, de sorte que P = xG. Il peut dépenser cette sortie à tout moment en signant une transaction avec x. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination P ′ = Hs(aR)G + bG clé publique unique x = Hs(aR) + b clé privée à usage unique Le récepteur clé privée (une, b) R. P' ?=P Fig. 5. Vérification des transactions entrantes. En conséquence, Bob reçoit des paiements entrants, associés à des clés publiques uniques qui sont inattaquable pour un spectateur. Quelques remarques complémentaires : • Lorsque Bob « reconnaît » ses transactions (voir étape 5), il n'utilise pratiquement que la moitié de ses informations privées : (a, B). Cette paire, également connue sous le nom de clé de suivi, peut être transmise à un tiers (Carol). Bob peut lui déléguer le traitement des nouvelles transactions. Bob n'a pas besoin de faire explicitement confiance à Carol, car elle ne peut pas récupérer la clé secrète à usage unique p sans la clé privée complète de Bob (a, b). Cette approche est utile lorsque Bob manque de bande passante ou la puissance de calcul (smartphones, portefeuilles matériels, etc.). • Si Alice souhaite prouver qu'elle a envoyé une transaction à l'adresse de Bob, elle peut soit divulguer r ou utiliser tout type de protocole de connaissance nulle pour prouver qu'elle connaît r (par exemple en signant la transaction avec r). • Si Bob souhaite avoir une adresse compatible avec l'audit où toutes les transactions entrantes sont connectable, il peut soit publier sa clé de suivi, soit utiliser une adresse tronquée. Cette adresse ne représentent qu'une seule clé ec publique B, et la partie restante requise par le protocole est en dérive comme suit : a = Hs(B) et A = Hs(B)G. Dans les deux cas, chaque personne est capable de « reconnaître » toutes les transactions entrantes de Bob, mais, bien sûr, personne ne peut dépenser les fonds qu'ils contiennent sans la clé secrète b. 4.4 Signatures de bague uniques Un protocole basé sur des signatures en anneau uniques permet aux utilisateurs d'obtenir une dissociation inconditionnelle. Malheureusement, les types ordinaires de signatures cryptographiques permettent de retracer les transactions jusqu'à leur émetteurs et récepteurs respectifs. Notre solution à cette lacune réside dans l’utilisation d’une signature différente type que ceux actuellement utilisés dans les systèmes de monnaie électronique. Nous fournirons dans un premier temps une description générale de notre algorithme sans référence explicite à monnaie électronique. Une signature en anneau unique contient quatre algorithmes : (GEN, SIG, VER, LNK) : GEN : prend des paramètres publics et génère une paire ec (P, x) et une clé publique I. SIG : prend un message m, un ensemble \(S'\) de clés publiques {Pi}i̸=s, une paire (Ps, xs) et génère une signature \(\sigma\) et un ensemble \(S = \)S'\( \cup \{P_s\}\). 8
  2. Bob peut récupérer la clé privée unique correspondante : x = Hs(aR) + b, de sorte que P = xG. Il peut dépenser cette sortie à tout moment en signant une transaction avec x. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination P ′ = Hs(aR)G + bG clé publique unique x = Hs(aR) + b clé privée à usage unique Le récepteur clé privée (une, b) R. P' ?=P Fig. 5. Vérification des transactions entrantes. En conséquence, Bob reçoit des paiements entrants, associés à des clés publiques uniques qui sont inattaquable pour un spectateur. Quelques remarques complémentaires : • Lorsque Bob « reconnaît » ses transactions (voir étape 5), il n'utilise pratiquement que la moitié de ses informations privées : (a, B). Cette paire, également connue sous le nom de clé de suivi, peut être transmise à un tiers (Carol). Bob peut lui déléguer le traitement des nouvelles transactions. Bob n'a pas besoin de faire explicitement confiance à Carol, car elle ne peut pas récupérer la clé secrète à usage unique p sans la clé privée complète de Bob (a, b). Cette approche est utile lorsque Bob manque de bande passante ou la puissance de calcul (smartphones, portefeuilles matériels, etc.). • Si Alice souhaite prouver qu'elle a envoyé une transaction à l'adresse de Bob, elle peut soit divulguer r ou utiliser tout type de protocole de connaissance nulle pour prouver qu'elle connaît r (par exemple en signant la transaction avec r). • Si Bob souhaite avoir une adresse compatible avec l'audit où toutes les transactions entrantes sont connectable, il peut soit publier sa clé de suivi, soit utiliser une adresse tronquée. Cette adresse ne représentent qu'une seule clé ec publique B, et la partie restante requise par le protocole est en dérive comme suit : a = Hs(B) et A = Hs(B)G. Dans les deux cas, chaque personne est capable de « reconnaître » toutes les transactions entrantes de Bob, mais, bien sûr, personne ne peut dépenser les fonds qu'ils contiennent sans la clé secrète b. 4.4 Signatures de bague uniques Un protocole basé sur des signatures en anneau uniques permet aux utilisateurs d'obtenir une dissociation inconditionnelle. Malheureusement, les types ordinaires de signatures cryptographiques permettent de retracer les transactions jusqu'à leur émetteurs et récepteurs respectifs. Notre solution à cette lacune réside dans l’utilisation d’une signature différente type que ceux actuellement utilisés dans les systèmes de monnaie électronique. Nous fournirons dans un premier temps un générateural description de notre algorithme sans référence explicite à monnaie électronique. Une signature en anneau unique contient quatre algorithmes : (GEN, SIG, VER, LNK) : GEN : prend des paramètres publics et génère une paire ec (P, x) et une clé publique I. SIG : prend un message m, un ensemble \(S'\) de clés publiques {Pi}i̸=s, une paire (Ps, xs) et génère une signature \(\sigma\) et un ensemble \(S = \)S'\( \cup \{P_s\}\). 8 15 À quoi ressemble ici un résultat de transaction non dépensé ? Le diagramme suggère que le résultat de la transaction se compose uniquement de deux points de données : le montant et la clé de destination. Mais ce n'est pas suffisant car lorsque j'essaierai de dépenser cette "sortie", j'aurai toujours besoin de connaître R=rG. N'oubliez pas que r est choisi par l'expéditeur et R est a) utilisé pour reconnaître les cryptonotes entrantes comme votre propre et b) utilisé pour générer la clé privée unique utilisée pour « réclamer » votre cryptonote. La partie que je ne comprends pas à ce sujet ? En prenant le théorique "d'accord, nous avons ces signatures et transactions, et nous les transmettons" dans le monde de la programmation "D'accord, quelles informations spécifiquement constituent un individu UTXO ?" La meilleure façon de répondre à cette question est de fouiller dans le corps du code totalement non commenté. Bravo, équipe bytecoin. Rappel : la possibilité de lien signifie « la même personne a-t-elle envoyé ? » et l'indisponibilité signifie "a fait la même chose personne reçoit?". Ainsi, un système peut être lié ou non, impossible à relier ou non. Ennuyeux, je sais. Ainsi, lorsque Nic van Saberhagen dit ici : « ... les paiements entrants [sont] associés à des paiements ponctuels. des clés publiques qui ne peuvent être liées pour un spectateur", voyons ce qu'il veut dire. Tout d’abord, considérons une situation dans laquelle Alice envoie à Bob deux transactions distinctes à partir du même adresse à la même adresse. Dans l'univers Bitcoin, Alice a déjà commis l'erreur d'envoi à partir de la même adresse et la transaction a donc échoué à notre désir de limiter possibilité de liaison. De plus, comme elle a envoyé l’argent à la même adresse, elle a déçu notre désir. pour la non-liaison. Cette transaction Bitcoin était à la fois (totalement) liée et non dissociable. D’un autre côté, dans l’univers des cryptonotes, disons qu’Alice envoie à Bob une cryptonote, en utilisant l’adresse publique de Bob. Elle choisit comme ensemble de clés publiques obscurcissantes toutes les clés publiques connues. clés dans la région métropolitaine de Washington DC. Alex génère une clé publique unique en utilisant la sienne informations et informations publiques de Bob. Elle envoie l'argent, et tout observateur seulement pouvoir glaner "Quelqu'un de la région métropolitaine de Washington DC a envoyé 2,3 cryptonotes à l'adresse publique unique XYZ123." Nous avons ici un contrôle probabiliste sur la possibilité de lien, nous appellerons donc cela « presque non lien ». Nous ne voyons également que les clés publiques uniques auxquelles l’argent est envoyé. Même si on soupçonnait le récepteur était Bob, nous n'avons pas ses clés privées et nous ne pouvons donc pas tester si une transaction passe appartient à Bob et encore moins génère sa clé privée unique pour échanger sa cryptonote. Donc ça est, en fait, totalement « indiscutable ». C’est donc l’astuce la plus intéressante de toutes. Qui veut vraiment faire confiance à un autre MtGox ? Nous pouvons être à l'aise de stocker une certaine quantité de BTC sur Coinbase, mais le nec plus ultra en matière de sécurité Bitcoin est un portefeuille physique. Ce qui est gênant. Dans ce cas, vous pouvez donner en toute confiance la moitié de votre clé privée sans compromettre votre propre capacité à dépenser de l’argent. En faisant cela, tout ce que vous faites, c'est dire à quelqu'un comment briser l'indisponibilité. L'autre les propriétés du CN agissant comme une monnaie sont préservées, comme une preuve contre les doubles dépenses et que sais-je encore.

  3. Bob peut récupérer la clé privée unique correspondante : x = Hs(aR) + b, de sorte que P = xG. Il peut dépenser cette sortie à tout moment en signant une transaction avec x. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination P ′ = Hs(aR)G + bG clé publique unique x = Hs(aR) + b clé privée à usage unique Le récepteur clé privée (une, b) R. P' ?=P Fig. 5. Vérification des transactions entrantes. En conséquence, Bob reçoit des paiements entrants, associés à des clés publiques uniques qui sont inattaquable pour un spectateur. Quelques remarques complémentaires : • Lorsque Bob « reconnaît » ses transactions (voir étape 5), il n'utilise pratiquement que la moitié de ses informations privées : (a, B). Cette paire, également connue sous le nom de clé de suivi, peut être transmise à un tiers (Carol). Bob peut lui déléguer le traitement des nouvelles transactions. Bob n'a pas besoin de faire explicitement confiance à Carol, car elle ne peut pas récupérer la clé secrète à usage unique p sans la clé privée complète de Bob (a, b). Cette approche est utile lorsque Bob manque de bande passante ou la puissance de calcul (smartphones, portefeuilles matériels, etc.). • Si Alice souhaite prouver qu'elle a envoyé une transaction à l'adresse de Bob, elle peut soit divulguer r ou utiliser tout type de protocole de connaissance nulle pour prouver qu'elle connaît r (par exemple en signant la transaction avec r). • Si Bob souhaite avoir une adresse compatible avec l'audit où toutes les transactions entrantes sont connectable, il peut soit publier sa clé de suivi, soit utiliser une adresse tronquée. Cette adresse ne représentent qu'une seule clé ec publique B, et la partie restante requise par le protocole est en dérive comme suit : a = Hs(B) et A = Hs(B)G. Dans les deux cas, chaque personne est capable de « reconnaître » toutes les transactions entrantes de Bob, mais, bien sûr, personne ne peut dépenser les fonds qu'ils contiennent sans la clé secrète b. 4.4 Signatures de bague uniques Un protocole basé sur des signatures en anneau uniques permet aux utilisateurs d'obtenir une dissociation inconditionnelle. Malheureusement, les types ordinaires de signatures cryptographiques permettent de retracer les transactions jusqu'à leur émetteurs et récepteurs respectifs. Notre solution à cette lacune réside dans l’utilisation d’une signature différente type que ceux actuellement utilisés dans les systèmes de monnaie électronique. Nous fournirons dans un premier temps une description générale de notre algorithme sans référence explicite à monnaie électronique. Une signature en anneau unique contient quatre algorithmes : (GEN, SIG, VER, LNK) : GEN : prend des paramètres publics et génère une paire ec (P, x) et une clé publique I. SIG : prend un message m, un ensemble \(S'\) de clés publiques {Pi}i̸=s, une paire (Ps, xs) et génère une signature \(\sigma\) et un ensemble \(S = \)S'\( \cup \{P_s\}\). 8

  4. Bob peut récupérer la clé privée unique correspondante : x = Hs(aR) + b, de sorte que P = xG. Il peut dépenser cette sortie à tout moment en signant une transaction avec x. Transaction Clé publique d'émission Sortie d'émission Montant Clé de destination P ′ = Hs(aR)G + bG clé publique unique x = Hs(aR) + b clé privée à usage unique Le récepteur clé privée (une, b) R. P' ?=P Fig. 5. Vérification des transactions entrantes. En conséquence, Bob reçoit des paiements entrants, associés à des clés publiques uniques qui sont inattaquable pour un spectateur. Quelques remarques complémentaires : • Lorsque Bob « reconnaît » ses transactions (voir étape 5), il n'utilise pratiquement que la moitié de ses informations privées : (a, B). Cette paire, également connue sous le nom de clé de suivi, peut être transmise à un tiers (Carol). Bob peut lui déléguer le traitement des nouvelles transactions. Bob n'a pas besoin de faire explicitement confiance à Carol, car elle ne peut pas récupérer la clé secrète à usage unique p sans la clé privée complète de Bob (a, b). Cette approche est utile lorsque Bob manque de bande passante ou la puissance de calcul (smartphones, portefeuilles matériels, etc.). • Si Alice souhaite prouver qu'elle a envoyé une transaction à l'adresse de Bob, elle peut soit divulguer r ou utiliser tout type de protocole de connaissance nulle pour prouver qu'elle connaît r (par exemple en signant la transaction avec r). • Si Bob souhaite avoir une adresse compatible avec l'audit où toutes les transactions entrantes sont connectable, il peut soit publier sa clé de suivi, soit utiliser une adresse tronquée. Cette adresse ne représentent qu'une seule clé ec publique B, et la partie restante requise par le protocole est en dérive comme suit : a = Hs(B) et A = Hs(B)G. Dans les deux cas, chaque personne est capable de « reconnaître » toutes les transactions entrantes de Bob, mais, bien sûr, personne ne peut dépenser les fonds qu'ils contiennent sans la clé secrète b. 4.4 Signatures de bague uniques Un protocole basé sur des signatures en anneau uniques permet aux utilisateurs d'obtenir une dissociation inconditionnelle. Malheureusement, les types ordinaires de signatures cryptographiques permettent de retracer les transactions jusqu'à leur émetteurs et récepteurs respectifs. Notre solution à cette lacune réside dans l’utilisation d’une signature différente type que ceux actuellement utilisés dans les systèmes de monnaie électronique. Nous fournirons dans un premier temps un générateural description de notre algorithme sans référence explicite à monnaie électronique. Une signature en anneau unique contient quatre algorithmes : (GEN, SIG, VER, LNK) : GEN : prend des paramètres publics et génère une paire ec (P, x) et une clé publique I. SIG : prend un message m, un ensemble \(S'\) de clés publiques {Pi}i̸=s, une paire (Ps, xs) et génère une signature \(\sigma\) et un ensemble \(S = \)S'\( \cup \{P_s\}\). 8 16 Oui, nous avons maintenant a) une adresse de paiement et b) un identifiant de paiement. Un critique pourrait se demander « est-ce vraiment nécessaire de faire cela ? Après tout, si un commerçant reçoit le 112.00678952 CN exactement, et c'était ma commande, et j'ai une capture d'écran ou un reçu ou autre, n'est-ce pas un degré de précision insensé suffisant ? » La réponse est « peut-être que la plupart du temps, au quotidien, transactions en face à face. Cependant, la situation la plus courante (surtout dans le monde numérique) est la suivante : un commerçant vend un ensemble d'objets, chacun avec un prix fixe. Disons que l'objet A vaut 0,001 CN, l'objet B vaut 0,01 CN et l'objet C vaut 0,1 CN. Maintenant, si le commerçant reçoit une commande de 1,618 CN, il y a beaucoup de (nombreuses !) façons d’organiser une commande pour un client. Et donc sans une sorte d'identifiant de paiement, identifier la commande dite « unique » d'un client avec le coût dit « unique » de sa l'ordre devient impossible. Encore plus drôle : si tout dans ma boutique en ligne coûte exactement 1,0 CN, et je reçois 1000 clients par jour ? Et vous voulez prouver que vous avez acheté exactement 3 objets il y a deux semaines ? Sans identifiant de paiement ? Bonne chance, mon pote. Pour faire court : lorsque Bob publie une adresse de paiement, il peut finir par publier également une adresse de paiement. ainsi que l'identifiant de paiement (voir, par exemple, les dépôts Poloniex XMR). Ceci est différent de ce qui est décrit dans le texte ici où Alice est celle qui génère l'identifiant de paiement. Il doit également y avoir un moyen pour Bob de générer un identifiant de paiement. (une,B) Rappelons que la clé de suivi (a,B) peut être publiée ; perdre le secret de la valeur d’un testament ne pas violer votre capacité à dépenser ni permettre aux gens de vous voler (je pense... cela aurait à prouver), cela permettra simplement aux gens de voir toutes les transactions entrantes. Une adresse tronquée, comme décrit dans ce paragraphe, prend simplement la partie « privée » de la clé et le génère à partir de la partie "publique". Révéler la valeur de « a » supprimera la non-liabilité mais préservera le reste des transactions. L'auteur veut dire "non dissociable" car non dissociable fait référence au récepteur et pouvant être lié fait référence à l'expéditeur. Il est également clair que l’auteur n’avait pas réalisé qu’il y avait deux aspects différents dans la possibilité de lien. Puisque, après tout, la transaction est un objet orienté sur un graphe, deux questions se poseront : "Est-ce que ces deux transactions vont à la même personne ?" et "ces deux transactions arrivent-elles de la même personne ? » Il s'agit d'une politique de « non-retour » en vertu de laquelle la propriété de non-liaison de CryptoNote est conditionnel. C'est-à-dire que Bob peut choisir que ses transactions entrantes ne soient pas dissociables en utilisant cette politique. C’est une affirmation qu’ils prouvent sous le modèle Random Oracle. Nous y reviendrons ; le hasard Oracle a des avantages et des inconvénients.

VER : prend un message m, un ensemble S, une signature \(\sigma\) et renvoie « vrai » ou « faux ». LNK : prend un ensemble I = {Ii}, une signature \(\sigma\) et produit « linked » ou « indep ». L'idée derrière le protocole est assez simple : un utilisateur produit une signature qui peut être vérifié par un ensemble de clés publiques plutôt que par une clé publique unique. L'identité du signataire est impossible à distinguer des autres utilisateurs dont les clés publiques sont dans l'ensemble jusqu'à ce que le propriétaire produise une deuxième signature utilisant la même paire de clés. Clés privées x0 \(\cdots\) xi \(\cdots\) xn Clés publiques P0 \(\cdots\) Pi \(\cdots\) Pn Bague Signature signe vérifier Fig. 6. Anonymat de la signature en anneau. GEN : Le signataire choisit une clé secrète aléatoire \(x \in [1, l - 1]\) et calcule la clé correspondante clé publique P = xG. De plus, il calcule une autre clé publique I = xHp(P) que nous allons appelons « l’image clé ». SIG : le signataire génère une signature en anneau unique avec une connaissance nulle non interactive preuve en utilisant les techniques de [21]. Il sélectionne un sous-ensemble aléatoire \(S'\) de n parmi ceux des autres utilisateurs. clés publiques Pi, sa propre paire de clés (x, P) et l'image clé I. Soit \(0 \leq s \leq n\) l'index secret du signataire dans S (pour que sa clé publique soit Ps). Il choisit un {qi | je = 0 . . . n} et {wi | je = 0 . . . n, i ̸= s} de (1 . . . l) et applique la transformations suivantes : Li = ( qiG, si je = s qiG + wiPi, si je ̸= s Ri = ( qiHp(Pi), si je = s qiHp(Pi) + wiI, si je ̸= s La prochaine étape consiste à relever le défi non interactif : c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Finalement le signataire calcule la réponse : ci =    Wi, si je ̸= s c- nP je = 0 ci mod l, si je = s ri = ( qi, si je ̸= s qs −csx mod l, si je = s La signature résultante est \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER : prend un message m, un ensemble S, une signature \(\sigma\) et renvoie « vrai » ou « faux ». LNK : prend un ensemble I = {Ii}, une signature \(\sigma\) et produit « linked » ou « indep ». L'idée derrière le protocole est assez simple : un utilisateur produit une signature qui peut être vérifié par un ensemble de clés publiques plutôt que par une clé publique unique. L'identité du signataire est impossible à distinguer des autres utilisateurs dont les clés publiques sont dans l'ensemble jusqu'à ce que le propriétaire produise une deuxième signature utilisant la même paire de clés. Clés privées x0 \(\cdots\) xi \(\cdots\) xn Clés publiques P0 \(\cdots\) Pi \(\cdots\) Pn Bague Signature signe vérifier Fig. 6. Anonymat de la signature en anneau. GEN : Le signataire choisit une clé secrète aléatoire \(x \in [1, l - 1]\) et calcule la clé correspondante clé publique P = xG. De plus, il calcule une autre clé publique I = xHp(P) que nous allons appelons « l’image clé ». SIG : le signataire génère une signature en anneau unique avec une connaissance nulle non interactive preuve en utilisant les techniques de [21]. Il sélectionne un sous-ensemble aléatoire \(S'\) de n parmi ceux des autres utilisateurs. clés publiques Pi, sa propre paire de clés (x, P) et l'image clé I. Soit \(0 \leq s \leq n\) l'index secret du signataire dans S (pour que sa clé publique soit Ps). Il choisit un {qi | je = 0 . . . n} et {wi | je = 0 . . . n, i ̸= s} de (1 . . . l) et applique la transformations suivantes : Li = ( qiG, si je = s qiG + wiPi, si je ̸= s Ri = ( qiHp(Pi), si je = s qiHp(Pi) + wiI, si je ̸= s La prochaine étape consiste à relever le défi non interactif : c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Finalement le signataire calcule la réponse : ci =    Wi, si je ̸= s c- nP je = 0 ci mod l, si je = s ri = ( qi, si je ̸= s qs −csx mod l, si je = s La signature résultante est \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 C'est peut-être stupide, mais il faut être prudent lors de l'union de S et P_s. Si vous ajoutez simplement le dernière clé publique jusqu'à la fin, la dissociation est interrompue car quiconque vérifie les transactions en cours peut simplement vérifier la dernière clé publique répertoriée dans chaque transaction et boum. C'est la clé publique associé à l'expéditeur. Ainsi, après l'union, un générateur de nombres pseudo-aléatoires doit être utilisé pour permuter les clés publiques choisies. "...jusqu'à ce que le propriétaire produise une deuxième signature en utilisant la même paire de clés." Je souhaite au(x) auteur(s?) je développerais cela. Je crois que cela signifie "assurez-vous que chaque fois que vous choisissez un ensemble de clés publiques pour masquer vous-même, vous choisissez un jeu complètement nouveau, sans deux clés identiques. » Ce qui ressemble à un condition assez forte à placer en cas de dissociation. Peut-être que « vous choisissez un nouvel ensemble aléatoire parmi toutes les clés possibles" avec l'hypothèse que, même si des intersections non triviales seront inévitablement cela arrive, cela n’arrivera pas souvent. Quoi qu’il en soit, je dois approfondir cette déclaration. Cela génère la signature de l'anneau. Les preuves sans connaissance sont géniales : je vous mets au défi de me prouver que vous connaissez un secret sans révéler le secret. Par exemple, disons que nous sommes à l'entrée d'une grotte en forme de beignet, et au fond de la grotte (hors de vue depuis l'entrée) se trouve un oporte sans issue vers laquelle vous prétendez que vous avez la clé. Si vous allez dans une direction, cela vous laisse toujours passer, mais si vous allez dans la dans l'autre sens, vous avez besoin d'une clé. Mais tu ne veux même pas me MONTRER la clé, encore moins montre-moi que ça ouvre la porte. Mais tu veux me prouver que tu sais ouvrir le porte. Dans le cadre interactif, je lance une pièce de monnaie. Pile à gauche, pile à droite et vous descendez le grotte en forme de beignet, quelle que soit la direction dans laquelle la pièce vous dirige. Au fond, hors de ma vue, tu ouvrez la porte pour revenir de l'autre côté. Nous répétons l'expérience du tirage au sort jusqu'à ce que je sois convaincu que vous avez la clé. Mais c’est clairement la preuve INTERACTIVE de connaissance zéro. Il existe des versions non interactives dans lesquelles vous et moi n'avons jamais à communiquer ; de cette façon, aucune écoute indiscrète ne peut interférer. http://en.wikipedia.org/wiki/Zero-knowledge_proof Cette définition est inversée par rapport à la définition précédente.

VER : prend un message m, un ensemble S, une signature \(\sigma\) et renvoie « vrai » ou « faux ». LNK : prend un ensemble I = {Ii}, une signature \(\sigma\) et produit « linked » ou « indep ». L'idée derrière le protocole est assez simple : un utilisateur produit une signature qui peut être vérifié par un ensemble de clés publiques plutôt que par une clé publique unique. L'identité du signataire est impossible à distinguer des autres utilisateurs dont les clés publiques sont dans l'ensemble jusqu'à ce que le propriétaire produise une deuxième signature utilisant la même paire de clés. Clés privées x0 \(\cdots\) xi \(\cdots\) xn Clés publiques P0 \(\cdots\) Pi \(\cdots\) Pn Bague Signature signe vérifier Fig. 6. Anonymat de la signature en anneau. GEN : Le signataire choisit une clé secrète aléatoire \(x \in [1, l - 1]\) et calcule la clé correspondante clé publique P = xG. De plus, il calcule une autre clé publique I = xHp(P) que nous allons appelons « l’image clé ». SIG : le signataire génère une signature en anneau unique avec une connaissance nulle non interactive preuve en utilisant les techniques de [21]. Il sélectionne un sous-ensemble aléatoire \(S'\) de n parmi ceux des autres utilisateurs. clés publiques Pi, sa propre paire de clés (x, P) et l'image clé I. Soit \(0 \leq s \leq n\) l'index secret du signataire dans S (pour que sa clé publique soit Ps). Il choisit un {qi | je = 0 . . . n} et {wi | je = 0 . . . n, i ̸= s} de (1 . . . l) et applique la transformations suivantes : Li = ( qiG, si je = s qiG + wiPi, si je ̸= s Ri = ( qiHp(Pi), si je = s qiHp(Pi) + wiI, si je ̸= s La prochaine étape consiste à relever le défi non interactif : c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Finalement le signataire calcule la réponse : ci =    Wi, si je ̸= s c- nP je = 0 ci mod l, si je = s ri = ( qi, si je ̸= s qs −csx mod l, si je = s La signature résultante est \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER : prend un message m, un ensemble S, une signature \(\sigma\) et renvoie « vrai » ou « faux ». LNK : prend un ensemble I = {Ii}, une signature \(\sigma\) et produit « linked » ou « indep ». L'idée derrière le protocole est assez simple : un utilisateur produit une signature qui peut être vérifié par un ensemble de clés publiques plutôt que par une clé publique unique. L'identité du signataire est impossible à distinguer des autres utilisateurs dont les clés publiques sont dans l'ensemble jusqu'à ce que le propriétaire produise une deuxième signature utilisant la même paire de clés. Clés privées x0 \(\cdots\) xi \(\cdots\) xn Clés publiques P0 \(\cdots\) Pi \(\cdots\) Pn Bague Signature signe vérifier Fig. 6. Anonymat de la signature en anneau. GEN : Le signataire choisit une clé secrète aléatoire \(x \in [1, l - 1]\) et calcule la clé correspondante clé publique P = xG. De plus, il calcule une autre clé publique I = xHp(P) que nous allons appelons « l’image clé ». SIG : le signataire génère une signature en anneau unique avec une connaissance nulle non interactive preuve en utilisant les techniques de [21]. Il sélectionne un sous-ensemble aléatoire \(S'\) de n parmi ceux des autres utilisateurs. clés publiques Pi, sa propre paire de clés (x, P) et l'image clé I. Soit \(0 \leq s \leq n\) l'index secret du signataire dans S (pour que sa clé publique soit Ps). Il choisit un {qi | je = 0 . . . n} et {wi | je = 0 . . . n, i ̸= s} de (1 . . . l) et applique la transformations suivantes : Li = ( qiG, si je = s qiG + wiPi, si je ̸= s Ri = ( qiHp(Pi), si je = s qiHp(Pi) + wiI, si je ̸= s La prochaine étape consiste à relever le défi non interactif : c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Finalement le signataire calcule la réponse : ci =    Wi, si je ̸= s c- nP je = 0 ci mod l, si je = s ri = ( qi, si je ̸= s qs −csx mod l, si je = s La signature résultante est \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 Tout ce domaine est indépendant des cryptonotes, décrivant simplement l'algorithme de signature en anneau sans référence aux monnaies. Je soupçonne qu'une partie de la notation est cohérente avec le reste de l'article, cependant. Par exemple, x est la clé secrète « aléatoire » choisie dans GEN, qui donne la clé publique P et l'image de clé publique I. Cette valeur de x est la valeur que Bob calcule dans la partie 6 page 8. Voilà donc commence à dissiper une partie de la confusion de la description précédente. C'est plutôt cool ; l'argent n'est pas transféré de "l'adresse publique d'Alice vers l'adresse publique de Bob adresse." Il est transféré d'une adresse unique à une adresse unique. Donc, dans un sens, voici comment les choses fonctionnent. Si Alex a des cryptonotes parce que quelqu'un les lui a envoyées, cela signifie qu'elle dispose des clés privées nécessaires pour les envoyer à Bob. Elle utilise un échange Diffie-Hellman utilisant les informations publiques de Bob pour générer une nouvelle adresse unique et les cryptonotes sont transférées à cette adresse. Maintenant, puisqu'un échange DH (vraisemblablement sécurisé) a été utilisé pour générer la nouvelle adresse unique auquel Alex a envoyé son CN, Bob est le seul à disposer des clés privées nécessaires pour répéter le ci-dessus. Alors maintenant, Bob est Alex. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation La sommation doit être indexée sur j et non sur i. Chaque c_i est un déchet aléatoire (puisque w_i est aléatoire) sauf pour le cul de c_iassocié à la clé réelle impliquée dans cette signature. La valeur de c est un hash des informations précédentes. Je pense que cela peut contenir une faute de frappe pire que la réutilisation de l'index 'i', car c_s semble être implicitement, et non explicitement, défini. En effet, si l'on prend cette équation avec foi, alors on détermine que c_s = (1/2)c - (1/2) sum_i neq s c_i. Autrement dit, un hash moins tout un tas de nombres aléatoires. En revanche, si cette sommation est destinée à être lue "c_s = (c - sum_j neq s c_j) mod l", puis nous prenons le hash de nos informations précédentes, générons un tas de nombres aléatoires, soustrayez tous ces nombres aléatoires du hash, et cela nous donne c_s. Cela semble être ce qui "devrait" se produire compte tenu de mon intuition, et correspond à l'étape de vérification de la page 10. Mais l’intuition n’est pas mathématique. Je vais approfondir cela. Comme avant ; tous ces éléments seront des déchets aléatoires, à l'exception de celui associé au véritable clé publique du signataire x. Sauf que cette fois, c'est plus ce que j'attendrais de la structure : r_i est aléatoire pour i!=s et r_s est déterminé uniquement par le secret x et les valeurs s-indexées de q_i et c_i.

VER : Le vérificateur vérifie la signature en appliquant les transformations inverses : ( L' je = riG + ciPi R′ je = riHp(Pi) + ciI Enfin, le vérificateur vérifie si nP je = 0 ci ?= Hs(m, L′ 0, . . . , L' n, R′ 0, . . . , R' n) modèle l Si cette égalité est correcte, le vérificateur exécute l'algorithme LNK. Sinon, le vérificateur rejette la signature. LNK : le vérificateur vérifie si I a été utilisé dans des signatures antérieures (ces valeurs sont stockées dans le définir I). Des utilisations multiples impliquent que deux signatures ont été produites sous la même clé secrète. Le sens du protocole : en appliquant des L-transformations le signataire prouve qu'il sait tel x qu'au moins un Pi = xG. Pour rendre cette preuve non répétable, nous introduisons l'image clé comme je = xHp(P). Le signataire utilise les mêmes coefficients (ri, ci) pour prouver presque la même affirmation : il connaît x tel qu'au moins un \(H_p(P_i) = I \cdot x^{-1}\). Si l'application \(x \to I\) est une injection : 1. Personne ne peut récupérer la clé publique à partir de l’image de clé et identifier le signataire ; 2. Le signataire ne peut pas faire deux signatures avec des I différents et le même x. Une analyse de sécurité complète est fournie à l’Annexe A. 4.5 Transaction CryptoNote standard En combinant les deux méthodes (clés publiques non liées et signature en anneau introuvable), Bob obtient nouveau niveau de confidentialité par rapport au programme Bitcoin original. Cela lui impose de stocker uniquement une clé privée (a, b) et publier (A, B) pour commencer à recevoir et à envoyer des transactions anonymes. Lors de la validation de chaque transaction, Bob effectue en outre uniquement deux multiplications de courbes elliptiques et une addition par sortie pour vérifier si une transaction lui appartient. Pour chacun de ses sortie Bob récupère une paire de clés à usage unique (pi, Pi) et la stocke dans son portefeuille. Toutes les entrées peuvent être il est prouvé de manière circonstancielle qu'ils ont le même propriétaire seulement s'ils apparaissent dans une seule transaction. Dans En fait, cette relation est beaucoup plus difficile à établir en raison de la signature en anneau unique. Avec une signature en anneau, Bob peut efficacement cacher chaque entrée parmi celles de quelqu'un d'autre ; tout est possible les dépensiers seront équiprobables, même le propriétaire précédent (Alice) n'a pas plus d'informations que tout observateur. Lors de la signature de sa transaction, Bob précise n sorties étrangères du même montant que son sortie, en les mélangeant tous sans la participation d’autres utilisateurs. Bob lui-même (ainsi que quelqu'un d'autre) ne sait pas si l'un de ces paiements a été dépensé : un résultat peut être utilisé dans des milliers de signatures comme facteur d'ambiguïté et jamais comme cible de dissimulation. Le doublé Le contrôle des dépenses a lieu dans la phase LNK lors de la vérification par rapport à l'ensemble d'images clés utilisé. Bob peut choisir lui-même le degré d'ambiguïté : n = 1 signifie que la probabilité qu'il ait dépensé, la sortie est de 50 % de probabilité, n = 99 donne 1 %. La taille de la signature résultante augmente linéairement comme O(n+1), donc l'anonymat amélioré coûte à Bob des frais de transaction supplémentaires. Il peut aussi définissez n = 0 et faites en sorte que sa signature en anneau soit composée d'un seul élément, mais cela sera instantanément révélez-le comme un dépensier. 10 VER : Le vérificateur vérifie la signature en appliquant les transformations inverses : ( L' je = riG + ciPi R' je = riHp(Pi) + ciI Enfin, le vérificateur vérifie si nP je = 0 ci ?= Hs(m, L′ 0, . . . , L' n, R′ 0, . . . , R' n) modèle l Si cette égalité est correcte, le vérificateur exécute l'algorithme LNK. Sinon, le vérificateur rejette la signature. LNK : le vérificateur vérifie si I a été utilisé dans des signatures antérieures (ces valeurs sont stockées dans le définir I). Des utilisations multiples impliquent que deux signatures ont été produites sous la même clé secrète. Le sens du protocole : en appliquant des L-transformations le signataire prouve qu'il sait tel x qu'au moins un Pi = xG. Pour rendre cette preuve non répétable, nous introduisons l'image clé comme je = xHp(P). Le signataire utilise les mêmes coefficients (ri, ci) pour prouver presque la même affirmation : il connaît x tel qu'au moins un \(H_p(P_i) = I \cdot x^{-1}\). Si l'application \(x \to I\) est une injection : 1. Personne ne peut récupérer la clé publique à partir de l’image de clé et identifier le signataire ; 2. Le signataire ne peut pas faire deux signatures avec des I différents et le même x. Une analyse de sécurité complète est fournie à l’Annexe A. 4.5 Transaction CryptoNote standard En combinant les deux méthodes (clés publiques non liées et signature en anneau introuvable), Bob obtient nouveau niveau de confidentialité par rapport au programme Bitcoin original. Cela lui impose de stocker uniquement une clé privée (a, b) et publier (A, B) pour commencer à recevoir et à envoyer des transactions anonymes. Lors de la validation de chaque transaction, Bob effectue en outre uniquement deux multiplications de courbes elliptiques et une addition par sortie pour vérifier si une transaction lui appartient. Pour chacun de ses sortie Bob récupère une paire de clés unique (pi, Pi) et stil le met dans son portefeuille. Toutes les entrées peuvent être il est prouvé de manière circonstancielle qu'ils ont le même propriétaire seulement s'ils apparaissent dans une seule transaction. Dans En fait, cette relation est beaucoup plus difficile à établir en raison de la signature en anneau unique. Avec une signature en anneau, Bob peut efficacement cacher chaque entrée parmi celles de quelqu'un d'autre ; tout est possible les dépensiers seront équiprobables, même le propriétaire précédent (Alice) n'a pas plus d'informations que tout observateur. Lors de la signature de sa transaction, Bob précise n sorties étrangères du même montant que son sortie, en les mélangeant tous sans la participation d’autres utilisateurs. Bob lui-même (ainsi que quelqu'un d'autre) ne sait pas si l'un de ces paiements a été dépensé : un résultat peut être utilisé dans des milliers de signatures comme facteur d'ambiguïté et jamais comme cible de dissimulation. Le doublé Le contrôle des dépenses a lieu dans la phase LNK lors de la vérification par rapport à l'ensemble d'images clés utilisé. Bob peut choisir lui-même le degré d'ambiguïté : n = 1 signifie que la probabilité qu'il ait dépensé, la sortie est de 50 % de probabilité, n = 99 donne 1 %. La taille de la signature résultante augmente linéairement comme O(n+1), donc l'anonymat amélioré coûte à Bob des frais de transaction supplémentaires. Il peut aussi définissez n = 0 et faites en sorte que sa signature en anneau soit composée d'un seul élément, mais cela sera instantanément révélez-le comme un dépensier. 10 19 À ce stade, je suis terriblement confus. Alex reçoit un message M avec signature (I,c_1, ..., c_n, r_1, ..., r_n) et liste des publics touches S. et elle exécute VER. Cela calculera L_i' et R_i' Cela vérifie que c_s = c - sum_i neq s c_i sur la page précédente. Au début, j’étais TRÈS (ha) confus. N’importe qui peut calculer L_i’ et R_i’. En effet, chaque r_i et c_i ont été publiés dans la signature sigma avec la valeur de I. L'ensemble S = P_i de toutes les clés publiques a également été publié. Donc, quiconque a vu Sigma et l'ensemble des les clés S = P_i obtiendront les mêmes valeurs pour L_i' et R_i' et vérifieront donc la signature. Mais ensuite je me suis souvenu que cette section décrivait simplement un algorithme de signature, pas un « contrôle » si signé, vérifiez s'il M'EST ENVOYÉ, et si c'est le cas, allez dépenser l'argent." C'est SIMPLEMENT le partie emblématique du jeu. J’ai hâte de lire l’Annexe A lorsque j’y serai enfin. J'aimerais voir une comparaison opération par opération à grande échelle de Cryptonote à Bitcoin. Aussi, électricité/durabilité. Quels éléments des algorithmes constituent ici une « entrée » ? L'entrée de transaction, je crois, est un montant et un ensemble de UTXO dont la somme est supérieure à celle du montant. Montant. Ce n’est pas clair. « Cible de la cachette ? J'y réfléchis depuis quelques minutes maintenant et je n'ai toujours pas le idée la plus floue de ce que cela pourrait signifier. Une attaque à double dépense ne peut être exécutée qu’en manipulant la clé utilisée perçue par un nœud. ensemble d'images \(I\). "Degré d'ambiguïté" = n mais le nombre total de clés publiques incluses dans la transaction est n+1. C'est-à-dire que le degré d'ambiguïté serait "combien d'AUTRES personnes voulez-vous dans la foule ?" La réponse sera probablement, par défaut, « autant que possible ».

VER : Le vérificateur vérifie la signature en appliquant les transformations inverses : ( L' je = riG + ciPi R' je = riHp(Pi) + ciI Enfin, le vérificateur vérifie si nP je = 0 ci ?= Hs(m, L′ 0, . . . , L' n, R′ 0, . . . , R' n) modèle l Si cette égalité est correcte, le vérificateur exécute l'algorithme LNK. Sinon, le vérificateur rejette la signature. LNK : le vérificateur vérifie si I a été utilisé dans des signatures antérieures (ces valeurs sont stockées dans le définir I). Des utilisations multiples impliquent que deux signatures ont été produites sous la même clé secrète. Le sens du protocole : en appliquant des L-transformations le signataire prouve qu'il sait tel x qu'au moins un Pi = xG. Pour rendre cette preuve non répétable, nous introduisons l'image clé comme je = xHp(P). Le signataire utilise les mêmes coefficients (ri, ci) pour prouver presque la même affirmation : il connaît x tel qu'au moins un \(H_p(P_i) = I \cdot x^{-1}\). Si l'application \(x \to I\) est une injection : 1. Personne ne peut récupérer la clé publique à partir de l’image de clé et identifier le signataire ; 2. Le signataire ne peut pas faire deux signatures avec des I différents et le même x. Une analyse de sécurité complète est fournie à l’Annexe A. 4.5 Transaction CryptoNote standard En combinant les deux méthodes (clés publiques non liées et signature en anneau introuvable), Bob obtient nouveau niveau de confidentialité par rapport au programme Bitcoin original. Cela lui impose de stocker uniquement une clé privée (a, b) et publier (A, B) pour commencer à recevoir et à envoyer des transactions anonymes. Lors de la validation de chaque transaction, Bob effectue en outre uniquement deux multiplications de courbes elliptiques et une addition par sortie pour vérifier si une transaction lui appartient. Pour chacun de ses sortie Bob récupère une paire de clés à usage unique (pi, Pi) et la stocke dans son portefeuille. Toutes les entrées peuvent être il est prouvé de manière circonstancielle qu'ils ont le même propriétaire seulement s'ils apparaissent dans une seule transaction. Dans En fait, cette relation est beaucoup plus difficile à établir en raison de la signature en anneau unique. Avec une signature en anneau, Bob peut efficacement cacher chaque entrée parmi celles de quelqu'un d'autre ; tout est possible les dépensiers seront équiprobables, même le propriétaire précédent (Alice) n'a pas plus d'informations que tout observateur. Lors de la signature de sa transaction, Bob précise n sorties étrangères du même montant que son sortie, en les mélangeant tous sans la participation d’autres utilisateurs. Bob lui-même (ainsi que quelqu'un d'autre) ne sait pas si l'un de ces paiements a été dépensé : un résultat peut être utilisé dans des milliers de signatures comme facteur d'ambiguïté et jamais comme cible de dissimulation. Le doublé Le contrôle des dépenses a lieu dans la phase LNK lors de la vérification par rapport à l'ensemble d'images clés utilisé. Bob peut choisir lui-même le degré d'ambiguïté : n = 1 signifie que la probabilité qu'il ait dépensé, la sortie est de 50 % de probabilité, n = 99 donne 1 %. La taille de la signature résultante augmente linéairement comme O(n+1), donc l'anonymat amélioré coûte à Bob des frais de transaction supplémentaires. Il peut aussi définissez n = 0 et faites en sorte que sa signature en anneau soit composée d'un seul élément, mais cela sera instantanément révélez-le comme un dépensier. 10 VER : Le vérificateur vérifie la signature en appliquant les transformations inverses : ( L' je = riG + ciPi R' je = riHp(Pi) + ciI Enfin, le vérificateur vérifie si nP je = 0 ci ?= Hs(m, L′ 0, . . . , L' n, R′ 0, . . . , R' n) modèle l Si cette égalité est correcte, le vérificateur exécute l'algorithme LNK. Sinon, le vérificateur rejette la signature. LNK : le vérificateur vérifie si I a été utilisé dans des signatures antérieures (ces valeurs sont stockées dans le définir I). Des utilisations multiples impliquent que deux signatures ont été produites sous la même clé secrète. Le sens du protocole : en appliquant des L-transformations le signataire prouve qu'il sait tel x qu'au moins un Pi = xG. Pour rendre cette preuve non répétable, nous introduisons l'image clé comme je = xHp(P). Le signataire utilise les mêmes coefficients (ri, ci) pour prouver presque la même affirmation : il connaît x tel qu'au moins un \(H_p(P_i) = I \cdot x^{-1}\). Si l'application \(x \to I\) est une injection : 1. Personne ne peut récupérer la clé publique à partir de l’image de clé et identifier le signataire ; 2. Le signataire ne peut pas faire deux signatures avec des I différents et le même x. Une analyse de sécurité complète est fournie à l’Annexe A. 4.5 Transaction CryptoNote standard En combinant les deux méthodes (clés publiques non liées et signature en anneau introuvable), Bob obtient nouveau niveau de confidentialité par rapport au programme Bitcoin original. Cela lui impose de stocker uniquement une clé privée (a, b) et publier (A, B) pour commencer à recevoir et à envoyer des transactions anonymes. Lors de la validation de chaque transaction, Bob effectue en outre uniquement deux multiplications de courbes elliptiques et une addition par sortie pour vérifier si une transaction lui appartient. Pour chacun de ses sortie Bob récupère une paire de clés unique (pi, Pi) et stil le met dans son portefeuille. Toutes les entrées peuvent être il est prouvé de manière circonstancielle qu'ils ont le même propriétaire seulement s'ils apparaissent dans une seule transaction. Dans En fait, cette relation est beaucoup plus difficile à établir en raison de la signature en anneau unique. Avec une signature en anneau, Bob peut efficacement cacher chaque entrée parmi celles de quelqu'un d'autre ; tout est possible les dépensiers seront équiprobables, même le propriétaire précédent (Alice) n'a pas plus d'informations que tout observateur. Lors de la signature de sa transaction, Bob précise n sorties étrangères du même montant que son sortie, en les mélangeant tous sans la participation d’autres utilisateurs. Bob lui-même (ainsi que quelqu'un d'autre) ne sait pas si l'un de ces paiements a été dépensé : un résultat peut être utilisé dans des milliers de signatures comme facteur d'ambiguïté et jamais comme cible de dissimulation. Le doublé Le contrôle des dépenses a lieu dans la phase LNK lors de la vérification par rapport à l'ensemble d'images clés utilisé. Bob peut choisir lui-même le degré d'ambiguïté : n = 1 signifie que la probabilité qu'il ait dépensé, la sortie est de 50 % de probabilité, n = 99 donne 1 %. La taille de la signature résultante augmente linéairement comme O(n+1), donc l'anonymat amélioré coûte à Bob des frais de transaction supplémentaires. Il peut aussi définissez n = 0 et faites en sorte que sa signature en anneau soit composée d'un seul élément, mais cela sera instantanément révélez-le comme un dépensier. 10 20 C'est intéressant ; plus tôt, nous avons fourni un moyen pour un récepteur, Bob, de transmettre tous les messages ENTRANTS transactions non dissociables soit en choisissant la moitié de ses clés privées de manière déterministe, soit en publier la moitié de ses clés privées comme publiques. Il s’agit d’une politique de non-retour. Ici, nous voyons une façon pour un expéditeur, Alex, de choisir une seule transaction sortante comme pouvant être liée, mais en fait ceci révèle Alex comme l'expéditeur de l'ensemble du réseau. Il ne s’agit PAS d’une politique sans retour en arrière. Il s'agit d'une transaction par transaction. Existe-t-il une troisième politique ? Un destinataire, Bob, peut-il générer un identifiant de paiement unique pour Alex qui ne change jamais, peut-être en utilisant un échange Diffie-Hellman ? Si quelqu'un inclut ce paiement Une pièce d'identité fournie quelque part dans sa transaction à l'adresse de Bob, elle doit provenir d'Alex. De cette façon, Alex n'a pas besoin de se révéler à l'ensemble du réseau en choisissant de lier un transaction, mais elle peut toujours s'identifier auprès de la personne à qui elle envoie son argent. N'est-ce pas ce que fait Poloniex ?

Transaction Entrée d'émission Sortie0 . . . Sortiei . . . Sortie Image clé Signature Signature de la bague Clé de destination Sortie1 Clé de destination Sortie Opérations à l'étranger Résultat de l'expéditeur Clé de destination Paire de clés à usage unique Une fois clé privée je = xHp(P) P, x Fig. 7. Génération de signature en anneau dans une transaction standard. 5 Preuve de travail égalitaire Dans cette section, nous proposons et mettons à la terre le nouvel algorithme proof-of-work. Notre objectif premier est de réduire l’écart entre les mineurs CPU (majoritaires) et GPU/FPGA/ASIC (minoritaires). C'est Il est approprié que certains utilisateurs puissent avoir un certain avantage sur d'autres, mais leurs investissements devrait croître au moins linéairement avec la puissance. Plus généralement, produire des appareils spécialisés doit être le moins rentable possible. 5.1 Œuvres connexes Le protocole Bitcoin proof-of-work d'origine utilise la fonction de tarification gourmande en CPU SHA-256. Il se compose principalement d'opérateurs logiques de base et repose uniquement sur la vitesse de calcul de processeur, est donc parfaitement adapté à la mise en œuvre multicœur/convoyeur. Cependant, les ordinateurs modernes ne sont pas limités uniquement par le nombre d'opérations par seconde, mais aussi par taille de mémoire. Bien que certains processeurs puissent être nettement plus rapides que d'autres [8], les tailles de mémoire sont moins susceptibles de varier entre les machines. Les fonctions de prix liées à la mémoire ont été introduites pour la première fois par Abadi et al et ont été définies comme « fonctions dont le temps de calcul est dominé par le temps passé à accéder à la mémoire » [15]. L’idée principale est de construire un algorithme allouant un gros bloc de données (« scratchpad ») dans une mémoire accessible relativement lentement (par exemple, la RAM) et « l’accès à un séquence imprévisible d'emplacements »à l'intérieur. Un bloc doit être suffisamment grand pour permettre la conservation les données plus avantageuses que de les recalculer pour chaque accès. L'algorithme devrait également empêcher le parallélisme interne, donc N threads simultanés devraient nécessiter N fois plus de mémoire à la fois. Dwork et al [22] ont étudié et formalisé cette approche les amenant à suggérer une autre variante de la fonction de tarification : « Mbound ». Une autre œuvre appartient à F. Coelho [20], qui 11 Transaction Entrée d'émission Sortie0 . . . Sortiei . . . Sortie Image clé Signature Signature de la bague Clé de destination Sortie1 Clé de destination Sortie Opérations à l'étranger Résultat de l'expéditeur Clé de destination Paire de clés à usage unique Une fois clé privée je = xHp(P) P, x Fig. 7. Génération de signature en anneau dans une transaction standard. 5 Preuve de travail égalitaire Dans cette section, nous proposons et mettons à la terre le nouvel algorithme proof-of-work. Notre objectif premier est de réduire l’écart entre les mineurs CPU (majoritaires) et GPU/FPGA/ASIC (minoritaires). C'est Il est approprié que certains utilisateurs puissent avoir un certain avantage sur d'autres, mais leurs investissements devrait croître au moins linéairement avec la puissance. Plus généralement, produire des appareils spécialisés doit être le moins rentable possible. 5.1 Œuvres connexes Le protocole Bitcoin proof-of-work d'origine utilise la fonction de tarification gourmande en CPU SHA-256. Il se compose principalement d'opérateurs logiques de base et repose uniquement sur la vitesse de calcul de processeur, est donc parfaitement adapté à la mise en œuvre multicœur/convoyeur. Cependant, les ordinateurs modernes ne sont pas limités uniquement par le nombre d'opérations par seconde, mais aussi par taille de mémoire. Bien que certains processeurs puissent être nettement plus rapides que d'autres [8], les tailles de mémoire sont moins susceptibles de varier entre les machines. Les fonctions de prix liées à la mémoire ont été introduites pour la première fois par Abadi et al et ont été définies comme « fonctions dont le temps de calcul est dominé par le temps passé à accéder à la mémoire » [15]. L’idée principale est de construire un algorithme allouant un gros bloc de données (« scratchpad ») dans une mémoire accessible relativement lentement (par exemple, la RAM) et « l’accès à un séquence imprévisible d'emplacements »à l'intérieur. Un bloc doit être suffisamment grand pour permettre la conservation les données plus avantageuses que de les recalculer pour chaque accès. L'algorithme devrait également empêcher le parallélisme interne, donc N threads simultanés devraient nécessiter N fois plus de mémoire à la fois. Dwork et al [22] ont étudié et formalisé cette approche les amenant à suggérer une autre variante de la fonction de tarification : « Mbound ». Une autre œuvre appartient à F. Coelho [20], qui 11 21 Ce sont apparemment nos UTXO : montants et clés de destination. Si Alex est celui qui construit cette transaction standard et l'envoie à Bob, alors Alex possède également les clés privées à chacun d'eux. J'aime beaucoup ce diagramme, car il répond à certaines questions précédentes. Une entrée Txn consiste d'un ensemble de sorties Txn et d'un kevotre image. Il est ensuite signé d'une signature en anneau, comprenant tous des clés privées qu'Alex possède pour toutes les transactions étrangères incluses dans la transaction. Le La sortie Txn se compose d’un montant et d’une clé de destination. Le destinataire de la transaction peut, à volonté, génèrent leur clé privée unique comme décrit précédemment dans le document afin de dépenser l'argent. Ce sera ravi de découvrir à quel point cela correspond au code réel... Non, Nic van Saberhagen décrit vaguement certaines propriétés d'un algorithme de preuve de travail, sans réellement décrire cet algorithme. L'algorithme CryptoNight lui-même EXIGERA une analyse approfondie. Quand j'ai lu ceci, j'ai bégayé. Les investissements devraient-ils croître au moins de façon linéaire avec le pouvoir, ou les investissements augmentent au plus linéairement avec le pouvoir ? Et puis j'ai réalisé ; En tant que mineur ou investisseur, je pense généralement à « quelle puissance puis-je obtenir ? pour un investissement ?" et non « combien d'investissement est nécessaire pour une quantité d'énergie fixée ? » Bien sûr, on note l'investissement par I et le pouvoir par P. Si I(P) est l'investissement en fonction du pouvoir et P(I) est la puissance en fonction de l’investissement, ils seront inverses l’un de l’autre (partout où des inverses peuvent exister). Et si I(P) est plus rapide que linéaire, alors P(I) est plus lent que linéaire. Par conséquent, le taux de rendement pour les investisseurs sera réduit. C'est-à-dire que ce que dit ici l'auteur est : « bien sûr, plus vous investissez, plus vous obtiendrez plus ». pouvoir. Mais nous devrions essayer d’en faire un taux de rendement réduit. » Les investissements en CPU finiront par plafonner de manière sublinéaire ; la question est de savoir si les auteurs ont conçu un algorithme POW qui obligera les ASIC à le faire également. Une hypothétique « monnaie du futur » devrait-elle toujours exploiter les ressources les plus lentes/les plus limitées ? L'article d'Abadi et al (dont les auteurs sont des ingénieurs de Google et de Microsoft) est le suivant : essentiellement, en utilisant le fait que ces dernières années la taille de la mémoire a été beaucoup plus petite différence entre les machines que la vitesse du processeur, et avec un rapport investissement/puissance plus que linéaire. Dans quelques années, il faudra peut-être réévaluer cela ! Tout est une course aux armements... Construire une fonction hash est difficile ; construire une fonction hash satisfaisant ces contraintes semble plus difficile. Cet article ne semble contenir aucune explication sur la réalité hashing algorithme CryptoNight. Je pense que c'est une implémentation de SHA-3 gourmande en mémoire, basée sur sur les messages du forum mais je n'en ai aucune idée... et c'est le point. Il faut l'expliquer.

a proposé la solution la plus efficace : « Hokkaido ». A notre connaissance le dernier travail basé sur l'idée de recherches pseudo-aléatoires dans un grand tableau est l'algorithme dit « scrypt » de C. Percival [32]. Contrairement aux fonctions précédentes, il se concentre sur dérivation de clé, et non les systèmes proof-of-work. Malgré ce fait, scrypt peut servir notre objectif : cela fonctionne bien comme fonction de tarification dans le problème de conversion partiel hash tel que SHA-256 dans Bitcoin. À présent, scrypt a déjà été appliqué dans Litecoin [14] et dans quelques autres forks Bitcoin. Cependant, sa mise en œuvre n'est pas vraiment liée à la mémoire : le rapport « temps d'accès mémoire / global » time » n’est pas assez grand car chaque instance n’utilise que 128 Ko. Cela permet aux mineurs GPU être environ 10 fois plus efficace et continue de laisser la possibilité de créer relativement des appareils miniers bon marché mais très efficaces. De plus, la construction du scrypt elle-même permet un compromis linéaire entre la taille de la mémoire et Vitesse du processeur due au fait que chaque bloc du bloc-notes est dérivé uniquement du précédent. Par exemple, vous pouvez stocker un bloc sur deux et recalculer les autres de manière paresseuse, c'est-à-dire uniquement quand cela devient nécessaire. Les indices pseudo-aléatoires sont supposés être uniformément distribués, donc la valeur attendue des recalculs des blocs supplémentaires est 1 \(2 \cdot N\), où N est le nombre d'itérations. Le temps de calcul global augmente de moins de moitié car il y a aussi opérations indépendantes du temps (temps constant) telles que la préparation du bloc-notes et le hashing sur chaque itération. Économiser 2/3 des coûts de mémoire 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N recalculs supplémentaires ; 9/10 résultats en 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Il est facile de montrer que stocker seulement 1 s de tous les blocs augmente le temps moins que d'un facteur s−1 2 . Cela implique à son tour qu'une machine dotée d'un processeur 200 fois plus rapide que les puces modernes, elles ne peuvent stocker que 320 octets du bloc-notes. 5.2 L'algorithme proposé Nous proposons un nouvel algorithme lié à la mémoire pour la fonction de tarification proof-of-work. Cela repose sur accès aléatoire à une mémoire lente et met l'accent sur la dépendance à la latence. Contrairement à crypter chaque le nouveau bloc (d’une longueur de 64 octets) dépend de tous les blocs précédents. En conséquence, une hypothétique « économiseur de mémoire » devrait augmenter sa vitesse de calcul de manière exponentielle. Notre algorithme nécessite environ 2 Mo par instance pour les raisons suivantes : 1. Il s'intègre dans le cache L3 (par cœur) des processeurs modernes, qui devraient devenir courants dans quelques années ; 2. Un mégaoctet de mémoire interne est une taille presque inacceptable pour un pipeline ASIC moderne ; 3. Les GPU peuvent exécuter des centaines d’instances simultanées, mais ils sont limités par d’autres moyens : La mémoire GDDR5 est plus lente que le cache CPU L3 et remarquable par sa bande passante, non vitesse d'accès aléatoire. 4. Une expansion significative du bloc-notes nécessiterait une augmentation du nombre d'itérations, ce qui en le tour implique une augmentation globale du temps. Les appels « lourds » dans un réseau p2p sans confiance peuvent conduire à de graves vulnérabilités, car les nœuds sont obligés de vérifier le proof-of-work de chaque nouveau bloc. Si un nœud passe beaucoup de temps sur chaque évaluation hash, il peut facilement être DDoSed par un flot de faux objets avec des données de travail arbitraires (valeurs nonce). 12 a proposé la solution la plus efficace : « Hokkaido ». A notre connaissance le dernier travail basé sur l'idée de recherches pseudo-aléatoires dans un grand tableau est l'algorithme dit « scrypt » de C. Percival [32]. Contrairement aux fonctions précédentes, il se concentre sur dérivation de clé, et non les systèmes proof-of-work. Malgré ce fait, scrypt peut servir notre objectif : cela fonctionne bien comme fonction de tarification dans le problème de conversion partiel hash tel que SHA-256 dans Bitcoin. À présent, scrypt a déjà été appliqué dans Litecoin [14] et dans quelques autres forks Bitcoin. Cependant, sa mise en œuvre n'est pas vraiment liée à la mémoire : le rapport « temps d'accès mémoire / global » time » n’est pas assez grand car chaque instance n’utilise que 128 Ko. Cela permet aux mineurs GPU être environ 10 fois plus efficace et continue de laisser la possibilité de créer relativement des appareils miniers bon marché mais très efficaces. De plus, la construction du scrypt elle-même permet un compromis linéaire entre la taille de la mémoire et Vitesse du processeur due au fait que chaque bloc du bloc-notes est dérivé uniquement du précédent. Par exemple, vous pouvez stocker un bloc sur deux et recalculer les autres de manière paresseuse, c'est-à-dire uniquement quand cela devient nécessaire. Les indices pseudo-aléatoires sont supposés être uniformément distribués, donc la valeur attendue des recalculs des blocs supplémentaires est 1 \(2 \cdot N\), oùN est le nombre d'itérations. Le temps de calcul global augmente de moins de moitié car il y a aussi opérations indépendantes du temps (temps constant) telles que la préparation du bloc-notes et le hashing sur chaque itération. Économiser 2/3 des coûts de mémoire 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N recalculs supplémentaires ; 9/10 résultats en 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Il est facile de montrer que stocker seulement 1 s de tous les blocs augmente le temps moins que d'un facteur s−1 2 . Cela implique à son tour qu'une machine dotée d'un processeur 200 fois plus rapide que les puces modernes, elles ne peuvent stocker que 320 octets du bloc-notes. 5.2 L'algorithme proposé Nous proposons un nouvel algorithme lié à la mémoire pour la fonction de tarification proof-of-work. Cela repose sur accès aléatoire à une mémoire lente et met l'accent sur la dépendance à la latence. Contrairement à crypter chaque le nouveau bloc (d’une longueur de 64 octets) dépend de tous les blocs précédents. En conséquence, une hypothétique « économiseur de mémoire » devrait augmenter sa vitesse de calcul de manière exponentielle. Notre algorithme nécessite environ 2 Mo par instance pour les raisons suivantes : 1. Il s'intègre dans le cache L3 (par cœur) des processeurs modernes, qui devraient devenir courants dans quelques années ; 2. Un mégaoctet de mémoire interne est une taille presque inacceptable pour un pipeline ASIC moderne ; 3. Les GPU peuvent exécuter des centaines d’instances simultanées, mais ils sont limités par d’autres moyens : La mémoire GDDR5 est plus lente que le cache CPU L3 et remarquable par sa bande passante, non vitesse d'accès aléatoire. 4. Une expansion significative du bloc-notes nécessiterait une augmentation du nombre d'itérations, ce qui en le tour implique une augmentation globale du temps. Les appels « lourds » dans un réseau p2p sans confiance peuvent conduire à vulnérabilités graves, car les nœuds sont obligés de vérifier le proof-of-work de chaque nouveau bloc. Si un nœud passe beaucoup de temps sur chaque évaluation hash, il peut facilement être DDoSed par un flot de faux objets avec des données de travail arbitraires (valeurs nonce). 12 22 Peu importe, c’est une pièce secrète ? Où est l'algorithme ? Tout ce que je vois, c'est une publicité. C’est là que Cryptonote, si son algorithme PoW en vaut la peine, brillera vraiment. Ce n'est pas vraiment SHA-256, ce n'est pas vraiment un scrypt. C’est nouveau, lié à la mémoire et non récursif.

6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate croît ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l'équilibrage des coûts et le profit des frais et fixe ses propres « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate croît ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l’équilibrage dese coûte et profite des honoraires et fixe les siens « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 23 Unités atomiques. J'aime ça. Est-ce l'équivalent des Satoshis ? Si tel est le cas, cela signifie qu’il y aura 185 milliards de cryptonotes. Je sais que cela doit éventuellement être modifié en quelques pages, ou peut-être y a-t-il une faute de frappe ? Si la récompense de base est « toutes les pièces restantes », alors un seul bloc suffit pour obtenir toutes les pièces. Instaminer. D'un autre côté, si l'on suppose que cela est proportionnel d'une manière ou d'une autre à la différence de temps entre maintenant et une date de fin de production de pièces de monnaie ? Ce serait avoir du sens. De plus, dans mon monde, deux signes plus grands que comme celui-ci signifient « bien plus grand que ». L'auteur est-il peut-être vouloir dire autre chose ? Si l'ajustement à la difficulté se produit à chaque bloc, alors un attaquant pourrait disposer d'une très grande ferme de ressources. les machines exploitent et s'éteignent à des intervalles de temps soigneusement choisis. Cela pourrait provoquer une explosion chaotique (ou un crash à zéro) en difficulté, si les formules d’ajustement de la difficulté ne sont pas correctement amorties. Sans doute que la méthode de Bitcoin est inadaptée aux recalculs rapides, mais la notion d'inertie dans ces systèmes devraient être prouvés et non tenus pour acquis. De plus, les oscillations Les difficultés de réseau ne constituent pas nécessairement un problème, à moins qu’elles n’entraînent des oscillations de paramètres ostensibles. l'approvisionnement en pièces de monnaie - et le fait d'avoir une difficulté évoluant très rapidement pourrait provoquer une « sur-correction ». Le temps passé, surtout sur un laps de temps court comme quelques minutes, sera proportionnel au « total nombre de blocs créés sur le réseau." La constante de proportionnalité va elle-même croître au fil du temps, probablement de façon exponentielle si le CN décolle. Il serait peut-être préférable d'ajuster simplement la difficulté pour conserver le "total des blocs créés sur le terrain". réseau depuis que le dernier bloc a été ajouté à la chaîne principale" dans une certaine valeur constante, ou avec variation limitée ou quelque chose comme ça. Si un algorithme adaptatif informatique facile à mettre en œuvre peut être déterminé, cela semblerait résoudre le problème. Mais ensuite, si nous utilisions cette méthode, quelqu'un possédant une grande ferme minière pourrait fermer sa ferme. pendant quelques heures, puis rallumez-le. Pendant les premiers blocs, cette ferme fera banque. Donc effectivement, cette méthode soulèverait un point intéressant : le minage devient (en moyenne) un perdre la partie sans retour sur investissement, d’autant plus que de plus en plus de personnes se connectent au réseau. Si la difficulté minière réseau très étroitement suivi hashrate, je doute d'une manière ou d'une autre que les gens exploiteraient autant qu'eux fais actuellement. Ou, d’un autre côté, au lieu de maintenir leurs fermes minières en activité 24 heures sur 24 et 7 jours sur 7, ils peuvent les transformer en allumé pendant 6 heures, éteint pendant 2, allumé pendant 6 heures, éteint pendant 2, ou quelque chose comme ça. Passez simplement à une autre pièce pendant quelques heures, attendez que les difficultés disparaissent, puis remontez à bord pour gagner ces quelques extras. des blocs de rentabilité à mesure que le réseau s’adapte. Et tu sais quoi ? C'est en fait probablement l'un des meilleurs scénarios miniers auxquels j'ai pensé... Cela pourrait être circulaire, mais si le temps de création du bloc est en moyenne d'environ une minute, pouvons-nous simplement utiliser le nombre de blocs comme indicateur du « temps passé ? »

6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate croît ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l'équilibrage des coûts et le profit des frais et fixe ses propres « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate croît ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l’équilibrage dese coûte et profite des honoraires et fixe les siens « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 24 D'accord, nous avons donc un blockchain, et chaque bloc a des horodatages EN PLUS du simple fait d'être commandé. Cela a clairement été inséré simplement pour résoudre des difficultés d'ajustement, car les horodatages sont très peu fiable, comme mentionné. Sommes-nous autorisés à avoir des horodatages contradictoires dans la chaîne ? Si le bloc A précède le bloc B dans la chaîne et que tout est cohérent en termes de finances, mais le bloc A semble avoir été créé après le bloc B ? Parce que, peut-être, quelqu'un possédait une grande partie du réseau ? Est-ce que ça va ? Probablement parce que les finances ne sont pas en mauvais état. D'accord, donc je déteste cet arbitraire "seulement 80 % des blocages sont légitimes pour le blockchain principal" approche. C'était destiné à empêcher les menteurs de modifier leurs horodatages ? Mais maintenant, il ajoute une incitation pour tout le monde à mentir sur son horodatage et à simplement choisir la médiane. Veuillez définir. Cela signifie "pour ce bloc, n'inclure que les transactions qui incluent des frais supérieurs que p%, de préférence avec des frais supérieurs à 2p%" ou quelque chose comme ça ? Qu’entendent-ils par faux ? Si la transaction est conforme à l'historique du blockchain, et la transaction comprend des frais qui satisfont les mineurs, n'est-ce pas suffisant ? Eh bien, non, pas nécessairement. \(S'\)il n'existe aucune taille de bloc maximale, rien ne peut retenir un utilisateur malveillant du simple téléchargement d'un bloc massif de transactions sur lui-même en une seule fois juste pour ralentir le réseau. Une règle fondamentale concernant la taille maximale des blocs empêche les gens de mettre d'énormes quantités de déchets données sur le blockchain d'un seul coup juste pour ralentir les choses. Mais une telle règle doit certainement être adaptatif : pendant la période de Noël, par exemple, nous pourrions nous attendre à une augmentation du trafic, et la taille du bloc devient très grande, et immédiatement après, pour que la taille du bloc diminue par la suite encore une fois. Nous avons donc besoin soit a) d’une sorte de plafond adaptatif, soit b) d’un plafond suffisamment grand pour que 99 % des des pics de Noël raisonnables ne brisent pas le plafond. Bien sûr, ce deuxième est impossible à estimation – qui sait si une monnaie fera son chemin ? Mieux vaut le rendre adaptatif et ne pas s'inquiéter à ce sujet. Mais nous sommes alors confrontés à un problème de théorie du contrôle : comment rendre cela adaptatif sans vulnérabilité aux attaques ou oscillations sauvages et folles ? Notez qu'une méthode adaptative n'empêche pas les utilisateurs malveillants d'accumuler de petites sommes de données indésirables au fil du temps sur le blockchain pour provoquer un gonflement à long terme. C'est un problème différent dans l’ensemble et avec lequel les pièces cryptonotes ont de sérieux problèmes.

6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate croît ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l'équilibrage des coûts et le profit des frais et fixe ses propres « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 6 Autres avantages 6.1 Émission douce La limite supérieure du montant total des pièces numériques CryptoNote est : MSupply = 264 −1 unités atomiques. Il s'agit d'une restriction naturelle basée uniquement sur les limites de mise en œuvre, et non sur l'intuition. comme « Les pièces N devraient suffire à tout le monde ». Pour garantir la fluidité du processus d'émission, nous utilisons la formule suivante pour le bloc récompenses : BaseReward = (MSupply −A) ≫18, où A est le nombre de pièces précédemment générées. 6.2 Paramètres réglables 6.2.1 Difficulté CryptoNote contient un algorithme de ciblage qui modifie la difficulté de chaque bloc. Ceci diminue le temps de réaction du système lorsque le réseau hashrate augmente ou diminue intensément, en préservant un taux de bloc constant. La méthode originale Bitcoin calcule la relation entre le réel et cibler l'intervalle de temps entre les derniers blocs de 2016 et l'utilise comme multiplicateur pour le courant difficulté. Cela ne convient évidemment pas aux recalculs rapides (en raison de la grande inertie) et entraîne des oscillations. L'idée générale derrière notre algorithme est de résumer tout le travail effectué par les nœuds et divisez-le par le temps qu'ils ont passé. La mesure du travail est constituée des valeurs de difficulté correspondantes dans chaque bloc. Mais en raison d'horodatages inexacts et peu fiables, nous ne pouvons pas déterminer l'heure exacte. intervalle de temps entre les blocs. Un utilisateur peut décaler son horodatage dans le futur et la prochaine fois les intervalles peuvent être incroyablement petits, voire négatifs. Vraisemblablement, il y aura peu d'incidents de ce type, nous pouvons donc simplement trier les horodatages et supprimer les valeurs aberrantes (c'est-à-dire 20 %). La gamme de les valeurs de repos sont le temps qui a été passé pour 80% des blocs correspondants. 6.2.2 Limites de taille Les utilisateurs paient pour stocker le blockchain et ont le droit de voter pour sa taille. Chaque mineur traite du compromis entre l’équilibrage dese coûte et profite des honoraires et fixe les siens « soft-limit » pour créer des blocs. La règle de base concernant la taille maximale des blocs est également nécessaire pour empêchant le blockchain d'être inondé de fausses transactions, cependant cette valeur devrait ne pas être codé en dur. Soit MN la valeur médiane des N dernières tailles de blocs. Ensuite, la « limite stricte » pour la taille de blocs accepteurs est de \(2 \cdot M_N\). Il évite les ballonnements au blockchain tout en permettant à la limite de grandir lentement avec le temps si nécessaire. La taille des transactions n’a pas besoin d’être limitée explicitement. Il est délimité par la taille d’un bloc ; et si quelqu'un veut créer une énorme transaction avec des centaines d'entrées/sorties (ou avec le degré élevé d'ambiguïté des signatures en anneau), il peut le faire en payant des frais suffisants. 6.2.3 Pénalité de taille excédentaire Un mineur a toujours la possibilité de remplir un bloc de ses propres transactions sans frais jusqu'à son maximum. taille 2 \(\cdot\) Mo. Même si seule la majorité des mineurs peuvent modifier la valeur médiane, il existe toujours un 13 25 En redimensionnant le temps de sorte qu'une unité de temps corresponde à N blocs, la taille moyenne des blocs pourrait encore, en théorie, croître de manière exponentielle proportionnellement à 2 t . En revanche, un plafond plus général sur le bloc suivant serait M_nf(M_n) pour une fonction f. Quelles propriétés de f seraient choisissons-nous afin de garantir une certaine « croissance raisonnable » de la taille des blocs ? La progression de la taille des blocs (après le temps de redimensionnement) ressemblerait à ceci : 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( ... Et le but ici est de choisir f tel que cette suite ne croisse pas plus vite que, disons, linéairement, ou peut-être même comme Log(t). Bien sûr, si f(M_n) = a pour une constante a, cette séquence est en fait M_n aM_n aˆ2M_n aˆ3M_n ... Et, bien sûr, la seule façon de limiter cela à une croissance au plus linéaire est de choisir a=1. C’est évidemment irréalisable. Cela ne permet pas du tout la croissance. Si, par contre, f(M_n) est une fonction non constante, alors la situation est bien plus compliqué et peut permettre une solution élégante. Je vais y réfléchir pendant un moment. Ces frais devront être suffisamment élevés pour réduire la pénalité de taille excédentaire de la section suivante. Pourquoi un utilisateur général est-il supposé être un homme, hein ? Hein ?

possibilité de gonfler le blockchain et de produire une charge supplémentaire sur les nœuds. Décourager participants malveillants de créer de gros blocs, nous introduisons une fonction de pénalité : NouvelleRécompense = Récompense de Base \(\cdot\) Taille Noir MN −1 2 Cette règle s'applique uniquement lorsque BlkSize est supérieure à la taille minimale du bloc libre qui devrait être proche du maximum (10 Ko, \(M_N \cdot 110\%\)). Les mineurs sont autorisés à créer des blocs de « taille habituelle » et même dépassez-le avec profit lorsque les frais globaux dépassent la pénalité. Mais il est peu probable que les frais augmentent quadratiquement différent de la valeur de la pénalité, il y aura donc un équilibre. 6.3 Scripts de transactions CryptoNote possède un sous-système de script très minimaliste. Un expéditeur spécifie une expression Φ = f (x1, x2, . . . , xn), où n est le nombre de clés publiques de destination {Pi}n je = 1. Seulement cinq binaires les opérateurs sont pris en charge : min, max, sum, mul et cmp. Lorsque le destinataire dépense ce paiement, il produit \(0 \leq k \leq n\) signatures et les transmet à l'entrée de la transaction. Le processus de vérification évalue simplement Φ avec xi = 1 pour vérifier une signature valide pour la clé publique Pi, et xi = 0. Un vérificateur accepte la preuve si > 0. Malgré sa simplicité, cette approche couvre tous les cas possibles : • Signature multi-/seuil. Pour la multi-signature « M-out-of-N » de style Bitcoin (c.-à-d. le récepteur doit fournir au moins \(0 \leq M \leq N\) signatures valides) Φ = x1+x2+. . .+xN \(\geq M\) (pour plus de clarté, nous utilisons une notation algébrique commune). La signature seuil pondérée (certaines clés peuvent être plus importantes que d’autres) pourrait être exprimée sous la forme Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Et scénario où le passe-partout correspond à Φ = max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Il est facile de montrer que tout cas complexe peut être exprimés avec ces opérateurs, c'est-à-dire qu'ils constituent la base. • Protection par mot de passe. La possession d'un mot de passe secret équivaut à la connaissance de une clé privée, dérivée de manière déterministe du mot de passe : k = KDF(s). Donc un récepteur peut prouver qu'il connaît le mot de passe en fournissant une autre signature sous la clé k. L'expéditeur ajoute simplement la clé publique correspondante à sa propre sortie. Notez que ceci La méthode est beaucoup plus sécurisée que le « puzzle de transaction » utilisé dans Bitcoin [13], où le le mot de passe est explicitement transmis dans les entrées. • Cas dégénérés. Φ = 1 signifie que n’importe qui peut dépenser de l’argent ; Φ = 0 marque le la production n’est pas dépensable pour toujours. Dans le cas où le script de sortie combiné aux clés publiques est trop volumineux pour un expéditeur, il peut utiliser un type de sortie spécial, qui indique que le destinataire mettra ces données dans son entrée alors que l'expéditeur n'en fournit qu'un hash. Cette approche est similaire au « pay-to-hash » de Bitcoin. fonctionnalité, mais au lieu d'ajouter de nouvelles commandes de script, nous traitons ce cas au niveau de la structure des données niveau. 7 Conclusion Nous avons étudié les défauts majeurs de Bitcoin et proposé quelques solutions possibles. Ces fonctionnalités avantageuses et notre développement continu font du nouveau système de paiement électronique CryptoNote un sérieux rival de Bitcoin, surclassant toutes ses fourchettes. 14 possibilité de gonfler le blockchain et de produire une charge supplémentaire sur les nœuds. Décourager participants malveillants de créer de gros blocs, nous introduisons une fonction de pénalité : NouvelleRécompense = Récompense de Base \(\cdot\) Taille Noir MN −1 2 Cette règle s'applique uniquement lorsque BlkSize est supérieure à la taille minimale du bloc libre qui devrait être proche du maximum (10 Ko, \(M_N \cdot 110\%\)). Les mineurs sont autorisés à créer des blocs de « taille habituelle » et même dépassez-le avec profit lorsque les frais globaux dépassent la pénalité. Mais il est peu probable que les frais augmentent quadratiquement différent de la valeur de la pénalité, il y aura donc un équilibre. 6.3 Scripts de transactions CryptoNote possède un sous-système de script très minimaliste. Un expéditeur spécifie une expression Φ = f (x1, x2, . . . , xn), où n est le nombre de clés publiques de destination {Pi}n je = 1. Seulement cinq binaires les opérateurs sont pris en charge : min, max, sum, mul et cmp. Lorsque le destinataire dépense ce paiement, il produit \(0 \leq k \leq n\) signatures et les transmet à l'entrée de la transaction. Le processus de vérification évalue simplement Φ avec xi = 1 pour vérifier une signature valide pour la clé publique Pi, et xi = 0. Un vérificateur accepte la preuve si > 0. Malgré sa simplicité, cette approche couvre tous les cas possibles : • Signature multi-/seuil. Pour la multi-signature « M-out-of-N » de style Bitcoin (c.-à-d. le récepteur doit fournir au moins \(0 \leq M \leq N\) signatures valides) Φ = x1+x2+. . .+xN \(\geq M\) (pour plus de clarté, nous utilisons une notation algébrique commune). La signature seuil pondérée (certaines clés peuvent être plus importantes que d’autres) pourrait être exprimée sous la forme Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Et le scénarioio où le passe-partout correspond à Φ = max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Il est facile de montrer que tout cas complexe peut être exprimés avec ces opérateurs, c'est-à-dire qu'ils constituent la base. • Protection par mot de passe. La possession d'un mot de passe secret équivaut à la connaissance de une clé privée, dérivée de manière déterministe du mot de passe : k = KDF(s). Donc un récepteur peut prouver qu'il connaît le mot de passe en fournissant une autre signature sous la clé k. L'expéditeur ajoute simplement la clé publique correspondante à sa propre sortie. Notez que ceci La méthode est beaucoup plus sécurisée que le « puzzle de transaction » utilisé dans Bitcoin [13], où le le mot de passe est explicitement transmis dans les entrées. • Cas dégénérés. Φ = 1 signifie que n’importe qui peut dépenser de l’argent ; Φ = 0 marque le la production n’est pas dépensable pour toujours. Dans le cas où le script de sortie combiné aux clés publiques est trop volumineux pour un expéditeur, il peut utiliser un type de sortie spécial, qui indique que le destinataire mettra ces données dans son entrée alors que l'expéditeur n'en fournit qu'un hash. Cette approche est similaire au « pay-to-hash » de Bitcoin. fonctionnalité, mais au lieu d'ajouter de nouvelles commandes de script, nous traitons ce cas au niveau de la structure des données niveau. 7 Conclusion Nous avons étudié les défauts majeurs de Bitcoin et proposé quelques solutions possibles. Ces fonctionnalités avantageuses et notre développement continu font du nouveau système de paiement électronique CryptoNote un sérieux rival de Bitcoin, surclassant toutes ses fourchettes. 14 26 Cela peut être inutile si nous pouvons trouver un moyen de limiter la taille des blocs au fil du temps... Cela ne peut pas non plus être correct. Ils ont juste réglé "NewReward" sur une parabole orientée vers le haut où la taille du bloc est la variable indépendante. Ainsi une nouvelle récompense explose à l’infini. Si, d'autre part main, la nouvelle récompense est Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)), puis la nouvelle récompense serait une parabole orientée vers le bas avec un pic à la taille du bloc = Mn et avec des intersections à Taille du bloc = 0 et Taille du bloc = 2Mn. Et c’est apparemment ce qu’ils tentent de décrire. Toutefois, cela ne

تحليل

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 بايت بينما الغرض الوحيد منه هو التحقق مما إذا كان المتلقي يمتلك ملف المفتاح السري مطلوب للتحقق من توقيعه.

Analyse

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

5 Cela n’a pas vraiment d’importance lorsqu’un milliard de personnes dans le monde vivent avec moins d’un dollar par an. jour et n'avons aucun espoir de participer un jour à une quelconque sorte de réseau minier... mais un avenir économique un monde piloté par un système monétaire p2p avec un processeur, une voix serait, vraisemblablement, plus plus juste qu’un système piloté par des banques à réserves fractionnaires. Mais le protocole de Cryptonote exige tout de même 51% d'utilisateurs honnêtes... voir par exemple le Cryptonote forums où l'un des développeurs, Pliskov, affirme qu'une attaque traditionnelle de remplacement des données sur leblockchain 51 % peut toujours fonctionner. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 Notez que vous n’avez pas vraiment besoin de 51 % d’utilisateurs honnêtes. Vous avez juste vraiment besoin de "pas un seul malhonnête faction détenant plus de 51 % de la puissance hashing du réseau." Appelons ce soi-disant problème du Bitcoin « rigidité adaptative ». La solution de Cryptonote pour l'adaptation la rigidité est la flexibilité adaptative dans les valeurs des paramètres du protocole. Si vous avez besoin de blocs de plus grande taille, pas de problème, le réseau s'est ajusté en douceur tout le temps. C'est à dire, la façon dont Bitcoin ajuste la difficulté au fil du temps peut être reproduite dans l'ensemble de notre protocole paramètres de sorte qu’il n’est pas nécessaire d’obtenir un consensus du réseau pour mettre à jour le protocole. En apparence, cela semble être une bonne idée, mais sans une réflexion approfondie, un système d'auto-ajustement le système peut devenir assez imprévisible et chaotique. Nous y reviendrons plus en détail plus tard, à mesure que des opportunités se présentent. Les « bons » systèmes se situent quelque part entre la rigidité adaptative et le système adaptatif. flexible, et peut-être même la rigidité elle-même est adaptative. Si nous avions vraiment « un processeur, une voix », alors collaborer et développer des pools pour atteindre 51 % serait plus difficile. Nous nous attendrions à ce que tous les processeurs du monde exploitent le minage, depuis les téléphones au processeur intégré de votre Tesla pendant la charge. http://en.wikipedia.org/wiki/Pareto_principle Je prétends que l’équilibre de Pareto est quelque peu inévitable. Soit 20% du système sera possédera 80 % des processeurs, ou 20 % du système détiendra 80 % des ASIC. J'émets cette hypothèse parce que la répartition sous-jacente de la richesse dans la société présente déjà la distribution de Pareto, et à mesure que de nouveaux mineurs rejoignent, ils sont tirés de cette distribution sous-jacente. Cependant, je soutiens que les protocoles avec un processeur, un vote entraîneront un retour sur investissement sur le matériel. Bloquer la récompense par nœud sera plus étroitement proportionnelle au nombre de nœuds dans le réseau car la répartition des performances entre les nœuds sera beaucoup plus serrée. Bitcoin, d'autre part d’autre part, voit une récompense de bloc (par nœud) plus proportionnelle à la capacité de calcul de celui-ci. nœud. Autrement dit, seuls les « grands » sont encore dans le jeu minier. D'un autre côté, même si le principe de Pareto sera toujours en jeu, dans un monde à un processeur, une voix, tout le monde participe à la sécurité du réseau et gagne un peu de revenus miniers. Dans un monde ASIC, il n’est pas judicieux d’installer chaque XBox et téléphone portable sur le mien. Dans un monde à un processeur, à une voix, c’est très judicieux en termes de récompense minière. En conséquence délicieuse, obtenir 51 % des suffrages est plus difficile quand il y a de plus en plus de voix, ce qui donne un joli résultat. avantage pour la sécurité du réseau.matériel décrit précédemment. Supposons que le taux global de hash diminue de manière significative, même pour un instant, il peut désormais utiliser son pouvoir minier pour bifurquer la chaîne et doubler ses dépenses. Comme nous le verrons plus loin dans cet article, il n’est pas improbable que l’événement décrit précédemment se produise. 2.3 Émission irrégulière Bitcoin a un taux d'émission prédéterminé : chaque bloc résolu produit une quantité fixe de pièces. Environ tous les quatre ans, cette récompense est réduite de moitié. L'intention initiale était de créer un émission douce limitée avec décroissance exponentielle, mais en fait nous avons une émission linéaire par morceaux fonction dont les points d'arrêt peuvent causer des problèmes à l'infrastructure Bitcoin. Lorsque le point d'arrêt survient, les mineurs commencent à recevoir seulement la moitié de la valeur de leur précédent récompense. La différence absolue entre 12,5 et 6,25 BTC (projetée pour l'année 2020) pourrait semblent tolérables. Cependant, en examinant la baisse de 50 à 25 BTC survenue en novembre 28 2012, semblait inapproprié pour un nombre important de membres de la communauté minière. Chiffre 1 montre une baisse spectaculaire du hashtarif du réseau à la fin du mois de novembre, exactement au moment où le la réduction de moitié a eu lieu. Cet événement aurait pu être le moment idéal pour l'individu malveillant décrit dans la section fonction proof-of-work pour mener une attaque à double dépense [36]. Figure 1. Tableau des taux Bitcoin hash (source : http://bitcoin.sipa.be) 2.4 Constantes codées en dur Bitcoin comporte de nombreuses limites codées en dur, dont certaines sont des éléments naturels de la conception originale (par ex. fréquence de blocage, montant maximum de la masse monétaire, nombre de confirmations) alors que d'autres semblent être des contraintes artificielles. Ce ne sont pas tant les limites que l'incapacité de changer rapidement 3 matériel décrit précédemment. Supposons que le taux global de hash diminue de manière significative, même pour un instant, il peut désormais utiliser son pouvoir minier pour bifurquer la chaîne et doubler ses dépenses. Comme nous le verrons plus loin dans cet article, il n’est pas improbable que l’événement décrit précédemment se produise. 2.3 Émission irrégulière Bitcoin a un taux d'émission prédéterminé : chaque bloc résolu produit une quantité fixe de pièces. Environ tous les quatre ans, cette récompense est réduite de moitié. L'intention initiale était de créer un émission douce limitée avec décroissance exponentielle, mais en fait nous avons une émission linéaire par morceaux fonction dont les points d'arrêt peuvent causer des problèmes à l'infrastructure Bitcoin. Lorsque le point d'arrêt survient, les mineurs commencent à recevoir seulement la moitié de la valeur de leur précédent récompense. La différence absolue entre 12,5 et 6,25 BTC (projetée pour l'année 2020) pourrait semblent tolérables. Cependant, en examinant la baisse de 50 à 25 BTC survenue en novembre 28 2012, semblait inapproprié pour un nombre important de membres de la communauté minière. Chiffre 1 montre une baisse spectaculaire du hashtarif du réseau à la fin du mois de novembre, exactement au moment où le la réduction de moitié a eu lieu. Cet événement aurait pu être le moment idéal pour l'individu malveillant décrit dans la section fonction proof-of-work pour mener une attaque à double dépense [36]. Figure 1. Tableau des taux Bitcoin hash (source : http://bitcoin.sipa.be) 2.4 Constantes codées en dur Bitcoin comporte de nombreuses limites codées en dur, dont certaines sont des éléments naturels de la conception originale (par ex. fréquence de blocage, montant maximum de la masse monétaire, nombre de confirmations) alors que d'autres semblent être des contraintes artificielles. Ce ne sont pas tant les limites que l'incapacité de changer rapidement 3 6 Appelons cela comme ça, une attaque de zombies. Discutons de ce que peut être l'émission continue lié à un processeur, un vote dans un scénario d'attaque de zombies. Dans un monde à un processeur, une voix, chaque téléphone portable et chaque voiture, lorsqu'ils sont inutilisés, seraient exploités. Collecter des tas de matériel bon marché pour créer une ferme minière serait très très simple, car il suffit de à peu près tout contient un processeur. En revanche, à ce stade, le nombre de processeurs nécessaire pour lancer une attaque à 51% serait assez étonnant, je pense. De plus, précisément parce qu'il serait facile de collecter du matériel bon marché, nous pouvons raisonnablement nous attendre à un beaucoup de gens commencent à accumuler n'importe quoi avec un processeur. La course aux armements dans un monde « un processeur, une voix » est forcément plus égalitaire que dans un monde ASIC. D'où une discontinuité dans le réseau la sécurité due aux taux d'émission devrait être MOINS un problème dans un monde à un processeur, une voix. Cependant, deux faits demeurent : 1) la discontinuité du taux d'émission peut conduire à un effet de bégaiement dans l'économie et la sécurité des réseaux, ce qui est mauvais, et 2) même si une attaque de 51 % effectué par quelqu'un collectant du matériel bon marché peut toujours se produire dans un processeur unique-votez le monde, il semble que cela devrait être plus difficile. Vraisemblablement, la protection contre cela est que tous les acteurs malhonnêtes tenteront cela. simultanément, et nous revenons à la notion de sécurité précédente de Bitcoin : "nous n'exigeons aucun faction pour contrôler plus de 51% du réseau. L'auteur affirme ici que l'un des problèmes du Bitcoin est la discontinuité dans l'émission des pièces. Ce taux pourrait entraîner une baisse soudaine de la participation au réseau, et donc de la sécurité du réseau. Ainsi, un taux d’émission de pièces continu, différenciable et régulier est préférable. L’auteur n’a pas forcément tort. Toute sorte de diminution soudaine de la participation au réseau peut conduire à un tel problème, et si nous pouvons en supprimer une source, nous devrions le faire. Cela dit, c'est Il est possible que de longues périodes d'émission de pièces de monnaie « relativement constantes » ponctuées de changements soudains est la voie idéale à suivre d’un point de vue économique. Je ne suis pas économiste. Alors, peut-être que nous devons décider si nous allons échanger la sécurité des réseaux contre quelque chose d’économique – qu’est-ce qu’il y a ici ? http://arxiv.org/abs/1402.2009si nécessaire, cela provoque les principaux inconvénients. Malheureusement, il est difficile de prédire quand les constantes devront peut-être être modifiées et leur remplacement peut avoir des conséquences terribles. Un bon exemple de changement de limite codé en dur conduisant à des conséquences désastreuses est le blocage limite de taille fixée à 250 Ko1. Cette limite était suffisante pour contenir environ 10 000 transactions standards. Dans début 2013, cette limite était presque atteinte et un accord a été trouvé pour augmenter le limite. Le changement a été implémenté dans la version 0.8 du portefeuille et s'est terminé par une division de chaîne de 24 blocs. et une attaque réussie de double dépense [9]. Bien que le bug ne soit pas dans le protocole Bitcoin, mais au contraire, dans le moteur de base de données, il aurait pu être facilement détecté par un simple test de résistance s'il y avait eu aucune limite de taille de bloc introduite artificiellement. Les constantes agissent également comme une forme de point de centralisation. Malgré la nature peer-to-peer de Bitcoin, une écrasante majorité de nœuds utilisent le client de référence officiel [10] développé par un petit groupe de personnes. Ce groupe prend la décision de mettre en œuvre des modifications au protocole et la plupart des gens acceptent ces changements indépendamment de leur « exactitude ». Certaines décisions ont provoqué discussions animées et même appels au boycott [11], ce qui indique que la communauté et le les développeurs peuvent être en désaccord sur certains points importants. Il semble donc logique d'avoir un protocole avec des variables configurables par l'utilisateur et auto-ajustables comme moyen possible d'éviter ces problèmes. 2.5 Scripts volumineux Le système de script de Bitcoin est une fonctionnalité lourde et complexe. Cela permet potentiellement de créer transactions sophistiquées [12], mais certaines de ses fonctionnalités sont désactivées en raison de problèmes de sécurité et certains n'ont même jamais été utilisés [13]. Le script (y compris les parties des expéditeurs et des destinataires) pour la transaction la plus populaire en Bitcoin ressemble à ceci : OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Le script fait 164 octets alors que son seul but est de vérifier si le récepteur possède le clé secrète nécessaire pour vérifier sa signature.