مقدمه ای بر اثبات دانش صفر
در حوزه بلاک چین، اثبات دانش صفر روشی است که به دنبال اثبات آگاهی از اطلاعات است، اما از فاش شدن دادهها جلوگیری میکند. اثبات دانش صفر (ZKP) فرآیند احراز هویت دیجیتالی را بدون استفاده از پسورد و یا دادههای حساس تسهیل میکند. درنتیجه، امکان در معرض خطر قرار گرفتن اطلاعات در سمت گیرنده و فرستنده وجود ندارد.
هدف از این روش محرمانگی تراکنشها و اطلاعات در شبکه بلاک چین است. در شبکه های بلاکچینی مانند بیت کوین، تمام فعالیتهای مالی در یک پایگاه اطلاعاتی عمومی ثبت میشود تا همه بتوانند آن را مشاهده کنند. قابل ذکر است، فروشندگان مواد مخدر در جاده ابریشم که در معاملات خود از بیت کوین استفاده میکردند به این دلیل دستگیر شدند که وزارت امنیت داخلی امریکا توانست ردپای تراکنشهای آنها را شناسایی کند.
طی چند سال گذشته، ما به دسترسی بانکهای بزرگ و سایر سازمانها به اطلاعات شخصی مردم عادت کردهایم. و به مرور زمان به مکانیزمهایی که از اطلاعات شخصی ما برای کمک به ما استفاده میکنند، چراغ سبز نشان دادیم. اما فناوری بلاک چین ظهور کرد و همه چیز را تغییر داد.
فناوری بلاک چین ویژگیهای مختلفی مانند شفافیت، فیر قابل دستکاری بودن، غیرمتمرکز بودن و شبکه توزیع شده را به وجود آورد. ویژگیهایی که کاربران را قادر میسازد به صورت ناشناس عمل کرده و تراکنشهای خود را با امنیت بالایی انجام دهند.
بلاکچین به زبان ساده به کاربران امکان کنترل حریم خصوصی را میدهد. اما آیا بلاکچین واقعاً در انجام این کار موفق بوده است؟ در یک کلمه، جواب منفی است.
بسیاری از شبکههای بلاک چین از پایگاههای داده (دیتابیس) عمومی استفاده میکنند. بنابراین هر کسی که به اینترنت دسترسی داشته باشد، میتواند لیستی از تاریخچه تراکنشهای شبکه را مشاهده کند. آنها میتوانند تمام جزئیات مربوط به تراکنش و جزئیات کیف پول شما را ببینند و فقط نام کاربر برای آنها ناشناخته خواهد بود. اما در عوض، آنها با یک کلید عمومی روبرو میشوند کد منحصر به کاربر بلاک چین.
به این ترتیب، کلید عمومی ایجاد شده از طریق روش رمزنگاری تا حدودی از حریم خصوصی شما محافظت میکند. اما هنوز هم ممکن است با تکنیکهای دیگر هویت شما لو برود. اطلاعات حساس کاربر در شبکه بلاک چین فقط محرمانه است و ناشناس نیست.
به همین دلیل، شبکههای بلاکچینی با الگوریتمهای اجماع متفاوت برای ارائه حریم خصوصی راه اندازی شدند. اما این روشها به اندازه کافی بر حریم خصوصی تمرکز ندارند و ممکن است سوالات زیادی به وجود بیاید:
- آیا شبکه های بلاکچین واقعاً باید ناشناس باشند؟
- چگونه بلاکچین می تواند ناشناس بودن و حریم خصوصی بیشتری را به کاربران خود ارائه دهد؟
- آیا بلاکچین وب 3.0 می تواند بر کسب و کار تأثیر بگذارد؟
جایی که اثبات دانش صفر وارد می شود…
در سیستم های متمرکز مانند فیس بوک، آمازون و گوگل، دادههای کاربران برای کسب سود فروخته میشود. تا بتواند رفتار کاربران را از طریق تبلیغات دنبال کند. در شبکه های کاملاً باز بلاکچین، تمام فعالیت های کاربر ثبت شده و عمومی است. آنچه اثبات دانش صفر ارائه میدهد یک شبکه عمومی و شفاف است که از مردم در برابر Snoopers، Peepers و Creepers محافظت می کند.
تاریخچه Zero knowledge Proof
این روش برای اولین بار در دهه 1980 توسط گروهی از ریاضیدانان توسعه یافت.
- در سال 1985 اولین اثبات دانش صفر در مقالهای به نام “پیچیدگی اثبات دانش در سیستمهای تعاملی” توسط توسعه دهندگانی به نام Shafi Goldwasser ،Charles Rackoff و Silvio Micali نوشته شد. آنها نشان دادند که اثبات (گواهی) برخی خصوصیات یک عدد بدون افشای عدد یا اطلاعات اضافی در مورد آن امکان پذیر است.
- در سال 2012 Alessandro Chiesa و تیمی از محققان اصطلاح zk-SNARK ها را ابداع کردند.
- در سال 2016 Zcash منتشر شد و به عنوان پرکاربردترین رمزنگاری محرمانه برای استفاده از zk-SNARK ها تبدیل شد.
مفهوم ZKP
در الگوریتم اثبات دانش صفر، نقشهای اساسی ما اثبات کننده (Prover) و تایید کننده(verifier) هستند. اثبات کننده باید ثابت کند که آنها معما را میدانند. تأیید کننده باید بتواند تأیید کند که حقیقت را میگوید.
در ابتدایی ترین مفهوم آن، میتوان اثبات دانش صفر (که به آن ZKP نیز گفته میشود) را به عنوان یک پروتكل در نظر گرفت که از طریق آن میتوان فرآیند احراز هویت دیجیتال را بدون استفاده از رمز عبور یا سایر اطلاعان حساس تسهیل كرد. در نتیجه این پروتکل، هیچ اطلاعاتی از طریق فرستنده یا گیرنده به هیچ وجه قابل کشف نیست.
برای روشن شدن تعریف، مثالی میزنیم تا بفهمیم اثبات دانش صفر چگونه کار میکند.
مثال اول : کودکها و آب نباتها
فرض کنید دو کودک به نامهای باب و آلیس در یک مهمانی آب نبات دریافت کردهاند. باب میخواهد بداند آلیس به همین تعداد آب نبات دارد یا خیر. اما در عین حال، هیچ یک از آنها حاضر نیست که تعداد دقیق آب نباتهایش را فاش کند.
باب چهار جعبه قابل قفل شدن در اتاق قرار می دهد، با این فرض که تعداد آب نباتهای دریافتی یکی از اعداد 10، 20، 30 و 40 باشد. او بر روی هر جعبه مقدار متناسب با تعداد آبنبات را برچسب گذاری میکند.
سپس باب کلید جعبهای را که تعداد آب نبات های خودش را مشخص میکند نگه میدارد (باب 30 عدد آب نبات دارد) و کلیدهای جعبه های دیگر را دور میاندازد و از اتاق خارج میشود.
حالا، آلیس با 4 قطعه کاغذ کوچک وارد اتاق شده و روی یکی از آنها “+” می نویسد. در حالی که روی بقیه “-” مینویسد. در اینجا، “+” نشان دهنده تعداد آب نبات های او است.در حالی که “-” نشان دهنده سایر مقادیر است. او قطعه کاغذ را با علامت “+” در یک جعبه (آلیس 20 آب نبات دارد) و “-” در بقیه جعبه ها قرار میدهد و از اتاق خارج میشود.
حالا باب دوباره وارد اتاق شده و در جعبه ای که کلید آن را دارد باز میکند. سپس بررسی میکند که آیا جعبه دارای یک قطعه کاغذ با علامت “+” است یا “-” است. اگر علامت “+” باشد، او متوجه میشود که آلیس تعداد آب نباتهای مساوی دارد.
همانطور که گفتیم آلیس 20 عدد آب نبات و باب دارای 30 عدد آب نبات است. مشخص است که اگر باب در جعبهای که کلید آن را دارد، علامت “-” پیدا میکند. میفهمد که هر دو تعداد آب نبات یکسان ندارند.
در همان لحظه، آلیس دوباره وارد اتاق میشود و علامت “-” را در دست باب پیدا میکند و می فهمد که تعداد آب نبات مختلفی دارند.
روشی ساده و بدون پیچیدگی!!
با این روش، باب میفهمد که تعداد آب نبات برابر ندارند. اما در مورد اینکه آیا آلیس کمتر از او آب نبات دارد یا بیشتر اطلاعاتی ندارد. بنابراین، اثبات دانش صفر حریم خصوصی کاربران را هنگام انجام معامله در بلاک چین حفظ میکند.
برای مطالعه ادامه مقاله به قسمت دوم مراجعه کنید.