امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ساختار های کیف پول های بیت کوین و BIP32 و BIP43 و BIP44 و BIP49
#1
کیف پول های بیت کوین در آغاز به این شکل عمل میکردند که یک جفت کلید عمومی و خصوصی برای شما میساختند. سپس از روی کلید عمومی یک آدرس برای شما میساختند تا آن را به دیگران بدهید و بیت کوین بگیرید. با کلید خصوصی هم میتوانستید تراکنش های ورودی تان را خرج کنید.

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

برای حل این مشکل، کیف پول ها روشی دیگر در نظر گرفتند. آن ها برای کاربر یک مجموعه (مثلا ۲۰ تا) جفت کلید میساختند تا کاربر هر کدام را به یک شخص بدهد. هر بار که یکی از آدرس ها استفاده میشد، کیف پول یک جفت کلید دیگر میساخت و به مجموعه اضافه میکرد. مزیت این کار این بود که دیگر آدرس ها یکی نبودند و اتصال تراکنش ها به هم دیگر سخت تر شده و حریم خصوصی بیشتر حفظ میشد. ولی یک مشکل هم در کنار این مزیت پیش می آمد. آن هم پشتیبان گیری از کیف پول بود. از آنجا که با هر بار ساخته شدن یک جفت کلید، فهرست آدرس ها تغییر میکرد، باید هر بار یک نسخه پشتیبان از کیف پول گرفته میشد تا هیچ جفت کلیدی از بین نرود. اگر از بین میرفت همه ی بیت کوین های موجود در آن آدرس نیز از بین میرفتند.

برای حل مشکل پشتیبان گیری، کیف پول ها روشی دیگر در نظر گرفتند. آن ها یک جفت کلید اصلی میساختند و سپس کاربر یک بار از آن نسخه ی پشتیبان تهیه میکرد. سپس با استفاده از همین جفت کلید اصلی، آدرس های دیگر به شکل یک دنباله ساخته میشدند. برای ساده سازی فرض کنید آدرس دوم از اضافه کردن عدد ۲ به آدرس اصلی ساخته میشد و آدرس سوم هم با اضافه کردن عدد ۳ و به همین شکل ادامه پیدا میکرد. به این نوع کیف پول ها Deterministic گفته میشود.

ولی این کیف پول ها هم ضعف هایی دارند. مثلا نمیتوان امکان دیدن مانده ی کیف پول را به شخص دیگری داد چون آن شخص نمیتواند بدون داشتن کلید خصوصی اصلی، آدرس های پشت سر هم را بسازد. یا نمیتوان تنها بخشی از کیف پول را در اختیار شخص دیگری گذاشت.

برای حل این مشکل ها، BIP32 پیشنهاد شد. این BIP روشی را نشان میدهد که میتوان با کمک آن یک درخت سلسله مراتبی از جفت کلید ها داشت که هر شاخه ی آن را میتوان برای کاربرد های مختلف به کار برد و هر شاخه را جداگانه میتوان به شخص دیگری سپرد تا از آن خرج کند و یا اینکه دسترسی دیدن تراکنش های بخشی یا همه ی کیف پول را به شخص دیگری واگذار کرد. به این نوع کیف پول ها Hierarchical Deterministic یا HD میگویند.

با کمک کیف پول های HD، تنها یک بار در زمان ساخت آن از آن پشتیبان تهیه میکنید و سپس همه ی تراکنش های شما ایمن هستند و تا زمانی که به پشتیبان دسترسی داشته باشید، از بین نخواهند رفت و نیازی هم به پشتیبان گیری های پیوسته نخواهد بود.

پس از این BIP، پیشنهاد های دیگری هم برای بهبود آن آمده اند، از جمله BIP43، که میگوید در نخستین شاخه، شماره ی BIP نوشته شود تا کیف پول های مختلف بتوانند حالت های مختلف را پشتیبانی کنند و بدانند که در زیر آن شاخه با چه چیزی طرف هستند.

BIP44 هم پیشنهاد چند حسابی را داد. مثلا شما میتوانید یک حساب برای وب سایت خودتان داشته باشید و یک حساب برای کیف پول دم دستی خودتان و یک حساب برای کاربردی دیگر و همه ی این ها با همان نسخه ی پشتیبان ایمن هستند و شما تنها حساب وب سایت تان را روی سرور تان میگذارید، آن هم تنها به شکلی که وب سرور بتواند آدرس های جدید با آن بسازد و به مشتریان شما بدهد و حتی اگر دسترسی غیر مجازی پیش آمد، کسی نتواند مانده ی کیف پول شما را خالی کند.

همچنین BIP44 امکان پشتیبانی از چند نوع Coin را هم دارد و کیف پول های BIP44 میتوانند همزمان کیف پول چند Coin مختلف شما باشند.

همچنین در این کیف پول ها، شاخه ی آدرس های Receive و شاخه ی آدرس های Change از هم جدا شده اند.

پس از آن هم BIP49 برای پشتیبانی از تراکنش های Segwit که در یک اسکریپت جا گرفته اند پیشنهاد شده است.
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان