طرح های تعهد در زکری

همانطور که قبلاً اشاره کردیم، یکی از نوآوری های اصلی پروتکل Zecrey، پشتیبانی از تراکنش‌های خصوصی چند به چند (many-to-many) برای کاربران بلاک چین است. فناوری هدایت شده در پشت این خلاقیت جذاب عمدتاً رمزگذاری ElGamal پیشرفته، اثبات دانش صفر (zero-knowledge proofs)، و طرح تعهد یکپارچه (commitment scheme) است. پیش از این، یک طرح کلی از طرح های رمگذاری ElGamal پیشرفته و رویه های آن را مورد بررسی قرار دادیم. هدف اصلی این مقاله جلب توجه خوانندگان به دنیای طرح‌های تعهد و دریافت مفاهیم، اصول و کاربردهای این رمزنگاری منحصربه‌فرد است.

post image

مفهوم تعهد (commitment) در درون تقریباً هر سازوکار پروتکل های رمزنگاری مدرن قرار دارد. در این زمینه، انجام تعهد به این معنی است که یک کاربر در یک پروتکل می تواند یک مقدار را از مجموعه محدودی انتخاب کند و به انتخاب خود متعهد شود به طوری که دیگر نتواند نظر خود را تغییر دهد. با این حال، او مجبور نیست انتخاب خود را فاش کند، اگرچه ممکن است در زمان دیگری این کار را انجام دهد. به طور شهودی، یک طرح تعهد غیر تعاملی یک پروتکل دو طرفه بین فرستنده و گیرنده با دو مرحله است. در مرحله تعهد، فرستنده با ارسال تعهد به گیرنده مقداری از m را متعهد می‌شود. در مرحله باز کردن، فرستنده می تواند با ارائه m و برخی اطلاعات کمکی، تعهد را باز کند، که به وسیله آنها گیرنده می تواند تأیید کند که ارزشی که دریافت کرده است واقعاً ارزشی است که فرستنده در مرحله تعهد داده است. به عنوان یک مثال غیررسمی، بازی زیر را بین دو بازیکن P و V در نظر بگیرید:

·       P می خواهد به مقدار b متعهد شود. برای این کار، b را روی یک کاغذ یادداشت می کند، آن را در جعبه می گذارد و با استفاده از یک قفل، آن را قفل می کند.

·       P جعبه را به V می دهد

·       P بعداً می تواند با دادن کلید قفل توسط V، تعهد را باز کند.

دو ویژگی اساسی این بازی وجود دارد که برای هر طرح تعهد ضروری است:

·       پس از واگذاری جعبه، P دیگر نمی تواند آنچه در داخل است را تغییر دهد. از این رو، هنگامی که جعبه باز می شود، می دانیم که آنچه آشکار می شود واقعاً انتخابی بود که P در ابتدا به آن متعهد بود. این را معمولاً ویژگی binding می نامند.

·       وقتی V جعبه را دریافت می‌کند، نمی‌تواند قبل از اینکه P تصمیم بگیرد کلید را به او بدهد، بگوید داخل آن چیست. این معمولاً به عنوان ویژگی پنهان (hiding) نامیده می شود.

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

post image

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

·       آلیس پشت سکه را حدس میزند.

·       باب روی سکه را حدس می زند.

·       اگر فرض آلیس درست باشد، او برنده می شود، در غیر این صورت باب برنده می شود.

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

·       آلیس روی سکه را حدس میزند اما فقط به باب نحوه تعهد خود را می گوید.

·       باب سکه را پرتاب می کند و نتیجه را گزارش می کند،

·       آلیس می گوید که مقدار تعهد اون چه بود است.

·       باب تأیید می کند که نتیجه پرتاب سکه با تعهد مطابقت دارد یا خیر.

·       اگر با نتیجه سکه ای که باب گزارش داد مطابقت داشت، آلیس برنده می شود.

برای اینکه باب بتواند نتایج را به نفع خود تغییر دهد، باید بتواند ویژگی پنهان در تعهد آلیس را شناسایی کند. اگر طرح تعهد خوب باشد، باب نمی تواند نتایج را تغییر دهد. به طور مشابه، اگر آلیس نتواند مقداری را که در تعهد ارایه داده، تغییر دهد، نمی تواند بر نتیجه نهایی تاثیر بگذارد.

post image

در واقع، یک مثال کاربردی، استفاده از طرح‌های تعهد در اثبات‌های دانش صفر (zero-knowledge proof) است. تعهدات در برهان‌های دانش صفر برای دو هدف اصلی استفاده می‌شوند: اول، به اثبات‌کننده (prover) این امکان را فراهم می کند تا در برهان‌های «برش و انتخاب» (cut and choose) شرکت کند که در آن تأییدکننده (Verifire) انتخاب خود را می گوید و اثبات‌کننده فقط آنچه را که مطابقت دارد نشان می‌دهد. طرح‌های تعهد به اثبات‌کننده اجازه می‌دهد تا تمام اطلاعات را از قبل مشخص کند، و فقط آنچه را که باید بعداً در اثبات آشکار شود، آشکار می‌کند. دوم، تعهدات همچنین در اثبات‌های دانش صفر توسط تأییدکننده استفاده می‌شود، که اغلب انتخاب‌های خود را زودتر از موعد در یک تعهد مشخص می‌کند. این اجازه می دهد تا اثبات های دانش صفر به صورت موازی بدون افشای اطلاعات اضافی برای اثبات کننده  ترکیب شوند. بنابراین، طرح های تعهد تا حد زیادی اعتبار و امنیت مدارک دانش صفر را افزایش می دهد.

سومین کاربرد مهم تعهدات، طرح های امضا است. طرح امضای لامپورت (Lamport) یک سیستم امضای دیجیتال است که بر حفظ دو مجموعه از بسته‌های داده مخفی متکی است: یکی انتشار هش‌های قابل تأیید بسته‌های داده، و دومی افشای انتخابی بسته‌های داده مخفی به روشی که به طور خاص با داده‌های مورد نظر مطابقت دارد. به این ترتیب، تعهد عمومی قبلی به ارزش های مخفی به بخش مهمی از عملکرد سیستم تبدیل می شود. از آنجایی که سیستم امضای Lamport را نمی توان بیش از یک بار استفاده کرد، سیستمی برای ترکیب بسیاری از مجموعه کلیدهای Lamport تحت یک ارزش عمومی واحد که می تواند به یک شخص مرتبط شود و توسط دیگران تأیید شود ایجاد شد. این سیستم از درخت های هش برای فشرده سازی بسیاری از مجموعه های lamport-key-commitments منتشر شده در یک مقدار هش استفاده می کند که می تواند با نویسنده احتمالی داده های تأیید شده بعدی مرتبط شود.

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

 در آینده، طرح تعهد پدرسن (Pedersen Commitment) را توضیح خواهیم داد، که به طور گسترده در پروتکل‌های حفاظت از حریم خصوصی موجود در سیستم‌های مختلف بلاک چین پذیرفته شده و دوباره طراحی شده است. علاوه بر این، ارتباط بین طرح‌های تعهد و اثبات‌های شناخته‌شده دانش صفر نیز معرفی خواهد شد، که منجر به درک آسان‌تری برای خوانندگان و علاقه‌مندان به حریم خصوصی در پروتکل Zecrey می‌شود.


لینک شبکه های اجتماعی و رسمی زکری:

website

Twitter

Discord

Telegram

Docs


لینک شبکه های اجتماعی کانال مانی پانی:

Twitter

Telegram

Medium

Youtube