معرفی علم رمزنگاری و بررسی کاربرد آن در بلاک چین
بلاک چین یکی از تکنولوژیهای در حال ظهور است که در چند سال اخیر در عنوان پژوهشهای بیشتری دیده میشود. بلاکچین، یک زنجیرهی متصل از بلوکهای داده است که اجازه میدهد بدون وجود یک قدرت مرکزی، ایجاد سوابق تراکنشها بر مبنای یک پروتکل اجماع توزیعشده، توسط اعضا مدیریت شود. این زنجیره با تولید و ذخیرهی این بلوکها، غیرقابل تغییر میشود. به عبارت دیگر گرفتن یک خلاصه از وضعیت کل زنجیره در هر زمان مشخص ممکن است. همچنین طرفهای تراکنش باید بتوانند به طریقی ناشناس یا شِبهِ ناشناس، ثبت یک تراکنش مشخص را تأیید نمایند.
یکی از هستههای اصلی فناوری بلاک چین علم رمزنگاری است. هدف از این علم، ساختن قواعدیست که باعث شود کاربران بتوانند در یک فضای ناامن با حفظ حریم خصوصی و اصالت دادههایشان، با یکدیگر ارتباط برقرار کنند. این علم در موضوعات بسیاری مثل رأیگیری الکترونیکی، پولهای دیجیتال و مزایدههای امن، کاربردهای فراوانی دارد.
در این تحقیق، نخست به صورت اجمالی به معرفی، اهمیت و اهداف علم رمزنگاری میپردازیم. سپس سعی میکنیم که اساسیترین مفاهیم رمزنگاری را که برای درک تکنولوژی بلاک چین و پتانسیلهای آن لازم است، توضیح دهیم. این مفاهیم شامل توابع هش (درهمسازی) رمزنگاریشده[۱]، امضاهای دیجیتال[۲]، پروتکلهای دانایی صفر[۳] و چند مورد دیگر است که اغلب آنها مربوط به امنیت، قابلیت اطمینان و حریم خصوصی بلاکچینها هستند. در نهایت، به سه حوزه برای مطالعهی بیشتر در زمینهی چالشهای تکنولوژی بلاک چین اشاره شده که با پتانسیلهای علم رمزنگاری قابل حل هستند.
معرفی علم رمزنگاری
با افزایش جهانیسازی و رشد سریع اینترنت و ارتباطات دیجیتال، جریان عظیمی از اطلاعات در شبکههای کامپیوتری میان منابع مختلف، حرکت میکند. این اطلاعات هرچه باشند باید در اوج محرمانهگی و امنیت، ذخیره و جابهجا شوند. برای مثال کسبوکارهای الکترونیکی به رویههای امضای دیجیتال قانونی و پروتکلهای پرداخت الکترونیکی امن نیاز دارند. علم رمزنگاری راهی برای رسیدن به این اهداف است.
رمزنگاری، کاربرد ریاضیات در رمزگذاری و رمزگشایی است. رمزنگاری میتواند ضعیف و یا قوی باشد و به طور کلی قدرت آن با زمان و منابع مورد نیاز برای گشایش رمز و بازیابی پیام معنادار سنجیده میشود. اما تا چه حد قوی؟ برای یک رمزگاری قوی، با داشتن تمام قدرت محاسباتی و زمان موجود، کشف رمز تا پایان جهان ممکن نیست.
اما چرا باید دادهها پنهان شوند؟
- اظهارات بانکی و اسناد مالی
- اعداد مربوط به کارت اعتباری و حسابهای بانکی
- مدارک پزشکی و درمانی
- دستورات نظامی و اطلاعات امنیت ملی
- اطلاعات شخصی
- نامههای شخصی
در هر یک از موارد بالا باید محرمانهگی[۴] و اصالت دادهها حفظ شود که دو وظیفهی دیرینهی علم رمزنگاری هستند. در رمزنگاری، هر دو الگوریتم رمزنگاری و رمزگشایی به کلید مخفی نیاز دارند که میتواند یک عدد با ویژگی خاص و یا یک توالی از بیتها باشد. به طور کلی دو سیستم رمزنگاری وجود دارد:
- سیستم رمرنگاری کلید خصوصی که در آن، یک کلید مشخص برای رمزنگاری و رمزگشایی به کار میرود. از این رو این سیستمها را متقارن مینامند. رویههای سنتی از این نوع بودهاند.
- سیستمهای رمزنگاری کلید عمومی که در آنها کلیدهای رمزگذاری و رمزگشایی متفاوت هستند. در این سیستمها میتوانید یک کلید عمومی را منتشر کنید، که با آن هر کسی یک پیام را برای شما رمزگذاری میکند و سپس فقط شما از کلید خصوصی مربوطه برای رمزگشایی آن پیام مطلع هستید.
همانطور که اشاره شد حفظ محرمانهگی تنها یکی از اهداف رمزنگاری است. این علم راهحلهایی برای مسایل دیگر دارد:
- یکپارچگی دادهها[۵]: دریافتکنندهی پیام باید قادر باشد تا از عدم تغییر اطلاعات در حین انتقال اطمینان حاصل کند.
- احراز هویت[۶]: دریافتکنندهی پیام باید بتواند منشأ پیام را بررسی و تأیید نماید. یعنی فرد دیگری نتواند پیامی را به دریافتکننده بفرستد و تظاهر کند منشأ اطلاعات است.
- عدم تکذیب[۷]: فرستنده در آینده نباید بتواند انکار کند که وی پیام را فرستاده است.
در عصر حاضر جریان اطلاعات و ارتباطات دخالت زیادی در رشد و توسعهی اقتصادی و اجتماعی داشته است. با سیطرهی اینترنت و ارتباطات دیجیتال و افزایش اهمیت برقراری امنیت در این شبکههای ارتباطی، در دو دههی اخیر مطالعات بسیاری در این زمینه صورت گرفته که در اکثر آنها امنیت داده و حریم خصوصی دو موضوع مورد توجه بودهاند. (Khalifa et al. 2004)(Tayal et al. 2017)(Callas 2007)(Gupta, Gupta, and Walia 2014)
رمزنگاری و بلاک چین
از اوایل دههی ۸۰ میلادی، طراحی پول الکترونیکی همواره یکی از موضوعات اصلی پژوهش در زمینهی رمزنگاری بوده است. ریشههای استفاده از رمزنگاری برای انجام تراکنشهای مالی امن و خصوصی در سیستم پول الکترونیکی دیوید چائوم در دههی ۹۰ یافت میشوند (Chaum 1983). چندین سال بعد یک مجموعه از برنامهنویسان و رمزنگاران موسوم به سایبرپانک چندین پروژهی رمزنگاری متن باز با مالکیت آزاد را مطرح و پیادهسازی کردند. این پروژهها شامل hashcash توسط آدام بک، b-money توسط وی دای و bitgold توسط نیک سزابو تا حدی پیشگام بودند که بعدها تبدیل به پایه و اساس دو رمزارز مشهور (بیت کوین و اتریوم) شدند (Raikwar, Gligoroski, and Kralevska 2019).
اما پول بدون نهاد واسط مورد اعتماد، یک چالش بود تا این که بیت کوین در سال ۲۰۰۹ توسط ساتوشی ناکاموتو ابداع شد. از آن زمان تاکنون، چه از سوی صنایع و چه مجامع علمی، توجه بسیاری را به خود معطوف کرده است. هستهی اصلی بیت کوین، فناوری بلاکچین است و بنیان های بلاک چین که راهحلهای غیرمتمرکز امن و قابل اطمینان فراهم میکند، بر رمزنگاری و مفاهیم آن قرار گرفته است. به عبارتی موفقیت بلاکچین به موفقیت مالی بیت کوین گره خورد.
بلاک چین یک دفترکل توزیعشده در یک شبکهی فردبهفرد است که گرههای آن به صورت جمعی به برخی پروتکلهای اجماعی پایبند هستند. این دفترکل، یک لیستِ همواره در حال رشد از دادههای ثبتشده در قالب بلوکهایی از تراکنشهای معتبر، میسازد که توسط تمام گرههای حاضر تأیید میشود و برای همهی گرههای شبکه، قابل دستیابی است.
بلاکچین به عنوان یک تکنولوژی متحولکننده همچنان با چالشهایی مثل بهبود مستمر امنیت و حریم خصوصی، مدیریت کلید، مقیاسپذیری[۸]، تحلیل حملههای جدید، مدیریت قرارداد هوشمند و معرفی تدریجی ویژگیهای رمزنگارانهی جدید در بلاکچینهای موجود، مواجه است (Raikwar, Gligoroski, and Kralevska 2019).
اغلب پژوهشها در زمینهی بلاک چین، بر شناسایی زمینههای بهبود در فرآیندها و رویههای موجود متمرکز هستند، رویهها در صنایع وابسته به واسطهها مثل بانکداری، مالی، مشاور املاک، بورس، بیمه، سیستم حقوقی و قضایی، بهداشت و درمان و غیره. مطالعاتی نیز دربارهی بلاک چین و مفاهیم رمزنگارانهی آن وجود دارند که در آنها به مرور و بررسی مفاهیمی چون امنیت، حریم خصوصی و اجماع پرداخته شده است (Wang et al. 2019)(Conti et al. 2018).
الگوریتمهای رمزنگارانه در بلاک چین
اصول اولیه و تکنیکهای رمزنگاری در بلاک چین را میتوان به روشهای مختلفی طبقهبندی نمود. میتوان آنها را بر اساس کاربرد در بلاک چین دستهبندی کرد. مثلا مفاهیمی که به خوبی در بلاکچین استفاده میشوند و مفاهیمی که پتانسیل بالایی برای استفاده در بلاک چین دارند، اما هنوز پیادهسازی نشدهاند. از طرف دیگر، میتوان آنها را در دو دستهی پروتوکلهای اصلی و اختیاری قرار داد. دستهی اول شامل توابع هش رمزنگاری شده و امضاهای دیجیتال استاندارد، که برای اطمینان از بلاک چین به عنوان یک دفترکل توزیعشده با قابلیت تأیید برای عموم، ضد دستکاری بودن[۹] و اجماع قابل دستیابی، ضروری هستند. دستهی دوم، شامل امضاهای دیجیتال خاص (امضاهای حلقه)، پروتوکلهای دانایی صفر، تعهدات و انباشتگرها است که بیش از همه برای ارتقای حریمخصوصی و ناشناس بودن[۱۰] در بلاک چین استفاده میشوند. همچنین اصول رمزنگاری دیگر مانند اشتراکگذاری راز و انتقال فراموشکار، به صورت غیرمستقیم در ساخت مفاهیمی چون تعهدات و اثبات دانایی صفر مورد استفاده قرار گرفتهاند (Wang et al. 2019).
در این قسمت به معرفی مفاهیم رمزنگاری بر اساس کاربرد آنها در بلاکچین خواهیم پرداخت و سعی شده است که مفاهیم مهمتر، با تفصیل بیشتری شرح داده شوند.
توابع هش رمزنگاریشده
تابع درهمسازی رمزنگارانه، یک دادهی ورودی با اندازهی دلخواه را گرفته و آن را بر یک رشتهی بیتی با اندازهی ثابت مینگارد. این توابع، ویژگیهایی دارند: ۱) قطعی[۱۱] هستند، یعنی دادهی ورودی یکسان، همواره هش یکسانی دارد. ۲) مقاومت پیشنمایش[۱۲]، یعنی برای یک خروجی معین (y)، بسیار بسیار دشوار است تا یک دادهی ورودی (a) یافت که H(a)=y. به عبارت دیگر تولید یک دادهی ورودی (پیام) که یک مقدار هش مشخص را به دست دهد ناشدنی است. این مفهوم مربوط به یکطرفه بودن تابع هش است. ۳) مقاومت تصادم، یعنی بسیار بسیار دشوار است تا دو دادهی ورودی (الف و ب) را یافت که خروجی یکسانی دارند. این جفت، «تصادم هش رمزنگاریشده» نام دارد. این ویژگی ملزم میکند که مقدار هش، حدقل دوبرابرِ حداقل مقدار هش لازم برای برآورده شدن مقاومت پیشنمایش باشد. ۴) مقاومت پیشنمایش دوم[۱۳]، یعنی برای یک ورودی a و یک خروجی y مشخص، پیدا کردن ورودی دوم b که H(b)=y دشوار است. گاهی به این ویژگی، مقاومت تصادم ضعیف میگویند. ۵) اثر بهمن[۱۴]، یعنی یک تغییر کوچک در دادهی ورودی باید مقدار هش را به شدت تغییر دهد تا مقدار هش جدید با مقدار هش قبلی همبستگی نداشته باشد. ۶) برای هر دادهی ورودی مشخص، محاسبهی مقدار هش، سریع انجام شود (Martínez, Hernández-Álvarez, and Encinas 2020; Raikwar, Gligoroski, and Kralevska 2019).
توابع هش رمزنگاریشده برای چندین هدف در بلاکچین استفاده میشوند: ۱) حل معماهای رمزنگاری (اثبات کار در بیتکوین) ۲) تولید آدرس (برای کلیدهای عمومی و خصوصی) ۳) کاهش اندازهی آدرسهای عمومی ۴) چکیدههای پیام[۱۵] در امضاها.
کارکرد اصلی اثبات کار این است که یک گروه غیرمتمرکز بتوانند بدون اعتماد قبلی، بر سر یک سابقهی تراکنش توافق کنند و بتوانند مانعی در برابر حملات دوبار خرج کردن[۱۶] شوند. گرچه ایدهی استفاده از توابع هش به عنوان یک ابزار اثبات کار برای اولین بار در سال ۱۹۹۷ مطرح شد (زمانی که آدام بک از مفهوم هشکش استفاده کرد تا مانع از حملات DDoS شود)، اما با ظهور بیت کوین تبدیل به یک مفهوم کلیدی شد. مشهورترین توابع هش رمزنگاریشده در بلاکچین، مجموعهی SHA-2 هستند (به ویژه SHA-256 که خروجیهای ۲۵۶ بیتی تولید میکند). SHA، یک استاندارد پردازش اطلاعات فدرال آمریکا است و اغلب الگوریتمهای این مجموعه توسط آژانس امنیت ملی ایالت متحده طراحی شدهاند. در بیت کوین نیز از همین توابع استفاده شده است. خوانندگان علاقهمند به مطالعه در زمینهی توابع هش (درهمسازی) رمزنگاریشده به (Preneel 1999) رجوع نمایند.
در تاریخ ده سالهی بلاکچین، مشاهده میشود که فعالیتهای پژوهشی و نوآورانه در زمینهی توابع هش رمزنگاریشده به صورت مستقیم با روندها در بلاک چین مرتبط بوده است. یکی از این روندها، گرایش به ساختن پیادهسازیهای سختافزاری ایسیک[۱۷] (ASIC) SHA-256d بوده که قادر هستند بلوکها را چندین مرتبه سریعتر از CPU و GPU معمولی استخراج نماید. روشهای استخراج پیشرفته، برخی از موجودیتها را قادر میسازد با سرعت استخراج بسیار بیشتری ادامه دهند که این موجب میشود احتمال حملهی ۵۱ درصدی بیشتر شود. لایت کوین که یکی از انشعابات اولیهی بیت کوین در سال ۲۰۱۱ است، بهجای SHA-256d از تابع Scrypt استفاده میکند تا به خاطر عملی نبودن پیادهسازی آن در سختافزار ASIC، فرصتی ایجاد شود تا صاحبان کامپیوترها و GPU بخش قابلتوجهی از جامعهی استخراج را تشکیل دهند. اتریوم (تابع Ethash)، کوارک کوین (تابع Equihash) و دارککوین (تابع X11) از توابع هش رمزنگاریشده دیگری استفاده کردند تا استخراج با ASIC کارایی کمتری داشته باشد (Wang et al. 2019).
رویهی امضا
رویههای امضای دیجیتال، یکی دیگر از مفاهیم ضروری در بلاکچینها هستند. ایدهی امضای دیجیتال در رمزنگاری در سال ۱۹۷۶ توسط دیفی و هِلمن شکل گرفت، وقتی که آنها رمزنگاری کلیدعمومی را توسعه میدادند (Diffie and Hellman 1976). امضای دیجیتال استاندارد، یک رویهی ریاضی بر مبنای رمزنگاری کلید عمومی است که کدهای کوتاهی را به نام امضای پیامهای دیجیتال با استفاده از یک کلید خصوصی تولید میکند و در همان حال، این امضا با استفاده از کلید عمومی مربوطه، قابل تأیید است. رویهی امضا برای چند هدف در بلاک چین استفاده میشود: احراز هویت فرستنده، فراهم کردن یکپارچگی تراکنشها و عدم تکذیب فرستنده، که به این سه در قسمت قبل اشاره شده است.
رویههای امضای دیجیتال باید غیرقابلجعل باشند، یعنی کسی نتواند یک امضای معتبر روی یک پیام را جعل کند، حتی اگر به اوراکل[۱۸] امضا که خدمات آن را فراهم میکند، دسترسی داشته باشد.
امضای دیجیتال یکی از مهمترین اصول رمزنگارانه است که با آن، بلاک چین برای عموم قابل تأیید و اجماع در آن قابل دستیابی است. بلاکچینها، برای داشتن ویژگیهای دیگر مثل حریم خصوصی و ناشناس بودن از رویههای امضای پیشرفتهتری استفاده میکنند. این رویهها شامل امضای چندگانه[۱۹]، امضای کور[۲۰]، امضای حلقه[۲۱] و امضای آستانه[۲۲] هستند.
در رویهی امضای چندگانه، گروهی از کاربران یک پیام واحد را امضا میکنند. در شبکهی بلاک چین، وقتی یک تراکنش، امضای یک گروه از اعضا را نیاز دارد، استفاده از این رویه دارای مزیت است. پلتفرمهای Openchain و MultiChain از رویهی امضای چندگانه M-of-N استفاده میکنند که ریسک سرقت را با تحمل به خطر افتادن حداکثر M-1 کلید رمزنگاری، کاهش میدهند.
در رویهی امضای کور (Chaum 1984)، امضاها در پروتکلهایی مربوط به حریم خصوصی به کار میروند که در آنها امضاکننده و فرستندهی پیام (تراکنش در بلاک چین)، موجودیتهای متفاوتی هستند. امضای کور، در شبکهی توزیعشده BlindCoin به کار رفته است تا ویژگی غیرقابل جدا کردن تراکنشها برقرار شود. این رویه همچنین برای ویژگی ناشناس بودن در تراکنشهای بیت کوین مورد آزمایش قرار گرفته است (Raikwar, Gligoroski, and Kralevska 2019). ناشناس بودن همواره در سیستمهای اطلاعاتی به ویژه پرداخت الکترونیکی مورد نیاز است. بیت کوین به دلیل قابلیت اتصال[۲۳] تراکنشها، تنها نام مستعار را ایجاد میکند. به هرحال از تمام این انواع، فقط امضای حلقه برای ناشناس بودن در فناوری بلاک چین استفاده شده است.
مفهوم امضای حلقه در سال ۲۰۰۱ توسط ریوست و همکاران مطرح شد (R. L. Rivest, Shamir, and Tauman 2001). این امضا از پروتکلی استفاده میکند که یک کاربر میتواند با استفاده از آن از طرف یک گروه پیامها را امضا کند، بدون اینکه هویت خود را آشکار کند. سالها قبل چائوم مفهوم امضای گروهی را مطرح کرده بود که اجازه میداد عضوی از گروه به صورت ناشناس یک پیام را از طرف گروه امضا کند، ولی با این محدودیت که مدیرِ طراحیشده برای گروه میتوانست درصورت لزوم امضاکننده را شناسایی کند. اما در رویهی امضای حلقه، امضاکننده میتواند گروه را بدون اجازهی اعضای دیگر تشکیل دهد.
علاوه بر غیرقابل جعل بودن، ناشناس بودن بیقیدوشرط یک شرط امنیتی دیگر برای انجام درست امضای حلقه به حساب میآید. ناشناس بودن، شامل دو ویژگی غیرقابل ردیابی بودن و غیرقابل جدا کردن [۲۴] است. اولی یعنی کسی نمیتواند امضاکننده را شناسایی کند و دومی یعنی هیچکس نمیتواند تشخیص دهد که دو امضای مشخص توسط یک امضاکننده ایجاد شده است (Wang et al. 2019). تکنولوژی CryptoNote یک رویهی امضای حلقه را به کار میگیرد تا پرداختهای ناشناس را به وسیلهی رمزارزها انجام دهد.
امضای آستانه، یک رویهی امضا است که در آن t نفر از n طرفی که هریک بخشی از کلید رمز را دارند، روی هر پیام امضا میکنند. چون اعضا، امضا را به صورت مستقیم از این بخشهای کلید رمز میسازند، این کلید هیچگاه در کل رویه آشکار نمیشود. CoinParty یک رویهی امضای آستانه را برای ترکیب چندطرفهی بیتکوینها استفاده میکند. دو رویهی پرکاربرد در بلاک چینها ECDSA (الگوریتم امضای دیجیتال منحنی بیضوی) و EdDSA (الگوریتم امضای دیجیتال منحنی ادواردز) هستند، اولی در بیت کوین و اِتریوم و دومی در لیبرا برای ایجاد آدرس حساب جدید مورد استفاده قرار گرفته است.
اثبات دانایی صفر
در پروتکلهای دانایی صفر، دو طرف مشارکت میکنند. اثباتکننده، بیانیهای را مدعی میشود که درستی و اعتبار آن را بدون آشکار کردن هیچگونه اطلاعاتی غیر از همان بیانیه برای تأییدکننده اثبات میکند، به عبارت دیگر بیانیه فقط باید شامل این ادعا باشد که اثباتکننده، دانایی مشخص را دارد. اما چیزی دربارهی این دانش در بیانیه وجود ندارد. بدیهی است که اثبات دانایی دربارهی اطلاعات مشخص بهسادگی با آشکار کردن آن اطلاعات انجام میشود، اما چالش اصلی، اثبات دانایی بدون آشکار شدن آن اطلاعات یا اطلاعات اضافی دیگر است (Goldreich and Oren 1994).
اثبات دانایی صفر باید سه ویژگی داشته باشد:
- کامل بودن[۲۵]: اگر بیانیه (ادعا) درست باشد، تأییدکنندهی صادق توسط اثباتکننده صادق نسبت به آن متقاعد میشود.
- صحت[۲۶]: اگر ادعا نادرست باشد، هیچ متقلبی نمیتواند تأییدکننده صادق را متقاعد کند که آن ادعا درست است، مگر با احتمالی ناچیز. همچنین با تکرار پروتکل، احتمال موفقیت متقلب کمتر میشود و با اولین اشتباه اثباتکننده میتوان متقلب را شناسایی نمود.
- دانایی صفر: اگر ادعا درست باشد، تأییدکننده، جز این حقیقت که ادعا درست است، هیچ اطلاعات دیگری به دست نمیآورد.
یکی از کاربردهای اثبات دانایی صفر در پروتکلهای رمزنگاری، ایجاد رفتار صادقانه در عین حفظ حریم خصوصی است. به دلیل ویژگی صحت، کاربر باید صادقانه عمل کند تا بتواند یک اثبات معتبر ارائه دهد و به دلیل دانایی صفر میداند که در فرآیند ارائهی اثبات، حریم خصوصی خود را به خطر نمیاندازد.
در بلاکچینها، برای تضمین اعتبار تراکنشها و در عین حال پنهان ماندن جزییات تراکنش، استفاده از این پروتکلها مطرح شده است. زیروکوین[۲۷] یا زیروکش[۲۸] برای تراکنشهای غیرقابل ردیابی و غیرقابل جداسازی (و در کل ناشناس) از پروتکلهای دانایی صفر استفاده میکنند. زیروکوین (Miers et al. 2013) یک افزونه غیرمتمرکز از بیت کوین است که در آن، یک کاربر میتواند بدون نیاز به نهادهای واسط، معادل بیت کوینهای خود، زیروکوین بسازد و کاربران دیگر، میتوانند با پروتوکل دانایی صفر، زیروکوین ذخیره شده در بلاک چین را اعتبارسنجی و تراکنشها را تأیید کنند. در اینجا اثبات دانایی صفر از اتصال زیروکوین به کاربر محافظت میکند.
برای کاهش هزینههای پروتکل که ناشی از پیچیدگی و حجم اثبات است، یک نوع دیگر از اثبات دانایی صفر به نام zk-SNARK توسط پروتکل زیروکش به کار گرفته شده است. این روش، حجم اثبات و کار محاسباتی را در مقایسه با پروتکلهای دانایی صفر ساده کاهش میدهد. نسخهی شرکت محور اتریوم، یعنی Quorum نیز برای حریم خصوصی و ناشناس بودن تراکنشها از همین پروتکل استفاده میکند.
محاسبات چندبخشی امن [۲۹] (SMPC)
این مفهوم از رمزنگاری که در بلاک چین استفاده شده اجازه میدهد تا طرفین با یکدیگر به شیوهای عمل کنند که هیچ طرف واحدی به تمام دادهها دسترسی نداشته باشد. ایدهی اصلی این رویه، محاسبهی توأمان یک تابع توسط طرفین با ورودیهایشان و بدون آشکار شدن آن ورودیها است. برای مثال یک گروه از مردم، میتوانند مقدار حقوق متوسط گروه را بدون آشکار شدن حقوقهای شخصی حقیقی محاسبه نمایند.
محاسبات چندبخشی امن میتواند برای ذخیرهسازی دادههای خصوصی در یک سیستم غیرمتمرکز استفاده شوند. کیپ یک مدل اولیه برای توسعهی قراردادهای هوشمند در بلاک چینهای عمومی است که قادر به ذخیرهسازی و استفادهی کاملا امن از دادههای محرمانه است. این مدل یک راهحل ذخیرهسازی برای حفظ حریم خصوصی در اتریوم ارائه میدهد. در این سیستم، گرههای شبکه توأمان همکاری میکنند تا بستههای دادهی غیرمتمرکز امن به نام کیپ را که از قراردادهای هوشمند در اتریوم قابل دسترس هستند، فراهم کنند.
پروتکلهای تعهد همگن [۳۰]
رویهی تعهد در بلاک چین، شکل دیجیتالی نامهی مهرومومشده است که دو طرف در آن به یک بازی دومرحلهای میپردازند؛ ابتدا مرحلهی تعهد و سپس مرحلهی باز کردن. مرحلهی اول شامل پنهان و لازمالاجرا کردن تعهد از سوی طرف «الف» و ارسال آن به طرف «ب» است و مرحلهی دوم، اثبات این است که طرف «الف»، طرف «ب» را در مرحلهی تعهد فریب نداده است. یک تعهد مشخص در این پروتکلها باید دو شرط امنیتی را برآورده کند: پنهانسازی و لازمالاجرا کردن. اولی اطمینان از این است که گیرندهی پیام نمیتواند قبل از مرحلهی بازکردن آن را مشاهده کند و دومی تضمین میکند که فرستنده بعد از مرحلهی تعهد نمیتواند پیام را تغییر دهد. در بلاک چین، استفاده از پروتکل تعهد پِدِرسن[۳۱] و انواع آن رایج بوده است. برای مثال زیروکوین و مونرو از این رویهی تعهد استفاده میکنند (Raikwar, Gligoroski, and Kralevska 2019).
انباشتگر[۳۲]
انباشتگر یک تابع یکطرفه است که بدون آشکار کردن هویت افراد در مجموعه، اثبات عضویت ارائه میکند. این مفهوم در بلاک چین برای ساختن اصول رمزنگاری دیگر مانند تعهد، امضای حلقه و اثبات دانایی صفر میتواند مورد استفاده قرار گیرد. درخت مرکل[۳۳] که در بسیاری از رمزارزها به کار گرفته شده، در دستهی انباشتگرهای رمزنگارانه قرار دارد که ساختار دادهی کارا برای آزمون کردن عضویت در مجموعه دارد (Raikwar, Glgoroski, and Kralevska 2019).
جمعبندی
هدف از این مطالعه، آشنایی با مفاهیم رمزنگاری در بلاکچین و شناسایی مسائل مختلف در این حوزه بود. فناوری بلاک چین، قابلیت نفوذ در بسیاری از زمینه ها را (بانکداری و مالی، بیمه، سلامت، آموزش، صنایع، کشاورزی و بسیاری دیگر) اثبات کرده و همچنین در بسیاری از کاربردهای نسل بعد مانند شبکههای هوشمند، اینترنت اشیا، شبکهی وسایل نقلیه، مدیریت سیستمهای سلامت و شهر هوشمند مجسم شده است. از این رو، همچنان به یک روش مناسب برای انتخاب تکنیکهای رمزنگاری در راهحلهای بلاک چین که تا به حال به کار گرفته شده و یا در آینده به کار خواهند رفت، نیاز دارند.
بسیاری از مطالعات اخیر در زمینهی بلاک چین، دربارهی موارد استفاده از این تکنولوژی بوده و مطالعات کمی با موشکافی به بررسی مفاهیم رمزنگارانهی مورد استفاده در بلاک چین پرداختهاند. یک مطالعهی جامع دربارهی اصول اولیهی رمزنگاری در بلاک چین، برای فهم عمیق از امنیت و حریم خصوصی در سیستمهای مبتنی بر بلاک چین اهمیت بسیاری دارد.
تحقیق و پژوهش در زمینهی بلاک چین و کاربردهای آن هنوز در مراحل آغازین رشد خود است و مسائل بسیاری به ویژه در رابطه با رمزنگاری، حل نشده باقی ماندهاند:
- سازشپذیری الگوریتمهای رمزنگارانهی سبک وزن در بلاکچینها: این شرط برای پیوند دو تکنولوژی اینترنت اشیا و بلاک چین الزامی است. در حال حاضر به جز IOTA، رمزارز دیگری بر مبنای الگوریتمهای رمزنگارانه سبک وزن وجود ندارد.
- پیدا کردن روشهای کاراتر برای مقاومت در برابر انباشت غیرمنتظرهی قدرت محاسباتی: پیشرفتهای سریع اخیر در نرخ هش[۳۴]، مشکلاتی را برای سیستمهای مبتنی بر بلاک چین به وجود آورده است. برای مقابله با این پیشرفتهای شدید، برخی از توابع هش کنونی از ترکیب متوالی چندین تابع هش ایجاد شدهاند که این مکانیزم پیچیدهی اثبات کار (PoW) فقط موجب اتلاف انرژی برق میشود و خروجی مثبتی ندارد.
- یافتن راهحل برای تناقض میان طول عمر محدود الگوریتمهای رمزنگارانه و ویژگی جاودانگی و ضددستکاری بودن بلاک چین: تمام الگوریتمهای رمزنگاری که در بلاکچینها استفاده شدهاند، در حال حاضر به لحاظ قدرت محاسباتی، دارای امنیت هستند اما احتمال دارد که این الگوریتمها در آینده امنیت خود را از دست بدهند. بلاکچین باید بتواند در این موقعیتها نیز به ادامهی کار خود بپردازد.
Callas, Jon. 2007. ‘The Future of Cryptography’. Information Systems Security ۱۶ (۱): ۱۵–۲۲. https://doi.org/10.1080/10658980601051284.
Chaum, David. 1983. ‘BLIND SIGNATURES FOR UNTRACEABLE PAYMENTS.’ In Advances in Cryptology, ۱۹۹–۲۰۳. Plenum Press. https://doi.org/10.1007/978-1-4757-0602-4_18.
———. ۱۹۸۴. ‘Blind Signature System’. In Advances in Cryptology, ۱۵۳–۱۵۳. 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 ۲۰ (۴): ۳۴۱۶–۵۲. https://doi.org/10.1109/COMST.2018.2842460.
Diffie, Whitfield, and Martin E. Hellman. 1976. ‘New Directions in Cryptography’. IEEE Transactions on Information Theory ۲۲ (۶): ۶۴۴–۵۴. 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), ۷۴۰ LNCS:139–۴۷. 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 ۷ (۱): ۱–۳۲. 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 ۲ (۲). 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 ۲۰۰۴ RF and Microwave Conference, RFM 2004 – Proceedings, ۲۲۰–۲۳. 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 ۸ (۱): ۱۳۱. 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, ۳۹۷–۴۱۱. https://doi.org/10.1109/SP.2013.34.
Preneel, Bart. 1999. ‘The State of Cryptographic Hash Functions’. In , 158–۸۲. 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 ۷ (October): 148550–۷۵. 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), ۲۲۴۸:۵۵۲–۶۵. 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 ۱۰ (۵): ۷۶۳–۷۰. 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 ۱۲۷: ۴۳–۵۸. https://doi.org/10.1016/j.jnca.2018.11.003.
[۱] Cryptographic Hash Functions
[۲] Digital Signature Schemes
[۳] Zero-knowledge Proof
[۴] Confidentiality
[۵] Data Integrity
[۶] Authentication
[۷] Non-repudation
[۸] Scalability
[۹] Tamper-proof
[۱۰] Anonymity
[۱۱] Deterministic
[۱۲] Preimage Resistance
[۱۳] Second Preimage Resistance
[۱۴] Avalanche Effect
[۱۵] Message Digest
[۱۶] Double-spending Attacks
[۱۷] Application-Specific Integrated Circuit
[۱۸] Oracle
[۱۹] Multi-Signature
[۲۰] Blind Signature
[۲۱] Ring Signature
[۲۲] Threshold Signature
[۲۳] Linkabality
[۲۴] Untraceability and Unlinkability
[۲۵] Completeness
[۲۶] Soundness
[۲۷] Zerocoin
[۲۸] Zerocach
[۲۹] Secure Multi-Party Computation
[۳۰] Homomorphic Commitments
[۳۱] Pederson Commitment
[۳۲] Accumulator
[۳۳] Merkle Tree
[۳۴] Hashrate