شعار زيفيرنت

تم إصدار Bitcoin Core 24.0: إليك الجديد

التاريخ:

إصدار جديد من برنامج Bitcoin الأصلي الذي تم إطلاقه بواسطة ساتوشي ناكاموتو في عام 2009 تم الافراج عنه.

عمل 24.0 مطورًا على Bitcoin Core 112 لمدة سبعة أشهر تقريبًا لإدخال تحسينات ملموسة على محفظة Bitcoin Core واتصالات نظير إلى نظير (P2P) وواجهة مستخدم رسومية (GUI) وغير ذلك الكثير.

تستكشف هذه المقالة بعض التغييرات الرئيسية.

تحديثات المحفظة

دعم Miniscript الأولي

يقدم Bitcoin Core 24.0 دعمًا لـ Miniscript من خلال توسيع نطاق wsh () واصف الإخراج. في حين أنه تكامل أولي وبدائي ، فإن هذه الخطوة تمهد الطريق لنشر نصوص برمجية أكثر تعقيدًا في Bitcoin بطريقة أبسط وأكثر أمانًا.

نص صغير يمكن اعتباره إطار عمل (أو نموذج) لـ نص بيتكوين، لغة البرمجة الأصلية للبيتكوين. يعد Bitcoin Script مسؤولاً عن تمكين جميع وظائف البرمجة المتاحة لـ Bitcoin ، بما في ذلك ، على سبيل المثال ، ما قد يكون أبسطها: تحديد من يُسمح له بإنفاق عملة معينة. لكل معاملة Bitcoin ، يطلب المرسل عنوان المستلم وبهذه المعلومات يقوم بإنشاء برنامج نصي يقفل البيتكوين الذي يتم إرساله بطريقة لا يتمكن من إنفاقها إلا المتلقي. في حين أنه من السهل إلى حد ما إنشاء نصوص بسيطة مثل ما ورد أعلاه باستخدام Bitcoin Script ، إلا أنه كلما زاد تعقيد النص زادت فرصة حدوث خطأ بشري. هنا يأتي دور Miniscript.

يسمح برنامج Miniscript بكتابة مجموعة فرعية من نصوص Bitcoin بتنسيق منظم طريق. إنه يتيح التحليل والتكوين والتوقيع العام ، من بين أشياء أخرى ، مما يسمح للمطورين بكتابة البرامج النصية المتقدمة بأمان أكبر. بعبارة أخرى ، "يحتوي" برنامج Miniscript على بعض وظائف نصوص Bitcoin المحددة مسبقًا على نمط سلوك متوقع ، مما يحد من المخاطر النهائية نظرًا لتقليل السلوك غير المتوقع. من الناحية العملية ، يوفر "صندوق أدوات" للمطورين للتلاعب وإنشاء برامج نصية متقدمة ومعقدة للبيتكوين بدلاً من الاضطرار إلى القيام بكل ذلك يدويًا من خلال Bitcoin Script.

بدءًا من Bitcoin Core 24.0 ، يمكن للمستخدمين الآن إنشاء محفظة تحتوي على برنامج نصي Miniscript ، وإنشاء عناوين لتلك المحفظة وتمويلها باستخدام Bitcoin. لم يتم دعم الإنفاق من هذه العناوين حتى الآن من قبل محفظة Bitcoin Core ، ومع ذلك ، مما يعني أن المحافظ التي تدعم Miniscript على Bitcoin Core هي فقط للمراقبة في الوقت الحالي.

المعاملات غير المتغيرة

تم تقديم RPC جديد ، Sendall، يتيح ذلك للمستخدمين إنفاق مخرجات معاملات محددة غير منفقة (UTXOs) بالكامل. سيرسل RPC المبلغ المحتجز في UTXOs المحدد إلى مستلم واحد أو أكثر دون إحداث تغيير. (بشكل افتراضي، Sendall ستنفق كل UTXO في المحفظة.)

يمكن أن يكون هذا السلوك مرغوبًا في بعض المواقف. أولاً ، بطبيعة الحال ، قد يرغب المستخدم في إفراغ محفظته. سيؤدي استدعاء RPC الجديد باستخدام التكوينات الافتراضية إلى القيام بذلك بطريقة سهلة. ثانيًا ، قد يرغب المستخدم في تحسين خصوصيته بالتخلي عن التغيير.

تغيير العناوين صعبة لأن المستخدمين غالبًا ما يفقدون مسارهم من حيث نشأوا ، وبالتالي يمكنهم مزجها مع UTXOs الأخرى كمدخلات في معاملة مستقبلية. هذا من شأنه أن يشكل مصدر قلق بشأن الخصوصية بسبب إرشاد الملكية المشتركة المدخلات، وهي فرضية مستخدمة على نطاق واسع في تحليل السلسلة تفترض أن جميع المدخلات في المعاملة تنتمي إلى نفس المستخدم. في مثال مخرجات التغيير ، قد يقوم المستخدم بعمل هذا الرابط ، ويخاطر بشكل فعال بإلغاء تحديد هوية العديد من عملاتهم المعدنية حيث أن محلل سلسلة سيكون قادرًا على تجميع بعض عناوين هذا المستخدم كمحفظة.

تكافح دفعة غير متغيرة هذه المشكلة عن طريق إنشاء معاملة تنفق كامل UTXOs المحدد. نظرًا لعدم وجود تغيير ، لا يمكن للمستخدم ارتكاب الخطأ المذكور أعلاه. علاوة على ذلك ، تقدم الدفعة غير المتغيرة شكًا معقولًا لمحلل سلسلة يتساءل عما إذا كان الناتج الجديد مملوكًا لنفس الكيان الذي أرسل الدفعة (مجرد نقل أموال إلى عنوان جديد) أو أنه مملوك بالفعل الآن من قبل مستخدم مختلف.

تغيير إخراج عشوائي لتجنب بصمات الأصابع

كما هو موضح أعلاه ، يمكن أن تكون مخرجات التغيير تسريبًا للخصوصية. في حين Sendall يخفف من استخدام عنوان التغيير تمامًا ، في الواقع ستكون هناك عدة مرات عندما يمتلك المستخدم UTXO بالحجم الدقيق للدفع الذي يجب القيام به. إن التأكد من عدم تمكن المراقب من تحديد أي من المخرجات هو عنوان التغيير يساعد المستخدم على اكتساب القليل من الخصوصية لأنه لن يكون من السهل ربط عنوان تم إنشاؤه حديثًا (تغيير الإخراج) بالإدخال الذي تم إنفاقه الآن بهذه المعاملة .

عادةً ، عندما لا يكون هناك UTXO بالمبلغ المحدد للدفع ، فإن معظم المحافظ والمستخدمين يختارون حدسيًا الأقرب إلى هذا الرقم. نتيجة لذلك ، يمكن للمراقب الذي يراقب blockchain أن يرى أي ناتج هو الدفع (الأكبر) وأي الناتج هو التغيير (الأصغر). يؤدي هذا إلى العديد من المخاطر المذكورة أعلاه.

لتقليل احتمالية أن يتمكن المراقب من تحديد مخرجات التغيير وعناوين المستخدمين العنقودية ، يقوم Bitcoin Core الآن بترتيب قيم مخرجات التغيير بشكل عشوائي.

بدءًا من الإصدار 24.0 ، ستختار محفظة Bitcoin Core رقمًا عشوائيًا بين حجم الدفع وثلاثة أضعاف حجم الدفع. سيُعلم هذا الرقم اختيار UTXO للإنفاق. هذا يعني بشكل فعال أنه في بعض الأحيان ستختار الخوارزمية UTXO تكون قيمتها أقرب إلى الدفع وفي أحيان أخرى ستختار UTXO الذي تكون قيمته أقرب إلى الحد الأعلى بثلاثة أضعاف مبلغ الدفع. سينتج السيناريو الأول سيناريو التغيير - الناتج - أقل من السداد النموذجي بينما سينتج الأخير العكس - ناتج التغيير أكبر من السداد. نظرًا لعدم وجود طريقة لمراقب blockchain لمعرفة متى يحدث كل سيناريو في وقت معين ، يجب أن يكون المستخدم قادرًا على التمتع بضمانات خصوصية أكبر.

تحديثات ليحل محلها رسوم

يوفر RBF اختياريًا لمستخدم Bitcoin عندما يرسل معاملة إلى الشبكة. في كثير من الأحيان ، لا يرغب المستخدم في دفع مبالغ زائدة على رسوم عامل التعدين ، وبالتالي يمكنه اختيار "حل وسط" بين الرسوم المدفوعة والسرعة التي يتم من خلالها تضمين المعاملة في الكتلة. ولكن إذا كانت قيمة الرسوم التي حددها المستخدم منخفضة جدًا أو كانت mempool مزدحمة ، فقد يستغرق الأمر وقتًا طويلاً حتى يتم تضمين المعاملة في كتلة (أو قد تتعطل في mempool تمامًا). يسمح RBF للمستخدم "بدفع" رسوم معاملته في مثل هذه الحالة ، في كثير من الأحيان لا يسمح بتسوية أسرع.

تحت غطاء محرك السيارة ، RBF لا يصطدم بالرسوم على الرغم من ذلك. ما يحدث في الخلفية هو أن عميل البرنامج سوف يبث ملف جديد المعاملة بنفس المدخلات ومعظم المخرجات نفسها. (تتغير بعض قيم المخرجات ؛ ستتغير قيمة الرسوم بشكل طبيعي لتعكس الرقم الجديد وعادة ما يتم خصم هذا الاختلاف من المبلغ الذي تم إرساله إلى عنوان التغيير.)

تاريخيًا ، كانت العقد تنقل الإصدار الأول فقط من المعاملة التي رأوها. مع ظهور RBF ، تم تقديم آلية للسماح للمستخدمين بالإبلاغ عن أنهم يرسلون معاملة يمكن أن يتم دفع رسوم لها في النهاية ، أي استبدالها بنسخة ذات رسوم أعلى. كان هذا بمثابة تنبيه مسبق للعقد ، مما يتيح لهم معرفة أنه يمكن إرسال إصدارات ذات رسوم أعلى من تلك المعاملة في وقت لاحق وأنه ينبغي أيضًا ترحيلها. من الناحية الاحتمالية ، تميل النسخة ذات الرسوم الأعلى من المعاملة إلى أن تكون أكثر جاذبية لعمال المناجم وبالتالي يتم اختيارها أولاً. بمجرد حدوث ذلك وإدراجه في كتلة ، سيتم إسقاط المعاملة منخفضة الرسوم من تجمعات أعضاء العقد لأنها ستحاول إنفاقًا مزدوجًا.

يقدم Bitcoin Core 24.0 تحديثين لوظيفة RBF.

أولاً ، يتيح للمستخدمين الآن تكوين العقد الخاصة بهم لترحيل المعاملات القابلة للاستبدال بدون فرض العلم RBF. يمكن القيام بذلك من خلال الجديد com.mempoolfullrbf اختيار. سيتم تعيينه على خصم بشكل افتراضي ، ولكن يمكن للمهتمين بتمكينه تشغيله.

ثانيًا ، تم تعيين RBF الآن كمعيار في محفظة Bitcoin Core. تشترك المعاملات الآن في RBF بشكل افتراضي و -محفظة خيار بدء التشغيل الافتراضي إلى "صواب". يمكن للمستخدمين إلغاء الاشتراك في RBF عن طريق التغيير والتبديل في معاملة معينة في عملية البناء أو إعداد -محفظة خيار بدء التشغيل إلى خطأ.

وصف ترحيل المحفظة

بيتكوين كور 23.0 جعلت محافظ الواصف المعيار. تعمل الواصفات على تسهيل حياة المستخدم في الاحتفاظ بنسخة احتياطية من محفظته واستعادة تلك النسخة الاحتياطية في وقت لاحق بتنسيق قياسي.

قبل وجود الواصفات ، كان على المستخدمين معرفة مسار اشتقاق محفظتهم ، والذي يحدد كيفية اشتقاق المفتاح الرئيسي للمحفظة من العناوين لاستخدامها في استلام البيتكوين وإرساله. نظرًا لأن المحافظ يمكن أن يكون لها مسارات اشتقاق مختلفة ، فلم يكن كافيًا أن تحتوي النسخة الاحتياطية على عبارات أولية فقط. في بعض الأحيان ، قد يكون المستخدم محظوظًا ويحاول استعادة نسخة احتياطية بمحفظة استفادت من نفس مسار الاشتقاق ، ولكن نظرًا لانخفاض احتمالية حدوث ذلك ، فإن مواقع الويب بأكملها مخصصة لمساعدة المستخدمين في معرفة مسار الاشتقاق الذي يجب استخدامه للمحافظ القديمة والجديدة ظهرت.

الواصف يحل هذه المشكلة من خلال الوجود وصفي حول مسار الاشتقاق الذي تستخدمه المحفظة الاحتياطية ، مما يؤدي إلى تحسين تجربة المستخدم بشكل كبير. الفكرة هي أن النسخة الاحتياطية للمحفظة الوصفية تحتوي على جميع المعلومات الضرورية لاستعادتها بشكل صحيح بواسطة أي عميل برمجي (بشرط تمكين العميل للواصف).

الآن ، يقدم Bitcoin Core 24.0 أداة جديدة لترحيل المحافظ القديمة إلى تنسيق محفظة واصف ، مما يمكّن المستخدمين من الاستفادة من هذا المعيار الناشئ لحماية عملاتهم البيتكوين الثمينة بشكل أفضل. على الرغم من أنه لا يزال تجريبيًا ، إلا أن RPC جديد (Migratewallet) تم تقديمها. هذا المستند يوفر مزيدًا من التفاصيل حول وظائفه.

تغييرات واجهة المستخدم الرسومية

اشتهرت واجهة المستخدم الرسومية لـ Bitcoin Core بعدم توفير نفس المستوى من الوظائف التي يمكن أن تحققها استدعاءات الإجراءات عن بُعد (RPCs) وأدوات سطر الأوامر. يتخذ Bitcoin 24.0 بعض الخطوات لتغيير جزء من ذلك.

يجلب أحدث إصدار من Bitcoin Core عنصر قائمة جديدًا على واجهة المستخدم الرسومية يتيح للمستخدمين استعادة المحفظة من النسخة الاحتياطية ، مما يسهل على الأشخاص غير التقنيين استعادة النسخ الاحتياطية. في السابق ، كان هذا الخيار موجودًا فقط في سطر الأوامر.

كان هناك عيب آخر في واجهة المستخدم الرسومية مقارنة بواجهة RPC يتعلق بإعدادات عميل Bitcoin Core. الشهير bitcoin.conf الملف هو الكأس المقدسة لتكوين Bitcoin Core ، ولكن مرة أخرى كان قابلاً للتعديل بشكل أساسي من خلال سطر الأوامر. يوجد خيار لتعديل الإعدادات في واجهة المستخدم الرسومية ، لكن التحذير أوضح ذلك bitcoin.conf الأسبقية على واجهة المستخدم الرسومية في حالة محاولة كل من الملف وواجهة المستخدم الرسومية تعيين البيانات لنفس التكوين. لذلك ، بينما وفرت واجهة المستخدم الرسومية خيارًا بسيطًا لتغيير الإعدادات ، كان ملف التكوين لا يزال الطريقة الأكثر موثوقية لتخصيص عميل Bitcoin Core الخاص بك.

يغير Bitcoin Core 24.0 ذلك. يوحِّد التحديث الجديد صفحة إعدادات واجهة المستخدم الرسومية بامتداد bitcoin.conf ملف. الآن ، عندما يفتح المستخدم إعدادات العميل على واجهة المستخدم الرسومية ، يتم سحب الإعدادات المعروضة من ملف التكوين. وبالمثل ، فإن تغييرات التكوين التي تم إجراؤها في واجهة المستخدم الرسومية تنعكس الآن في bitcoin.conf. (تجدر الإشارة إلى أن العلاقة هناك غير مباشرة ، لأن التغييرات في واجهة المستخدم الرسومية مضبوطة بالفعل على settings.json، ملف له الأسبقية على bitcoin.conf.)

التغييرات على اتصالات P2P

منطق جديد لتنزيل الرؤوس

يجلب Bitcoin Core 24.0 تحديثًا للطريقة التي يلحق بها أقرانهم في الشبكة طرف السلسلة ، إما لأنهم يقومون بالتمهيد لأول مرة أو أنهم قضوا وقتًا طويلاً دون الاتصال بشبكة Bitcoin.

قبل هذا الإصدار ، سيبدأ نظير جديد ينضم إلى Bitcoin في البحث عن أقران لتنزيل رؤوس الكتلة. لا يقوم النظير بتنزيل كتل كاملة في البداية لأنه يتم تحفيزه للتحقق مما إذا كان يتبع السلسلة الصحيحة قبل تنزيل الكتل لتلك السلسلة. وإلا فإنه يخاطر بتنزيل الكتل لسلسلة خاطئة ، وبالتالي إهدار الموارد.

أثناء تنزيل الرؤوس يساعد في توفير الوقت والموارد ، لا يزال من الممكن حدوث هجوم استنفاد للموارد حيث يقوم ممثل ضار بإرسال بريد إلكتروني إلى النظير بملايين رؤوس الكتل المزيفة. نظرًا لأن العميل يحتاج إلى تنزيل وحفظ الرؤوس على القرص ، فقد تكون كمية كبيرة من البيانات قادرة على تعطيل أجهزة النظير.

للتخفيف من هذا التهديد ، قدم Bitcoin Core مفهوم نقاط التفتيش مند سنوات. نقاط التفتيش تحدد أي الكتل يجب كن حاضرًا في سلسلة حتى يكون صالحًا. ومع ذلك ، يمثل هذا الحل أيضًا مشكلة ، حيث يمكن إساءة استخدام نقاط التفتيش لاستعادة أطول سلسلة بشكل فعال. مثل هذا الاحتمال غير مرغوب فيه في Bitcoin ، لذلك كان لابد من ابتكار حل مختلف. أدخل هذا التحديث الجديد.

باستخدام Bitcoin Core 24.0 ، يقوم الأقران الآن بتنزيل رؤوس الكتلة مرتين. في التشغيل الأول ، يتم تنزيل الرؤوس وإهمالها (لا يتم حفظها على القرص) حتى يتم العثور على قدر كافٍ من العمل - مما يشير إلى أن السلسلة التي يتبعها النظير صالحة. في هذه الحالة ، يقوم النظير بإعادة تشغيل العملية ، ولكن الآن ، بالإضافة إلى التنزيل ، يقوم النظير أيضًا بحفظ رؤوس الكتلة على القرص. من خلال حفظ الرؤوس على القرص فقط بمجرد أن يتأكد النظير من أنها جزء من سلسلة لها دليل مهم على العمل ، يتجنب النظير استخدام كميات كبيرة من التخزين في هجوم نهائي مثل استنفاد الموارد. هذا أيضًا يلغي الحاجة إلى نقاط التفتيش ويمكن القول إنه حل أكثر أناقة لأنه لا يعتمد على المدخلات البشرية لتحديد صلاحية السلسلة.

شكرًا لـ Aaron van Wirdum على آرائهم.

لمزيد من التفاصيل والتغييرات الأخرى ، راجع Bitcoin Core 24.0 ملاحظات الإصدار. لتنزيل Bitcoin Core 24.0 ، قم بالتنقل هنا. يتم شرح تفاصيل حول Bitcoin Core 24.0 أيضًا في الصوت في Bitcoin ، البودكاست الموضح الحلقة 65.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة