من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

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

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

إطلاق منصة Stoffel للحوسبة متعددة الأطراف (MPC)

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

تُتيح الحوسبة متعددة الأطراف (MPC) لأجهزة كمبيوتر متعددة إجراء حسابات على البيانات الخاصة دون أن يتلقى أي جهاز مدخلات البيانات الكاملة. وعلى الرغم من أن أنظمة MPC كانت صعبة البناء تقليديًا، إلا أن Stoffel تقدم هذه التقنية كمنصة تطوير سهلة الوصول. تُكتب التطبيقات بلغة StoffelLang الشبيهة بلغة بايثون، وتُجمع إلى كود بايت (bytecode)، وتُنفّذ بواسطة جهاز Stoffel الافتراضي (VM) عبر مجموعة من أطراف MPC.

لم نعد بحاجة إلى الاعتماد على سياسات خصوصية قوية أو قواعد بيانات مركزية فائقة الأمان. يمكننا ببساطة تجنب جمع البيانات الأولية في مكان واحد من الأساس.

تجربتي مع Monadic DNA باستخدام Stoffel MPC

نظرًا لعملي المستمر في مجال الحمض النووي الأحادي (Monadic DNA)، كان علم الجينوم يمثل حالة اختبار واضحة. في تجربة سابقة، قمت أنا وزملائي باستخدام بيانات Nillion والأنماط الجينية الحقيقية لثلاثين مشاركًا لاستكشاف تحليل الحمض النووي الخاص.

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

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

بدلًا من التصميم التقليدي حيث تُحمّل بيانات النمط الجيني لكل شخص إلى خدمة مركزية يجب عليها حمايتها، أردت أن أرى ما إذا كان بإمكان Stoffel السماح لكل تطبيق Monadic DNA بالمساهمة مباشرة في عملية حسابية مشتركة. في هذا التصميم، لا يتلقى أي منسق، أو خادم تطبيق، أو طرف MPC فردي مجموعة البيانات الكاملة.

الكود المصدري لهذه التجربة متاح على GitHub.

أهداف إثبات المفهوم (PoC)

يحاكي إثبات المفهوم هذا (PoC) مائة مستخدم لتطبيق Monadic DNA المحمول ينضمون إلى دراسة جينومية مجمعة. يساهم كل مستخدم بست قيم SNP اصطناعية، والتي يمكن أن تكون قد تم الحصول عليها من Monadic DNA أو 23andMe أو أي خدمة أخرى. تقوم الدراسة بحساب العدد الإجمالي لكل أليل مستهدف ودرجة مرجحة بسيطة عبر المجموعة.

النقطة المحورية هنا هي حدود الثقة. كل مستخدم مُحاكى يمتلك هوية عميل وعملية منفصلة تحتوي فقط على قيمه الستة. يقوم العميل بإنشاء مشاركات (shares) محليًا ويرسل مشاركة مختلفة مباشرة إلى كل طرف من أطراف MPC. وفي النهاية، يتم الكشف عن الأعداد الإجمالية والنتيجة فقط.

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

في تدفق بيانات Monadic DNA المستهدف، يراجع المستخدم الدراسة في تطبيق الهاتف المحمول ويوافق عليها. سيحدد التطبيق فقط قيم الحمض النووي المطلوبة لهذا الحساب المعتمد، وينشئ المشاركات (shares) على الهاتف، ويرسلها مباشرة إلى أطراف MPC. يجب ألا تمر بيانات الحمض النووي الكاملة أبدًا عبر خوادم Monadic DNA أو أي خدمة استيعاب مركزية أخرى؛ فقط النتيجة الإجمالية المعتمدة هي التي يجب أن تغادر بيئة حساب MPC.

مقارنة بين الحوسبة متعددة الأطراف (MPC) والتشفير المتماثل بالكامل (FHE)

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

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

تختلف خصائص الأداء أيضًا باختلاف عبء العمل والتنفيذ. يدعم FHE المدخلات المشفرة غير التفاعلية والحسابات من خلال خدمة واحدة، على الرغم من أن عمليات النص المشفر يمكن أن تكون مكلفة حسابيًا. تُقدم MPC التواصل بين الأطراف، بينما تمثل العمليات الحسابية التجميعية البسيطة مثل المجاميع في هذه التجربة عبء عمل طبيعيًا لـ MPC. لا يعتبر أي من النهجين الأفضل عالميًا لعلم الجينوم؛ فالخيار الأنسب يعتمد على طبيعة الحساب، وافتراضات الثقة، وقيود النشر، ونموذج التفاعل المطلوب. يستكشف إثبات المفهوم هذا (PoC) خيار MPC عبر منصة Stoffel بدلًا من محاولة إنشاء ميزة عامة لـ FHE.

التفاصيل الفنية

يتألف الإعداد المحلي من ثلاثة أنواع من المكونات الرئيسية:

  • يمثل مائة عميل أصلي (native client processes) مستخدمين مستقلين أو أجهزة محمولة، حيث يتلقى كل عميل هوية فريدة وقصيرة الأجل، وقيمه الاصطناعية الستة فقط من SNPs.
  • تستقبل أربعة أطراف من Stoffel MPC المشاركات (shares) من كل عميل وتقوم بتنفيذ الحساب الخاص بشكل مشترك.
  • يتولى المنسق (coordinator) تفويض المشاركين واكتشافهم، ولكنه لا يستقبل قيم الأنماط الجينية أو يقوم بأي حساب جينومي.

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

يتم كتابة الحساب الخاص بلغة StoffelLang. القيم المُعلّمة بأنها سرية (secret) تظل مشتركة أثناء معالجة البرنامج لها. تقوم وظيفة التجميع الأساسية بقراءة قيمة سرية واحدة من خانة الإدخال لكل مستخدم وتجمع هذه القيم معًا.

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

تستخدم الأطراف الأربعة الواجهة الخلفية HoneyBadger من Stoffel فوق المجال العددي BLS12-381. بالنسبة للمطورين، يُعد HoneyBadger محرك Stoffel للأغراض العامة للحسابات الخاصة. يستخدم التكوين أربعة أطراف وعتبة واحدة، مما يلبي متطلبات HoneyBadger (n >= 3t + 1) ويسمح بتحمل طرف واحد معيب بموجب افتراضات البروتوكول، بحيث لا يمكن لطرف واحد سيء أن يعرقل شبكة MPC بأكملها.

يقوم العدّاء (runner) بتوفير الهويات، وتجميع البرنامج، وتشغيل البنية التحتية، وإطلاق العملاء بفارق 50 مللي ثانية. يقوم بشكل مستقل بحساب النتيجة المتوقعة للتركيبات الاصطناعية الحتمية، ويتحقق من المجموع الصادر من أطراف MPC، ويسجل التوقيت واستخدام الذاكرة. يتم تفكيك كل شيء بعد انتهاء التشغيل.

النتائج المحققة

اكتمل تشغيل مائة مستخدم بنجاح، وتم إنتاج القيم المتوقعة التالية:

تمت مطابقة الأعداد الإجمالية لكل أليل مستهدف للقيم المتوقعة، حيث تراوحت بين 99 و101.

وكانت درجة المجموعة المرجحة 498، مطابقة للنتيجة التي تم حسابها بشكل مستقل.

على جهاز الكمبيوتر الخاص بالتطوير، تم قياس الأداء كما يلي:

  • 28.26 ثانية لبدء وتجهيز البنية التحتية.
  • 6.17 ثانية لبدء تشغيل العملاء وإكمال عبء عمل MPC.
  • 45.29 ثانية للتشغيل الكامل، بما في ذلك الإعداد والتحقق والتنظيف.
  • ما يقرب من 1.29 جيجابايت من ذاكرة الذروة عبر مائة عملية عميل.
  • ما يقرب من 62 ميجابايت من ذاكرة الذروة عبر المنسق وأربع حاويات MPC.

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

كما أدى التوسع من عشرة إلى مائة عميل إلى استخلاص درس مفيد بشأن البنية التحتية. يتصل كل عميل بالمنسق وجميع الأطراف الأربعة لـ MPC، مما يؤدي إلى إنشاء ما يقرب من خمسمائة اتصال من العميل إلى الخادم. تسبب تشغيل جميع العملاء في وقت واحد في حدوث أعطال متقطعة لبروتوكول TLS بينما كان العملاء ينتظرون أقنعة إدخال MPC. لم تكن حسابات التشفير هي عنق الزجاجة؛ بل كانت المشكلة تكمن في الاندفاع الأولي لاتصالات الشبكة.

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

تجربة المطور

هل نجحت Stoffel في تبسيط عملية MPC؟ كانت تجربة المطور الأساسية من أكثر الجوانب إيجابية في هذه التجربة. لغة StoffelLang صغيرة وسهلة القراءة، كما أن أنواع البيانات السرية (secret) تجعل حدود الخصوصية واضحة في البرنامج. لقد كان كتابة المجاميع الستة الخاصة أقرب بكثير إلى تطوير التطبيقات العادية منه إلى تنفيذ بروتوكول تشفير معقد. وقد وفرت أمثلة المستودع مسارًا مفيدًا لتشغيل المنسق المحلي وأطراف MPC.

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

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

أوضح الاختبار أيضًا الخطوات التالية للانتقال من إثبات المفهوم (PoC) الناجح نحو مرحلة الإنتاج:

  • تم تشغيل جميع أطراف MPC الأربعة على جهاز كمبيوتر واحد. على الرغم من أن البروتوكول يفصل بياناتهم، إلا أن الجهاز الواحد لا يمثل أربع منظمات مستقلة. يتطلب نشر الإنتاج أطرافًا تديرها كيانات غير مرجح أن تتواطأ. في هذا التكوين، تفترض الخصوصية عدم وجود أكثر من طرف واحد مخطئ أو متواطئ.
  • كانت المدخلات حتمية واصطناعية. عرف جهاز الاختبار هذه المدخلات لكي يتمكن من التحقق من الإجابة. في دراسة حقيقية، يجب على الأجهزة المستقلة توليد المشاركات (shares) محليًا.
  • تحمي MPC الحساب، وليس سلامة النتيجة. يمكن للمجموعات الصغيرة، أو الاستعلامات المتكررة، أو المجموعات المتداخلة أن تكشف عن المساهمات الفردية عن طريق الطرح. لا يزال الإنتاج يتطلب حدًا أدنى لأحجام المجموعات، وضوابط الاستعلام، والموافقة، والتدقيق، وهوية منفصلة ومعتمدة لتلقي النتائج.
  • لا يوفر هذا المستودع حتى الآن حزمة تطوير برامج (SDK) جاهزة للإنتاج للأجهزة المحمولة. يحل عملاء Rust الأصليون محل الهواتف، ولا يزال تغليف هذا المنطق ومراجعته لأنظمة iOS و Android ضروريًا. استخدام MPC لمئات الأجهزة المحمولة مناسب جدًا، لذا فإن الافتقار إلى SDK للجوال ليس أمرًا غير معقول.
  • التشغيل المتدرج الناجح مناسب لإثبات المفهوم هذا. سيكون اختبار ألف عميل متزامن هو الخطوة الرئيسية التالية وسيتطلب حدودًا أعلى لاستدعاءات الإجراءات البعيدة (RPC)، وآليات قوية لإعادة المحاولة، ومزيدًا من الذاكرة، وبنية تحتية واقعية.

الخاتمة

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

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

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

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

شرح قنوات سماعات الصوت المحيطي: ليس الأكبر دائمًا هو الأفضل لتجربة مسرح منزلي مثالية
مراكز بيانات الذكاء الاصطناعي: ترحيب متحفظ وفوائد غير متوقعة في المجتمعات الأمريكية

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل