🔐 دانشکدهٔ ۴ · مبانی کیف پول و کلیدها
عبارت بازیابی، کلید خصوصی و امضای تراکنش
Seed phrase, private key & transaction signing
پیشنیازها: کیف پول حضانتی و غیرحضانتی
📚 آموزش در سه سطح
از سطح ساده شروع کنید؛ اگر روشن بود، سطح بعد را بخوانید. سطح مناسب شما ذخیره میشود.
🌱 توضیح ساده
وقتی کیف پول غیرحضانتی میسازید، فهرستی از ۱۲ یا ۲۴ کلمهٔ انگلیسی به شما نشان داده میشود. این «عبارت بازیابی» (Seed Phrase) است: شکل خوانای یک عدد تصادفی بسیار بزرگ که همهٔ کلیدهای کیف پول از آن ساخته میشود. هر کس این کلمات را داشته باشد، صاحب کامل دارایی است؛ لازم نیست گوشی یا رمز شما را داشته باشد.
تشبیه ساده: عبارت بازیابی مثل «قالب اصلی کلید» همهٔ قفلهای خانه است. کلیدساز با داشتن قالب میتواند هر تعداد کلید بسازد. اگر گوشیتان گم شود، با همین کلمات در کیف پول جدید همهچیز برمیگردد؛ اگر کلمات را کسی ببیند، او هم میتواند همهچیز را ببرد.
پس سه قاعدهٔ طلایی دارید: کلمات را روی کاغذ یا فلز بنویسید و آفلاین نگه دارید (نه عکس، نه یادداشت گوشی، نه ایمیل به خودتان)؛ هرگز آنها را به هیچکس نگویید، حتی «پشتیبانی»؛ و هرگز آنها را در هیچ سایت یا فرمی تایپ نکنید. تنها جایی که این کلمات وارد میشوند، خودِ نرمافزار یا دستگاه کیف پول رسمی هنگام بازیابی است.
📘 توضیح متوسط
کلید خصوصی (Private Key) یک عدد ۲۵۶ بیتی است. از آن با ضرب روی منحنی بیضوی secp256k1 کلید عمومی (Public Key) ساخته میشود و از کلید عمومی با هش کردن، آدرس به دست میآید. این مسیر یکطرفه است: از کلید خصوصی به آدرس رسیدن آسان است، اما برگشت از آدرس یا کلید عمومی به کلید خصوصی با فناوری امروز عملاً ناممکن است. برای امضای تراکنش، کیف پول هش تراکنش را با کلید خصوصی امضا میکند و هر گرهٔ شبکه با کلید عمومی صحت امضا را بررسی میکند، بدون آنکه کلید خصوصی هرگز ارسال شود.
استاندارد BIP-39 فهرستی ثابت از ۲۰۴۸ کلمه دارد؛ هر کلمه ۱۱ بیت را نمایش میدهد (چون ۲ به توان ۱۱ برابر ۲۰۴۸ است). عبارت ۱۲ کلمهای ۱۳۲ بیت دارد: ۱۲۸ بیت آنتروپی تصادفی و ۴ بیت چکسام. عبارت ۲۴ کلمهای ۲۶۴ بیت دارد: ۲۵۶ بیت آنتروپی و ۸ بیت چکسام. چکسام باعث میشود اگر یک کلمه را اشتباه بنویسید، کیف پول معمولاً خطا بدهد، اما جایگزین پشتیبان درست نیست.
از عبارت بازیابی طبق BIP-32 درختی از کلیدها ساخته میشود (کیف پول سلسلهمراتبی یا HD) و هر حساب و آدرس با یک «مسیر اشتقاق» مشخص میشود؛ مثلاً حساب اول اتریوم معمولاً m/44'/60'/0'/0/0 است. به همین دلیل یک عبارت بازیابی میتواند همزمان آدرسهای بیتکوین، اتریوم و شبکههای دیگر را بسازد و با پشتیبان گرفتن از یک عبارت، از همهٔ آنها پشتیبان گرفتهاید.
🔬 توضیح تخصصی
BIP-39 یک «عبارت عبور» اختیاری (Passphrase) هم دارد که گاهی «کلمهٔ بیستوپنجم» نامیده میشود. بذر نهایی با PBKDF2-HMAC-SHA512 و ۲۰۴۸ دور تکرار از ترکیب کلمات و عبارت «mnemonic» بهاضافهٔ passphrase ساخته میشود. هر passphrase متفاوت، حتی با یک حرف اختلاف، کیف پولی کاملاً متفاوت و معتبر میسازد. مزیت: کسی که فقط کلمات را پیدا کند به دارایی اصلی نمیرسد. خطر: اگر passphrase را فراموش کنید، هیچ پیام خطایی نمیگیرید و فقط یک کیف خالی میبینید؛ دارایی برای همیشه از دست میرود. پس passphrase هم باید پشتیبان جداگانه داشته باشد.
ناسازگاری مسیر اشتقاق یک خطای رایج است: ورود همان عبارت در نرمافزار دیگر ممکن است موجودی صفر نشان دهد، چون نرمافزار جدید مسیر دیگری (مثلاً BIP-44 به جای BIP-84 برای بیتکوین SegWit بومی) را میخواند. پیش از وحشت یا وارد کردن کلمات در ابزارهای ناشناس، مسیر اشتقاق را در تنظیمات نرمافزار رسمی بررسی کنید. همچنین استانداردهای دیگری مثل SLIP-39 (پشتیبان شامیر) با BIP-39 قابل جایگزینی نیستند.
امنیت امضای ECDSA به یک عدد تصادفی یکبارمصرف (nonce) وابسته است. اگر نرمافزاری برای دو امضای مختلف از همان nonce استفاده کند، کلید خصوصی از روی دو امضا قابل محاسبه است؛ در اوت ۲۰۱۳ ضعف مولد اعداد تصادفی اندروید باعث سرقت بیتکوین از برخی کیفهای موبایل شد. کیفهای جدید معمولاً nonce را به روش قطعی RFC 6979 میسازند. درس عملی: فقط از نرمافزارهای شناختهشده و بهروز استفاده کنید و هرگز کلید را با «مولد آنلاین» یا عدد انتخابی خودتان نسازید، چون آنتروپی انسانی قابل حدس است.
🌍 مثال واقعی: ۷٬۰۰۲ بیتکوین پشت رمزی فراموششده — گزارش نیویورک تایمز، ژانویهٔ ۲۰۲۱
در ژانویهٔ ۲۰۲۱ روزنامهٔ نیویورک تایمز گزارش داد استفان توماس، برنامهنویس ساکن سانفرانسیسکو، کلید خصوصی کیف پولی با ۷٬۰۰۲ بیتکوین را روی یک حافظهٔ رمزدار IronKey نگه داشته و رمز آن را فراموش کرده است. این حافظه پس از ۱۰ تلاش ناموفق محتوایش را برای همیشه رمزگشاییناپذیر میکند و او در آن زمان ۸ تلاش را مصرف کرده بود.
این ماجرا روی دیگر سکهٔ کیف غیرحضانتی است: نه شبکهٔ بیتکوین و نه هیچ شرکتی نمیتواند دسترسی را برگرداند. ارزش دلاری این بیتکوینها با قیمت بازار تغییر میکند (برای قیمت روز به CoinGecko مراجعه کنید)، اما درس ثابت است: پشتیبان آفلاین، آزمودهشده و بدون نقطهٔ شکست واحد، بخشی از خود دارایی است.
🔤 واژگان تخصصی
فهرست ۱۲ تا ۲۴ کلمه از واژهنامهٔ ۲۰۴۸تایی BIP-39 که آنتروپی ریشهٔ کیف پول را به شکل خوانا نمایش میدهد.
مثال: بازیابی کامل کیف پول روی گوشی جدید با وارد کردن ۱۲ کلمه در اپلیکیشن رسمی کیف پول.
عدد مخفی ۲۵۶ بیتی که با آن تراکنشها امضا میشوند و مالکیت آدرس اثبات میشود.
مثال: کیف پول هنگام ارسال اتر، هش تراکنش را با کلید خصوصی حساب امضا میکند.
عددی که با ضرب روی منحنی بیضوی از کلید خصوصی ساخته میشود و برای تأیید امضا به کار میرود.
مثال: در اتریوم آدرس، ۲۰ بایت آخر هش Keccak-256 کلید عمومی است.
دادهای که ثابت میکند دارندهٔ کلید خصوصی یک پیام یا تراکنش مشخص را تأیید کرده است، بدون فاش کردن کلید.
مثال: گرههای شبکه امضای تراکنش را با کلید عمومی بررسی میکنند و تراکنش با امضای نامعتبر را رد میکنند.
متنی اضافه که همراه کلمات بازیابی، بذر متفاوتی میسازد؛ هر passphrase یک کیف پول جداگانه است.
مثال: کلمات یکسان با passphrase خالی یک کیف و با passphrase دیگر کیفی کاملاً متفاوت باز میکنند.
آدرسدهی سلسلهمراتبی که مشخص میکند کدام کلید از درخت کلیدهای HD ساخته شود.
مثال: m/44'/60'/0'/0/0 حساب اول اتریوم در بیشتر کیفهاست.
🔑 نکات کلیدی
- عبارت بازیابی یعنی مالکیت کامل؛ هر کس آن را ببیند، دارایی را دارد.
- عبارت بازیابی را فقط آفلاین (کاغذ یا فلز) نگه دارید؛ نه عکس، نه فضای ابری، نه پیامرسان.
- تنها جای وارد کردن کلمات، نرمافزار یا دستگاه رسمی کیف پول هنگام بازیابی است؛ هیچ سایت، فرم یا «پشتیبان» دیگری.
- امضا ثابت میکند کلید را دارید بدون آنکه کلید ارسال شود؛ کلید خصوصی هرگز نباید از کیف پول بیرون برود.
- passphrase امنیت را بالا میبرد اما فراموش کردنش بدون هیچ پیام خطایی دارایی را از بین میبرد.
⚠️ اشتباهات رایج
- تایپ عبارت بازیابی در سایتی که وعدهٔ «همگامسازی»، «رفع خطا» یا «دریافت ایردراپ» میدهد؛ اشتباه است چون هیچ سرویس قانونی هرگز عبارت بازیابی نمیخواهد.
- نگه داشتن عبارت در یادداشت گوشی یا ایمیل به خود؛ اشتباه است چون اینها با فضای ابری همگام میشوند و با نفوذ به یک حساب، کلید فاش میشود.
- ساختن کلید با عبارتی که خودتان انتخاب کردهاید (مثل شعر یا جمله)؛ اشتباه است چون آنتروپی انسانی قابل حدس است و رباتها چنین کیفهایی را خالی میکنند.
- هراس از دیدن موجودی صفر در نرمافزار جدید و وارد کردن کلمات در ابزار ناشناس؛ اشتباه است چون معمولاً مشکل فقط مسیر اشتقاق است.
🛠 تمرین عملی: امضای نمایشی و پشتیبان آزمایشی
- در بخش کلید و امضای آزمایشگاه یک جفت کلید نمایشی بسازید؛ این کلیدها فقط برای یادگیریاند و هرگز نباید دارایی واقعی داشته باشند.
- یک پیام کوتاه را امضا کنید، سپس یک حرف پیام را تغییر دهید و ببینید تأیید امضا شکست میخورد.
- در یک کیف پول آزمایشی تازه (که هرگز پول واقعی در آن نمیریزید) عبارت بازیابی را روی کاغذ بنویسید.
- اپلیکیشن را حذف کنید و کیف را با همان کاغذ بازیابی کنید؛ بررسی کنید آدرس اول همان آدرس قبلی است.
- بنویسید اگر یک passphrase اضافه میکردید، پشتیبان آن را کجا و جدا از کلمات نگه میداشتید.
✅ معیار درستی: تغییر یک حرف پیام امضا را نامعتبر کرد، کیف آزمایشی با کاغذ پشتیبان بازیابی شد و آدرس یکسان ماند؛ و در هیچ مرحله کلمات را در سایت، عکس یا پیام وارد نکردید.
🔒 در هیچ تمرینی از سرمایهٔ واقعی، عبارت بازیابی (Seed Phrase)، کلید خصوصی یا اتصال کیف پول اصلی استفاده نکنید.
📝 آزمون تطبیقی
هر بار ۵ سؤال از بانک ۹ سؤالی این درس انتخاب میشود؛ سؤالهایی که قبلاً اشتباه زدهاید زودتر برمیگردند. حدنصاب قبولی ۸۰٪ (۴ از ۵) است و درس بعد با قبولی باز میشود.
✍️ پرسش تشریحی
توضیح دهید چرا عبارت بازیابی از رمز عبور حساب صرافی حساستر است و یک روش کامل نگهداری آن (با یا بدون passphrase) طراحی کنید.
بعد از نوشتن، پاسخ خود را با این معیارها بسنجید
خودارزیابی: هر نکتهای را که پاسخ شما بهروشنی پوشش داده علامت بزنید.
🤖 دستیار آموزشی
دستیار آفلاین آکادمی: پاسخها فقط از متن درسها و واژگان همین آکادمی پیدا میشوند و منبع هر پاسخ نشان داده میشود. هوش مصنوعی مولد نیست، حدس نمیزند و هیچ سیگنال خرید و فروشی نمیدهد.
📎 منابع مطالعاتی
- BIP-39 — Mnemonic code for generating deterministic keys
- BIP-32 — Hierarchical Deterministic Wallets
- ethereum.org — Ethereum accounts
- Bitcoin Developer Guide — Wallets
🏁 معیار تسلط بر این درس: بتوانید مسیر کلید خصوصی تا آدرس و نقش امضا را توضیح دهید، ساختار ۱۲ و ۲۴ کلمه را محاسبه کنید و هر درخواست وارد کردن عبارت بازیابی خارج از کیف رسمی را فوراً بهعنوان حمله تشخیص دهید.