فراتر از کرشی که پیشتر علنی شده بود، CVE-2018-17144 به ماینر اجازه میداد در نسخههای 0.15.X تا 0.16.2 با خرج دوباره یک خروجی در یک تراکنش، عرضه بیتکوین را بالا ببرد. توسعهدهندگان این بخش را مسکوت گذاشتند تا سیستمها فرصت مهاجرت به 0.16.3 یا 0.17.0rc4 داشته باشند. گمان میرود بیش از نیمی از هشریت وصله شده باشد، تلاشی برای سوءاستفاده شناخته نشده و از کاربران آسیبپذیر خواسته شده بهروزرسانی کنند.
CVE-2018-17144 باعث میشود Bitcoin Core نسخههای 0.14.0 تا 0.16.2 روی بلاکی که تراکنشش یک ورودی را دو بار خرج کرده کرش کند و از کاربران خواسته شده فوراً به 0.16.3 ارتقا دهند. چنین بلاکی را فقط ماینری میتواند بسازد که حاضر باشد از دستکم 12.5 BTC درآمد مجاز بگذرد.
فراخوانی verifytxoutproof در Bitcoin Core 0.16.2 دیگر در برابر حمله پرهزینه به اثباتهای SPV که اوایل ژوئن افشا شد شکست نمیخورد، هرچند کلاینتهای واقعی SPV همچنان آسیبپذیرند. اصلاحی جداگانه کاری میکند abandontransaction همه نوادگان یک تراکنش را کنار بگذارد و به فرزندان محدود نماند.
Bitcoin Core 0.16.1 دیگر OP_CODESEPARATOR در اسکریپتهای امضای legacy را رله نمیکند؛ تغییری در سیاست که استقرار اصلاحات آینده برای بلاکهای کند در اعتبارسنجی را آسانتر میکند. گزینه -blockmaxsize برای ماینرها حذف شده و -blockmaxweight جای آن را گرفته است؛ باگی هم رفع شده که وقتی ماینر دو بلاک پشت سر هم میساخت میتوانست به درآمدش لطمه بزند.
Segwit در Bitcoin Core 0.16.0 پیشفرض کیف پول شد: آدرسهای تازه p2sh-segwit هستند مگر آنکه -addresstype چیز دیگری بگوید و آدرسهای بومی bc1 طبق BIP173 ساخته و پرداخت میشوند. کیف پولهای جدید فقط HD هستند و نسخههای قبلی آنها را نمیپذیرند؛ صفحه ارسال GUI هم حالا بهطور پیشفرض BIP125 RBF را روشن میکند.
Bitcoin Core 0.15.1 برای احتیاط در برابر انشعابهای آینده شبکه، همتاهایی را که هنگام همگامسازی اولیه زنجیرهای پایینتر از minimum-chain-work عرضه میکنند قطع میکند و همتاهای خروجیای را هم که هدرهای نامعتبر شناختهشده میدهند. اگر نوک زنجیره 30 دقیقه ثابت بماند، نود یک اتصال خروجی اضافه برقرار میکند. ماینرها دیگر مستقیم از blockmaxsize استفاده نمیکنند؛ این گزینه منسوخ شده و فقط به معنای یک محدودیت وزن است.
کرش GUI هنگام راهاندازی باعث انتشار Bitcoin Core 0.15.0.1 شد: برخی کلاینتها پس از ارتقا به 0.15.0 روی تنظیم کارمزد سفارشی که رابط دیگر ارائه نمیکند زمین میخوردند. وصلهای حداقلی، #11332، این مقدار نامعتبر را مدیریت میکند.
برآورد کارمزد در Bitcoin Core 0.15.0 از 25 بلاک به 1,008 بلاک جلوتر رسیده و کاربران GUI میتوانند کارمزد تراکنش تأییدنشده را با Replace-By-Fee بالا ببرند. پایگاه داده chainstate به تفکیک هر خروجی، دانلود اولیه بلاکها را 30 تا 40% سریعتر میکند. تبدیل آن خودکار در نخستین اجرا انجام میشود و حدود 5 تا 30 دقیقه زمان میبرد.
مشارکتکنندگان ثابت Bitcoin Core هیچ پیوندی با btc1، پیادهسازی Segwit2x، ندارند و این پروژه ادعای ضروری بودن آن بهروزرسانی را رد میکند و آن را گسستی مناقشهبرانگیز از قواعد شبکه میخواند. Segwit، سافتفورکی که چند روز دیگر موعدش است، ربطی به این هاردفورک ندارد و از بیشتر کاربران کاری نمیخواهد. بیانیه هشدار میدهد Segwit2x برنامهای برای محافظت قوی در برابر replay هم ندارد.
به هر کسی که UPnP را روشن کرده توصیه شده بیدرنگ Bitcoin Core 0.14.2 را نصب کند: خطای علامت عدد صحیح در miniupnpc همراه برنامه، CVE-2017-8798، به مهاجمان شبکه محلی امکان منع سرویس یا شاید آسیبهای دیگر را میدهد. UPnP بهطور پیشفرض خاموش است و نودهایی که هرگز آن را روشن نکردهاند آسیب نمیبینند.
ماینرهای غیر segwit پس از فعالسازی هم میتوانند از getblocktemplate استفاده کنند، چون Bitcoin Core 0.14.1 تراکنشهای segwit را از قالب حذف میکند. مقدار پیشفرض -dbcache به 450MiB رسیده و این سقف در اوجهای flush هم رعایت میشود. تغییر نام آرگومانها در createrawtransaction و disconnectnode، فراخوانیهایی را که از آرگومان نامدار 0.14.0 استفاده میکنند میشکند.
کیف پول یک نود تازه میتواند پیش از پایان همگامسازی ارسال و دریافت کند؛ این وعده حالت ترکیبی full block SPV در نقشه راه Bitcoin Core است که بلاکها را از قدیمیترین کلید کیف پول به بعد میگیرد و اعتبارسنجی کامل را در پسزمینه ادامه میدهد. نشت حریم خصوصی فیلترهای Bloom با بهای پهنای باند بیشتر از میان میرود و پرداختها باید منتظر 6 تأیید یا بیشتر بمانند.
جایگزینی ECDSA با امضای Schnorr یک multisig از نوع 50-of-50 را به اندازه خرج تککلیدی کوچک میکند و سیاست آن را از چشم ناظران پنهان میسازد. نقشه راه Bitcoin Core مانع اصلی را cancellation میداند: امضاکننده مخرب کلید کاربر دیگری را از کلید خود کم میکند. Delinearization پاسخ این حمله است، هرچند اثبات امنیتی آن هنوز در مرحله داوری همتا است.
کش امضا در Bitcoin-Qt 0.7.0، Ultraprune با LevelDB در 0.8.0 و همگامسازی headers-first در Bitcoin Core 0.10 در بخش 1 این مرور بر شتابدهیهای نرمافزار مرجع آمدهاند. راستیآزمایی موازی اسکریپت بهتنهایی در بنچمارکهای توسعهدهندگان 35% تا 100% بهبود داد.
نودهای تازه در آزمایشی روی Amazon EC2 با تنظیمات پیشفرض، دانلود اولیه بلاکها را با Bitcoin Core 0.14.0 نسبت به 0.13.2، 5.7 برابر سریعتر تمام کردند: 6 ساعت و 24 دقیقه در برابر 1 روز و 12 ساعت و 40 دقیقه. بلاکهای assumed valid و حافظه مشترک میان ممپول و کش UTXO عامل این جهشاند. کیف پولها هم افزایش اختیاری کارمزد گرفتهاند که بهطور پیشفرض خاموش است.
ارسال از کیف پول اگر به سقف زنجیرههای تأییدنشده برخورد کند، دیگر در Bitcoin Core 0.13.2 خطای RPC برنمیگرداند؛ موفقیت گزارش میشود و درج در ممپول هنگام بازپخش بدون نیاز به راهاندازی مجدد دوباره امتحان میشود. برآورد کارمزد برای هدف 1 بلاک غیرفعال شده و نحوه برخورد با compact blockهای نامعتبر اصلاح شده است.
بیشترین هزینه بایتی را پیچیدن segwit در P2SH دارد: 19% اضافه برای P2WSH/P2SH و 11% برای P2WPKH/P2SH در تراکنشی 180 بایتی، طبق حسابوکتاب Bitcoin Core از آنچه BIP141 میآورد. اعتبارسنجی به حدود پنج هش SHA256 بیشتر برای هر تراکنش نیاز دارد. باگها، بلاکهای بزرگتر و کارمزد پایینتر بهعنوان ریسک سنجیده شدهاند و نویسندگان درباره فعالسازی موضعی نمیگیرند.
ماینرها با Bitcoin Core 0.13.1 کد سیگنالدهی برای سافتفورک segwit را در اختیار دارند و سیگنالدهی از 15 نوامبر 2016 با آغاز دوره بازتنظیم بعدی باز میشود. قفل شدن به 95% بلاکها در یک دوره 2,016 بلاکی نیاز دارد و فعالسازی یک دوره بعد است. کیف پولها سازگار میمانند، پس شاید جز ماینرها کسی نیاز به اقدام نداشته باشد.
Segwit به همراهی دو گروه نیاز دارد: ماینرهایی که بیت 1 را در 95% بلاکهای یک دوره بازتنظیم سیگنال بدهند و نودهای کامل کافی که Bitcoin Core 0.13.1 یا پیادهسازی سازگار اجرا کنند. سیگنالدهی در نخستین بازتنظیمی که در 15 نوامبر 2016 یا پس از آن بیفتد باز میشود. گامهای جداگانه برای ماینرها، گردانندگان نود، کاربران کیف پول و توسعهدهندگان آمده است، از جمله کسانی که نمیخواهند ارتقا دهند.
کد Segwit با Bitcoin Core 0.13.0 وارد شد اما روی شبکه اصلی غیرفعال میماند؛ استفاده از آن به نسخهای بعدی نیاز دارد که انتظار میرود 0.13.1 باشد. رله compact block (BIP152) جهشهای پهنای باند را کم میکند و کیف پولهای جدید از کلیدهای BIP32 HD استفاده میکنند، پس یک پشتیبان همه کلیدهای خصوصی آینده را پوشش میدهد. بیلدهای Linux ARM هم به دانلودهای رسمی پیوستهاند.