Gregory Maxwell، المعروف أيضًا باسم Greg Maxwell أو gmaxwell، مطوّر في Bitcoin ومشارك في تأسيس Blockstream. ساهم في CoinJoin وConfidential Transactions وTaproot، وشارك في تأليف Bech32. تشير هذه الأسماء إلى تقنيات مختلفة، لا إلى حزمة وظائف متاحة في كل محفظة Bitcoin.
يربط عمل Maxwell تطوير Bitcoin بالخصوصية والأمان. شارك في تأسيس Blockstream وشغل منصب CTO، أي المسؤول التقني الأول. أعلنت الشركة في 19 يناير 2018 أنه ترك هذا المنصب ليركّز على Bitcoin. هذا تاريخ الإعلان، وليس دليلًا على اليوم الدقيق لترك المنصب. كما لا يحدد الإعلان وظيفته الحالية. الأهم هنا هو المشكلات المحددة التي عمل عليها، لا المسمّى الوظيفي. [1]
تخيّل عدة أشخاص يجمعون مدفوعاتهم في معاملة واحدة. يضيف كل منهم مدخلاته، أي العملات التي تلقّاها سابقًا وينفقها الآن، ويوقّع للسماح باستخدامها. لذلك لا يستطيع المراقب الجزم بأن المدخلات تخص شخصًا واحدًا لمجرد اجتماعها في المعاملة. شرح Maxwell هذا الأسلوب باسم CoinJoin في 22 أغسطس 2013، مستخدمًا اسم gmaxwell. وأشار صراحة إلى استخدام محدود سابق؛ فلم تكن التقنية تتطلب تغيير قواعد بروتوكول Bitcoin. [2]
كيف يتفق المشاركون على ما سيوقّعونه؟ يستطيع منسّق إعداد CoinJoin بسيط، لكن كل مشارك يتحقق أولًا من مخرجه: إلى أين ستذهب أمواله وبأي مبلغ. ثم يوقّع مدخلاته. لا يمنح ذلك المنسّق حق إنفاق العملات كما يشاء. ومع ذلك، قد يعرف في التطبيق البسيط الروابط بين المدخلات والمخرجات. ويمكن لمشارك يرفض التوقيع إيقاف الجولة كلها. إذن الحماية من السرقة، والتوافر، والخصوصية خصائص مختلفة. [2]
تكشف معاملات Bitcoin المعتادة المبالغ. تعالج Confidential Transactions مشكلة مختلفة عن مجرد جمع المدفوعات: تخفي المبالغ داخل التزامات تشفيرية. تثبّت هذه البيانات قيمة دون كشفها، وتسمح خصائصها بالتحقق من المجموع أيضًا. يبني شرح Maxwell في Elements على مقترح Adam Back من عام 2013. واستخدامها في Elements لا يعني نشر هذه الوظيفة في شبكة Bitcoin الأساسية. كذلك لا يخفي حجب المبالغ وحده مخطط المعاملات كله، أي الروابط بين المدفوعات. [3]
حسابيًا، 10 = 11 + (-1). إذا اعتبرنا ذلك نموذج تحويل دون رسوم، تظهر المشكلة: المجموع متوازن، لكن المخرج الموجب أكبر من القيمة الأصلية ويعادله مخرج سالب بلا معنى. في Confidential Transactions قد يسبب التفاف القيم في الحساب المعياري (modular overflow) أثرًا مشابهًا، حين تتجاوز العملية حدود نظام الأعداد وتلتف إلى بدايته. لذلك نحتاج إلى إثبات نطاق: يتحقق من أن المبلغ المخفي ضمن المجال المسموح دون إظهار قيمته الدقيقة. يجب ألا تفتح الخصوصية بابًا لخلق أموال إضافية. [3]
لماذا نكشف شروط الإنفاق الاحتياطية إذا اتفق الجميع ولم نحتج إليها؟ أظهر مقترح Taproot الذي نشره Maxwell في 23 يناير 2018 كيف يستطيع توقيع مشترك إخفاء وجود شروط إنفاق أخرى. عند تعاون الأطراف، قد يبدو الاتفاق المعقد كدفعة عادية يجيزها مفتاح. لكن تاريخ الرسالة ليس تاريخ التفعيل في الشبكة. تبقى بين الفكرة وتبنّيها مناقشات، وقواعد دقيقة، وقبول لها. [4]
تذكر المواصفة النهائية BIP 341، وهي وثيقة تقنية علنية تحدد قواعد Taproot، أسماء Pieter Wuille وJonas Nick وAnthony Towns مؤلفين لها. يستطيع مسار المفتاح استخدام توقيع دون كشف وجود برنامج شروط بديل. والـscript برنامج يعبّر عن شروط الإنفاق؛ وعند استخدام مسار البرنامج يُكشف البرنامج المختار ودليل إدراجه. لا يقلل ذلك من أهمية فكرة Maxwell الأصلية، لكنه لا يتيح نسبة التأليف الكامل للقواعد النهائية إليه وحده. [5]
يتطلب إرسال المال عنوانًا مكتوبًا بصورة صحيحة أيضًا. Pieter Wuille وGreg Maxwell هما مؤلفا BIP 173، الذي يشرح Bech32 لعناوين SegWit الأصلية. تتضمن قيمة التحقق محارف تساعد على اكتشاف خطأ في الترميز. لكنها لا تتحقق من هوية المستلم أو ممن يحمل المفتاح الخاص. قد ينجح عنوان صحيح جرى استبداله في اجتياز الفحص. لذلك يعالج Bech32 مشكلة مختلفة عن CoinJoin أو إخفاء المبالغ، ولا ينبغي الخلط بين فوائدها. [6]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Pieter Wuille, Matt Corallo, Satoshi Nakamoto. تشير إلى هذا المدخل أيضًا Pieter Wuille, Matt Corallo.