یکی از مهمترین مفاهیم برای هر کاربر بیتکوین، فهم درست مالکیت است. برای تفاوت میان نگهداری کلیدها، خودحضانتی و مسئولیت بازیابی، خودحضانتی بیتکوین چیست؟ را نیز ببینید. بسیاری از کاربران تصور میکنند بیتکوین داخل اپلیکیشن کیف پول ذخیره میشود؛ در حالی که کیف پول بیشتر یک ابزار برای مدیریت کلیدهای رمزنگاری، مشاهده وضعیت دارایی و ساخت و امضای تراکنشهاست.
بلاکچین سابقه تراکنشها و خروجیهای قابل خرج را نگهداری میکند. چیزی که به شما امکان خرجکردن یک خروجی را میدهد، داشتن داده و کلید لازم برای برآوردهکردن شرایط آن خروجی است. به همین دلیل، امنیت کیف پول در اصل به امنیت کلیدها برمیگردد.
کیف پول دقیقاً چیست؟
کیف پول میتواند نرمافزار، سختافزار یا ترکیبی از ابزارها باشد. وظیفه اصلی آن مدیریت کلیدها و تعامل با شبکه بیتکوین است.
یک کیف پول معمولاً میتواند آدرس دریافت تولید کند، UTXOهای مرتبط را شناسایی کند، مقدار قابل خرج را محاسبه کند، تراکنش بسازد، آن را با کلید مناسب امضا کند و تراکنش امضاشده را برای انتشار به شبکه بفرستد.
بنابراین اگر اپلیکیشن کیف پول حذف شود، خود بیتکوینها از بین نمیروند. اگر کلیدهای لازم همچنان در اختیار شما باشند، میتوان آنها را در کیف پول سازگار دیگری بازیابی کرد.
آدرس بیتکوین چیست؟
آدرس را میتوان یک مقصد برای دریافت بیتکوین دانست. اگر میخواهید تفاوت قالبهای مختلف آدرس را دقیقتر ببینید، انواع آدرس بیتکوین را بخوانید. کاربر میتواند آدرس دریافت خود را برای فرستنده ارسال کند تا تراکنش خروجی مناسب برای آن ایجاد شود.
آدرس با کلید خصوصی یکی نیست. آدرس اطلاعاتی عمومی است و در شرایط معمول میتوان آن را به دیگران داد؛ اما کلید خصوصی محرمانه است.
همچنین آدرس لزوماً یک «حساب» دائمی مانند شماره حساب بانکی نیست. کیف پولهای مدرن میتوانند برای تراکنشهای مختلف آدرسهای متفاوت تولید کنند که هم برای حریم خصوصی و هم برای مدیریت بهتر پرداختها مفید است.
کلید خصوصی چیست؟
کلید خصوصی یک داده محرمانه است که به کیف پول اجازه میدهد امضای معتبر برای خرجکردن داراییهای مربوط ایجاد کند. در بیتکوین این کلید در چارچوب رمزنگاری منحنی secp256k1 استفاده میشود.
شبکه به کلید خصوصی شما نیاز ندارد. کیف پول با استفاده از آن امضا را محاسبه میکند و اطلاعات لازم برای بررسی امضا را در تراکنش قرار میدهد. نودهای شبکه میتوانند معتبر بودن امضا را بررسی کنند، بدون اینکه کلید خصوصی را ببینند.
اگر شخص دیگری کلید خصوصی را به دست آورد، بسته به نوع خروجی و شرایط آن، ممکن است بتواند دارایی را خرج کند. بنابراین کلید خصوصی چیزی نیست که برای پشتیبانی، صرافی، توسعهدهنده یا فردی که خود را کارشناس معرفی میکند ارسال شود.
یک سناریوی واقعیتر: از عبارت بازیابی تا یک پرداخت
فرض کنید کاربری یک کیف پول خودحضانتی جدید ایجاد میکند و کیف پول به او یک عبارت بازیابی میدهد. این عبارت قرار نیست مستقیماً روی بلاکچین ثبت شود و خودِ عبارت نیز آدرس دریافت نیست.
در کیف پولی که از یک استاندارد سازگار با BIP39 استفاده میکند، عبارت بازیابی میتواند به یک seed تبدیل شود و از آن مجموعهای از کلیدها و آدرسها مشتق شود. کیف پول این رابطه را مدیریت میکند و لازم نیست کاربر کلیدهای خصوصی را یکییکی ببیند.
حالا فرض کنیم کیف پول برای دریافت یک پرداخت، یک آدرس جدید تولید میکند:
- کیف پول از ساختار کلیدهای خود، کلید و اطلاعات عمومی لازم را مشتق میکند.
- از این اطلاعات، آدرس مناسب برای دریافت ساخته میشود.
- کاربر آدرس را برای فرستنده میفرستد؛ عبارت بازیابی و کلید خصوصی هیچوقت برای فرستنده ارسال نمیشوند.
- فرستنده یک تراکنش ایجاد میکند که یک خروجی قابل خرج برای آن آدرس دارد.
- پس از تأیید تراکنش، آن خروجی بخشی از UTXOهای قابل شناسایی توسط کیف پول میشود.
- وقتی کاربر میخواهد آن بیتکوین را خرج کند، کیف پول با کلید خصوصی متناظر، تراکنش را امضا میکند.
- نودهای شبکه امضا را بررسی میکنند و بدون دیدن کلید خصوصی میتوانند معتبر بودن آن را تشخیص دهند.
در نتیجه، رابطه اصلی این است: عبارت بازیابی میتواند ریشه تولید کلیدها باشد؛ کلیدها برای ایجاد امضا استفاده میشوند؛ آدرس برای دریافت به کار میرود؛ و خود بیتکوین در قالب خروجیهای تراکنش روی بلاکچین ثبت میشود.
یک نکته مهم درباره «ذخیره شدن بیتکوین»
اگر برنامه کیف پول را حذف کنید، دادههای روی بلاکچین حذف نمیشوند. چیزی که ممکن است از دست بدهید، دسترسی محلی به کلیدها و اطلاعات لازم برای بازسازی آن کیف پول است.
به همین دلیل، عبارت بازیابی را نباید نسخهای از «فایل موجودی» تصور کرد. این عبارت، در کیف پولهای سازگار، بخشی از زنجیرهای از اطلاعات است که میتواند امکان بازسازی کلیدها و سپس امضای تراکنشها را فراهم کند. اگر آن اطلاعات افشا شود، مهاجم ممکن است بتواند کلیدهای لازم را نیز بازسازی کند.
کلید عمومی و آدرس چه رابطهای دارند؟
کلید عمومی از کلید خصوصی به دست میآید، اما آدرس معمولاً خود کلید عمومی خام نیست. بسته به نوع خروجی، آدرس میتواند نمایش فشردهای از اطلاعاتی باشد که برای ساخت شرایط خرجکردن استفاده میشود.
به همین دلیل عبارت «آدرس = کلید عمومی» یک سادهسازی بیش از حد است. در برخی قالبهای قدیمی، آدرس از هش کلید عمومی ساخته میشود و در قالبهای جدیدتر، آدرس میتواند اطلاعات اسکریپت مورد نیاز را کدگذاری کند.
برای کاربر عادی مهمترین نتیجه این است: آدرس را میتوان برای دریافت به اشتراک گذاشت؛ کلید خصوصی را نه.
عبارت بازیابی چیست؟
بسیاری از کیف پولها از یک عبارت چندکلمهای برای پشتیبانگیری و بازسازی کلیدها استفاده میکنند. این عبارت معمولاً با نامهایی مانند seed phrase یا عبارت بازیابی شناخته میشود.
اما همه کیف پولها الزاماً از BIP39 استفاده نمیکنند. در کیف پولهایی که از BIP39 استفاده میکنند، عبارت mnemonic طبق قواعد مشخصی ساخته و به یک seed تبدیل میشود و سپس میتواند برای ساخت کیف پولهای سلسلهمراتبی مانند BIP32 به کار رود. بنابراین هنگام بازیابی، سازگاری استانداردها و مسیر مشتقسازی اهمیت دارد.
عبارت بازیابی را نباید با رمز عبور معمولی اشتباه گرفت. در بسیاری از کیف پولها، این عبارت میتواند ریشه تولید مجموعه بزرگی از کلیدها و آدرسها باشد. به همین دلیل، افشای آن ممکن است دسترسی به داراییهای زیادی را در اختیار فرد دیگری قرار دهد.
اگر کیف پول از شما عبارت بازیابی را هنگام راهاندازی نشان میدهد، آن را دقیق و با روش مناسب پشتیبانگیری کنید. هرگز آن را در اختیار وبسایت ناشناس یا فردی که از طریق پیام خصوصی درخواست میکند قرار ندهید.
اگر گوشی گم شود چه اتفاقی میافتد؟
گمشدن یا خرابشدن گوشی بهخودیخود به معنی از بین رفتن بیتکوین نیست. اگر کلیدها یا عبارت بازیابی به شکل معتبر و امن پشتیبانگیری شده باشند، میتوان کیف پول را روی دستگاه دیگری بازیابی کرد.
اما اگر تنها نسخه کلیدها روی همان دستگاه بوده و هیچ راه قابل اعتمادی برای بازیابی وجود نداشته باشد، دسترسی به دارایی میتواند برای همیشه از بین برود. شبکه بیتکوین سازوکاری ندارد که صرفاً با اثبات هویت شخص، کلید خصوصی گمشده را دوباره ایجاد کند.
این همان تفاوت مهم میان سیستمهای حضانتی و خودحضانتی است. در سیستم حضانتی، یک شرکت ممکن است بتواند دسترسی حساب را بازیابی کند؛ در خودحضانتی، مسئولیت نگهداری کلید مستقیماً بر عهده کاربر است.
کیف پول گرم و سرد چه تفاوتی دارند؟
کیف پول گرم معمولاً روی دستگاهی استفاده میشود که به اینترنت دسترسی دارد. مزیت اصلی آن راحتی و سرعت دسترسی است، اما سطح مواجهه آن با تهدیدهای آنلاین بیشتر است.
کیف پول سرد به روشی گفته میشود که کلیدها تا حد امکان از محیط آنلاین جدا نگه داشته میشوند. کیف پول سختافزاری یک نمونه رایج است، اما مفهوم کیف پول سرد به سختافزار خاصی محدود نیست؛ روشهای آفلاین دیگر نیز میتوانند در این دسته قرار بگیرند.
هیچ انتخابی برای همه کاربران بهترین نیست. برای مبالغ کم و استفاده روزمره، راحتی کیف پول گرم میتواند مهم باشد؛ برای داراییهایی که کمتر جابهجا میشوند، کاهش سطح دسترسی آنلاین میتواند مزیت مهمی باشد.
چند اشتباه امنیتی رایج
۱. فرستادن عبارت بازیابی برای «پشتیبانی»
پشتیبانی واقعی کیف پول یا یک سرویس معتبر نباید برای انتقال دارایی از شما seed phrase یا کلید خصوصی بخواهد. درخواست چنین اطلاعاتی یک علامت خطر جدی است.
۲. ذخیره عبارت بازیابی در فضای آنلاین
ذخیره آن در ایمیل، پیامرسان، فضای ابری یا فایل بدون حفاظت مناسب، سطح حمله را افزایش میدهد. روش پشتیبانگیری باید به شکلی انتخاب شود که در برابر سرقت دیجیتال و از بین رفتن فیزیکی تا حد امکان مقاوم باشد.
۳. واردکردن عبارت بازیابی در سایت ناشناس
یک صفحه وب میتواند کاملاً شبیه کیف پول واقعی طراحی شده باشد. اگر عبارت بازیابی را در اختیار مهاجم قرار دهید، ممکن است کنترل دارایی را از دست بدهید.
۴. اعتماد به قفل گوشی بهعنوان تنها لایه امنیتی
قفل صفحه مهم است، اما جایگزین حفاظت از کلیدها و پشتیبان معتبر نیست.
۵. اشتباه گرفتن آدرس با کلید خصوصی
آدرس برای دریافت است؛ کلید خصوصی برای اثبات اختیار خرجکردن. این دو را نباید در یک سطح امنیتی در نظر گرفت.
۶. نادیده گرفتن نسخه پشتیبان آزمایشی
داشتن چند کلمه روی کاغذ کافی نیست؛ باید بدانید آیا در شرایط واقعی میتوانید کیف پول را از آن پشتیبان بازیابی کنید. برای مبالغ قابل توجه، بهتر است فرایند بازیابی را با روشی کنترلشده و بدون افشای عبارت اصلی بررسی کنید.
آیا یک کیف پول فقط یک آدرس دارد؟
خیر. یک کیف پول میتواند مجموعهای از کلیدها و آدرسها را مدیریت کند. این موضوع یکی از دلایلی است که نباید عبارت بازیابی را فقط به «آدرس فعلی» محدود دانست.
همچنین اگر یک کیف پول را با همان عبارت بازیابی در نرمافزار دیگری بازیابی میکنید، باید توجه داشته باشید که سازگاری استانداردها و مسیرهای مشتقسازی اهمیت دارد. صرف واردکردن چند کلمه در هر برنامهای لزوماً همان مجموعه آدرسها و کلیدها را بازسازی نمیکند.
قبل از ارسال بیتکوین چه چیزهایی را بررسی کنیم؟
قبل از تأیید تراکنش، آدرس مقصد را با دقت بررسی کنید. اگر مبلغ قابل توجه است، یک روش مناسب برای اطمینان از مقصد داشته باشید. کارمزد پیشنهادی کیف پول را نیز ببینید و بدانید که کارمزد بیشتر الزاماً به معنی «امنتر» بودن تراکنش نیست؛ بیشتر به رقابت برای فضای بلاک و سرعت مورد انتظار مربوط است.
همچنین اگر سرویس مقصد برای تعداد تأیید مشخصی شرط دارد، آن شرط را با نیاز خود هماهنگ کنید. برای پرداختهای مهم، تفاوت میان تراکنش صفر تأیید، یک تأیید و چند تأیید را در نظر بگیرید.
جمعبندی
برای فهم مالکیت بیتکوین این رابطه را به خاطر بسپارید:
بلاکچین - خروجی قابل خرج - شرایط خرجکردن - کلید خصوصی - امضای دیجیتال
کیف پول ابزار مدیریت این فرایند است. بنابراین مهمترین دارایی امنیتی کاربر، خود اپلیکیشن نیست؛ توانایی محافظت از کلیدها و پشتیبان قابل بازیابی آنهاست.
اگر میخواهید بعد از این مقاله سازوکار فنی تراکنش را بهتر بفهمید، تراکنش بیتکوین چگونه انجام میشود؟ و سپس بیتکوین چگونه کار میکند؟ را بخوانید.
نکته امنیتی: کلید خصوصی و عبارت بازیابی را محرمانه نگه دارید. هیچکس برای دریافت بیتکوین شما به آنها نیاز ندارد و افشای آنها میتواند به از دست رفتن دارایی منجر شود.
منابع و مراجع
- Bitcoin Developer Guide — Wallets
- BIP 32 — Hierarchical Deterministic Wallets
- BIP 39 — Mnemonic code for generating deterministic keys
- Bitcoin.org — Securing your wallet
این مطلب با هدف آموزش و تحلیل تهیه شده است و نباید بهعنوان توصیه قطعی برای خرید، فروش یا شرطبندی تلقی شود.