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

رمزنگاری چیست؟

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

رمزنگاری در بلاکچین چیست؟

رمزنگاری در فناوری بلاکچین برای اهداف مختلفی استفاده می‌شود:

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

دو جز کلیدی برای تبادل داده به شکل رمزنگاری وجود دارد:

  1. رمزگذاری که فرآیند تبدیل یک پیام متنی ساده به شکل رمزی است. اشخاص ثالث نمی‌توانند این پیام را بخوانند یا بفهمند. فرستنده پیام را برای انتقال ایمن، رمزگذاری می‌کند.
  2. رمزگشایی که فرآیند تبدیل یک پیام رمزی به یک پیام متنی ساده است. گیرنده، پیام را زمانی که آن را به صورت ایمن دریافت کند، رمزگشایی می‌نماید.

الگوریتمی که داده‌ها را رمزگذاری یا رمزگشایی می‌کند، سایفر (Cipher) نام دارد. یک نمونه سایفر ابتدایی، این است که هر حرف به رقم دیجیتالی تبدیل شود که نمایانگر موقعیت آن حرف در الفبا است. برای مثال، عدد ۱ به حرف «الف» اشاره دارد، عدد ۲ به حرف «ب» و عدد ۳۲ به حرف «ی» و غیره اشاره دارد. کد عددی «۰۲-۰۱» به کلمه «آب» اشاره دارد.

رمزگذاری واقعی از «آب» به «۰۲-۰۱» و رمزگشایی متعاقب آن از «۰۲-۰۱» به «آب» را یک کلید رمزنگاری انجام می‌دهد. کلید رمزنگاری، بخشی از داده‌هاست که پیام‌ها را بر اساس یک الگوریتم/ سایفر رمزگذاری و رمزگشایی می‌کند.

خوشبختانه، بلاکچین و دیگر سیستم‌های کامپیوتری مدرن از الگوریتم‌های رمزگذاری بسیار پیچیده‌تر و امن‌تری نسبت به مثال ساده ما استفاده می‌کنند. در ادامه، بیشتر به این موارد خواهیم پرداخت.

انواع اصلی رمزگذاری

سه نوع رمزگذاری/ رمزگشایی وجود دارد که سیستم‌های مدرن از آنها استفاده می‌کنند:

رمزگذاری متقارن

در این شکل از رمزگذاری از یک کلید هم برای رمزگذاری و هم برای رمزگشایی ارتباطات بین طرفین استفاده می‌شود. در مثال ساده قبلی، کلید نگاشت حروف به اعداد نیاز است تا «آب» را به «۰۲-۰۱» تبدیل کنیم و سپس «۰۲-۰۱» را به «آب» رمزگشایی کنیم.

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

رمزگذاری نامتقارن

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

در واقع، کلیدهای عمومی و آدرس‌های کیف پول، مفاهیمی هستند که درهم تنیده شده‌اند. در اکثر بلاکچین‌های عمومی مانند بیت کوین، آدرس کیف پول، نسخه برهم‌ریخته (Hash) کلید عمومی کاربر است. هنگامی‌که پیام به کیف پول می‌رسد، گیرنده از کلید خصوصی خود برای رمزگشایی و خواندن پیام استفاده می‌کند. کلید خصوصی تنها در اختیار گیرنده است و هیچ شخص دیگری ازجمله فرستنده و افراد دیگر داخل شبکه از آن خبر ندارند. جفت کلیدهای خصوصی-عمومی، رمزنگاری نامتقارن را به شکل امن‌تری از رمزنگاری در مقایسه با رمزنگاری متقارن، رمزنگاری تک کلیدی، تبدیل می‌کنند.

رمزگذاری تابع هش

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

در حال حاضر، تعدادی تابع هش استفاده می‌شوند که تنها برخی از آن‌ها (توابع هش رمزنگاری) برای مقاصد رمزنگاری امن هستند. برای مثال، بیت کوین از تابع SHA-256 استفاده می‌کند، درحالی‌که رمزگذاری هش اتریوم بر اساس KECCAK-256 است.

توابع هش رمزنگاری دارای تعدادی ویژگی هستند که آن‌ها را برای رمزگذاری ایمن، ایده‌آل می‌کند:

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

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

کارکرد رمزنگاری در بلاکچین

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

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

فرآیند هش همچنین در شبکه‌های اثبات کار بیت کوین برای استخراج بیت کوین استفاده می‌شود. استخراج به فرآیندی گفته می‌شود که گره‌های ماینر تراکنش‌ها را تائید می‌کنند. هنگامی‌که یک تراکنش در شبکه انجام می‌شود، ماینرها باید صحت آن را تائید کنند.

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

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

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

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

آیا قراردادهای هوشمند رمزنگاری می‌شوند؟

اکثر بلاکچین‌ها ماهیتی عمومی دارند؛ درنتیجه، هر شرکت‌کننده در شبکه می‌تواند به راحتی قراردادهای هوشمند را مشاهده کند. این نتیجه‌گیری نشان می‌دهد که قراردادهای هوشمند فاقد ویژگی کلیدی محرمانگی هستند. با توجه به این که قراردادهای هوشمند دارای محبوبیتی روزافزون هستند، رمزنگاری مبتنی بر الگوریتم‌های هش برای محافظت از داده‌های حساس به صورت گسترده استفاده می‌شود.

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

در ادامه، خلاصه‌ای از روش‌های رمزنگاری را معرفی می‌کنیم که معمولاً جنبه‌های مختلف بلاکچین از آن‌ها بهره‌برداری می‌کنند:

کاربرد انواع رمزنگاری (Cryptography) در بلاکچیننتیجه‌گیری

میان سه روش رمزنگاری تنها از روش‌های رمزگذاری نامتقارن و فرآیند هش در بلاکچین استفاده می‌شود. رمزگذاری متقارن به علت امنیت ضعیف و عدم کاربرد در برنامه‌های غیرمتمرکز به‌ندرت در بلاکچین‌ها استفاده می‌شود.

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

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

پلتفرم‌های محبوبی مانند بیت کوین و اتریوم از الگوریتم‌های هش با درجه بالا و ایمن مانندSHA-256  و KECCAK-256 استفاده می‌کنند. این الگوریتم‌های پیچیده تضمین می‌کنند که این بلاکچین‌ها جزو امن‌ترین شبکه‌های دیجیتال حال حاضر هستند.

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