په بلاکچین کې د ډیجیټل لاسلیک پراساس تصادفي اوریکل

له مفکورې څخه تر پلي کیدو پورې: موږ د اوسني بیضوي وکر ډیجیټل لاسلیک سکیم بدلوو ترڅو دا ټاکونکی وي، او د دې پر بنسټ موږ د بلاکچین دننه د تصدیق وړ سیډو - تصادفي شمیرو ترلاسه کولو لپاره دندې چمتو کوو.

په بلاکچین کې د ډیجیټل لاسلیک پراساس تصادفي اوریکل

ایډا

د 2018 په مني کې، د Waves blockchain شامل دي لومړی سمارټ قراردادونه فعال شول، پوښتنه سمدستي د ترلاسه کولو امکان په اړه راپورته شوه تصادفي شمېرېچې تاسو باور کولی شئ.

د دې پوښتنې په اړه حیرانتیا، زه په پای کې دې پایلې ته ورسیدم: هر بلاکچین یو حجره ده؛ په تړل شوي سیسټم کې د انټروپي باوري سرچینې ترلاسه کول ناممکن دي.

مګر ما بیا هم یو نظر خوښ کړ: که تصادفي اوریکل د کارونکي ډیټا به د ټاکونکي الګوریتم سره لاسلیک کړي ، نو کارونکي به تل د دې وړ وي چې د عامه کیلي په کارولو سره دا ډول لاسلیک تصدیق کړي ، او ډاډه شي چې پایله شوې ارزښت ځانګړی دی. اوریکل، پرته له دې چې دا څومره سخت وغواړي، د هیڅ شی بدلولو توان نلري؛ الګوریتم یو ناڅرګنده پایله تولیدوي. په لازمي ډول، کاروونکي پایله ثبتوي، مګر دا نه پوهیږي تر هغه چې اوریکل یې خپور کړي. دا معلومه شوه چې تاسو په اوریکل هیڅ باور نشئ کولی، مګر د هغې د کار پایله وګورئ. بیا، د بریالۍ تایید په صورت کې، دا ډول لاسلیک د pseudorandom شمیرې لپاره د انټروپي سرچینه ګڼل کیدی شي.

د ویوز بلاکچین پلیټ فارم د لاسلیک سکیم کاروي د ‏‎EDDSA‎‏ پاڼې اړوند نور معلومات په فسبوک کې اوګورئ غوراوي ایډ۳. په دې سکیم کې، لاسلیک د R او S ارزښتونو څخه جوړ دی، چیرته چې R په تصادفي ارزښت پورې اړه لري، او S د لاسلیک شوي پیغام پراساس محاسبه کیږي، شخصي کیلي او د R په څیر ورته تصادفي شمیره. د ورته لپاره هیڅ ځانګړی انحصار شتون نلري د کارونکي پیغام لپاره ډیری معتبر لاسلیکونه شتون لري.

په ښکاره ډول، په خپل خالص شکل کې، دا ډول لاسلیک د سیډو - تصادفي شمیرو د سرچینې په توګه نشي کارول کیدی، ځکه چې دا غیر ټاکونکی دی او له همدې امله، د اوریکل لخوا په اسانۍ سره مینځل کیدی شي.

مګر، لکه څنګه چې دا معلومه شوه، دا واقعیا ممکنه ده چې دا ټاکونکی جوړ کړي.

ما ته ډیر امیدونه وو د تایید وړ تصادفي فعالیت (VRF)، مګر د هارډویر مطالعې وروسته ، زه باید دا اختیار پریږدم. که څه هم VRF د لاسلیک او د هغې ثبوت ټاکونکې نسخه وړاندې کوي، په الګوریتم کې یو عجیب ځای شتون لري چې د اوریکل د مینځلو لپاره یو تور سوراخ خلاصوي. د مثال په توګه، کله چې د k ارزښت محاسبه کول (برخه 5.1) یو شخصي کیلي کارول کیږي، کوم چې کارونکي ته نامعلوم پاتې کیږي، پدې معنی چې کاروونکي نشي کولی د k حساب درستیت تایید کړي، پدې معنی چې اوریکل کولی شي د k هر ارزښت وکاروي چې ورته اړتیا لري او په ورته وخت کې د اړیکو ډیټابیس ساتي. د k او لاسلیک شوي ډیټا د دې لپاره چې تل د VRF له لید څخه سمې پایلې بیا محاسبه کولو وړ وي. که تاسو د شخصي کیلي افشا کولو پرته د VRF پراساس یو نقاش وګورئ ، تاسو هوښیار اوسئ: د کیلي څرګندولو اړتیا په ګوته کړئ ، یا یې د k له محاسبې څخه لرې کړئ ، نو خصوصي کیلي به په اوتومات ډول څرګند شي کله چې لومړی لاسلیک څرګند شي. . په عموم کې، لکه څنګه چې مخکې یادونه وشوه، د تصادفي اوریکل لپاره یو عجیب سکیم.

د لږ فکر کولو او د ځایی شنونکو د ملاتړ لیست کولو وروسته، د VECRO کاري سکیم رامینځته شو.

VECRO د تصدیق وړ Elliptic Curve Random Oracle لپاره لنډیز دی، چې په روسیه کې معنی لري په بیضوي منحني کې د تایید وړ تصادفي اوریکل.

هرڅه خورا ساده وګرځیدل؛ د عزم ترلاسه کولو لپاره ، تاسو اړتیا لرئ د لاسلیک شوي پیغام څرګندیدو دمخه د R ارزښت تنظیم کړئ. که R ژمن وي او د لاسلیک شوي پیغام برخه وي، کوم چې نور ډاډ ورکوي چې R په لاسلیک شوي پیغام کې ژمن دی، د S ارزښت په ځانګړي ډول د کارونکي پیغام لخوا ټاکل کیږي او له همدې امله د pseudorandom شمیرو لپاره د سرچینې په توګه کارول کیدی شي.

په داسې یوه سکیم کې، دا مهمه نده چې R څنګه ټاکل شوی؛ دا د اوریکل مسؤلیت پاتې دی. دا مهمه ده چې S په ځانګړي ډول د کارونکي لخوا ټاکل کیږي، مګر د هغې ارزښت نامعلوم دی تر هغه چې اوریکل یې خپور کړي. هرڅه چې موږ غوښتل!

د ثابت R په اړه خبرې کول، په یاد ولرئ بیا کارول شوی R کله چې مختلف پیغامونه لاسلیک کړئ، دا په ځانګړي ډول د EdDSA سکیم کې شخصي کیلي څرګندوي. دا د اوریکل مالک لپاره خورا مهم کیږي ترڅو د مختلف کاروونکو پیغامونو لاسلیک کولو لپاره د R بیا کارولو امکان له مینځه ویسي. دا دی، د هر ډول لاسوهنې یا ملګرتیا سره، اوریکل به تل د خپل شخصي کیلي له لاسه ورکولو خطر ولري.

په مجموع کې، اوریکل باید کاروونکو ته دوه دندې وړاندې کړي: ابتکار، کوم چې R ارزښت ټاکي، او لاسلیک، کوم چې د S ارزښت بیرته راګرځوي. پدې حالت کې، R، S د یو کارونکي پیغام معمول تایید وړ لاسلیک دی چې یو ثابت شوی. ارزښت R او خپلمنځي کارونکي ډیټا.

دا استدلال کیدی شي چې د بلاکچین لپاره دا سکیم له عادي څخه ډیر څه ندي د ژمنې پراخولو سکیم. په اصل کې، هو، دا د هغې ده. خو څو nuances شتون لري. لومړی، اوریکل تل په ټولو عملیاتو کې د ورته کیلي سره کار کوي، د بیلګې په توګه، دا په قراردادونو کې کارول اسانه دي. دوهم ، د اوریکل د شخصي کیلي له لاسه ورکولو خطر شتون لري که چیرې دا غلط چلند وکړي ، د مثال په توګه ، اوریکل تاسو ته اجازه درکوي د پایلو نمونې رامینځته کړئ ، نو دا د خصوصي کیلي موندلو لپاره یوازې دوه ازموینې ترسره کولو لپاره کافي دي او بشپړ ترلاسه کړئ. بټوې ته لاسرسی. دریم ، یو لاسلیک چې په اصلي ډول په بلاکچین کې د تایید وړ دی او د تصادفي سرچینه ده ښکلې ده.

د شپږو میاشتو لپاره د پلي کولو مفکوره زما په سر کې ډوب شوه، تر هغه چې په پای کې هڅونه په بڼه راښکاره شوه د Waves Labs څخه مرسته. د لویې مرستې سره لوی مسؤلیت راځي، نو پروژه به هلته وي!

پلي کول

نو، په دې پروژه کې VECRO پلي شو د ویوز بلاکچین کې د غوښتنې ځواب حالت کې د کارونکي او اوریکل ترمینځ د لیږد لیږد په کارولو سره. په ورته وخت کې، یو سکریپټ په اوریکل حساب کې نصب شوی چې د پورته بیان شوي منطق سره سم کار په کلکه کنټرولوي. د اوریکل لیږدونه تایید شوي او د کارونکي تعامل ټوله سلسله بحال شوې. ټولې څلور معاملې د وروستي ارزښت تصدیق کولو کې دخیل دي؛ سمارټ قرارداد دوی د یو سخت تایید تار سره یوځای کوي، ټول ارزښتونه ګام په ګام چک کوي او د هیڅ ډول لاسوهنې لپاره هیڅ ځای نه پریږدي.

یوځل بیا، دا یو طرف ته واچوئ او روښانه یې کړئ. اوریکل یوازې د وړاندیز شوي سکیم سره سم کار نه کوي. د دې کار په بشپړ ډول د بلاکچین په کچه د تاسیس شوي لخوا کنټرول کیږي په کلکه د سمارټ قرارداد سره. کیڼ لور ته ګام او معامله به په ساده ډول نه تیریږي. نو، که چیرې یو لیږد په بلاکچین کې شامل وي، کاروونکي حتی اړتیا نلري چې هیڅ شی وګوري؛ د شبکې سلګونه نوډونه دمخه د هغه لپاره هرڅه چک کړي.

اوس مهال، یو VECRO د ویوز مینیټ کې روان دی (تاسو خپل ځان چلولی شئ، دا ستونزمن نه دی، یوازې د ترتیب مثال ته یو نظر وګورئ). اوسنی کوډ په PHP کې چلیږي (په WavesKitد کوم په اړه ما تاسو ته مخکې وویل).

د اوریکل خدمت کارولو لپاره تاسو باید:

  • اصلاح R;
    • لږترلږه 0.005 موجونه اوریکل عرف init@vecr ته واستوئ؛
    • د اوریکل څخه کارونکي ته د 1 R-vecr ټوکن په لیږد کې د ضمیمې په ساحه کې R-code ترلاسه کړئ؛
  • لاسلیک ترلاسه کړئ؛
    • لږترلږه 0.005 څپې د اوریکل عرف random@vecr ته واستوئ، او همدارنګه باید په ضمیمه ساحه کې د مخکې ترلاسه شوي R-code او اضافي کارونکي ډیټا په ګوته کړئ؛
    • د اوریکل څخه کارونکي ته د 1 S-vecr ټوکن په لیږد کې د ضمیمه ساحه کې S-code ترلاسه کړئ؛
  • S-code د pseudo-random number د سرچینې په توګه وکاروئ.

د اوسني پلي کولو لنډیز:

  • اوریکل ته لیږل شوي موجونه کارونکي ته د بیرته راستنیدو لیږد لپاره د کمیسیون په توګه کارول کیږي ، تر اعظمي حد پورې 1 څپې؛
  • R-code د 'R' کرکټر د بایټ او د 32-بایټ بیس 58-کوډ شوي R ارزښت سره تړاو لري؛
  • په ضمیمه کې R-code باید لومړی وي، د کاروونکي ډاټا د R-code وروسته راځي؛
  • S-code د کرکټر 'S' د بایټ او د S د 32-بایټ بیس 58-کوډ شوی ارزښت سره تړاو لري؛
  • S د موډولو ویش پایله ده، نو تاسو نشئ کولی S د بشپړ 256-bit pseudorandom شمیرې په توګه وکاروئ (دا شمیره د 252-bit pseudorandom شمیره اعظمي شمیرل کیدی شي)؛
  • ترټولو ساده اختیار دا دی چې د S-code هش د سیډو - تصادفي شمیرې په توګه وکاروئ.

د S-code ترلاسه کولو بیلګه:

د تخنیکي نقطه نظر څخه، اوریکل په بشپړه توګه د کار لپاره چمتو دی، تاسو کولی شئ په خوندي توګه وکاروئ. د اوسط کارونکي لخوا د کارولو له نظره ، د مناسب ګرافیکي انٹرفیس نشتوالی شتون لري؛ دا به انتظار وکړي.

زه به خوښ شم چې پوښتنو ته ځواب ووایم او نظرونه ومنم، مننه.

سرچینه: www.habr.com

Add a comment