الگوریتم دانش صفر (تایید بدون اطلاعات)

الگوریتم دانش صفر(تایید بدون اطلاعات) Zero-knowledge algo
مقالات آموزشی

الگوریتم دانش صفر (تایید بدون اطلاعات)

Zero-knowledge algo…

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

الگوریتم دانش صفر تکنیکی بسیار قدرتمند است که حریم خصوصی شما را می تواند کاملا حفظ کند.

به عنوان مثال فرض کنید می خواهید به سوم شخصی که میتواند ماینر بیتکوین یا بانک یا دولت یا هر نهاد دیگری باشد اثبات کنید که ۱۰۰ میلیون پول در حساب خود دارید بدون آنکه به او بگویید که ۱۰۰ میلیون پول دارید. الگوریتم دانش صفر این کار را برایتان انجام میدهد.

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

اما به هر حال ترید آفی مثلثی بین امنیت مقیاس پذیری و حریم خصوصی درهر سیستمی وجود دارد که راه فراری از آن وجود ندارد.

الگوریتم دانش صفر(تایید بدون اطلاعات) Zero-knowledge algo

الگوریتم دانش صفر توسط گلدواسر و میکالی و واکاف در مقاله ای در سال ۱۹۸۹  برای اولین بار معرفی شد که مقاله ای بسیار زیبا و تاثیرگذار می باشد که در پیوست قرار گرفته است.

جالب است بدانید که این مقاله ی بی نظیر از سال ۱۹۸۲ آماده شده بود و پس از سه بار ریجکت شدن بالاخره پس از ۷ سال منتشر گردید.

با یک مثال از دنیای واقعی ماهیت الگوریتم دانش صفر را بررسی می کنیم.

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

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

۵۰ درصد احتمال دارد که شما دروغگو باشید، ولی شما می‌توانید از او بخواهید یک بار دیگر این کار را انجام دهد و دوباره شما به او بگویید توپ‌ها را جابجا کرده است یا نه. با این کار احتمال آنکه دروغگو باشید به ۲۵ درصد کاهش پیدا می کند  و شخص کوررنگ، ۷۵ درصد می‌تواند به راستگو بودن شما اعتماد کند. با هر بار تکرار این پروسه، احتمال آنکه شما دروغ گفته باشید نصف می‌شود. در این مثال شما فرد اثبات کننده هستید و شخص کوررنگ فرد تایید کننده است یعنی ماینر یا سوم شخص قدرتمندی است که نمی خواهید اطلاعات خصوصی خود را در اختیارش بگذارید. بعد از ده بار تکرار این پروسه فقط ۰.۰۹۷  درصد امکان دروغگو بودن شما وجود دارد و پس از بیست بار تکرار این پروسه ۰.۰۰۰۰۹۵ در صد امکان دروغگو بودنتان هنوز وجود دارد. اما انجام این پروسه در این مثال سرعت سیستم را بسیار کند خواهد کرد.

اما بیایید با مثالی تخصصی تر و کاربردی تر این الگوریتم را نشان دهیم :

طبق مثالی از کازو ساکو  (Kazue Sako)  که در کنفرانسی در internet identity workshop  بیان شد به طور دقیق این الگوریتم را توضیح می دهیم :

تصور کنید یک تابع هش در اختیار دارید که f(x) می باشد و طبق تعریف تابع هش شما می توانید به راحتی با داشتن x به f(x) برسید ولی برعکسش غیر ممکن است.

f(x) = g ^ x mod p

مقدار g و p هم مشخص هستند.

آلیس می خواهد به باب اثبات کند که مقدار x را می داند بدون آنکه مقدار x  را لو دهد. باب f(x) را میتواند ببیند.

آلیس عدد رندوم r را وارد فرمول f(x) میکند و f(r) رابرای باب می فرستد.

باب (تاییدکننده)  یک متغیر به اسم e را برای آلیس (اثبات کننده) می فرستد که یا یک است یا صفر.

آلیس مقدار v  را بر میگرداند:

If e==0:

            return     V=r

Else:

          Return     V= r+x

باب با مقدار v می تواند محاسبات زیر را انجام دهد :

اگر e=0 بود حال باب می فهمد که r چیست و مقدار f(v) برابر با f(r) می باشد.

F(v) = g^v mod p

اگر e=1 بود مقدار زیر بدست می آید :

F(v)*f(x) = g^v (mod p)

این مراحل باید بارها تکرار شود تا باب مطمین شود که آلیس مقدار x را می داند بدون آنکه باب چیزی از x  بفهمد.

Zero-knowledge algo الگوریتم دانش صفر(تایید بدون اطلاعات)

در ادامه برخی از پروژه های مهمی که از دانش صفر استفاده کردند را معرفی می نماییم.

در ابتدا بخشی از وزارت دفاع آمریکا برای اولین بار اقدام به بررسی و استفاده از این تکنیک نمود. سپس زوکو ویلکاکس خالق کوین زدکش برای اولین بار الگوریتم دانش صفر را با ایجاد فورکی روی بلاکچین بیتکوین ایجاد کرد تا مشکلات ناشی از قابل ردیابی بودن تراکنش های بیتکوین را رفع کند. نام الگوریتم مبتنی بر دانش صفری که زوکو خلق کرد zk-snark  بود. در ابتدا به دلیل سنگین بودن اجرای این الگوریتم عملا استفاده ای از این کوین نمی شد زیرا کیف پول این کوین در موبایل قابل استفاده نبود و در سیستم های قوی هم زمان زیادی را مصرف می کرد و سرعت تراکنش در شبکه نیز بسیار کند بود. بعد از سال ها با ارایه ی تکتیک هایی چون HALO و ایجاد کیف پول موبایلی زدکش الگوریتم دانش صفر را قابل اجرا کرد. ولی دو موضوع باعث شد که هیچگاه این پروژه مقبول افرادی که به حریم خصوصی خود اهمیت می دهند واقع نگردد و همواره در مقابل کوین مونرو یک شکست خورده باقی بماند. یکی از مشکلات بزرگ زدکش این بود که همواره تمرکز زیادی روی پروژه برای خود حفظ کرد و هیچگاه نود های اصلی تحت کنترل خودش را از شبکه خارج نکرد و دومین مشکل وجود دو گزینه برای ساختن آدرس در کیف پول بود. یک آدرس قابل ردیابی (t-address)  و یک آدرس غیر قابل ردیابی (z-address) که از دانش صفر استفاده میکرد و بسیار امن بود. اما کمتر از یک درصد کاربران از آدرس غیرقابل ردیابی استفاده میکردند. این را در نظر بگیرید که هرچقدر تکنیک پیشرفته ای را برای دیده نشدن در یک جمع به کار ببرید و قتی در آن جمع فقط خودتان حضور دارید عملا کاملا قابل شناسایی هستید.

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

در سال های اخیر شرکت های زیادی از جمله بانکی در هلند و فورک هایی از زدکش از این الگوریتم استفاده کرده اند که هیچکدام کمک خاصی به حریم خصوصی بیشتر نکرد.

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

همچنین در تاریخ ۲۲ مرداد ۱۴۰۱ کوین مونرو فورک جدیدی ایجاد کرد که در آن از بولت پلاس رونمایی کرد که از الگوریتم دانش صفر استفاده می کند ولی هنوز مشخص نیست که در عمل تا چه حد موفقیت آمیز خواهد بود.

به نظر می رسد ادغام پروژه ی DARKFI و مونرو می تواند بهترین گزینه برای حفظ حریم خصوصی تان باشد. در نهایت کاربر باید بین سرعت تراکنش و راحتی استفاده و  یا داشتن حریم خصوصی کامل و امنیت یک گزینه را انتخاب کند و پروژه ای که تمام آرمان های شما را برآورده کند و هزینه ی اضافه ای نداشته باشد هرگز وجود نخواهد داشت.

در این مقاله به صورت کاملا مقدماتی الگوریتم دانش صفر را بررسی کردیم و از ذکر جزییاتی که در منابع  دیگر موجود است خودداری شده است.

Goldwasser, S., Micali, S., Rackoff, C.: The knowledge complexity of interactive proof systems. SIAM Journal on Computing 18(1), 186–۲۰۸ (۱۹۸۹)

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

starlink
مقالات آموزشی
Starlink چیست و چگونه کار میکند؟

Starlink چیست و چگونه کار میکند؟ استارلینک روی یک فناوری خدمات اینترنت کار میکند.یک سیستم ماهواره ای میباشد که به جای استفاده از فناوری کابل ، مثل فیبر نوری ،برای انتقال داده های اینترنتی از سیگنال های رادیویی از طریق خلاء فضا استفاده میکند. ایستگاه‌های زمینی سیگنال‌هایی را به ماهواره‌ها …

ui ux
تجربه کاربری
UI UX چیست؟

UI  و UX  چیست ؟   UI  مخفف عبارت User Interface و به معنی رابط کاربری و UX مخفف عبارت User Experience و به معنی تجربه کاربری هست. این دو مفهوم در روند طراحی اصولی یک محصول کارامد مورد استفاده قرار میگیرند و با هم تعامل زیادی دارند اما در …

هاست ربات تلگرام
مقالات آموزشی
 هاست ربات تلگرام

 هاست ربات تلگرام قبل از اینکه به ویژگی ها و کاربرد هاست ربات تلگرام بپردازیم باید ببینیم اصلا چرا به همچین هاستی نیاز هست همانطور که میدانیم یکی از متداول ترین شبکه های مجازی که علیرغم اینکه در کشور ما فیلتر می شود همچنان محبوبیت دارد ، تلگرام است . …