
توسعهدهندگان Bitcoin Core یک لایه امنیتی جدید برای جلوگیری از امضای برخی تراکنشهای بیتکوین اضافه کردهاند؛ مشکلی که در شرایط خاص میتوانست باعث شود امضای معتبر یک تراکنش بدون محافظت از مقصد مورد تأیید کاربر باقی بماند. نکته مهم این است که این آسیبپذیری به معنی سرقت کلید خصوصی نبود، بلکه به نحوه تأیید مقصد تراکنش مربوط میشد.
این مشکل به PSBT یا تراکنشهای نیمهامضاشده بیتکوین مربوط است. PSBTها معمولاً زمانی استفاده میشوند که ساخت تراکنش و امضای آن در دو مرحله یا توسط دستگاههای مختلف انجام شود؛ برای مثال، یک کیف پول تراکنش را آماده میکند و سپس آن را برای امضا به یک کیف پول سختافزاری یا امضاکننده آفلاین میفرستد.
ریشه این مشکل به حالت امضای SIGHASH_SINGLE برمیگردد. این حالت قرار است هر ورودی تراکنش را به خروجی متناظر خودش متصل کند. اما اگر برای یک ورودی، خروجی متناظر وجود نداشته باشد، این محافظت در برخی شرایط کامل عمل نمیکند. در تراکنشهای قدیمی، حتی امکان ایجاد امضایی وجود داشت که تحت شرایط مشابه بتوان از آن برای خروجیهای خرجنشده دیگری با همان کلید استفاده کرد.
در تراکنشهای SegWit v0 وضعیت کمی متفاوت است؛ امضا همچنان به کوین و مقدار آن متصل میشود، اما مقصد تراکنش میتواند بهطور کامل در امضا قفل نشده باشد. این موضوع یک مشکل مهم در سطح مجوزدهی تراکنش ایجاد میکند: نرمافزار ممکن است یک مقصد را به کاربر نشان دهد، اما امضایی تولید شود که از نظر رمزنگاری تضمین نکند مقصد تأییدشده بعداً تغییر نکرده است.
Bitcoin Core پیش از این حالت مشابه را در رابط امضای تراکنش خام رد میکرد، اما مسیر PSBT و walletprocesspsbt همچنان میتوانست در شرایط خاص چنین تراکنشی را امضا کند. تغییر جدید، این بررسی امنیتی را به بخش مشترک ایجاد امضا منتقل کرده تا ورودیهای آسیبپذیر در مرحله امضا متوقف شوند.
این اصلاح در ۲۵ سپتامبر ۲۰۲۶ در شاخه توسعه اصلی Bitcoin Core ادغام شده است. با این حال، طبق اطلاعات موجود تا ۴ اکتبر، هنوز نسخه رسمی منتشرشدهای که این اصلاح را در اختیار همه کاربران قرار دهد، مشخص نشده است. بنابراین، این تغییر فعلاً بیشتر یک اقدام پیشگیرانه برای توسعهدهندگان کیف پولها و ارائهدهندگان زیرساختهای امضای بیتکوین محسوب میشود.
اهمیت موضوع برای کیف پولهای سختافزاری نیز قابل توجه است. از آنجا که PSBTها یکی از روشهای رایج ارتباط میان کیف پول نرمافزاری، دستگاه سختافزاری و امضاکننده آفلاین هستند، تولیدکنندگان کیف پول باید بررسی کنند که در مواجهه با درخواستهای مبتنی بر SIGHASH_SINGLE، آیا مقصدی که کاربر تأیید کرده واقعاً در امضای نهایی نیز محافظت میشود یا خیر.
این آسیبپذیری به معنای آن نیست که بیتکوین هک شده یا کلیدهای خصوصی کاربران لو رفتهاند. مسئله بسیار محدودتر است و به یک حالت خاص در ساخت و امضای تراکنش مربوط میشود. همچنین گزارشی از سرقت واقعی داراییها به دلیل این مشکل منتشر نشده است.
در مجموع، اصلاح جدید Bitcoin Core یک نکته مهم را یادآوری میکند: امنیت کیف پول فقط به محافظت از کلید خصوصی محدود نمیشود. حتی اگر کلید کاملاً امن باشد، نرمافزار امضاکننده باید اطمینان حاصل کند که امضای تولیدشده دقیقاً همان تراکنشی را تأیید میکند که کاربر مشاهده و تأیید کرده است.

ورود / ثبت نام



ثبت نظر