میشه کلمات بازیابی یک کیف پول رو داخل کیف پول دیگه‌ای وارد کرد؟ اگه سرویس‌دهنده‌ی کیف پولم از دسترس خارج شد چیکار باید بکنم؟

می‌دونیم که توی دنیای رمزارزها، زمانی سکه‌ها به خودمون تعلق داره که کلیدهای خصوصی یا کلمات بازیابی‌شون (اون 12، 18 یا 24 کلمه) رو داشته باشیم. و البته باید مطمئن باشیم که کیف پولمون به درستی امنیت اون کلمات رو حفظ می‌کنه و اجازه نمی‌ده اون‌ها از دستگاهمون خارج بشن!

مشکلی که عنوان این پست مطرح می‌کنه معمولا در مورد کیف پول‌های مالتی والت (کیف پول‌هایی که از کوین‌ها متنوعی پشتیبانی می‌کنن) پیش میاد. اما در حالتی که کیف پولی به صورت اختصاصی فقط یک رمزارز رو پشتیبانی کنه هم ممکنه پیش بیاد.

فرض کنیم تا به امروز از کیف پول کوینومی استفاده می‌کردیم و از این به بعد می‌خوایم از کیف پول تراست والت [هم] استفاده کنیم. این کار می‌تونه دو تا دلیل داشته باشه:

  1. تراست والت امکاناتی داره که کوینومی نداره و نیاز به اون امکانات داریم.
  2. کوینومی به هر دلیلی دیگه قابل استفاده نیست و نیاز به یک جایگزین داریم.

حالت اول رو چندان توصیه نمی‌کنم چون در این حالت شما دارید مشکلات امنیتی که در هر دو کیف پول می‌تونه وجود داشته باشه رو همزمان متحمل می‌شید. در حالت دوم هم بهتره بعد از بازیابی موجودیتون به کمک کلمات بازیابی، کیف پول جدیدی ایجاد کنید و موجودی حساب قدیمی‌تون رو به حساب جدیدتون منتقل کنید.

اما آیا این کار قابل انجام هست؟

شبکه‌ی بیت‌کوین رو که در نظر بگیریم، ما برای خرج کردن بیت‌کوین‌هامون در نهایت نیاز داریم که کلید خصوصی هر آدرسی که درش بیت‌کوین دریافت کردیم رو داشته باشیم. بقیه رمزارزها هم تقریبا به همین شکل عمل می‌کنن. این کلید خصوصی از روی کلمات بازیابی‌مون به اضافه‌ی یه متن مشخص (derivation path) به دست میاد. این «متن مشخص»، چند بخش داره که با تغییر اون‌ها می‌تونیم کلیدهای خصوصی متعددی تولید کنیم.

  1. بخش اول مربوط به رمزارزی هست که میخوایم براش کلید خصوصی تولید کنیم. مثلا با هم توافق می‌کنیم یا استانداردی وضع می‌کنیم که اگر برای بیتکوین میخوایم کلید خصوصی تولید کنیم، عدد اول باید 0 باشه. برای شبکه‌ی اتریوم می‌تونیم 1 رو در نظر بگیریم و همینطور برای بقیه‌ی شبکه‌ها هم می‌تونیم اعداد مشخصی رو در نظر بگیریم.
    دقت کنید که توکن‌هایی که روی شبکه‌های وجود دارن نیازی به تعریف این عدد ندارن، چون برای خرج کردنشون از کلید خصوصی شبکه‌ای که بسترشون روی اون هست استفاده می‌کنیم.
  2. بخش دوم رو برای حساب در نظر میگیریم. مثلا 0 برای حساب اول شما و 1 برای حساب دوم و…
    این عدد کمک می‌کنه که با یه مجموعه کلمات بازیابی، بتونیم روی هر شبکه، حساب‌های کاربری مجزایی داشته باشیم.
  3. بخش سوم رو هم برای آدرس‌ها در نظر می‌گیریم.
    مثلا حساب اول بیت‌کوینمون رو اگه در نظر بگیریم، بخش اول میشه صفر، بخش دوم میشه صفر و اگر بخش سوم رو 0 قرار بدیم، مشخصات آدرس اول به دست میاد. اگر بخش سوم رو به 1 تغییر بدیم، مشخصات آدرس دوم به دست میاد و…
    می‌دونیم که به طور معمول، برای دریافت بیت‌کوین‌ها همیشه آدرس جدیدی رو تولید می‌کنیم و از یک آدرس استفاده نمی‌کنیم. چون اینکار بدون اینکه ضرری داشته باشه، حریم خصوصی ما رو بهبود میده. حالا میدونیم که این آدرس‌ها در حقیقت با تغییر دادن بخش سوم این «متن مشخص» تولید می‌شه.

مثال عملی ببینیم! جدول پایین آدرس‌های مختلفی که باهاشون برنامه Bitcoin Core با پیاده‌سازی BIP32 تولید می‌کنه رو مشخص کرده. اینجا می‌تونید خودتون با پارامترها بازی کنید و ببینید آدرس‌های جدید با چه پارامترهایی امکان تولید دارن.

بالاخره که چی؟ این کار قابل انجام هست؟

زمانی شما موجودی حساب قبلی‌تون رو داخل کیف پول جدید هم می‌بینید که متن مشخص (Derivation Path) این کیف پول‌ها یکی باشه. وگرنه انگار که حساب جدیدی رو در کیف پول جدید بازیابی کردید و به موجودی کیف پول قبلی دسترسی نخواهید داشت.

می‌تونید Derivation Path کیف پول‌های مختلف رو با جستجو و یا از طریق سایتشون به دست بیارید. کیف پول‌های محدودی وجود دارن که بهتون اجازه میدن Derivation Path رو به صورت دلخواه تعیین کنید. اما اگر از این طریق نتونستید موجودی‌تون رو بازیابی کنید، پاراگراف بعدی رو ببینید.

سایتی که بالاتر برای بازی کردن با پارامترها بهش اشاره شد می‌تونه برای استخراج کردن کلیدهای خصوصی حساب قبلی هم مورد استفاده قرار بگیره. که می‌تونید کلیدهای خصوصی رو در کیف پول‌های مختلف وارد کنید و موجودی رو به حساب جدید انتقال بدید. اما دقت کنید که استفاده کردن از یک سایت برای اینکار منطقی نیست و نکات مختلفی باید در موردش رعایت بشه و به نحو درستی ازش استفاده بشه. (دانلود کدها، بررسی‌ش و اجراش به صورت آفلاین) کیف پول الکترام یکی از گزینه‌های خوب هست که می‌تونید ازش برای بازیابی بیت‌کوین‌هاتون داخل کیف پول‌های مختلف استفاده کنید. چون امکان مشخص کردن Derivation Path براش وجود داره.

برای دسترسی به موجودی اتریوم‌تون هم می‌تونید از سایت MEW استفاده کنید که مجددا باید نکات امنیتی رو مد نظر قرار بدید.

حرف آخر

اگر که زمانی مشکلی برای دسترسی به حساب‌تون داشتید و سرویس‌دهنده‌ی کیف پولتون دیگه در دسترس نبود، در قدم اول خونسردی خودتون رو حفظ کنید. چون اگر نکات امنیتی رو به درستی رعایت کرده باشید هیچ نگرانی وجود نداره و می‌تونید بدون عجله اطلاعات لازم رو کسب کنید و بعد از اینکه مطمئن بودید، اقدامات لازم برای بازیابی رو انجام بدید. در غیر این صورت ممکنه بازیابی به روش‌های نادرست باعث بشه کوین‌هاتون رو از دست بدید.