ریخت‌‌ درون‌برد کیف‌پول

از سیمرغ
پرش به ناوبری پرش به جستجو

ریخت درون‌برد کیف‌پول (به انگلیسی: Wallet import format(WIF)) یا ریخت برون‌برد کیف‌پول (به انگلیسی: Wallet export format) راهی برای کدگذاری کلید خودویژه ای‌سی‌دی‌اِس‌اِی برای ساده‌تر کردن رونوشت آن است.

کلید خودویژه به WIF[ویرایش | ویرایش مبدأ]

۱. یک کلید خودویژه در نظر می‌گیریم:

   0C28FCA386C7A227600B2FE50B7CAE_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_11EC86D3BF1FBE471BE89827E19D72AA1D

۲. پیش از نشانی‌های شبکه‌ی اصلی بایت 0x80 و برای نشانی‌های شبکه‌ی آزمایشی تست‌نت بایت 0xef را می‌چسبانیم. همچنین اگر کلید خودویژه همتای یک کلید همه‌بین فشرده‌شده بود به تَه آن بایت 0x01 را می‌چسبانیم.

   800C28FCA386C7A227600B2FE50B7C_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_AE11EC86D3BF1FBE471BE89827E19D72AA1D

۳. با شا-۲۵۶ کلید گسترش‌یافته را درهم ‌می‌کنیم:

   8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

۴. درهم بالا را دوباره با شا-۲۵۶ درهم می‌کنیم:

   507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

۵. ۴ باید نخست درهم دوم را برمیداریم. این انباشت‌سنجمان(چکسام) است.

507A5B8D

۶. انباشت‌سنج گام ۵ را به کلید گسترش یافته‌ی گام ۲ می‌افزاییم:

   800C28FCA386C7A227600B2FE50B7CAE11EC8_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_6D3BF1FBE471BE89827E19D72AA1D507A5B8D

۷. با کمک پایه۵۸آزما از رشته بایت به پایه۵۸ می‌بریم. این همان ریخت درون‌برد کیف‌پول(WIF) است.

   5HueCGU8rMjxEXxiPuD5BDk_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_u4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

WIF به کلید خودویژه[ویرایش | ویرایش مبدأ]

۱. رشته‌ای از ریخت درون‌برد داریم:

   5HueCGU8rMjxEXxiPuD5BDk_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_u4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

۲. با پایه۵۸آزما از پایه۵۸ به رشته بایت می‌‌بریم:

   800C28FCA386C7A227600B2FE50B7CAE11EC_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_86D3BF1FBE471BE89827E19D72AA1D507A5B8D

۳. ۴ بایت انباشت‌سنج پایانی را می‌زداییم:

   800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

۴. بایت نخست را می‌زداییم (این بایت باید 0x80 باشد ولی نگارش‌های پیشین الکترام و برخی سازندگان نشانی‌های ویژه شاید 0x81-0x87 را بکار برده باشند.) اگر کلید خودویژه همتای کلید همه‌بین فشرده بود بایت پایانی(که باید 0x01 باشد) را هم می‌زداییم. اگر همتای آن کلید همه‌بین فشرده باشد رشته‌ی درون‌برد بجای 5 با K یا L (برای الکترام کهنه و... با M) آغاز می‌شود (برای تست‌نت با c بجای 9). این کلید خودویژه است.

   0C28FCA386C7A227600B2FE50B7CAE1_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_1EC86D3BF1FBE471BE89827E19D72AA1D

بررسی انباشت‌سنج WIF[ویرایش | ویرایش مبدأ]

۱. رشته‌ی ریخت درون‌برد را داریم

   5HueCGU8rMjxEXxiPuD5BD_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_ku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

۲. با پایه۵۸آزما از پایه۵۸ به رشته بایت می‌‌بریم:

   800C28FCA386C7A227600B2FE50B7CAE11E_SAMPLE_PRIVATE_KEY_DO_NOT_IMPORT_C86D3BF1FBE471BE89827E19D72AA1D507A5B8D

۳. ۴ بایت آخر انباشت‌سنج را می‌زداییم:

   800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

۴. رشته‌ی کوتاه شده را با شا-۲۵۶ درهم‌سازی می‌کنیم:

   8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

۵. دوباره درهم گام ۴ را با شا-۲۵۶ درهم‌سازی می‌کنیم:

   507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

۶. ۴ بایت نخست انباشت‌سنجمان است:

   507A5B8D

۷. بررسی می‌کنیم که با ۴بایت پایانی گام ۲ برابر باشد:

   507A5B8D

۸. اگر برابر بودند و رشته بایت گام ۲ با 0x80 (0xef برای نشانی‌های تست‌نت) آغاز می‌شد ایرادی درکار نیست.