الفصل الثامن

حدود الكود المفتوح

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

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

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

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

في المقابل، إذا نحَّينا جانبًا شكوكنا حول الديمقراطية لبرهة، وركَّزنا على سمات الإنترنت والفضاء الإلكتروني التي نتفق جميعًا على أنها مهمة بصورة أساسية، أعتقد أننا سندرك جميعًا نقطة معينة، ومتى أدركناها تبدُ بديهية؛ ألا وهي: إذا كان الكود يقوم بعملية التنظيم، يصبح نوع الكود المنظِّم في غاية الأهمية، على الأقل في بعض السياقات المهمة.

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

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

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

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

(١) وحدات بيانات تتشمَّم

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

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

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

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

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

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

(٢) ماكينات العَد الفعَّالة

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

غيَّرت انتخابات عام ٢٠٠٠ كل شيء. غيَّرت فلوريدا بصورة أكثر تحديدًا كل شيء. لم تسفر تجربة فلوريدا عن بيان عدم كفاءة الماكينات الميكانيكية التقليدية في جدولة أصوات الناخبين (الدليل ١، بقايا قطع الورق المعلقة جراء دس بطاقات التصويت في الماكينات)، لكنها كشفت أيضًا عن عدم المساواة غير العادية في استخدام تكنولوجيات مختلفة في أماكن مختلفة من الولاية. تُستبعد حوالي ٤٪ من بطاقات التصويت التي تُدس في ماكينات التصويت التقليدية، في مقابل ١٫٤٣٪ من بطاقات التصويت التي تُحصى باستخدام ماكينات المسح الضوئي، على حد قول القاضي ستيفنز في نقده الحاد لقرار المحكمة الدستورية العليا في قضية «بوش ضد جور».5 ووفق إحدى الدراسات، كان يمكن أن تتغير نتيجة الانتخابات كلها بتغير نتيجة صوت واحد فقط في كل ماكينة.6

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

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

لم تزد هذه الواقعة شركة دايبولد إلا إصرارًا. واصلت الشركة رفضها الكشف عن أي شيء يتعلق بالكود الذي كانت تستخدمه ماكيناتها. رفضت الشركة أيضًا الدخول في مناقصات في سياقات كان يُشترط فيها الشفافية. عندما تربط إذن هذا الرفض بوعد رئيس الشركة «ضمان أوهايو» لصالح الرئيس بوش في عام ٢٠٠٤، تتولَّد لدى أي إنسان عاصفة هائلة من الشك. تتحكم الشركة في الماكينات. لن تكشف الشركة عن طريقة عمل هذه الماكينات. تعد الشركة بتحقيق نتيجة محددة في الانتخابات. ألا يحق للناس الشعور بالشك؟7

يتضح الآن مدى الصعوبة البالغة في معرفة طريقة تصميم ماكينات التصويت الإلكترونية. في واحدة من أكثر لحظات عدم الفطنة منذ بلوغي ٢١ عامًا، أخبرت زميلًا لي بعدم ضرورة إقامة مؤتمر حول التصويت الإلكتروني؛ حيث إن جميع الموضوعات المتعلقة بماكينات التصويت الإلكترونية تبدو «بديهية للغاية». ليس كل شيء بديهيًّا للغاية. في واقع الأمر، هذه موضوعات شديدة الصعوبة. تبدو ماكينات التصويت الإلكترونية بالنسبة للبعض، مثل ماكينة الصرف الآلي، ماكينة يصدر عنها ورقة مطبوعة، لكن إذا كان الأمر يقتصر على إصدار ورقة مطبوعة، فسيصبح سهلًا على الناخبين أن يبيعوا أصواتهم. بالإضافة إلى ذلك، ربما لا تعبِّر هذه الورقة المطبوعة عمَّا تم عدُّه، وربما لا تعبِّر هذه الورقة المطبوعة بالضرورة عما تم نقله إلى أي جهة مركزية لجدولة الأصوات. من هنا تتضح عدم بديهية مسألة أفضل الطرق لتصميم هذه الماكينات. بعد أن عبَّرت بما لا قيمة له على الإطلاق عن هذه النقطة من قبلُ، لن أناقش هنا أفضل طرق تصميم هذه الماكينات.

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

•••

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

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

يظل السؤال الصعب هو ما إذا كان يمكن الادعاء بما هو أكثر من بناء الثقة في الكود. هذا هو السؤال المطروح فيما تبقى من هذا الفصل: كيف يؤثر الكود المفتوح على القابلية للتنظيم؟

(٣) الكود على الشبكة

قضيتُ وقتًا طويلًا أتحدث عن «الكود». حان الوقت الآن أن أكون أكثر تحديدًا فيما يتعلق بماهية «الكود» في سياق الإنترنت، وكيف نعتبر هذا الكود «مفتوحًا»؟ وفي أي السياقات يصبح انفتاح الكود مسألة مهمة؟

كما ذكرت، يتكون الإنترنت من خلال مجموعة من البروتوكولات يُطلق عليها معًا تي سي بي/آي بي. تشتمل مجموعة تي سي بي/آي بي على عدد كبير من البروتوكولات التي تغذي «طبقات» مختلفة من الشبكة. يتمثل النموذج القياسي للتعبير عن طبقات إحدى الشبكات في نموذج اتصال النظم المفتوحة (أو إس آي). يعبِّر هذا النموذج عن سبع طبقات، كلٌّ منها يمثل «وظيفة يتم تنفيذها عند انتقال البيانات بين تطبيقات متجاوبة عبر» الشبكة. في المقابل، لا يتم التعبير بصورة جيدة عن مجموعة بروتوكولات تي سي بي/آي بي في هذا النموذج. «تحدد معظم توصيفات بروتوكولات تي سي بي/آي بي ثلاثة أو أربعة مستويات وظيفية فقط في تصميم البروتوكول»، على حد قول كريج هَنت. وفي رأيي، من الأسهل وصف أربع طبقات وظيفية في معمارية بروتوكولات تي سي بي/آي بي.9 بالانتقال من الأسفل إلى الأعلى، يمكن تسمية هذه الطبقات باسم: طبقة وصلات البيانات، وطبقة الشبكة، وطبقة النقل، وطبقة التطبيقات.10

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

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

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

تعلو هذه الطبقات الثلاث طبقة تطبيقات الإنترنت. «تكثُر» في هذه الطبقة البروتوكولات.11 تشمل هذه البروتوكولات أكثر بروتوكولات تطبيقات الشبكة شيوعًا، مثل: بروتوكول إف تي بي (بروتوكول تبادل الملفات)، وبروتوكول إس إم تي بي (بروتوكول إرسال البريد البسيط)، وبروتوكول إتش تي تي بي (بروتوكول نقل النص الفائق). هذه هي القواعد التي تنظم كيفية تفاعل العميل (جهازك) مع أحد الخوادم (حيث توجد البيانات)، أو مع جهاز كمبيوتر آخر (في خدمات الند للند)، والعكس صحيح.12

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

عندما أتحدث عن تنظيم الكود، فإني أشير إلى تغيير بروتوكولات تي سي بي/آي بي الأساسية هذه (على الرغم من إمكانية تنظيمها من ناحية المبدأ، بالطبع. وبالفعل اقترح آخرون ضرورة تنظيمها).13 في رأيي، تعتبر مكونات الشبكة هذه ثابتة. إذا اشترطت تغييرها، فسيؤدي ذلك إلى انهيار الإنترنت. بدلًا، إذن، من تصوُّر تغيير الحكومة للبروتوكولات الأساسية، يتمثل السؤال الذي أرغب في طرحه في كيفية (١) إضافة الحكومة تكنولوجيات أخرى إلى التكنولوجيات الأساسية للقيام بعملية التنظيم، أو (٢) تنظيم الحكومة للتطبيقات التي تتصل بالبروتوكولات الأساسية. كلتا الطريقتين مهمتان غير أنني أركِّز هنا على كود الاتصال بالإنترنت. سأطلق على هذا الكود «فضاء التطبيقات» في الإنترنت. تشمل هذه التطبيقات جميع الشفرات التي تنفِّذ بروتوكولات تي سي بي/آي بي في طبقة التطبيقات، مثل: متصفحات الإنترنت، وأنظمة التشغيل، ونماذج التشفير، وتطبيق جافا، وأنظمة البريد الإلكتروني، وخدمات الند للند وما إلى ذلك. يتمثل السؤال إذن فيما تبقى من هذا الفصل في طبيعة هذا الكود التي تجعله قابلًا للتنظيم.

(٤) تاريخ قصير للكود على الشبكة

كانت توجد تطبيقات قليلة، بالطبع، على الشبكة في البداية. لم تكن الشبكة أكثر من بروتوكول لتبادل البيانات، وكانت البرامج الأصلية تستخدم هذا البروتوكول. ولد بروتوكول تبادل الملفات في وقت مبكر من تاريخ الشبكة،14 فيما ولد بروتوكول إرسال البريد البسيط بعده مباشرةً. لم يمر وقت طويل حتى تم تطوير بروتوكول رسومي (جوفر) لعرض الملفات والنصوص في صورة بصرية. وفي عام ١٩٩١، تمخَّض أشهر بروتوكولات الإنترنت — بروتوكول نقل النص الفائق وبروتوكول لغة تمييز النص الفائق — عن ولادة الشبكة العالمية.
أفرز كل بروتوكول عددًا كبيرًا من التطبيقات. ونظرًا لعدم احتكار أحد للبروتوكولات، لا يستطيع أحد احتكار تطبيقه. كانت هناك تطبيقات بروتوكولات نقل ملفات عديدة، فضلًا عن وجود عدد كبير من خوادم البريد الإلكتروني. كان هناك أيضًا عدد كبير من تطبيقات تصفُّح الإنترنت.15 تميَّزت هذه البروتوكولات في هذه المرحلة المبكرة بمعاييرها المعروفة؛ حيث استقت هذه البروتوكولات معاييرها من جهات تضع معايير البروتوكولات على الإنترنت مثل قوة عمل هندسة الإنترنت، وفيما بعد، رابطة الشبكة الدولية. بمجرد وضع معايير لأحد البروتوكولات، كان المبرمجون يبتكرون البرامج لاستخدامه.
كانت معظم البرمجيات التي تستخدم هذه البروتوكولات مفتوحة، على الأقل في البداية؛ حيث يتم توفير كود المصدر لها بالإضافة إلى كود الأوامر.16 كان هذا الانفتاح سببًا في نمو الشبكة في بدايتها؛ حيث كان الآخرون يستطيعون التعرف على كيفية تنفيذ برنامج، والتعلُّم من ذلك كيفية تنفيذ البروتوكول فيما بعدُ.
تعتبر الشبكة العالمية أفضل مثال على ذلك. مرة أخرى، يسمى الكود الذي يجعل صفحات الإنترنت تبدو في الصورة التي تظهر بها؛ لغة تمييز النص الفائق.17 يمكن من خلال لغة تمييز النص الفائق تحديد شكل صفحة الإنترنت، وماذا يرتبط بها من تطبيقات أخرى وما إلى ذلك.
في عام ١٩٩٠، اقترح باحثا المنظمة الأوروبية للأبحاث النووية (سيرن): تيم بيرنرز لي وروبرت كايو النسخة الأصلية من لغة تمييز النص الفائق.18 وضعت هذه اللغة في البداية لتيسير عملية ربط الملفات في مؤسسة بحثية، لكن سرعان ما تبين إمكانية ربط الملفات من خلال أي جهاز كمبيوتر على الإنترنت. جعل بيرنرز لي وكايو بروتوكول لغة تمييز النص الفائق وبروتوكول نقل النص الفائق متاحيْنِ للجميع.

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

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

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

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

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

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

يتوافَر المزيج نفسه بين الكود المفتوح والمغلق في برامج تصفُّح الإنترنت وتطبيقات التدوين. يعتبر متصفِّح فايرفوكس هو أكثر التطبيقات شعبية لتكنولوجيا موزيلا، وهي التكنولوجيا التي كانت تحرِّك متصفح نتسكيب. يتنافس متصفح فايرفوكس مع متصفح شركة مايكروسوفت إنترنت إكسبلورر وعدد من برامج التصفح التجارية الأخرى. بالمثل، يتنافس تطبيق ورد برس — وهو أحد تطبيقات التدوين مفتوحة المصدر — مع عدد من تطبيقات التدوين التجارية الأخرى.

يستند النمو الأخير في الكود المفتوح إلى تاريخ طويل. يرجع جزء من دوافع استخدام الكود المفتوح إلى أسباب أيديولوجية أو أسباب تستند إلى القيم. يمثل ريتشارد ستُلمان نموذجًا مُلْهمًا في هذا السياق. في عام ١٩٨٤، أنشأ ستُلمان مؤسسة البرمجيات الحرة بهدف دفع نمو البرمجيات الحرة. كرَّس ستُلمان — الزميل السابق في برنامج ماك آرثر الذي تخلَّى عن وظيفته من أجل تكريس نفسه للقضية — السنوات العشرين الأخيرة من حياته لنشر البرمجيات الحرة. بدأ عمل ستُلمان من خلال مشروع جي إن يو الذي كان يهدف إلى تطوير نظام تشغيل حر. بحلول عام ١٩٩١، حاز مشروع جي إن يو كل ما يحتاج إليه لتطوير نظام تشغيل حر فيما عدا نواة نظام التشغيل. تمكَّن أحد الطلاب في جامعة هلسنكي فيما بعدُ من إنجاز النواة. في ذلك العام، قام لينوس تورفالدس بنشر كود نواة النظام الجديد على الإنترنت؛ حيث دعا تورفالدس الجميع لنشره بدورهم واختباره.

بدأ المستخدمون في نشر واختبار النواة الجديدة، وتدريجيًّا — خلال النصف الأول من تسعينيات القرن العشرين — قام المستخدمون ببناء نظام تشغيل، أُطلق عليه اسم جي إن يو/لينُكس، مزاوجين في ذلك بين مكونات مشروع جي إن يو ونواة تورفالدس. بحلول عام ١٩٩٨، بدا للجميع أن نظام جي إن يو/لينُكس سيصبح منافسًا خطيرًا لنظام تشغيل شركة مايكروسوفت. ربما تصوَّرت مايكروسوفت في عام ١٩٩٥ أنه بحلول عام ٢٠٠٠ لن يكون هناك أي نظام تشغيل خوادم في السوق بخلاف نظام ويندوز إن تي، لكن بحلول عام ٢٠٠٠، كان هناك نظام جي إن يو/لينُكس، نظام مثَّل تهديدًا لمايكروسوفت في سوق الخوادم. حاليًّا، في عام ٢٠٠٧، تواصل خوادم لينُكس زيادة حصتها السوقية على حساب أنظمة مايكروسوفت.

يعتبر نظام جي إن يو/لينُكس نظامًا مذهلًا من عدة جوانب؛ أولًا: لأنه نظام غير كامل من الناحية النظرية، لكنه نظام في غاية الفعالية من الناحية العملية. رفض لينوس تورفالدس ما تمليه علوم الكمبيوتر حول التصميم الأمثل لنظم التشغيل،20 وقام بدلًا من ذلك ببناء نظام تشغيل مصمَّم للعمل على معالج بيانات واحد فقط (إنتل ٣٨٦)، فضلًا عن عدم تجاوبه مع عدد من منصات التشغيل. تحوَّل نظام جي إن يو/لينُكس، من خلال تطويره المبتكر والحماس الذي تولَّد عن استخدامه، إلى نظام تشغيل شديد الفعالية. وحتى وقت كتابة هذا الكتاب، تم استخدام نظام جي إن يو/لينُكس فيما لا يقل عن ثماني عشرة منصة حاسوبية مختلفة، من معالجات إنتل للبيانات الأصلية، إلى شريحة باور بي سي لشركة أبل، إلى شرائح إس بي إيه آر سي لشركة صَن، إلى أجهزة الهاتف المحمول التي تستخدم معالجات إيه آر إم.21 استخدم القراصنة المبدعون نظام جي إن يو/لينُكس لاختراق أجهزة آي بود من شركة أبل وأنظمة أتاري القديمة. على الرغم من تصميم نظام جي إن يو/لينُكس بحيث يفهم لغة برمجة واحدة، صار نظام جي إن يو/لينُكس هو اللغة الشائعة لأنظمة التشغيل الحرة.

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

بعبارة أخرى، يوجد كود نظام جي إن يو/لينُكس على المشاع.22 يستطيع أي مستخدم الحصول عليه واستخدامه كيفما يشاء. يستطيع أي مستخدم الحصول عليه وفهم طريقة عمله. يعتبر كود نظام جي إن يو/لينُكس مثل برنامج بحثي تُنشر نتائجه دومًا حتى يطَّلع عليها الآخرون. كل شيء علني. يستطيع أي فرد — دون الحاجة إلى الحصول على تصريح من أحد — الانضمام إلى المشروع.

نجح نظام جي إن يو/لينُكس نجاحًا باهرًا أكثر مما تخيَّل أحد. في عام ١٩٩٢، لم يكن يتصور معظم الناس إمكانية بناء نظام تشغيل حر عن طريق متطوعين من حول العالم. في عام ٢٠٠٢، لا أحد يشك في ذلك. في المقابل، إذا كان بالإمكان أن يصير المستحيل ممكنًا، لا يوجد ما يمنع أن يصير الممكن مستحيلًا مرة أخرى. تشير بعض الاتجاهات في تكنولوجيا الحوسبة إلى احتمال وقوع مثل هذا التهديد.

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

في المقابل، لا يعتبر الكود الذي يحرِّك صفحات الخادم النشطة من الناحية التكنولوجية «متاحًا» للجميع. وهكذا حتى لو ابتُكر كود ورُخِّص من خلال رخصة جي إن يو العامة، لا يوجد أي التزام في شروط الرخصة لإتاحة الكود للجميع. وبالتالي كلما صارت صفحات الخادم النشطة تتحكَّم في البنية التحتية للحياة على الشبكة أكثر فأكثر، تقلص عدد التطبيقات التي تصير حرة بموجب الرخصة الحرة.

تمثِّل «الحوسبة محل الثقة» خطرًا آخر على بيئة الكود المفتوح. أطلقت هذه الحوسبة كحلٍّ للفيروسات والتهديدات الأمنية في البيئة الشبكية، وتتمثل الخاصية الرئيسة في «الحوسبة محل الثقة» في أنها منصة تحجب البرامج التي لا يتم تسجيل شفراتها أو التحقق منها. على سبيل المثال، إذا أردت تشغيل برنامج على جهاز الكمبيوتر، فسيتحقق الكمبيوتر أولًا من اعتماد البرنامج من خلال إحدى الجهات التي يتعرَّف عليها نظام التشغيل، فضلًا عن «تضمين الأجهزة والبرمجيات … والمعايير الأمنية التي يعتمدها مقدمو المحتوى أنفسهم.»23 إذا لم يتم الأمر على هذا النحو فلن يعمل البرنامج.

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

(٥) تنظيم الكود المفتوح

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

كيف تؤثِّر هذه الحقيقة على قابلية الكود للتنظيم؟

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

خذ هذين المثالين. تأمر الحكومة شركات الهواتف بشيء يتعلق بطريقة تصميم شبكاتها، كما تأمر الحكومة مُصنِّعي أجهزة التليفزيون بنوع الشرائح التي يجب استخدامها كجزء من مكونات الأجهزة. لماذا تنجح هذه الأشكال التنظيمية؟

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

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

ينجح التنظيم الحكومي في كلتا الحالتين؛ لأنه عندما يلتزم الطرف المستَهدف من عملية التنظيم به لا يكون أمام العملاء سوى القبول بالأمر الواقع.

تختلف حالة الكود المفتوح. يمكن إدراك جانب من هذا الفرق في قصة يرويها المستشار القانوني السابق لشركة نتسكيب بيتر هارتر، عن نتسكيب والفرنسيين.24

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

هناك قيود كثيرة على قدرة نتسكيب على تغيير كود البروتوكول، يتمثل إحداها على الأقل في إتاحة نتسكيب البروتوكول للجميع في صورة معيار عام. في المقابل، هَبْ لوهلة أن نتسكيب لم تفعل ذلك. هَبْ أن نتسكيب تسيطر على معايير صياغة كود بروتوكول إس إس إل؛ حيث تستطيع من الناحية النظرية تغيير الكود بحيث تُمكِّن الفرنسيين من التلصص. هل يعني ذلك التزام نتسكيب بالطلب الفرنسي؟

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

النقطة محل النقاش هنا بسيطة، لكن تداعياتها عميقة. تُقيَّد سلطة الحكومة بقدر ما يكون الكود مفتوحًا. تستطيع الحكومات أن تطلب، وتستطيع الحكومات أن تتوعَّد، لكن عندما يصبح هدف عملية التنظيم متحركًا؛ لا تستطيع الحكومة أن تثق في بقاء الهدف حيث تريد.

هَبْ أنك مسئول دعائي سوفييتي، وهَبْ أنك تريد أن يقرأ الناس الكثير من المعلومات عن بابا ستالين. تقول للناس إن كل كتاب منشور في الاتحاد السوفييتي يجب أن يتضمن فصلًا يتحدث عن ستالين. كيف يمكن أن تؤثر مثل هذه الكتب على ما يقرأ الناس؟

تعتبر الكتب أكوادًا مفتوحة. لا تخفي الكتب شيئًا؛ فهي تكشف عن مصدرها، بل هي نفسها مصدر! يستطيع أي قارئ أو آخذ عن الكتاب أن يقرأ الفصول التي يريد قراءتها فقط. إذا كان الكتاب عن الإلكترونيات، يستطيع القارئ بكل تأكيد أن يختار ألا يقرأ الفصل الخاص بستالين. لا تملك الحكومة فعل الكثير لتغيير سلطة القارئ في هذا السياق.

تحرر الفكرة نفسها الكود المفتوح. تعتبر قواعد الحكومة قواعد فقط بقدر ما تفرض قيودًا يريدها متبنو هذه القيود. ربما تستطيع الحكومة توجيه وضع المعايير (مثل تعليمات «قُدْ على الجانب الأيمن»)، لكنها لا تستطيع بكل تأكيد فرض معايير تقيِّد سلوك المستخدمين بطرق لا يريدها المستخدمون. يعتبر هذا النظام الحاكم العام، إذن، أداة مساءلة قوية لسلطة الحكومة التنظيمية. يشير الكود المفتوح إلى السيطرة المفتوحة؛ حيث توجد سيطرة يدركها المستخدم.25

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

حتى الآن استخدمت فكرة «المستخدم» على نحو فضفاض. بينما يستطيع بعض «مستخدمي» متصفح فايرفوكس تغيير الكود الخاص به إذا لم تعجبهم طريقة عمله، لا يستطيع الغالبية العظمى من المستخدمين ذلك. بالنسبة لمعظمنا، يسهُل تغيير طريقة عمل برنامج مايكروسوفت وورد عن تغيير طريقة عمل نظام جي إن يو/لينُكس.

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

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

(٦) إلى أين يُفضي ذلك؟

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

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

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

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

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

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

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

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

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

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٤