CryptoNote v2.0
الورقة المقدَّمة هنا هي الورقة البيضاء CryptoNote v2.0 بقلم Nicolas van Saberhagen (2013)، التي تصف الأسس التشفيرية التي يقوم عليها Monero. وهي ليست ورقةً بيضاءَ خاصةً بـ Monero — إذ انطلق Monero عام 2014 بوصفه تفرُّعاً من التطبيق المرجعي لـ CryptoNote (Bytecoin) وتطوّر منذ ذلك الحين بصورة ملحوظة عمّا نصّ عليه البروتوكول الأصلي.
مقدمة
لقد كان "Bitcoin" [1] بمثابة تطبيق ناجح لمفهوم النقد الإلكتروني p2p. كلاهما لقد أصبح المحترفون وعامة الناس يقدرون المزيج المناسب من المعاملات العامة و proof-of-work كنموذج ثقة. اليوم، قاعدة مستخدمي النقد الإلكتروني ينمو بوتيرة ثابتة. ينجذب العملاء إلى الرسوم المنخفضة وعدم الكشف عن هويتهم المقدمة بواسطة النقود الإلكترونية ويقدر التجار انبعاثاتها المتوقعة واللامركزية. Bitcoin لديه لقد أثبت بشكل فعال أن النقد الإلكتروني يمكن أن يكون بسيطًا مثل النقود الورقية ومريحًا مثل النقود الورقية بطاقات الائتمان. لسوء الحظ، Bitcoin يعاني من العديد من أوجه القصور. على سبيل المثال، يتم توزيع النظام الطبيعة غير مرنة، مما يمنع تنفيذ الميزات الجديدة حتى يقوم جميع مستخدمي الشبكة تقريبًا بتحديث عملائهم. بعض العيوب الخطيرة التي لا يمكن إصلاحها بسرعة تعيق Bitcoin انتشار واسع النطاق. في مثل هذه النماذج غير المرنة، يكون من الأكثر كفاءة طرح مشروع جديد بدلاً من إصلاح المشروع الأصلي بشكل دائم. في هذا البحث نقوم بدراسة واقتراح الحلول لأوجه القصور الرئيسية في Bitcoin. نحن نعتقد أن النظام الذي يأخذ في الاعتبار الحلول التي نقترحها سيؤدي إلى منافسة صحية بين أنظمة النقد الإلكترونية المختلفة. نقترح أيضًا عملتنا النقدية الإلكترونية الخاصة، "CryptoNote"، اسم يؤكد على التقدم القادم في مجال النقد الإلكتروني.
Einführung
„Bitcoin“ [1] ist eine erfolgreiche Umsetzung des Konzepts des P2P-E-Cash. Beides Fachleute und die breite Öffentlichkeit haben die praktische Kombination von zu schätzen gelernt öffentliche Transaktionen und proof-of-work als Vertrauensmodell. Heute ist die Benutzerbasis von elektronischem Bargeld wächst stetig; Kunden werden von niedrigen Gebühren und der gebotenen Anonymität angezogen durch elektronisches Bargeld und Händler schätzen seine vorhergesagte und dezentrale Ausgabe. Bitcoin hat hat effektiv bewiesen, dass elektronisches Bargeld so einfach wie Papiergeld und so bequem sein kann Kreditkarten. Leider weist Bitcoin mehrere Mängel auf. Beispielsweise ist das System verteilt Die Natur ist unflexibel und verhindert die Implementierung neuer Funktionen, bis fast alle Netzwerkbenutzer ihre Clients aktualisieren. Einige kritische Mängel, die nicht schnell behoben werden können, schrecken Bitcoin ab weite Verbreitung. In solchen unflexiblen Modellen ist es effizienter, ein neues Projekt umzusetzen anstatt das ursprüngliche Projekt ständig zu reparieren. In diesem Artikel untersuchen und schlagen wir Lösungen für die Hauptmängel von Bitcoin vor. Wir glauben dass ein System, das die von uns vorgeschlagenen Lösungen berücksichtigt, zu einem gesunden Wettbewerb führen wird zwischen verschiedenen elektronischen Geldsystemen. Wir bieten auch unser eigenes elektronisches Bargeld „CryptoNote“ an. ein Name, der den nächsten Durchbruch im Bereich des elektronischen Geldes unterstreicht.
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 Nachteile und mögliche Lösungen
2 Bitcoin Nachteile und einige mögliche Lösungen 2.1 Rückverfolgbarkeit von Transaktionen Privatsphäre und Anonymität sind die wichtigsten Aspekte von elektronischem Bargeld. Peer-to-Peer-Zahlungen Sie streben danach, vor der Sicht Dritter verborgen zu bleiben, was einen deutlichen Unterschied zu herkömmlichen Verfahren darstellt Bankwesen. Insbesondere beschrieben T. Okamoto und K. Ohta sechs Kriterien für ideales elektronisches Bargeld: Dazu gehörte „Datenschutz: Die Beziehung zwischen dem Benutzer und seinen Einkäufen muss nicht nachvollziehbar sein.“ von irgendjemandem“ [30]. Aus ihrer Beschreibung haben wir zwei Eigenschaften abgeleitet, die völlig anonym sind Das elektronische Bargeldmodell muss den von Okamoto dargelegten Anforderungen genügen und Ohta: Unverfolgbarkeit: Für jede eingehende Transaktion sind alle möglichen Absender gleichwahrscheinlich. Unverknüpfbarkeit: Für zwei beliebige ausgehende Transaktionen lässt sich nicht nachweisen, dass sie an sie gesendet wurden die gleiche Person. Leider erfüllt Bitcoin nicht die Anforderung der Unauffindbarkeit. Da alle Transaktionen, die zwischen den Netzwerkteilnehmern stattfinden, öffentlich sind, kann jede Transaktion öffentlich sein 1 CryptoNote v 2.0 Nicolas van Saberhagen 17. Oktober 2013 1 Einführung „Bitcoin“ [1] ist eine erfolgreiche Umsetzung des Konzepts des P2P-E-Cash. Beides Fachleute und die breite Öffentlichkeit haben die praktische Kombination von zu schätzen gelernt öffentliche Transaktionen und proof-of-work als Vertrauensmodell. Heute ist die Benutzerbasis von elektronischem Bargeld wächst stetig; Kunden werden von niedrigen Gebühren und der gebotenen Anonymität angezogen durch elektronisches Bargeld und Händler schätzen seine vorhergesagte und dezentrale Ausgabe. Bitcoin hat hat effektiv bewiesen, dass elektronisches Bargeld so einfach wie Papiergeld und so bequem sein kann Kreditkarten. Leider weist Bitcoin mehrere Mängel auf. Beispielsweise ist das System verteilt Die Natur ist unflexibel und verhindert die Implementierung neuer Funktionen, bis fast alle Netzwerkbenutzer ihre Clients aktualisieren. Einige kritische Mängel, die nicht schnell behoben werden können, schrecken Bitcoin ab weite Verbreitung. In solchen unflexiblen Modellen ist es effizienter, ein neues Projekt umzusetzen anstatt das ursprüngliche Projekt ständig zu reparieren. In diesem Artikel untersuchen und schlagen wir Lösungen für die Hauptmängel von Bitcoin vor. Wir glauben dass ein System, das die von uns vorgeschlagenen Lösungen berücksichtigt, zu einem gesunden Wettbewerb führen wird zwischen verschiedenen elektronischen Geldsystemen. Wir bieten auch unser eigenes elektronisches Bargeld „CryptoNote“ an. ein Name, der den nächsten Durchbruch im Bereich des elektronischen Geldes unterstreicht. 2 Bitcoin Nachteile und einige mögliche Lösungen 2.1 Rückverfolgbarkeit von Transaktionen Privatsphäre und Anonymität sind die wichtigsten Aspekte von elektronischem Bargeld. Peer-to-Peer-Zahlungen Sie streben danach, vor der Sicht Dritter verborgen zu bleiben, was einen deutlichen Unterschied zu herkömmlichen Verfahren darstellt Bankwesen. Insbesondere beschrieben T. Okamoto und K. Ohta sechs Kriterien für ideales elektronisches Bargeld: Dazu gehörte „Datenschutz: Die Beziehung zwischen dem Benutzer und seinen Einkäufen muss nicht nachvollziehbar sein.“ von irgendjemandem“ [30]. Aus ihrer Beschreibung haben wir zwei Eigenschaften abgeleitet, die völlig anonym sind Das elektronische Bargeldmodell muss den von Okamoto dargelegten Anforderungen genügen und Ohta: Unverfolgbarkeit: Für jede eingehende Transaktion sind alle möglichen Absender gleichwahrscheinlich. Unverknüpfbarkeit: Für zwei beliebige ausgehende Transaktionen lässt sich nicht nachweisen, dass sie an sie gesendet wurden die gleiche Person. Leider erfüllt Bitcoin nicht die Anforderung der Unauffindbarkeit. Da alle Transaktionen, die zwischen den Netzwerkteilnehmern stattfinden, öffentlich sind, kann jede Transaktion öffentlich sein 1 3 Bitcoin scheitert definitiv an der „Unauffindbarkeit“. Wenn ich Ihnen BTC sende, das Wallet, von dem es gesendet wird ist unwiderruflich auf blockchain gestempelt. Es besteht kein Zweifel darüber, wer diese Gelder geschickt hat. denn nur wer die privaten Schlüssel kennt, kann sie versenden.eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es besteht außerdem der Verdacht, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt umstritten [25], es besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Historie der Transaktionsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Lücke zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird außerdem vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt dMit der Bezeichnung [25] besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Transaktionsverlaufsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 4 Vermutlich, wenn jeder Nutzer seiner eigenen Anonymität dadurch gerecht wird, dass er immer eine neue Adresse generiert für JEDE erhaltene Zahlung (was absurd, aber technisch gesehen die „richtige“ Vorgehensweise ist), und wenn jeder Benutzer die Anonymität aller anderen dadurch schützen würde, dass er darauf besteht, niemals Geld zu senden zweimal an dieselbe BTC-Adresse senden, dann würde Bitcoin immer noch nur umständlich das übergeben Unverknüpfbarkeitstest. Warum? Verbraucherdaten können genutzt werden, um jederzeit erstaunlich viel über Menschen herauszufinden. Siehe zum Beispiel http://www.applieddatalabs.com/content/target-knows-it-shows Stellen Sie sich nun vor, dass dies 20 Jahre in der Zukunft liegt, und stellen Sie sich außerdem vor, dass Target es nicht einfach wusste über Ihre Kaufgewohnheiten bei Target, aber sie haben die blockchain für ALLES durchsucht IHRE PERSÖNLICHEN EINKÄUFE MIT IHREM COINBASE WALLET FÜR DIE VERGANGENHEIT ZWÖLF JAHRE. Sie werden sagen: „Hey Kumpel, vielleicht möchtest du dir heute Abend ein Hustenmittel besorgen, das wirst du nicht.“ Fühlen Sie sich morgen gut. Dies ist möglicherweise nicht der Fall, wenn die Mehrparteiensortierung korrekt ausgenutzt wird. Siehe zum Beispiel diesBlogbeitrag: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Ich bin von der Rechnung nicht ganz überzeugt, aber ... ein Papier nach dem anderen, oder? Zitat erforderlich. Während das Zerocoin-Protokoll (Standalone) möglicherweise unzureichend ist, ist das Zerocash Das Protokoll scheint Transaktionen mit einer Größe von 1 KB implementiert zu haben. Dieses Projekt wird unterstützt von natürlich die US-amerikanischen und israelischen Streitkräfte, also wer weiß schon, wie robust es ist. Auf der anderen Seite Andererseits möchte niemand mehr Geld ohne Aufsicht ausgeben können als das Militär. http://zerocash-project.org/ Ich bin nicht überzeugt... siehe zum Beispiel http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Zitat eines Cryptonote-Entwicklers Maurice Planck (vermutlich ein Pseudonym) aus der Cryptonote Foren: „Zerocoin, Zerocash. Das ist die fortschrittlichste Technologie, das muss ich zugeben. Ja, das Zitat Das Obige stammt aus der Analyse der vorherigen Version des Protokolls. Meines Wissens nach ist das nicht der Fall 288, aber 384 Bytes, aber das sind trotzdem gute Nachrichten. Sie nutzten eine brandneue Technik namens SNARK, die gewisse Nachteile hat: zum Beispiel große anfängliche Datenbank öffentlicher Parameter, die zum Erstellen einer Signatur erforderlich sind (mehr als 1 GB) und Erheblicher Zeitaufwand für die Erstellung einer Transaktion (mehr als eine Minute). Schließlich verwenden sie a junge Krypto, die ich als umstrittene Idee erwähnt habe: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Do 3. April 2014 19:56 Uhr Eine Funktion, die in der CPU ausgeführt wird und nicht für GPU, FPGA oder ASIC geeignet ist Berechnung. Das in proof-of-work verwendete „Puzzle“ wird als Preisfunktion, Kostenfunktion oder bezeichnet Puzzle-Funktion.
eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird auch vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt umstritten [25], es besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Transaktionsverlaufsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6]. Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird auch vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt dMit der Bezeichnung [25] besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Historie der Transaktionsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 Kommentare auf Seite 2
تقنية CryptoNote
الآن بعد أن قمنا بتغطية القيود المفروضة على تقنية Bitcoin، سنركز عليها تقديم ميزات CryptoNote.
Die CryptoNote-Technologie
Nachdem wir uns nun mit den Einschränkungen der Bitcoin-Technologie befasst haben, konzentrieren wir uns auf Vorstellung der Funktionen von 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 كما يلي:
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان نظامًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 8 يعمل التوقيع الدائري على النحو التالي: تريد أليكس تسريب رسالة إلى ويكيليكس حول صاحب عملها. كل موظف في شركتها لديه زوج مفاتيح خاص/عام (Ri، Ui). هي تؤلف توقيعها مع تعيين الإدخال كرسالة لها، وm، ومفتاحها الخاص، وRi، وEVERYBODY's المفاتيح العامة (Ui;i=1...n). يمكن لأي شخص (دون معرفة أي مفاتيح خاصة) التحقق من ذلك بسهولة بعض الزوج (Rj, Uj) لا بد أنه تم استخدامه لبناء التوقيع... شخص يعمل بالنسبة لصاحب العمل الذي يعمل به أليكس... لكن معرفة أي شخص يمكن أن يكون هو مجرد تخمين عشوائي. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 لاحظ أن التوقيع الدائري القابل للربط الموصوف هنا هو نوع من عكس "غير قابل للربط" الموصوفة أعلاه. هنا، نقوم باعتراض رسالتين، ويمكننا تحديد ما إذا كانا متماثلين أرسلهم الطرف، على الرغم من أننا لا نزال غير قادرين على تحديد من هو هذا الطرف. ال إن تعريف "غير قابل للربط" المستخدم لإنشاء Cryptonote يعني أننا لا نستطيع تحديد ما إذا كان ويستقبلهم نفس الطرف. وبالتالي، ما لدينا هنا حقًا هو أربعة أشياء تحدث. يمكن أن يكون النظام قابلاً للربط أو غير قابل للربط، اعتمادًا على ما إذا كان من الممكن تحديد ما إذا كان المرسل أم لا رسالتان متماثلتان (بغض النظر عما إذا كان ذلك يتطلب إلغاء عدم الكشف عن هويتك). و يمكن أن يكون النظام غير قابل للربط أو غير قابل للربط، اعتمادًا على ما إذا كان من الممكن ذلك أم لا تحديد ما إذا كان متلقي رسالتين هو نفسه (بغض النظر عما إذا كان متلقي الرسالتين أم لا). وهذا يتطلب إلغاء عدم الكشف عن هويته). من فضلك لا تلومني على هذه المصطلحات الرهيبة. من المحتمل أن يكون منظرو الرسم البياني كذلك يسر. قد يشعر البعض منكم براحة أكبر مع "إمكانية ربط جهاز الاستقبال" مقابل "إمكانية ربط المرسل". http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 عندما قرأت هذا، بدت هذه ميزة سخيفة. ثم قرأت أنه قد يكون ميزة ل التصويت الإلكتروني، ويبدو أن هذا منطقي. رائع نوعا ما، من هذا المنظور. ولكن أنا لست متأكدًا تمامًا من تنفيذ التوقيعات الحلقية التي يمكن تتبعها عن قصد. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin's ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 9 يا إلهي، من المؤكد أن مؤلف هذه الورقة البيضاء كان بإمكانه صياغة هذا بشكل أفضل! دعنا نقول أن تريد الشركة المملوكة للموظفين إجراء تصويت على ما إذا كان سيتم شراء منتجات جديدة معينة أم لا الأصول، وأليكس وبريندا كلاهما موظفين. توفر الشركة لكل موظف أ رسالة مثل "أصوت بنعم على الاقتراح أ!" التي تحتوي على "مشكلة" المعلومات التعريفية [PROP A] ويطلب منهم التوقيع عليه بتوقيع حلقة يمكن تتبعه إذا كانوا يدعمون الاقتراح. باستخدام التوقيع الدائري التقليدي، يمكن للموظف غير الأمين التوقيع على الرسالة عدة مرات، من المفترض مع nonces مختلفة، من أجل التصويت عدة مرات كما يحلو لهم. من ناحية أخرى من ناحية، في مخطط التوقيع الدائري الذي يمكن تتبعه، ستذهب أليكس للتصويت، وسيحصل على مفتاحها الخاص تم استخدامها في المسألة [PROP A]. إذا حاول Alex التوقيع على رسالة مثل "أنا، بريندا، أوافق على ذلك الاقتراح أ!" "لتأطير" بريندا والتصويت المزدوج، ستواجه هذه الرسالة الجديدة المشكلة أيضًا [الدعوى أ]. نظرًا لأن مفتاح Alex الخاص قد نجح بالفعل في حل مشكلة [PROP A]، فقد تم تحديد هوية Alex سيتم الكشف عنها على الفور باعتبارها عملية احتيال. وهو، في مواجهة الأمر، رائع جدًا! فرض التشفير المساواة في التصويت. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 هذه الورقة مثيرة للاهتمام، حيث تقوم بشكل أساسي بإنشاء توقيع حلقة مخصص ولكن بدون أي من موافقة المشارك الآخر. قد يكون هيكل التوقيع مختلفًا؛ لم أحفر عميقة، ولم أر ما إذا كانت آمنة. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai توقيعات المجموعة المخصصة هي: التوقيعات الحلقية، وهي توقيعات جماعية بدون مجموعة المديرين، لا مركزية، ولكن يسمح لعضو في مجموعة مخصصة أن يدعي ذلك بشكل مثبت لقد (لم) يصدر التوقيع المجهول نيابة عن المجموعة. http://link.springer.com/chapter/10.1007/11908739_9 وهذا ليس صحيحًا تمامًا، حسب فهمي. ومن المرجح أن يتغير فهمي لقد تعمقت في هذا المشروع. لكن حسب فهمي، يبدو التسلسل الهرمي هكذا. علامات المجموعة: يتحكم مديرو المجموعة في إمكانية التتبع وإمكانية إضافة أو إزالة الأعضاء من كونهم موقعين. العلامات الدائرية: تشكيل جماعي تعسفي بدون مدير المجموعة. لا يوجد إبطال عدم الكشف عن هويته. لا توجد وسيلة للتنصل من توقيع معين. مع حلقة يمكن تتبعها وربطها التوقيعات، وعدم الكشف عن هويته قابلة للتحجيم إلى حد ما. توقيعات المجموعة المخصصة: مثل التوقيعات الحلقية، لكن يمكن للأعضاء إثبات أنهم لم يقموا بإنشائها توقيع معين. يعد هذا أمرًا مهمًا عندما يتمكن أي شخص في المجموعة من إنتاج توقيع. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 تم تعديل خوارزمية فوجيساكي وسوزوكي لاحقًا من قبل المؤلف لتوفير مرة واحدة. هكذا سنقوم بتحليل خوارزمية فوجيساكي وسوزوكي بالتزامن مع الخوارزمية الجديدة بدلاً من ذلك من المرور هنا.
المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي كخوارزمية التوقيع الأساسية لدينا، اخترنا استخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 المفتاح، بل مفاتيح جميع مستخدمي مجموعته. يكون المدقق مقتنعًا بأن الموقع الحقيقي هو أ عضو في المجموعة، ولكن لا يمكن تحديد الموقع بشكل حصري. يتطلب البروتوكول الأصلي وجود طرف ثالث موثوق به (يسمى مدير المجموعة)، وقد كان كذلك الشخص الوحيد الذي يمكنه تتبع الموقع. تم تقديم الإصدار التالي الذي يسمى التوقيع الدائري بواسطة ريفست وآخرون. في [34]، كان مخططًا مستقلاً بدون مدير المجموعة وعدم الكشف عن هويته الإلغاء. ظهرت تعديلات مختلفة على هذا المخطط لاحقًا: التوقيع الدائري القابل للربط [26، 27، 17] يسمح بتحديد ما إذا كان قد تم إنتاج توقيعين من قبل نفس عضو المجموعة، ويمكن تتبعهما التوقيع الدائري [24، 23] يحد من عدم الكشف عن هويته المفرطة من خلال توفير إمكانية تتبع الموقع رسالتان فيما يتعلق بنفس المعلومات التعريفية (أو "العلامة" فيما يتعلق بـ [24]). يُعرف أيضًا بناء التشفير المماثل بتوقيع المجموعة المخصصة [16، 38]. ذلك يؤكد على تشكيل المجموعة التعسفية، في حين أن مخططات توقيع المجموعة/الحلقة تعني ضمناً أ مجموعة ثابتة من الأعضاء بالنسبة للجزء الأكبر، يعتمد الحل الذي نقدمه على عمل "التوقيع الدائري القابل للتتبع" الذي قام به إي. فوجيساكي و ك. سوزوكي [24]. من أجل التمييز بين الخوارزمية الأصلية وتعديلنا، سنقوم بذلك نطلق على الأخير توقيع رنين لمرة واحدة، مع التركيز على قدرة المستخدم على إنتاج توقيع رنين واحد صالح فقط التوقيع تحت مفتاحه الخاص. لقد أضعفنا خاصية التتبع وحافظنا على إمكانية الارتباط فقط لتوفير مرة واحدة: قد يظهر المفتاح العام في العديد من مجموعات التحقق الأجنبية و يمكن استخدام المفتاح الخاص لإنشاء توقيع مجهول فريد. في حالة الإنفاق المزدوج محاولة ربط هذين التوقيعين معًا، لكن الكشف عن الموقع ليس ضروريًا لأغراضنا. 4.2 التعريفات 4.2.1 معلمات المنحنى الاهليلجي نحن نختار خوارزمية التوقيع الأساسية لديناe لاستخدام المخطط السريع EdDSA، الذي تم تطويره و تم تنفيذه بواسطة د.ج. برنشتاين وآخرون. [18]. مثل Bitcoin ECDSA فهو يعتمد على المنحنى الإهليلجي مشكلة اللوغاريتم المنفصل، لذلك يمكن أيضًا تطبيق مخططنا على Bitcoin في المستقبل. المعلمات المشتركة هي: س: عدد أولي؛ ف = 2255 −19؛ d: عنصر Fq؛ د = −121665/121666؛ E: معادلة منحنى إهليلجي؛ −x2 + y2 = 1 + dx2y2; G: نقطة أساسية؛ G = (س، −4/5)؛ l: ترتيب أولي لنقطة الأساس؛ ل = 2252 + 27742317777372353535851937790883648493; \(H_s\): دالة تشفير hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): دالة حتمية hash \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 المصطلحات تتطلب الخصوصية المحسنة مصطلحات جديدة لا ينبغي الخلط بينها وبين كيانات Bitcoin. المفتاح ec الخاص هو مفتاح خاص ذو منحنى إهليلجي قياسي: رقم \(a \in [1, l - 1]\); المفتاح ec العام هو مفتاح عام قياسي لمنحنى إهليلجي: النقطة A = aG؛ زوج المفاتيح لمرة واحدة هو زوج من المفاتيح الإلكترونية الخاصة والعامة؛ 5 10 تعني إمكانية الارتباط بمعنى "التوقيعات الحلقية القابلة للربط" أنه يمكننا معرفة ما إذا كانت المعاملتان الصادرتان جاءتا من نفس المصدر دون الكشف عن هوية المصدر. ضعف المؤلفون قابلية الارتباط وذلك من أجل (أ) الحفاظ على الخصوصية، ولكن (ب) اكتشاف أي معاملة باستخدام مفتاح خاص للمرة الثانية باطل حسنًا، هذا سؤال يتعلق بترتيب الأحداث. النظر في السيناريو التالي. التعدين الخاص بي سيكون لدى الكمبيوتر blockchain الحالي، وسيكون له كتلة المعاملات الخاصة به التي يستدعيها مشروعة، وستعمل على تلك الكتلة في لغز proof-of-work، وسيكون لها قائمة المعاملات المعلقة المراد إضافتها إلى الكتلة التالية. كما سيتم إرسال أي جديد المعاملات في تلك المجموعة من المعاملات المعلقة. إذا لم أحل الكتلة التالية، ولكن شخص آخر يفعل ذلك، أحصل على نسخة محدثة من blockchain. الكتلة التي كنت أعمل عليها و قد تحتوي قائمة المعاملات المعلقة الخاصة بي على بعض المعاملات التي تم دمجها الآن في blockchain. قم بكشف الكتلة المعلقة الخاصة بي، وادمجها مع قائمة المعاملات المعلقة الخاصة بي، وقم باستدعاء ذلك مجموعتي من المعاملات المعلقة. قم بإزالة أي شيء موجود رسميًا الآن في blockchain. الآن، ماذا أفعل؟ هل يجب أن أقوم أولاً بـ "إزالة كافة عمليات الإنفاق المزدوج"؟ من ناحية أخرى من ناحية، يجب أن أبحث في القائمة وأتأكد من أن كل مفتاح خاص لم يتم العثور عليه بعد المستخدمة، وإذا تم استخدامها بالفعل في قائمتي، فقد حصلت على النسخة الأولى أولاً، وبالتالي أي نسخة أخرى غير شرعية. وهكذا أشرع في حذف جميع الحالات بعد الأولى لنفس المفتاح الخاص. الهندسة الجبرية لم تكن أبدًا خياري القوي. http://en.wikipedia.org/wiki/EdDSA هذه السرعة، واو كثيرا. هذه هي الهندسة الجبرية للفوز. لا يعني ذلك أنني أعرف أي شيء حول ذلك. سواء أكان الأمر مثيرًا للمشاكل أم لا، فإن السجلات المنفصلة تصبح سريعة جدًا. وأجهزة الكمبيوتر الكمومية تأكلها لتناول الافطار. http://link.springer.com/article/10.1007/s13389-012-0027-1 يصبح هذا رقمًا مهمًا حقًا، لكن لا يوجد تفسير أو اقتباس لكيفية حدوثه تم اختياره. إن مجرد اختيار عدد أولي كبير واحد معروف سيكون أمرًا جيدًا، لكن إذا كان هناك عدد أولي معروف حقائق حول هذا العدد الأولي الكبير، والتي يمكن أن تؤثر على اختيارنا. أنواع مختلفة من العملات المشفرة يمكن اختيار قيم مختلفة لـ حسنًا، ولكن لا توجد مناقشة في هذه الورقة حول كيفية ذلك سيؤثر اختيارنا على اختياراتنا للمعلمات العالمية الأخرى المدرجة في الصفحة 5. تحتاج هذه الورقة إلى قسم حول اختيار قيم المعلمات.
مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. نموذج المفاتيح/المعاملات التقليدي Bitcoin. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. المفاتيح/المعاملات التقليدية Bitcoinش. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 11 لذا فإن هذا يشبه Bitcoin، ولكن مع عدد لا نهائي من صناديق البريد المجهولة، والتي لا يمكن استردادها إلا بواسطة المتلقي إنشاء مفتاح خاص مجهول مثل التوقيع الدائري. Bitcoin يعمل بهذه الطريقة. إذا كان لدى Alex 0.112 Bitcoin في محفظتها التي تلقتها للتو من فرانك، فهذا يعني أن لديها بالفعل توقيعًا موقعًا الرسالة "أنا، [فرانك]، أرسل 0.112 Bitcoin إلى [أليكس] + H0 + N0" حيث 1) وقع فرانك على رسالة بمفتاحه الخاص [فرانك]، 2) وقع فرانك على الرسالة مع جمهور أليكس المفتاح، [أليكس]، 3) قام فرانك بتضمين شكل من أشكال تاريخ البيتكوين، H0، و4) فرانك يتضمن بتًا عشوائيًا من البيانات يسمى nonce، N0. إذا أراد Alex بعد ذلك إرسال 0.011 Bitcoin إلى شارلين، فسوف تتلقى رسالة فرانك، وهي ستقوم بتعيين ذلك على H1، وتوقيع رسالتين: واحدة لمعاملتها، وواحدة للتغيير. H1= "أنا، [فرانك]، أرسل 0.112 Bitcoin إلى [أليكس] + H0 + N" "أنا، [ALEX]، أرسل 0.011 Bitcoin إلى [شارلين] + H1 + N1" ""أنا، [ALEX]، أرسل 0.101 Bitcoin كتغيير إلى [alex] + H1 + N2." حيث تقوم Alex بتوقيع كلتا الرسالتين باستخدام مفتاحها الخاص [ALEX]، وهي الرسالة الأولى مع رسالة شارلين المفتاح العام [شارلين]، الرسالة الثانية التي تحتوي على المفتاح العام لـ Alex [alex]، بما في ذلك التواريخ وبعض nonces N1 وN2 التي تم إنشاؤها عشوائيًا بشكل مناسب. يعمل Cryptonote بهذه الطريقة: إذا كان لدى Alex 0.112 Cryptonote في محفظتها التي تلقتها للتو من Frank، فهي بالفعل تمتلك توقيعًا موقعًا الرسالة "أنا، [شخص ما في مجموعة مخصصة]، أرسل 0.112 Cryptonote إلى [عنوان لمرة واحدة] + H0 + ن0." اكتشفت أليكس أن هذه أموالها عن طريق التحقق من مفتاحها الخاص [أليكس] مقابلها [عنوان لمرة واحدة] لكل رسالة عابرة، وإذا أرادت أن تقضيها فعلت ذلك بالطريقة التالية. لقد اختارت متلقيًا للمال، ربما بدأت شارلين في التصويت لصالح ضربات الطائرات بدون طيار يريد Alex إرسال الأموال إلى Brenda بدلاً من ذلك. لذا يبحث أليكس عن مفتاح بريندا العام، [بريندا]، وتستخدم مفتاحها الخاص، [ALEX]، لإنشاء عنوان لمرة واحدة [ALEX+brenda]. هي ثم تختار مجموعة عشوائية C من شبكة مستخدمي العملات المشفرة وتقوم بإنشائها توقيع رنين من هذه المجموعة المخصصة. أضفنا تاريخنا كالرسالة السابقة nonces، والمتابعة كالمعتاد؟ H1 = "أنا، [شخص ما في مجموعة مخصصة]، أرسل 0.112 Cryptonote إلى [عنوان لمرة واحدة] + H0 + ن0." "أنا، [شخص ما في المجموعة C]، أرسل 0.011 Cryptonote إلى [عنوان لمرة واحدة مصنوع من ALEX+brenda] + H1 + N1" "أنا، [شخص ما في المجموعة C]، أرسل 0.101 Cryptonote كتغيير إلى [one-time-address-madefrom-ALEX+alex] + H1 + N2" الآن، يقوم كل من Alex وBrenda بفحص جميع الرسائل الواردة بحثًا عن أي عناوين لمرة واحدة تم إنشاؤها باستخدام مفتاحهم. وإذا وجدوا أيًا منها، فإن هذه الرسالة ستكون جديدة تمامًا بالنسبة لهم عملة مشفرة! وحتى ذلك الحين، ستظل المعاملة تصل إلى blockchain. إذا كانت العملات تدخل هذا العنوان ومن المعروف أنها مرسلة من المجرمين أو المساهمين السياسيين أو من اللجان والحسابات بميزانيات صارمة (أي الاختلاس)، أو إذا ارتكب المالك الجديد لهذه العملات خطأً ويرسل هذه العملات المعدنية إلى عنوان مشترك مع العملات المعدنية المعروف أنه يمتلكها، وهي رقصة عدم الكشف عن هويته هو ما يصل في البيتكوين.
مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. نموذج المفاتيح/المعاملات التقليدي Bitcoin. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 مفتاح المستخدم الخاص هو زوج (أ، ب) من مفتاحين خاصين مختلفين؛ مفتاح التتبع هو زوج (أ، ب) من مفاتيح ec الخاصة والعامة (حيث B = bG وa ̸= b)؛ مفتاح المستخدم العام هو زوج (أ، ب) من مفتاحين عموميين مشتقين من (أ، ب)؛ العنوان القياسي هو تمثيل لمفتاح المستخدم العام المعطى في سلسلة سهلة الاستخدام مع تصحيح الخطأ العنوان المقطوع هو تمثيل للنصف الثاني (النقطة ب) من مفتاح المستخدم العام المحدد في سلسلة صديقة للإنسان مع تصحيح الخطأ. تظل بنية المعاملة مشابهة للبنية الموجودة في Bitcoin: يمكن لكل مستخدم الاختيار عدة دفعات واردة مستقلة (مخرجات المعاملات)، قم بتوقيعها مع ما يقابلها المفاتيح الخاصة وإرسالها إلى وجهات مختلفة. على عكس نموذج Bitcoin، حيث يمتلك المستخدم مفتاحًا خاصًا وعامًا فريدًا، في النموذج المقترح، حيث يقوم المرسل بإنشاء مفتاح عام لمرة واحدة بناءً على عنوان المستلم و بعض البيانات العشوائية. وبهذا المعنى، يتم إرسال المعاملة الواردة لنفس المستلم إلى مفتاح عام لمرة واحدة (ليس مباشرة إلى عنوان فريد) ويمكن للمستلم فقط استرداد الملف الجزء الخاص المقابل لاسترداد أمواله (باستخدام مفتاحه الخاص الفريد). يستطيع المتلقي إنفاق الأموال باستخدام التوقيع الدائري، مع الاحتفاظ بملكيته وإنفاقه الفعلي مجهولاً. يتم شرح تفاصيل البروتوكول في الأقسام الفرعية التالية. 4.3 مدفوعات غير قابلة للربط تصبح عناوين Bitcoin الكلاسيكية، بمجرد نشرها، معرفًا لا لبس فيه للواردات المدفوعات وربطها معًا وربطها بالأسماء المستعارة للمستلم. إذا أراد شخص ما إذا تلقى معاملة "غير مقيدة"، فعليه أن ينقل عنوانه إلى المرسل عبر قناة خاصة. إذا أراد استلام معاملات مختلفة لا يمكن إثبات ملكيتها لنفس المالك يجب عليه إنشاء جميع العناوين المختلفة وعدم نشرها أبدًا باسمه المستعار. عام خاص أليس كارول عنوان بوب 1 عنوان بوب 2 مفتاح بوب 1 مفتاح بوب 2 بوب الشكل 2. المفاتيح/المعاملات التقليدية Bitcoinش. نقترح حلاً يسمح للمستخدم بنشر عنوان واحد والحصول عليه دون قيد أو شرط مدفوعات غير قابلة للربط. وجهة كل مخرجات CryptoNote (افتراضيًا) هي مفتاح عام، مشتقة من عنوان المستلم والبيانات العشوائية للمرسل. الميزة الرئيسية ضد Bitcoin هو أن كل مفتاح وجهة فريد بشكل افتراضي (ما لم يستخدم المرسل نفس البيانات لكل مفتاح معاملاته لنفس المستلم). وبالتالي، لا توجد مشكلة مثل "إعادة استخدام العنوان". التصميم ولا يمكن لأي مراقب تحديد ما إذا كانت أي معاملات قد تم إرسالها إلى عنوان أو رابط محدد عنوانين معا. 6 12 وبالتالي، بدلًا من قيام المستخدمين بإرسال العملات المعدنية من العنوان (وهو في الحقيقة مفتاح عام) إلى العنوان (مفتاح عام آخر) باستخدام مفاتيحهم الخاصة، يرسل المستخدمون العملات المعدنية من صندوق بريد لمرة واحدة (الذي يتم إنشاؤه باستخدام المفتاح العام لأصدقائك) إلى صندوق بريد لمرة واحدة (بالمثل) باستخدام الخاص بك المفاتيح الخاصة الخاصة. بمعنى ما، نحن نقول: "حسنًا، ليرفع الجميع أيديهم عن المال أثناء صرفه نقل حولها! يكفي ببساطة أن نعرف أن مفاتيحنا * يمكنها * فتح هذا الصندوق وذاك نحن نعرف مقدار المال الموجود في الصندوق. لا تضع بصمات أصابعك أبدًا على صندوق البريد أو استخدمه فعليًا، فقط قم بتداول الصندوق المليء بالنقود نفسها. وبهذه الطريقة لا نعرف من أرسل ماذا، لكن محتويات هذه العناوين العامة لا تزال غير قابلة للاحتكاك، وقابلة للاستبدال، وقابلة للقسمة، و لا تزال تمتلك كل الصفات اللطيفة الأخرى للأموال التي نرغب فيها مثل عملة البيتكوين." مجموعة لا حصر لها من صناديق البريد. قمت بنشر عنوان، لدي مفتاح خاص. أستخدم مفتاحي الخاص وعنوانك، و بعض البيانات العشوائية، لإنشاء مفتاح عام. تم تصميم الخوارزمية بحيث، منذ تم استخدام العنوان لإنشاء المفتاح العام، ويعمل مفتاحك الخاص فقط على فتح المفتاح رسالة. مراقب، حواء، يراك تنشر عنوانك، ويرى المفتاح العام الذي أعلنه. ومع ذلك، إنها لا تعرف ما إذا كنت قد أعلنت عن مفتاحي العام بناءً على عنوانك أو عنوانها أو عنوان بريندا أو شارلين، أو أيا كان. إنها تتحقق من مفتاحها الخاص مقابل المفتاح العام الذي أعلنته ويرى أنه لا يعمل؛ إنه ليس مالها. إنها لا تعرف المفتاح الخاص لأي شخص آخر، و فقط مستلم الرسالة لديه المفتاح الخاص الذي يمكنه فتح الرسالة. لذلك لا أحد الاستماع يمكن أن يحدد من الذي حصل على المال ناهيك عن أخذ المال.
عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 13 أتساءل كم سيكون الألم في الرقبة عند تنفيذ اختيار التشفير مخطط. إهليلجي أو غير ذلك. لذلك، إذا تم كسر بعض المخططات في المستقبل، تتحول العملة دون قلق. ربما ألم كبير في المؤخرة. حسنًا، هذا بالضبط ما شرحته للتو في تعليقي السابق. نوع ديفي هيلمان التبادلات نظيفة. لنفترض أن كل من Alex وBrenda لديه رقم سري، A وB، ورقم إنهم لا يهتمون بالحفاظ على السر، أ و ب. إنهم يرغبون في إنشاء سر مشترك بدون إيفا تكتشف ذلك. توصل ديفل وهيلمان إلى طريقة لمشاركة أليكس وبريندا الأرقام العامة a وb، ولكن ليس الأرقام الخاصة A وB، وإنشاء سر مشترك، K. باستخدام هذا السر المشترك، K، دون أن تستمع إيفا إلى القدرة على توليد نفس السر يمكن لـ K وAlex وBrenda الآن استخدام K كمفتاح تشفير سري وتمرير الرسائل السرية مرة أخرى وإيابا. وإليك كيفية عمل ذلك، على الرغم من أنه يجب أن يعمل مع أرقام أكبر بكثير من 100. سنستخدم 100 لأن العمل على الأعداد الصحيحة modulo 100 يعادل "التخلص من كل شيء" ولكن آخر رقمين من الرقم." يختار كل من Alex وBrenda A وa وB وb. إنهم يحتفظون بسرية A و B. تخبر أليكس بريندا بقيمتها وهي 100 (آخر رقمين فقط) وتخبر بريندا أليكس قيمة b modulo 100. الآن إيفا تعرف (a,b) modulo 100. لكن Alex تعرف (a,b,A) لذا فهي يمكن حساب x=abA modulo 100.يقطع Alex كل الرقم باستثناء الرقم الأخير لأننا نعمل تحت الأعداد الصحيحة modulo 100 مرة أخرى. وبالمثل، تعرف بريندا (أ، ب، ب) حتى تتمكن من إجراء العمليات الحسابية y=abB modulo 100. يستطيع Alex الآن نشر x ويمكن لبريندا نشر y. لكن الآن يستطيع Alex حساب yA = abBA modulo 100، ويمكن لبريندا حساب xB = أببأ مودولو 100. كلاهما يعرف نفس الرقم! لكن كل ما سمعته إيفا هو (أ، ب، أ * ب * أ، أ * ب * ب). ليس لديها طريقة سهلة لحساب أبأ*ب. الآن، هذه هي الطريقة الأسهل والأقل أمانًا للتفكير في بورصة Diffe-Hellman. توجد إصدارات أكثر أمانا. لكن معظم الإصدارات تعمل بسبب عوامل الأعداد الصحيحة والمنفصلة اللوغاريتمات صعبة، ويمكن حل هاتين المشكلتين بسهولة بواسطة أجهزة الكمبيوتر الكمومية. سأبحث في ما إذا كانت هناك أي إصدارات مقاومة للكم. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange يفتقد "تسلسل txn القياسي" المدرج هنا مجموعة كاملة من الخطوات، مثل التوقيعات. لقد تم أخذهم كأمر مسلم به هنا. وهو أمر سيء حقا، لأن الترتيب الذي نحن فيه أشياء التوقيع، والمعلومات المضمنة في الرسالة الموقعة، وما إلى ذلك... كل هذا للغاية مهم للبروتوكول. الخطأ في خطوة أو خطوتين من الخطوات، حتى لو كان خارج الترتيب قليلاً، أثناء تنفيذ " "تسلسل المعاملات القياسي" يمكن أن يلقي بظلال من الشك على أمن النظام بأكمله. علاوة على ذلك، فإن الأدلة المقدمة لاحقًا في الورقة قد لا تكون صارمة بما فيه الكفاية إذا كانت يتم تعريف الإطار الذي يعملون ضمنه بشكل فضفاض كما هو الحال في هذا القسم.
عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 عام خاص أليس كارول مفتاح لمرة واحدة مفتاح لمرة واحدة مفتاح لمرة واحدة بوب مفتاح بوب عنوان بوب الشكل 3. مفاتيح CryptoNote/نموذج المعاملات. أولاً، يقوم المرسل بإجراء تبادل Diffe-Hellman للحصول على سر مشترك من بياناته وبياناته نصف عنوان المستلم. ثم يقوم بحساب مفتاح الوجهة لمرة واحدة باستخدام المفتاح المشترك السر والنصف الثاني من العنوان. يلزم وجود مفتاحين إلكترونيين مختلفين من المستلم في هاتين الخطوتين، يكون حجم عنوان CryptoNote القياسي ضعف حجم محفظة Bitcoin تقريبًا عنوان. يقوم جهاز الاستقبال أيضًا بإجراء تبادل Diffe-Hellman لاسترداد ما يقابله المفتاح السري. يسير تسلسل المعاملات القياسي كما يلي: 1. تريد أليس إرسال دفعة إلى بوب، الذي نشر عنوانه القياسي. هي يقوم بفك العنوان ويحصل على المفتاح العام لبوب (أ، ب). 2. تولد أليس عشوائيًا \(r \in [1, l - 1]\) وتحسب مفتاحًا عامًا لمرة واحدة \(P = H_s(rA)G +\) ب. 3. تستخدم أليس P كمفتاح وجهة للإخراج وتحزم أيضًا القيمة R = rG (كجزء من بورصة Diffe-Hellman) في مكان ما من المعاملة. لاحظ أنها يمكن أن تخلق مخرجات أخرى ذات مفاتيح عامة فريدة: تشير مفاتيح المستلمين المختلفة (Ai، Bi) إلى Pi مختلف حتى مع نفس ص. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة ص = ص.ج P = Hs(rA)G + B المتلقي المفتاح العام البيانات العشوائية للمرسل ص (أ، ب) الشكل 4. هيكل المعاملات القياسي. 4. تقوم أليس بإرسال المعاملة. 5. يتحقق بوب من كل معاملة تمر باستخدام مفتاحه الخاص (a، b)، ويحسب P ′ = Hs(aR)G + B. إذا كانت معاملة أليس مع بوب باعتباره المستلم من بينها، ثم aR = arG = rA و P ′ = P. 7 14 لاحظ أن المؤلف (المؤلفين؟) يقومون بعمل رهيب في الحفاظ على مصطلحاتهم مباشرة طوال الوقت النص، ولكن بشكل خاص في هذا الجزء التالي. سيكون التجسيد التالي لهذه الورقة بالضرورة أكثر صرامة. يشيرون في النص إلى P كمفتاحهم العام لمرة واحدة. في الرسم البياني، يشيرون إلى R كـ "مفتاح Tx العام" الخاص بهم وP باعتباره "مفتاح الوجهة". لو كنت سأعيد كتابة هذا، لفعلت ضع بعض المصطلحات على وجه التحديد قبل مناقشة هذه الأقسام. هذا هائل. انظر الصفحة 5. من يختار ايل؟ يوضح الرسم البياني أن المفتاح العام للمعاملة R = rG، وهو عشوائي ومختار بواسطة المرسل، ليس جزءًا من إخراج Tx. هذا لأنه يمكن أن يكون هو نفسه بالنسبة لعدة المعاملات لعدة أشخاص، ولا يتم استخدامها لاحقًا للإنفاق. يتم إنشاء R جديد في كل مرة تريد بث معاملة CryptoNote جديدة. علاوة على ذلك، يتم استخدام R فقط للتحقق مما إذا كنت متلقي المعاملة. إنها ليست بيانات غير هامة، ولكنها غير هامة لأي شخص بدون المفاتيح الخاصة المرتبطة بـ (أ، ب). من ناحية أخرى، يعد مفتاح الوجهة P = Hs(rA)G + B جزءًا من إخراج Tx. الجميع يجب أن يتم فحص بيانات كل معاملة عابرة من خلال التحقق من P* الذي تم إنشاؤه مقابلها هذا P لمعرفة ما إذا كانوا يمتلكون هذه المعاملة العابرة. أي شخص لديه مخرجات معاملة غير منفقة (UTXO) ستحتوي على مجموعة من هذه العناصر مع كميات. من أجل قضاءد، هم قم بالتوقيع على بعض الرسائل الجديدة بما في ذلك P. يجب أن تقوم أليس بتوقيع هذه المعاملة باستخدام مفتاح (مفاتيح) خاصة لمرة واحدة مرتبطة بمفتاح (مفاتيح) الوجهة لمخرجات المعاملة غير المنفقة. يأتي كل مفتاح وجهة تملكه أليس مجهزًا بمفتاح خاص لمرة واحدة مملوك أيضًا (على الأرجح) لأليس. في كل مرة تريد أليس ذلك أرسل محتويات مفتاح الوجهة لي، أو لبوب، أو بريندا، أو تشارلي أو شارلين، هي تستخدم مفتاحها الخاص لتوقيع المعاملة. عند استلام المعاملة، سأحصل على جديد Tx، ومفتاح عام جديد للوجهة، وسأكون قادرًا على استعادة مفتاح خاص جديد لمرة واحدة x. الجمع بين مفتاحي الخاص لمرة واحدة، x، مع الوجهة العامة للمعاملة الجديدة المفتاح (المفاتيح) هو كيفية إرسال معاملة جديدة
- يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً وصفًا عامًا للخوارزمية الخاصة بنا دون أي إشارة صريحة إليها النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8
-
يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً جنرالًاالوصف الكامل لخوارزميتنا بدون إشارة صريحة إلى النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8 15 كيف تبدو مخرجات المعاملة غير المنفقة هنا؟ يشير الرسم البياني إلى أن مخرجات المعاملة تتكون فقط من نقطتي بيانات: المبلغ ومفتاح الوجهة. ولكن هذا ليس كذلك كافية لأنه عندما أحاول إنفاق هذا "الإخراج" سأظل بحاجة إلى معرفة R=rG. تذكر أنه يتم اختيار r من قبل المرسل، وR هو أ) يستخدم للتعرف على العملات المشفرة الواردة باعتبارها خاصة بك الخاصة و ب) المستخدمة لإنشاء المفتاح الخاص لمرة واحدة المستخدم "للمطالبة" بعملتك المشفرة. الجزء الذي لا أفهمه في هذا؟ أخذ النظرية "حسنًا، لدينا هذه التوقيعات والمعاملات، ونمررها ذهابًا وإيابًا" إلى عالم البرمجة "حسنًا، ما هي المعلومات على وجه التحديد التي تشكل الفرد UTXO؟" أفضل طريقة للإجابة على هذا السؤال هي البحث في نص التعليمات البرمجية غير المعلقة تمامًا. أحسنتم يا فريق بايتكوين. تذكر: إمكانية الارتباط تعني "هل أرسل نفس الشخص؟" وإلغاء الارتباط يعني "فعل الشيء نفسه". شخص يتلقى؟". لذلك يمكن أن يكون النظام قابلاً للربط أو غير قابل للربط، أو غير قابل للربط أو غير قابل للربط. مزعج، وأنا أعلم. لذلك عندما يقول نيك فان سابيرهاجن هنا "...المدفوعات الواردة [هي] مرتبطة لمرة واحدة المفاتيح العامة التي لا يمكن للمشاهد ربطها،" دعونا نرى ما يعنيه. أولاً، فكر في الموقف الذي ترسل فيه أليس إلى بوب معاملتين منفصلتين من نفس المعاملة عنوان إلى نفس العنوان. في الكون Bitcoin، ارتكبت أليس الخطأ بالفعل من الإرسال من نفس العنوان وهكذا فشلت الصفقة رغبتنا المحدودة قابلية الربط. علاوة على ذلك، بما أنها أرسلت الأموال إلى نفس العنوان، فقد فشلت في تحقيق رغبتنا لعدم قابلية الارتباط. كانت معاملة البيتكوين هذه قابلة للربط (بالكامل) وغير قابلة للربط. من ناحية أخرى، في عالم العملات المشفرة، لنفترض أن أليس أرسلت لبوب بعض الأوراق النقدية المشفرة، باستخدام عنوان بوب العام. لقد اختارت مجموعتها المبهمة من المفاتيح العامة المعروفة للجميع مفاتيح في منطقة مترو واشنطن العاصمة. تقوم Alex بإنشاء مفتاح عام لمرة واحدة باستخدام مفتاحها الخاص المعلومات والمعلومات العامة لبوب. إنها ترسل الأموال، وأي مراقب سيفعل ذلك لن يكون قادرًا إلا على جمع "أرسل شخص ما من منطقة مترو واشنطن العاصمة 2.3 عملة مشفرة إلى العنوان العام لمرة واحدة XYZ123." لدينا سيطرة احتمالية على قابلية الارتباط هنا، لذلك سنسميها "غير قابلة للربط تقريبًا". نرى أيضًا أنه يتم إرسال أموال المفاتيح العامة لمرة واحدة فقط. حتى لو اشتبهنا في المتلقي كما كان بوب، ليس لدينا مفاتيحه الخاصة وبالتالي لا يمكننا اختبار ما إذا كانت المعاملة ناجحة أم لا ينتمي إلى بوب ناهيك عن إنشاء مفتاحه الخاص لمرة واحدة لاسترداد ورقته المشفرة. إذن هذا هو، في الواقع، "غير قابل للربط" تمامًا. إذن، هذه هي الخدعة الأفضل على الإطلاق. من يريد أن يثق حقًا في MtGox آخر؟ قد نكون كذلك من المريح تخزين بعض كمية BTC على Coinbase، ولكن أقصى درجات أمان البيتكوين هي ذلك محفظة مادية. وهو أمر غير مريح. في هذه الحالة، يمكنك بكل ثقة التخلي عن نصف مفتاحك الخاص دون المساس بملكيتك القدرة الخاصة على إنفاق المال. عند القيام بذلك، كل ما تفعله هو إخبار شخص ما بكيفية كسر عدم إمكانية الارتباط. الآخر يتم الحفاظ على خصائص CN التي تعمل كعملة، كدليل ضد الإنفاق المزدوج و ماذا.
-
يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً وصفًا عامًا للخوارزمية الخاصة بنا دون أي إشارة صريحة إليها النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8
- يستطيع بوب استرداد المفتاح الخاص المقابل لمرة واحدة: x = Hs(aR) + b، بحيث يكون P = xG. يمكنه إنفاق هذا الإخراج في أي وقت عن طريق توقيع معاملة مع x. الصفقة مفتاح تكساس العام إخراج تكساس المبلغ مفتاح الوجهة P ′ = Hs(aR)G + bG المفتاح العام لمرة واحدة س = Hs(aR) + ب مفتاح خاص لمرة واحدة المتلقي مفتاح خاص (أ، ب) ر ف ′ ?= ص الشكل 5. فحص المعاملات الواردة. ونتيجة لذلك، يحصل بوب على المدفوعات الواردة المرتبطة بالمفاتيح العامة لمرة واحدة والتي هي غير قابل للربط بالنسبة للمتفرج. بعض الملاحظات الإضافية: • عندما "يتعرف" بوب على معاملاته (راجع الخطوة 5)، فإنه يستخدم عمليًا نصف معاملاته فقط معلومات خاصة: (أ، ب). يمكن تمرير هذا الزوج، المعروف أيضًا باسم مفتاح التتبع لطرف ثالث (كارول). يمكن لبوب تفويضها بمعالجة المعاملات الجديدة. بوب لا تحتاج إلى أن تثق بكارول بشكل صريح، لأنها لا تستطيع استعادة المفتاح السري لمرة واحدة بدون مفتاح بوب الخاص الكامل (أ، ب). يكون هذا الأسلوب مفيدًا عندما يفتقر بوب إلى النطاق الترددي أو قوة الحساب (الهواتف الذكية ومحافظ الأجهزة وما إلى ذلك). • في حالة رغبة أليس في إثبات أنها أرسلت معاملة إلى عنوان بوب، فيمكنها إما الكشف عنها r أو استخدام أي نوع من بروتوكول المعرفة الصفرية لإثبات أنها تعرف r (على سبيل المثال عن طريق التوقيع المعاملة مع ص). • إذا أراد بوب الحصول على عنوان متوافق مع التدقيق حيث توجد جميع المعاملات الواردة قابل للربط، يمكنه إما نشر مفتاح التتبع الخاص به أو استخدام عنوان مقطوع. هذا العنوان تمثل مفتاح EC عام واحد فقط B، والجزء المتبقي الذي يتطلبه البروتوكول هو مشتق منه على النحو التالي: أ = Hs(B) و A = Hs(B)G. وفي كلتا الحالتين كل شخص كذلك قادر على "التعرف" على جميع المعاملات الواردة لبوب، ولكن، بالطبع، لا يستطيع أي منهم إنفاق الأموال الموجودة بداخلها بدون المفتاح السري ب. 4.4 التوقيعات الدائرية لمرة واحدة يتيح البروتوكول المعتمد على التوقيعات الحلقية لمرة واحدة للمستخدمين تحقيق إمكانية إلغاء الارتباط غير المشروط. لسوء الحظ، تسمح الأنواع العادية من التوقيعات المشفرة بتتبع المعاملات حتى تصل إلى حساباتها المرسلين والمستقبلين المعنيين. ويكمن حلنا لهذا النقص في استخدام توقيع مختلف نوع من تلك المستخدمة حاليا في أنظمة النقد الإلكترونية. سنقدم أولاً جنرالًاالوصف الكامل لخوارزميتنا بدون إشارة صريحة إلى النقود الإلكترونية. يحتوي التوقيع الحلقي لمرة واحدة على أربع خوارزميات: (GEN، SIG، VER، LNK): GEN: يأخذ المعلمات العامة ويخرج زوجًا ec (P، x) ومفتاحًا عامًا I. SIG: يأخذ رسالة m، ومجموعة \(S'\) من المفاتيح العامة {Pi}i̸=s، وزوج (Ps، xs) ويخرج التوقيع \(\sigma\) والمجموعة \(S = \)S'\( \cup \{P_s\}\). 8 16 نعم، لدينا الآن أ) عنوان الدفع و ب) معرف الدفع. يمكن للناقد أن يتساءل "هل نحتاج حقًا إلى القيام بذلك؟ بعد كل شيء، إذا تلقى التاجر 112.00678952 CN بالضبط، وكان هذا طلبي، ولدي لقطة شاشة أو إيصال أو أي شيء آخر، أليس كذلك درجة مجنونة من الدقة كافية؟" الجواب هو "ربما، في أغلب الأحيان، بشكل يومي، المعاملات وجهاً لوجه." ومع ذلك، فإن الوضع الأكثر شيوعًا (خاصة في العالم الرقمي) هو: التاجر يبيع مجموعة من الأشياء، لكل منها سعر ثابت. لنفترض أن الكائن A هو 0.001 CN، والكائن B هو 0.01 CN و الكائن C هو 0.1 CN. الآن، إذا تلقى التاجر طلبًا بقيمة 1.618 CN، فهناك الكثير (كثيرة!) طرق لترتيب طلب للعميل. وهكذا بدون أي نوع من معرف الدفع، تحديد ما يسمى بالطلب "الفريد" للعميل مع ما يسمى بالتكلفة "الفريدة" الخاصة به يصبح النظام مستحيلا. والأكثر تسلية: إذا كان كل شيء في متجري عبر الإنترنت يكلف 1.0 بالضبط CN، وأحصل على 1000 عميل يوميا؟ وتريد أن تثبت أنك اشتريت 3 أشياء بالضبط قبل اسبوعين؟ بدون معرف الدفع؟ حظا سعيدا يا صديقي. قصة قصيرة طويلة: عندما ينشر بوب عنوان الدفع، فقد ينتهي به الأمر أيضًا إلى نشر عنوان معرف الدفع أيضًا (راجع، على سبيل المثال، ودائع Poloniex XMR). وهذا مختلف عما هو موصوف في النص هنا حيث أليس هي التي تنشئ معرف الدفع. يجب أن تكون هناك طريقة ما ليقوم Bob بإنشاء معرف الدفع أيضًا. (أ،ب) تذكر أنه يمكن نشر مفتاح التتبع (أ، ب)؛ فقدان سرية قيمة الوصية "أ". لا تنتهك قدرتك على الإنفاق أو تسمح للآخرين بالسرقة منك (على ما أعتقد... ليتم إثباتها)، فهو سيسمح للأشخاص ببساطة برؤية جميع المعاملات الواردة. العنوان المقطوع، كما هو موضح في هذه الفقرة، يأخذ ببساطة الجزء "الخاص" من المفتاح ويولدها من الجزء "العام". سيؤدي الكشف عن قيمة "a" إلى إزالة عدم قابلية الارتباط ولكنها ستحافظ على بقية المعاملات. المؤلف يعني "غير قابل للربط" لأن غير قابل للربط يشير إلى المتلقي والقابل للربط يشير إلى المرسل. ومن الواضح أيضًا أن المؤلف لم يدرك أن هناك جانبين مختلفين لقابلية الارتباط. نظرًا لأن المعاملة هي كائن موجه على الرسم البياني، فسيكون هناك سؤالان: "هل هاتان المعاملتان تذهبان إلى نفس الشخص؟" و"هل هاتان المعاملتان قادمتان من نفس الشخص؟" هذه سياسة "عدم الرجوع" والتي بموجبها تكون خاصية إلغاء الارتباط الخاصة بـ CryptoNote مشروط. وهذا يعني أن بوب يمكنه اختيار معاملاته الواردة لتكون غير قابلة للربط باستخدام هذه السياسة. وهذا ادعاء أثبتوه بموجب نموذج أوراكل العشوائي. سوف نصل إلى ذلك؛ العشوائية أوراكل لديها إيجابيات وسلبيات.
VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 ربما يكون هذا غبيًا، ولكن يجب توخي الحذر عند توحيد S وP_s. إذا قمت فقط بإلحاق المفتاح العام الأخير حتى النهاية، يتم كسر عدم إمكانية الارتباط لأن أي شخص يتحقق من المعاملات العابرة يمكن فقط التحقق من آخر مفتاح عام مدرج في كل معاملة وازدهار. هذا هو المفتاح العام المرتبطة بالمرسل. لذلك بعد الاتحاد، يجب أن يكون هناك مولد أرقام عشوائية زائفة تستخدم لتبديل المفاتيح العامة المختارة. "...حتى ينتج المالك توقيعًا ثانيًا باستخدام نفس زوج المفاتيح." أتمنى للمؤلف (المؤلفين؟) سوف أشرح هذا بالتفصيل. أعتقد أن هذا يعني "تأكد في كل مرة تختار فيها مجموعة من المفاتيح العامة للتشويش بنفسك، يمكنك اختيار مجموعة جديدة تمامًا بدون مفتاحين متشابهين." والذي يبدو وكأنه حالة قوية جدًا لوضعها عند عدم إمكانية الارتباط. ربما "تختار مجموعة عشوائية جديدة من جميع المفاتيح الممكنة" مع افتراض أنه على الرغم من أن التقاطعات غير التافهة ستحدث حتماً يحدث، فلن يحدث كثيرًا. وفي كلتا الحالتين، أحتاج إلى التعمق في هذا البيان. يؤدي هذا إلى إنشاء التوقيع الدائري. أدلة صفر المعرفة رائعة: أتحداك أن تثبت لي أنك تعرف سرًا دون الكشف عن السر. على سبيل المثال، لنفترض أننا عند مدخل كهف على شكل كعكة الدونات، وفي الجزء الخلفي من الكهف (بعيدًا عن الأنظار من المدخل) يوجد oالطريق الجديد الباب الذي أنت ادعي أن لديك المفتاح. إذا ذهبت في اتجاه واحد، فإنه يسمح لك دائمًا بالمرور، ولكن إذا ذهبت الاتجاه الآخر، تحتاج إلى مفتاح. لكنك لا تريد حتى أن تريني المفتاح، ناهيك عن ذلك تبين لي أنه يفتح الباب. لكنك تريد أن تثبت لي أنك تعرف كيفية فتح الملف باب. في الوضع التفاعلي، أقوم بقلب العملة المعدنية. الرؤوس على اليسار، والذيول على اليمين، وتنزل إلى الأسفل كهف على شكل كعكة الدونات أينما توجهك العملة. في الخلف، بعيدًا عن عيني، أنت افتح الباب للعودة إلى الجانب الآخر. نكرر تجربة رمي العملة حتى أقتنع بأن لديك المفتاح. ولكن من الواضح أن هذا هو الدليل التفاعلي للمعرفة الصفرية. هناك إصدارات غير تفاعلية لا يتعين علينا أنا وأنت التواصل فيها أبدًا؛ بهذه الطريقة، لا يمكن لأي متنصت أن يتدخل. http://en.wikipedia.org/wiki/Zero-knowledge_proof وهذا عكس التعريف السابق.
VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: يأخذ رسالة m ومجموعة S وتوقيع \(\sigma\) ويخرج "صحيح" أو "خطأ". LNK: يأخذ المجموعة I = {Ii} والتوقيع \(\sigma\) ويخرج "مرتبط" أو "indep". الفكرة وراء البروتوكول بسيطة إلى حد ما: يقوم المستخدم بإنشاء توقيع يمكن أن يكون يتم التحقق منها بواسطة مجموعة من المفاتيح العامة بدلاً من مفتاح عام فريد. هوية الموقع هي لا يمكن تمييزه عن المستخدمين الآخرين الذين توجد مفاتيحهم العامة في المجموعة حتى ينتجها المالك توقيع ثانٍ باستخدام نفس زوج المفاتيح. مفاتيح خاصة x0 \(\cdots\) الحادي عشر \(\cdots\) xn المفاتيح العامة ص0 \(\cdots\) بي \(\cdots\) ب خاتم التوقيع علامة تحقق الشكل 6. عدم الكشف عن هوية توقيع الحلقة. GEN: يختار الموقّع مفتاحًا سريًا عشوائيًا \(x \in [1, l - 1]\) ويحسب المقابل المفتاح العام P = xG. بالإضافة إلى ذلك، فهو يحسب مفتاحًا عامًا آخر I = xHp(P) وهو ما سنقوم به استدعاء "الصورة الرئيسية". SIG: يقوم المُوقع بإنشاء توقيع رنين لمرة واحدة مع معرفة صفرية غير تفاعلية إثبات باستخدام التقنيات من [21]. يختار مجموعة فرعية عشوائية \(S'\) من n من المستخدمين الآخرين المفاتيح العامة Pi، وزوج المفاتيح الخاص به (x، P) والصورة الرئيسية I. دع 0 \(\geq s\) \(\geq n\) يكون الفهرس السري للموقع في S (بحيث يكون مفتاحه العام هو Ps). يختار {qi | بشكل عشوائي ط = 0 . . . ن} و {واي | ط = 0 . . . n,i̸=s} من (1 . . . ل) ويطبق التحولات التالية: لى = ( كيغ, إذا كنت = ق كيغ + ويبي، إذا أنا̸= س ري = ( كيهب (بي)، إذا كنت = ق كيهب (بي) + وي، إذا أنا̸= س الخطوة التالية هي الحصول على التحدي غير التفاعلي: ج = Hs(م، L1،.. ، Ln، R1،...، Rn) وأخيرا يقوم الموقع بحساب الاستجابة: سي = واي, إذا أنا̸= س ج - nP أنا = 0 ci مود ل, إذا كنت = ق ري = ( تشي, إذا أنا̸= س سؤال -CSX مود ل, إذا كنت = ق التوقيع الناتج هو \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 هذه المنطقة بأكملها لا تعرف العملات المشفرة، فهي تصف ببساطة خوارزمية التوقيع الحلقي بدونها الإشارة إلى العملات. أظن أن بعض التدوين يتوافق مع بقية الورقة، رغم ذلك. على سبيل المثال، x هو المفتاح السري "العشوائي" الذي تم اختياره في GEN، والذي يعطي المفتاح العام P وصورة المفتاح العام I. قيمة x هذه هي القيمة التي يحسبها بوب في الجزء 6 الصفحة 8. إذن هذه هي البدء في توضيح بعض الالتباس من الوصف السابق. هذا رائع نوعًا ما؛ لا يتم تحويل الأموال من "عنوان أليس العام إلى عنوان بوب العام العنوان." يتم نقله من عنوان لمرة واحدة إلى عنوان لمرة واحدة. لذا، إلى حد ما، إليك كيفية عمل الأشياء. إذا كان لدى Alex بعض العملات المشفرة لأن شخصًا ما أرسلتها إليها، وهذا يعني أن لديها المفاتيح الخاصة اللازمة لإرسالها إلى بوب. انها تستخدم تبادل Diffe-Hellman باستخدام المعلومات العامة لبوب لإنشاء عنوان جديد لمرة واحدة ويتم نقل العملات المشفرة إلى هذا العنوان. الآن، منذ استخدام تبادل DH (الذي يُفترض أنه آمن) لإنشاء عنوان جديد لمرة واحدة التي أرسلت إليها أليكس CN، بوب هو الوحيد الذي لديه المفاتيح الخاصة اللازمة لتكرار الرسالة أعلاه. والآن، بوب هو أليكس. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation يجب فهرسة الجمع على j وليس i. كل c_i عبارة عن خردة عشوائية (نظرًا لأن w_i عشوائية) باستثناء الحمار c_iمرتبط بالمفتاح الفعلي المتضمن في هذا التوقيع. قيمة ج هي hash من المعلومات السابقة. أعتقد أن هذا قد يحتوي على خطأ مطبعي أسوأ من إعادة استخدام الفهرس "i"، لأن c_s يبدو أن يتم تعريفها ضمنا، وليس صراحة. وبالفعل، إذا أخذنا هذه المعادلة على الإيمان، فإننا نحدد أن c_s = (1/2)c - (1/2) sum_i neq s c_i. أي hash ناقص مجموعة كاملة من الأرقام العشوائية. من ناحية أخرى، إذا كان المقصود من هذا الجمع أن يقرأ "c_s = (c - sum_j neq s c_j) mod l"، ثم نأخذ hash من معلوماتنا السابقة، ونولد مجموعة من الأرقام العشوائية، اطرح كل هذه الأرقام العشوائية من hash، وهذا يعطينا c_s. يبدو أن هذا ما "يجب" أن يحدث وفقًا لحدسي، ويطابق خطوة التحقق في الصفحة 10. ولكن الحدس ليس الرياضيات. سوف أتعمق في هذا. كما كان من قبل؛ كل هذه الأشياء ستكون عشوائية باستثناء تلك المرتبطة بالفعلي المفتاح العام للموقع x. باستثناء هذه المرة، هذا أكثر ما أتوقعه من الهيكل: r_i عشوائي لـ i!=s ويتم تحديد r_s فقط بواسطة السر x والقيم المفهرسة s لـ q_i وc_i.
VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر′ ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد بوب زوج المفاتيح لمرة واحدة (pi، Pi) ويخزنه في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد إخراج Bob زوج مفاتيح لمرة واحدة (pi، Pi) وstالخامات في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 19 في هذه المرحلة، أنا في حيرة شديدة. يتلقى Alex رسالة M تحتوي على توقيع (I,c_1, ..., c_n, r_1, ..., r_n) وقائمة عامة مفاتيح S. وهي تدير VER. سيؤدي هذا إلى حساب L_i' وR_i' هذا يتحقق من أن c_s = c - sum_i neq s c_i في الصفحة السابقة. في البداية كنت في حيرة من أمري. يمكن لأي شخص حساب L_i' وR_i'. في الواقع، كل r_i و تم نشر c_i في التوقيع سيجما مع قيمة I. المجموعة S = تم أيضًا نشر P_i لجميع المفاتيح العامة. لذلك أي شخص قد رأى سيجما ومجموعة من سيحصل المفتاحان S = P_i على نفس القيم لـ L_i' وR_i' ومن ثم التحقق من التوقيع. ولكن بعد ذلك تذكرت أن هذا القسم يصف ببساطة خوارزمية التوقيع، وليس "التحقق". إذا تم التوقيع، فتحقق مما إذا تم إرساله إلي، وإذا كان الأمر كذلك، فاذهب وأنفق الأموال." هذا هو ببساطة جزء التوقيع من اللعبة. أنا مهتم بقراءة الملحق أ عندما أصل إلى هناك أخيرًا. أرغب في رؤية مقارنة واسعة النطاق لكل عملية على حدة بين Cryptonote وBitcoin. أيضا، الكهرباء / الاستدامة. ما هي أجزاء الخوارزميات التي تشكل "المدخلات" هنا؟ أعتقد أن إدخال المعاملة هو مبلغ ومجموعة من UTXOs التي يبلغ مجموعها مبلغًا أكبر من المبلغ المبلغ. هذا غير واضح. "هدف الاختباء؟" لقد فكرت في هذا الأمر لبضع دقائق الآن وما زلت لم أفكر فيه فكرة ضبابية عما يمكن أن يعنيه ذلك. لا يمكن تنفيذ هجوم الإنفاق المزدوج إلا من خلال التلاعب بالمفتاح المستخدم المتصور للعقدة مجموعة الصور \(I\). "درجة الغموض" = n ولكن العدد الإجمالي للمفاتيح العامة المضمنة في المعاملة هو ن+1. وهذا يعني أن درجة الغموض ستكون "كم عدد الأشخاص الآخرين الذين تريدهم الحشد؟" من المحتمل أن تكون الإجابة افتراضيًا "أكبر عدد ممكن".
VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد بوب زوج المفاتيح لمرة واحدة (pi، Pi) ويخزنه في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 VER: يتحقق المدقق من التوقيع من خلال تطبيق التحويلات العكسية: ( ل ′ أنا = تلاعب + CIPi ص' أنا = riHp(Pi) + CII وأخيرا، يتحقق المدقق مما إذا كان nP أنا = 0 ci ?= هس (م، ل ' 0، . . . ، ل' ن، ر' 0، . . . ، ر' ن) وزارة الدفاع ل إذا كانت هذه المساواة صحيحة، يقوم المدقق بتشغيل الخوارزمية LNK. وإلا فإن المدقق يرفض التوقيع. LNK: يتحقق المدقق مما إذا كان قد تم استخدامي في التوقيعات السابقة (يتم تخزين هذه القيم في ملف مجموعة أنا). تشير الاستخدامات المتعددة إلى أنه تم إنتاج توقيعين تحت نفس المفتاح السري. معنى البروتوكول: من خلال تطبيق تحويلات L، يثبت الموقع أنه يعرف مثل x بحيث يكون Pi واحد على الأقل = xG. ولجعل هذا الدليل غير قابل للتكرار، نقدم الصورة الرئيسية كما أنا = xHp(P). يستخدم الموقع نفس المعاملات (ri، ci) لإثبات نفس العبارة تقريبًا: إنه يعرف أن x واحد على الأقل \(H_p(P_i) = I \cdot x^{-1}\). إذا كان التعيين \(x \to I\) عبارة عن حقنة: 1. لا يمكن لأحد استعادة المفتاح العام من الصورة الرئيسية وتحديد هوية الموقّع؛ 2. لا يمكن للموقع عمل توقيعين بحرف I مختلف ونفس x. ويرد تحليل أمني كامل في الملحق أ. 4.5 معاملة CryptoNote القياسية من خلال الجمع بين كلا الطريقتين (المفاتيح العامة غير القابلة للربط والتوقيع الدائري الذي لا يمكن تعقبه) يحقق بوب ذلك مستوى جديد من الخصوصية بالمقارنة مع نظام Bitcoin الأصلي. ويتطلب منه تخزين فقط مفتاح خاص واحد (أ، ب) ونشر (أ، ب) لبدء تلقي وإرسال المعاملات المجهولة. أثناء التحقق من صحة كل معاملة، يقوم بوب بالإضافة إلى ذلك بإجراء عمليتين فقط لمضاعفات المنحنى الناقص وإضافة واحدة لكل ناتج للتحقق مما إذا كانت المعاملة تخصه. لكل له يستعيد إخراج Bob زوج مفاتيح لمرة واحدة (pi، Pi) وstالخامات في محفظته. أي مدخلات يمكن أن تكون ثبت ظرفياً أنهما يملكان نفس المالك فقط إذا ظهرا في معاملة واحدة. في في الواقع، يصعب إنشاء هذه العلاقة بسبب التوقيع الدائري لمرة واحدة. باستخدام التوقيع الدائري، يستطيع بوب إخفاء كل المدخلات بشكل فعال بين مدخلات شخص آخر؛ كل ما هو ممكن سيكون المنفقون محتملين، حتى المالك السابق (أليس) ليس لديه معلومات أكثر من ذلك أي مراقب. عند التوقيع على صفقته، يحدد بوب المخرجات الأجنبية بنفس المبلغ الذي حدده الإخراج، وخلط كل منهم دون مشاركة مستخدمين آخرين. بوب نفسه (وكذلك أي شخص آخر) لا يعرف ما إذا كان قد تم إنفاق أي من هذه المدفوعات: يمكن استخدام المخرج بآلاف التوقيعات كعامل غموض وليس كهدف للاختباء أبدًا. المزدوج يحدث التحقق من الإنفاق في مرحلة LNK عند التحقق من مجموعة الصور الرئيسية المستخدمة. يمكن لبوب أن يختار درجة الغموض بنفسه: n = 1 يعني أن الاحتمال لديه قضى الناتج هو احتمال 50٪، ن = 99 يعطي 1٪. يزداد حجم التوقيع الناتج خطيًا كـ O(n+1)، وبالتالي فإن تحسين إخفاء الهوية يكلف بوب رسوم معاملات إضافية. يمكنه أيضًا قم بتعيين n = 0 وجعل توقيعه الدائري يتكون من عنصر واحد فقط، ولكن هذا سيتم على الفور كشف عنه منفقا. 10 20 هذا مثير للاهتمام؛ في وقت سابق، قمنا بتوفير وسيلة للمتلقي، بوب، لجعل كل الوارد المعاملات غير القابلة للربط إما عن طريق اختيار نصف مفاتيحه الخاصة بشكل حتمي أو عن طريق نشر نصف مفاتيحه الخاصة على أنها عامة. وهذا نوع من سياسة عدم العودة. وهنا نرى طريقة المرسل، Alex، لاختيار معاملة صادرة واحدة قابلة للربط، ولكن في الواقع هذا يكشف عن Alex باعتباره المرسل إلى الشبكة بأكملها. هذه ليست سياسة عدم العودة. هذه معاملة تلو الأخرى. هل هناك سياسة ثالثة؟ هل يستطيع المتلقي، بوب، إنشاء معرف دفع فريد لـ Alex لا يتغير أبدًا، ربما باستخدام بورصة Diffe-Hellman؟ إذا كان أي شخص يشمل هذا الدفع الهوية المجمعة في مكان ما في معاملتها إلى عنوان بوب، لا بد أنها جاءت من أليكس. بهذه الطريقة، لا تحتاج Alex إلى الكشف عن نفسها للشبكة بأكملها عن طريق اختيار ربط شبكة معينة المعاملة، ولكن لا يزال بإمكانها تعريف نفسها للشخص الذي ترسل إليه أموالها. أليس هذا ما تفعله بولونيكس؟
الصفقة إدخال تكساس الإخراج0 . . . الناتج . . . الإخراج الصورة الرئيسية التوقيعات التوقيع الدائري مفتاح الوجهة الإخراج1 مفتاح الوجهة الإخراج المعاملات الخارجية إخراج المرسل مفتاح الوجهة زوج مفاتيح لمرة واحدة لمرة واحدة مفتاح خاص أنا = xHp(P) ف، س الشكل 7. إنشاء توقيع الرنين في معاملة قياسية. 5 إثبات المساواة في العمل في هذا القسم نقترح ونبني خوارزمية proof-of-work الجديدة. هدفنا الأساسي الهدف هو سد الفجوة بين عمال المناجم من وحدة المعالجة المركزية (الأغلبية) وعمال المناجم GPU/FPGA/ASIC (الأقلية). إنه كذلك من المناسب أن بعض المستخدمين يمكن أن يتمتعوا بميزة معينة على الآخرين، ولكن استثماراتهم يجب أن تنمو على الأقل خطيا مع السلطة. وبشكل أعم، إنتاج أجهزة ذات أغراض خاصة يجب أن تكون أقل ربحية قدر الإمكان. 5.1 الأعمال ذات الصلة يستخدم بروتوكول Bitcoin proof-of-work الأصلي وظيفة التسعير المكثفة لوحدة المعالجة المركزية SHA-256. ويتكون بشكل أساسي من العوامل المنطقية الأساسية ويعتمد فقط على السرعة الحسابية المعالج، وبالتالي فهو مناسب تمامًا لتنفيذ متعدد النواة/الناقل. ومع ذلك، فإن أجهزة الكمبيوتر الحديثة لا تقتصر على عدد العمليات في الثانية وحدها، ولكن أيضًا حسب حجم الذاكرة. في حين أن بعض المعالجات يمكن أن تكون أسرع بكثير من غيرها [8]، من غير المرجح أن تختلف أحجام الذاكرة بين الأجهزة. تم تقديم وظائف السعر المرتبطة بالذاكرة لأول مرة بواسطة العبادي وآخرين وتم تعريفها على أنها "الوظائف التي يهيمن الوقت المستغرق في الوصول إلى الذاكرة على وقت حسابها" [15]. الفكرة الرئيسية هي بناء خوارزمية تخصص كتلة كبيرة من البيانات ("لوحة المسودة") داخل الذاكرة التي يمكن الوصول إليها ببطء نسبيًا (على سبيل المثال، ذاكرة الوصول العشوائي) و"الوصول إلى ملف تسلسل غير متوقع للمواقع "داخلها. يجب أن تكون الكتلة كبيرة بما يكفي للحفظ البيانات أكثر فائدة من إعادة حسابها لكل وصول. ينبغي للخوارزمية أيضًا منع التوازي الداخلي، وبالتالي يجب أن تتطلب الخيوط المتزامنة N ذاكرة أكبر بمقدار N مرة مرة واحدة. قام Dwork وآخرون [22] بالتحقيق في هذا النهج وإضفاء الطابع الرسمي عليه مما دفعهم إلى اقتراح نهج آخر متغير وظيفة التسعير: "Mbound". عمل آخر ينتمي إلى F. Coelho [20]، الذي 11 الصفقة إدخال تكساس الإخراج0 . . . الناتج . . . الإخراج الصورة الرئيسية التوقيعات التوقيع الدائري مفتاح الوجهة الإخراج1 مفتاح الوجهة الإخراج المعاملات الخارجية إخراج المرسل مفتاح الوجهة زوج مفاتيح لمرة واحدة لمرة واحدة مفتاح خاص أنا = xHp(P) ف، س الشكل 7. إنشاء توقيع الرنين في معاملة قياسية. 5 إثبات المساواة في العمل في هذا القسم نقترح ونبني خوارزمية proof-of-work الجديدة. هدفنا الأساسي الهدف هو سد الفجوة بين عمال المناجم من وحدة المعالجة المركزية (الأغلبية) وعمال المناجم GPU/FPGA/ASIC (الأقلية). إنه كذلك من المناسب أن بعض المستخدمين يمكن أن يتمتعوا بميزة معينة على الآخرين، ولكن استثماراتهم يجب أن تنمو على الأقل خطيا مع السلطة. وبشكل أعم، إنتاج أجهزة ذات أغراض خاصة يجب أن تكون أقل ربحية قدر الإمكان. 5.1 الأعمال ذات الصلة يستخدم بروتوكول Bitcoin proof-of-work الأصلي وظيفة التسعير المكثفة لوحدة المعالجة المركزية SHA-256. ويتكون بشكل أساسي من العوامل المنطقية الأساسية ويعتمد فقط على السرعة الحسابية المعالج، وبالتالي فهو مناسب تمامًا لتنفيذ متعدد النواة/الناقل. ومع ذلك، فإن أجهزة الكمبيوتر الحديثة لا تقتصر على عدد العمليات في الثانية وحدها، ولكن أيضًا حسب حجم الذاكرة. في حين أن بعض المعالجات يمكن أن تكون أسرع بكثير من غيرها [8]، من غير المرجح أن تختلف أحجام الذاكرة بين الأجهزة. تم تقديم وظائف السعر المرتبطة بالذاكرة لأول مرة بواسطة العبادي وآخرين وتم تعريفها على أنها "الوظائف التي يهيمن الوقت المستغرق في الوصول إلى الذاكرة على وقت حسابها" [15]. الفكرة الرئيسية هي بناء خوارزمية تخصص كتلة كبيرة من البيانات ("لوحة المسودة") داخل الذاكرة التي يمكن الوصول إليها ببطء نسبيًا (على سبيل المثال، ذاكرة الوصول العشوائي) و"الوصول إلى ملف تسلسل غير متوقع للمواقع "داخلها. يجب أن تكون الكتلة كبيرة بما يكفي للحفظ البيانات أكثر فائدة من إعادة حسابها لكل وصول. ينبغي للخوارزمية أيضًا منع التوازي الداخلي، وبالتالي يجب أن تتطلب الخيوط المتزامنة N ذاكرة أكبر بمقدار N مرة مرة واحدة. قام Dwork وآخرون [22] بالتحقيق في هذا النهج وإضفاء الطابع الرسمي عليه مما دفعهم إلى اقتراح نهج آخر متغير وظيفة التسعير: "Mbound". عمل آخر ينتمي إلى F. Coelho [20]، الذي 11 21 هذه، ظاهريًا، هي UTXO: المبالغ ومفاتيح الوجهة. إذا كان Alex هو من ينشئ هذه المعاملة القياسية ويرسلها إلى Bob، فإن Alex لديه أيضًا المفاتيح الخاصة لكل من هذه. يعجبني هذا المخطط كثيرًا، لأنه يجيب على بعض الأسئلة السابقة. يتكون إدخال Txn من مجموعة من مخرجات Txn و keصورة. ومن ثم يتم توقيعه بالتوقيع الدائري، بما في ذلك الكل المفاتيح الخاصة التي يملكها (أليكس) لجميع المعاملات الأجنبية المتضمنة في الصفقة. ال يتكون إخراج Txn من مبلغ ومفتاح الوجهة. يجوز لمتلقي المعاملة، كما يريدون، قم بإنشاء مفتاحهم الخاص لمرة واحدة كما هو موضح سابقًا في الورقة من أجل الإنفاق المال. سيكون من دواعي سروري معرفة مدى تطابق هذا مع الكود الفعلي ... لا، يصف نيك فان سابيرهاجن بشكل فضفاض بعض خصائص خوارزمية إثبات العمل، دون وصف تلك الخوارزمية فعليًا. سوف تتطلب خوارزمية CryptoNight نفسها تحليلًا عميقًا. عندما قرأت هذا، تلعثمت. هل يجب أن ينمو الاستثمار بشكل خطي على الأقل مع القوة، أم ينبغي هل ينمو الاستثمار على الأكثر بشكل خطي مع القوة؟ وبعد ذلك أدركت؛ أنا، كعامل منجم، أو مستثمر، أفكر عادةً في "مقدار القوة التي يمكنني الحصول عليها للاستثمار؟" وليس "ما مقدار الاستثمار المطلوب للحصول على قدر ثابت من الطاقة؟" بالطبع، تشير إلى الاستثمار بواسطة I والقوة بواسطة P. إذا كان I(P) هو الاستثمار كدالة للقوة وP(I) هي القوة كدالة للاستثمار، وسيكونان معكوسين لبعضهما البعض (أينما كان يمكن أن توجد معكوس). وإذا كان I(P) أسرع من الخطي فإن P(I) أبطأ من الخطي. وبالتالي، سيكون هناك انخفاض في معدل العائدات للمستثمرين. وهذا يعني أن ما يقوله المؤلف هنا هو: "بالتأكيد، كلما استثمرت أكثر، ستحصل على المزيد القوة. لكن يجب أن نحاول أن نجعل هذا الأمر يتعلق بمعدل عوائد منخفض." سوف تنتهي استثمارات وحدة المعالجة المركزية بشكل فرعي في النهاية؛ والسؤال هو ما إذا كان المؤلفون لقد صممنا خوارزمية أسرى الحرب التي ستجبر ASICs على القيام بذلك أيضًا. هل يجب أن يتم استخراج "العملة المستقبلية" الافتراضية دائمًا باستخدام الموارد الأبطأ/الأكثر محدودية؟ إن الورقة التي أعدها العبادي وآخرون (والتي تضم بعض مهندسي جوجل ومايكروسوفت كمؤلفين) هي، بشكل أساسي، وذلك باستخدام حقيقة أن حجم الذاكرة على مدى السنوات القليلة الماضية كان أصغر بكثير التباين عبر الأجهزة أكبر من سرعة المعالج، ومع نسبة استثمار إلى قوة أكثر من خطية. في غضون سنوات قليلة، قد يتعين إعادة تقييم هذا! كل شيء هو سباق تسلح.. من الصعب إنشاء دالة hash؛ يبدو أن إنشاء دالة hash تستوفي هذه القيود أكثر صعوبة. يبدو أن هذه الورقة ليس لديها تفسير للواقع hashing خوارزمية CryptoNight. أعتقد أنه تطبيق صعب الذاكرة لـ SHA-3، على أساس على مشاركات المنتدى ولكن ليس لدي أي فكرة... وهذا هو بيت القصيد. يجب شرحه.
اقترح الحل الأكثر فعالية: "هوكايدو". على حد علمنا، فإن العمل الأخير الذي يعتمد على فكرة عمليات البحث العشوائية الزائفة في مجموعة كبيرة هو الخوارزمية المعروفة باسم "scrypt" بواسطة C. Percival [32]. على عكس الوظائف السابقة التي يركز عليها اشتقاق المفتاح، وليس أنظمة proof-of-work. على الرغم من هذه الحقيقة، يمكن أن يخدم scrypt غرضنا: تعمل بشكل جيد كوظيفة تسعير في مشكلة التحويل الجزئية hash مثل SHA-256 في Bitcoin. حتى الآن تم تطبيق scrypt بالفعل في Litecoin [14] وبعض تفرعات Bitcoin الأخرى. ومع ذلك، فإن تنفيذها لا يرتبط حقًا بالذاكرة: نسبة "وقت الوصول إلى الذاكرة / الإجمالي". time" ليس كبيرًا بدرجة كافية لأن كل مثيل يستخدم 128 كيلو بايت فقط. وهذا يسمح لعمال المناجم GPU لتكون أكثر فعالية بحوالي 10 مرات وتستمر في ترك إمكانية الإنشاء نسبيًا أجهزة التعدين رخيصة ولكن ذات كفاءة عالية. علاوة على ذلك، فإن بناء السكربت نفسه يسمح بمبادلة خطية بين حجم الذاكرة ومساحة الذاكرة سرعة وحدة المعالجة المركزية نظرًا لأن كل كتلة في لوحة المسودة مشتقة فقط من سابقتها. على سبيل المثال، يمكنك تخزين كل كتلة ثانية وإعادة حساب الكتل الأخرى بطريقة كسولة، أي فقط عندما يصبح ذلك ضروريا. من المفترض أن يتم توزيع الفهارس العشوائية الزائفة بشكل موحد، وبالتالي فإن القيمة المتوقعة لإعادة حساب الكتل الإضافية هي 1 \(2 \cdot N\)، حيث N هو الرقم من التكرارات. يزيد الوقت الإجمالي للحساب بمقدار أقل من النصف نظرًا لوجود أيضًا العمليات المستقلة عن الوقت (الوقت الثابت) مثل إعداد لوحة المسودة وتشغيل hash كل التكرار. توفير 2/3 من تكاليف الذاكرة 1 3 \(\cdot\) ن + 1 3 \(\cdot\) \(2 \cdot N\) = N عمليات إعادة الحساب الإضافية؛ 9/10 النتائج في 1 10 \(\cdot\) ن + . . . + 1 10 \(\cdot\) 9 \(\cdot\) ن = 4.5ن. من السهل إظهار أن تخزين 1 فقط ق من جميع الكتل يزيد الوقت أقل من عامل s−1 2 . وهذا بدوره يعني أن الجهاز مزود بوحدة المعالجة المركزية أسرع 200 مرة من الرقائق الحديثة التي يمكنها تخزين 320 بايت فقط من لوحة المسودة. 5.2 الخوارزمية المقترحة نقترح خوارزمية جديدة مرتبطة بالذاكرة لوظيفة التسعير proof-of-work. يعتمد عليه الوصول العشوائي إلى ذاكرة بطيئة ويؤكد الاعتماد على زمن الوصول. على عكس scrypt كل تعتمد الكتلة الجديدة (طولها 64 بايت) على جميع الكتل السابقة. ونتيجة لذلك افتراضية يجب أن يزيد "موفر الذاكرة" من سرعة حسابه بشكل كبير. تتطلب الخوارزمية الخاصة بنا حوالي 2 ميجابايت لكل مثيل للأسباب التالية: 1. يتناسب مع ذاكرة التخزين المؤقت L3 (لكل نواة) للمعالجات الحديثة، والتي يجب أن تصبح سائدة في سنوات قليلة؛ 2. يعد ميغابايت من الذاكرة الداخلية حجمًا غير مقبول تقريبًا لخط أنابيب ASIC الحديث؛ 3. قد تقوم وحدات معالجة الرسومات بتشغيل مئات المثيلات المتزامنة، لكنها محدودة بطرق أخرى: ذاكرة GDDR5 أبطأ من ذاكرة التخزين المؤقت لوحدة المعالجة المركزية L3 وهي رائعة لعرض النطاق الترددي الخاص بها، وليس كذلك سرعة الوصول العشوائية. 4. إن التوسع الكبير في لوحة المسودة يتطلب زيادة في التكرارات، والتي بدوره يعني زيادة الوقت الإجمالي. قد تؤدي المكالمات "الثقيلة" في شبكة p2p غير الموثوقة إلى نقاط ضعف خطيرة، لأن العقد ملزمة بالتحقق من proof-of-work لكل كتلة جديدة. إذا كانت العقدة تقضي قدرًا كبيرًا من الوقت في كل تقييم hash، فيمكن بسهولة DDoSed بواسطة طوفان من الكائنات المزيفة مع بيانات العمل العشوائية (قيم nonce). 12 اقترح الحل الأكثر فعالية: "هوكايدو". على حد علمنا، فإن العمل الأخير الذي يعتمد على فكرة عمليات البحث العشوائية الزائفة في مجموعة كبيرة هو الخوارزمية المعروفة باسم "scrypt" بواسطة C. Percival [32]. على عكس الوظائف السابقة التي يركز عليها اشتقاق المفتاح، وليس أنظمة proof-of-work. على الرغم من هذه الحقيقة، يمكن أن يخدم scrypt غرضنا: تعمل بشكل جيد كوظيفة تسعير في مشكلة التحويل الجزئية hash مثل SHA-256 في Bitcoin. حتى الآن تم تطبيق scrypt بالفعل في Litecoin [14] وبعض شوكات Bitcoin الأخرى. ومع ذلك، فإن تنفيذها لا يرتبط حقًا بالذاكرة: نسبة "وقت الوصول إلى الذاكرة / الإجمالي". time" ليس كبيرًا بدرجة كافية لأن كل مثيل يستخدم 128 كيلو بايت فقط. وهذا يسمح لعمال المناجم GPU لتكون أكثر فعالية بحوالي 10 مرات وتستمر في ترك إمكانية الإنشاء نسبيًا أجهزة التعدين رخيصة ولكن ذات كفاءة عالية. علاوة على ذلك، فإن بناء السكربت نفسه يسمح بمبادلة خطية بين حجم الذاكرة ومساحة الذاكرة سرعة وحدة المعالجة المركزية نظرًا لأن كل كتلة في لوحة المسودة مشتقة فقط من سابقتها. على سبيل المثال، يمكنك تخزين كل كتلة ثانية وإعادة حساب الكتل الأخرى بطريقة كسولة، أي فقط عندما يصبح ذلك ضروريا. من المفترض أن يتم توزيع الفهارس العشوائية الزائفة بشكل موحد، وبالتالي فإن القيمة المتوقعة لإعادة حساب الكتل الإضافية هي 1 2 \(\cdot\) ن، حيثN هو الرقم من التكرارات. يزيد الوقت الإجمالي للحساب بمقدار أقل من النصف نظرًا لوجود أيضًا العمليات المستقلة عن الوقت (الوقت الثابت) مثل إعداد لوحة المسودة وتشغيل hash كل التكرار. توفير 2/3 من تكاليف الذاكرة 1 3 \(\cdot\) ن + 1 3 \(\cdot\) \(2 \cdot N\) = N عمليات إعادة الحساب الإضافية؛ 9/10 النتائج في 1 10 \(\cdot\) ن + . . . + 1 10 \(\cdot\) 9 \(\cdot\) ن = 4.5ن. من السهل إظهار أن تخزين 1 فقط ق من جميع الكتل يزيد الوقت أقل من عامل s−1 2 . وهذا بدوره يعني أن الجهاز مزود بوحدة المعالجة المركزية أسرع 200 مرة من الرقائق الحديثة التي يمكنها تخزين 320 بايت فقط من لوحة المسودة. 5.2 الخوارزمية المقترحة نقترح خوارزمية جديدة مرتبطة بالذاكرة لوظيفة التسعير proof-of-work. يعتمد عليه الوصول العشوائي إلى ذاكرة بطيئة ويؤكد الاعتماد على زمن الوصول. على عكس scrypt كل تعتمد الكتلة الجديدة (طولها 64 بايت) على جميع الكتل السابقة. ونتيجة لذلك افتراضية يجب أن يزيد "موفر الذاكرة" من سرعة حسابه بشكل كبير. تتطلب الخوارزمية الخاصة بنا حوالي 2 ميجابايت لكل مثيل للأسباب التالية: 1. يتناسب مع ذاكرة التخزين المؤقت L3 (لكل نواة) للمعالجات الحديثة، والتي يجب أن تصبح سائدة في سنوات قليلة؛ 2. يعد ميغابايت من الذاكرة الداخلية حجمًا غير مقبول تقريبًا لخط أنابيب ASIC الحديث؛ 3. قد تقوم وحدات معالجة الرسومات بتشغيل مئات المثيلات المتزامنة، لكنها محدودة بطرق أخرى: ذاكرة GDDR5 أبطأ من ذاكرة التخزين المؤقت لوحدة المعالجة المركزية L3 وهي رائعة لعرض النطاق الترددي الخاص بها، وليس كذلك سرعة الوصول العشوائية. 4. إن التوسع الكبير في لوحة المسودة يتطلب زيادة في التكرارات، والتي بدوره يعني زيادة الوقت الإجمالي. قد تؤدي المكالمات "الثقيلة" في شبكة p2p غير الموثوقة إلى نقاط ضعف خطيرة، لأن العقد ملزمة بالتحقق من proof-of-work لكل كتلة جديدة. إذا كانت العقدة تقضي قدرًا كبيرًا من الوقت في كل تقييم hash، فيمكن بسهولة DDoSed بواسطة طوفان من الكائنات المزيفة مع بيانات العمل العشوائية (قيم nonce). 12 22 لا يهم، هل هي عملة مشفرة؟ أين هي الخوارزمية؟ كل ما أراه هو إعلان. هذا هو المكان الذي ستتألق فيه Cryptonote حقًا، إذا كانت خوارزمية إثبات العمل (PoW) الخاصة بها جديرة بالاهتمام. انها ليست كذلك حقًا SHA-256، إنه ليس مشفرًا حقًا. إنها جديدة ومقيدة بالذاكرة وغير متكررة.
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 23 الوحدات الذرية. أحب ذلك. هل هذا يعادل ساتوشي؟ إذا كان الأمر كذلك، فهذا يعني أنه سيكون هناك 185 مليار عملة مشفرة. أعلم أنه يجب تعديل هذا في النهاية في بضع صفحات، أو ربما يكون هناك خطأ مطبعي؟ إذا كانت المكافأة الأساسية هي "جميع العملات المعدنية المتبقية"، فستكون كتلة واحدة فقط كافية للحصول على جميع العملات المعدنية. إنستاميني. ومن ناحية أخرى، إذا كان من المفترض أن يكون هذا متناسبًا بطريقة ما مع الفرق في الوقت بين الآن وبعض تاريخ انتهاء إنتاج العملة؟ من شأنه أن منطقي. أيضًا، في عالمي، علامتان أعظم من مثل هذه تعني "أعظم بكثير من". هل المؤلف ربما يعني شيئا آخر؟ إذا حدث تعديل للصعوبة في كل كتلة، فمن الممكن أن يمتلك المهاجم مزرعة كبيرة جدًا من الأسلحة تقوم الآلات بالتعدين داخل وخارج فترات زمنية مختارة بعناية. قد يتسبب هذا في انفجار فوضوي (أو اصطدام إلى الصفر) في الصعوبة، إذا لم يتم إخماد صيغ ضبط الصعوبة بشكل مناسب. لا شك أن طريقة Bitcoin غير مناسبة لإعادة الحسابات السريعة، ولكن فكرة القصور الذاتي في هذه الأنظمة سوف تحتاج إلى إثبات، وليس أمرا مفروغا منه. علاوة على ذلك، التذبذبات الصعوبة في الشبكة ليست بالضرورة مشكلة إلا إذا أدت إلى تذبذبات ظاهرية عرض العملات المعدنية - وقد يؤدي وجود صعوبة سريعة التغير إلى "الإفراط في التصحيح". الوقت المستغرق، خاصة خلال فترة زمنية قصيرة مثل بضع دقائق، سيكون متناسبًا مع "الإجمالي". عدد الكتل التي تم إنشاؤها على الشبكة." وثابت التناسب سوف ينمو في حد ذاته مع مرور الوقت، ويفترض أن يكون ذلك بشكل كبير إذا انطلق CN. قد تكون فكرة أفضل أن تقوم ببساطة بتعديل صعوبة الاحتفاظ "بإجمالي الكتل التي تم إنشاؤها على الشبكة منذ إضافة الكتلة الأخيرة إلى السلسلة الرئيسية" ضمن قيمة ثابتة معينة، أو مع تباين محدود أو شيء من هذا القبيل. إذا كانت الخوارزمية التكيفية حسابية يمكن تحديد سهولة التنفيذ، ويبدو أن هذا يحل المشكلة. ولكن بعد ذلك، إذا استخدمنا هذه الطريقة، يمكن لأي شخص لديه مزرعة تعدين كبيرة أن يغلق مزرعته لبضع ساعات، ثم أعد تشغيله مرة أخرى. بالنسبة للكتل القليلة الأولى، سوف تصنع تلك المزرعة البنك. لذا، في الواقع، ستثير هذه الطريقة نقطة مثيرة للاهتمام: يصبح التعدين (في المتوسط) أ خسارة اللعبة بدون عائد على الاستثمار، خاصة مع تزايد عدد الأشخاص الذين يستخدمون الشبكة. إذا كانت صعوبة التعدين شبكة يتم تتبعها عن كثب hashrate، أشك بطريقة أو بأخرى في أن الناس سوف يقومون بالتعدين بقدر ما يفعلون تفعل حاليا. أو، من ناحية أخرى، بدلاً من إبقاء مزارع التعدين الخاصة بهم تعمل على مدار الساعة طوال أيام الأسبوع، فقد يقومون بتحويلها يعمل لمدة 6 ساعات، أو إيقاف لمدة ساعتين، أو إيقاف لمدة 6 ساعات، أو إيقاف لمدة ساعتين، أو شيء من هذا القبيل. فقط قم بالتبديل إلى عملة أخرى لبضع ساعات، انتظر حتى تسقط الصعوبة، ثم قم بالقفز مرة أخرى للحصول على تلك النقاط الإضافية القليلة كتل الربحية مع تكيف الشبكة. وأنت تعرف ماذا؟ هذا هو في الواقع على الأرجح أحد أفضل سيناريوهات التعدين التي وضعتها في ذهني... يمكن أن يكون هذا أمرًا دائريًا، ولكن إذا كان متوسط وقت إنشاء الكتلة يصل إلى دقيقة تقريبًا، فهل يمكننا ذلك فقط استخدام عدد الكتل كبديل لـ "الوقت المستغرق؟"
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 24 حسنًا، لدينا blockchain، ولكل كتلة طوابع زمنية بالإضافة إلى كونها مجرد أمر. ومن الواضح أنه تم إدراج هذا ببساطة لصعوبة التعديل، لأن الطوابع الزمنية موجودة لا يمكن الاعتماد عليها للغاية، كما ذكرنا. هل يُسمح لنا بوجود طوابع زمنية متناقضة في السلسلة؟ إذا كانت المجموعة (أ) تأتي قبل المجموعة (ب) في السلسلة، وكان كل شيء متسقًا من حيث الموارد المالية، ولكن يبدو أن الكتلة "أ" قد تم إنشاؤها بعد الكتلة "ب"؟ لأنه ربما يملكها شخص ما جزء كبير من الشبكة؟ هل هذا جيد؟ ربما لأن الموارد المالية ليست مخطئة. حسنًا، أنا أكره هذا التعسفي "80% فقط من الكتل شرعية لـ blockchain الرئيسي" النهج. هل كان القصد منه منع الكاذبين من تعديل طوابعهم الزمنية؟ لكنها تضيف الآن حافز للجميع للكذب بشأن الطوابع الزمنية الخاصة بهم واختيار الوسيط فقط. يرجى تحديد. بمعنى "بالنسبة لهذه الكتلة، قم فقط بتضمين المعاملات التي تتضمن رسومًا أكبر من p%، ويفضل أن تكون الرسوم أكبر من 2p%" أو شيء من هذا القبيل؟ ماذا يقصدون بالكاذبة؟ إذا كانت المعاملة متوافقة مع التاريخ السابق لل blockchain، والمعاملة تتضمن رسومًا ترضي المعدنين، أليس هذا كافيًا؟ حسنا، لا، ليس بالضرورة. إذا لم يكن هناك حد أقصى لحجم الكتلة، فليس هناك ما يمكن الاحتفاظ به لمستخدم ضار من مجرد تحميل كتلة ضخمة من المعاملات لنفسه مرة واحدة فقط لإبطاء السرعة الشبكة. القاعدة الأساسية للحد الأقصى لحجم الكتلة تمنع الأشخاص من وضع كميات هائلة من النفايات البيانات الموجودة على blockchain مرة واحدة فقط لإبطاء الأمور. لكن مثل هذه القاعدة يجب أن تكون كذلك كن متكيفًا - خلال موسم عيد الميلاد، على سبيل المثال، يمكننا أن نتوقع ارتفاعًا حادًا في حركة المرور، و يصبح حجم الكتلة كبيرًا جدًا، وبعد ذلك مباشرة، ينخفض حجم الكتلة لاحقًا مرة أخرى. لذلك نحن بحاجة إما إلى أ) نوع من الغطاء التكيفي أو ب) غطاء كبير بما يكفي بحيث يكون 99% من قمم عيد الميلاد المعقولة لا تكسر الغطاء. وبطبيعة الحال، فإن هذا الثاني مستحيل تقدير - من يدري ما إذا كانت العملة ستنتشر؟ من الأفضل أن تجعلها قابلة للتكيف ولا تقلق عنه. ولكن بعد ذلك لدينا مشكلة نظرية التحكم: كيفية جعل هذا التكيف بدون قابلية للهجوم أو التذبذبات البرية والمجنونة؟ لاحظ أن الطريقة التكيفية لا تمنع المستخدمين الضارين من تجميع كميات صغيرة من البيانات غير المرغوب فيها بمرور الوقت على blockchain لتسبب انتفاخًا طويل المدى. هذه مسألة مختلفة تمامًا وواحدة تواجه العملات المشفرة مشكلات خطيرة معها.
6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع المفاضلة بين موازنة التكاليف والأرباح من الرسوم ويضع جدول أعماله الخاص "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 6 مزيد من المزايا 6.1 انبعاث سلس الحد الأعلى للكمية الإجمالية لعملات CryptoNote الرقمية هو: MSupply = 264 −1 الوحدات الذرية. وهذا قيد طبيعي يعتمد فقط على حدود التنفيذ، وليس على الحدس مثل "يجب أن تكون العملات المعدنية N كافية لأي شخص". لضمان سلاسة عملية الانبعاث نستخدم الصيغة التالية للكتلة المكافآت: BaseReward = (MSupply −A) ≫18, حيث A هو مقدار العملات المعدنية التي تم إنشاؤها مسبقًا. 6.2 معلمات قابلة للتعديل 6.2.1 صعوبة يحتوي CryptoNote على خوارزمية استهداف تعمل على تغيير صعوبة كل كتلة. هذا يقلل من وقت رد فعل النظام عندما يكون معدل hashالشبكة ينمو أو يتقلص بشكل مكثف، الحفاظ على معدل كتلة ثابت. الطريقة الأصلية Bitcoin تحسب العلاقة الفعلية ويستهدف الفترة الزمنية بين كتل 2016 الأخيرة ويستخدمها كمضاعف للتيار صعوبة. من الواضح أن هذا غير مناسب لإعادة الحسابات السريعة (بسبب القصور الذاتي الكبير) و يؤدي إلى تذبذبات. الفكرة العامة وراء الخوارزمية لدينا هي جمع كل العمل الذي أنجزته العقد و تقسيمها على الوقت الذي قضوه. مقياس العمل هو قيم الصعوبة المقابلة في كل كتلة. ولكن بسبب الطوابع الزمنية غير الدقيقة وغير الموثوقة، لا يمكننا تحديد الوقت بدقة الفاصل الزمني بين الكتل. يمكن للمستخدم تحويل الطابع الزمني الخاص به إلى المستقبل والمرة القادمة قد تكون الفواصل الزمنية صغيرة بشكل غير محتمل أو حتى سلبية. من المفترض أنه سيكون هناك عدد قليل من حوادث من هذا النوع، حتى نتمكن فقط من فرز الطوابع الزمنية وقطع القيم المتطرفة (أي 20٪). نطاق والقيم المتبقية هي الوقت الذي تم إنفاقه لـ 80% من الكتل المقابلة. 6.2.2 حدود الحجم يدفع المستخدمون مقابل تخزين blockchain ويحق لهم التصويت على حجمه. كل عامل منجم يتعامل مع التجارة بين موازنة الهـ التكاليف والربح من الرسوم ويحدد بنفسه "الحد الناعم" لإنشاء الكتل. كما أن القاعدة الأساسية للحد الأقصى لحجم الكتلة ضرورية منع blockchain من إغراقها بمعاملة زائفة، ولكن يجب أن تكون هذه القيمة لا تكون مشفرة. دع MN هي القيمة المتوسطة لأحجام الكتل N الأخيرة. ثم "الحد الأقصى" للحجم قبول الكتل هو 2 \(\cdot\) مليون. إنه يمنع blockchain من الانتفاخ ولكنه لا يزال يسمح بالحد الأقصى تنمو ببطء مع مرور الوقت إذا لزم الأمر. لا يلزم أن يكون حجم المعاملة محدودًا بشكل صريح. ويحدها حجم الكتلة. وإذا أراد شخص ما إنشاء معاملة ضخمة بمئات المدخلات/المخرجات (أو مع درجة الغموض العالية في التوقيعات الحلقية)، فيمكنه القيام بذلك عن طريق دفع رسوم كافية. 6.2.3 عقوبة الحجم الزائد لا يزال المُعدِّن يتمتع بالقدرة على ملء الكتلة بمعاملاته الخالية من الرسوم حتى الحد الأقصى الحجم 2 \(\cdot\) ميجا بايت. على الرغم من أن غالبية عمال المناجم فقط هم من يمكنهم تحويل القيمة المتوسطة، إلا أنه لا يزال هناك 13 25 وبإعادة قياس الوقت بحيث تكون وحدة زمنية واحدة هي N كتل، لا يزال من الممكن أن ينمو متوسط حجم الكتلة، نظريًا، بشكل متناسب إلى 2ˆt. من ناحية أخرى، سقف أكثر عمومية في الكتلة التالية سيكون M_nf(M_n) لبعض الوظائف f. ما هي خصائص f من شأنها نختار من أجل ضمان بعض "النمو المعقول" لحجم الكتلة؟ تطور ستكون أحجام الكتل (بعد إعادة قياس الوقت) كما يلي: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... والهدف هنا هو اختيار f بحيث لا ينمو هذا التسلسل بشكل أسرع من، على سبيل المثال، خطيًا، أو ربما حتى كسجل (ر). بالطبع، إذا كانت f(M_n) = a لبعض الثابت a، فإن هذا التسلسل هو في الواقع M_n aM_n aˆ2M_n aˆ3M_n ... وبطبيعة الحال، الطريقة الوحيدة التي يمكن أن يقتصر بها هذا على النمو الخطي على الأكثر هي اختيار a=1. وهذا بالطبع غير ممكن. لا يسمح بالنمو على الإطلاق. من ناحية أخرى، إذا كانت f(M_n) دالة غير ثابتة، فإن الوضع أكبر من ذلك بكثير معقدة وقد تسمح بحل أنيق. سأفكر في هذا لبعض الوقت. يجب أن تكون هذه الرسوم كبيرة بما يكفي لخصم عقوبة الحجم الزائد من القسم التالي. لماذا يفترض أن المستخدم العام ذكر، هاه؟ هاه؟
إمكانية تضخيم blockchain وإنتاج حمل إضافي على العقد. لتثبيط المشاركون الخبيثون من إنشاء كتل كبيرة نقدم وظيفة عقوبة: NewReward = BaseReward \(\cdot\) حجم Blk مينيسوتا -1 2 يتم تطبيق هذه القاعدة فقط عندما يكون BlkSize أكبر من الحد الأدنى لحجم الكتلة الحرة الذي ينبغي كن قريبًا من الحد الأقصى (10 كيلو بايت، \(M_N \cdot 110\%\)). يُسمح لعمال المناجم بإنشاء كتل ذات "حجم عادي" وحتى تجاوزها بالربح عندما تتجاوز الرسوم الإجمالية العقوبة. لكن الرسوم من غير المرجح أن تنمو من الدرجة الثانية على عكس قيمة العقوبة لذلك سيكون هناك توازن. 6.3 البرامج النصية للمعاملات يحتوي CryptoNote على نظام فرعي بسيط جدًا للبرمجة النصية. يحدد المرسل التعبير Φ = f (x1, x2, . . . , xn)، حيث n هو عدد المفاتيح العامة للوجهة {Pi}n أنا = 1. خمسة فقط ثنائي يتم دعم العوامل: min وmax وsum وmul وcmp. عندما ينفق المتلقي هذه الدفعة، يقوم بإنتاج توقيعات 0 \(\geq k\) \(\geq n\) ويمررها إلى إدخال المعاملة. عملية التحقق ببساطة يتم تقييم Φ باستخدام xi = 1 للتحقق من وجود توقيع صالح للمفتاح العام Pi، وxi = 0. يقبل المدقق الدليل إذا كان > 0. على الرغم من بساطته، فإن هذا النهج يغطي كل الحالات المحتملة: • توقيع متعدد/عتبة. بالنسبة للتوقيع المتعدد "M-out-of-N" ذو النمط Bitcoin (أي. ينبغي أن يوفر المستقبل ما لا يقل عن 0 \(\geq M\) \(\geq N\) من التوقيعات الصالحة) Φ = x1+x2+. . .+xN \(\geq M\) (من أجل الوضوح نستخدم التدوين الجبري المشترك). توقيع العتبة المرجحة (قد تكون بعض المفاتيح أكثر أهمية من غيرها) ويمكن التعبير عنها بـ Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + WN \(\cdot\) xN \(\geq wM\). والسيناريو الذي يتوافق فيه المفتاح الرئيسي مع Φ = الحد الأقصى (\(M \cdot x\)، x1 + x2 + . . . + xN) \(\geq M\). من السهل إظهار أن أي حالة معقدة يمكن أن تكون كذلك يتم التعبير عنها باستخدام هذه العوامل، أي أنها تشكل الأساس. • الحماية بكلمة مرور. إن امتلاك كلمة مرور سرية يعادل معرفة مفتاح خاص، مشتق بشكل حتمي من كلمة المرور: k = KDF(s). وبالتالي جهاز استقبال يمكنه إثبات أنه يعرف كلمة المرور من خلال تقديم توقيع آخر تحت المفتاح k. يقوم المرسل ببساطة بإضافة المفتاح العام المقابل إلى مخرجاته الخاصة. لاحظ أن هذا تعد الطريقة أكثر أمانًا من "لغز المعاملات" المستخدم في Bitcoin [13]، حيث يتم تمرير كلمة المرور بشكل صريح في المدخلات. • الحالات المتدهورة. Φ = 1 يعني أنه يمكن لأي شخص إنفاق المال؛ Φ = 0 يمثل الإخراج على أنه غير قابل للإنفاق إلى الأبد. في حالة ما إذا كان البرنامج النصي الناتج مع المفاتيح العامة كبيرًا جدًا بالنسبة للمرسل، فإنه يمكن استخدام نوع إخراج خاص، مما يشير إلى أن المستلم سيضع هذه البيانات في مدخلاته بينما يقدم المرسل hash فقط منه. يشبه هذا الأسلوب أسلوب Bitcoin في "الدفع إلى hash" الميزة، ولكن بدلاً من إضافة أوامر نصية جديدة، فإننا نتعامل مع هذه الحالة في بنية البيانات المستوى. 7 الاستنتاج لقد قمنا بالتحقق من العيوب الرئيسية في Bitcoin واقترحنا بعض الحلول الممكنة. هذه الميزات المفيدة وتطويرنا المستمر يجعل نظام النقد الإلكتروني الجديد CryptoNote منافس جدي لـ Bitcoin، متفوقًا على كل شوكاته. 14 إمكانية تضخيم blockchain وإنتاج حمل إضافي على العقد. لتثبيط المشاركون الخبيثون من إنشاء كتل كبيرة نقدم وظيفة عقوبة: NewReward = BaseReward \(\cdot\) حجم Blk مينيسوتا -1 2 يتم تطبيق هذه القاعدة فقط عندما يكون BlkSize أكبر من الحد الأدنى لحجم الكتلة الحرة الذي ينبغي كن قريبًا من الحد الأقصى (10 كيلو بايت، \(M_N \cdot 110\%\)). يُسمح لعمال المناجم بإنشاء كتل ذات "حجم عادي" وحتى تجاوزها بالربح عندما تتجاوز الرسوم الإجمالية العقوبة. لكن الرسوم من غير المرجح أن تنمو من الدرجة الثانية على عكس قيمة العقوبة لذلك سيكون هناك توازن. 6.3 البرامج النصية للمعاملات يحتوي CryptoNote على نظام فرعي بسيط جدًا للبرمجة النصية. يحدد المرسل التعبير Φ = f (x1, x2, . . . , xn)، حيث n هو عدد المفاتيح العامة للوجهة {Pi}n أنا = 1. خمسة فقط ثنائي يتم دعم العوامل: min وmax وsum وmul وcmp. عندما ينفق المتلقي هذه الدفعة، يقوم بإنتاج توقيعات 0 \(\geq k\) \(\geq n\) ويمررها إلى إدخال المعاملة. عملية التحقق ببساطة يتم تقييم Φ باستخدام xi = 1 للتحقق من وجود توقيع صالح للمفتاح العام Pi، وxi = 0. يقبل المدقق الدليل إذا كان > 0. على الرغم من بساطته، فإن هذا النهج يغطي كل الحالات المحتملة: • توقيع متعدد/عتبة. بالنسبة للتوقيع المتعدد "M-out-of-N" ذو النمط Bitcoin (أي. ينبغي أن يوفر المستقبل ما لا يقل عن 0 \(\geq M\) \(\geq N\) من التوقيعات الصالحة) Φ = x1+x2+. . .+xN \(\geq M\) (من أجل الوضوح نستخدم التدوين الجبري المشترك). توقيع العتبة المرجحة (قد تكون بعض المفاتيح أكثر أهمية من غيرها) ويمكن التعبير عنها بـ Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + WN \(\cdot\) xN \(\geq wM\). والسيناريوio حيث يتوافق المفتاح الرئيسي مع Φ = الحد الأقصى (\(M \cdot x\)، x1 + x2 + . . . + xN) \(\geq M\). من السهل إظهار أن أي حالة معقدة يمكن أن تكون كذلك يتم التعبير عنها باستخدام هذه العوامل، أي أنها تشكل الأساس. • الحماية بكلمة مرور. إن امتلاك كلمة مرور سرية يعادل معرفة مفتاح خاص، مشتق بشكل حتمي من كلمة المرور: k = KDF(s). وبالتالي جهاز استقبال يمكنه إثبات أنه يعرف كلمة المرور من خلال تقديم توقيع آخر تحت المفتاح k. يقوم المرسل ببساطة بإضافة المفتاح العام المقابل إلى مخرجاته الخاصة. لاحظ أن هذا تعد هذه الطريقة أكثر أمانًا من "لغز المعاملات" المستخدم في Bitcoin [13]، حيث يتم تمرير كلمة المرور بشكل صريح في المدخلات. • الحالات المتدهورة. Φ = 1 يعني أنه يمكن لأي شخص إنفاق المال؛ Φ = 0 يمثل الإخراج على أنه غير قابل للإنفاق إلى الأبد. في حالة ما إذا كان البرنامج النصي الناتج مع المفاتيح العامة كبيرًا جدًا بالنسبة للمرسل، فإنه يمكن استخدام نوع إخراج خاص، مما يشير إلى أن المستلم سيضع هذه البيانات في مدخلاته بينما يقدم المرسل hash فقط منه. يشبه هذا الأسلوب أسلوب Bitcoin "الدفع إلى hash" الميزة، ولكن بدلاً من إضافة أوامر نصية جديدة، فإننا نتعامل مع هذه الحالة في بنية البيانات المستوى. 7 الاستنتاج لقد قمنا بالتحقق من العيوب الرئيسية في Bitcoin واقترحنا بعض الحلول الممكنة. هذه الميزات المفيدة وتطويرنا المستمر يجعل نظام النقد الإلكتروني الجديد CryptoNote منافس جدي لـ Bitcoin، متفوقًا على كل شوكاتها. 14 26 قد يكون هذا غير ضروري إذا تمكنا من اكتشاف طريقة لربط حجم الكتلة بمرور الوقت... وهذا أيضاً لا يمكن أن يكون صحيحاً. لقد قاموا للتو بتعيين "NewReward" على القطع المكافئ المتجه للأعلى حيث حجم الكتلة هو المتغير المستقل. لذا فإن المكافأة الجديدة تنفجر إلى ما لا نهاية. إذا، من جهة أخرى اليد، المكافأة الجديدة هي Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)) ثم المكافأة الجديدة سيكون قطعًا مكافئًا متجهًا للأسفل مع قمة عند حجم الكتلة = Mn، ومع تقاطعات عند حجم الكتلة = 0 وحجم الكتلة = 2Mn. ويبدو أن هذا هو ما يحاولون وصفه. ومع ذلك، هذا لا
Nicht nachvollziehbare Transaktionen
In diesem Abschnitt schlagen wir ein Schema vollständig anonymer Transaktionen vor, das beide Anforderungen an die Rückverfolgbarkeit erfüllt
und Unverknüpfbarkeitsbedingungen. Ein wichtiges Merkmal unserer Lösung ist ihre Autonomie: der Absender
ist nicht verpflichtet, mit anderen Benutzern oder einem vertrauenswürdigen Dritten zusammenzuarbeiten, um seine Transaktionen durchzuführen;
somit erzeugt jeder Teilnehmer selbstständig einen Deckungsverkehr.
4.1
Literaturübersicht
Unser Schema basiert auf dem kryptografischen Grundelement, das als Gruppensignatur bezeichnet wird. Erstmals präsentiert von
D. Chaum und E. van Heyst [19] ermöglicht es einem Benutzer, seine Nachricht im Namen der Gruppe zu signieren.
Nach dem Signieren der Nachricht stellt der Benutzer (zu Verifizierungszwecken) nicht seine eigene Einzelöffentlichkeit zur Verfügung
1Dies ist das sogenannte „Soft Limit“ – die Referenz-Client-Einschränkung für die Erstellung neuer Blöcke. Hartes Maximum von
Die mögliche Blockgröße betrug 1 MB
4
wenn nötig, verursacht das die Hauptnachteile. Leider ist es schwer vorherzusagen, wann
Konstanten müssen möglicherweise geändert werden, und ihre Ersetzung kann schreckliche Folgen haben.
Ein gutes Beispiel für eine hartcodierte Grenzwertänderung, die katastrophale Folgen hat, ist der Block
Größenbeschränkung auf 250 KB1 festgelegt. Dieses Limit reichte aus, um etwa 10.000 Standardtransaktionen aufzunehmen. In
Anfang 2013 war diese Grenze fast erreicht und man einigte sich auf eine Erhöhung
Grenze. Die Änderung wurde in Wallet-Version 0.8 implementiert und endete mit einer 24-Block-Chain-Aufteilung
und ein erfolgreicher Double-Spend-Angriff [9]. Der Fehler lag zwar nicht im Protokoll Bitcoin, aber
Vielmehr hätte es in der Datenbank-Engine leicht durch einen einfachen Stresstest erkannt werden können, wenn dies der Fall gewesen wäre
keine künstlich eingeführte Blockgrößenbeschränkung.
Konstanten fungieren auch als eine Art Zentralisierungspunkt.
Trotz des Peer-to-Peer-Charakters von
Bitcoin, eine überwältigende Mehrheit der Knoten verwendet den offiziellen Referenzclient [10], der von entwickelt wurde
eine kleine Gruppe von Menschen. Diese Gruppe trifft die Entscheidung, Änderungen am Protokoll umzusetzen
und die meisten Menschen akzeptieren diese Änderungen unabhängig von ihrer „Richtigkeit“. Einige Entscheidungen verursachten
hitzige Diskussionen und sogar Boykottaufrufe [11], was darauf hindeutet, dass die Community und die
Entwickler können in einigen wichtigen Punkten anderer Meinung sein. Daher erscheint es logisch, ein Protokoll zu haben
mit vom Benutzer konfigurierbaren und selbstanpassenden Variablen als mögliche Möglichkeit, diese Probleme zu vermeiden.
2.5
Umfangreiche Skripte
Das Skriptsystem in Bitcoin ist eine umfangreiche und komplexe Funktion. Es ermöglicht einem möglicherweise, etwas zu erschaffen
ausgefeilte Transaktionen [12], aber einige seiner Funktionen sind aus Sicherheitsgründen deaktiviert und
einige wurden noch nie verwendet [13]. Das Skript (einschließlich der Teile des Senders und des Empfängers)
für die beliebteste Transaktion in Bitcoin sieht das so aus:
Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Problem des diskreten Logarithmus, daher könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 8 Eine Ringsignatur funktioniert so: Alex möchte eine Nachricht über ihren Arbeitgeber an WikiLeaks weitergeben. Jeder Mitarbeiter in seinem Unternehmen verfügt über ein privates/öffentliches Schlüsselpaar (Ri, Ui). Sie komponiert ihre Signatur mit Eingaben wie ihre Nachricht, m, ihr privater Schlüssel, Ri und EVERYBODY’s öffentliche Schlüssel, (Ui;i=1...n). Jeder (ohne private Schlüssel zu kennen) kann dies leicht überprüfen irgendein Paar (Rj, Uj) muss zum Erstellen der Signatur verwendet worden sein ... jemand, der funktioniert für Alex‘ Arbeitgeber ... aber es ist im Wesentlichen eine zufällige Vermutung, um herauszufinden, welcher es sein könnte. 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 Beachten Sie, dass eine hier beschriebene verknüpfbare Ringsignatur sozusagen das Gegenteil von „nicht verknüpfbar“ ist. oben beschrieben. Hier fangen wir zwei Nachrichten ab und können feststellen, ob sie identisch sind Die Partei hat sie geschickt, obwohl wir immer noch nicht in der Lage sein sollten, festzustellen, wer diese Partei ist. Die Die zur Erstellung von Cryptonote verwendete Definition von „nicht verknüpfbar“ bedeutet, dass wir nicht feststellen können, ob dieselbe Partei empfängt sie. Was wir hier also wirklich haben, sind VIER Dinge, die vor sich gehen. Ein System kann verknüpfbar sein oder nicht verlinkbar, je nachdem, ob festgestellt werden kann, ob der Absender von zwei Nachrichten sind gleich (unabhängig davon, ob dies einen Widerruf der Anonymität erfordert). Und Ein System kann nicht verknüpfbar oder nicht verknüpfbar sein, je nachdem, ob dies möglich ist oder nicht Bestimmen Sie, ob die Empfänger zweier Nachrichten identisch sind (unabhängig davon, ob oder nicht). dies erfordert den Widerruf der Anonymität). Bitte machen Sie mir nicht die Schuld für diese schreckliche Terminologie. Graphentheoretiker sollten es wahrscheinlich sein erfreut. Einige von Ihnen sind möglicherweise mit „Empfänger verknüpfbar“ im Vergleich zu „Sender verknüpfbar“ zufriedener. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Als ich das las, kam mir das wie eine alberne Funktion vor. Dann habe ich gelesen, dass es eine Funktion für sein könnte elektronische Abstimmung, und das schien Sinn zu machen. Irgendwie cool, aus dieser Perspektive. Aber ich bin Ich bin mir nicht ganz sicher, ob ich absichtlich nachverfolgbare Ringsignaturen implementieren soll. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Problem des diskreten Logarithmus, daher könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 9 Meine Güte, der Autor dieses Whitepapers hätte das sicher besser formulieren können! Nehmen wir an, dass ein Das von Mitarbeitern geführte Unternehmen möchte darüber abstimmen, ob bestimmte neue Unternehmen erworben werden sollen oder nicht Vermögenswerte, und Alex und Brenda sind beide Angestellte. Das Unternehmen stellt jedem Mitarbeiter a Nachricht wie „Ich stimme für Vorschlag A mit Ja!“ welches die Metainformation „issue“ hat [PROP A] und bittet sie, es mit einer nachvollziehbaren Ringsignatur zu unterzeichnen, wenn sie den Vorschlag unterstützen. Mithilfe einer herkömmlichen Ringsignatur kann ein unehrlicher Mitarbeiter die Nachricht mehrmals unterschreiben. vermutlich mit verschiedenen nonces, um so oft abzustimmen, wie sie möchten. Auf der anderen Seite Andererseits wird Alex in einem nachverfolgbaren Ringsignaturschema abstimmen und ihren privaten Schlüssel haben zu dem Thema verwendet wurde [PROP A]. Wenn Alex versucht, eine Nachricht wie „Ich, Brenda, stimme zu Vorschlag A!" Um Brenda zu „verleumden“ und doppelt abzustimmen, wird diese neue Nachricht auch das Problem haben [Stütze A]. Da Alex‘ privater Schlüssel das [PROP A]-Problem bereits gelöst hat, ist Alex‘ Identität nicht mehr bekannt wird sofort als Betrug entlarvt. Was, ehrlich gesagt, ziemlich cool ist! Die Kryptographie erzwang die Wahlgleichheit. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Dieses Papier ist interessant und erstellt im Wesentlichen eine Ad-hoc-Ringsignatur, jedoch ohne jegliches Zustimmung des anderen Teilnehmers. Der Aufbau der Signatur kann unterschiedlich sein; Ich habe nicht gegraben tief, und ich habe nicht gesehen, ob es sicher ist. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Ad-hoc-Gruppensignaturen sind: Ringsignaturen, bei denen es sich um Gruppensignaturen ohne Gruppe handelt Manager, keine Zentralisierung, aber ein Mitglied einer Ad-hoc-Gruppe kann dies nachweislich behaupten es hat die anonyme Unterschrift (nicht) im Namen der Gruppe ausgestellt. http://link.springer.com/chapter/10.1007/11908739_9 Das ist nach meinem Verständnis nicht ganz richtig. Und mein Verständnis wird sich wahrscheinlich ändern Ich vertiefe mich in dieses Projekt. Aber nach meinem Verständnis sieht die Hierarchie so aus. Gruppensignaturen: Gruppenmanager kontrollieren die Rückverfolgbarkeit und die Möglichkeit, Mitglieder hinzuzufügen oder zu entfernen davon, Unterzeichner zu sein. Ringzeichen: Willkürliche Gruppenbildung ohne Gruppenleiter. Kein Widerruf der Anonymität. Es gibt keine Möglichkeit, sich von einer bestimmten Signatur zu distanzieren. Mit rückverfolgbarem und verbindbarem Ring Signaturen ist die Anonymität einigermaßen skalierbar. Ad-hoc-Gruppensignaturen: wie Ringsignaturen, aber Mitglieder können nachweisen, dass sie sie nicht erstellt haben eine bestimmte Signatur. Dies ist wichtig, wenn jeder in einer Gruppe eine Unterschrift leisten kann. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Der Algorithmus von Fujisaki und Suzuki wird später vom Autor optimiert, um Einmaligkeit zu gewährleisten. Also Wir werden vielmehr den Algorithmus von Fujisaki und Suzuki gleichzeitig mit dem neuen Algorithmus analysieren als es hier durchzugehen.
Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 10 Verknüpfbarkeit im Sinne von „verknüpfbaren Ringsignaturen“ bedeutet, dass wir erkennen können, ob zwei ausgehende Transaktionen von derselben Quelle stammen, ohne preiszugeben, wer die Quelle ist. Die Autoren wurden geschwächt Verknüpfbarkeit, um (a) die Privatsphäre zu wahren, aber dennoch (b) jede Transaktion mithilfe eines privaten Schlüssels zu erkennen ein zweites Mal als ungültig erklärt. Okay, das ist also eine Frage der Reihenfolge der Ereignisse. Betrachten Sie das folgende Szenario. Mein Bergbau Wenn der Computer über den aktuellen blockchain verfügt, verfügt er über einen eigenen Transaktionsblock, den er aufruft legitim, es wird an diesem Block in einem proof-of-work-Puzzle gearbeitet, und es wird eine haben Liste der ausstehenden Transaktionen, die dem nächsten Block hinzugefügt werden sollen. Es werden auch keine neuen verschickt Transaktionen in diesen Pool ausstehender Transaktionen. Wenn ich den nächsten Block nicht löse, aber Wenn jemand anderes dies tut, erhalte ich eine aktualisierte Kopie von blockchain. Der Block, an dem ich gearbeitet habe und Meine Liste der ausstehenden Transaktionen enthält möglicherweise einige Transaktionen, die jetzt integriert sind in den blockchain. Lösen Sie meinen ausstehenden Block auf, kombinieren Sie ihn mit meiner Liste ausstehender Transaktionen und rufen Sie ihn auf mein Pool an ausstehenden Transaktionen. Entfernen Sie alle, die sich jetzt offiziell im blockchain befinden. Was soll ich nun tun? Sollte ich zunächst alle Doppelausgaben entfernen? Auf der anderen Seite Andererseits sollte ich die Liste durchsuchen und sicherstellen, dass jeder private Schlüssel noch nicht vorhanden ist verwendet wurde, und wenn es bereits in meiner Liste verwendet wurde, dann habe ich das erste Exemplar zuerst erhalten, und daher jede weitere Kopie ist unzulässig. Deshalb lösche ich einfach alle Instanzen nach der ersten des gleichen privaten Schlüssels. Algebraische Geometrie war noch nie meine Stärke. http://en.wikipedia.org/wiki/EdDSA So eine Geschwindigkeit, wirklich wow. DAS ist algebraische Geometrie für den Sieg. Nicht, dass ich etwas wüsste darüber. Ob problematisch oder nicht, diskrete Protokolle werden sehr schnell. Und Quantencomputer fressen sie zum Frühstück. http://link.springer.com/article/10.1007/s13389-012-0027-1 Dies wird zu einer wirklich wichtigen Zahl, aber es gibt keine Erklärung oder Quelle dafür, wie es dazu kommt wurde gewählt. Es wäre in Ordnung, einfach eine einzelne bekannte große Primzahl zu wählen, aber wenn es solche gibt, dann ist das kein Problem Fakten über diese große Primzahl, die unsere Wahl beeinflussen könnten. Verschiedene Varianten von Kryptonote könnte verschiedene Werte von wählen Nun ja, aber in diesem Artikel wird nicht darüber diskutiert, wie das funktioniert Die Auswahl wirkt sich auf unsere Auswahl anderer globaler Parameter aus, die auf Seite 5 aufgeführt sind. Dieses Dokument benötigt einen Abschnitt zur Auswahl von Parameterwerten.
Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelles Bitcoin-Schlüssel-/Transaktionsmodell. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelle Bitcoin-Schlüssel/Transaktionen-Model. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 11 Das ist also wie Bitcoin, aber mit unbegrenzten, anonymen Postfächern, die nur vom Empfänger eingelöst werden können Generieren eines privaten Schlüssels, der so anonym ist wie eine Ringsignatur. Bitcoin funktioniert auf diese Weise. Wenn Alex 0,112 Bitcoin in ihrer Brieftasche hat, die sie gerade von Frank erhalten hat, hat sie wirklich eine unterschriebene Karte Nachricht „Ich, [FRANK], sende 0,112 Bitcoin an [alex] + H0 + N0“, wobei 1) Frank das unterschrieben hat Nachricht mit seinem privaten Schlüssel [FRANK], 2) Frank hat die Nachricht mit Alex‘ öffentlichem Schlüssel signiert Schlüssel, [Alex], 3) Frank hat eine Form der Geschichte des Bitcoin, H0, eingefügt und 4) Frank enthält ein zufälliges Datenbit namens nonce, N0. Wenn Alex dann 0,011 Bitcoin an Charlene senden möchte, nimmt sie Franks Nachricht entgegen und sie wird das auf H1 setzen und zwei Nachrichten signieren: eine für ihre Transaktion und eine für die Änderung. H1= „Ich, [FRANK], sende 0,112 Bitcoin an [alex] + H0 + N“ „Ich, [ALEX], sende 0,011 Bitcoin an [charlene] + H1 + N1“ „Ich, [ALEX], sende 0,101 Bitcoin als Änderung an [alex] + H1 + N2.“ wo Alex beide Nachrichten mit ihrem privaten Schlüssel [ALEX] signiert, die erste Nachricht mit dem von Charlene öffentlicher Schlüssel [charlene], die zweite Nachricht mit Alex‘ öffentlichem Schlüssel [alex] und einschließlich der Historien und einige zufällig generierte nonces N1 und N2 entsprechend. Cryptonote funktioniert so: Wenn Alex 0,112 Cryptonote in ihrer Brieftasche hat, die sie gerade von Frank erhalten hat, hat sie wirklich eine unterschriebene Münze Nachricht „Ich, [jemand in einer Ad-hoc-Gruppe], sende 0,112 Cryptonote an [eine einmalige Adresse] + H0 + N0.“ Alex entdeckte, dass es sich dabei um ihr Geld handelte, indem sie ihren privaten Schlüssel [ALEX] überprüfte [eine einmalige Adresse] für jede vorbeigehende Nachricht, und wenn sie diese ausgeben möchte, tut sie dies in auf folgende Weise. Sie wählt einen Empfänger des Geldes aus, vielleicht hat Charlene damit begonnen, für Drohnenangriffe zu stimmen Alex möchte stattdessen Geld an Brenda schicken. Also sucht Alex nach Brendas öffentlichem Schlüssel, [brenda], und verwendet ihren eigenen privaten Schlüssel, [ALEX], um eine einmalige Adresse [ALEX+brenda] zu generieren. Sie Dann wählt sie eine beliebige Sammlung C aus dem Netzwerk der Cryptonote-Benutzer aus und erstellt sie eine Ringsignatur dieser Ad-hoc-Gruppe. Wir legen unseren Verlauf wie in der vorherigen Nachricht fest, fügen hinzu nonces und wie gewohnt fortfahren? H1 = „Ich, [jemand in einer Ad-hoc-Gruppe], sende 0,112 Cryptonote an [eine einmalige Adresse] + H0 + N0.“ „Ich, [jemand in der Sammlung C], sende 0,011 Cryptonote an [one-time-address-made-fromALEX+brenda] + H1 + N1“ „Ich, [jemand in der Sammlung C], sende 0,101 Cryptonote als Änderung an [one-time-address-madefrom-ALEX+alex] + H1 + N2“ Jetzt scannen Alex und Brenda beide alle eingehenden Nachrichten nach eventuell vorhandenen Einmaladressen mit ihrem Schlüssel erstellt. Wenn sie welche finden, dann ist diese Nachricht ganz neu für sie Kryptonote! Und selbst dann wird die Transaktion immer noch den blockchain erreichen. Wenn die Münzen diese Adresse eingeben Es ist bekannt, dass sie von Kriminellen, politischen Mitwirkenden oder von Komitees und Konten gesendet werden bei strengen Budgets (z. B. Unterschlagung) oder wenn der neue Besitzer dieser Münzen jemals einen Fehler macht und sendet diese Münzen an eine gemeinsame Adresse mit Münzen, von denen bekannt ist, dass sie sie besitzen, die Anonymitätsvorrichtung ist in Bitcoin gestiegen.
Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelles Bitcoin-Schlüssel-/Transaktionsmodell. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditioneller Bitcoin-Schlüssel/Transaktionen-Model. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 12 Anstatt also Münzen von einer Adresse (die eigentlich ein öffentlicher Schlüssel ist) an eine Adresse zu senden (ein weiterer öffentlicher Schlüssel) Mit ihren privaten Schlüsseln senden Benutzer Münzen aus einem einmaligen Postfach (der mit dem öffentlichen Schlüssel Ihres Freundes generiert wird) an ein einmaliges Postfach (ähnlich) mit Ihrem eigene private Schlüssel. In gewisser Weise sagen wir: „Okay, lasst alle die Finger vom Geld, während es in Umlauf ist.“ herumgetragen! Es reicht einfach zu wissen, dass unsere Schlüssel diese und jene Kiste öffnen können Wir wissen, wie viel Geld in der Box ist. Legen Sie niemals Ihre Fingerabdrücke auf das Postfach oder Um es tatsächlich zu nutzen, tauschen Sie einfach die mit Bargeld gefüllte Box selbst aus. Auf diese Weise wissen wir nicht, wer gesendet hat Was, aber der Inhalt dieser öffentlichen Adressen ist immer noch reibungslos, fungibel, teilbar und besitzen immer noch all die anderen schönen Eigenschaften von Geld, die wir uns wünschen, wie Bitcoin.“ Eine unendliche Menge an Postfächern. Sie veröffentlichen eine Adresse, ich habe einen privaten Schlüssel. Ich verwende meinen privaten Schlüssel und Ihre Adresse und einige zufällige Daten, um einen öffentlichen Schlüssel zu generieren. Der Algorithmus ist so konzipiert, dass, da Ihr Adresse zum Generieren des öffentlichen Schlüssels verwendet wurde, funktioniert nur IHR privater Schlüssel zum Entsperren Nachricht. Eine Beobachterin, Eve, sieht, wie Sie Ihre Adresse veröffentlichen, und sieht den öffentlichen Schlüssel, den ich bekannt gebe. Allerdings Sie weiß nicht, ob ich meinen öffentlichen Schlüssel basierend auf Ihrer Adresse oder ihrer oder der von Brenda bekannt gegeben habe oder Charlenes, oder wer auch immer. Sie vergleicht ihren privaten Schlüssel mit dem öffentlichen Schlüssel, den ich angekündigt habe und sieht, dass es nicht funktioniert; es ist nicht ihr Geld. Sie kennt den privaten Schlüssel von niemand anderem und Nur der Empfänger der Nachricht verfügt über den privaten Schlüssel, der die Nachricht entsperren kann. Also niemand Wenn man zuhört, kann man feststellen, wer das Geld erhalten hat, geschweige denn, das Geld annehmen.
Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 13 Ich frage mich, wie mühsam es wäre, eine Wahl der Kryptographie zu implementieren Schema. Elliptisch oder anders. Wenn also in Zukunft ein Plan gebrochen wird, wechselt die Währung ohne Bedenken. Wahrscheinlich eine große Nervensäge. Okay, das ist genau das, was ich gerade in meinem vorherigen Kommentar erklärt habe. Der Diffie-Hellman-Typ Der Austausch ist ordentlich. Angenommen, Alex und Brenda haben jeweils eine Geheimnummer A und B und eine Nummer Es geht ihnen nicht darum, Geheimnisse zu bewahren, a und b. Sie möchten ein gemeinsames Geheimnis generieren, ohne dies zu tun Eva entdeckt es. Diffie und Hellman haben eine Möglichkeit gefunden, wie Alex und Brenda das teilen können öffentliche Nummern a und b, nicht jedoch die privaten Nummern A und B, und generieren ein gemeinsames Geheimnis, K. Unter Verwendung dieses gemeinsamen Geheimnisses, K, ohne dass Eva zuhört, um dasselbe zu generieren K, Alex und Brenda können K nun als geheimen Verschlüsselungsschlüssel verwenden und geheime Nachrichten zurückgeben und her. So KANN es funktionieren, obwohl es mit viel größeren Zahlen als 100 funktionieren sollte. Wir verwenden 100, da das Bearbeiten der ganzen Zahlen Modulo 100 gleichbedeutend mit „Alle wegwerfen“ ist sondern die letzten beiden Ziffern einer Zahl.“ Alex und Brenda wählen jeweils A, a, B und b. Sie halten A und B geheim. Alex teilt Brenda ihren Wert eines Modulo 100 mit (nur die letzten beiden Ziffern) und Brenda teilt es Alex mit ihr Wert von b Modulo 100. Jetzt kennt Eva (a,b) Modulo 100. Aber Alex kennt (a,b,A) also sie kann x=abA modulo 100 berechnen.Alex schneidet alles bis auf die letzte Ziffer ab, weil wir arbeiten unter den ganzen Zahlen Modulo 100 wieder. Ebenso kennt Brenda (a,b,B), sodass sie berechnen kann y=abB Modulo 100. Alex kann jetzt x veröffentlichen und Brenda kann y veröffentlichen. Aber jetzt kann Alex yA = abBA modulo 100 berechnen, und Brenda kann xB berechnen = abBA modulo 100. Sie kennen beide die gleiche Nummer! Aber alles, was Eva gehört hat, ist (a,b,abA,abB). Sie hat keine einfache Möglichkeit, abA*B zu berechnen. Dies ist nun die einfachste und unsicherste Art, über den Diffie-Hellman-Austausch nachzudenken. Es gibt sicherere Versionen. Die meisten Versionen funktionieren jedoch aufgrund der ganzzahligen und diskreten Faktorisierung Logarithmen sind schwierig, und beide Probleme können von Quantencomputern leicht gelöst werden. Ich werde prüfen, ob es quantenresistente Versionen gibt. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Der hier aufgeführten „Standard-TXN-Sequenz“ fehlen eine ganze Reihe von Schritten, wie z. B. SIGNATUREN. Sie werden hier einfach als selbstverständlich angesehen. Was wirklich schlimm ist, denn die Reihenfolge, in der wir Signieren, die in der signierten Nachricht enthaltenen Informationen und so weiter ... das alles ist extrem wichtig für das Protokoll. Bei der Umsetzung von „the Standard-Transaktionssequenz“ könnte die Sicherheit des gesamten Systems in Frage stellen. Darüber hinaus sind die später in der Arbeit vorgelegten Beweise möglicherweise nicht streng genug, wenn die Der Rahmen, in dem sie arbeiten, ist genauso locker definiert wie in diesem Abschnitt.
Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 14 Beachten Sie, dass es den Autoren schlecht gelingt, ihre Terminologie durchgehend klar zu halten den Text, aber vor allem in diesem nächsten Teil. Die nächste Inkarnation dieses Papiers wird notwendigerweise sein viel strenger. Im Text bezeichnen sie P als ihren einmaligen öffentlichen Schlüssel. Im Diagramm bezeichnen sie R als ihren „öffentlichen Tx-Schlüssel“ und P als ihren „Zielschlüssel“. Wenn ich das umschreiben würde, würde ich es tun Legen Sie einige Begriffe ganz konkret dar, bevor Sie diese Abschnitte besprechen. Diese Elle ist riesig. Siehe Seite 5. Wer wählt ell? Das Diagramm zeigt, dass der öffentliche Transaktionsschlüssel R = rG ist, der zufällig und ausgewählt ist B. vom Absender, ist nicht Teil der Tx-Ausgabe. Dies liegt daran, dass es für mehrere gleich sein könnte Transaktionen an mehrere Personen und wird SPÄTER nicht für Ausgaben verwendet. Ein neues R wird generiert jedes Mal, wenn Sie eine neue CryptoNote-Transaktion übertragen möchten. Darüber hinaus wird nur R verwendet um zu prüfen, ob Sie der Empfänger der Transaktion sind. Es handelt sich nicht um Junk-Daten, aber für jeden ist es Junk-Daten ohne die mit (A,B) verbundenen privaten Schlüssel. Der Zielschlüssel hingegen, P = Hs(rA)G + B, ist Teil der Tx-Ausgabe. Jeder Beim Durchsuchen der Daten jeder laufenden Transaktion müssen sie ihr eigenes generiertes P* vergleichen dieses P, um zu sehen, ob ihnen diese vorübergehende Transaktion gehört. Jeder mit einer nicht ausgegebenen Transaktionsausgabe (UTXO) wird einen Haufen dieser Ps mit Beträgen herumliegen haben. Um zu verbringend, sie Unterschreiben Sie eine neue Nachricht, einschließlich P. Alice muss diese Transaktion mit einmaligen privaten Schlüsseln signieren, die mit den Zielschlüsseln der nicht ausgegebenen Transaktionsausgabe(n) verknüpft sind. Jeder Zielschlüssel im Besitz von Alice ist ausgestattet mit einem einmaligen privaten Schlüssel, der (vermutlich) auch Alice gehört. Jedes Mal, wenn Alice es will Schicken Sie mir oder Bob oder Brenda oder Charlie oder Charlene den Inhalt eines Zielschlüssels verwendet ihren privaten Schlüssel, um die Transaktion zu signieren. Nach Eingang der Transaktion erhalte ich ein neues Tx öffentlichen Schlüssel, einen neuen öffentlichen Zielschlüssel, und ich werde in der Lage sein, einen neuen einmaligen privaten Schlüssel x wiederherzustellen. Ich kombiniere meinen einmaligen privaten Schlüssel x mit dem öffentlichen Ziel der neuen Transaktion Mit den Schlüsseln senden wir eine neue Transaktion
- Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst eine allgemeine Beschreibung unseres Algorithmus ohne expliziten Verweis darauf geben elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8
-
Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst ein Gen bereitstellenEine vollständige Beschreibung unseres Algorithmus ohne expliziten Verweis darauf elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8 15 Wie sieht hier eine nicht ausgegebene Transaktionsausgabe aus? Das Diagramm legt nahe, dass die Transaktionsausgabe nur aus zwei Datenpunkten besteht: Betrag und Zielschlüssel. Aber das ist nicht der Fall ausreichend, denn wenn ich versuche, diese „Ausgabe“ auszugeben, muss ich immer noch R=rG wissen. Denken Sie daran, dass r vom Absender ausgewählt wird und R a) verwendet wird, um eingehende Kryptonoten als Ihre zu erkennen besitzen und b) zur Generierung des einmaligen privaten Schlüssels verwendet werden, mit dem Sie Ihre Kryptonote „beanspruchen“. Der Teil daran, den ich nicht verstehe? Nehmen wir das theoretische „Okay, wir haben diese.“ Signaturen und Transaktionen, und wir geben sie hin und her“ in die Welt der Programmierung „Okay, welche Informationen konkret machen eine Person UTXO aus?“ Der beste Weg, diese Frage zu beantworten, besteht darin, in den Körper des völlig unkommentierten Codes einzutauchen. Gut gemacht, Bytecoin-Team. Zur Erinnerung: Verlinkbarkeit bedeutet „Hat die gleiche Person gesendet?“ und Unverknüpfbarkeit bedeutet „dasselbe getan.“ Person erhalten?". Ein System kann also verknüpfbar oder nicht verknüpfbar, nicht verknüpfbar oder nicht verknüpfbar sein. Ärgerlich, ich weiß. Wenn also Nic van Saberhagen hier sagt: „…eingehende Zahlungen [sind] mit Einmalzahlungen verbunden.“ öffentliche Schlüssel, die für einen Zuschauer nicht verknüpfbar sind“, schauen wir mal, was er meint. Stellen Sie sich zunächst eine Situation vor, in der Alice Bob zwei separate Transaktionen derselben sendet Adresse an die gleiche Adresse. Im Bitcoin-Universum hat Alice den Fehler bereits gemacht des Versands von der gleichen Adresse aus und daher hat die Transaktion unseren Wunsch nach einer Begrenzung verfehlt Verknüpfbarkeit. Da sie außerdem das Geld an dieselbe Adresse geschickt hat, hat sie unseren Wunsch verfehlt wegen Unverknüpfbarkeit. Diese Bitcoin-Transaktion war sowohl (vollständig) verknüpfbar als auch nicht nicht verknüpfbar. Nehmen wir andererseits im Kryptonoten-Universum an, dass Alice Bob eine Kryptonote schickt. unter Verwendung von Bobs öffentlicher Adresse. Sie wählt als ihren verschleierenden Satz öffentlicher Schlüssel alle bekannten öffentlichen Schlüssel Schlüssel im Großraum Washington DC. Alex generiert mit ihrem eigenen einen einmaligen öffentlichen Schlüssel Informationen und Bobs öffentliche Informationen. Sie schickt das Geld ab, und jeder Beobachter wird es tun Ich konnte nur herausfinden: „Jemand aus der Metropolregion Washington DC hat 2,3 Kryptonoten an geschickt.“ die einmalige öffentliche Adresse XYZ123.“ Wir haben hier eine probabilistische Kontrolle über die Verknüpfbarkeit, daher nennen wir dies „fast nicht verknüpfbar“. Wir sehen auch nur die einmaligen öffentlichen Schlüssel, an die Geld gesendet wird. Auch wenn wir den Empfänger vermuteten War Bob, wir haben seine privaten Schlüssel nicht und können daher nicht testen, ob eine Transaktion erfolgreich war gehört Bob, geschweige denn, dass er seinen einmaligen privaten Schlüssel generiert, um seine Kryptonote einzulösen. Also das hier ist in der Tat völlig „unverknüpfbar“. Das ist also der netteste Trick von allen. Wer möchte einem anderen MtGox wirklich vertrauen? Vielleicht sind wir es Es ist bequem, eine gewisse Menge an BTC auf Coinbase zu speichern, aber die ultimative Bitcoin-Sicherheit ist es eine physische Geldbörse. Was unbequem ist. In diesem Fall können Sie die Hälfte Ihres privaten Schlüssels vertrauensvoll weitergeben, ohne Ihren privaten Schlüssel zu gefährden eigene Fähigkeit, Geld auszugeben. Wenn Sie dies tun, erklären Sie lediglich jemandem, wie er die Unverknüpfbarkeit aufheben kann. Der andere Eigenschaften von CN, die wie eine Währung wirken, bleiben erhalten, wie z. B. der Schutz vor Doppelausgaben und was nicht.
-
Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst eine allgemeine Beschreibung unseres Algorithmus ohne expliziten Verweis darauf geben elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8
- Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst ein Gen bereitstellenEine vollständige Beschreibung unseres Algorithmus ohne expliziten Verweis darauf elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8 16 Ja, jetzt haben wir a) eine Zahlungsadresse und b) eine Zahlungs-ID. Ein Kritiker könnte fragen: „Müssen wir das wirklich tun? Wenn ein Händler schließlich 112.00678952 erhält.“ Genau CN, und das war meine Bestellung, und ich habe einen Screenshot oder eine Quittung oder was auch immer, nicht wahr? wahnsinniges Maß an Präzision ausreichend?“ Die Antwort lautet: „Vielleicht, meistens im Alltag, persönliche Transaktionen.“ Die häufigere Situation (insbesondere in der digitalen Welt) ist jedoch folgende: Ein Händler verkauft eine Reihe von Objekten mit jeweils einem festen Preis. Angenommen, Objekt A hat 0,001 CN, Objekt B hat 0,01 CN und Objekt C ist 0,1 CN. Wenn der Händler nun eine Bestellung über 1,618 CN erhält, sind es viele, viele (viele!) Möglichkeiten, eine Bestellung für einen Kunden zu arrangieren. Und so ohne irgendeine Zahlungs-ID, Identifizierung der sogenannten „einzigartigen“ Bestellung eines Kunden mit den sogenannten „einzigartigen“ Kosten für ihn Ordnung wird unmöglich. Noch lustiger: Wenn alles in meinem Online-Shop genau 1,0 kostet CN, und ich bekomme 1000 Kunden pro Tag? Und Sie möchten nachweisen, dass Sie genau 3 Objekte gekauft haben vor zwei Wochen? Ohne Zahlungsausweis? Viel Glück, Kumpel. Lange Rede, kurzer Sinn: Wenn Bob eine Zahlungsadresse veröffentlicht, veröffentlicht er möglicherweise auch eine Zahlungs-ID ebenfalls (siehe z. B. Poloniex XMR-Einzahlungen). Das ist anders als beschrieben im Text hier, wobei Alice diejenige ist, die die Zahlungs-ID generiert. Für Bob muss es auch eine Möglichkeit geben, eine Zahlungs-ID zu generieren. (a,B) Denken Sie daran, dass der Tracking-Schlüssel (a,B) veröffentlicht werden kann; Verlust der Geheimhaltung des Wertes für „ein“ Testament Ihre Fähigkeit, Geld auszugeben, nicht verletzen oder zulassen, dass andere Sie bestehlen (ich denke... das hätte es getan). noch bewiesen werden muss), wird es den Leuten lediglich ermöglichen, alle eingehenden Transaktionen zu sehen. Eine verkürzte Adresse, wie in diesem Absatz beschrieben, übernimmt einfach den „privaten“ Teil des Schlüssels und generiert es aus dem „öffentlichen“ Teil. Durch das Offenlegen des Werts für „a“ wird die Nichtverknüpfbarkeit entfernt Der Rest der Transaktionen bleibt jedoch erhalten. Der Autor meint „nicht unlinkbar“, weil sich „unlinkable“ auf den Empfänger und „linkable“ bezieht bezieht sich auf den Absender. Es ist auch klar, dass der Autor nicht erkannte, dass es zwei verschiedene Aspekte der Verknüpfbarkeit gibt. Da die Transaktion schließlich ein gerichtetes Objekt in einem Diagramm ist, stellen sich zwei Fragen: „Gehen diese beiden Transaktionen an dieselbe Person?“ und „Kommen diese beiden Transaktionen?“ von derselben Person?“ Dabei handelt es sich um eine „No-going-back“-Richtlinie, der die Unlinkability-Eigenschaft von CryptoNote unterliegt bedingt. Das heißt, Bob kann festlegen, dass die Verknüpfung seiner eingehenden Transaktionen nicht aufgehoben werden kann Nutzung dieser Richtlinie. Dies ist eine Behauptung, die sie anhand des Random Oracle Model beweisen. Wir werden darauf zurückkommen; der Zufall Oracle hat Vor- und Nachteile.
VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci = Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci = Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 Vielleicht ist das dumm, aber bei der Vereinigung von S und P_s ist Vorsicht geboten. Wenn Sie einfach das anhängen Letzten öffentlichen Schlüssel bis zum Ende, die Unverknüpfbarkeit ist unterbrochen, da jeder die laufenden Transaktionen überprüft Sie können einfach den letzten in jeder Transaktion aufgeführten öffentlichen Schlüssel überprüfen und loslegen. Das ist der öffentliche Schlüssel dem Absender zugeordnet. Nach der Vereinigung muss also ein Pseudozufallszahlengenerator vorhanden sein Wird verwendet, um die ausgewählten öffentlichen Schlüssel zu permutieren. „...bis der Besitzer eine zweite Signatur mit demselben Schlüsselpaar erstellt.“ Ich wünsche dem/den Autor(en?) würde das näher erläutern. Ich glaube, das bedeutet: „Stellen Sie sicher, dass Sie jedes Mal, wenn Sie einen Satz öffentlicher Schlüssel auswählen, diese verschleiern möchten.“ Du wählst ein völlig neues Set, bei dem kein Schlüssel gleich ist Ziemlich starke Bedingung für die Unverknüpfbarkeit. Vielleicht „wählen Sie ein neues zufälliges Set aus.“ alle möglichen Schlüssel“ mit der Annahme, dass, obwohl nichttriviale Schnittpunkte unvermeidlich sind passieren, sie werden nicht oft passieren. In jedem Fall muss ich mich eingehender mit dieser Aussage befassen. Dadurch wird die Ringsignatur generiert. Wissensfreie Beweise sind großartig: Ich fordere Sie auf, mir zu beweisen, dass Sie ein Geheimnis kennen ohne das Geheimnis preiszugeben. Angenommen, wir stehen am Eingang einer Donut-förmigen Höhle. und auf der Rückseite der Höhle (vom Eingang aus nicht zu sehen) befindet sich ein oNe-Weg-Tür, zu der du Behaupte, du hättest den Schlüssel. Wenn du in eine Richtung gehst, lässt es dich immer durch, aber wenn du in die gleiche Richtung gehst In die andere Richtung benötigen Sie einen Schlüssel. Aber du willst mir nicht einmal den Schlüssel zeigen, geschweige denn Zeig mir, dass es die Tür öffnet. Aber Sie wollen mir beweisen, dass Sie wissen, wie man das öffnet Tür. Im interaktiven Setting werfe ich eine Münze. Kopf ist links, Zahl ist rechts und Sie gehen nach unten Donut-förmige Höhle, wohin auch immer die Münze Sie weist. Hinten, außerhalb meiner Sichtweite, du Öffne die Tür, um auf die andere Seite zurückzukehren. Wir wiederholen das Münzwurfexperiment bis ich überzeugt bin, dass du den Schlüssel hast. Aber das ist eindeutig der INTERAKTIVE Zero-Knowledge-Beweis. Es gibt nicht-interaktive Versionen, in denen Sie und ich nie kommunizieren müssen; Auf diese Weise können keine Lauscher eingreifen. http://en.wikipedia.org/wiki/Zero-knowledge_proof Dies ist die Umkehrung der vorherigen Definition.
VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci = Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci = Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 Dieser gesamte Bereich ist kryptonotenunabhängig und beschreibt lediglich den Ringsignaturalgorithmus ohne Verweis auf Währungen. Ich vermute, dass ein Teil der Notation mit dem Rest des Artikels übereinstimmt. allerdings. Beispielsweise ist x der in GEN gewählte „zufällige“ geheime Schlüssel, der den öffentlichen Schlüssel P ergibt und öffentliches Schlüsselbild I. Dieser Wert von x ist der Wert, den Bob in Teil 6, Seite 8, berechnet. Das ist also so Ich fange an, einige der Verwirrungen aus der vorherigen Beschreibung aufzuklären. Das ist irgendwie cool; Es wird kein Geld von Alices öffentlicher Adresse an Bobs öffentliche Adresse überwiesen Adresse.“ Es wird von Einmaladresse zu Einmaladresse übertragen. In gewisser Weise sehen wir also hier, wie das Zeug funktioniert. Wenn Alex ein paar Kryptonoten hat, weil jemand Wenn Sie sie ihr geschickt haben, bedeutet dies, dass sie über die privaten Schlüssel verfügt, die sie benötigt, um sie an Bob zu senden. Sie nutzt ein Diffie-Hellman-Austausch, der Bobs öffentliche Informationen nutzt, um eine neue einmalige Adresse zu generieren und die Kryptonoten werden an diese Adresse übertragen. Nun wurde ein (vermutlich sicherer) DH-Austausch verwendet, um die neue Einmaladresse zu generieren an den Alex ihre CN geschickt hat, ist Bob der Einzige mit den privaten Schlüsseln, die zum Wiederholen des Befehls erforderlich sind oben. Jetzt ist Bob also Alex. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Die Summierung sollte über j und nicht über i indiziert werden. Jedes c_i ist zufälliger Müll (da w_i zufällig ist) bis auf den c_i Arschist mit dem eigentlichen Schlüssel verknüpft, der in dieser Signatur enthalten ist. Der Wert von c ist ein hash der vorherigen Informationen. Ich denke jedoch, dass dies einen Tippfehler enthält, der schlimmer ist als die Wiederverwendung des Index „i“, denn c_s scheint implizit und nicht explizit definiert werden. Wenn wir diese Gleichung tatsächlich glauben, dann stellen wir fest, dass c_s = (1/2)c - (1/2) sum_i neq s c_i. Das heißt, ein hash minus eine ganze Reihe von Zufallszahlen. Wenn diese Summation hingegen lauten soll: „c_s = (c – sum_j neq s c_j) mod l“, dann nehmen wir die hash unserer vorherigen Informationen und generieren eine Reihe von Zufallszahlen. Subtrahieren Sie alle diese Zufallszahlen von hash, und das ergibt c_s. Das scheint so zu sein was meiner Intuition nach passieren „sollte“ und entspricht dem Verifizierungsschritt auf Seite 10. Aber Intuition ist keine Mathematik. Ich werde näher darauf eingehen. Das Gleiche wie zuvor; All dies wird zufälliger Müll sein, mit Ausnahme desjenigen, der mit dem tatsächlichen verbunden ist Öffentlicher Schlüssel des Unterzeichners x. Allerdings ist dies dieses Mal eher das, was ich von der Struktur erwarten würde: r_i ist zufällig für i!=s und r_s wird nur durch das geheime x und die s-indizierten Werte von bestimmt q_i und c_i.
VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren; 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) wieder her und speichert es in seiner Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) und st wieder herEr steckt es in seine Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 19 Zu diesem Zeitpunkt bin ich furchtbar verwirrt. Alex erhält eine Nachricht M mit Signatur (I,c_1, ..., c_n, r_1, ..., r_n) und Liste der öffentlichen Tasten S. und sie führt VER aus. Dadurch werden L_i‘ und R_i‘ berechnet. Dies bestätigt, dass c_s = c - sum_i neq s c_i auf der vorherigen Seite ist. Zuerst war ich SEHR (ha) verwirrt. Jeder kann L_i‘ und R_i‘ berechnen. In der Tat, jeder r_i und c_i wurden in der Signatur veröffentlicht Sigma zusammen mit dem Wert für I. Die Menge S = P_i aller öffentlichen Schlüssel wurde ebenfalls veröffentlicht. Also jeder, der Sigma und das Set gesehen hat Schlüssel S = P_i erhalten die gleichen Werte für L_i’ und R_i’ und überprüfen daher die Signatur. Aber dann fiel mir ein, dass es in diesem Abschnitt lediglich um die Beschreibung eines Signaturalgorithmus und nicht um eine „Prüfung“ geht Wenn es unterschrieben ist, prüfen Sie, ob es an mich gesendet wurde, und wenn ja, geben Sie das Geld aus. Das ist EINFACH das charakteristischer Teil des Spiels. Ich bin daran interessiert, Anhang A zu lesen, wenn ich endlich dort ankomme. Ich würde gerne einen vollständigen Operation-by-Operation-Vergleich von Cryptonote mit Bitcoin sehen. Auch Strom/Nachhaltigkeit. Welche Teile der Algorithmen stellen hier „Eingabe“ dar? Ich glaube, dass die Transaktionseingabe ein Betrag und eine Reihe von UTXOs ist, deren Summe einen größeren Betrag ergibt als der Betrag. Das ist unklar. „Ziel des Verstecks?“ Ich habe jetzt ein paar Minuten darüber nachgedacht und es ist mir immer noch nicht gelungen Die unklarste Vorstellung davon, was es bedeuten könnte. Ein Double-Spend-Angriff kann nur durch Manipulation des vermeintlichen verwendeten Schlüssels eines Knotens ausgeführt werden Bildersatz \(I\). „Mehrdeutigkeitsgrad“ = n, aber die Gesamtzahl der in der Transaktion enthaltenen öffentlichen Schlüssel beträgt n+1. Das heißt, der Grad der Unklarheit wäre: „Wie viele ANDERE Personen möchten Sie haben?“ die Menge?" Die Antwort wird wahrscheinlich standardmäßig „so viele wie möglich“ lauten.
VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) wieder her und speichert es in seiner Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) und st wieder herEr steckt es in seine Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 20 Das ist interessant; Zuvor haben wir einem Empfänger, Bob, die Möglichkeit gegeben, alle EINGÄNGE zu tätigen Transaktionen können nicht aufgehoben werden, entweder durch deterministische Auswahl der Hälfte seiner privaten Schlüssel oder durch die Hälfte seiner privaten Schlüssel als öffentlich veröffentlichen. Dabei handelt es sich um eine Art No-Go-Back-Politik. Hier sehen wir Eine Möglichkeit eines Absenders, Alex, eine einzelne ausgehende Transaktion als verknüpfbar auszuwählen, aber tatsächlich diese verrät dem gesamten Netzwerk, dass Alex der Absender ist. Dabei handelt es sich NICHT um eine No-going-back-Politik. Dies geschieht von Transaktion zu Transaktion. Gibt es eine dritte Richtlinie? Kann ein Empfänger, Bob, eine eindeutige Zahlungs-ID für Alex generieren? ändert sich nie, vielleicht mithilfe eines Diffie-Hellman-Austauschs? Wenn jemand diese Zahlung einbezieht Der Ausweis, der irgendwo in ihrer Transaktion an Bobs Adresse gebündelt war, muss von Alex stammen. Auf diese Weise muss sich Alex nicht dem gesamten Netzwerk offenbaren, indem sie sich für die Verlinkung einer bestimmten Person entscheidet Transaktion, kann sich aber dennoch gegenüber der Person, an die sie ihr Geld sendet, identifizieren. Ist das nicht das, was Poloniex macht?
Transaktion Tx-Eingang Ausgabe0 . . . Ausgabei . . . Ausgaben Schlüsselbild Unterschriften Ringsignatur Zielschlüssel Ausgang1 Zielschlüssel Ausgaben Auslandsgeschäfte Ausgabe des Absenders Zielschlüssel Einmaliges Schlüsselpaar Einmalig privater Schlüssel I = xHp(P) P, x Abb. 7. Generierung einer Ringsignatur in einer Standardtransaktion. 5 Egalitärer Arbeitsnachweis In diesem Abschnitt schlagen wir den neuen proof-of-work-Algorithmus vor und begründen ihn. Unser oberstes Ziel besteht darin, die Lücke zwischen CPU- (Mehrheit) und GPU/FPGA/ASIC-Minern (Minderheit) zu schließen. Es ist angemessen, dass einige Benutzer einen gewissen Vorteil gegenüber anderen haben können, aber ihre Investitionen sollte mindestens linear mit der Leistung wachsen. Im Allgemeinen handelt es sich um die Herstellung von Spezialgeräten muss möglichst wenig profitabel sein. 5.1 Verwandte Werke Das ursprüngliche Protokoll Bitcoin proof-of-work verwendet die CPU-intensive Preisfunktion SHA-256. Es besteht hauptsächlich aus grundlegenden logischen Operatoren und basiert ausschließlich auf der Rechengeschwindigkeit von Prozessor und eignet sich daher hervorragend für die Multicore-/Conveyer-Implementierung. Allerdings sind moderne Computer nicht nur durch die Anzahl der Operationen pro Sekunde begrenzt, sondern auch nach Speichergröße. Während einige Prozessoren wesentlich schneller sein können als andere [8], Es ist weniger wahrscheinlich, dass die Speichergröße zwischen den Computern variiert. Speichergebundene Preisfunktionen wurden erstmals von Abadi et al. eingeführt und als definiert „Funktionen, deren Rechenzeit von der Zeit dominiert wird, die für den Zugriff auf den Speicher aufgewendet wird“ [15]. Die Hauptidee besteht darin, einen Algorithmus zu konstruieren, der einen großen Datenblock („Scratchpad“) zuweist. innerhalb des Speichers, auf den relativ langsam zugegriffen werden kann (z. B. RAM) und „Zugriff auf eine „unvorhersehbare Abfolge von Orten“ darin enthalten. Ein Block sollte groß genug sein, um das Einkochen zu ermöglichen Die Daten sind vorteilhafter, als sie bei jedem Zugriff neu zu berechnen. Der Algorithmus sollte auch Verhindern Sie interne Parallelität, daher sollten N gleichzeitige Threads N-mal mehr Speicher benötigen auf einmal. Dwork et al. [22] untersuchten und formalisierten diesen Ansatz und schlugen einen anderen vor Variante der Preisfunktion: „Mbound“. Ein weiteres Werk gehört F. Coelho [20], der 11 Transaktion Tx-Eingang Ausgabe0 . . . Ausgabei . . . Ausgaben Schlüsselbild Unterschriften Ringsignatur Zielschlüssel Ausgang1 Zielschlüssel Ausgaben Auslandsgeschäfte Ausgabe des Absenders Zielschlüssel Einmaliges Schlüsselpaar Einmalig privater Schlüssel I = xHp(P) P, x Abb. 7. Generierung einer Ringsignatur in einer Standardtransaktion. 5 Egalitärer Arbeitsnachweis In diesem Abschnitt schlagen wir den neuen proof-of-work-Algorithmus vor und begründen ihn. Unser oberstes Ziel besteht darin, die Lücke zwischen CPU- (Mehrheit) und GPU/FPGA/ASIC-Minern (Minderheit) zu schließen. Es ist angemessen, dass einige Benutzer einen gewissen Vorteil gegenüber anderen haben können, aber ihre Investitionen sollte mindestens linear mit der Leistung wachsen. Im Allgemeinen handelt es sich um die Herstellung von Spezialgeräten muss möglichst wenig profitabel sein. 5.1 Verwandte Werke Das ursprüngliche Protokoll Bitcoin proof-of-work verwendet die CPU-intensive Preisfunktion SHA-256. Es besteht hauptsächlich aus grundlegenden logischen Operatoren und basiert ausschließlich auf der Rechengeschwindigkeit von Prozessor und eignet sich daher hervorragend für die Multicore-/Conveyer-Implementierung. Allerdings sind moderne Computer nicht nur durch die Anzahl der Operationen pro Sekunde begrenzt, sondern auch nach Speichergröße. Während einige Prozessoren wesentlich schneller sein können als andere [8], Es ist weniger wahrscheinlich, dass die Speichergröße zwischen den Computern variiert. Speichergebundene Preisfunktionen wurden erstmals von Abadi et al. eingeführt und als definiert „Funktionen, deren Rechenzeit von der Zeit dominiert wird, die für den Zugriff auf den Speicher aufgewendet wird“ [15]. Die Hauptidee besteht darin, einen Algorithmus zu konstruieren, der einen großen Datenblock („Scratchpad“) zuweist. innerhalb des Speichers, auf den relativ langsam zugegriffen werden kann (z. B. RAM) und „Zugriff auf eine „unvorhersehbare Abfolge von Orten“ darin enthalten. Ein Block sollte groß genug sein, um das Einkochen zu ermöglichen Die Daten sind vorteilhafter, als sie bei jedem Zugriff neu zu berechnen. Der Algorithmus sollte auch Verhindern Sie interne Parallelität, daher sollten N gleichzeitige Threads N-mal mehr Speicher benötigen auf einmal. Dwork et al [22] untersuchten und formalisierten diesen Ansatz und schlugen einen anderen vor Variante der Preisfunktion: „Mbound“. Ein weiteres Werk gehört F. Coelho [20], der 11 21 Dies sind angeblich unsere UTXO: Beträge und Zielschlüssel. Wenn Alex derjenige ist, der diese Standardtransaktion erstellt und an Bob sendet, dann verfügt Alex auch über die privaten Schlüssel zu jedem von diesen. Mir gefällt dieses Diagramm sehr gut, weil es einige frühere Fragen beantwortet. Ein Txn-Eingang besteht aus einer Reihe von Txn-Ausgängen und einem key Bild. Anschließend wird es mit einer Ringsignatur signiert, inklusive aller der privaten Schlüssel, die Alex für alle in den Deal einbezogenen Auslandstransaktionen besitzt. Die Die Txn-Ausgabe besteht aus einem Betrag und einem Zielschlüssel. Der Empfänger der Transaktion kann, Generieren Sie nach Belieben ihren einmaligen privaten Schlüssel, wie weiter oben in diesem Artikel beschrieben, um ihn auszugeben das Geld. Es wird eine Freude sein herauszufinden, inwieweit dies mit dem tatsächlichen Code übereinstimmt ... Nein, Nic van Saberhagen beschreibt nur lose einige Eigenschaften eines Proof-of-Work-Algorithmus. ohne diesen Algorithmus tatsächlich zu beschreiben. Der CryptoNight-Algorithmus selbst ERFORDERT eine gründliche Analyse. Als ich das las, stotterte ich. Sollten die Investitionen zumindest linear mit der Macht wachsen oder sollten? Wachsen die Investitionen höchstens linear mit der Leistung? Und dann wurde mir klar; Als Bergmann oder Investor frage ich mich normalerweise: „Wie viel Strom kann ich bekommen?“ für eine Investition?“ nicht „Wie viel Investition ist für eine feste Strommenge erforderlich?“ Natürlich bezeichne ich die Investition mit I und die Macht mit P. Wenn I(P) die Investition als Funktion der Macht ist und P(I) die Leistung als Funktion der Investition ist, werden sie das Gegenteil voneinander sein (wo auch immer). Es können Umkehrungen existieren). Und wenn I(P) schneller als linear ist, ist P(I) langsamer als linear. Daher, Es wird eine reduzierte Rendite für Anleger geben. Das heißt, was der Autor hier sagt ist: „Klar, je mehr man investiert, desto mehr bekommt man.“ Macht. Aber wir sollten versuchen, daraus eine Sache mit reduzierten Renditen zu machen.“ Die CPU-Investitionen werden letztendlich sublinear begrenzt; Die Frage ist, ob die Autoren haben einen POW-Algorithmus entwickelt, der die ASICs dazu zwingt, dies ebenfalls zu tun. Sollte eine hypothetische „zukünftige Währung“ immer mit den langsamsten/begrenztesten Ressourcen abbauen? Das Papier von Abadi et al. (das einige Google- und Microsoft-Ingenieure als Autoren hat) lautet: im Wesentlichen unter Ausnutzung der Tatsache, dass die Speichergröße in den letzten Jahren viel kleiner geworden ist Die Unterschiede zwischen den Maschinen sind größer als die Prozessorgeschwindigkeit und das Verhältnis von Investition zu Leistung ist mehr als linear. In einigen Jahren muss dies möglicherweise neu bewertet werden! Alles ist ein Wettrüsten... Das Konstruieren einer hash-Funktion ist schwierig; Das Konstruieren einer hash-Funktion, die diese Einschränkungen erfüllt, scheint schwieriger zu sein. Dieses Papier scheint keine Erklärung für das Tatsächliche zu haben hashing-Algorithmus CryptoNight. Ich denke, es handelt sich um eine speicherintensive Implementierung von SHA-3 in Forenbeiträgen, aber ich habe keine Ahnung ... und das ist der Punkt. Es muss erklärt werden.
schlug die effektivste Lösung vor: „Hokkaido“. Nach unserem Kenntnisstand ist dies die letzte Arbeit, die auf der Idee der pseudozufälligen Suche in einem großen Array basiert der von C. Percival als „scrypt“ bekannte Algorithmus [32]. Im Gegensatz zu den vorherigen Funktionen konzentriert es sich auf Schlüsselableitung und nicht proof-of-work Systeme. Trotz dieser Tatsache kann scrypt unseren Zweck erfüllen: Es eignet sich gut als Preisfunktion beim partiellen hash-Konvertierungsproblem wie SHA-256 in Bitcoin. Mittlerweile wurde Scrypt bereits in Litecoin, [14] und einigen anderen Bitcoin-Forks angewendet. Allerdings ist seine Implementierung nicht wirklich speichergebunden: Das Verhältnis „Speicherzugriffszeit / insgesamt“. Zeit“ ist nicht groß genug, da jede Instanz nur 128 KB verwendet. Dies ermöglicht GPU-Miner ist ungefähr zehnmal effektiver und lässt weiterhin die Möglichkeit, relativ viel zu schaffen billige, aber hocheffiziente Bergbaugeräte. Darüber hinaus ermöglicht die Verschlüsselungskonstruktion selbst einen linearen Kompromiss zwischen Speichergröße und CPU-Geschwindigkeit aufgrund der Tatsache, dass jeder Block im Scratchpad nur vom vorherigen abgeleitet ist. Sie können beispielsweise jeden zweiten Block speichern und die anderen nur verzögert, also nur, neu berechnen wenn es notwendig wird. Es wird angenommen, dass die Pseudozufallsindizes gleichmäßig verteilt sind. Daher beträgt der erwartete Wert der Neuberechnungen der zusätzlichen Blöcke 1 \(2 \cdot N\), wobei N die Zahl ist von Iterationen. Die Gesamtrechenzeit erhöht sich weniger als um die Hälfte, weil es auch solche gibt Zeitunabhängige (zeitkonstante) Vorgänge wie das Vorbereiten des Notizblocks und das Weitermachen jede Iteration. Das Einsparen von 2/3 des Speichers kostet 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N zusätzliche Neuberechnungen; 9/10 ergibt 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Es ist leicht zu zeigen, dass die Speicherung von nur 1 s aller Blöcke erhöht die Zeit weniger als um den Faktor s−1 2 . Dies wiederum impliziert, dass eine Maschine mit einer CPU ausgestattet ist 200-mal schneller als die modernen Chips können nur 320 Bytes des Notizblocks speichern. 5.2 Der vorgeschlagene Algorithmus Wir schlagen einen neuen speichergebundenen Algorithmus für die Preisfunktion proof-of-work vor. Es verlässt sich darauf Direktzugriff auf einen langsamen Speicher und betont die Latenzabhängigkeit. Im Gegensatz zu „jedem verschlüsseln“. Der neue Block (64 Byte lang) hängt von allen vorherigen Blöcken ab. Im Ergebnis eine Hypothese „Speichersparer“ sollte seine Rechengeschwindigkeit exponentiell steigern. Unser Algorithmus benötigt aus folgenden Gründen etwa 2 MB pro Instanz: 1. Es passt in den L3-Cache (pro Kern) moderner Prozessoren, die zum Mainstream werden sollten in ein paar Jahren; 2. Ein Megabyte interner Speicher ist für eine moderne ASIC-Pipeline eine nahezu inakzeptable Größe; 3. GPUs können Hunderte von Instanzen gleichzeitig ausführen, sie sind jedoch in anderer Hinsicht eingeschränkt: Der GDDR5-Speicher ist langsamer als der L3-Cache der CPU und zeichnet sich durch seine Bandbreite aus, nicht jedoch Direktzugriffsgeschwindigkeit. 4. Eine erhebliche Erweiterung des Scratchpads würde eine Zunahme der Iterationen erfordern, was in Umdrehung impliziert eine Gesamtzeitverlängerung. „Schwere“ Anrufe in einem vertrauenswürdigen P2P-Netzwerk können dazu führen schwerwiegende Schwachstellen, da Knoten verpflichtet sind, den proof-of-work jedes neuen Blocks zu überprüfen. Wenn ein Knoten viel Zeit für jede hash-Auswertung aufwendet, kann dies leicht der Fall sein DDoSed durch eine Flut gefälschter Objekte mit willkürlichen Arbeitsdaten (nonce Werte). 12 schlug die effektivste Lösung vor: „Hokkaido“. Nach unserem Kenntnisstand ist dies die letzte Arbeit, die auf der Idee der pseudozufälligen Suche in einem großen Array basiert der von C. Percival als „scrypt“ bekannte Algorithmus [32]. Im Gegensatz zu den vorherigen Funktionen konzentriert es sich auf Schlüsselableitung und nicht proof-of-work Systeme. Trotz dieser Tatsache kann scrypt unseren Zweck erfüllen: Es eignet sich gut als Preisfunktion beim partiellen hash-Konvertierungsproblem wie SHA-256 in Bitcoin. Mittlerweile wurde Scrypt bereits in Litecoin, [14] und einigen anderen Bitcoin-Forks angewendet. Allerdings ist seine Implementierung nicht wirklich speichergebunden: Das Verhältnis „Speicherzugriffszeit / insgesamt“. Zeit“ ist nicht groß genug, da jede Instanz nur 128 KB verwendet. Dies ermöglicht GPU-Miner ist ungefähr zehnmal effektiver und lässt weiterhin die Möglichkeit, relativ viel zu schaffen billige, aber hocheffiziente Bergbaugeräte. Darüber hinaus ermöglicht die Verschlüsselungskonstruktion selbst einen linearen Kompromiss zwischen Speichergröße und CPU-Geschwindigkeit aufgrund der Tatsache, dass jeder Block im Scratchpad nur vom vorherigen abgeleitet ist. Sie können beispielsweise jeden zweiten Block speichern und die anderen nur verzögert, also nur, neu berechnen wenn es notwendig wird. Es wird angenommen, dass die Pseudozufallsindizes gleichmäßig verteilt sind. Daher beträgt der erwartete Wert der Neuberechnungen der zusätzlichen Blöcke 1 \(2 \cdot N\), woN ist die Zahl von Iterationen. Die Gesamtrechenzeit erhöht sich weniger als um die Hälfte, weil es auch solche gibt Zeitunabhängige (zeitkonstante) Vorgänge wie das Vorbereiten des Notizblocks und das Weitermachen jede Iteration. Das Einsparen von 2/3 des Speichers kostet 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N zusätzliche Neuberechnungen; 9/10 ergibt 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Es ist leicht zu zeigen, dass die Speicherung von nur 1 s aller Blöcke erhöht die Zeit weniger als um den Faktor s−1 2 . Dies wiederum impliziert, dass eine Maschine mit einer CPU ausgestattet ist 200-mal schneller als die modernen Chips können nur 320 Bytes des Notizblocks speichern. 5.2 Der vorgeschlagene Algorithmus Wir schlagen einen neuen speichergebundenen Algorithmus für die Preisfunktion proof-of-work vor. Es verlässt sich darauf Direktzugriff auf einen langsamen Speicher und betont die Latenzabhängigkeit. Im Gegensatz zu „jedem verschlüsseln“. Der neue Block (64 Byte lang) hängt von allen vorherigen Blöcken ab. Im Ergebnis eine Hypothese „Speichersparer“ sollte seine Rechengeschwindigkeit exponentiell steigern. Unser Algorithmus benötigt aus folgenden Gründen etwa 2 MB pro Instanz: 1. Es passt in den L3-Cache (pro Kern) moderner Prozessoren, die zum Mainstream werden sollten in ein paar Jahren; 2. Ein Megabyte interner Speicher ist für eine moderne ASIC-Pipeline eine nahezu inakzeptable Größe; 3. GPUs können Hunderte von Instanzen gleichzeitig ausführen, sie sind jedoch in anderer Hinsicht eingeschränkt: Der GDDR5-Speicher ist langsamer als der L3-Cache der CPU und zeichnet sich durch seine Bandbreite aus, nicht jedoch Direktzugriffsgeschwindigkeit. 4. Eine erhebliche Erweiterung des Scratchpads würde eine Zunahme der Iterationen erfordern, was in Umdrehung impliziert eine Gesamtzeitverlängerung. „Schwere“ Anrufe in einem vertrauenswürdigen P2P-Netzwerk können dazu führen schwerwiegende Schwachstellen, da Knoten verpflichtet sind, den proof-of-work jedes neuen Blocks zu überprüfen. Wenn ein Knoten viel Zeit für jede hash-Auswertung aufwendet, kann dies leicht der Fall sein DDoSed durch eine Flut gefälschter Objekte mit willkürlichen Arbeitsdaten (nonce-Werten). 12 22 Egal, es ist eine Kryptomünze? Wo ist der Algorithmus? Ich sehe nur eine Werbung. Hier wird Cryptonote, wenn sich sein PoW-Algorithmus lohnt, wirklich glänzen. Das ist es nicht wirklich SHA-256, es ist nicht wirklich verschlüsselt. Es ist neu, speichergebunden und nicht rekursiv.
6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 23 Atomare Einheiten. Ich mag es. Ist das das Äquivalent von Satoshis? Wenn ja, dann bedeutet das, dass es 185 Milliarden Kryptonoten geben wird. Ich weiß, dass dies irgendwann auf ein paar Seiten optimiert werden muss, oder liegt vielleicht ein Tippfehler vor? Wenn die Basisbelohnung „alle verbleibenden Münzen“ beträgt, reicht nur ein Block aus, um alle Münzen zu erhalten. Instamin. Andererseits, wenn dies in irgendeiner Weise proportional zum sein soll Gibt es einen zeitlichen Unterschied zwischen jetzt und einem Datum, an dem die Münzproduktion endet? Das würde Sinn ergeben. Außerdem bedeuten in meiner Welt zwei Größer-als-Zeichen wie dieses „viel größer als“. Hat der Autor möglicherweise etwas anderes bedeuten? Wenn die Anpassung an den Schwierigkeitsgrad bei jedem Block erfolgt, könnte ein Angreifer über eine sehr große Farm verfügen Maschinen schalten den Bergbau in sorgfältig ausgewählten Zeitintervallen ein und aus. Dies könnte zu einer chaotischen Explosion (oder einem Absturz auf Null) des Schwierigkeitsgrads führen, wenn die Schwierigkeitsanpassungsformeln nicht angemessen gedämpft werden. Zweifellos ist die Methode von Bitcoin für schnelle Neuberechnungen ungeeignet, aber die Idee der Trägheit in diesen Systemen müssten nachgewiesen und nicht als selbstverständlich angesehen werden. Darüber hinaus Schwingungen Im Netzwerk sind Schwierigkeiten nicht unbedingt ein Problem, es sei denn, sie führen zu scheinbaren Schwankungen Angebot an Münzen - und ein sich sehr schnell ändernder Schwierigkeitsgrad könnte zu einer „Überkorrektur“ führen. Die aufgewendete Zeit, insbesondere über einen kurzen Zeitraum wie ein paar Minuten, ist proportional zur „Gesamtzeit“. Anzahl der im Netzwerk erstellten Blöcke. Die Proportionalitätskonstante selbst wird wachsen im Laufe der Zeit, vermutlich exponentiell, wenn CN abhebt. Möglicherweise ist es eine bessere Idee, einfach die Schwierigkeit anzupassen, um die „Gesamtzahl der erstellten Blöcke“ beizubehalten Netzwerk, seit der letzte Block zur Hauptkette hinzugefügt wurde“ innerhalb eines konstanten Werts oder mit begrenzte Variation oder so ähnlich. Wenn es sich um einen adaptiven Algorithmus handelt, der rechnerisch ist Wenn festgestellt werden kann, dass die Implementierung einfach ist, scheint dies das Problem zu lösen. Aber wenn wir diese Methode anwenden würden, könnte jemand mit einer großen Mining-Farm seine Farm schließen für ein paar Stunden und schalten Sie es dann wieder ein. Für die ersten paar Blöcke wird diese Farm reichen Bank. Tatsächlich würde diese Methode einen interessanten Punkt ansprechen: Bergbau wird (im Durchschnitt) zu einem Verliererspiel ohne ROI, insbesondere da immer mehr Leute auf das Netzwerk zugreifen. Wenn der Bergbau schwierig ist Ich bezweifle irgendwie, dass die Leute so viel abbauen würden wie sie derzeit tun. Oder sie halten ihre Mining-Farmen andererseits nicht rund um die Uhr am Laufen, sondern drehen sie um 6 Stunden an, 2 Stunden aus, 6 Stunden an, 2 Stunden aus oder so ähnlich. Wechseln Sie einfach zu einer anderen Münze Warten Sie ein paar Stunden, bis die Schwierigkeit nachlässt, und steigen Sie dann wieder ein, um die paar Extras zu gewinnen Rentabilitätsblöcke, wenn sich das Netzwerk anpasst. Und wissen Sie was? Das ist tatsächlich wahrscheinlich Eines der besseren Mining-Szenarien, an die ich gedacht habe ... Dies könnte kreisförmig sein, aber wenn die Blockerstellungszeit durchschnittlich etwa eine Minute beträgt, können wir das einfach tun Verwenden Sie die Anzahl der Blöcke als Proxy für die „aufgewendete Zeit“?
6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 24 Okay, wir haben also einen blockchain, und jeder Block hat ZUSÄTZLICH zum bloßen Sein Zeitstempel bestellt. Dies wurde offensichtlich nur aus Gründen der Schwierigkeitsanpassung eingefügt, da dies bei Zeitstempeln der Fall ist wie gesagt sehr unzuverlässig. Dürfen wir widersprüchliche Zeitstempel in der Kette haben? Wenn Block A in der Kette vor Block B steht und finanziell alles stimmig ist, aber Block A scheint nach Block B erstellt worden zu sein? Weil es vielleicht jemand besaß ein großer Teil des Netzwerks? Ist das in Ordnung? Wahrscheinlich, weil die Finanzen nicht vermasselt sind. Okay, also ich hasse dieses willkürliche „nur 80 % der Blöcke sind für den Hauptblock blockchain legitim“ Ansatz. Es sollte verhindern, dass Lügner ihre Zeitstempel manipulieren? Aber jetzt fügt es hinzu Anreiz für alle, über ihre Zeitstempel zu lügen und einfach den Median zu wählen. Bitte definieren. Bedeutung: „Berücksichtigen Sie für diesen Block nur Transaktionen, die höhere Gebühren beinhalten.“ als p%, vorzugsweise mit Gebühren über 2p% oder so ähnlich? Was meinen sie mit Schwindel? Wenn die Transaktion mit der bisherigen Geschichte des übereinstimmt blockchain, und die Transaktion beinhaltet Gebühren, die die Bergleute zufriedenstellen, ist das nicht genug? Nun, nein, nicht unbedingt. Wenn es keine maximale Blockgröße gibt, gibt es nichts, was einen böswilligen Benutzer abhalten könnte vom einfachen Hochladen eines riesigen Transaktionsblocks auf einmal auf sich selbst, nur um langsamer zu werden das Netzwerk. Eine Kernregel für die maximale Blockgröße verhindert, dass Menschen große Mengen an Müll ablegen Daten auf dem blockchain auf einmal, nur um die Dinge zu verlangsamen. Aber eine solche Regel muss es auf jeden Fall tun Seien Sie anpassungsfähig – während der Weihnachtszeit können wir beispielsweise mit einem Anstieg des Verkehrsaufkommens rechnen Die Blockgröße wird sehr groß, und unmittelbar danach sinkt die Blockgröße wieder. Wir brauchen also entweder a) eine Art adaptive Obergrenze oder b) eine Obergrenze, die groß genug ist, dass 99 % davon Vernünftige Weihnachtsgipfel sprengen nicht die Obergrenze. Das zweite ist natürlich unmöglich Schätzung – wer weiß, ob sich eine Währung durchsetzen wird? Es ist besser, es anpassungsfähig zu machen und sich keine Sorgen zu machen darüber. Aber dann haben wir ein kontrolltheoretisches Problem: Wie kann man das adaptiv machen, ohne Anfälligkeit für Angriffe oder wilde und verrückte Schwankungen? Beachten Sie, dass eine adaptive Methode böswillige Benutzer nicht davon abhält, kleine Beträge anzuhäufen Im Laufe der Zeit entstehen auf dem blockchain Junk-Daten, die zu einer langfristigen Aufblähung führen. Das ist ein anderes Problem insgesamt und eines, mit dem Kryptonote-Münzen ernsthafte Probleme haben.
6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch eine Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch eine Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 25 Wenn man die Zeit neu skaliert, sodass eine Zeiteinheit aus N Blöcken besteht, könnte die durchschnittliche Blockgröße theoretisch immer noch exponentiell proportional zu 2ˆt wachsen. Andererseits eine allgemeinere Obergrenze im nächsten Block wäre M_nf(M_n) für eine Funktion f. Welche Eigenschaften von f würden die wir wählen, um ein „angemessenes Wachstum“ der Blockgröße zu gewährleisten? Der Fortschritt von Blockgrößen (nach der Neuskalierungszeit) würden wie folgt aussehen: 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( ... Und das Ziel hier ist, f so zu wählen, dass diese Folge nicht schneller wächst als beispielsweise linear, oder vielleicht sogar als Log(t). Wenn f(M_n) = a für eine Konstante a ist, ist diese Sequenz natürlich eigentlich M_n aM_n aˆ2M_n aˆ3M_n ... Und die einzige Möglichkeit, dies auf höchstens lineares Wachstum zu beschränken, besteht natürlich darin, a=1 zu wählen. Das ist natürlich undurchführbar. Es lässt überhaupt kein Wachstum zu. Wenn f(M_n) hingegen eine nicht konstante Funktion ist, dann ist die Situation viel schwieriger kompliziert und kann eine elegante Lösung ermöglichen. Ich werde eine Weile darüber nachdenken. Diese Gebühr muss hoch genug sein, um die Übergrößenstrafe aus dem nächsten Abschnitt abzurechnen. Warum wird bei einem allgemeinen Benutzer davon ausgegangen, dass er männlich ist? Hä?
Möglichkeit, den blockchain aufzublähen und eine zusätzliche Belastung der Knoten zu erzeugen. Entmutigen Um böswillige Teilnehmer davon abzuhalten, große Blöcke zu erstellen, führen wir eine Straffunktion ein: NewReward = BaseReward \(\cdot\) BlkSize MN −1 2 Diese Regel wird nur angewendet, wenn BlkSize größer als die minimale freie Blockgröße ist, die erforderlich ist in der Nähe von max(10kb, \(M_N \cdot 110\%\)) liegen. Minern ist es erlaubt, Blöcke „normaler Größe“ und gerader Größe zu erstellen Übersteigen Sie es mit Gewinn, wenn die Gesamtgebühren die Strafe übersteigen. Es ist jedoch unwahrscheinlich, dass die Gebühren steigen quadratisch ungleich dem Strafwert, sodass ein Gleichgewicht herrscht. 6.3 Transaktionsskripte CryptoNote verfügt über ein sehr minimalistisches Skript-Subsystem. Ein Absender gibt einen Ausdruck Φ = an f (x1, x2, . . , xn), wobei n die Anzahl der öffentlichen Zielschlüssel {Pi}n ist i=1. Nur fünf Binärdateien Unterstützte Operatoren: min, max, sum, mul und cmp. Wenn der Empfänger diese Zahlung ausgibt, Er erzeugt \(0 \leq k \leq n\) Signaturen und übergibt sie an die Transaktionseingabe. Der Verifizierungsprozess wertet einfach Φ mit xi = 1 aus, um zu prüfen, ob eine gültige Signatur für den öffentlichen Schlüssel Pi vorhanden ist, und xi = 0. Ein Prüfer akzeptiert den Beweis, wenn Φ > 0. Trotz seiner Einfachheit deckt dieser Ansatz jeden möglichen Fall ab: • Multi-/Threshold-Signatur. Für die „M-aus-N“-Mehrfachsignatur im Bitcoin-Stil (d. h. der Empfänger sollte mindestens \(0 \leq M \leq N\) gültige Signaturen bereitstellen) Φ = x1+x2+. . .+xN \(\geq M\) (Der Übersichtlichkeit halber verwenden wir die übliche algebraische Notation). Die gewichtete Schwellenwertsignatur (einige Schlüssel können wichtiger sein als andere) könnte ausgedrückt werden als Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Und Szenario, in dem der Hauptschlüssel Φ = entspricht max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Es ist leicht zu zeigen, dass jeder anspruchsvolle Fall möglich ist werden mit diesen Operatoren ausgedrückt, d. h. sie bilden die Basis. • Passwortschutz. Der Besitz eines geheimen Passwortes steht der Kenntnis davon gleich ein privater Schlüssel, der deterministisch aus dem Passwort abgeleitet wird: k = KDF(s). Daher ein Empfänger kann nachweisen, dass er das Passwort kennt, indem er eine weitere Signatur unter dem Schlüssel k hinterlegt. Der Absender fügt einfach den entsprechenden öffentlichen Schlüssel zu seiner eigenen Ausgabe hinzu. Beachten Sie, dass dies Die Methode ist viel sicherer als das in Bitcoin [13] verwendete „Transaktionsrätsel“, bei dem die Das Passwort wird in den Eingaben explizit übergeben. • Entartete Fälle. Φ = 1 bedeutet, dass jeder das Geld ausgeben kann; Φ = 0 markiert die Ausgabe als nicht für immer auszugeben. Für den Fall, dass das Ausgabeskript in Kombination mit öffentlichen Schlüsseln für einen Absender zu groß ist, wird er kann einen speziellen Ausgabetyp verwenden, der angibt, dass der Empfänger diese Daten in seine Eingabe einfügt während der Absender nur eine hash davon bereitstellt. Dieser Ansatz ähnelt dem „Pay-to-hash“ von Bitcoin. Feature, aber anstatt neue Skriptbefehle hinzuzufügen, behandeln wir diesen Fall an der Datenstruktur Ebene. 7 Fazit Wir haben die größten Mängel in Bitcoin untersucht und einige mögliche Lösungen vorgeschlagen. Diese vorteilhaften Funktionen und unsere kontinuierliche Weiterentwicklung machen das neue elektronische Bargeldsystem CryptoNote aus ein ernstzunehmender Konkurrent von Bitcoin, der alle seine Forks übertrifft. 14 Möglichkeit, den blockchain aufzublähen und eine zusätzliche Belastung der Knoten zu erzeugen. Entmutigen Um böswillige Teilnehmer davon abzuhalten, große Blöcke zu erstellen, führen wir eine Straffunktion ein: NewReward = BaseReward \(\cdot\) BlkSize MN −1 2 Diese Regel wird nur angewendet, wenn BlkSize größer als die minimale freie Blockgröße ist, die erforderlich ist in der Nähe von max(10kb, \(M_N \cdot 110\%\)) liegen. Minern ist es erlaubt, Blöcke „normaler Größe“ und gerader Größe zu erstellen Übersteigen Sie es mit Gewinn, wenn die Gesamtgebühren die Strafe übersteigen. Es ist jedoch unwahrscheinlich, dass die Gebühren steigen quadratisch ungleich dem Strafwert, sodass ein Gleichgewicht herrscht. 6.3 Transaktionsskripte CryptoNote verfügt über ein sehr minimalistisches Skript-Subsystem. Ein Absender gibt einen Ausdruck Φ = an f (x1, x2, . . , xn), wobei n die Anzahl der öffentlichen Zielschlüssel {Pi}n ist i=1. Nur fünf Binärdateien Unterstützte Operatoren: min, max, sum, mul und cmp. Wenn der Empfänger diese Zahlung ausgibt, Er erzeugt \(0 \leq k \leq n\) Signaturen und übergibt sie an die Transaktionseingabe. Der Verifizierungsprozess wertet einfach Φ mit xi = 1 aus, um zu prüfen, ob eine gültige Signatur für den öffentlichen Schlüssel Pi vorhanden ist, und xi = 0. Ein Prüfer akzeptiert den Beweis, wenn Φ > 0. Trotz seiner Einfachheit deckt dieser Ansatz jeden möglichen Fall ab: • Multi-/Threshold-Signatur. Für die „M-aus-N“-Mehrfachsignatur im Bitcoin-Stil (d. h. der Empfänger sollte mindestens \(0 \leq M \leq N\) gültige Signaturen bereitstellen) Φ = x1+x2+. . .+xN \(\geq M\) (Der Übersichtlichkeit halber verwenden wir die übliche algebraische Notation). Die gewichtete Schwellenwertsignatur (einige Schlüssel können wichtiger sein als andere) könnte ausgedrückt werden als Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Und Szenarioio wobei der Hauptschlüssel Φ = entspricht max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Es ist leicht zu zeigen, dass jeder anspruchsvolle Fall möglich ist werden mit diesen Operatoren ausgedrückt, d. h. sie bilden die Basis. • Passwortschutz. Der Besitz eines geheimen Passwortes steht der Kenntnis davon gleich ein privater Schlüssel, der deterministisch aus dem Passwort abgeleitet wird: k = KDF(s). Daher ein Empfänger kann nachweisen, dass er das Passwort kennt, indem er eine weitere Signatur unter dem Schlüssel k hinterlegt. Der Absender fügt einfach den entsprechenden öffentlichen Schlüssel zu seiner eigenen Ausgabe hinzu. Beachten Sie, dass dies Die Methode ist viel sicherer als das in Bitcoin [13] verwendete „Transaktionsrätsel“, bei dem die Das Passwort wird in den Eingaben explizit übergeben. • Entartete Fälle. Φ = 1 bedeutet, dass jeder das Geld ausgeben kann; Φ = 0 markiert die Ausgabe als nicht für immer auszugeben. Für den Fall, dass das Ausgabeskript in Kombination mit öffentlichen Schlüsseln für einen Absender zu groß ist, wird er kann einen speziellen Ausgabetyp verwenden, der angibt, dass der Empfänger diese Daten in seine Eingabe einfügt während der Absender nur eine hash davon bereitstellt. Dieser Ansatz ähnelt dem „Pay-to-hash“ von Bitcoin. Feature, aber anstatt neue Skriptbefehle hinzuzufügen, behandeln wir diesen Fall an der Datenstruktur Ebene. 7 Fazit Wir haben die größten Mängel in Bitcoin untersucht und einige mögliche Lösungen vorgeschlagen. Diese vorteilhaften Funktionen und unsere kontinuierliche Weiterentwicklung machen das neue elektronische Bargeldsystem CryptoNote aus ein ernstzunehmender Konkurrent von Bitcoin, der alle seine Forks übertrifft. 14 26 Dies kann unnötig sein, wenn wir einen Weg finden können, die Blockgröße im Laufe der Zeit zu begrenzen ... Auch das kann nicht richtig sein. Sie haben „NewReward“ einfach auf eine nach oben gerichtete Parabel gesetzt, wo Die Blockgröße ist die unabhängige Variable. Die neue Belohnung explodiert also bis ins Unendliche. Wenn andererseits Andererseits ist die neue Belohnung Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)), dann die neue Belohnung wäre eine nach unten gerichtete Parabel mit einer Spitze bei Blockgröße = Mn und Schnittpunkten bei Blockgröße = 0 und Blockgröße = 2Mn. Und das scheint es zu sein, was sie zu beschreiben versuchen. Dies ist jedoch nicht der Fall
تحليل

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 كما يلي:
Analyse
5
Es spielt keine allzu große Rolle, wenn eine Milliarde Menschen auf der Welt von weniger als einem Dollar pro Jahr leben müssen
Tag und haben keine Hoffnung, jemals an irgendeinem Bergbaunetzwerk teilzunehmen ... aber an einem wirtschaftlichen
Welt, die von einem P2P-Währungssystem mit einer CPU und einer Stimme angetrieben wird, wäre vermutlich mehr
fairer als ein System, das auf Teilreservebanken basiert.
Aber das Protokoll von Cryptonote erfordert immer noch 51 % ehrliche Benutzer ... siehe zum Beispiel das Cryptonote
Foren, in denen einer der Entwickler, Pliskov, sagt, dass ein traditioneller „Replace-the-Data-on-theblockchain“-51-%-Angriff immer noch funktionieren kann. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
Beachten Sie, dass Sie nicht wirklich 51 % ehrliche Benutzer benötigen. Man braucht einfach wirklich „keinen einzigen Unehrlichen“.
Fraktion mit mehr als 51 % der Macht des Netzwerks.“
Nennen wir dieses sogenannte Problem von Bitcoin „adaptive Starrheit“. Die Lösung von Cryptonote für Adaptive
Steifigkeit ist die adaptive Flexibilität der Protokollparameterwerte. Wenn Sie größere Blockgrößen benötigen,
Kein Problem, das Netzwerk hat sich die ganze Zeit über sanft angepasst.
Das heißt,
Die Art und Weise, wie Bitcoin den Schwierigkeitsgrad im Laufe der Zeit anpasst, kann in unserem gesamten Protokoll reproduziert werden
Parameter, so dass für die Aktualisierung des Protokolls kein Netzwerkkonsens eingeholt werden muss.
Oberflächlich betrachtet scheint dies eine gute Idee zu sein, aber ohne sorgfältige Voraussicht eine Selbstanpassung
Das System kann ziemlich unvorhersehbar und chaotisch werden. Wir werden später näher darauf eingehen
Chancen ergeben sich. „Gute“ Systeme liegen irgendwo zwischen adaptiv starr und adaptiv
Flexibilität und vielleicht sogar die Starrheit selbst sind anpassungsfähig.
Wenn wir wirklich „eine CPU, eine Stimme“ hätten, dann müssten wir zusammenarbeiten und Pools entwickeln, um 51 % zu erreichen.
wäre schwieriger. Wir würden erwarten, dass jede CPU auf der Welt von Telefonen aus Mining durchführt
an die integrierte CPU Ihres Tesla während des Ladevorgangs.
http://en.wikipedia.org/wiki/Pareto_principle
Ich behaupte, dass das Pareto-Gleichgewicht einigermaßen unvermeidbar ist. Entweder 20 % des Systems werden es tun
80 % der CPUs besitzen, oder 20 % des Systems besitzen 80 % der ASICs. Ich vermute dies, weil die zugrunde liegende Vermögensverteilung in der Gesellschaft bereits die Pareto-Verteilung aufweist.
und wenn neue Miner beitreten, werden sie aus dieser zugrunde liegenden Verteilung gezogen.
Ich behaupte jedoch, dass Protokolle mit einer CPU und einer Stimme einen ROI auf der Hardware erzielen werden.
Blockieren
Die Belohnung pro Knoten wird eher proportional zur Anzahl der Knoten im Netzwerk sein, weil
Die Leistungsverteilung zwischen den Knoten wird viel enger sein. Bitcoin, andererseits
Andererseits sieht er eine Blockbelohnung (pro Knoten), die proportionaler zur Rechenkapazität dieses Knotens ist
Knoten. Das heißt, nur noch die „großen Jungs“ sind im Mining-Geschäft aktiv. Andererseits,
Auch wenn das Pareto-Prinzip weiterhin im Spiel sein wird, gilt in einer Welt mit einer CPU und einer Stimme jeder
beteiligt sich an der Netzwerksicherheit und erzielt einen Teil der Mining-Einnahmen.
In einer ASIC-Welt ist es nicht sinnvoll, jede XBox und jedes Mobiltelefon an meine anzupassen.
In einer One-CPU-One-Vote-Welt ist das im Hinblick auf die Mining-Belohnung sehr sinnvoll. Als erfreuliche Konsequenz
Es ist schwieriger, 51 % der Stimmen zu erreichen, wenn es immer mehr Stimmen gibt, was zu einem schönen Ergebnis führt
Vorteile für die Netzwerksicherheit.Hardware wie zuvor beschrieben. Nehmen wir an, dass die globale hashrate deutlich abnimmt, sogar für
Einen Moment lang kann er nun seine Mining-Kraft nutzen, um die Kette zu verzweigen und doppelte Ausgaben zu tätigen. Wie wir sehen werden
Später in diesem Artikel ist es nicht unwahrscheinlich, dass das zuvor beschriebene Ereignis eintritt.
2.3
Unregelmäßige Emission
Bitcoin hat eine vorgegebene Emissionsrate: Jeder gelöste Block produziert eine feste Menge an Münzen.
Etwa alle vier Jahre wird diese Belohnung halbiert. Die ursprüngliche Absicht bestand darin, eine zu schaffen
begrenzte glatte Emission mit exponentiellem Abfall, aber tatsächlich haben wir eine stückweise lineare Emission
Funktion, deren Haltepunkte Probleme in der Bitcoin-Infrastruktur verursachen können.
Wenn der Haltepunkt erreicht wird, erhalten die Miner nur noch die Hälfte ihres vorherigen Wertes
Belohnung. Der absolute Unterschied zwischen 12,5 und 6,25 BTC (prognostiziert für das Jahr 2020) kann
scheinen erträglich. Betrachtet man jedoch den Rückgang von 50 auf 25 BTC, der im November stattfand
28 2012, erschien für eine beträchtliche Anzahl von Mitgliedern der Bergbaugemeinschaft unangemessen. Abbildung
1 zeigt einen dramatischen Rückgang der hashRate des Netzwerks Ende November, genau zu dem Zeitpunkt
es kam zu einer Halbierung. Dieses Ereignis hätte der perfekte Moment für die böswillige Person sein können
beschrieben im Funktionsabschnitt proof-of-work zur Durchführung eines Double-Spending-Angriffs [36].
Abb. 1. Bitcoin hashKursdiagramm
(Quelle: http://bitcoin.sipa.be)
2.4
Hartcodierte Konstanten
Bitcoin hat viele fest codierte Grenzwerte, von denen einige natürliche Elemente des ursprünglichen Designs sind (z. B.
Blockhäufigkeit, maximale Geldmenge, Anzahl der Bestätigungen) und andere
scheinen künstliche Zwänge zu sein. Es sind nicht so sehr die Grenzen, sondern vielmehr die Unfähigkeit, sich schnell zu verändern
3
Hardware wie zuvor beschrieben. Nehmen wir an, dass die globale hash-Rate deutlich abnimmt, sogar für
Einen Moment lang kann er nun seine Mining-Kraft nutzen, um die Kette zu verzweigen und doppelte Ausgaben zu tätigen. Wie wir sehen werden
Später in diesem Artikel ist es nicht unwahrscheinlich, dass das zuvor beschriebene Ereignis eintritt.
2.3
Unregelmäßige Emission
Bitcoin hat eine vorgegebene Emissionsrate: Jeder gelöste Block produziert eine feste Menge an Münzen.
Etwa alle vier Jahre wird diese Belohnung halbiert. Die ursprüngliche Absicht bestand darin, eine zu schaffen
begrenzte glatte Emission mit exponentiellem Abfall, aber tatsächlich haben wir eine stückweise lineare Emission
Funktion, deren Haltepunkte Probleme in der Bitcoin-Infrastruktur verursachen können.
Wenn der Haltepunkt erreicht wird, erhalten die Miner nur noch die Hälfte ihres vorherigen Wertes
Belohnung. Der absolute Unterschied zwischen 12,5 und 6,25 BTC (prognostiziert für das Jahr 2020) kann
scheinen erträglich. Betrachtet man jedoch den Rückgang von 50 auf 25 BTC, der im November stattfand
28 2012, erschien für eine beträchtliche Anzahl von Mitgliedern der Bergbaugemeinschaft unangemessen. Abbildung
1 zeigt einen dramatischen Rückgang der hashRate des Netzwerks Ende November, genau zu dem Zeitpunkt
es kam zu einer Halbierung. Dieses Ereignis hätte der perfekte Moment für die böswillige Person sein können
beschrieben im Funktionsabschnitt proof-of-work zur Durchführung eines Double-Spending-Angriffs [36].
Abb. 1. Bitcoin hashKursdiagramm
(Quelle: http://bitcoin.sipa.be)
2.4
Hartcodierte Konstanten
Bitcoin hat viele fest codierte Grenzwerte, von denen einige natürliche Elemente des ursprünglichen Designs sind (z. B.
Blockhäufigkeit, maximale Geldmenge, Anzahl der Bestätigungen) und andere
scheinen künstliche Zwänge zu sein. Es sind nicht so sehr die Grenzen, sondern vielmehr die Unfähigkeit, sich schnell zu verändern
3
6
Nennen wir es das, was es ist: einen Zombie-Angriff.
Lassen Sie uns diskutieren, wie kontinuierlich die Emission sein kann
im Zusammenhang mit „Eine CPU, eine Stimme“ in einem Zombie-Angriffsszenario.
In einer Welt mit einer CPU und einer Stimme würde jedes Mobiltelefon und jedes Auto, wann immer es inaktiv ist, schürfen. Es wäre sehr, sehr einfach, haufenweise billige Hardware zu sammeln, um eine Mining-Farm zu erstellen, denn einfach
In fast allem steckt eine CPU. Andererseits, zu diesem Zeitpunkt, die Anzahl der CPUs
Ich würde meinen, dass es ziemlich erstaunlich wäre, wenn man einen 51-Prozent-Angriff starten müsste.
Darüber hinaus
Gerade weil es einfach wäre, billige Hardware zu sammeln, können wir vernünftigerweise erwarten, dass a
Viele Leute fangen an, irgendetwas mit einer CPU zu horten. Das Wettrüsten in einer Welt mit einer CPU und einer Stimme
ist notwendigerweise egalitärer als in einer ASIC-Welt.
Daher eine Diskontinuität im Netzwerk
Sicherheit aufgrund von Emissionsraten sollte in einer Welt mit einer CPU und einer Stimme WENIGER ein Problem darstellen.
Es bleiben jedoch zwei Tatsachen bestehen: 1) Eine Diskontinuität der Emissionsrate kann zu einem Stottereffekt führen
sowohl für die Wirtschaft als auch für die Netzwerksicherheit, was schlecht ist, und 2) obwohl es sich um einen 51-prozentigen Angriff handelt
Fehler, die von jemandem durchgeführt werden, der billige Hardware sammelt, können auch bei Ein-CPU-Geräten auftreten-Abstimmung Welt,
Es scheint, als ob es schwieriger sein sollte.
Vermutlich besteht der Schutz davor darin, dass alle unehrlichen Akteure dies versuchen werden
Gleichzeitig greifen wir auf den früheren Sicherheitsgedanken von Bitcoin zurück: „Wir fordern keine Unehrlichkeit.“
Fraktion soll mehr als 51 % des Netzwerks kontrollieren.
Der Autor behauptet hier, dass ein Problem bei Bitcoin die Diskontinuität bei der Ausgabe von Münzen sei
Die Rate könnte zu einem plötzlichen Rückgang der Netzwerkbeteiligung und damit der Netzwerksicherheit führen. So,
Eine kontinuierliche, differenzierbare und gleichmäßige Münzausgaberate ist vorzuziehen.
Der Autor hat nicht unbedingt Unrecht. Jede Art von plötzlichem Rückgang der Netzwerkbeteiligung kann dazu führen
zu einem solchen Problem führen, und wenn wir eine Ursache dafür beseitigen können, sollten wir das tun. Trotzdem ist es so
Es ist möglich, dass lange Zeiträume „relativ konstanter“ Münzausgabe mit plötzlichen Änderungen unterbrochen werden
ist aus ökonomischer Sicht der ideale Weg. Ich bin kein Ökonom. Also vielleicht wir
Wir müssen uns entscheiden, ob wir die Netzwerksicherheit gegen etwas Wirtschaftliches eintauschen – was steht hier?
http://arxiv.org/abs/1402.2009wenn nötig, verursacht das die Hauptnachteile. Leider ist es schwer vorherzusagen, wann
Konstanten müssen möglicherweise geändert werden, und ihre Ersetzung kann schreckliche Folgen haben.
Ein gutes Beispiel für eine hartcodierte Grenzwertänderung, die katastrophale Folgen hat, ist der Block
Größenbeschränkung auf 250 KB1 festgelegt. Dieses Limit reichte aus, um etwa 10.000 Standardtransaktionen aufzunehmen. In
Anfang 2013 war diese Grenze fast erreicht und man einigte sich auf eine Erhöhung
Grenze. Die Änderung wurde in Wallet-Version 0.8 implementiert und endete mit einer 24-Block-Chain-Aufteilung
und ein erfolgreicher Double-Spend-Angriff [9]. Der Fehler lag zwar nicht im Protokoll Bitcoin, aber
Vielmehr hätte es in der Datenbank-Engine leicht durch einen einfachen Stresstest erkannt werden können, wenn dies der Fall gewesen wäre
keine künstlich eingeführte Blockgrößenbeschränkung.
Konstanten fungieren auch als eine Art Zentralisierungspunkt.
Trotz des Peer-to-Peer-Charakters von
Bitcoin, eine überwältigende Mehrheit der Knoten verwendet den offiziellen Referenzclient [10], der von entwickelt wurde
eine kleine Gruppe von Menschen. Diese Gruppe trifft die Entscheidung, Änderungen am Protokoll umzusetzen
und die meisten Menschen akzeptieren diese Änderungen unabhängig von ihrer „Richtigkeit“. Einige Entscheidungen verursachten
hitzige Diskussionen und sogar Boykottaufrufe [11], was darauf hindeutet, dass die Community und die
Entwickler können in einigen wichtigen Punkten anderer Meinung sein. Daher erscheint es logisch, ein Protokoll zu haben
mit vom Benutzer konfigurierbaren und selbstanpassenden Variablen als mögliche Möglichkeit, diese Probleme zu vermeiden.
2.5
Umfangreiche Skripte
Das Skriptsystem in Bitcoin ist eine umfangreiche und komplexe Funktion. Es ermöglicht einem möglicherweise, etwas zu erschaffen
ausgefeilte Transaktionen [12], aber einige seiner Funktionen sind aus Sicherheitsgründen deaktiviert und
einige wurden noch nie verwendet [13]. Das Skript (einschließlich der Teile des Senders und des Empfängers)
für die beliebteste Transaktion in Bitcoin sieht das so aus:
