
کیفپولهای کریپتو چگونه کار میکنند: کلیدها، امضاها و عبارات اولیه
نحوه کار کیف پولهای رمزارز به یک وظیفه برمیگردد: تولید و محافظت از اسراری که میتوانند امضاهای رمزنگاری معتبر تولید کنند تا وجوه ثبت شده در یک بلاکچین را جابجا کنند. کیف پولهای مدرن این کار را با تبدیل یک پشتیبان اصلی (یک عبارت دانه) به یک درخت کامل از کلیدها و آدرسهای کیف پول انجام میدهند که میتوانید بدون ایجاد پشتیبانهای جدید، آنها را چرخش دهید.
نکات کلیدی
- کیف پولها سکهها را ذخیره نمیکنند. بلاکچین مالکیت را ثبت میکند و کیف پول اسراری را ذخیره میکند که میتوانند تراکنشها را برای خرج کردن امضا کنند.
- یک کلید خصوصیامضایی تولید میکند که خرج کردن را مجاز میسازد، در حالی که یک کلید عمومی و آدرس کیف پولچیزهایی هستند که دیگران برای پرداخت به شما استفاده میکنند.
- یک عبارت دانهمیتواند یک کیف پول را به طور کامل بازیابی کند، بنابراین هر کسی که آن را به دست آورد میتواند وجوه را برداشت کند.
- بیشتر کیف پولهای مدرن یک کیف پول سلسلهمراتبی تعیینکننده هستند که بسیاری از حسابها و آدرسها را از یک دانه با استفاده از مسیرهای تعیینشده استاندارد استخراج میکنند.
کیف پولها به عنوان کلید، نه ذخیرهسازی سکه
در یک صفحه نمایش، یک کیف پول شبیه یک حساب به نظر میرسد: موجودی در بالا، یک دکمه "دریافت"، یک دکمه "ارسال". در زیر سطح، بیشتر شبیه یک دستگاه امضا در یک میز معاملاتی عمل میکند. زنجیره دفتر کل را نگه میدارد. وظیفه کیف پول این است که به شبکه ثابت کند که شخصی که "ارسال" را فشار میدهد مجاز به جابجایی وجوه خاص است.
به همین دلیل است که "چگونه کیف پولها رمزارز را ذخیره میکنند" یک عبارت گمراهکننده است. سکهها درون اپلیکیشن یا دستگاه نشسته نیستند.دفتر کلبیتکوین قطعات قابل خرج کردن ارزش را ردیابی میکند و یک کیف پول آنها را با نگهداشتن اسرار لازم برای مجاز کردن خرج کردن کنترل میکند.
واژگان Bitcoin.org در مورد این اصل صریح است: یک کیف پول شامل کلید خصوصی است که به آن اجازه میدهد بیتکوینهای تخصیصیافته به آن را در بلاکچین خرج کند، موجودیها را نشان دهد و پرداختها را ایجاد کند.
سه شناسه به طور مداوم با هم مخلوط میشوند، بنابراین کمک میکند که آنها را به وضوح جدا کنیم. یک آدرس کیف پول رشتهای است که شما برای دریافت وجوه به اشتراک میگذارید و Bitcoin.org اشاره میکند که ایدهآل است که فقط یک بار برای حفظ حریم خصوصی استفاده شود. یک کلید عمومی همتای غیرمحرمانهای است که میتواند برای تأیید امضاها استفاده شود.
یک کلید خصوصی دادههای محرمانهای است که برای اثبات حق خرج کردن از طریق یک امضای رمزنگاری شده استفاده میشود و اگر فاش شود، اجازه خرج کردن از کیف پول مرتبط را میدهد.
آخرین بخش پشتیبانگیری است. یک عبارت دانهیک ورود به اپلیکیشن نیست و یک "رمز عبور قابل بازنشانی" نیست. Bitcoin.org یک عبارت بازیابی را به عنوان دنبالهای از کلمات تعریف میکند که از آن میتوان یک کیف پول را به طور کامل بازیابی کرد و هشدار میدهد که هر کسی که آن را به دست آورد میتواند به بیتکوینهای مربوطه دسترسی پیدا کند. این واقعیت واحد بیشتر داستانهای وحشت کیف پول را توضیح میدهد: خطر واقعی از دست دادن یا نشت توانایی امضا کردن است.
نحوه ارسال و دریافت کیف پول
دریافت نیمه آسان است زیرا به هیچ اسراری نیاز ندارد. کیف پول یک آدرس کیف پول جدید تولید میکند، فرستنده آن را پرداخت میکند و شبکه آن پرداخت را در زنجیره ثبت میکند. سپس کیف پول بلاکچین را اسکن میکند (مستقیم یا از طریق یک سرویس) تا خروجیهایی را که متعلق به آدرسهایش هستند شناسایی کند و نمایش موجودی را بهروزرسانی کند.
ارسال جایی است که مکانیکهای کیف پول اهمیت دارند. در بیتکوین، موجودیها به عنوان UTXOهانمایش داده میشوند و Bitcoin.org آنها را به عنوان خروجیهای تراکنش خرج نشده تعریف میکند که میتوانند در تراکنشهای آینده خرج شوند. یک خرج یک یا چند UTXO را به عنوان ورودی مصرف میکند و UTXOهای جدیدی را به عنوان خروجی ایجاد میکند.
کیف پول انتخاب میکند که کدام UTXOها را خرج کند، یک تراکنش میسازد که خروجی گیرنده و معمولاً یک خروجی "تغییر" به فرستنده را مشخص میکند، سپس تراکنش را با کلید خصوصی مناسب امضا میکند. شبکه میتواند آن امضاها را بدون یادگیری کلیدهای خصوصی تأیید کند.
یک راه ساده برای فکر کردن به جریان این است:
1. کیف پول UTXOهای قابل خرج را که با آدرسهایش مرتبط هستند جمعآوری میکند و یک پیشنویس تراکنش میسازد. 2. کیف پول تراکنش را با مواد کلید خصوصی مربوطه امضا میکند و امضاهای رمزنگاری تولید میکند. 3. تراکنش امضا شده به شبکه پخش میشود و منتظر گنجاندن در یک بلوک میماند.
هزینهها "مالیات" نیستند که کیف پول دریافت میکند. Bitcoin.org هزینه تراکنش را به عنوان هزینهای که فرستنده برای تشویق ماینرها انتخاب میکند تعریف میکند و اشاره میکند که تراکنشهای با هزینه بالاتر معمولاً سریعتر تأیید میشوند، به ویژه زمانی که شبکه شلوغ است. این هزینه را به یک دکمه اولویت تبدیل میکند: فوریت انتخاب هزینه را بیشتر از مقدار ارسالی تعیین میکند.
تأییدها ساعت تسویه حساب هستند. Bitcoin.org تأیید را به عنوان گنجاندن تراکنش در یک بلوک تعریف میکند، با هر بلوک بعدی که خطر برگشت را کاهش میدهد. کیف پولها این را به عنوان "0 تأیید، 1 تأیید، 6 تأیید" نشان میدهند، اما مکانیزم همان است: زنجیره، نه کیف پول، انتقال را نهایی میکند.
عبارات دانه و بازیابی تعیینکننده
یک عبارت دانه وجود دارد زیرا کلیدهای خام قابل مدیریت انسانی نیستند. BIP39 یک روش استاندارد برای کیف پولها برای نمایش مواد بازیابی اصلی به عنوان یک لیست از کلمات را استاندارد کرده است، سپس آن کلمات را به یک دانه باینری تبدیل میکند که برای تولید کلیدهای رمزنگاری استفاده میشود. نمای کلی Vault12 بر نکته عملی تأکید میکند: BIP39 به منظور کاهش خطای مدیریت کلید برای انسانها طراحی شده است، در حالی که رمزنگاری زیرین را قوی نگه میدارد.
تصادفی بودن جزئیات حیاتی است. Vault12 تأکید میکند که اعداد استفاده شده برای ایجاد یک عبارت دانه BIP39 باید تصادفی باشند، زیرا پیشبینیپذیری مدل امنیتی را خراب میکند. با تصادفی بودن مناسب، حمله به روشهای brute force تهدید واقعی نیست. Vault12 فضای جستجو برای یک عبارت 24 کلمهای BIP39 را به عنوان 2048^24، حدود 3 × 10^79 ترکیب، کمیابی میکند و آن را به عنوان غیرقابل حدس زدن با فناوری امروز توصیف میکند.
پیامد بازیابی مطلق است: عبارت دانه میتواند کیف پول را به طور کامل بازیابی کند. واژگان Bitcoin.org پیامد را صریح میکند و این دلیل است که مدیریت دانه مانند پول نقد حامل رفتار میشود. اگر کسی کلمات را به دست آورد، میتواند کیف پول را در جای دیگری بازیابی کند و امضاهای معتبر تولید کند. اگر کلمات گم شوند و هیچ پشتیبان دیگری وجود نداشته باشد، زنجیره هیچ عملکرد "فراموشی رمز عبور" ندارد.
BIP39 همچنین یک عبارت عبور اختیاری را تعریف میکند. Vault12 آن را به عنوان حفاظت اضافی در صورتی که عبارت دانه فاش شود، چارچوببندی میکند، اما همچنین پیچیدگی را اضافه میکند و خطر از دست دادن را افزایش میدهد. از نظر عملی، فعال کردن آن به این معنی است که مجموعه بازیابی دیگر "12 یا 24 کلمه" نیست. این میشود "کلمات به علاوه عبارت عبور" و فراموش کردن هر یک میتواند به همان اندازه به طور مؤثر وجوه را به خطر بیندازد.
کیف پولهای HD و مسیرهای استخراج
فوریه 2012 نقطه عطف ساکتی است که بیشتر توضیحات کیف پول از آن صرفنظر میکنند. نوشتار BIP32 Trezor به Pieter Wuille اعتبار میدهد که BIP32 را پیشنهاد کرده و اشاره میکند که در فوریه 2012 منتشر شد تا یک مشکل جدی در قابلیت استفاده در کیف پولهای غیرتعیینکننده قدیمی را حل کند: هر آدرس جدید ممکن است به یک پشتیبان جدید نیاز داشته باشد.
اصلاح BIP32 استخراج کلید تعیینکنندهای است که به صورت درختی سازماندهی شده است. تمام کلیدها و آدرسها از یک کلید خصوصی اصلی نشأت میگیرند و کلیدهای خصوصی و عمومی فرزند به صورت تعیینکننده استخراج میشوند، به این معنی که همان کلید اصلی همیشه همان مجموعه را دوباره تولید میکند.
Trezor همچنین ساختار سلسلهمراتبی را برجسته میکند: کلیدهای فرزند و نوه میتوانند به شاخههایی سازماندهی شوند، که این نحوه جداسازی حسابها و اهداف در کیف پولها است در حالی که هنوز از یک ریشه قابل بازیابی هستند.
این جایی است که سردردهای "سازگاری کیف پول" به وجود میآید. یک کیف پول سلسلهمراتبی تعیینکننده میتواند بسیاری از شاخههای مختلف را از یک دانه استخراج کند، بنابراین دو اپلیکیشن میتوانند موجودیهای متفاوتی را نشان دهند اگر به شاخههای مختلف نگاه کنند. BIP44 نقشه را استاندارد کرده است.
هم Trezor و هم Vault12 BIP44 را به عنوان یک ساختار مبتنی بر BIP32 با فرمت مسیر استخراج آشنا توصیف میکنند: m / purpose' / coin_type' / account' / change / address_index. آن مسیر استخراج مسیر فایلی است که کیف پول از طریق درخت کلید دنبال میکند.
Trezor استانداردها را به روشی که کاربران واقعاً آنها را تجربه میکنند، به هم متصل میکند: وقتی یک دستگاه Trezor راهاندازی میشود، یک دانه بازیابی 12، 18 یا 24 کلمهای با استفاده از BIP39 تولید میکند و آن دانه به ورودی اصلی برای استخراج کلید BIP32 تبدیل میشود. از آنجا، کیف پول میتواند آدرسهای جدید دریافت را برای حفظ حریم خصوصی بدون ایجاد یک پشتیبان جدید در هر بار تولید کند.
این همچنین یک الگوی رایج عیبیابی را توضیح میدهد. وقتی "وجوه گم شدهاند"، اولین بررسی معمولاً بلاکچین نیست. این است که آیا کیف پول از همان مسیر استخراج، نوع سکه و شاخه حساب به عنوان کیف پولی که در ابتدا آدرسها را تولید کرده است، استفاده میکند.
انتخاب نوع کیف پول و تعادلها
نوع کیف پول فقط یک پاسخ متفاوت به یک سوال است: امضا کردن کجا انجام میشود و چه کسی میتواند به اسرار دسترسی داشته باشد. راهنمای کیف پول Bitcoin.org تعادلها را به زبان ساده در موبایل، دسکتاپ، وب و کیف پولهای سختافزاریتوصیف میشوند به عنوان یکی از امنترین روشها برای ذخیره وجوه، با هزینه واضحی که آنها در موبایل کمتر راحت هستند و برای جریانهای سریع QR طراحی نشدهاند.
کیف پولهای وباز هر جایی با یک مرورگر قابل دسترسی هستند، اما Bitcoin.org هشدار میدهد که اگر پلتفرم هک شود، وجوه در خطر هستند.
کیف پولهای دسکتاپ کنترل را ارائه میدهند و Bitcoin.org مستقیماً خطر محیطی را علامتگذاری میکند: کامپیوترهای عمومی میتوانند در برابر بدافزارهایی که به کیف پولها هدف قرار میگیرند آسیبپذیر باشند.دو معیار بیشتر از برچسبهای بازاریابی اهمیت دارند. اولین کنترل است: Bitcoin.org اشاره میکند که برخی کیف پولها کنترل کامل را ارائه میدهند تا هیچ شخص ثالثی نتواند وجوه را مسدود یا برداشت کند، اما این مسئولیت را برای تأمین امنیت و پشتیبانگیری از کیف پول به کاربر منتقل میکند. دومین معیار اعتبارسنجی است. برخی کیف پولها میتوانند به عنوان یک گره کامل عمل کنند و بلوکها و تراکنشها را به طور مستقل تأیید کنند بدون اینکه به اشخاص ثالث اعتماد کنند و Bitcoin.org اشاره میکند که این نیاز به حافظه و منابع قابل توجهی دارد.حریم خصوصی جایی است که طراحی HD با رفتار تلاقی میکند. واژهنامه Bitcoin.org میگوید که یک آدرس باید بهطور ایدهآل تنها یکبار استفاده شود و راهنمای کیف پول Bitcoin.org اشاره میکند که برخی کیف پولها آدرسها را چرخش میدهند و میتوانند از Tor برای کاهش ارتباط با یک آدرس IP استفاده کنند. استنتاج به سبک BIP32 چرخش آدرس را از نظر عملی ارزان میکند زیرا کابوس پشتیبانگیری ایجاد نمیکند.
نزدیک به پایان درخت تصمیم، مفهوم وسیعتر کیف پول کریپتو دوباره در کانون توجه قرار میگیرد: کیف پول یک سیستم تولید کلید و امضا است. رابط کاربری میتواند شیک یا دست و پاگیر باشد، اما تنها چیزی که اهمیت دارد این است که چه کسی میتواند امضاهای معتبر تولید کند و چقدر سخت است که بهطور تصادفی آن قابلیت را از دست بدهد.
مفاهیم غلط رایج
«کیف پول من ارزهای دیجیتال من را ذخیره میکند.» زنجیره دفتر کل را ذخیره میکند. واژهنامه Bitcoin.org کیف پول را بهعنوان حاوی کلیدهای خصوصی تعریف میکند که اجازه خرج کردن و ایجاد پرداختها را میدهد، به همین دلیل حذف یک برنامه ارزها را حذف نمیکند و بازیابی از یک عبارت دانه موجودیها را برمیگرداند.
«یک عبارت دانه مانند یک ورود به سیستم است که میتوانید آن را بازنشانی کنید.» Bitcoin.org یک عبارت بازیابی را بهعنوان کافی برای بازگرداندن کامل یک کیف پول تعریف میکند و هشدار میدهد که هر کسی که آن را بهدست آورد میتواند به بیتکوینهای مربوطه دسترسی پیدا کند. هیچ بازنشانی در زنجیره وجود ندارد و تنها «تیکت پشتیبانی» این است که آیا عبارت دانه هنوز وجود دارد و هنوز هم مخفی است.
«آدرسهای بیشتر به معنای چیزهای بیشتری برای پشتیبانگیری است.» BIP32 بهطور خاص برای حذف نیاز به یک پشتیبان جدید برای هر آدرس جدید منتشر شد و Trezor توضیح میدهد که تمام کلیدها و آدرسها از یک کلید خصوصی اصلی در یک درخت قطعی ناشی میشوند. بار پشتیبانگیری با تعداد آدرسها مقیاس نمیگیرد، اما پیامد آن تمرکز است: یک عبارت دانه به ماده بازیابی برای همه چیزهایی که از آن مشتق شده تبدیل میشود.
«اگر دو کیف پول موجودیهای متفاوتی نشان دهند، وجوه گم شدهاند.» ساختار مسیر استنتاج استاندارد شده BIP44 دلیل این است که همان دانه میتواند بهطور مشروع به شاخههای مختلف نگاشت شود. عدم تطابق در هدف، نوع سکه، حساب یا مسیر تغییر میتواند یک کیف پول را خالی نشان دهد در حالی که زنجیره هنوز UTXOهای مرتبط با آدرسها در شاخهای متفاوت را نگه میدارد.
«هزینهها ثابت هستند و کیف پولها بیش از حد هزینه میکنند.» Bitcoin.org هزینهها را بهعنوان انتخابشده توسط کاربران تعریف میکند و اشاره میکند که معاملات با هزینه بالاتر معمولاً زمانی که شبکه شلوغ است، سریعتر تأیید میشوند. کیف پولها میتوانند تخمین بزنند، اما مکانیزم هنوز یک بازار برای فضای بلوک است.
جمعبندی
من دیدهام که مردم با یک کیف پول مانند یک برنامه بانکی رفتار میکنند و سپس بهدلیل یک چیز که بانک معمولاً برای آنها انجام میدهد: نگهداری کلید، خراب میشوند. تصور غلط پرهزینه این است که فکر کنیم عبارت دانه فقط یک مرحله تنظیم است. این قابلیت امضای اصلی بهصورت کلمات است و Bitcoin.org بهصراحت میگوید که هر کسی که آن را بهدست آورد میتواند کیف پول را بازیابی کرده و به وجوه دسترسی پیدا کند.
من همچنین دیدهام که وحشت «وجوه گم شده» بهدلیل بهداشت مسیر استنتاج بوده است. دو برنامه میتوانند به شاخههای مختلف BIP44 از همان دانه نگاه کنند و حسابهای متفاوتی را نشان دهند. اگر کیف پول یک دستگاه امضا باشد که با یک دانه BIP39 به یک درخت BIP32 تغذیه میشود، حرکت آرام این است که بررسی کنید نرمافزار کدام شاخه را اسکن میکند قبل از اینکه فرض کنید زنجیره پول شما را گم کرده است.
منابع
Bitcoin.org
Trezor
پرسشهای متداول
کیف پولهای کریپتو چگونه ارزهای دیجیتال را ذخیره میکنند اگر سکهها در اپلیکیشن نباشند؟
آنها اصلاً سکهها را ذخیره نمیکنند. بلاکچین مالکیت را ثبت میکند و کیف پول مواد کلیدی را ذخیره میکند که میتواند امضاهایی برای خرج کردن تولید کند. اپلیکیشن کیف پول عمدتاً آدرسهایی را که کنترل میکند پیگیری میکند و موجودیها را با اسکن زنجیره نمایش میدهد.
تفاوت بین آدرس کیف پول، کلید عمومی و کلید خصوصی چیست؟
آدرس کیف پول چیزی است که شما برای دریافت وجه به اشتراک میگذارید و Bitcoin.org توصیه میکند که از یک آدرس فقط یک بار برای حفظ حریم خصوصی استفاده کنید. کلید عمومی برای تأیید امضاها استفاده میشود. کلید خصوصی دادهای مخفی است که برای ایجاد امضاها استفاده میشود و اگر فاش شود، اجازه خرج کردن از کیف پول مربوطه را میدهد.
آیا کسی میتواند فقط با عبارت دانه من، ارز دیجیتال من را بدزدد؟
بله. Bitcoin.org عبارت بازیابی را به عنوان کافی برای بازیابی کامل یک کیف پول تعریف میکند و هشدار میدهد که هر کسی که به آن دسترسی پیدا کند میتواند به بیتکوینهای مربوطه دسترسی پیدا کند. اگر یک مهاجم کیف پول را بازیابی کند، میتواند تراکنشها را امضا کرده و وجوه را منتقل کند.
چرا همان عبارت دانه در کیف پولهای مختلف موجودیهای متفاوتی را نشان میدهد؟
اغلب این یک مسیر مشتق یا عدم تطابق حساب است. BIP44 ساختار مسیر m / purpose' / coin_type' / account' / change / address_index را استاندارد میکند و اپلیکیشنهای مختلف ممکن است به شاخههای مختلف پیشفرض شوند. اگر آنها شاخههای مختلف را اسکن کنند، حتی با همان دانه، میتوانند حسابهای متفاوتی را نشان دهند.
آیا کیف پولهای سختافزاری از کیف پولهای وب ایمنتر هستند؟
Bitcoin.org کیف پولهای سختافزاری را به عنوان یکی از امنترین روشها برای ذخیره وجوه توصیف میکند، اما ممکن است در موبایل کمتر راحت باشند. کیف پولهای وب به راحتی از یک مرورگر قابل دسترسی هستند، اما اگر پلتفرم هک شود، وجوه در معرض خطر هستند. تفاوت اصلی در این است که کلیدهای امضا کجا قرار دارند و چه کسی میتواند به آنها دسترسی پیدا کند.