اگر قصد سرمایهگذاری روی ارزهای دیجیتال را داشته باشیم، یکی از مهمترین کارهایی که باید انجام دهیم، یادگیری موارد امنیتی مربوط به آن است، تا بتوانیم سرمایه خود را در امنترین حالت ممکن نگه داریم. در بحث امنیت هم کلید خصوصی به نوعی شاهرگ اصلی است. تا انتهای این مقاله با ما همراه باشید تا با هم به زبان ساده، مفهوم کلید خصوصی و تمام مسائل امنیتی که برای نگهداری ارزهای دیجیتال باید رعایت کنیم را مورد بررسی قرار دهیم.
هر کیف پول در بیت کوین و ارزهای دیجیتال دیگر شامل دو کلید عمومی و خصوصی میشود. برای درک بهتر کلیدهای عمومی و خصوصی بیاید مثالی را بررسی کنیم:
اگر کسی بخواهد به حساب شما پولی واریز کند، باید شماره کارت عابر بانک شما را بداند و شما برای اینکه بتوانید به داراییهای حساب خود دسترسی داشته باشید، باید رمز کارت بانکی خود را داشته باشید.
آیا در دنیای واقعی حاضرید کارت عابر بانک و رمز کارت خود را به هر کسی بدهید؟
البته که نه.
مشابه دنیای واقعی، در دنیای ارزهای دیجیتال نیز، هرکسی بخواهد برای شما بیت کوین ارسال کند، باید شماره حساب شما که به آن کلید یا آدرس عمومی میگویند، داشته باشد.
پس کلید یا آدرس عمومی به نوعی (نه کاملا) مانند شماره کارت عابر بانک شماست که میتوانید آن را برای هر کسی که قرار است برای شما بیت کوین ارسال کند، بفرستید، و برای دسترسی به داراییهای کیفپولتان، باید آدرس یا کلید خصوصی خود را بدانید.
همانطور که در مثال کارت عابر بانک، دسترسی به پول موجود در حساب بانکی، بدون داشتن رمز کارت امکانپذیر نبود، درمورد ارزهای دیجیتال هم، دسترسی به داراییهای موجود در کیفپول، بدون دانستن کلید خصوصی امکانپذیر نخواهد بود.
کلید خصوصی (Private Key) چیست؟
کلید خصوصی یک رشته متنی محرمانه و به صورت ترکیبی از حروف و اعداد است، که برای ارسال بیت کوین به کیف پول دیگر و یا خرج کردن بیت کوین ها و بطور کلی دسترسی به داراییهای موجود در کیف پول بکار میرود.
همانطور که میدانید در بلاک چین، اطلاعات هویتی ثبت نمیشود بنابراین شبکه بیت کوین و دیگر ارزهای دیجیتال، با استفاده از کلید خصوصی تشخیص میدهد که شما مالک داراییهای داخل یک کیف پول هستید.
کلید خصوصی یک عدد ۲۵۶ بیتی است که به محض اینکه شما یک کیف پول میسازید، به صورت تصادفی ایجاد می شود.
در واقع، کلید خصوصی با استفاده از توابع رمزنگاری (توابع هش)، از روی پسوردی که ما برای کیف پول خود انتخاب میکنیم، بدست میآید.
این توابع رمزنگاری که به آنها توابع هش نیز میگویند، ورودیهای مختلف (با تعداد کاراکترهای مختلف) را گرفته و خروجیهایی با طول ثابت (۲۵۶ بیتی) تولید میکنند.
از این رو اگر پسوردی که برای کیف پول خود انتخاب میکنیم، ساده و قابل حدس باشد، احتمال حدس زدن آن توسط هکرها افزایش مییابد.
نمونه ای از یک کلید خصوصی بیت کوین را میتوان در زیر دید.
KxhgeYuESuJKAsot2ovQLjuxcTJMF9Hbs2cxdmmx1jy2cqTk31on
باتوجه به اینکه کیف پول های مختلف از توابع رمزنگاری متفاوتی استفاده میکنند، فرمت کلید خصوصی ایجاد شده در کیف پول های مختلف میتواند باهم فرق داشته باشد.
اگر کلید خصوصی خود را نداشته باشید، میتوان گفت که شما صاحب بیتکوینهای خود نیستید.
کلید خصوصی شما فقط و فقط باید پیش خودتان بماند، زیرا اطلاع یک نفر دیگر از آن برابر با دادن بیت کوین هایتان به اوست.
علاوه بر این، لازم است از کلید خصوصی خود نسخه پشتیبانی تهیه کنیم و آن را در جای امنی نگهداری کنیم، زیرا اگر موبایل یا لپتاپ خود را گم کنیم و یا به هر نحوی نتوانیم به کیفپولمان دسترسی داشته باشیم، بدون داشتن کلید خصوصی یا عبارت بازیابی (که مرتبط با کلید خصوصی هستند) داراییهایمان قابل بازیابی نیست و برای همیشه از دستمان خواهند رفت.
کلید عمومی (Public Key) چیست؟
کلید عمومی نیز یک رشته ترکیبی از حروف و اعداد است که با استفاده از توابع ریاضی رمزنگاری از کلید خصوصی بدست میآید.
با وجود اینکه کلید عمومی با استفاده از یک سری توابع رمزنگاری از روی کلید خصوصی بدست میآید، اما پیدا کردن کلید خصوصی از روی کلید عمومی، با استفاده از مهندسی معکوس، غیرممکن است.
نمونه ای از کلید عمومی بیت کوین را میتوان در زیر دید:
۱JrPhXTtLTmSywD28znDpPdxJ5dqWr3GMp
باتوجه به اینکه کیف پول های مختلف از توابع رمزنگاری متفاوتی استفاده میکنند، فرمت کلید عمومی ایجاد شده در کیف پول های مختلف میتواند باهم فرق داشته باشد.
نحوه دسترسی به کلید عمومی هر توکن در کیف پول Atomic که یکی از کیفپولهای محبوبی ست که نسخه اندروید، iOS، ویندور و لینوکس آن موجود است، را باهم بررسی میکنیم:
هنگامی که کیف پول را بر روی لپتاپ یا گوشی موبایل خود باز میکنید، اولین صفحهای که با آن مواجه میشوید به صورت زیر است، که در آن کلید عمومی مربوط به هر توکن روبروی آن نوشته شده است:
هر گاه کسی بخواهد برای ما یکی از ارزهای دیجیتال را ارسال کند، باید کلید یا آدرس عمومی که در اینجا نشان داده شده را برایش ارسال کنیم.
دقیقا مانند زمانی که کسی میخواهد پولی برای ما ارسال کند و ما شماره کارت بانکی خود را برای او میفرستیم.
تفاوت کلید عمومی و آدرس
اگرچه در کیف پول های زیادی مانند Atomic، آدرس عمومی و کلید عمومی یکسان نشان داده شدهاند، اما در واقعیت این دو باهم فرق دارند و روند آن به این صورت است که در ابتدا یک کلید خصوصی به صورت تصادفی ایجاد میشود.
کلید عمومی با استفاده از توابع رمزنگاری از روی کلید خصوصی ایجاد میشود و آدرس نیز از روی کلید عمومی و با استفاده از توابع رمزنگاری بدست میآید.
مهمترین ویژگی این توابع رمزنگاری که به آنها توابع هش (Hash) نیز میگویند این است که یک طرفه هستند، یعنی با داشتن خروجی تابع نمیتوان ورودی آن را پیدا کرد.
یعنی به هیچ عنوان نمیتوان با داشتن کلید عمومی به کلید خصوصی رسید و همچنین با داشتن آدرس به کلید عمومی دست یافت.
بر اساس اینکه برای ایجاد آدرس بیت کوین از کدامیک از توابع رمزنگاری استفاده شده، بیت کوین میتوان سه نوع آدرس داشته باشد:
آدرسی که با ۱ شروع میشود که آدرسهای قدیمی بیت کوین هستند:
۱BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
آدرسی که با ۳ شروع میشود که آدرسهای جدید بیت کوین هستند:
۳J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
و آدرسی که با bc1 شروع میشود که مربوط به راهحلهایی مانند سگویت هستند. در استفاده از این نوع آدرس دقت کنید زیرا بسیاری از کسب و کارها و صرافیها آن را پشتیبانی نمیکنند:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
کلید خصوصی بیت کوین چه کاربردی دارد؟
کلیدهای خصوصی بیت کوین برای انجام تراکنشهای غیرقابل برگشت استفاده می شود.
هنگامی که از کلیدهای خصوصی برای ارسال بیت کوین استفاده میکنیم، این غیرقابل بازگشت بودن، توسط امضاهای دیجیتالی که به هر تراکنش مرتبط می شود، تضمین میشود.
این امضاهای دیجیتالی، هرچند که توسط کلیدهای خصوصی یکسانی ایجاد میشوند، اما برای هر تراکنش منحصر به فرد هستند.
این ویژگی باعث می شود امکان کپی کردن و تقلب در آنها غیرممکن باشد. کاربران میتوانند با اطمینان خاطر، بارها و بارها از یک کلید خصوصی استفاده کنند.
علاوه بر این، این امضاهای دیجیتال، توسط توابع ریاضی به آدرسهای بیت کوین (کلیدهای عمومی) مرتبط میشوند. این ارتباط ریاضی، به تایید اینکه فقط دارندگان حسابی که میخواهند بیت کوین انتقال دهند، صاحبان امضا هستند، کمک میکند.
روش بهتری که میتوان برای نگهداری امن کلیدهای خصوصی از آن به جای یادداشت کردن استفاده کرد، این است که میتوان آن را در یک فایل ذخیره کرد و سپس با فشردهسازی فایل و قرار دادن پسورد بر روی فایل، آن را در یکی از فضاهای ابری مانند گوگل کلود (Google Cloud) ذخیره کنیم.
ذخیرهسازی یک فایل با پسورد در فضای ابری هم امنیت خوبی دارد و هم در هر شرایطی بدون نگرانی میتوانیم به آن دسترسی داشته باشیم.
بهترین راه برای نگهداری کلید خصوصی چیست؟
این کلیدهای دیجیتالی، تنها مدرکی هستند که میتوانند ثابت کنند شما صاحب بیت کوین یا هر ارز دیجیتال دیگری هستید، در نتیجه نگهداری آنها به یک روش کاملا امن بسیار مهم است.
در ادامه میزان امنیت انواع کیف پول ها را با توجه به اینکه آیا کلیدهای خصوصی در جایی خارج از دسترس صاحبان کیف پول ذخیره میشود یا خیر، بررسی میکنیم:
ذخیره کلید خصوصی در کیف پول های کاغذی
در کیف پولهای کاغذی، کلید خصوصی به صورت تصادفی انتخاب شده و صاحب آن، کلید خصوصی خود را بر روی یک کاغذ یادداشت میکند.
از آنجایی که در این روش کلید خصوصی در هیچ جایی از فضای آنلاین ذخیره نمیشود و فقط بر روی یک کاغذ و دست صاحب آن قرار دارد، امکان هک شدن آن وجود ندارد.
فقط در صورتی که صاحب کیف پول، کلید خصوصی خود را به هر دلیلی گم کند، دیگر به هیچ وجه به داراییهای خود دسترسی نخواهد داشت.
بنابراین هنگام استفاده از این کیف پول ها، باید کلید خصوصی را بر روی یک کاغذ نوشته و آن را در یک مکان بسیار امن نگهداری کنیم.
اما از آنجایی که این کلیدهای خصوصی تصادفی توسط وبسایتهای آنلاین ایجاد میشود، این سایتهای گاهی با آسیبپذیریهایی روبرو میشوند. از جمله اینکه چندی پیش معلوم شد یکی از سایتهای تولید کننده کلید خصوصی برای کیف پول های کاغذی، کلیدهای خصوصی یکسانی را در برخی موراد تولید میکرده است.
نرم افزارهای ساخت کیف پول کاغذی بعد از لود شدن کامل توسط مرورگر، نیازی به اینترنت نخواهند داشت بنابراین بعد از بارگزاری کامل صفحه ساخت کیف پول کاغذی، اینترنت خود را قطع کنید تا از عدم دسترسی فرد دیگری به کلید خصوصی شما کاملا اطمینان حاصل کنید.
ذخیره کلید خصوصی در کیف پول های سخت افزاری
در کیف پولهای سخت افزاری مثل کیف پول لجر نانو، پس از راهاندازی کیف پول توسط شما و انتخاب و ایجاد پسورد، کلیدهای عمومی و خصوصی ایجاد میشوند.
کلیدهای خصوصی در کیف پول های سخت افزاری در حافظه میکروکنترلر کیف پول ذخیره شده و برای همیشه در آنجا میمانند و تحت تاثیر هیچ ویروس و یا بدافزاری قرار نمیگیرند.
ذخیره کلید خصوصی در کیف پول های موبایلی و دسکتاپ
بعضی از کیفپولهای موبایلی، تحت وب و حتی دسکتاپ، کلیدهای خصوصی شما را در سرورهای خودشان ذخیره میکنند.
آنها این کلیدهای خصوصی را به صورتی رمزنگاری میکنند که فقط صاحب آن قادر به رمزگشایی آن باشد.
با وجود رمزنگاری کلیدهای خصوصی که توسط این سرویسها انجام میشود، از آنجایی که کلیدهای خصوصی شما توسط فرد دیگری نگهداری میشود، اگر هک یا دزدی در این سرویسها اتفاق بیفتد، داراییهای شما از بین میروند.
نگهداری ارزهای دیجیتال در هر یک از کیف پول های گرم (کیف پول های موبایلی، دسکتاپ) و کیف پول های سرد (کاغذی و سخت افزاری) هرچند با چالش ها و خطراتی همراه است، اما در تمام این کیف پول ها صاحب دارایی به کلید خصوصی خود دسترسی دارد.
اما هنگامی که دارایی های خود را در صرافیهای ارز دیجیتال نگهداری میکنیم، علاوه بر اینکه خطر هک شدن آن به دلیل آنلاین بودن پلتفرم وجود دارد، بابت دارایی های ذخیره شده هیچ کلید خصوصیای برای شما ایجاد نمیشود.
زیرا اتفاقی که در واقعیت میافتد این است که شما داراییهایتان را به کیف پول صرافی واریز کردهاید، و از آنجایی که دارایی هزاران کاربر ممکن است در یک کیف پول باشد، صرافی نمیتواند کلید خصوصی آن را در اختیار هیچ یک از کاربران قرار دهد.
بنابراین نگهداری داراییهای دیجیتال در صرافیها، تنها روشی ست که در آن شما به کلید خصوصیای که بتوانید مالکیت خود را ثابت کنید و یا داراییهای خود را در کیف پول دیگری بازیابی کنید، وجود ندارد.
جمعبندی
همیشه یادتان باشد که کلید خصوصی تنها مدرکی ست که میتواند ثابت کند شما صاحب یک ارز دیجیتال هستید. کلید خصوصی مساوی است با تمام داراییهای شما.
اگر قصد خرید و فروش ارزهای دیجیتال ندارید و فقط می خواهید بیت کوین یا هر ارز دیجیتال دیگر را با هدف بلند مدت نگه دارید، از کیف پول های سرد مانند کیف پول کاغذی و سخت افزاری که قابلیت نگهداری آفلاین کلید خصوصی در آنها وجود دارد، استفاده کنید.
اما اگر به هر دلیلی ترجیح دادید از کیف پول های گرم، مانند کیف پول های موبایلی و دسکتاپ استفاده کنید، حتما در ابتدای راهاندازی seed آن را در جایی امن یادداشت کنید، تا اگر به هر دلیلی به موبایل یا رایانه خود دسترسی نداشتید، قابلیت بازیابی داراییهایتان وجود داشته باشد.
علاوه بر seed یا همان عبارات بازیابی، کلید خصوصی مربوط به هر ارز دیجیتالی را که دارید در جایی امن نزد خود نگه دارید، که در صورت بروز مشکل بتوانید با استفاده از آن، داراییهای خود را بازیابی کرده و آن را برداشت کنید.
برای نگهداری کلیدهای خصوصی میتوانید هم آن را در یک کاغذ یادداشت کرده و در یک جای امن مانند گاوصندوق نگهداری کنید و هم اینکه آن را در یک فایل ذخیره کرده و پس از فشردهسازی فایل و قراردادن پسورد بر روی فایل، آن را در یکی از فضاهای ابری مانند گوگل کلود ذخیره کنید.