کلید عمومی و کلید خصوصی در بلاکچین چیست؟
درک تفاوت و نحوه عملکرد کلید عمومی و کلید خصوصی در فضای بلاکچین به شما کمک میکند که تئوری پشت کیف پولهای رمزنگاری شده خود را بهتر درک کنید؛ این مفاهیم هستند که پایههای اصلی زیرساختهای تعامل کاربران در دنیای وب ۳ را شکل میدهند. مفهوم کلید عمومی و کلید خصوصی خیلی قبلتر از ظهور رمزارزها وجود داشته است. با مطالعه کامل این مقاله از ایرانیکارت، منشا کلیدهای عمومی و خصوصی، روش تولید آنها، کاربرد این ابزارها در دنیای رمزارزها و تفاوت نحوه عملکرد کلید عمومی و کلید خصوصی را به طور کامل شرح میدهیم.
کلیدهای عمومی و خصوصی به زبان ساده
برای درک بهتر کلیدهای خصوصی و عمومی آدرس ایمیل خود و رمز عبور استفاده از آن را به یاد بیاورید؛ فرض کنید شما یک ایمیل دارید که یک آدرس عمومی دارد و میتوانید بدون هیچ ترسی آن را در اختیار هر کسی که بخواهد، قرار دهید. هر شخصی که این آدرس عمومی را داشته باشد، میتواند به آن فایل یا پیام بفرستد. در مقابل، ایمیل شما یک رمز عبور دارد که شما در نگهداری آن بیشتر دقت میکنید و آن را در اختیار هر شخصی قرار نمیدهید. زیرا آگاه هستید که هر کسی آن رمز را داشته باشد، میتواند به تمام پیامهای ایمیل شما دسترسی داشته باشد. کلیدهای عمومی و خصوصی در دنیای رمزنگاری تقریبا نقش همان آدرس عمومی ایمیل و رمز عبور آن را دارند.
رابطه بین کلید عمومی (Public Key) و کلید خصوصی (Private key) در رمزنگاری طوری طراحی میشود که در صورت مالکیت کلید خصوصی، امکان بازیابی کلید عمومی وجود دارد. بااینحال، یافتن کلید خصوصی تنها با استفاده از کلید عمومی غیرممکن است.
بهطورکلی، کیف پولهای رمزنگاری شده از کلید خصوصی و کلید عمومی استفاده میکنند. برای واضحتر شدن موضوع، کلید عمومی کیف پول شما سازنده آدرس کیف پول در فضای بلاکچین است و میتوانید آن را با هر کسی به اشتراک بگذارید. برعکس، کلید خصوصی شما کدی خواهد بود که به هر کسی اجازه دسترسی به وجوه ذخیره شده در آن آدرس عمومی از کیف پول را میدهد. با توجه این موضوع میتوان گفت، فناوری بلاکچین به طور قابلتوجهی به علم رمزنگاری برای اطمینان از تراکنشهای ایمن و شفاف متکی است؛ بنابراین کلیدهای عمومی و خصوصی در زیرساخت رمزنگاری بلاکچین نقش اساسی دارند.
منشا کلیدهای عمومی و خصوصی از کجاست؟
مفهوم کلیدهای عمومی و خصوصی بخشی از یک فضای بزرگتر یعنی؛ علم رمزنگاری است که به نام رمزنگاری کلید عمومی (PKC) یا رمزگذاری نامتقارن (Asymmetric Encryption) شناخته میشود. منشا ارتباط آنها با دنیای بلاکچین نیز از همین موضوع شروع میشود، قبل از پرداختن به نحوه عملکرد کلیدهای عمومی و خصوصی در فضای بلاکچین، اجازه دهید که به یک بررسی کلی از PKC بپردازیم.
رمزنگاری کلید عمومی یا PKC
هدف کلی PKC فعالکردن ارتباطات ایمن و خصوصی با استفاده از امضای دیجیتال در یک کانال عمومی است که احتمالا در آن کانال شرکتکنندگان مخربی نیز وجود دارند و نباید از جزئیات دادهها مطلع شوند. روش PKC در رسیدن به هدف خود، به این صورت است که امکان انتقال از یک حالت به حالت دیگر را فراهم میکند، درحالیکه معکوس کردن فرآیند تقریبا غیرممکن خواهد بود؛ این فرآیند ثابت میکند که شما اگر به یک راز دسترسی دارید بدون اینکه آن را در معرض هیچ شرکتکننده مخرب دیگری قرار دهید، میتوانید با هر کسی که میخواهید به اشتراک بگذارید.
روش تولید کلید خصوصی و کلید عمومی
برای انجام موفقیتآمیز این کار، PKC از یک مفهوم مهم ریاضی به نام تابع یکطرفه یا تابع Trapdoor استفاده میکند. به زبان ساده، توابع Trapdoor در ریاضی به مسایلی گفته میشود که محاسبه آنها در یک جهت آسان است، اما برگشت آن تقریبا غیرممکن خواهد بود. تابع Trapdoor برای تایید اعتبار بینظیر هست، زیرا عملکرد آن به این معنی است که نمیتوان آن را جعل کرد. حتی برای کامپیوترها، حل مسیر برگشت یک تابع یکطرفه به زمان زیادی (هزاران سال) نیاز دارد تا پاسخ صحیح را محاسبه کنند. به همین ترتیب، روش PKC برای حفظ امنیت داراییهای رمزنگاری شده در دنیای بلاکچین، به یک مدل تابع یکطرفه و دو کلیدی: کلید عمومی و خصوصی متکی است که از کلید خصوصی میتوان به کلید عمومی رسید، اما برعکس خیر.
بیشتر بخوانید: شبکه انتقال ارز دیجیتال چیست؟
کلید عمومی در بلاکچین چیست؟
کلید عمومی در دنیای بلاکچین، یک شناسه منحصربهفرد است که یک حساب در یک شبکه بلاکچین را شناسایی میکند. این شناسه برای دریافت وجوه استفاده میشود و میتوان آن را در دفترکل شبکه جستجو کرد. همانطور که از اسم آن پیداست، کلید عمومی بهصورت عمومی در بلاکچین قابل مشاهده است و میتواند آزادانه با هر کسی به اشتراک گذاشته شود.
در اصل، کلیدهای عمومی مانند یک شماره حساب عمل میکنند و هر کیف پول را به طور منحصربهفردی برای شرکتکنندگان در شبکه قابل شناسایی خواهند کرد. یک کلید عمومی در قالب یک کد که شامل یک دنباله طولانی از اعداد است، ساخته میشود؛ این کد همان چیزی است که برای ساخت آدرس بلاکچین (Blockchain Address) کیف پول یا محل نگهداری وجوه استفاده میشود. در واقع، آدرس بلاکچین کیف پول شما بهسادگی نسخه مشتق شده کلید عمومی کیف پول شماست.
آدرس بلاک چین چیست؟
آدرس بلاکچین به همان کدی اشاره دارد که میتوانید برای دریافت ارزهای دیجیتال در اختیار دیگران قرار دهید و از آنها بخواهید به آن آدرس رمزارز بفرستند که تابعی از کلید عمومی شماست و به آن آدرس دریافت نیز میگویند. همچنین وقتی برای شخص دیگری ارز دیجیتال میفرستید، آدرسی که برای او در فضای بلاکچین نمایش داده میشود که دارایی از آن خارج شده، همان آدرس بلاکچین است که به آن آدرس ارسال نیز میگویند. بهعنوانمثال، در شبکه بلاکچین اتریوم، آدرس بلاکچین از یک عدد هگزادسیمال (Hexadecimal) طولانی ساخته شده که با 0X شروع میشود.
آدرس کلید عمومی بیت کوین
آدرسهای کلید عمومی در شبکه بیت کوین، در واقع رشتهای از اعداد و حروف هستند که میتوانید آنها را با بقیه به اشتراک بگذارید و به آنها کوینهای BTC انتقال دهند. این آدرسها از کلیدهای عمومی و با استفاده از توابع هش یکطرفه به دست خواهند آمد که این کار برای افزایش امنیت بیشتر انجام خواهد شد. در واقع، کلیدهای عمومی کیف پولهای کاربران در شبکه بیت کوین یک رشته کاراکتر طولانی را شامل میشوند که آدرس هش شده از آنها، تا حدی کوتاهتر میشود و استفاده از آن راحتتر است.
جالب است بدانید که شبکه بیتکوین آدرسهای عمومی خود را در دو مرحله از کلید عمومی هش میکند. در مرحله اول از الگوریتمهای هش SHA-256 استفاده میکند. سپس نتیجه حاصل شده را با الگوریتم RIPEMD-160 برای ایجاد آدرس نهایی بیتکوین هش کرده و آن را کدگذاری میکند. با دو بار هش کردن کلید عمومی، یک لایه امنیتی اضافی به فرآیند ایجاد آدرس عمومی بیتکوین اضافه میشود.
کلید خصوصی در بلاکچین چیست؟
کلید خصوصی بهعنوان اطلاعات محرمانه شناخته میشود و هرگز نباید آن را با دیگران به اشتراک گذاشت. کلید خصوصی در بلاکچین مانند یک امضای دیجیتال و رمز عبور در یک حساب اینترنتی است که به تضمین امنیت کمک میکند. همچنین به کاربران اجازه میدهد که هویت خود را ثابت کرده و دسترسی به داراییها و اطلاعات خود را در شبکه بلاکچین مدیریت کنند. کلیدهای خصوصی در سطح پایه و اساس هر حساب مبتنی بر فناوری بلاکچین قرار دارند و حتی برای سادهترین اقدامات ضروری هستند. بهسادگی میتوان این فرض را در نظر گرفت؛ وقتی مردم میگویند که «مالک» داراییهای ارزهای دیجیتال هستند، در واقع مالک یک دارایی فیزیکی نیستند و تنها چیزی که واقعا مالک آن هستند، کلید خصوصی کیف پول یا فضای ذخیره ارزهای دیجیتال آنهاست.
کاربردهای کلید خصوصی
ارزهای دیجیتال همیشه در شبکه بلاکچین و نه در خود کیف پول رمزنگاری شده ذخیره میشوند. در عوض با داشتن یک کیف پول، شما صاحب کد خاصی میشوید که اجازه دسترسی شما به داراییهای نگهداری شده در فضای بلاکچین را آزاد میکند؛ این دسترسی به حد موجودی آدرس عمومی کیف پول خواهد بود. همچنین میتوانید با آن کد اختصاصی به خرجکردن موجودی ارزهای رمزنگاری شده خود بپردازید. کد اختصاصی که از آن گفتیم، همان کلید خصوصی کیف پول شما خواهد بود؛ همانطور که از نام آن پیداست باید خصوصی بماند. تنها یک کلید خصوصی برای حساب شما وجود دارد و بهعنوان رمز عبور خصوصی شما عمل میکند.
توجه داشته باشید که این کل کاربرد کلیدهای خصوصی در کیف پولها نیست؛ کلید خصوصی فقط برای اجازه دسترسی به وجوه نیست، بلکه کل اساس نحوه عملکرد کیف پول رمزنگاری و نحوه تعامل شما با سایر حسابها را نیز کنترل میکند. بهعبارتدیگر، این کلید خصوصی شما است که کلید عمومی شما را در وهله اول تولید میکند. همچنین نه تنها قادر به تولید یک کلید عمومی است، بلکه میتواند چندین کلید عمومی (به اندازه کل رمزارزهایی که در آن کیف پول با شبکههای بلاکچینی مختلف پشتیبانی میشوند) ایجاد کند.
ارتباط بین کلیدهای عمومی و خصوصی در بلاکچین و ارزهای دیجیتال
همانطور که احتمالا حدس میزنید، رابطه بین کلیدهای عمومی و خصوصی در بلاکچین بر اساس اصول رمزنگاری کلید عمومی یا PKC است. در زمینه ارزهای رمزنگاری شده، از PKC برای اثبات اینکه یک تراکنش خرج شده در واقع توسط صاحب وجوه امضا شده است و یک تراکنش جعلی نیست، استفاده میشود. دلیل اهمیت استفاده از این روش به شفافیت بلاکچینها برمیگردد؛ ازآنجاییکه همه تراکنشها توسط هر شرکتکننده در شبکه قابل مشاهده است، داشتن روشی که از اطلاعات حساس کاربران محافظت کند، ضروری خواهد بود. با وجود روش PKC در نگهداری ارزهای رمزنگاری شده، هم شفافیت بلاکچین فراهم میشود و هم امنیت داراییها و اطلاعات کاربران محفوظ میماند. در بخش بعد این موضوع را بیشتر توضیح خواهیم داد.
اهمیت کلیدهای عمومی و خصوصی در بلاکچین
همانطور که اشاره کردیم، در اکوسیستم بلاکچین کلیدهای عمومی و خصوصی نقش اساسی در ایمنسازی تراکنشها و ایجاد هویت دیجیتال دارند. در مجموع، کلید عمومی و کلید خصوصی به دلیلی از جمله موارد زیر برای سیستمهای مبتنی بر فناوری بلاکچین اهمیت دارند:
- عدم انکار (Non-repudiation)
یکی از مزایای کلیدی استفاده از کلیدهای عمومی و خصوصی در بلاکچین، عدم انکار است؛ به این معنی که وقتی یک تراکنش با یک کلید خصوصی امضا میشود، میتوان ثابت کرد که فرستنده مالک آن کلید خصوصی است و طرفین نمیتوانند شروع معامله را انکار کنند. این ویژگی اعتماد و مسئولیتپذیری را در شبکه بلاکچین افزایش میدهد.
- تایید و صحت معاملات (Authenticity of transactions)
برای تایید صحت و یکپارچگی تراکنش، فرستنده از کلید خصوصی خود برای تولید یک امضای دیجیتال که همان آدرس دریافت هست، استفاده میکند. این امضا یک نمایش رمزنگاری منحصربهفرد از دادههای تراکنش را در فضای جستجوی بلاکچین ارايه میدهد. سایر شرکتکنندگان در شبکه میتوانند از کلید عمومی فرستنده برای تایید امضای دیجیتال استفاده کنند و اطمینان حاصل کنند که تراکنش دستکاری نشده و واقعا از فرستندهای که ادعا میکند، منشا گرفته است. در واقع، کلیدهای عمومی به سایر کاربران شبکه اجازه میدهند اصالت تراکنش را تایید کنند، درحالیکه کلیدهای خصوصی تضمین میکنند که فقط مالک قانونی میتواند تراکنش را مجاز کند.
- تایید هویت (Identity verification)
کلیدهای عمومی و خصوصی در مدیریت هویت کاربران در بلاکچین استفاده میشوند. با مرتبط کردن یک کلید عمومی با یک کاربر یا نهاد خاص، شرکتکنندگان میتوانند یک هویت دیجیتالی قابل تایید ایجاد کنند. تراکنشها و تعاملات آنها را میتوان با کلید عمومی مربوطه ردیابی کرد که شفافیت و پاسخگویی را ممکن میسازد.
- امنیت (Security)
کلیدهای عمومی و خصوصی امنیت تراکنشها را تضمین میکند و از آنها در برابر دسترسی غیرمجاز و کلاهبرداری محافظت میکند.
- تمرکززدایی (Decentralization)
بلاکچینها با استفاده از کلیدهای عمومی و خصوصی قادر هستند تا در یک شبکه غیرمتمرکز بدون نیاز به واسطههایی مانند بانکها یا مؤسسات مالی عمل کنند.
- حریم خصوصی (Privacy)
کلیدهای عمومی و خصوصی به کاربران امکان میدهند هویت خود را ناشناس و ایمن نگه دارند و از نام مستعار خود استفاده کنند.
- رمزگذاری (Encryption)
از کلیدهای عمومی و خصوصی برای رمزگذاری و رمزگشایی دادهها استفاده میشود و اطمینان حاصل میشود که فقط اشخاص مجاز میتوانند به آن دسترسی داشته باشند.
- بهرهوری (Efficiency)
کلیدهای عمومی و خصوصی با از بین بردن نیاز به واسطه و کاهش هزینهها، تراکنشهای بر بستر بلاکچین را سریع و کارآمد میکند.
جمعبندی: چرا کلیدهای عمومی و خصوصی جزو حیاتی بلاکچین هستند؟
کلیدهای عمومی و خصوصی برای ایمن نگه داشتن فناوری بلاکچین بسیار مهم هستند. کلیدهای عمومی مانند آدرسهایی هستند که به ما امکان رمزگذاری و بررسی تراکنشها را میدهند. کلیدهای خصوصی کلیدهای مخفی هستند که به کاربران دنیای بلاکچین امکان میدهند قفل دادهها را باز کنند و امضاهای دیجیتالی بسازند. با استفاده از این کلیدها، شبکههای بلاکچین این امکان را برای افراد فراهم میکنند تا بدون نیاز به اعتماد به یکدیگر، با خیال راحت با یکدیگر تعامل داشته باشند. به همین ترتیب، زیرساختهای صنعت وب ۳ را گسترش دهند.
آدرس عمومی کیف پولها در فضای بلاکچین از کلید عمومی آنها مشتق میشود. دیگر کاربران در فضای بلاکچین به اصل کلید عمومی دسترسی ندارند، بلکه به آدرس عمومی مشتق شده از آن دسترسی دارند و میتوانند تراکنشها را پیگیری کنند.
در فضای بلاکچین فاش شدن کلید خصوصی یک کیف پول، معادل با از دست رفتن ارزهای دیجیتال موجود در آن کیف پول است. پس نگهداری از آن اهمیت ویژهای دارد. به طور قطع نمیتوان گفت که چه روشی برای نگهداری کلید خصوصی بهترین است، اما میتوانید روی یک فایل آن را ذخیره کنید و فایل را در یک فضای به دور از اینترنت و به صورت آفلاین نگهداری کنید.
در صورت از دسترس خارج شدن، کیف پول شما جای نگرانی نیست. شما با داشتن کلید خصوصی کیف پول خود، میتوانید مجدد نسخه جدید کیف پول خود را تهیه کنید و داراییهای خود را با استفاده از کلید خصوصی که برای آن کیف پول دارید، بازیابی کنید.