الجمعة، 1 فبراير 2019

النظام البسيط للتحقق من الدفع (SPV)




هذا المقال مأخوذ من المقال الأصلي للديكريد عن النظام البسيط للتحقق من الدفع (SPV). يمكنك العثور على المشاركة الأصلية على هذا الرابط:  https://docs.decred.org/wallets/spv/#what-is-spv.

ما هو النظام البسيط للتحقق من الدفع SPV؟

SEGSTART:0003aca5-4bec-4246-99a2-ceddb4347e3d:11يسمح نظام التحقق البسيط للدفع (Simple Payment Verification SPV) باستخدام محفظة الديكريد دون الحاجة إلى تنزيل البلوكشين بالكامل.  SEGEND:0003aca5-4bec-4246-99a2-ceddb4347e3d:11 SEGSTART:0003aca5-4bec-4246-99a2-ceddb4347e3d:12تحتاج المحفظة التي تعمل في وضع SPV فقط إلى تحميل الكتل الكاملة التي تحتوي على معاملات ذات صلة بها (بمعنى المعاملات التي تتضمنها عناوين المحفظة). وهذا يقلل من احتياجات المحفظة من المعدات ويقلل إلى حد كبير من وقت التحميل الأولي للمحافظ الجديدة.SEGEND:0003aca5-4bec-4246-99a2-ceddb4347e3d:14

SEGSTART:6d0a0d43-1b72-474a-8519-48b11e699ec3:15تم إنشاء SPV مباشرة بواسطة أداة  dcrwallet CLI — ما تستخدمه Decrediton والمحافظ الرسمية الأخرى وراء الكواليس — حتى يتمكن جميع مستخدمي المحافظ الرسمية للديكريد من تمكين SPV.SEGEND:6d0a0d43-1b72-474a-8519-48b11e699ec3:15

لماذا تمت إضافة النظام البسيط للتحقق من الدفع SPV إلى محفظة dcrwallet؟

SEGSTART:51a51454-90e3-4d36-bf88-9908c576c213:19عند التشغيل في وضع النظام البسيط للتحقق من الدفع SPV  يتم تخفيض متطلبات الأجهزة لتشغيل محفظة الديكريد بشكل كبير لأنه بدلا من تحميل البلوكشين بالكامل ، ستقوم محفظة SPV بتحميل الكتل التي تحتوي على معاملات ذات الصلة بالمحفظة، أما بالنسبة لباقي الكتل الأخرى في السلسلة فيتم تحميل معلومات الإرسال فقط. يتم تقليل مقدار طاقة المعالجة المطلوبة نظرًا لأن جهازًا يعمل على محفظة SPV سيثبت صحة إثبات العمل ورأس السلسلة بدلاً من التحقق من صحة كل معاملة في كل كتلة وضمان توافق محتويات القوالب مع معلومات الإرسال.

SEGSTART:da954449-e1ed-4d93-a33f-7a2ff04ab4a2:22ونتيجة لهذه  الاحتياجات المخفضة، يمكن أن تعمل محافظ الديكريد على مجموعة أوسع من الأجهزة - لا سيما الأجهزة المحمولة. SEGEND:da954449-e1ed-4d93-a33f-7a2ff04ab4a2:22 SEGSTART:da954449-e1ed-4d93-a33f-7a2ff04ab4a2:23فعادة ما تكون الهواتف الذكية والأجهزة اللوحية محدودة بسعة واحدة على الأقل من طاقة وحدة المعالجة المركزية أو سعة التخزين أو التنزيل، وتحد أنظمة التشغيل المتنقلة من مقدار معالجة العمل في الخلفية التي يمكن لكل تطبيق تنفيذها، مما يجعل تشغيل عقدة كاملة أمراً غير عملي أو مستحيل.SEGEND:da954449-e1ed-4d93-a33f-7a2ff04ab4a2:23
SEGSTART:bc0d7953-4e69-476e-a4a9-d289e12853df:24ومن المزايا الأخرى التي تقدمها وظيفة النظام البسيط للتحقق من الدفع SPV تقليص كبير في الوقت اللازم لتشغيل محفظة جديدة تمامًا ، مما يوفر تحسينًا كبيرًا في تجربة المستخدم.

كيف يعمل النظام البسيط للتحقق من الدفع SPV؟


SEGSTART:1832af11-9c12-47ba-8c89-ad631bc99036:28في بداية كل كتلة أضيفت إلى كتلة بلوكشين الديكريد، توجد 180 بايت من البيانات تسمى رأس الكتلة. SEGEND:1832af11-9c12-47ba-8c89-ad631bc99036:28 SEGSTART:1832af11-9c12-47ba-8c89-ad631bc99036:29يصف رأس  الكتلة المعلومات الأساسية حول الكتلة بما في ذلك تجزئة الكتلة وجذر ميركيل (مجموع كل تجزئات المعاملة في الكتلة) ، والنصف غير المحسوب الذي تم حسابه بواسطة المعدنين. SEGEND:1832af11-9c12-47ba-8c89-ad631bc99036:29 SEGSTART:1832af11-9c12-47ba-8c89-ad631bc99036:30ويتم أيضًا إنشاء فلتر محدد مسبقًا لكل كتلة ، استنادًا إلى جميع المعاملات داخل الكتلة.SEGEND:1832af11-9c12-47ba-8c89-ad631bc99036:30
SEGSTART:32aebf38-0e56-4eee-b264-4c8d97d31bb1:32عند تشغيل محفظة SPV فإنها سوف تتصل بشبكة الديكريد باستخدام اتصالات نظير لنظير، وستقوم بتحميل المجموعة الكاملة من الترويسات والفلترات. SEGEND:32aebf38-0e56-4eee-b264-4c8d97d31bb1:32 SEGSTART:32aebf38-0e56-4eee-b264-4c8d97d31bb1:33ستتحقق المحفظة بعد ذلك من صحة رأس السلسلة للتأكد من صلاحية السلسلة وإثبات عملها. SEGEND:32aebf38-0e56-4eee-b264-4c8d97d31bb1:33 SEGSTART:32aebf38-0e56-4eee-b264-4c8d97d31bb1:34وبمجرد الانتهاء من ذلك، ستستخدم المحفظة الفلتر لتحديد أي كتل تحتوي على المعاملات المملوكة محليا دون تحميل أي بيانات خاصة إلى العقد البعيدة. SEGEND:32aebf38-0e56-4eee-b264-4c8d97d31bb1:34 SEGSTART:32aebf38-0e56-4eee-b264-4c8d97d31bb1:35بعد ذلك، يمكن للمحفظة استخدام شبكة نظير لنظير لتحميل هذه الكتل ، ومسحها للمعاملات ذات الصلة وتحديدها لتحديث سجل المعاملات الشخصية والتوازن.SEGEND:32aebf38-0e56-4eee-b264-4c8d97d31bb1:35

كيف يختلف هذا عن محفظة "خفيفة"؟

SEGSTART:58317298-d87c-4b79-85cf-60134a9bee97:39إن المحافظ "الخفيفة" مثل Exodus أو Atomic تحقق بالفعل بعض فوائد محفظة SPV - على سبيل المثال ، تسمح هذه الحافظات بإرسال واستقبال معاملات الديكريد بأقل وقت بدء  التشغيل و بدون تحميل كامل السلسلة. كما SEGEND:58317298-d87c-4b79-85cf-60134a9bee97:39 SEGSTART:58317298-d87c-4b79-85cf-60134a9bee97:40توفر المحافظ الخفيفة مستوى من الراحة ولكن غالباً ما تكون هناك عواقب خفية لأنها تعتمد على واجهة برمجة تطبيقات API المقدمة من قبل خدمة مركزية:SEGEND:58317298-d87c-4b79-85cf-60134a9bee97:40
  • تعتمد المحفظات الخفيفة على خدمة من بعد لمراقبة العناوين المملوكة وتقديم الإخطارات عند استلام العناوين للمعاملات.
  • SEGSTART:48458d2f-06a2-4eb2-b6fd-6604141bb337:45غالبًا ما يُطلب من المستخدمين تحميل مفتاح عام موسّع إلى الخادم المركزي حتى يكون على علم بكافة العناوين المملوكة، مما قد يعرض خصوصيات المستخدمين للخطر.SEGEND:48458d2f-06a2-4eb2-b6fd-6604141bb337:45
  • SEGSTART:7f2e9699-da5d-40c8-9474-46d315380ba1:46لا تقوم المحافظ الخفيفة بالتحقق من صحة المعلومات التي تتلقاها من خلال فحص البلوكشين مباشرة -- فلديهم ثقة عمياء بالمعلومات التي يوفرها الخادم المركزي. فهم لا يحمّلون أي بيانات خاصة إلى العقد البعيدة ويكتشفون معاملاتهم الخاصة من خلال فحص البلوكشين مباشرة.

هل هناك أي سلبيات لهذا النظام؟


  • SEGSTART:36062190-926c-4d56-97f9-de0a3efd00fd:53لا يدعم نظام SPV محافظ التصويت. فمحافظ التصويت لها مسؤولية التصويت على صحة الكتلة الأخيرة ، والمحفظة لا يمكن أن تكون على يقين من صحتها ما لم  تثبت الكتلة الكاملة وصولا إلى تلك الكتلة. ومع ذلك، فإنه من الممكن شراء التذاكر وتخصيص حقوق التصويت لمقدم خدمة التصويت.
  • SEGSTART:307aeaf1-9677-4226-82a1-2c333b60f279:57تقوم محافظ SPV فقط بتنزيل الكتل التي لها معاملات مرتبطة بالعناوين المملوكة لها، والتي  يمكن أن تكشف المزيد من المعلومات حول المحفظة أكثر مما لو أنها قامت بتنزيل كل كتلة.SEGEND:307aeaf1-9677-4226-82a1-2c333b60f279:57 SEGSTART:307aeaf1-9677-4226-82a1-2c333b60f279:58هذا لا  يمثل سوى انخفاض طفيف جدا في الخصوصية ، لكنه مع ذلك يبقى إنخفاضا. SEGEND:307aeaf1-9677-4226-82a1-2c333b60f279:58 SEGSTART:307aeaf1-9677-4226-82a1-2c333b60f279:59ويمكن التخفيف من ذلك بتحميل الكتل من نظراء متعددين بحيث لا يستطيع أي نظيرمن رؤية القائمة الكاملة من الكتل التي يتم تحميلها بواسطة المحفظة. SEGEND:307aeaf1-9677-4226-82a1-2c333b60f279:59 SEGSTART:307aeaf1-9677-4226-82a1-2c333b60f279:60وحتى إذا كان هنالك مراقب مجهول على الشبكة قادر على رؤية أي من الكتل يتم تنزيلها من قبل المحفظة ، فلن يتمكن من تحديد المعاملات ذات الصلة الموجودة في هذه الكتل . SEGEND:307aeaf1-9677-4226-82a1-2c333b60f279:60
  • SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:61المحافظ التي تعمل بنمط SPV قادرة فقط على التحقق من ترويسات الكتلة التي تقوم بتحميلها وليس الفلاتر.SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:61 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:62وهذا يجعل الهجوم "السلبي الزائف" محتملا،  حيث يمكن لنظير خبيث يعرف محفظة معينة في انتظار معاملة معينة أن يرسل إلى المحفظة فلترا مزيفا لا يتضمن المعاملة، مما يؤدي إلى عدم تحميل المحفظة للكتلة، وبالتالي لا يصبح على بينة من وجود المعاملات. SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:62 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:63ستظل هذه المعاملة مرئية لجميع العقد والمحافظ التي  تثبت صلاحيتها بالكامل، وستظل تظهر في مستكشف الكتلةSEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:63 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:64تتمثل إحدى الطرق لمنع هذه المشكلة في إضافة هاش الفلتر إلى جزء ترويسة الكتلة الذي تم التحقق منه بواسطة إثبات العمل، مما يسمح لمحافظ SPV بالتحقق بسهولة من صلاحية الفلاتر دون الحاجة إلى تنزيل كتلها. SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:64 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:65تم اقتراح مقترح لإجراء هذا التغيير بالفعل، غير أنه سيكون من الضروري إجراء تفرع لإجراء التغيير المطلوب في نموذج ترويسة الكتلة. SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:65 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:66سيناريو "إيجابي زائف" غير ممكن.SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:66 SEGSTART:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:67إذا كانت العقدة الخبيثة توفر مرشحا وهميا يتضمن معاملة غير موجودة، فستقوم المحفظة ببساطة بتنزيل الكتلة الكاملة ، ومقارنتها بالفلتر واكتشاف أن المرشح ليس حقيقيا.SEGEND:bf8d574a-935b-4d30-bb58-9a4d3e9c1ed3:67

كيف يمكنني استخدام spv؟

dcrwallet CLI

SEGSTART:020e0c66-7f70-482c-9fb5-db35d0a3fe28:76لتمكين وضع SPV في dcrwallet قم ببساطة بتقديم علامة --spv عند بدء العملية. SEGEND:020e0c66-7f70-482c-9fb5-db35d0a3fe28:76 SEGSTART:020e0c66-7f70-482c-9fb5-db35d0a3fe28:77هناك أيضًا علامة spvconnect اختيارية تعطل ربط نظام أسماء النطاقات وتسمح لك بتحديد عنوان IP لعقدة كاملة ترغب في مزامنتها.SEGEND:020e0c66-7f70-482c-9fb5-db35d0a3fe28:77 SEGSTART:020e0c66-7f70-482c-9fb5-db35d0a3fe28:78- يمكن تحديد spvconnect عدة مرات للمزامنة من نظائر متعددة.SEGEND:020e0c66-7f70-482c-9fb5-db35d0a3fe28:78

Decrediton

SEGSTART:476f453a-a394-47ce-ac88-5f802b8ca2fb:83إذا رغبت بإستخدام Decrediton لأول مرة، فيتوجب عليك تعديل ملف config.json من أجل تمكين SPVحدد مكان الملف في  Decrediton data directory، وحدث إعدادات spv_mode إلى true.
إذا تمت مزامنة Decrediton بالفعل مع الشبكة ، فمن الممكن تغيير وضع SPV من خلال واجهة المستخدم الرسومية. افتح محفظة ، وحدد خيار "SPV" في علامة تبويب الإعداد. هناك أيضًا إعداد "SPV Connect" في علامة التبويب هذه ، مما يسمح لك بتحديد عنوان IP لعقدة كاملة ترغب في مزامنتها. SEGEND:bc0d7953-4e69-476e-a4a9-d289e12853df:24


ليست هناك تعليقات:

إرسال تعليق

النظام البسيط للتحقق من الدفع (SPV)

هذا المقال مأخوذ من المقال الأصلي للديكريد عن النظام البسيط للتحقق من الدفع (SPV). يمكنك العثور على المشاركة الأصلية على هذا الرابط: ...