video thumb

مدیریت کلید بیت کوین (قسمت هفتم)

بررسی ها در دنیای واقعی بر روی رویکرد های عمومی بسیار سخت است. بنابراین ما شش کلاینت bitcoin و یا ابزار متمایزی که رویکرد های مدیریت کلید های توضیح داده شده را ارائه کرده اند، انتخاب کردیم.برای رسیدن به هدف بررسی قابلیت ها، هر کلاینتی با تنظیمات پیش فرض بر روی OS X بررسی شد.

 

کلاینت های بررسی شده

بررسی ها در دنیای واقعی بر روی رویکرد های عمومی توضیح داده شده در بخش ۳ بسیار سخت است. بنابراین ما شش کلاینت بیت کوین

کلید ها در حافظه دستگاه

کلاینت بیت کوین مرجع، Bitcoin Core، یک کلاینت چند پلتفرمه است که کلید ها را در حافظه دستگاه ذخیره می کند (به صورت اختیاری و با رمز عبور رمزنگاری می کند)، Bitcoin Core اولین کلاینت پیشنهاد شده در سایت bitcoin.org می باشد.

کیف های محافظت شده توسط پسورد (رمزنگاری شده)

از آنجایی که رمز نگاری به وسیله رمز عبور گرفته شده از کاربر راحت تر است، ما از کلاینت Multibit استفاده می کنیم.

ذخیره کننده آفلاین

ما از کیف های کاغذی به عنوان ذخیره کننده های آفلاین استفاده می کنیم. درحالی که کیف های کاغذی می توانند به سادگیِ پرینت کلید ها تولید شوند، ما از سایت ایجاد کیف کاغذی Bitaddress.org استفاده کردیم. Bitaddress به کاربران اجازه می دهد که کلید های تصادفی جدید در مرور گر خود تولید کنند، و در ادامه کد های QR خود را پرینت کنند.

ذخیره کننده های ایزوله

ما کلاینت Bitcoin Armory را انتخاب کردیم که قابلیت ایجاد یک کیف آفلاین که می تواند برای امضاء و استخراج تراکنش ها استفاده شود را داراست.

کلید های گرفته شده از رمز عبور

یکی از راحت ترین راه های تولید یک کلید بر اساس رمز عبور در سایت Brainwallet قرار دارد. این سایت به شما اجازه می دهد که بتوانید یک کلمه عبور را به یک کلید خصوصی تبدیل کنید.

کیف های هاست شده

ما از Blockchain.info در نقش کیف هاست شده خود استفاده می کنیم. در حال حاضر سایت مذکور مسئولیت مدیریت بیش از دو میلیون و پانصد هزار کیف پول کاربران را بر عهده دارد.

نتایج

در ادامه جزئیات کارهای انجام شده را ارائه خواهیم کرد، که مسائل مطرح شده در نسخه کوتاه مربوط به کنفرانس را بیشتر باز میکند.

کلید های ذخیره شده در حافظه دستگاه( Bitcoin Core)

ما با بررسی Bitcoin Core اغاز می کنیم، کلاینت کیف پول اصلی بیت کوین، که کلید ها را در دستگاه ذخیره می کند. ما فرض می کنیم که کاربر کلاینت Bitcoin Core را دانلود و نصب کرده است(پروسه نصب ساده است).

T1 : تنظیمات

Bitcoin Core به صورت نامحسوس و بار اولی که استارت می شود، یک دسته آدرس تولید می کند اما هیچ پیغامی به کاربر نشان نمی دهد (G3 را نقض می کند). آدرس دریافت کننده در بخش دریافت سکه ها قابل مشاهده است، اما این قسمت به راحتی با بخش آدرس ها که آدرس بقیه کاربران و لیست دوستان را نگه می دارد اشتباه می شود (G2 را نقض می کند).

برای بازیابی موجودی حساب، Bitcoin Core باید آنلاین باشد، و کاربر باید تا دانلود کامل زنجیره بلاک ها  صبر کند. به جز یک خط قرمز رنگ میان دو پنجره سیاه که نشان دهنده آنلاین و یا افلاین بودن کلاینت است، نشانه یا پیغام دیگری وجود ندارد.

با توجه به سایز زنجیره بلاک ها، ممکن است به روز شدن آن، ساعتها و حتی روز ها به طول بیانجامد. یک نوار وضعیت که با جمله “شبکه در حال همگام سازی است” پروسه به روز رسانی را نشان می دهد (G8 را پوشش می دهد)، اما کلمات شاید تکنیکی و نا مفهوم برای کاربران جدید باشند.

وقتی موس را بر روی آیکون نگه می داریم، به ما صفر اتصال فعال به شبکه بیت کوین را نشان می دهد، جمله ای که کاربران زیاد با آن آشنایی ندارند و کمکی به حل مشکل نمی کند(G4 و G6 را نقض می کند). وقتی که زنجیره بلاک ها دانلود شد، موجودی در قسمت بررسی اجمالی به نمایش داده می شود (G3 را پوشش می دهد).

T2: خرج کردن

از آنجایی که کلید ها به صورت آماده در دسترس کلاینتBitcoin Core  قرار دارند، خرج کردن بیت کوین آسان و راحت می باشد. کاربران با استفاده از قسمت “خرج کردن – Spend” می توانند منابع مالی خود را خرج نمایند (G1 و G2 را پوشش می دهد). از آنجایی که تمرکز ما بر روی مدیریت کلید می باشد، ما کامل شدن چرخه تراکنش را بررسی نمی کنیم (بخشی که ممکن است مشکلاتی در هنگام استفاده داشته باشد). ما تمرکز بر وجود و در دسترس بودن کلید برای نرم افزار داریم (بخشی که در مواردی پیچیده است، مانند ذخیره آفلاین).

T3: خرج از دستگاه دوم

نصب Bitcoin Core بر روی یک دستگاه دوم، یک سری کلید جدید را ایجاد می نماید. کاربران شاید متوجه این موضوع که تمامی کلید ها باید در دستگاه دوم نیز کپی شوند نباشند (G1 را نقض می کند(، و اگر هم متوجه باشند، کدام فایل باید انتقال یابد (G2 را نقض می کند).

راه درست پشتیبان گیری این است که wallet.dat را به وسیله گزینه پشتیبان گیری کیف پول در قسمت File و در یک مسیری ذخیره کرد. در ادامه کاربر باید به صورت امن فایل را به دستگاه جدید انتقال دهد، و هیچ راهنمایی برای انجام این کار وجود ندارد (G2 را نقض می کند) و یا اشاره ای به انتقال با ملاحظات امنیتی نشده است (G5 را نقض می کند).

با فرض این مسئله که کاربر wallet.dat را به دستگاه دوم انتقال داده است، کاربر می تواند تلاش کند که گزینه Import را در کیف نصب شده جدید پیدا کند، و یا اینکه فایل را بگیرد و  بر روی کیف رها کند، اما موفق نخواهد شد چون گزینه ای به اسم Import وجود ندارد. مستند سازی اصلا خوب نیست و هیچ چیزی در قسمت Help وجود ندارد، بجز یک صفحه رفع باگ که برای کاربران حرفه ای به کار می اید (G2 و  G6 را نقض می کند)!

تنها مکانیسم

برای فعال کردن کیف بر روی دستگاه دوم این است که فایل wallet.dat دستگاه دوم را با فایل پشتیبان wallet.dat  جا به جا کرد. احتمال اینکه کاربران جدید بتوانند این کار را انجام دهند بسیار کم است. در واقع پیدا کردن مسیر فایل بسیار سخت است، و راه آن جستجو در دستگاه است که این کار تنها در دستگاه هایی امکان پذیر است که جستجو ممکن بوده و از نام فایل اطلاع داشته باشیم (spotlight هیچ نتیجه ای در مورد فایل wallet.dat به شما نمی دهد). کاربر احتمالا به صورت آنلاین جستجو می کند[۱]. بر روی OS X مسیر /Users/User/Library/Application Support/Bitcoin/wallet.dat می باشد.

قدم بعدی

این خواهد بود که wallet.dat را با فایل استخراج شده از دستگاه اصلی جا به جا کرد، باید توجه داشت که نام فایل باید دقیقا wallet.dat باشد تا Bitcoin Core بتواند آن را بخواند. خطاهایی که ممکن است با آن مواجه شویم به شرح ذیل می باشد:

  • کاربر ممکن است که فایل dat اصلی را به جای فایل استخراج شده از دستگاه اول کپی کند، این به ایجاد یک فایل آسیب دیده که قابل خواندن توسط Bitcoin Core نیست منجر می شود. این مسئله به خاطر Lock کردن فایل به وسیله Bitcoin core در زمان استفاده می باشد. خطا با انجام پروسه به درستی قابل حل می باشد (G4 را نقض می کند).
  • کاربر باید صبر کند تا Bitcoin Core در دستگاه دوم، زنجیره بلاک ها را از شبکه P2P دانلود کند تا بتواند یک تراکنش را مجاز قلمداد کند.
  • بر روی دستگاه دوم، موجودی نهایی ممکن است اشتباه باشد و باید با زنجیره بلاک ها همگام سازی شود و مجددا آن را اسکن نماید تا به مقدار موجودی صحیح برسد (G3 را نقض می کند).

نهایتا در صورتی که هر کدام از کلاینت ها استخر کلید هایشان تمام شود، این پروسه باید مجددا اجرا شود. اگر هر دو تمام شود، هیچ راهی برای یکی کردن استخر کلید ها وجود ندارد، و جابجایی یکی از wallet.dat ها با دیگری به از دست رفتن منابع (بدون امکان بازگشت) منجر می شود(G5 را نقض می کند).

باید توجه داشت که جابجایی فایل کلید ممکن است نیاز به اسکن مجدد زنجیره بلاک ها داشته باشد تا بتواند مقدار موجودی درست را نمایش دهد (G3 را نقض می کند).

T4: بازیابی

اگر فقط یک دستگاه مورد استفاده قرار گرفته باشد، هیچ راهی برای بازیابی فایل از دست رفته نیست (مشکلاتی مانند خرابی دیسک، خرابی فایل و یا گم شدن خود دستگاه که G5 را نقض می کند). اگر کاربر نسخه پشتیبان تهیه کرده باشد، پروسه بازیابی همانند T3 است.

[۱] . directory