اسان Monero blockchain بابت اسان جو سلسلو جاري رکون ٿا، ۽ اڄ جو مضمون RingCT (Ring Confidential Transactions) پروٽوڪول تي ڌيان ڏيندو، جيڪو رازداري ٽرانزيڪشن ۽ نئين انگن جي دستخطن کي متعارف ڪرايو ويندو. بدقسمتي سان، انٽرنيٽ تي ٿوري معلومات آهي ته اهو ڪيئن ڪم ڪري ٿو، ۽ اسان هن خال کي ڀرڻ جي ڪوشش ڪئي.
اسان انهي بابت ڳالهائينداسين ته نيٽ ورڪ هن پروٽوڪول کي استعمال ڪندي منتقلي جي مقدار کي ڪيئن لڪائيندو آهي، ڇو انهن کي ڇڏي ڏنو کلاسک cryptonote انگن جي دستخط، ۽ ڪيئن هي ٽيڪنالاجي اڳتي وڌندي.
جيئن ته هي پروٽوڪول مونرو ۾ سڀ کان وڌيڪ پيچيده ٽيڪنالاجيز مان هڪ آهي، پڙهندڙ کي هن بلاڪچين جي ڊيزائن جي بنيادي ڄاڻ ۽ ايليپيٽڪ وکر ڪرپٽوگرافي جي گذرڻ واري ڄاڻ جي ضرورت پوندي (هن ڄاڻ کي برش ڪرڻ لاء، توهان پڙهي سگهو ٿا اسان جا پهريان باب. اڳوڻو مضمون بابت
RingCT پروٽوڪول
cryptonote ڪرنسي تي ممڪن حملن مان هڪ آهي blockchain جو تجزيو جيڪو موڪليل ٽرانزيڪشن جي رقم ۽ وقت جي ڄاڻ تي ٻڌل آهي. هي اجازت ڏئي ٿو
اها ڳالهه نوٽ ڪرڻ گهرجي ته رقم لڪائڻ جو خيال نئون نه آهي. Bitcoin ڪور ڊولپر گريگ ميڪسويل ان کي بيان ڪرڻ وارن مان پهريون هو
ٻين شين جي وچ ۾، پروٽوڪول مٽي جي پيداوار کي گڏ ڪرڻ سان مسئلن کان نجات حاصل ڪرڻ ۾ مدد ڪري ٿي - ٿوري مقدار جي پيداوار (عام طور تي ٽرانزيڪشن مان تبديلي جي صورت ۾ وصول ڪيو ويو)، جنهن جي قيمت کان وڌيڪ مسئلا پيدا ڪيا ويا آهن.
جنوري 2017 ۾، مونرو نيٽ ورڪ جو هڪ سخت ڪانٽو ورتو، اختياري استعمال جي رازداري ٽرانزيڪشن جي اجازت ڏني وئي. ۽ اڳ ۾ ئي ساڳئي سال جي سيپٽمبر ۾، نسخو 6 هارڊ فورڪ سان، اهڙي ٽرانزيڪشن صرف نيٽ ورڪ تي اجازت ڏني وئي آهي.
RingCT هڪ ئي وقت ۾ ڪيترائي ميکانيزم استعمال ڪري ٿو: گھڻ-پرت سان ڳنڍيل spontaneous گمنام گروپ دستخط (Multilayered Linkable Spontaneous Anonymous Group Signature، بعد ۾ MLSAG جو حوالو ڏنو ويو آهي)، هڪ وابستگي اسڪيم (Pedersen Commitments) ۽ حد جا ثبوت (هن اصطلاح جو روسي ۾ ڪو قائم ڪيل ترجمو نه آهي) .
RingCT پروٽوڪول ٻن قسمن جا گمنام ٽرانزيڪشن متعارف ڪرائي ٿو: سادو ۽ مڪمل. والٽ پهريون ٺاهي ٿو جڏهن هڪ ٽرانزيڪشن هڪ کان وڌيڪ ان پٽ استعمال ڪري ٿو، ٻيو - مخالف صورتحال ۾. اهي ٽرانزيڪشن جي مقدار جي تصديق ۽ MLSAG دستخط سان دستخط ٿيل ڊيٽا ۾ اختلاف آهن (اسان هيٺ ڏنل بابت وڌيڪ ڳالهائينداسين). ان کان علاوه، مڪمل قسم جي ٽرانزيڪشن ڪنهن به انگن اکرن سان ٺاهي سگھجن ٿيون، ڪو به بنيادي فرق ناهي. ڪتاب ۾
MLSAG دستخط
اچو ته ياد رکون ته ڇا دستخط ٿيل ٽرانزيڪشن ان پٽ آهن. هر ٽرانزيڪشن خرچ ڪري ٿو ۽ ڪجهه فنڊ ٺاهي ٿو. پئسن جو نسل ٽرانزيڪشن آئوٽ پُٽ ٺاهڻ سان ٿئي ٿو (هڪ سڌي قياس بل آهي)، ۽ اهو محصول جيڪو ٽرانزيڪشن خرچ ڪري ٿو (آخرڪار، حقيقي زندگي ۾ اسين بئنڪ نوٽس خرچ ڪريون ٿا) ان پٽ بڻجي وڃي ٿو (محتاط رهو، اهو پريشان ٿيڻ تمام آسان آهي. هتي).
هڪ ان پٽ ڪيترن ئي پيداوارن جو حوالو ڏئي ٿو، پر صرف هڪ خرچ ڪري ٿو، اهڙيء طرح هڪ "اسموڪس اسڪرين" ٺاهيندي ان کي ترجمي جي تاريخ جو تجزيو ڪرڻ ڏکيو بڻائي ٿو. جيڪڏهن هڪ ٽرانزيڪشن ۾ هڪ کان وڌيڪ ان پٽ آهن، ته پوء اهڙي جوڙجڪ کي ميٽرڪس جي طور تي پيش ڪري سگهجي ٿو، جتي قطارون ان پٽ آهن ۽ ڪالمن مخلوط پيداوار آهن. نيٽ ورڪ کي ثابت ڪرڻ لاءِ ته ٽرانزيڪشن بلڪل ان جي پيداوار خرچ ڪري ٿي (انهن جي ڳجهي چاٻين کي ڄاڻي ٿو)، ان پٽن کي انگن جي دستخط سان دستخط ڪيو ويو آهي. اهڙو دستخط ضمانت ڏئي ٿو ته دستخط ڪندڙ ڪنهن به ڪالمن جي سڀني عنصرن لاءِ ڳجهي چيڪن کي ڄاڻي ٿو.
رازداري ٽرانزيڪشن هاڻي کلاسک استعمال نه ڪندا آهن
انهن کي ملٽي ليئر سڏيو ويندو آهي ڇاڪاڻ ته اهي هڪ ئي وقت ۾ ڪيترائي انپٽ سائن ڪندا آهن، جن مان هر هڪ ڪيترن ئي ٻين سان ملايو ويندو آهي، يعني هڪ ميٽرڪس دستخط ٿيل آهي، ۽ هڪ قطار نه. جيئن ته اسان بعد ۾ ڏسندا سين، هي مدد ڪري ٿو دستخط جي سائيز تي بچائڻ ۾.
اچو ته ڏسون ته هڪ انگوزي دستخط ڪيئن ٺهيل آهي، هڪ ٽرانزيڪشن جو مثال استعمال ڪندي جيڪو 2 حقيقي پيداوار خرچ ڪري ٿو ۽ استعمال ڪري ٿو m - 1 بي ترتيب وارن کي بلاڪچين مان ملائڻ لاءِ. اچو ته ان پڌرنامي جي عوامي ڪنجين کي بيان ڪريون جيڪي اسان خرچ ڪريون ٿا
، ۽ انهن لاءِ اهم تصويرون ان مطابق: ان ڪري، اسان کي ماپ جو هڪ ميٽرڪس حاصل ڪيو 2 x م. پهرين، اسان کي ڳڻڻ جي ضرورت آهي نام نهاد چيلنجز هر هڪ جوڙي جي پيداوار لاءِ:
اسان حسابن سان شروع ڪريون ٿا ٻاھرين، جيڪي اسين خرچ ڪندا آھيون انھن جي عوامي چابين سان:۽ بي ترتيب نمبرنتيجي طور، اسان هيٺ ڏنل قدر حاصل ڪندا آهيون:
، جنهن کي اسان چئلينج جي حساب سان استعمال ڪندا آهيون
ٻاھرين جو ايندڙ جوڙو (ان کي سمجھڻ آسان بڻائڻ لاءِ ته اسان ڇا بدلائي رھيا آھيون ڪٿي، اسان انھن قدرن کي مختلف رنگن ۾ نمايان ڪيو آھي). سڀ ھيٺ ڏنل قدر ھڪڙي دائري ۾ ڳڻيا ويا آھن پھرين مثال ۾ ڏنل فارمولن کي استعمال ڪندي. حساب ڪرڻ لاء آخري شيء حقيقي پيداوار جي هڪ جوڙي لاء چئلينج آهي.
جيئن اسان ڏسي سگهون ٿا، سڀ ڪالمن سواءِ هڪ کان سواءِ جن ۾ حقيقي پيداوار شامل آهن بي ترتيب ٺاهيل نمبر استعمال ڪن ٿا.. لاء π- ڪالم اسان کي به انهن جي ضرورت پوندي. اچو ته تبديل ڪريونs ۾:
دستخط پاڻ انهن سڀني قدرن جو هڪ ٽڪرو آهي:
هي ڊيٽا وري هڪ ٽرانزيڪشن ۾ لکيل آهي.
جيئن اسان ڏسي سگهون ٿا، MLSAG صرف هڪ چئلينج تي مشتمل آهي c0، جيڪو توهان کي دستخط جي سائيز تي محفوظ ڪرڻ جي اجازت ڏئي ٿو (جيڪو اڳ ۾ ئي تمام گهڻو جاء جي ضرورت آهي). اڳيون، ڪنهن به انسپيڪٽر، ڊيٽا استعمال ڪندي، قدرن کي بحال ڪري ٿو c1، …، cm ۽ چيڪ ڪري ٿو ته. اهڙيء طرح، اسان جي انگوزي بند ٿي وئي آهي ۽ دستخط جي تصديق ڪئي وئي آهي.
مڪمل قسم جي RingCT ٽرانزيڪشن لاءِ، هڪ وڌيڪ لڪير مليل آئوٽ پُٽ سان ميٽرڪس ۾ شامل ڪئي وئي آهي، پر اسان هيٺ ان بابت ڳالهائينداسين.
Pedersen عزم
Monero واعدو منتقلي جي مقدار کي لڪائڻ ۽ سڀ کان وڌيڪ عام اختيار استعمال ڪرڻ لاء استعمال ڪيو ويندو آهي - Pedersen عزم. رستي ۾، هڪ دلچسپ حقيقت - پهريون ڀيرو ڊولپرز تجويز ڪيل رقم کي لڪائڻ جي عام ميلاپ ذريعي، اهو آهي، غير يقيني صورتحال کي متعارف ڪرائڻ لاءِ صوابديدي مقدار لاءِ آئوٽ پُٽ شامل ڪرڻ، پر پوءِ انهن واعدن ڏانهن رخ ڪيو (اها حقيقت ناهي ته اهي محفوظ ڪيا ويا. ٽرانزيڪشن سائيز، جيئن اسان هيٺ ڏسنداسين).
عام طور تي، عزم هن طرح نظر اچي ٿو:
ڪٿي C - پاڻ ۾ وابستگي جي معني، a - لڪيل رقم، H بيضوي وکر تي هڪ مقرر نقطو آهي (اضافي جنريٽر)، ۽ x - ڪجهه قسم جو صوابديدي ماسڪ، هڪ لڪائڻ وارو عنصر بي ترتيب سان ٺاهيل آهي. هتي ماسڪ جي ضرورت آهي ته جيئن ٽين ڌر صرف عزم جي قيمت جو اندازو نه لڳائي سگهي.
جڏهن هڪ نئين پيداوار پيدا ٿئي ٿي، والٽ ان لاءِ وابستگي جو حساب ڪري ٿو، ۽ جڏهن خرچ ڪيو وڃي ٿو، اهو يا ته وٺندو آهي قيمت جي حساب سان نسل جي دوران يا ان کي ٻيهر ڳڻپ ڪري ٿو، ٽرانزيڪشن جي قسم تي منحصر ڪري ٿو.
RingCT سادو
سادي RingCT ٽرانزيڪشن جي صورت ۾، انهي ڳالهه کي يقيني بڻائڻ لاءِ ته ٽرانزيڪشن ان پٽن جي مقدار جي برابر مقدار ۾ پيداوار پيدا ڪئي (پيسا پتلي هوا مان پيدا نه ٿيا)، اهو ضروري آهي ته پهرين ۽ سيڪنڊ جي واعدن جو مجموعو هڪجهڙا هجن، يعني:
وابستگي ڪميشن ان کي ٿورو مختلف سمجهن ٿا - بغير ماسڪ جي:
ڪٿي a - ڪميشن جي رقم، اهو عوامي طور تي دستياب آهي.
اهو طريقو اسان کي انحصار ڪندڙ پارٽي کي ثابت ڪرڻ جي اجازت ڏئي ٿو ته اسان انهن کي ظاهر ڪرڻ کان سواءِ ساڳيون رقمون استعمال ڪري رهيا آهيون.
شين کي صاف ڪرڻ لاء، اچو ته هڪ مثال ڏسو. اچو ته هڪ ٽرانزيڪشن 10 ۽ 5 XMR جا ٻه آئوٽ پُٽ خرچ ڪري ٿو (مطلب اهي ان پٽ ٿي وڃن ٿا) ۽ 12 XMR جي قيمت ٽي آئوٽ ٺاهي ٿو: 3، 4 ۽ 5 XMR. ساڳئي وقت، هو 3 XMR جو هڪ ڪميشن ادا ڪري ٿو. اهڙيء طرح، خرچ ڪيل رقم جي رقم گڏوگڏ پيدا ڪيل رقم ۽ ڪميشن 15 XMR جي برابر آهي. اچو ته واعدن کي ڳڻڻ جي ڪوشش ڪريون ۽ انهن جي مقدار ۾ فرق کي ڏسو (رياضي ياد رکو):
هتي اسان ڏسون ٿا ته مساوات کي گڏ ڪرڻ لاء، اسان کي ان پٽ ۽ آئوٽ ماسڪ جي رقم جي ضرورت آهي ساڳيا. هن کي ڪرڻ لاء، والٽ بي ترتيب ٺاهي ٿو x1، y1، y2 ۽ y3، ۽ باقي x2 هن طرح حساب ڪري ٿو:
انهن ماسڪ کي استعمال ڪندي، اسان ڪنهن به تصديق ڪندڙ کي ثابت ڪري سگهون ٿا ته اسان رقم کي ظاهر ڪرڻ کان سواء، اسان جي خرچ کان وڌيڪ فنڊ پيدا نه ڪندا آهيون. اصل، صحيح؟
RingCT مڪمل
مڪمل RingCT ٽرانزيڪشن ۾، منتقلي جي مقدار کي جانچڻ ٿورڙو وڌيڪ پيچيده آهي. انهن ٽرانزيڪشن ۾، والٽ ان پٽن لاءِ واعدن جي ٻيهر ڳڻپ نه ڪندو آهي، پر انهن کي استعمال ڪندو آهي جڏهن اهي ٺاهيا ويا هئا. انهي صورت ۾، اسان کي اهو فرض ڪرڻ گهرجي ته اسان هاڻي صفر جي برابر رقم ۾ فرق حاصل نه ڪنداسين، پر ان جي بدران:
اهو آهي z - ان پٽ ۽ آئوٽ پٽ ماسڪ جي وچ ۾ فرق. جيڪڏهن اسان غور ڪيو zG هڪ عوامي ڪنجي جي طور تي (جيڪو اهو حقيقت ۾ آهي)، پوء z نجي چاٻي آهي. ان ڪري، اسان ڄاڻون ٿا عوامي ۽ لاڳاپيل خانگي چابيون. ھن ڊيٽا سان ھٿ ۾، اسان ان کي استعمال ڪري سگھون ٿا MLSAG انگن اکرن جي دستخط سان گڏ گڏ ڪيل ٻاھرين جي عوامي ڪنجين سان:
اهڙيء طرح، هڪ صحيح انگوزي دستخط يقيني بڻائيندو ته اسان سڀني ڪالمن مان هڪ جي سڀني خانگي ڪنجين کي ڄاڻون ٿا، ۽ اسان صرف آخري قطار ۾ نجي چيڪ کي ڄاڻون ٿا جيڪڏهن ٽرانزيڪشن ان جي خرچ کان وڌيڪ فنڊ پيدا نه ڪري. رستي جي ذريعي، هتي سوال جو جواب آهي "ڇو نه آهي فرق جي مقدار ۾ فرق صفر تائين پهچندي آهي" - جيڪڏهن zG = 0، پوءِ اسان ڪالمن کي حقيقي آئوٽ سان وڌائينداسين.
پر رقم وصول ڪندڙ کي ڪيئن خبر پوي ته کيس ڪيتري رقم موڪلي وئي هئي؟ هتي سڀ ڪجھ سادو آهي - ٽرانزيڪشن جو موڪليندڙ ۽ وصول ڪندڙ مٽائي چابيون Diffie-Hellman پروٽوڪول استعمال ڪندي، ٽرانزيڪشن ڪي ۽ وصول ڪندڙ جي ڏيک چاٻي کي استعمال ڪندي ۽ حصيداري راز جي حساب سان. موڪليندڙ ڊيٽا لکندو آھي ٻاھرين مقدارن جي باري ۾، ھن شيئر ڪيل ڪيئي سان انڪرپٽ ٿيل، ٽرانزيڪشن جي خاص شعبن ۾.
رينج جا ثبوت
ڇا ٿيندو جيڪڏهن توهان واعدن ۾ رقم جي طور تي منفي نمبر استعمال ڪندا آهيو؟ اهو ٿي سگهي ٿو اضافي سکن جي نسل کي! اهو نتيجو ناقابل قبول آهي، تنهنڪري اسان کي ضمانت ڏيڻ جي ضرورت آهي ته اسان جيڪي رقم استعمال ڪندا آهيون اهي منفي نه آهن (انهن مقدار کي ظاهر ڪرڻ کان سواء، يقينا، ٻي صورت ۾ تمام گهڻو ڪم آهي ۽ سڀ بيڪار آهي). ٻين لفظن ۾، اسان کي ثابت ڪرڻ گهرجي ته رقم وقف ۾ آهي [0، 2n - 1].
هن کي ڪرڻ لاء، هر پيداوار جو مجموعو بائنري انگن ۾ ورهايو ويو آهي ۽ عزم هر عدد لاء الڳ الڳ حساب ڪيو ويندو آهي. اهو بهتر آهي ته ڏسو ته اهو ڪيئن ٿئي ٿو مثال سان.
اچو ته فرض ڪريون ته اسان جون رقمون ننڍيون آهن ۽ 4 بِٽ ۾ فٽ ٿين ٿيون (عملي طور تي هي 64 بِٽ آهي)، ۽ اسان 5 XMR جي قيمت جي پيداوار ٺاهيون ٿا. اسان حساب ڪريون ٿا وابستگيون هر درجي لاءِ ۽ مجموعي وابستگي پوري رقم لاءِ:
اڳيون، هر عزم هڪ سروگيٽ سان ملايو ويندو آهي (Ci-2iH) ۽ Borromeo رنگ جي دستخط (ٻي انگن جي دستخط) سان جوڑوں ۾ دستخط ٿيل آهي، گريگ ميڪسويل پاران 2015 ۾ تجويز ڪيل (توهان ان بابت وڌيڪ پڙهي سگهو ٿا
گڏ ڪيو ويو، هن کي رينج ثبوت سڏيو ويندو آهي ۽ توهان کي يقيني بڻائڻ جي اجازت ڏئي ٿو ته واعدو حد تائين مقدار ۾ استعمال ڪن ٿا [0، 2n - 1].
ايندڙ ڇا آهي؟
موجوده عمل ۾، رينج جا ثبوت تمام گھڻي جاء وٺن ٿا - 6176 بائيٽ في آئوٽ. هي وڏي ٽرانزيڪشن ڏانهن وڌي ٿو ۽ تنهن ڪري وڌيڪ فيس. Monero ٽرانزيڪشن جي سائيز کي گھٽائڻ لاءِ، ڊولپر متعارف ڪري رھيا آھن بلٽ پروفز بدران بورومو جي دستخطن - ھڪ رينج پروف ميکانيزم بغير بٽ وائز واعدن جي.
پنھنجا سوال پڇو، cryptocurrency جي فيلڊ ۾ ٽيڪنالاجي بابت نوان مضمونن لاءِ عنوان ڏيو، ۽ پڻ رڪنيت حاصل ڪريو اسان جي گروپ ۾
جو ذريعو: www.habr.com