محمد حضرت پور | 1398.12.27

معرفی علم رمزنگاری و بررسی کاربرد آن در بلاک چین

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

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

در این تحقیق، نخست به صورت اجمالی به معرفی، اهمیت و اهداف علم رمزنگاری می­‌پردازیم. سپس سعی می­‌کنیم که اساسی­‌ترین مفاهیم رمزنگاری­ را که برای درک تکنولوژی بلاک­ چین و پتانسیل­‌های آن لازم است، توضیح دهیم. این مفاهیم شامل توابع هش (درهم­سازی)­ رمزنگاری­‌شده[1]، امضاهای دیجیتال[2]، پروتکل‌های دانایی صفر[3] و چند مورد دیگر است که اغلب آن­ها مربوط به امنیت، قابلیت اطمینان و حریم خصوصی بلاک‌چین­‌ها هستند. در نهایت، به سه حوزه­ برای مطالعه­‌ی بیشتر در زمینه­‌ی چالش­‌های تکنولوژی بلاک­ چین اشاره شده که با پتانسیل­‌های علم رمزنگاری قابل­ حل هستند.

معرفی علم رمزنگاری

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

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

اما چرا باید داده‌­ها پنهان شوند؟

  • اظهارات بانکی و اسناد مالی
  • اعداد مربوط به کارت اعتباری و حساب­‌های بانکی
  • مدارک پزشکی و درمانی
  • دستورات نظامی و اطلاعات امنیت ملی
  • اطلاعات شخصی
  • نامه‌­های شخصی

در هر یک از موارد بالا باید محرمانه‌گی[4] و اصالت داده­‌ها حفظ شود که دو وظیفه­‌ی دیرینه­‌ی علم رمزنگاری هستند. در رمزنگاری، هر دو الگوریتم رمز­نگاری و رمز­گشایی به کلید مخفی نیاز دارند که می­‌تواند یک عدد با ویژگی خاص و یا یک توالی از بیت­‌ها باشد. به طور کلی دو سیستم رمزنگاری وجود دارد:

  • سیستم رمرنگاری کلید خصوصی که در آن، یک کلید مشخص برای رمزنگاری و رمز­گشایی به کار می­‌رود. از این رو این سیستم­‌ها را متقارن می‌نامند. رویه­‌های سنتی از این نوع بوده­‌اند.
  • سیستم­‌های رمز­نگاری کلید عمومی که در آن­ها کلید­های رمز­گذاری و رمز­گشایی متفاوت هستند. در این سیستم‌­ها می­‌توانید یک کلید عمومی را منتشر کنید، که با آن هر کسی یک پیام را برای شما رمز­گذاری می­‌کند و سپس فقط شما از کلید خصوصی مربوطه برای رمزگشایی آن پیام مطلع هستید.

همانطور که اشاره شد حفظ محرمانه‌گی تنها یکی از اهداف رمزنگاری است. این علم راه­‌حل­هایی برای مسایل دیگر دارد:

  1. یک­پارچگی داده­‌ها[5]: دریافت­‌کننده­‌ی پیام باید قادر باشد تا از عدم تغییر اطلاعات در حین انتقال اطمینان حاصل کند.
  2. احراز هویت[6]: دریافت­‌کننده­‌ی پیام باید بتواند منشأ پیام را بررسی و تأیید نماید. یعنی فرد دیگری نتواند پیامی را به دریافت­‌کننده بفرستد و تظاهر کند منشأ اطلاعات است.
  3. عدم تکذیب[7]: فرستنده در آینده نباید بتواند انکار کند که وی پیام را فرستاده است.

در عصر حاضر جریان اطلاعات و ارتباطات دخالت زیادی در رشد و توسعه­‌ی اقتصادی و اجتماعی داشته است. با سیطره­‌ی اینترنت و ارتباطات دیجیتال و افزایش اهمیت برقراری امنیت در این شبکه­‌های ارتباطی، در دو دهه­‌ی اخیر مطالعات بسیاری در این زمینه صورت گرفته که در اکثر آن­ها امنیت داده و حریم خصوصی دو موضوع مورد توجه بوده­‌اند. (Khalifa et al. 2004)(Tayal et al. 2017)(Callas 2007)(Gupta, Gupta, and Walia 2014)

رمزنگاری و بلاک­ چین

از اوایل دهه­‌ی 80 میلادی، طراحی پول الکترونیکی همواره یکی از موضوعات اصلی پژوهش در زمینه­ی رمز­نگاری بوده است. ریشه­‌های استفاده از رمزنگاری برای انجام تراکنش­‌های مالی امن و خصوصی در سیستم پول الکترونیکی دیوید چائوم در دهه­‌ی 90 یافت می­‌شوند (Chaum 1983). چندین سال بعد یک مجموعه از برنامه­‌نویسان و رمزنگاران موسوم به سایبرپانک چندین پروژه­‌ی رمزنگاری متن باز با مالکیت آزاد را مطرح و پیاده­‌سازی کردند. این پروژه­‌ها شامل hashcash توسط آدام بک، b-money توسط وی دای و bitgold توسط نیک سزابو تا حدی پیش­گام بودند که بعد­ها تبدیل به پایه و اساس دو رمز­ارز مشهور (بیت­ کوین و اتریوم) شدند (Raikwar, Gligoroski, and Kralevska 2019).

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

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

بلاک­چین به عنوان یک تکنولوژی متحول­‌کننده همچنان با چالش­‌هایی مثل بهبود مستمر امنیت و حریم خصوصی، مدیریت کلید، مقیاس­‌پذیری[8]، تحلیل حمله­‌های جدید، مدیریت قرارداد هوشمند و معرفی تدریجی ویژگی­‌های رمزنگارانه­‌ی جدید در بلاک­چین­‌های موجود، مواجه است (Raikwar, Gligoroski, and Kralevska 2019).

اغلب پژوهش‌­ها در زمینه­‌ی بلاک­ چین، بر شناسایی زمینه­‌های بهبود در فرآیند­ها و رویه­‌های موجود متمرکز هستند، رویه­‌ها در صنایع وابسته به واسطه­‌ها مثل بانک­داری، مالی، مشاور ­املاک، بورس، بیمه، سیستم حقوقی و قضایی، بهداشت و درمان و غیره. مطالعاتی نیز درباره­‌ی بلاک­ چین و مفاهیم رمزنگارانه­‌ی آن وجود دارند که در آن­ها به مرور و بررسی مفاهیمی چون امنیت، حریم خصوصی و اجماع پرداخته شده است (Wang et al. 2019)(Conti et al. 2018).

الگوریتم‌­های رمزنگارانه در بلاک ­چین

اصول اولیه و تکنیک­‌های رمز­نگاری در بلاک­ چین را می­‌توان به روش­‌های مختلفی طبقه­‌بندی نمود. می‌توان آن­ها را بر اساس کاربرد در بلاک­ چین دسته­‌بندی کرد. مثلا مفاهیمی که به خوبی در بلاک­چین استفاده می­‌شوند و مفاهیمی که پتانسیل بالایی برای استفاده در بلاک­ چین دارند، اما هنوز پیاده­‌سازی نشده­‌اند. از طرف دیگر، می­‌توان آن­ها را در دو دسته­‌ی پروتوکل­‌های اصلی و اختیاری قرار داد. دسته­‌ی اول شامل توابع هش رمز‌نگاری شده و امضا­های دیجیتال استاندارد، که برای اطمینان از بلاک­ چین به عنوان یک دفتر­کل توزیع­‌شده با قابلیت­ تأیید برای عموم، ضد دستکاری بودن[9] و اجماع قابل­ دست­یابی، ضروری هستند. دسته­‌ی دوم، شامل امضاهای دیجیتال خاص (امضاهای حلقه)، پروتوکل­‌های دانایی صفر، تعهدات و انباشتگر­ها است که بیش­ از همه برای ارتقای حریم­‌خصوصی و ناشناس بودن[10] در بلاک­ چین استفاده می­‌شوند. همچنین اصول رمز­نگاری دیگر مانند اشتراک­‌گذاری راز و انتقال فراموش­‌کار، به صورت غیرمستقیم در ساخت مفاهیمی چون تعهدات و اثبات دانایی صفر مورد استفاده قرار گرفته­‌اند (Wang et al. 2019).

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

توابع هش رمزنگاری­‌شده

تابع درهم­سازی رمزنگارانه، یک داده­‌ی ورودی با اندازه­‌ی دلخواه را گرفته و آن را بر یک رشته­‌ی بیتی با اندازه­‌ی ثابت می­‌نگارد. این توابع، ویژگی­‌هایی دارند: 1) قطعی[11] هستند، یعنی داده­‌ی ورودی یک­سان، همواره هش یک­سانی دارد. 2) مقاومت پیش­‌نمایش[12]، یعنی برای یک خروجی معین (y)، بسیار بسیار دشوار است تا یک داده­‌ی ورودی (a) یافت که H(a)=y. به عبارت دیگر تولید یک داده­‌ی ورودی (پیام) که یک مقدار هش مشخص را به دست دهد ناشدنی است. این مفهوم مربوط به یک­طرفه بودن تابع هش است. 3) مقاومت تصادم، یعنی بسیار بسیار دشوار است تا دو داده­‌ی ورودی (الف و ب) را یافت که خروجی یک­سانی دارند. این جفت، «تصادم هش رمزنگاری­‌شده» نام دارد. این ویژگی ملزم می­‌کند که مقدار هش، حدقل دوبرابرِ حداقل مقدار هش لازم برای برآورده شدن مقاومت پیش­‌نمایش باشد. 4) مقاومت پیش­‌نمایش دوم[13]، یعنی برای یک ورودی a و یک خروجی y مشخص، پیدا کردن ورودی دوم b که H(b)=y دشوار است. گاهی به این ویژگی، مقاومت تصادم ضعیف می­‌گویند. 5) اثر بهمن[14]، یعنی یک تغییر کوچک در داده­‌ی ورودی باید مقدار هش را به شدت تغییر دهد تا مقدار هش جدید با مقدار هش قبلی همبستگی نداشته باشد. 6) برای هر داده­‌ی ورودی مشخص، محاسبه­‌ی مقدار هش، سریع انجام شود (Martínez, Hernández-Álvarez, and Encinas 2020; Raikwar, Gligoroski, and Kralevska 2019).

توابع هش رمز­نگاری­‌شده برای چندین هدف در بلاک­چین استفاده می­‌شوند: 1) حل معما­های رمزنگاری (اثبات کار در بیت­کوین) 2) تولید آدرس (برای کلید­های عمومی و خصوصی) 3) کاهش اندازه­‌ی آدرس­‌های عمومی 4) چکیده­­‌های پیام[15] در امضا­ها.

کارکرد اصلی اثبات کار این است که یک گروه غیرمتمرکز بتوانند بدون اعتماد قبلی، بر سر یک سابقه­‌ی تراکنش توافق کنند و بتوانند مانعی در برابر حملات دوبار خرج کردن[16] شوند. گرچه ایده­‌ی استفاده از توابع هش به عنوان یک ابزار اثبات کار برای اولین بار در سال 1997 مطرح شد (زمانی که آدام بک از مفهوم هش­‌کش استفاده کرد تا مانع از حملات DDoS شود)، اما با ظهور بیت­ کوین تبدیل به یک مفهوم کلیدی شد. مشهور­ترین توابع هش رمز­نگاری­‌شده در بلاک­چین، مجموعه­‌ی SHA-2 هستند (به ویژه SHA-256 که خروجی­‌های 256 بیتی تولید می­‌کند). SHA، یک استاندارد پردازش اطلاعات فدرال آمریکا است و اغلب الگوریتم­‌های این مجموعه توسط آژانس امنیت ملی ایالت متحده طراحی شده­‌اند. در بیت­ کوین نیز از همین توابع استفاده شده است. خوانندگان علاقه­‌مند به مطالعه­ در زمینه­‌ی توابع هش (درهم­‌سازی) رمزنگاری­شده به (Preneel 1999) رجوع نمایند.

در تاریخ ده ساله­‌ی بلاک­‌چین، مشاهده می­‌شود که فعالیت­‌های پژوهشی و نوآورانه در زمینه­‌ی توابع هش رمزنگاری­‌شده به صورت مستقیم با روند­ها در بلاک­ چین مرتبط بوده است. یکی از این روندها، گرایش به ساختن پیاده­‌سازی­‌های سخت­‌افزاری ایسیک[17] (ASIC) SHA-256d بوده که قادر هستند بلوک­‌ها را چندین مرتبه سریع­تر از CPU و GPU معمولی استخراج نماید. روش­‌های استخراج پیشرفته، برخی از موجودیت­‌ها را قادر می­‌سازد با سرعت استخراج بسیار بیش­تری ادامه دهند که این موجب می­‌شود احتمال حمله­‌ی 51 درصدی بیشتر شود.  لایت­ کوین که یکی از انشعابات اولیه­‌ی بیت­ کوین در سال 2011 است، به‌جای SHA-256d از تابع Scrypt استفاده می­‌کند تا به خاطر عملی نبودن پیاده­‌سازی آن در سخت­‌افزار ASIC، فرصتی ایجاد شود تا صاحبان کامپیوتر­ها و GPU بخش قابل­‌توجهی از جامعه­‌ی استخراج را تشکیل دهند. اتریوم (تابع Ethash)، کوارک­ کوین (تابع Equihash) و دارک­‌کوین (تابع X11) از توابع هش رمز­نگاری­‌شده دیگری استفاده کردند تا استخراج با ASIC کارایی کم­تری داشته باشد (Wang et al. 2019).

رویه­‌ی امضا

رویه­‌های امضای دیجیتال، یکی دیگر از مفاهیم ضروری در بلاک­‌چین­‌ها هستند. ایده­‌ی امضای دیجیتال در رمز­نگاری در سال 1976 توسط دیفی و هِلمن شکل گرفت، وقتی که آن­ها رمز­نگاری کلید­عمومی را توسعه می­‌دادند (Diffie and Hellman 1976). امضای دیجیتال استاندارد، یک رویه­‌ی ریاضی بر مبنای رمز­نگاری کلید عمومی است که کد­های کوتاهی را به نام امضای پیام­‌های دیجیتال با استفاده از یک کلید خصوصی تولید می‌کند و در همان حال، این امضا با استفاده از کلید عمومی مربوطه، قابل تأیید است. رویه­‌ی امضا برای چند هدف در بلاک­ چین استفاده می­‌شود:  احراز هویت فرستنده، فراهم کردن یکپارچگی تراکنش­‌ها و عدم تکذیب فرستنده، که به این سه در قسمت قبل اشاره شده است.

رویه­‌های امضای دیجیتال باید غیر­قابل­‌جعل باشند، یعنی کسی نتواند یک امضای معتبر روی یک پیام را جعل کند، حتی اگر به اوراکل[18] امضا که خدمات آن را فراهم می­‌کند، دسترسی داشته باشد.

امضای دیجیتال یکی از مهم­‌ترین اصول رمزنگارانه است که با آن، بلاک­‌ چین برای عموم قابل­ تأیید و اجماع در آن قابل دست­یابی است. بلاک­‌چین­‌ها، برای داشتن ویژگی­‌های دیگر مثل حریم ­خصوصی و ناشناس بودن از رویه­‌های امضای پیشرفته­‌تری استفاده می­‌کنند. این رویه­‌ها شامل امضای چندگانه[19]، امضای کور[20]، امضای حلقه[21] و امضای آستانه[22] هستند.

در رویه­‌ی امضای چندگانه، گروهی از کاربران یک پیام واحد را امضا می­‌کنند. در شبکه­‌ی بلاک­ چین، وقتی یک تراکنش، امضای یک گروه از اعضا را نیاز دارد، استفاده از این رویه دارای مزیت است. پلت­فرم­‌های Openchain و MultiChain از رویه­‌ی امضای چندگانه M-of-N استفاده می­‌کنند که ریسک سرقت را با تحمل به خطر افتادن حداکثر M-1 کلید رمز­نگاری، کاهش می­‌دهند.

در رویه­‌ی امضای کور (Chaum 1984)، امضا­ها در پروتکل­‌هایی مربوط به حریم خصوصی به کار می­‌روند که در آن­ها امضا­کننده و فرستنده­‌ی پیام (تراکنش در بلاک­ چین)، موجودیت­‌های متفاوتی هستند. امضای کور، در شبکه­‌ی توزیع­‌شده BlindCoin به کار رفته است تا ویژگی غیر­قابل­ جدا کردن تراکنش­‌ها برقرار شود. این رویه همچنین برای ویژگی ناشناس بودن در تراکنش­‌های بیت­ کوین مورد آزمایش قرار گرفته­ است (Raikwar, Gligoroski, and Kralevska 2019). ناشناس بودن همواره در سیستم­‌های اطلاعاتی به ویژه پرداخت الکترونیکی مورد نیاز است. بیت­ کوین به دلیل قابلیت اتصال[23] تراکنش­‌ها، تنها نام مستعار را ایجاد می­‌کند. به هرحال از تمام این انواع، فقط امضای حلقه برای ناشناس بودن در فناوری بلاک­ چین استفاده شده است.

مفهوم امضای حلقه در سال 2001 توسط ریوست و همکاران مطرح شد (R. L. Rivest, Shamir, and Tauman 2001). این امضا از پروتکلی استفاده می­‌کند که یک کاربر می­‌تواند با استفاده از آن از طرف یک گروه پیام­‌ها را امضا کند، بدون این­که هویت خود را آشکار کند. سال­‌ها قبل چائوم مفهوم امضای گروهی را مطرح کرده بود که اجازه می­‌داد عضوی از گروه به صورت ناشناس یک پیام را از طرف گروه امضا کند، ولی با این محدودیت که مدیرِ طراحی‌شده برای گروه می‌توانست در‌صورت لزوم امضا­کننده را شناسایی کند. اما در رویه­‌ی امضای حلقه، امضا­کننده می­‌تواند گروه را بدون اجازه­‌ی اعضای دیگر تشکیل دهد.

علاوه بر غیرقابل­ جعل بودن، ناشناس بودن بی­‌قید­و­شرط یک شرط امنیتی دیگر برای انجام درست امضای حلقه به حساب می­‌آید. ناشناس بودن، شامل دو ویژگی غیر­قابل ردیابی بودن و غیرقابل جدا کردن [24] است. اولی یعنی کسی نمی­‌تواند امضا­کننده را شناسایی کند و دومی یعنی هیچ‌کس نمی­‌تواند تشخیص دهد که دو امضای مشخص توسط یک امضا­کننده ایجاد شده است (Wang et al. 2019). تکنولوژی CryptoNote یک رویه­‌ی امضای حلقه را به کار می­‌گیرد تا پرداخت­‌های ناشناس را به وسیله­‌ی رمزارز­ها انجام دهد.

امضای آستانه، یک رویه­‌ی امضا است که در آن t نفر از n طرفی که هریک بخشی از کلید رمز را دارند، روی هر پیام امضا می­‌کنند. چون اعضا، امضا را به صورت مستقیم از این بخش­‌های کلید رمز می­‌سازند، این کلید هیچ­گاه در کل رویه آشکار نمی­‌شود. CoinParty یک رویه­‌ی امضای آستانه را برای ترکیب چندطرفه­‌ی بیت‌کوین­‌ها استفاده می­‌کند. دو رویه­‌ی پرکاربرد در بلاک­ چین­‌ها ECDSA (الگوریتم امضای دیجیتال منحنی بیضوی) و EdDSA (الگوریتم امضای دیجیتال منحنی ادواردز) هستند، اولی در بیت­ کوین و اِتریوم و دومی در لیبرا برای ایجاد آدرس حساب جدید مورد استفاده قرار گرفته است.

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

در پروتکل­‌های دانایی صفر، دو طرف مشارکت می­‌کنند. اثبات­‌کننده، بیانیه­‌ای را مدعی می­‌شود که درستی و اعتبار آن را بدون آشکار کردن هیچ­گونه اطلاعاتی غیر از همان بیانیه برای تأیید­کننده اثبات می­‌کند، به عبارت دیگر بیانیه فقط باید شامل این ادعا باشد که اثبات­‌کننده، دانایی مشخص را دارد. اما چیزی درباره­‌ی این دانش در بیانیه وجود ندارد. بدیهی است که اثبات دانایی درباره­‌ی اطلاعات مشخص به­‌سادگی با آشکار کردن آن اطلاعات انجام می­‌شود، اما چالش اصلی، اثبات دانایی بدون آشکار شدن آن­ اطلاعات یا اطلاعات اضافی دیگر است (Goldreich and Oren 1994).

اثبات دانایی صفر باید سه ویژگی داشته باشد:

  1. کامل بودن[25]: اگر بیانیه (ادعا) درست باشد، تأیید­کننده­‌ی صادق توسط اثبات‌­کننده صادق نسبت به آن متقاعد می­‌شود.
  2. صحت[26]: اگر ادعا نادرست باشد، هیچ متقلبی نمی­‌تواند تأیید­کننده­ صادق را متقاعد کند که آن ادعا درست است، مگر با احتمالی ناچیز. همچنین با تکرار پروتکل، احتمال موفقیت متقلب کمتر می­‌شود و با اولین اشتباه اثبات­‌کننده می­‌توان متقلب را شناسایی نمود.
  3. دانایی صفر: اگر ادعا درست باشد، تأیید­کننده، جز این حقیقت که ادعا درست است، هیچ اطلاعات دیگری به دست نمی­‌آورد.

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

در بلاک­چین­‌ها، برای تضمین اعتبار تراکنش­‌ها و در عین­ حال پنهان ماندن جزییات تراکنش، استفاده از این پروتکل­‌ها مطرح شده است. زیروکوین[27] یا زیروکش[28] برای تراکنش­‌های غیر­قابل رد­یابی و غیرقابل جداسازی (و در کل ناشناس) از پروتکل­‌های دانایی صفر استفاده می­‌کنند. زیروکوین (Miers et al. 2013) یک افزونه غیرمتمرکز از بیت­‌ کوین است که در آن، یک کاربر می­‌تواند بدون نیاز به نهاد­های واسط، معادل بیت­ کوین­‌های خود، زیروکوین بسازد و کاربران دیگر، می­‌توانند با پروتوکل دانایی صفر، زیروکوین ذخیره شده در بلاک­ چین را اعتبارسنجی و تراکنش­‌ها را تأیید کنند. در اینجا اثبات دانایی صفر از اتصال زیروکوین به کاربر محافظت می‌کند.

برای کاهش هزینه­‌های پروتکل که ناشی از پیچیدگی و حجم اثبات است، یک نوع دیگر از اثبات دانایی صفر به نام zk-SNARK توسط پروتکل زیروکش به کار گرفته شده است. این روش، حجم اثبات و کار محاسباتی را در مقایسه با پروتکل­‌های دانایی صفر ساده کاهش می­‌دهد. نسخه­‌ی شرکت­ محور اتریوم، یعنی Quorum نیز برای حریم خصوصی و ناشناس بودن تراکنش­‌ها از همین پروتکل استفاده می­‌کند.

محاسبات چندبخشی امن [29] (SMPC)

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

محاسبات چندبخشی امن می­‌تواند برای ذخیره­‌سازی داده­‌های خصوصی در یک سیستم غیرمتمرکز استفاده شوند. کیپ یک مدل اولیه برای توسعه­‌ی قرارداد­های هوشمند در بلاک­ چین­‌های عمومی است که قادر به ذخیره­‌سازی و استفاده­‌ی کاملا امن از داده­‌های محرمانه است. این مدل یک راه­‌حل ذخیره‌سازی برای حفظ حریم خصوصی در اتریوم ارائه می­‌دهد. در این سیستم، گره­‌های شبکه توأمان همکاری می­‌کنند تا بسته­‌های داده­‌ی غیرمتمرکز امن به نام کیپ را که از قراردادهای هوشمند در  اتریوم قابل دسترس هستند، فراهم کنند.

پروتکل­‌های تعهد­ همگن [30]

رویه­‌ی تعهد در بلاک­ چین، شکل دیجیتالی نامه­‌ی مهر­­و­موم­‌شده است که دو طرف در آن به یک بازی دومرحله­‌ای می­‌پردازند؛ ابتدا مرحله­‌ی تعهد و سپس مرحله­‌ی باز کردن. مرحله­‌ی اول شامل پنهان و لازم­‌الاجرا کردن تعهد از سوی طرف «الف» و ارسال آن به طرف «ب» است و مرحله­‌ی دوم، اثبات این است که طرف «الف»، طرف «ب» را در مرحله­‌ی تعهد فریب نداده است. یک تعهد مشخص در این پروتکل­‌ها باید دو شرط امنیتی را برآورده کند: پنهان­‌سازی و لازم­‌الاجرا کردن. اولی اطمینان از این است که گیرنده­‌ی پیام نمی­‌تواند قبل از مرحله­‌ی بازکردن آن را مشاهده کند و دومی تضمین می­‌کند که فرستنده بعد از مرحله­‌ی تعهد نمی­‌تواند پیام را تغییر دهد. در بلاک­ چین، استفاده از پروتکل تعهد پِدِرسن[31] و انواع آن رایج بوده است. برای مثال زیروکوین و مونرو از این رویه­‌ی تعهد استفاده می­‌کنند (Raikwar, Gligoroski, and Kralevska 2019).

انباشتگر[32]

انباشت‌گر یک تابع یک­‌طرفه است که بدون آشکار کردن هویت افراد در مجموعه­، اثبات عضویت ارائه می‌کند. این مفهوم در بلاک­ چین برای ساختن اصول رمزنگاری دیگر مانند تعهد، امضای حلقه و اثبات دانایی صفر می­‌تواند مورد استفاده قرار گیرد. درخت مرکل[33] که در بسیاری از رمز­ارز­ها به کار گرفته شده، در دسته­‌ی انباشتگر­های رمزنگارانه قرار دارد که ساختار داده­ی کارا برای آزمون کردن عضویت در مجموعه دارد (Raikwar, Glgoroski, and Kralevska 2019).

جمع­‌بندی

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

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

تحقیق و پژوهش در زمینه­‌ی بلاک­ چین و کاربرد­های آن هنوز در مراحل آغازین رشد خود است و مسائل بسیاری به ویژه در رابطه با رمزنگاری، حل­ نشده باقی مانده­‌اند:

  • سازش­‌پذیری الگوریتم­‌های رمزنگارانه­‌ی سبک­ وزن در بلاک­چین­‌ها: این شرط برای پیوند دو تکنولوژی اینترنت اشیا و بلاک­ چین الزامی است. در حال حاضر به جز IOTA، رمزارز دیگری بر مبنای الگوریتم­‌های رمزنگارانه­ سبک­ وزن وجود ندارد.
  • پیدا کردن روش­‌های کاراتر برای مقاومت در برابر انباشت غیرمنتظره­‌ی قدرت محاسباتی: پیش‌رفت­‌های سریع اخیر در نرخ هش[34]، مشکلاتی را برای سیستم­‌های مبتنی بر بلاک­ چین به وجود آورده است. برای مقابله با این پیش‌رفت­‌های شدید، برخی از توابع هش کنونی از ترکیب متوالی چندین تابع هش ایجاد شده­‌اند که این مکانیزم پیچیده­‌ی اثبات کار (PoW) فقط موجب اتلاف انرژی برق می­‌شود و خروجی مثبتی ندارد.
  • یافتن راه­‌حل برای تناقض میان طول عمر محدود الگوریتم­‌های رمزنگارانه و ویژگی جاودانگی و ضد­دست­کاری بودن بلاک­ چین: تمام الگوریتم­‌های رمزنگاری که در بلاک‌چین‌ها استفاده شده­‌اند، در حال حاضر به لحاظ قدرت محاسباتی، دارای امنیت هستند اما احتمال دارد که این الگوریتم­‌ها در آینده امنیت خود را از دست بدهند. بلاک‌چین باید بتواند در این موقعیت­‌ها نیز به ادامه­‌ی کار خود بپردازد.

 

Callas, Jon. 2007. ‘The Future of Cryptography’. Information Systems Security 16 (1): 15–22. https://doi.org/10.1080/10658980601051284.

Chaum, David. 1983. ‘BLIND SIGNATURES FOR UNTRACEABLE PAYMENTS.’ In Advances in Cryptology, 199–203. Plenum Press. https://doi.org/10.1007/978-1-4757-0602-4_18.

———. 1984. ‘Blind Signature System’. In Advances in Cryptology, 153–153. Springer US. https://doi.org/10.1007/978-1-4684-4730-9_14.

Conti, Mauro, Kumar E. Sandeep, Chhagan Lal, and Sushmita Ruj. 2018. ‘A Survey on Security and Privacy Issues of Bitcoin’. IEEE Communications Surveys and Tutorials 20 (4): 3416–52. https://doi.org/10.1109/COMST.2018.2842460.

Diffie, Whitfield, and Martin E. Hellman. 1976. ‘New Directions in Cryptography’. IEEE Transactions on Information Theory 22 (6): 644–54. https://doi.org/10.1109/TIT.1976.1055638.

Dwork, Cynthia, and Moni Naor. 1993. ‘Pricing via Processing or Combatting Junk Mail’. In Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 740 LNCS:139–47. Springer Verlag. https://doi.org/10.1007/3-540-48071-4_10.

Goldreich, Oded, and Yair Oren. 1994. ‘Definitions and Properties of Zero-Knowledge Proof Systems’. Journal of Cryptology 7 (1): 1–32. https://doi.org/10.1007/BF00195207.

Gupta, Anjula, Anjula Gupta, and Navpreet Kaur Walia. 2014. ‘Cryptography Algorithms: A Review’. International Journal of Engineering Development and Research 2 (2). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.674.7141.

Khalifa, Othman O., M. D.Rafiqul Islam, S. Khan, and Mohammed S. Shebani. 2004. ‘Communications Cryptography’. In 2004 RF and Microwave Conference, RFM 2004 – Proceedings, 220–23. https://doi.org/10.1109/rfm.2004.1411111.

Martínez, Víctor Gayoso, Luis Hernández-Álvarez, and Luis Hernández Encinas. 2020. ‘Analysis of the Cryptographic Tools for Blockchain and Bitcoin’. Mathematics 8 (1): 131. https://doi.org/10.3390/math8010131.

Miers, Ian, Christina Garman, Matthew Green, and Aviel D. Rubin. 2013. ‘Zerocoin: Anonymous Distributed e-Cash from Bitcoin’. Proceedings – IEEE Symposium on Security and Privacy, 397–411. https://doi.org/10.1109/SP.2013.34.

Preneel, Bart. 1999. ‘The State of Cryptographic Hash Functions’. In , 158–82. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48969-x_8.

Raikwar, Mayank, Danilo Gligoroski, and Katina Kralevska. 2019. ‘SoK of Used Cryptography in Blockchain’. IEEE Access 7 (October): 148550–75. https://doi.org/10.1109/access.2019.2946983.

Rivest, R, A Shamir, and D Wagner. 1996. ‘Time-Lock Puzzles and Timed-Release Crypto’. USA: Massachusetts Institute of Technology.

Rivest, Ronald L., Adi Shamir, and Yael Tauman. 2001. ‘How to Leak a Secret’. In Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2248:552–65. Springer Verlag. https://doi.org/10.1007/3-540-45682-1_32.

Tayal, Sandeep, Nipin Gupta, Pankaj Gupta, Deepak Goyal, and Monika Goyal. 2017. ‘A Review Paper on Network Security and Cryptography’. Advances in Computational Sciences and Technology 10 (5): 763–70. http://www.ripublication.com.

Wang, Licheng, Xiaoying Shen, Jing Li, Jun Shao, and Yixian Yang. 2019. ‘Cryptographic Primitives in Blockchains’. Journal of Network and Computer Applications 127: 43–58. https://doi.org/10.1016/j.jnca.2018.11.003.

 

[1] Cryptographic Hash Functions

[2] Digital Signature Schemes

[3] Zero-knowledge Proof

[4] Confidentiality

[5] Data Integrity

[6] Authentication

[7] Non-repudation

[8] Scalability

[9] Tamper-proof

[10] Anonymity

[11] Deterministic

[12] Preimage Resistance

[13] Second Preimage Resistance

[14] Avalanche Effect

[15] Message Digest

[16] Double-spending Attacks

[17] Application-Specific Integrated Circuit

[18] Oracle

[19] Multi-Signature

[20] Blind Signature

[21] Ring Signature

[22] Threshold Signature

[23] Linkabality

[24] Untraceability and Unlinkability

[25] Completeness

[26] Soundness

[27] Zerocoin

[28] Zerocach

[29] Secure Multi-Party Computation

[30] Homomorphic Commitments

[31] Pederson Commitment

[32] Accumulator

[33] Merkle Tree

[34] Hashrate