Jimmy Song مطوّر ومدرّس ومؤلف Programming Bitcoin. يشرح معاملات Bitcoin والمفاتيح والتوقيعات الرقمية بأمثلة بلغة Python. طريقته عملية: بدل الاكتفاء بالاعتماد على تطبيق جاهز، يبني القارئ أدوات صغيرة تدريجيًا ويتابع نتائجها. وينشر أيضًا آراء عن المال والمجتمع؛ وهذه تحتاج إلى نوع من الحجج يختلف عن تمارين البرمجة.
تصف سيرة Song عمله في التطوير ودورات Programming Blockchain، وتذكره O’Reilly مؤلفًا لكتاب Programming Bitcoin. يجمع بين هذه الأعمال التركيز على التجربة: قراءة اسم مبدأ لا تكفي لفهمه. عندما نبرمجه، نحتاج إلى معرفة البيانات التي يتلقاها والنتيجة التي ينبغي أن يعيدها. لكن وصف شخص بأنه مطوّر لا يعني وحده أنه مسؤول صيانة Bitcoin Core، ولا يمنحه سلطة تحديد قواعد الشبكة نيابة عن بقية المستخدمين. [1] [2]
نشرت O’Reilly كتاب Programming Bitcoin في 2019. يبدأ بالحقول المنتهية، أي الحساب ضمن مجموعة محدودة من العناصر وفق قواعد دقيقة، وبالمنحنيات الإهليلجية التي تشكّل الأساس الرياضي للتوقيعات التي يشرحها. ثم ينتقل إلى المفاتيح والتوقيعات والمعاملات والرسائل بين الحواسيب. يبني القارئ مكتبة Python، أي مجموعة دوال يمكن استخدامها في برامج أخرى. وهكذا لا يكتفي بتصديق أن التوقيع يعمل، بل يستطيع تتبّع الحسابات. إنها طريقة لفهم ما يجري داخل المحفظة، لا مجرد تشغيل أزرارها. [2]
لنتخيّل أن برنامجًا تلقّى معاملة. عليه أولًا تمييز أجزائها؛ ويسمى هذا التفكيك للبيانات التحليل. يشير المدخل العادي إلى مخرج من معاملة سابقة، أي مبلغ محدد له شروط للإنفاق. ثم يجب فحص تحقق الشروط، مثل صحة التوقيع. لكن التوقيع الصحيح لا يخبرنا وحده إن كان المخرج المشار إليه ما زال غير منفَق. يتطلب ذلك المقارنة بحالة السلسلة. تساعد تمارين Song على فصل قابلية قراءة البيانات عن الإذن بالإنفاق وعن صلاحية المعاملة كاملة. [3]
النتيجة الرياضية الصحيحة مهمة، لكن برنامج التوقيع الآمن يحتاج إلى أكثر منها. تهتم libsecp256k1 أيضًا بزمن التنفيذ الثابت وطريقة الوصول إلى الذاكرة عند التعامل مع مفتاح سري، حتى لا يستنتج المراقب معلومات سرية من سلوك الحساب. هذه مسألة مختلفة عن الوصول إلى الإجابة الصحيحة في تمرين. لذلك لا يمكن استبدال مكتبة تشفير خضعت للمراجعة لاستخدام الأموال الحقيقية بكود كُتب لفهم المبدأ تلقائيًا، حتى لو تحقق البرنامجان من التوقيع التجريبي نفسه بصورة صحيحة. [4]
يضم مستودع programmingbitcoin مواد الفصول وتعليمات Jupyter Notebook، وهي بيئة تجمع النص والكود القابل للتنفيذ ونتائجه. عند إعادة التمرين، تؤثر نسخة الكود والاعتماديات أيضًا، أي الحزم الأخرى التي يستخدمها البرنامج. تعليمات التثبيت القديمة ليست تلقائيًا توصية بالإصدارات المناسبة اليوم. تسجيل بيئة العمل يساعد على تفسير اختلاف النتائج؛ نجاح التشغيل على حاسوب شخص آخر لا يغني عن التحقق من تشغيلك أنت. [5]
يمنح كتاب 2019 أساسًا لفهم وثائق أخرى، لكن لا يصح افتراض أنه يشرح كل الإضافات اللاحقة. فمثلًا توفر libsecp256k1 اليوم أيضًا Schnorr signatures وفق BIP340، وهي مواصفة لطريقة توقيع أخرى يستخدمها Bitcoin. ينبغي فصل ما توضحه طبعة بعينها عما توفره المكتبة الحالية من وظائف. وعند استخدام واجهتها، أي طريقة استدعاء الدوال، نحتاج إلى وثائق الإصدار المعني. [2] [4]
في Fiat Ruins Everything الصادر في 2023، يجادل Song بأن النقود المعتادة التي تصدرها الدول، أو fiat money، تؤثر بعمق في المؤسسات، وأن Bitcoin يقدم سبيلًا للإصلاح. هنا نقرأ تفسير المؤلف للمجتمع، لا إجراءً للتحقق من توقيع. يحتاج هذا الادعاء إلى حججه وأدلته الخاصة. حل تمرين تشفير بصورة صحيحة لا يثبت أطروحة اجتماعية، والخلاف مع رأي اقتصادي لا يدحض وحده شرحًا تقنيًا. يمكن تقييم كل جانب من عمله بأدلته المناسبة. [6]
يشرح موقع Song التحقق من صورة غرض يحمل توقيعًا بخط اليد بواسطة PGP، أداة للتوقيعات الرقمية، وSHA-256، دالة لإنشاء بصمة ملف. تطابق البصمة يساعد على التحقق من أن الملف هو نفسه؛ والتوقيع الصحيح يربط البيانات الموقّعة بمفتاح. لكن إثبات صاحب المفتاح يبقى خطوة منفصلة. عند هذه المراجعة، تعرض الصفحة تسميات غير متسقة للمفتاح القديم والجديد، لذلك لا ننقل معرّفها المختصر بوصفه هوية متحقَّقًا منها. فحص البيانات والثقة بمصدرها خطوتان مختلفتان. [7]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Alex Gladstein, Bitcoin Script, Private Key. تشير إلى هذا المدخل أيضًا مؤتمر هاكرز باراليلني بوليس, Cathie Wood.