آنچه در این مقاله میخوانید
آیا تاکنون به این مسئله که معاملات رمزارزی چگونه در امنیت انجام میگیرند، فکر کردهاید؟ چه عاملی سبب شده تا قیمت ارزهای دیجیتالی به صورت کاملا ایمن در میان تریدرها رد و بدل شوند؟! چگونه میتوان بدون نیاز به یک نهاد واسطهای، مبادلات رمزارزی را انجام داد و مطمئن شد که دارایی مورد نظر حتما به حساب مقصد انتقال مییابد؟ پاسخ کلیه این سوالات به مفهوم کلید خصوصی و عمومی در رمزارزها گره خورده است. در حقیقت کلید خصوصی و عمومی را میتوان یکی از مفاهیم مهم موجود در دنیای کریپتوکارنسی به شمار آورد که اگر کاربری اطلاعات چندان زیادی در ارتباط با آنها نداشته باشد ممکن است به درک درستی از نحوه عملکرد شبکههای بلاکچینی و همچنین تراکنشهای رمزارزی دست پیدا نکند.
اگر میخواهید بدانید که یک کاربر چگونه میتواند در یک بستر ایمن، رمزارزهای خود را خرج کند یا این که امکان بازیابی کلید عمومی از خصوصی و بالعکس وجود دارد یا خیر، تا انتهای این مقاله از بلاگ کریپتوباز با ما همراه باشید تا علاوه بر دریافت پاسخ سوالات یاد شده، به طور جامعتر با مفهوم کلید خصوصی و عمومی در رمزارزها آشنا شوید.
منظور از کلید خصوصی و عمومی در رمزارزها چیست؟
کلید (Key) در اصل دنبالهای تصادفی از نمادها بوده که یا صرفا در اختیار صاحب کیف پول است یا در دسترس عموم قرار میگیرد. به طور کلی، منظور از کلید خصوصی و عمومی در رمزارزها به رمزگشایی پیامهای رمزنگاری شده با استفاده از الگوریتمهای ریاضی در روش رمزنگاری (Cryptography) مورد استفاده قرار میگیرند، مربوط میشود؛ اما برای آن که به دید روشنی از مفهوم کلید خصوصی و عمومی در رمزارزها دست پیدا کنیم، ضرورت دارد که هر یک از این کلیدها را به طور مجزا و مستقل مورد بحث و بررسی قرار دهیم:
کلید خصوصی (Private Key)
کلید خصوصی در دنیای کریپتو عبارت است از یک رشته متن محرمانه که به صورت ترکیبی از حروف و اعداد بوده و صرفا به یک نفر تعلق دارد. این کلید نباید تحت هیچ شرایطی در دسترس عموم قرار بگیرد و هر فردی با در اختیار داشتن کلید خصوصی به راحتی میتواند داراییهای دیجیتالی شما را خرج کند و در اصل این کلید خصوصی است که مالکیت افراد بر داراییهای دیجیتالی را ثابت میکند. عموما طول کلید خصوصی به قدری طولانی است که امکان حدس زدن آن وجود ندارد. طبیعتا با توجه به میزان اهمیت حیاتی کلید خصوصی در مارکت ارز دیجیتال، در تولید آن از تابع دریچهای یک سویه استفاده شده تا با استفاده از کلید عمومی امکان تولید کلید خصوصی متناظر با آن وجود نداشته باشد.
لازم به ذکر است که امکان نمایش کلید خصوصی در قالبهای عبارت بازیابی، کد هگزادسیمال 64 رقمی، کد باینری طولانی شکل گرفته از 256 کاراکتر و کد QR وجود دارد. برای درک بزرگی این عدد به سراغ یک مثال میرویم. در شبکه قیمت بیت کوین BTC ، کلید خصوصی یک عدد تصادفی 256 بیتی است که نمونه مشابه این عدد در جهان هستی برابر با کلیه اتمامهای موجود در دنیاست! عدم امکان تولید کلید خصوصی تکراری سبب شده تا از آن به عنوان امضای دیجیتال استفاده شده و با استفاده از آن بتوان یک تراکنش را اثبات نمود. به بیان سادهتر، کلید خصوصی رمزعبور هر کیف پول و ولت است و بدون آن امکان ارسال رمزارز و تائید معامله وجود نخواهد داشت.
کلید عمومی (Public Key)
به طور قطعی مفهوم کلید خصوصی و عمومی در رمزارزها با یکدیگر در ارتباط هستند؛ با این تفاوت که مفهوم کلید عمومی در مقابل کلید خصوصی قرار گرفته است! در واقع این نوع کلیدهای رمزنگاری همان طور که از نام آن پیداست، رشته کدی است که میتوان آن را در دسترس عموم قرار داد. به بیان بهتر، این کلید آدرس کیف پول رمزارزی کاربر است که دسترسی افراد دیگر برای ارسال توکن و رمزارز را به این کیف پول فراهم میسازد. کلیدهای عمومی از کلید خصوصی تولید میشوند و امکان رسیدن به کلید عمومی از طریق کلید خصوصی وجود دارد. در تراکنشها نیز این کلید به همراه امضای دیجیتال ارائه میگردد تا صحت امضا را تائید نماید.
عموما هنگام صحبت از کلید عمومی، توجهات به سمت رمزنگاری کلید عمومی که نوعی رمزنگاری نامتقارن است جلب میشود که کاربرد اصلی آن در احراز هویت است. مولفه اصلی رمزنگاری کلید عمومی، استفاده از توابع دریچهای (Trapdoor Functions) است که توابع ریاضی یک سویه هستند و امکان شکست آنها از طرف عکس وجود ندارد. هدف از معرفی رمزنگاری کلید عمومی این بود که بدانید کلید عمومی بخشی از این نوع رمزنگاری است که با یک کلید خصوصی جفت شده و امکان ارسال تراکنش به کلید عمومی را فراهم میآورد؛ اما دقت کنید بدون در اختیار داشتن کلید خصوصی، امکان باز کردن تراکنش و اثبات این که ارزهای دریافتی متعلق به شماست، وجود نخواهد داشت. با چنین توضیحی روشن میشود که هر کاربری آزادانه میتواند کلید عمومی خود را با دیگران به اشتراک بگذارد.
روش تولید کلید خصوصی و عمومی در رمزارزها
برای تولید کلید خصوصی و عمومی در قدم اول، کیف پول سختافزاری یا نرمافزاری مورد استفاده شما، عبارت بازیابی (Seed Phrase) را ایجاد کرده و پس از آن از روی این عبارت، کلید خصوصی را تولید مینماید. لازم به ذکر است که کیف پولهای رمزارزی متناسب با سیاستهای خاص خود ممکن است وظیفه نگهداری از رمزارزها را بر عهده بگیرد یا همچون متامسک وظیفه نگهداری از آن را بر عهده کاربر قرار دهد تا به دلیل احتمال حمله هکران به سرورهای کیف پول، هکران امکان دسترسی به این کلیدهای خصوصی که اصلیترین عامل در اثبات مالکیت افراد بر روی داراییهای دیجیتالی هستند، نداشته باشند.
پس از تولید کلید خصوصی، نوبت به تولید کلید عمومی یا همان آدرس والت رمزارزی میرسد که برای تولید آن، کلید خصوصی در یک تابع هش یک طرفه قرار میگیرد. چنین مسئلهای به این معناست که شما در هر زمان که بخواهید میتوانید کلید عمومی خود را از طریق کلید خصوصی ایجاد نمائید؛ اما عکس آن حتی با وجود در دست داشتن قدرتمندترین رایانههای مدرن نیز امکانپذیر نخواهد بود.
نگاهی به تاریخچه رمزنگاری متقارن و نامتقارن
گفته شد که رمزنگاری کلید عمومی مورد استفاده در دنیای کریپتوکارنسی نوع خاصی از رمزنگاری نامتقارن است و برای آن که بتوان به درک صحیحتری از مفهوم کلید خصوصی و عمومی در رمزارزها دست پیدا کرد، باید نگاهی به تاریخچه و ماهیت این نوع از رمزنگاریها داشته باشیم. رمزنگاری صرفا به دنیای کریپتو اختصاص نداشته و سابقه استفاده از شیوههای رمزنگاری به سال 1531 برمیگردد که در آن سال فراماسونهای اروپایی با هدف انتقال سری اطلاعات به سراغ اختراع رمزنگاری متقارن رفتند؛ اما نقطه ضعف چنین رمزنگاری به قابلیت شکسته شدن کلیدهای مورد استفاده در آن مربوط میشود که آلمانیها در طول جریان جنگ جهانی دوم با استفاده از دستگاه انیگما با انجام چنین کاری به بسیاری از اطلاعات محرمانه دست پیدا کردند.
در سال 1977 سه تن از دانشمندان فعال در حوزه کامپیوتر به نامهای لئونارد آدلمان، رون ریوست و آدی شامیر اولین طرح از رمزنگاری نامتقارن (Asymmetric Cryptography) را معرفی کردند که سیستم آنها به RSA شهرت یافت. روش کار رمزنگاری متقارن و نامتقارن یکسان بوده و عبارت است از تبدیل یک متن ساده به متن رمزداری که بعدا از قابلیت تبدیل مجدد به متن ساده برخوردار خواهد بود؛ اما در این شیوه جدید از رمزنگاری از یک جفت کلید خاص و منحصربهفرد برای انجام چنین کاری استفاده میشود. برای درک صحیح روند کار در رمزنگاری متقارن و نامتقارن به این مثال ساده توجه کنید:
در رمزنگاری متقارن شما و دوستتان از یک کلید مشترک هم برای رمزنگاری و هم برای رمزگشایی دادهها استفاده میکنید که طبیعتا باید در حفظ آن نهایت دقت را به خرج دهید؛ چراکه اگر این کلید در دسترس فرد دیگری قرار بگیرد، به راحتی قادر خواهد بود به فایلهای رمزنگاری شده موجود میان شما و دوستتان دسترسی پیدا کند. حال همین مسئله را در رمزنگاری نامتقارن مورد بررسی قرار میدهیم.
فرض کنید که قرار است فایلی را به صورت محرمانه برای دوستتان ارسال کنید و او نیز پس از انجام یک ویرایش کلی و افزودن اطلاعات جدید به آن، مجددا فایل را برای شما ارسال کند. در چنین حالتی شما باید فایل را به کلید عمومی دوست خود ارسال کنید (کلیدی که اطلاعات شخص مقابل را به خطر نمیاندازد) و دوستتان نیز با استفاده از کلید خصوصی خود این فایل را باز کرده و پس از انجام تغییرات به کلید عمومی شما ارسال میکند. در این حالت به دلیل استفاده از دو کلید امنیت اطلاعات شما بهتر از روش متقارن حفظ خواهد شد.
مقایسه کلید خصوصی و عمومی
در یک نگاه کلی به آنچه در بررسی مفهوم کلید خصوصی و عمومی بیان شد، میتوان کلید عمومی را به آدرس ایمیل یا حتی شماره کارت بانکی تشبیه نمود که کلید خصوصی رمز ورود آن است. طبیعتا به راحتی میتوان آدرس ایمیل یا شمارت کارت بانکی را با دیگران به اشتراک گذاشت تا افراد ایمیل یا پول برای ما ارسال کنند. البته لازم به ذکر است که یک هدف کلی میتوان برای کلید خصوصی و عمومی متصور بود که آن نیز عبارت است از این که تراکنش به وسیله کاربر مورد نظر انجام شده و جعلی نیست. با این وجود، تفاوتهای مهمی نیز میان کلید خصوصی و عمومی وجود دارد که به شرح زیر هستند:
مزایا و معایب رمز نگاری با کلید خصوصی و عمومی
مسلما هیچ روش رمزنگاری را نمیتوان پیدا کرد که عاری از اشکال باشد و رمزنگاری نامتقارن و استفاده از کلید خصوصی و عمومی نیز از این قاعده مستثنی نیست. در ادامه به بررسی نقاط قوت و ضعف کلید خصوصی و عمومی میپردازیم:
نقاط قوت
اگر صرفا به سراغ استفاده از یک کلید خصوصی برویم، بی آن که خبری از کلید عمومی باشد، شیوه رمزنگاری ما چیزی جز رمزنگاری متقارن نخواهد بود و استفاده از کلید خصوصی به خوبی قادر است دارایی افراد را از هرگونه خطرات امنیتی محافظت نماید. در واقع اجرای رمزنگاری متقارن به دلیل آن که از یک معادله ریاضی تکی و برگشتپذیر استفاده میکند، به منابع کامپیوتری کمتری نیاز داشته و سریعتر و سادهتر انجام میگیرد.
نقاط ضعف
در کنار امنیت قابل توجهی که کلید خصوصی فراهم میکند، نقطه ضعف بزرگی را نیز میتوان برای آن متصور بود. این عیب به این واقعیت مربوط میشود که امکان گم شدن کلید خصوصی وجود دارد و با گم شدن آن، امکان دسترسی به کیف پول از بین میرود؛ چراکه استفاده از کلید خصوصی تنها روش موجود برای دسترسی مجدد به والت و کیف پول سخت افزاری است.
کلید خصوصی و عمومی؛ کلیدهای قدرتمند تضمین کننده امنیت تراکنشها
ما در این مقاله از بلاگ کریپتوباز تلاش نمودیم تا به صورت ساده و جامع، مفهوم کلید خصوصی و عمومی در رمزارزها را مورد بررسی قرار دهیم و همان طور که در مطالب فوق مشاهده کردید، رمزنگاری بخش جذاب و جدانشدنی فرآیند دریافت و ارسال رمزارزهاست و در عمل بدون وجود رمزنگاری و استفاده از کلید خصوصی و عمومی امکان تشخیص و تائید تراکنشها و تمایز آنها از تراکنشهای جعلی وجود نخواهد داشت. کلیدهای عمومی که از کلید خصوصی ساخته میشوند را میتوان با دیگران به اشتراک گذاشت؛ اما اشتراکگذاری کلید خصوصی به این معناست که دیگران را قادر میسازید تا دارایی شما را خرج کنند! بنابراین، باید در حفظ و نگهداری کلید خصوصی نهایت دقت را به خرج دهید. حال با چنین توضیحی آیا به نظر شما رمزنگاری نامتقارن قادر است شبکههای بلاکچینی را به اهداف اصلی خود برساند؟ شما میان رمزنگاری متقارن و نامتقارن کدام یک را انتخاب میکنید؟