القاعدة المشتركة التي يستند إليها الهيكل الكامل وتقنية السحب على بيكو.

geometry
الجزء العام والقابل للتحقق من ™Drawchain قيد التطوير حاليًا وسيكون متاحًا قريبًا. هو يجري بالفعل منذ إطلاق بيكو، لذا سييصبح من الممكن التحقق منه بأثر رجعي. تابعونا على مواقع التواصل الاجتماعي ليتم إعلامكم بوصوله!

نظرة عامة على ™Drawchain

Drawchain™
Seed Pool
Seed 45cdz4W0Cc28sZaQ
Seed yVQ42tfQ8McEjIIA
Seed RWwjzQw4ShULofUd
Seed Pool
Seed nnWqTElLhG6OvPPF
Seed 06nrizrLXKHhbEAg
Seed FLvwQhNjahe6WGrO

للبدء، إليك رسم تخطيطي لـ™Drawchain لإعطائك صورة ذهنية وفهم أفضل للباقية المعلومات، والتي ستكون تقنية أكثر.

Drawchain™

— مجموعة برك السيد.

تتحكم ™Drawchain في جميع السحوبات على بيكو من خلال الروابط بين برك السيد.

Seed Pool

— مجموعة سيد.

كل يوم يتوافق مع برك سيد آتية من السيد التي تم إنشاؤها واستخدامها بالسحوبات التي تم إجراؤها في نفس اليوم.

Seed

— سلسلة من الرموز.

كل سيد فريدة ويمكن ربطها بسحب لإنتاج وإعادة إنتاج العملية والنتيجة.

التعاريف الفنية

قبل الوصول إلى صلب الموضوع، إليك قائمة بالتعاريف الفنية للتعرف على المصطلحات التي ستصادفها عدة مرات في هذه الصفحة:

  • master_seed: سلسلة فريدة وعشوائية من 32 رمزًا في base62.
  • seed_pool: قائمة محدودة من الhash التي تم إنشاؤها على التوالي.
  • hash, global_hash, ending_hash: سلسلة فريدة وعشوائية من 64 رمزًا سداسيًا عشريًا.
  • seed: سلسلة فريدة وعشوائية من 16 رمزًا في base62.
  • sha256: وظيفة التجزئة الموحدة والآمنة للغاية.
  • base62: ترميز المعلومات في 62 رمزًا.

لندخل في التفاصيل...

حان الوقت للبدء! كما هو موضح أعلاه، فإن ™Drawchain هو اسم يُطلق على قائمة برك السيد. لذلك سنرى الآن ما تحتويه وكيف يتم تغذيتها من قبل برك السيد!

إنشاء برك السيد

مصدر seed_pool يأتي من master_seed الذي تم إنشاؤه بواسطة Random.org بناءً على طلبنا كل مساء قبل وقت قصير من منتصف الليل في التوقيت العالمي لليوم التالي.

وبالتالي، تحتوي seed_pool على قائمة بجميع السحوبات لمدة 24 ساعة.

يتم بعد ذلك استخدام master_seed لإنشاء قائمة hash كبيرة بما يكفي لخدمة جميع السحوبات على طوال عمر الseed_pool.

فيما يلي خطوات إنشاء قائمة hash:

  • 1. تجزئة master_seed مع sha256 لإنشاء hash #1
  • 2. تجزئة hash #2 باستخدام sha256 لإنشاء hash #2
  • 3. كرر الخطوة (2.) حتى يكون لديك قائمة hash كبيرة بما يكفي

وبالتالي ، يتم إنشاء جميع الhash التي تعتمد على الmaster_seed.

ending_hash هو آخر hash تم إنشاؤه، ولا يتم استخدامه ويضمن فقط أن الseed_pool له بداية (master_seed) ونهاية (ending_hash) لإثبات أنه لم يتم تغييره خلال دورة حياته.

Seed Pool
199bd291b6a487bdcc2c2ee694fe33795ce68a7f98980f5b122850311c8b0c58
dff3c4d48755ba4b5d502abeeaf634f641d648912ea0f2112a19994446ed2234
054ef27ac47492d889f3ee68bbe31c5a748b1445d0c8d0c39f3434c9ab1563e9
3172b0dbd9355666b0dd60ca841066adde4d8bdae0123998ea0f936d2ae1ea2a
0bebacec2587be7b59279dd0785ddf7d503879e84dc52129d08e73c3d78f2803
...
f866064fc6962b11c85221f3be57bc68d1d017151dc4a9d1b3aee5e06f83660b
970ee7b2a0c4697c2344b8217c0f63c310ac52d6b9bea9b265b5c2d27d007635
TSSJNvGrhPgWYx833cU8DRYCr6Ge6Q8s
master_seed ending_hash hash
يتم حجب الmaster_seed و الhash التي لم يتم استخدامها بعد طوعًا حتى يتم إخراج الseed_pool من الخدمة لتجنب أي توقع للـhash أو الseed وبالتالي تعديل محتمل في السحب.

بمجرد إنشاء الhash، يصبح الseed_pool جاهز للاستخدام أخيرًا. يتم تعطيل بركة السيد السابق وتولي بركة السيد الجديدة المهمة؛ يصبح الmaster_seed السابق عام الآن ويمكن التحقق منه (انظر أدناه).

توليد واستخدام السيد

عندما يتم طلب السحب على بيكو، تتم إزالة hash من أعلى الseed_pool الموجودة وتولد seed فريدة سيتم تخصيصها واستخدامها في السحب.

يتم استخدام الhash إبتداءًا من نهاية الseed_pool للتأكد من أنه لا يمكن التنبؤ بالسيد التالي لتغيير السحوبات (كتذكير، فإن الhash التي لم يتم استخدامها ليست مرئية للجمهور بعد).

فيما يلي خطوات إنشاء الseed:

  • 1. يتم تحويل الhash إلى 10 أجزاء ثم يتم تقسيمه على القيمة الحدية لـ seed (62 16) للاحتفاظ ببقية القسم فقط (تسمى هذه العملية أيضًا modulo)
  • 2. يتم تحويل القيمة التي تم الحصول عليها إلى base62، مسبوقة بأكبر عدد من الأصفار حسب الضرورة لإنتاج سلسلة من 16 رمزًا: وبالتالي نحصل على الseed
كما ذكر أعلاه، السيد عبارة عن سلسلة من 16 رمزًا في base62. مما يعني أنه يمكن تحويله إلى عدد كبير، والعكس صحيح. يمكن أن تكون قيمته العشرية (على أساس 10) بين 0 (مضمن) و 6216 (مستبعد)، أي 4767240170682823533450263330816.

يتم حفظ الseed الذي تم إنشاؤه ويمكن استخدامه بعد ذلك لإقامة السحب... وإلى آخره حتى يتم إخراج الseed_pool من الخدمة.

Seed Pool
199bd291b6a487bdcc2c2ee694fe33795ce68a7f98980f5b122850311c8b0c58
dff3c4d48755ba4b5d502abeeaf634f641d648912ea0f2112a19994446ed2234lidjXjrPQvOVTNcM
054ef27ac47492d889f3ee68bbe31c5a748b1445d0c8d0c39f3434c9ab1563e9veBU6I7Kr7ATAk6l
3172b0dbd9355666b0dd60ca841066adde4d8bdae0123998ea0f936d2ae1ea2aEH5WZd5kvxgPp2Fc
0bebacec2587be7b59279dd0785ddf7d503879e84dc52129d08e73c3d78f2803SJvamW7ILjC7hQEr
...
f866064fc6962b11c85221f3be57bc68d1d017151dc4a9d1b3aee5e06f83660bunused
970ee7b2a0c4697c2344b8217c0f63c310ac52d6b9bea9b265b5c2d27d007635unused
TSSJNvGrhPgWYx833cU8DRYCr6Ge6Q8s
master_seed ending_hash hash seed

يمكننا أن نرى في هذا المثل أنه تم توليد 4 بذور (من آخر الhash من الseed_pool) حتى تم إخراجها من الخدمة. الhash الأخرى التي لم يتم استخدامها لم ينتج عنها إنشاء seed.

التحقق من السحوبات

الآن بعد أن تعرفت على كيفية إنشاء seed_pool و seed، نأتي إلى الجزء المثير للإهتمام والتفاعلي: كيف نثبت أن الفائزين يأتون بالصدفة. صدفة يمكنك التحقق منها بنفسك!

يمكن إجراء التحقق في أي مستوى من ™Drawchain وبطرق عديدة ومختلفة نسردها أدناه.

من الmaster_seed

بالبدء، يمكنك التحقق من أن الmaster_seed الذي نستخدمه لإنشاء hash الseed_pool هو من Random.org باستخدام الرابط المرفق بـالmaster_seed} مباشرة من ™Drawchain أو من برك السيد المعنية.

للتذكير، هذه الطريقة للتدقيق مع Random.org ممكنة فقط بعد إغلاق الseed_pool التي تنتمي إليها الmaster_seed.

من الseed_pool

يمكنك أيضًا التحقق في أي وقت من أن قائمة الhash التي تم إنشاؤها لم يتم تغييرها وتتبع المنطق الموضح أعلاه. للتأكد من ذلك ، قمنا بإنشاء JSFiddle متاح أدناه لتتمكن من إعادة إنتاج دفعتنا:

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

  • 1. أدخل master_seed (أو hash من seed_pool) في حقل "بدء التجزئة"
  • 2. أدخل ending_hash (أو hash لاحقة) ضمن نفس الseed_pool في حقل "نهاية التجزئة *"
  • 3. انقر على الزر"إحصاء!"

من الseed

أخيرًا، يمكن التحقق من مواقع الأشخاص الذين تم سحبهم في أي وقت من الseed بمجرد اكتمال السحب. لضمان ذلك، أنشأنا JSFiddle متاحًا أدناه لتتمكن من إعادة إنتاج دفعة المواقع:

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

  • 1. أدخل seed السحب في حقل "سيد السحب"
  • 2. أدخل عدد إدخالات المسابقة في حقل "عدد الإدخالات"
  • 3. أدخل عدد الفائزين الذين سيتم سحبهم في حقل "عدد الفائزين"
  • 4. انقر على الزر"إحصاء!"
لنبقي الموضوع بسيطًا، كان بإمكاننا نشر الكود المصدري للتّطبيق لإثبات أن السحوبات تتم بشكل مثالي. للأسف هذا غير ممكن لأن الكود خاصتنا ولا نرغب في توفيره لأطراف ثالثة، وبالتالي وجود هذه الصفحة! ومن ثم لم يكن هناك ما يضمن أن نستخدم هذه النسخة المفتوحة المصدر جيدًا. مرة أخرى عليك أن تصدّق ما ندعيه حتى لا نشارك كل خبرتنا. بالإضافة، وأيضًا لتبسيط الموضوع، كان بإمكاننا أخذ رقم عشوائي بين 1 وعدد الإدخالات، ولكن هذا ليس بيكو 😉

هذا هو ™Drawchain وآليته التي استغرقت وحدها عدّة أشهر من العمل، لم يعد سرّا لك! نأمل أن تكون هذه التفسيرات واضحة ولم تربكك.