اثبات با دانش صفر چیست؟
والبی بلاگ » آرشیو پست ها » مقالات » اثبات دانش صفر به چه معناست؟
آموزش بلاک چین مقالات

اثبات دانش صفر به چه معناست؟

اثبات های با دانش صفر در حقیقت ترکیب هایی به صورت رمزنگاری هستند.  ارزش این رمزنگاری ها در ماهیت متناقض آنهاست. آنها باید یک گزاره را بدون افشای آن به اثبات برسانند. به نوعی میتوان گفت، تأییدکننده به کمک اثبات با دانش صفر گویی از سوی خدا وحی به درستی یک گزاره می گیرد.

همچنین به دلیل ساختار سازمانی بلاکچین ها، به کمک این پروتکل ها می توان با کاربران کلاهبردار مقابله کرد و آنان را از حریم شخصی بیرون راند.

درک چندین مفهوم اساسی پیش از مسئله اثبات با دانش صفر مهم می باشد. این مفاهیم کاملاً مرتباط با فناوری بلاکچین هستند. در علوم کامپیوتر، مسائل رده P (P class) به مسائلی اطلاق می شود که می تواند به وسیله یک برنامه نسبتاً سریع از طریق یک کامپیوتر حل شود. این کامپیوتر می تواند یک ماشین تورینگ (Turing machine) یا مدلی دیگر باشد. این راه حل باید در ظرفیت چنین کامپیوترهایی وجود داشته باشد و قادر به حلّ مسئله در “زمانی سریع” باشند.

منظور از ویژگی “زمان سریع” در اینجا “ویژگی های قدرتی” نیست. بلکه در اینجا به انواع مسائل خطی، درجه دو و سه اشاره دارد که در آنها تعداد مراحل مورد نیاز برحسب اندازه مسئله توجیه می گردد. از جمله این مسائل می توان به هزارتوها، یا اعمال تکثیر اشاره کرد که می توانند تبدیل به مسائلی محاسباتی شوند.

 

محاسبات و اطلاعات در دنیای بلاکچین ها

در بلاکچین ها تأیید تراکنش ها مرتباً در یک دفتر توزیعی میان نودهای بسیار زیادی تکرار می گردد. در چنین ساختاری خروجی های مشابهی باید مرتباً کپی و تکرار شوند. این اتفاق همچون دستگاه های کپی می باشد. بنابراین باید تعداد مراحل محاسباتی برای انجام آن به حداقل برسد.

به همین دلیل است که اثبات با دانش صفر در چنین محیطی باید “کوتاه و مختصر” باشد و نیاز به بازتولید مراحل اجرایی نداشته باشد. بدین ترتیب، تأییدیه اجرایی زودتر حاصل می گردد.

از سوی دیگر، دسته پیچیدگی NP (برای زمانی غیر معین: non-deterministic polynomial time) مسائل را به گونه دیگری تعریف می کند. “درستی” پاسخ ها به این مسائل می تواند از طریق محاسبات واقعی در زمانی معقول تأیید گردد.

در نتیجه، توان فکری مورد نیاز برای حلّ یک مسئله می تواند به یک مسئله ساده تر ارجاع داده شود. بدین ترتیب، فرآیند تفکر می تواند به صورت مکانیکی عمل کند که یک درخت تصمیم گیری باینری را ایجاد می کند.

 

ساختار اثبات “zk-SNARKs ” در بلاکچین ها

اطلاعات ورودی به بلاکچین ها باید همیشه خروجی مشابهی را با انحراف نزدیک به صفر ایجاد کند. از آنجا که این بلاکچین ها نیاز به حفظ مداوم یکپارچگی اجماع عمومی دارند، مقیاس پذیری آنان در صورت انجامِ “تأیید/قرائت” به جای “اجرا/نگارش”  بهتر خواهد بود.

ساختار اثبات “zk-SNARKs ” در این حالت روشی را خواهد یافت که در آن بتوان از بلاکچین به عنوان تأییدکننده درستی محاسبات برون زنجیره ای استفاده کرد. در این حالت و در لگاریتم مراحل به کار رفته، زمان تأیید درون زنجیره ای سریعتر از زمان اجرا خواهد بود. این مقدار در بلاکچین اتریوم به صورت هزینه گس معین می شود.

کاربردهای زیادی در این شرایط به وجود خواهد آمد. می توان از ساختار بلاکچین به عنوان واسطه ای برای تراکنش های سازمانی استفاده کرد. یا حتی میتوان ترازنامه ها و تراکنش ها را از چشمان متخاصما کلاهبرداران پنهان نگه داشت. بدین ترتیب، از حضور “نهنگ های” کدنویسی شده در بازار ارزهای دیجیتال جلوگیری به عمل می آید.

یکی از کاربردهای اصلی این ساختار در نحوه گنجاندن ویژگی “اعتماد” در سناریوهای بازی های مجازی است. بدین ترتیب، مشارکت انسان ها در این زمینه ها بیشتر از پیش میسر می گردد.

 

اثبات های با دانش صفر

اساساً، اثبات های با دانش صفر ساختارهایی رمزنگاری هستند. این ساختارها تعیین می کنند که تا چه حد می توان از منطق مرسوم برای حلّ مسائل دشوار استفاده کرد. در این ساختار اثبات نود تأییدکننده و نود کاربر در سلسله مراحلی با یکدیگر به تعامل می پردازند. در این حالت نود کاربر (صغری) قادر خواهد بود تا اعتبار یک گزاره را بدون افشای آن به نود اعتبارسنج (برای مثال اصغر) ثابت کند. در این مثال، هر دو نود در محدوده فعالیت یک پروتکل قرار دارند.

ایده اصلی این ساختار به خوبی توسط زبان ساده رمزنگاری با مثال معروف “غار علی بابا” نشان داده می شود. یک غار حلقه وار را تجسم کنید. غاری که یک ورودی و یک درب جادویی در سمت دیگر ورودی دارد که طرفین خود را مسدود می کند.

صغری می خواهد بدون افشای عبارت مورد نظر، دانش و آگاهی خود را نسبت به آن عبارت به اصغر ثابت کند. پس اصغر بیرون غار منتظر می ماند. سپس وارد می شود و فریاد میزند که صغری باید از کدام جهت به سوی او آید. این فرآیند آنقدر تکرار می شود تا در نهایت احتمال تصادفی بودنِ رویارویی های صغری با اصغر از سمت مورد نظر به صفر برسد. در تصویر زیر، این مثال به خوبی به تصویر کشیده شده است.

مفهوم گواه اثبات با دانش صفر
مثال غار علی بابا در تفهیم اثبات با دانش صفر

مفهوم سیستم های “اثبات با دانش صفر تعاملی” ابتدا توسط شفی گلدواسر (Shafi Goldwasser)  و سیلویو میکالی (Silvio Micali) در اواخر 1980 معرفی شد. فرضیه اصلی مبنی بر محتوای آگاهی بخشِ بیشتر این ساختار اثبات نسبت به تأییدیه های “درست/غلط” باعث شد تا از آن زمان شاهد استفاده بیشتر آن در رمزنگاری ها باشیم.

 

خصوصیات ساختار اثبات با دانش صفر

ساختار اثبات با دانش صفر باید دارای خصوصیات زیر باشد:

  • کامل بودن (Completeness): اگر گزاره ای درست باشد و هر دو کاربر از قوانین پروتکل پیروی کنند، آنگاه تأیید کننده به سادگی قانع می شود.
  • صحّت (Soundness): اگر گزاره نادرست باشد، تأیید کننده تقریباً به هیچ وجه قانع نخواهد شد. از لحاظ آمار و احتمالات، ساختارهای اثبات تا زمانی به تکرار ادامه خواهند داد تا دیگر احتمال تغییر نتیجه به صفر برسد.
  • دانش صفر (Zero-knowledge): در هر صورت، تأیید کننده اطلاعاتی فراتر از درست یا غلط بودن گزاره به دست نمی آورد.

 

در ادامه، میکالی و منوئل بلوم (Manuel Blum) به دنبال راهی برای ذخیره اطلاعات مهم بدون مراحل مختلف تعاملی به جستجو پرداختند. این مراحل تعاملی به شدت گران هستند. به جای این مراحل، آنها به یک رشته اطلاعات مرجع با راهنمای جمعی بسنده کردند.

در 20 سال گذشته، تحقیقات بر روی سیستم های اثبات با دانش صفر در حال افزایش بوده است. تمرکز در این سالها بر بهینه سازیِ کارآیی آنان برای کارکردهای شاخص و بهبود سناریوهای مختلف بوده است. بدین ترتیب، طول رشته اطلاعات مرجع و اندازه این ساختار اثبات تا حدی دچار کاهش شده و سبک تر شده است.

اثبات “zk-SNARKS” (مباحثه دانش غیر تعاملی با دانش صفر)

ساختار “zk-SNARKS” شامل سه الگوریتم اصلی می باشد:

  • تولید کننده کلید: تنظیم پارامترها به منظور تولید یک جفت کلید. برای مثال، یک مجموعه افراد معتمد یک جفت کلید خصوصی/ عمومی را تولید می کنند. سپس قسمت خصوصی آن را از بین می برند. آنگاه از قسمت عمومی آن، جفت کلید دیگری تولید می گردد. بدین ترتیب، یک کلید تأیید برای آن برنامه به وجود می آید.
  • اثبات کننده: اثبات کننده از کلید اثبات ارائه شده، ورودی عمومی ارائه شده، و یک شاهد خصوصی استفاده می کند. اینگونه او قادر خواهد بود تا از محتوای مدّ نظر خود حمایت کند و یک اثبات را به وجود آورد.
  • اعتبارسنج: سنجش اعتبار به بررسی کلید تأیید، ورودی عمومی، و اثبات ارائه شده می پردازد. برحسب درست یا نادرست بودنِ اثبات، سنجش درست یا غلط بودن انجام می گیرد.

 

برای تصور بهتر این موضوع، به توصیف زیر نیز توجه کنید. دو رشته اطلاعات تولید می شوند که انتظار می رود تفاوت چندانی با یکدیگر نداشته باشند. بدین ترتیب، اعتبار آنها بالاتر می رود. آنگاه بررسی های تصادفی مختلفی مرتباً در موقعیت هایی دلخواه اجرا می شوند تا توافق آن دو رشته را تضمین سازند.

 

اجرا در زی کش (ZCash)

از آنجا که هویت تراکنش های بیت کوین می توانند از طریق ردیابی و آنالیز الگوهای جریان نقدینگی شناسایی گردند، زی کش یک الگوی ناشناس غیر متمرکز برای پرداخت را بر روی شبکه کدهای بیت کوین ساخته است. این کار از طریق اجرای مکانیزم های کلی اثبات انجام می پذیرد. به طور خاص می توان از پروتکل پینوکیو (Pinocchio protocol) نام برد. این پروتکل در اصل به عنوان روشی مؤثر برای تأیید اعتبار محاسبات توسعه یافت.

این پروتکل دو ساختار را برای تراکنش های بلاکچینی تعیین می کند: شفاف و محافظت شده. تراکنش های دسته اول شبیه به تراکنش های معمول در بیت کوین هستند. اما کاربران  دارای امتیازی اختیاری هستند. در صورت استفاده آنان از این ویژگی حریم خصوصی، فرستنده و گیرنده و مقدار تراکنش پنهان می گردد و تراکنش وارد دسته “محافظت شده” میشود. ویژگی اختیاری “افشای انتخابی” (selective disclosure) اعتباری قانونی را به حسابرسان اعطا خواهد کرد. البته این افشا به صورت عمومی نخواهد بود.

مرحله اعتماد سازی در زی کش شامل یک مرحله مرکب است. پس از آن یک پروتکل محاسباتی چندطرفه به کار گرفته میشود که در آن مجموعه ای از اعضا در نقاط مختلف مختصاتی یک کلید عمومی را ترکیب کرده و قسمت های خصوصی آن را از بین می برند. در این پروتکل تنها کافی است که یک عضو با موفقیت کلید خصوصی خود را از بین ببرد. در آنصورت بازیابی آن کلید خصوصی (و کلید عمومی مرتبط با آن) ناممکن خواهد شد.

یک راه حل جایگزین برای تسهیل این فرآیند اعتماد سازی که در برابر کامپیوترهای کوانتومی نیز ایمن است، استفاده از ساختارهای “zk-STARK” می باشد. ساختار “zk-STARK” مخفف “مباحثه شفاف و مقیاس پذیر برای کسب دانش” است، و توسط پروفسور الی بن ساسون (Prof. Eli Ben Sasson) مورد تحقیق قرار گرفته است.

 

ساختار اثبات “ZoKrates”؛ اجرای ابزار اثبات مفهوم در اتریوم

” ZoKrates” یک جعبه ابزار آزمایشی برای ایجاد و تأیید الگوریتم های دانش صفر در بستر قراردادهای هوشمند اتریوم می باشد. این ابزار از زبانی بسیار پیشرفته برای نگارش برنامه ها و تأیید اجرای آنها در زنجیره استفاده می کند. از این زبان برای فاز تنظیم، بررسی محاسبات و تولید الگوریتم اثبات استفاده می شود.

این زبان ترکیبی که همچون زبان کدنویسی پایتون (Python) می باشد از انواع ساده uint (اعداد مثبت)، گزاره های جبری و امری، اعمال چرخشی “برای” انجام وظیفه های مختلف، گزاره های شرطی با “اگر”، و تعریف وظایف ایجاد شده است. “کامپایلر” (compiler: برنامه تبدیل کننده دستورات به کد) شرایط و دستورات را در سیستمی محاسباتی (شبیه به بازی “سودوکو”) جای می دهد. بدین ترتیب، ” zk-SNARK” به وجود می آید. آنگاه، کلید تأیید می تواند به یک قرارداد هوشمند ارسال گردد. سپس از آن قرارداد هوشمند برای تعیین اعتبار الگوریتم های اثبات بلاکچین استفاده می گردد.

بلاک های ساخته شده برحسب الگوریتم اعتبارسنج بلاکچین  بر روی بلاکچین باقی خواهند ماند. نتیجه الگوریتم های اعتبارسنج براساس اثبات ارائه شده می توانند به فعالیت های دیگر بلاکچین اضافه شوند. برای این کار از جمله شرطی “اگر درست بود، آنگاه …” استفاده می شود.

بدین ترتیب، ایجاد یک قرارداد هوشمند با ترازنامه های اعتباری میسر می گردد. همچنین از طریق افزونه “ERC-621″، امکان افزایش و کاهش عرضه رمز ارز ها نیز امکان پذیر خواهد شد.

با اینحال، کاربران باید مراقب ترازنامه های دیگر اعضای مرتبط با خودشان باشند. زیرا ترازنامه های آنان بر روی پلتفرم اتراسکن (Etherscan) نمایش داده نمی شوند. همیشه به یاد داشته باشید که اتریوم بستری آزمایشی برای ایده های اقتصادی است. اما این بستر نیز در محدوده هزینه های گس پرداخت شده به فعالیت می پردازد. همین هزینه ها در واقع انگیزه ای برای حلّ مسائل اقتصادی ایجاد می کنند.

 

ادغام با بلاکچین کوروم (Quorum)

در 22 مه 2017، زی کش (ZCash) اقدام به معرفی اثبات مفهوم خود با استفاده از فناوری لایه حریم خصوصی گرفت. این پروتکل اثبات بر روی بلاکچین کوروم اجرایی شد که بر پایه اتریوم عمل می کند و از جانب شرکت “JP Morgan” حمایت می شود. این اعلان باعث افزایش قیمت زی کش شد.

کوروم یک فورک کوچک در اتریوم است که از زبان قرارداد هوشمند خود (Constellation) استفاده می کند. این زبان به صورت اختصاصی برای بازارهای مالی سازمانی ایجاد شده است. از آنجا که پروتکل های اثبات با دانش صفر از هر دو ایده حریم خصوصی فردی و احترام سازمانی استفاده می کنند، به خوبی میتوان از آنها برای تضمین حریم خصوصی دارایی های دیجیتال در بستر کوروم استفاده کرد.

لازم به ذکر است که شرکت “JP Morgan”، در توسعه چهارچوب بلاکچین شرکتی خود در گذشته اقدام به توسعه و تقویت زنجیره های عمومی کرده بود.

پست های مرتبط

رتبه بندی علمی رمزارزها

سردبیر والبی

معرفی بهترین بازی های بلاکچین

سردبیر والبی

اوپن سی (OpenSea) چیست؟

درج دیدگاه

error: اجازه کپی ندارید