آیا بیتکوینهای شما در برابر کامپیوترهای کوانتومی ایمن است؟

یک ابزار جدید امکان بررسی آسیبپذیری آدرسهای بیتکوین در برابر حملات کامپیوتر کوانتومی را فراهم کرده است.
آیا بیتکوینهای شما در امان هستند؟ آیا کامپیوترهای کوانتومی تهدیدی برای بیتکوینهای شما محسوب میشوند؟ شاید.
دو روش اصلی برای حمله به بیتکوینها وجود دارد. روش اول، انتخاب تراکنشها از «ممپول» (mempool) است؛ جایی که تراکنشها در انتظار تأیید و افزودن به بلاک هستند. در این لحظه، کلیدهای عمومی آشکار میشوند. اما برای این حمله، به کامپیوتر کوانتومی نیاز است که بتواند کلید خصوصی را از کلید عمومی در کمتر از ۱۰ دقیقه (زمان تأیید تراکنش) استخراج کند.
روش دوم، که محتملتر است، حملهای به نام «جمعآوری-اکنون-رمزگشایی-بعداً» (harvest-now-decrypt-later) است. این روش آدرسهایی را هدف قرار میدهد که کاربران آنها را چندین بار استفاده کردهاند یا از فرمتهای بسیار قدیمی استفاده میکنند.
پروژه «Project11» بهتازگی ابزاری راهاندازی کرده که به شما امکان میدهد آسیبپذیری آدرسهای خود را بررسی کنید. این ابزار فهرست کاملی از آدرسهایی که کلیدهای عمومی آنها قبلاً افشا شدهاند را ارائه میدهد. برای خروج از این فهرست، باید بیتکوینهای خود را به آدرس جدیدی منتقل کنید. اگر مشکل به دلیل استفاده مجدد از آدرس باشد، میتوانید از همان کیفپول استفاده کنید (چون انتقال به آدرس جدید بصورت خودکار رخ میدهد)، اما اگر مشکل به فرمت آدرس مربوط باشد، باید بیتکوینها را به کیفپولی جدید با آدرسهای مقاوم در برابر تهدیدات کوانتومی منتقل کنید.
برخی فرمتهای آدرس، مانند آدرسهای P2PK (Pay-To-Public-Key) و برخی انواع P2TR (Pay-To-Taproot)، به دلیل استفاده مستقیم از کلیدهای عمومی، آسیبپذیر هستند. آدرسهای P2PK هیچ سرآغاز مشخصی ندارند و آدرسهای P2TR با «bc1p» شروع میشوند (با آدرسهای «bc1q» اشتباه نگیرید).
در مقابل، آدرسهای مقاوم مانند P2PKH، P2SH و P2WPKH از کلیدهای عمومی رمزنگاریشده با تابع هش SHA-256 استفاده میکنند که در برابر کامپیوترهای کوانتومی مقاوم است. این آدرسها به ترتیب با «1»، «3» و «bc1q» شروع میشوند.امروزه کیفپولها دیگر آدرسهای P2PK تولید نمیکنند. بنابراین، اگر کیفپول خود را پس از سال ۲۰۱۱ دانلود کردهاید، احتمالاً از آدرسهای ذاتاً آسیبپذیر (P2PK یا برخی انواع P2TR) استفاده نمیکنید. با این حال، اگر آدرسهای شما به دلیل استفاده مجدد آسیبپذیر شده باشند، این مشکل شایعتر است.
آیا افشای یک آدرس، کل کیفپول را آسیبپذیر میکند؟ خیر. کیفپولهایی مانند Trezor، Ledger یا Electrum از نوع «HD» (سلسلهمراتبی قطعی) هستند، به این معنی که هر آدرس کلید خصوصی خاص خود را دارد. بنابراین، اگر یک کلید عمومی به دلیل استفاده مجدد افشا شود، فقط همان آدرس آسیبپذیر خواهد بود و سایر آدرسها امن میمانند، مگر اینکه کلید عمومی اصلی (xpub) فاش شده باشد.
توضیح: کیفپولهای HD تمام کلیدهای خصوصی و عمومی را از یک «سید» (۱۲ یا ۲۴ کلمهای که باید با دقت نگه دارید) بر اساس استاندارد BIP-32 تولید میکنند. این سید، کلید اصلی (xpub) را ایجاد میکند که تمام کلیدهای دیگر از آن مشتق میشوند. به همین دلیل، تنها با داشتن سید میتوانید به تمام بیتکوینهای خود دسترسی پیدا کنید. اما افشای xpub به معنای افشای تمام کلیدهای عمومی کیفپول است و نباید این کار را انجام دهید. برای مثال، افرادی که xpub خود را با سرویسهایی مانند Samourai’s coinjoin به اشتراک گذاشتهاند، ممکن است اکنون پشیمان باشند.
سوال دوم: اگر ۱ بیتکوین در یک آدرس داشته باشم و ۰.۴ بیتکوین خرج کنم، آیا ۰.۶ بیتکوین باقیمانده آسیبپذیر میشود؟ خیر. برای خرج کردن ۰.۴ بیتکوین، کیفپول شما کل ۱ بیتکوین مرتبط با آن آدرس را مصرف میکند. در این تراکنش، ۰.۴ بیتکوین به آدرس گیرنده و ۰.۶ بیتکوین به آدرس جدیدی در کیفپول شما منتقل میشود (به علاوه کارمزد اندکی برای ماینر). آدرس اولیه اکنون آسیبپذیر است، اما چون خالی شده، این موضوع اهمیتی ندارد. با این حال، نباید دوباره از آن آدرس برای دریافت وجه استفاده کنید.