BIP32 یا پیشنهاد بهبود بیتکوین شماره ۳۲، پروتکلی است که ورود کیفهای مقدماتی تصادفی سلسله مراتبی (HD) را به دنیای رمزارزها معرفی کرد. کیفهای HD ارتقاء اساسی نسبت به کیفهای سنتی دارند زیرا اجازه میدهند از یک کلید والد تعدادی کلید فرزندی ایجاد شود، به این معنی که کاربران میتوانند از یک کلید، چندین آدرس منحصر به فرد بسازند. این استاندارد توسط پیتر ویوله، یک توسعه دهنده اصلی بیت کوین کور، پیشنهاد شد و در فوریه ۲۰۱۲ منتشر شد. این پیشنهاد با هدف بهبود محدودیتهای کیفهای غیر مقدماتی بود که برای هر آدرس جدید نیاز به یک نسخه پشتیبان جدید داشتند.
BIP32 چگونه کار می کند؟
BIP32 دو مفهوم مهم را معرفی میکند: اشتقاق کلید و ساختار درخت سلسله مراتبی.
- اشتقاق کلید: در یک کیف پول HD BIP32 تمام کلیدها و آدرسها از یک کلید اصلی به نام کلید خصوصی اصلی والد ناشی میشوند. کلیدهای فرزندی (هر دوی خصوصی و عمومی) از این ریشه به صورت قطعی اشتقاق مییابند؛ به این معنی که همیشه میتوانید یک مجموعه یکسان از کلیدها را از کلید اصلی تولید کنید. این سیستم همچنین حریم خصوصی را تضمین میکند زیرا میتوان کلیدهای عمومی را بدون برملاکردن کلیدهای خصوصی متناظر تولید کرد.
- ساختار درختی سلسله مراتبی: BIP32 اجازه می دهد تا کلیدها در یک ساختار درختی چند سطحی سازماندهی شوند. این بدان معنی است که می توانید کلیدهای فرزند، کلیدهای نوه و غیره را به صورت سلسله مراتبی سازماندهی کنید. این به شما انعطافپذیری میدهد تا وجوه را در شاخههای مختلف (حسابها، حسابهای فرعی) تحت یک کیف پول واحد مدیریت کنید.
این دو ویژگی با هم، پشتیبان گیری را بسیار ساده تر می کنند زیرا یک نسخه پشتیبان از کلید اصلی (seed) برای بازیابی همه کلیدها و آدرس های مشتق شده کافی است.
کلیدهای توسعه یافته
سید BIP39 (128-256 بیت) یک کلید خصوصی اصلی (256 بیت) را با استفاده از عملکرد هش HMAC SHA512 تولید می کند. یک کد زنجیره اصلی با 256 بیت آنتروپی اضافه شده است تا کلیدهای مشتق شده از کلید اصلی تنها به خود کلید اصلی وابسته نباشد.
کلید خصوصی توسعه یافته به صورت (k,c) نشان داده می شود که در آن k کلید خصوصی عادی و c کد زنجیره ای است. هر کلید توسعه یافته مشتق شده از کلید والد دارای 231 کلید فرزند معمولی و 2³¹ کلید فرزند سخت شده است. هر کدام از این کلیدها دارای یک شاخص هستند. کلیدهای فرزند معمولی از شاخص های 0 تا 2³¹-1 استفاده می کنند. کلیدهای فرزند سخت شده از شاخص های 2³¹ تا 2³¹-1 استفاده می کنند.
تابع مشتق کودک (CKD)
با توجه به یک کلید توسعه یافته والد و یک شاخص "i"، می توان کلید توسعه یافته فرزند مربوطه را محاسبه کرد اما برای انجام این کار، الگوریتم بستگی به این دارد که فرزند یک کلید سخت شده باشد یا نه و اینکه ما در مورد خصوصی یا عمومی صحبت می کنیم. تابع هش HMAC-SHA512 سه ورودی دارد، کلید خصوصی یا عمومی والد، شماره فهرست I و کد زنجیره والد. خروجی تابع یک هش 256 بیتی چپ و 256 بیت هش راست را می دهد. اگر کلید یک کلید سخت شده باشد، کلید خصوصی فرزند را دریافت می کنیم که در آن بیت های هش سمت چپ به کلید خصوصی والد اضافه می شوند.
HDW به عنوان چندین "حساب" سازماندهی شده است. حسابها شمارهگذاری میشوند، حساب پیشفرض عدد 0 است. هر حساب از دو زنجیره کلید تشکیل شده است: یک زنجیره داخلی و یک خارجی. از زنجیره خارجی برای تولید آدرس های عمومی جدید استفاده میشود، در حالی که زنجیره کلید داخلی برای سایر عملیاتهایی که نیازی به ارتباط ندارند استفاده میشود.
کیف پول قطعی سلسله مراتبی (HD) چیست؟
کیف پول قطعی سلسله مراتبی یک کیف پول رمزنگاری است که از ساختار سلسله مراتبی برای استخراج جفت کلید (کلیدهای عمومی و خصوصی شما) استفاده می کند و در سطح پایه، به شما امکان می دهد چندین حساب را با یک کیف پول رمزنگاری واحد مدیریت کنید. برای ورود به فناوری کمی عمیق تر، به هر کیف پول رمزنگاری اجازه می دهد تا چندین جفت کلید ایجاد کند و هر جفت کلید یک حساب جداگانه را کنترل کند. کیف پول های HD جفت های کلید خود را در چندین لایه تولید می کنند که هر لایه مسئول تولید لایه بعدی جفت کلید است. آنها همچنین کلیدهای عمومی را مستقیماً از کلیدهای خصوصی تولید می کنند. بدون اینکه کلید عمومی به کلید خصوصی منتهی شود. برای توضیح اهمیت این موضوع، اجازه دهید ابتدا به مشکلی که آنها سعی در حل آن دارند بپردازیم.
BIP32 و ترزور
کیف پول های سخت افزاری Trezor از پروتکل BIP32 به عنوان ستون اصلی سیستم مدیریت کلید استفاده می کنند. هنگامی که یک دستگاه ترزور مقداردهی اولیه دارد، با استفاده از BIP39 یک بذر بازیابی 12، 18 یا 24 کلمه ای تولید می کند. این یک کلید اصلی برای فرآیند استخراج کلید BIP32 است.
استفاده از BIP32 مزایای قابل توجهی دارد. اولاً، روشهای پشتیبانگیری را بسیار سادهتر میکند زیرا کاربران فقط باید بذر بازیابی BIP39 خود را ایمن کنند تا از دسترسی به همه کلیدهای خود اطمینان حاصل کنند. ثانیا، حریم خصوصی را با اجازه دادن به کاربران برای ایجاد آدرس های جدید برای هر تراکنش افزایش می دهد و ردیابی را دشوارتر می کند. در نهایت، ساختار سلسله مراتبی به کاربران این امکان را می دهد که وجوه خود را در حساب های مختلف و زیر حساب های مختلف به صورت ساختاریافته سازماندهی کنند.
در پایان، BIP32 شیوه مدیرت کلیدها و آدرسها را در کیف پولها متحول کرده است و امنیت، بازیابی و سازماندهی دارایی های دیجیتال خود را برای کاربران آسانتر میکند. با ادغام BIP32، ترزور راهی ایمن، کارآمد و کاربرپسند برای مدیریت ارزهای دیجیتال خود در اختیار کاربران قرار می دهد. هر بار که کاربر می خواهد یک حساب یا آدرس جدید در کیف پول Trezor خود ایجاد کند، BIP32 برای استخراج کلیدهای جدید از سید (seed) اصلی استفاده می شود. این بدان معنی است که کاربران می توانند چندین حساب و آدرس را مدیریت کنند که همه به سید (seed) بازیابی اصلی مرتبط هستند.