# المحافظ الباردة ❄️ والساخنة 🔥 في البيتكوين ₿
طجلأ - طويلة جدا لن أقرأها
المحفظة هي تطبيق يعمل كواجهة مستخدم للوصول إلى أموال المستخدم، إدارة المفاتيح والعناوين، تتبع الرصيد وإنشاء المعاملات وتوقيعها.
المحفظة بكل بساطة هي أداة لتساعدك للوصول الى بيتكويناتك وساتوشياتك. وظيفتها الأساسية تخزين وإدارة مفاتيح المستخدم، ثم استعمال هذة المفاتيح لإنشاء عناوين لاستلام بيتكوين، توقيع تحويلات لإرسال بيتكوين وتتبع الرصيد.
من المهم أن نعي:
- أن المحفظة لا تحتوي على عُملات بيتكوين إنما تحتوي وتحفظ مفاتيح لعنواين بيتكوين. عُملات البيتكوين تُحفظ على سجل الكتل (البلوكتشاين) المُتاح للجميع.
- انت تملك فقط المفاتيح الخاصة لعناوينك، عن طريقها تستطيع التوقيع على معاملة لنقل عملات البيتكوين من عنوانك لعناوين بيتكوين اخر.
- المحفظة تتيح لك إنشاء مُعاملة وتوقيعها باستخدام المفاتيح الخاصة بك، والمعاملات المُوقعة هي التي ترسل فقط لشبكة البيتكوين. المفتاح الخاص لا يرسل الى شبكة البيتكوين بتاتا.
- المحفظة تعمل وتنتج المفاتيح والعناوين لوحدها دون الحاجة لشبكة البيتكوين.
- عند إنشاء المحفظة تنشأ لأول مرة عناوين بيتكوين في محفظتك لا أحد شاهدها من قبل. هذة العناوين متوافقة مع قوانين شبكة البيتكوين وتكون جاهزة لاستقبال عملات بيتكوين.
- فقط بعد ان تستقبل بيتكوين على واحد من هذة العناوين يتم تسجيل هذا العنوان في سجل الكتل ويصبح متاح ومعروف للجميع بشبكة البيتكوين، يسمى العنوان المتوفر به بيتكوين ب UTXO.
- المحفظة تتبع الرصيد عبر الاتصال بعقدة بيتكوين كاملة المُحتفظة بالسجل الكامل او عقدة بيتكوين خفيفة (SPV). حيث ترسل للعقدة طلب لمعرفة اذا تم ايداع مبلغ بالعناوين التي تمتلك مفاتيحها.
لكي نفهم عمل المحفظة ونفرق بين أنواعها علينا التعرف على عدة مصطلحات اولا مثل الكلمات المفتاحية، المفاتيح الخاصة والمفاتيح العامة وعنوانين البيتكوبن
# ما هي الكلمات المفتاحية
الكلمات المفتاحية (Mnemonic Seed) او (Mnemonic) او كلمات البذور (seed words)، وتسمى ايضا "الكلمات الاسترجاعية Recovery phrase" لكل مفاتيح وعناوين محفظتك. الكلمات موجودة في قائمة كلمات BIP39 (opens new window) معروفة.
من خلال هذة الكلمات يتم إنشاء المفاتيح الخاصة والمفاتيح العامة وعنوانين البيتكوين بكل بساطة هذة الكلمات هي نقودك بالبيتكوين لذلك من يحصل على هذة الكلمات فبأمكانه الحصول على أموالك.
أهم ما يميز هذة الكلمات هي:
- تمكنك من استرجاع محفظتك على محفظة اخرى - نفس الكلمات تسترجع نفس المحفظة بنفس العنواين
- ان أول 4 احرف فريدة لكل كلمة، أي انك لن تجد كلمتان تتشابهان بأول 4 أحرف.
- الكلمة الاخيرة تكون كلمة فحص فقط checksum ( الكلمة 12 او الكلمة 24 ) الهدف منها فحص اذا كان المستخدم قد اخطأ في ادخال الكلمات السابقة لتنبيه في المحفظة
# الكلمات المفتاحية عبارة عن رقم عشوائي كبير
الكلمات المفتاحية هي عبارة عن رقم كبير جداً وطويل يتم اختيارة بشكل عشوائي من عدد احتمالات هائل (ما بين 128^2 الى 256^2). لانه من الصعب حفظ هذا الرقم الكبير تم اقتراح تحسين على البيتكوين (يسمى Bip39) حيث يسمح بتحويل هذ الرقم الى كلمات من 12 ل- 24 كلمة باللغة الانجليزية. يتم انتاجهم في أول مرة نقوم بتحميل وإنشاء المحفظة. هذة الكلمات علينا كتابتهم بالترتيب نفسة التي تظهر لنا على الشاشة (ترتيب الكلمات مهم جدا).
ما معنى ان تختار رقم عشوائي من بين 256^2 احتمالات ؟ إضغط هنا
256^2 هو عدد هائل يوازي ل 1 وعلى يمينه 77 صفر 77^10
تخيلوا معي ان ترسل شخص الى شاطئ وتطلب منه إحضار حبة واحدة من رمال الشاطئ ثم تطلب ان يعيدها وترسل شخص اخر اليوم التالي ليأتي لك بحبة اخرى من رمال الشاطئ بشكل عشوائي. ما هو الاحتمال ان يأتي الشخص الثاني بنفس حبة الرمل التي اتى بها الاول؟ ستقولون لي الاحتمال صفر
لكن هذا المثال لا يقترب بتاتا من كبر هذا الرقم اذ ان الرقم يشبه اختيار ذرة واحدة من ذرات الكرة الارضية وجميع ذرات كل الكواكب التي عرفتها الانسان مجتمعة. الان يمكنكم ان تقولوا لي بكل ثقة ان الاحتمال صفر
لذلك من المستحيل ان يتم اختيار نفس الكلمات المفتاحية بنفس الترتيب من قبل شخصين مختلفين.
للمزيد: هذا رابط لحساب 256^2 (opens new window)
هذا رابط لتقدير عدد الذرات في الكون الذي عرفه الانسان (opens new window)
# مثال لكلمات مفتاحية:
الحذر
أياكم ان تستعملوا هذة الكلمات لتنقلوا عليها بيتكوين فهذة المحفظة ستكون متاحة لجميع زوار الموقع كمثال عملي. اللهم اني بلغت اللهم فاشهد
تذكروا ان ترتيب الكلمات المفتاحية مهم جدا
# ترتيب الكلمات مهم، لذلك لا تكتبوهم هكذا
cat clerk salmon supreme quote person mom ensure dutch explain athlete senior primary know few infant chaos around news enable chaos delay fringe catch
# بل أكتبوهم مع رقم تسلسلهم، لتعرفوا ترتيبهم
1.cat 7.mom 13.primary 19.news
2.clerk 8.ensure 14.know 20.enable
3.salmon 9.dutch 15.few 21.chaos
4.supreme 10.explain 16.infant 22.delay
5.quote 11.athlete 17.chaos 23.fringe
6.person 12.senior 18.around 24.catch
# هذة الكلمات عبارة عن رقم مكون من 0 و 1 بطول 256 خانة
cat clerk salmon supreme quote person mom ensure dutch explain athlete senior primary know few infant chaos around news enable chaos delay fringe catch
# هذا هو الرقم العشوائي بالنظام العد الثنائي مكون من 256 خانة
0010001111000101010011101111100111101100111110110000000101000110101000111011001001011010010001000110101000010000001110001110000111011010101010101111011111010101011000111001101000100110010000011000011001010100101001001010001001100100011100111101011101000001
ولكن كيف يحدث هذا؟
من رقم عشوائي كبير الى كلمات مفتاحية؟ إضغط هنا لمعرفة ما تقوم به المحفظة
المحفظة تقوم بتخمين رقم بشكل عشوائي مكون من 128 بيت او 256 بيت (عمليا يمكنك إنشاء هذا الرقم يدويا عبر قلب عملة نقدية معدنية 128 مرة لانشاء 12 كلمة مفتاحية او 256 مرة لانشاء 24 كلمة. كما ويمكن قلب حجر نرد. بعض المحافظ تتيح لك انشاء العملية يدويا عبر ادخال نتائج قلب القطعة المعدنية)
اذا قلبنا عملة وحصلنا على شعار نسجل 0 واذا حصلنا على رقم نسجل 1 هكذا نعيد العملية 256 مرة.
# لنفرض اننا حصلنا على هذا الرقم بعد اعادة العملية 256 مرة
0010001111000101010011101111100111101100111110110000000101000110101000111011001001011010010001000110101000010000001110001110000111011010101010101111011111010101011000111001101000100110010000011000011001010100101001001010001001100100011100111101011101000001
الكلمة الاخيرة تسمى "كلمة الفحص - checksum". ( الكلمة رقم 12 او الكلمة رقم 24 ). الخطوات التالية التي سنقوم بعملها هي ما تقوم به المحفظة من وراء الكواليس لكي تعطيك الكلمة الأخيرة:
الخطوة الاولى:
- نقوم بتحويل الرقم العشوائي اعلاه، من النظام الثنائي الى النظام الستة عشر
# وهذا هو نفس الرقم بالنظام الستة عشري
23c54ef9ecfb0146a3b25a446a1038e1daaaf7d5639a26418654a4a26473d741
- نقوم بإدخال النتيجة الى دالة التجزئة SHA256
# وهذا هو نفس الرقم بالنظام الستة عشري
2038699cf0c7f9a412409b6452b07c302f5ee82edb99cdf5b8d060e287538328
- ثم نعيد نتيجة الهاش الى النظام الثنائي 0 و 1
0010000000111000011010011001110011110000110001111111100110100100000100100100000010011011011001000101001010110000011111000011000000101111010111101110100000101110110110111001100111001101111101011011100011010000011000001110001010000111010100111000001100101000
الخطوة الثانية:
- نقوم بأخذ عدد الخانات بالرقم العشوائي (256 في حالتنا) تقسيم 32 فنحصل على العدد 256/32=8 اذا 8 سيكون عدد الخانات التي يجب أن نأخذها من أول نتيجة دالة الهاش بالخطوة الاولى(من اليسار) لإضفتها الى نهاية الرقم العشوائي(على اليمين).
- ملاحظة لو قمنا بانشاء رقم من 128 خانة فعلينا ان نأخذ 128/32=4 أربع خانات فقط من الهاش ونضيفها الى الرقم العشوائي
# هذة نتيجة دالة الهاش sha256 للرقم العشوائي (دالة التجزئة)
0010000000111000011010011001110011110000110001111111100110100100000100100100000010011011011001000101001010110000011111000011000000101111010111101110100000101110110110111001100111001101111101011011100011010000011000001110001010000111010100111000001100101000
# هذة اول 8 خانات من الرقم اعلاه
00100000
- نأخذ أول 8 بيت من نتيجة دالة التجزئة بالنظام الثنائي (من اليسار) واضافتهم الى اخر الرقم العشوائي من اليمين فنحصل على رقم مكون من 264 خانة.
# هذا هو الرقم العشوائي (256 خانة)
0010001111000101010011101111100111101100111110110000000101000110101000111011001001011010010001000110101000010000001110001110000111011010101010101111011111010101011000111001101000100110010000011000011001010100101001001010001001100100011100111101011101000001
# نضيف على اخره الرقم اعلاه هذة الـ 8 خانات
00100000
فنحصل على رقم مكون من 264 خانة:
# الرقم العشوائي مع الخانات الاضافية (256 خانة + 8 خانات = 264 خانة)
001000111100010101001110111110011110110011111011000000010100011010100011101100100101101001000100011010100001000000111000111000011101101010101010111101111101010101100011100110100010011001000001100001100101010010100100101000100110010001110011110101110100000100100000
الخطوة الثالثة:
- نقوم بتقسيمة الرقم المكون من 264 الى مجموعات من 11 خانة فنحصل بالضبط على 24 مجموعة.
[00100011110] [00101010011] [10111110011] [11011001111] [10110000000] [10100011010] [10001110110] [01001011010] [01000100011] [01010000100] [00001110001] [11000011101] [10101010101] [01111011111] [01010101100] [01110011010] [00100110010] [00001100001] [10010101001] [01001001010] [00100110010] [00111001111] [01011101000] [001(00100000)] <== هذا هو الرقم مع اضافة الـ 8 خانات
- كل مجموعة مكونة من 11 خانة، نحول كل مجموعة من رقم بالنظام الثنائي Binary الى رقم بالنظام العشري Decimal.
[00100011110] [00101010011] [10111110011] [11011001111] [10110000000] [10100011010] [10001110110] [01001011010] [01000100011] [01010000100] [00001110001] [11000011101] [10101010101] [01111011111] [01010101100] [01110011010] [00100110010] [00001100001] [10010101001] [01001001010] [00100110010] [00111001111] [01011101000] [00100100000]
# من رقم بالنظام الثنائي الى رقم بالنظام العشري
286, 339, 1523, 1743, 1408, 1306, 1142, 602, 547, 644, 113, 1565, 1365, 991, 684, 922, 306, 97, 1193, 586, 306, 463, 744, 288
الخطوة الرابعة:
نقوم بالبحث عن الارقام العشرية التي حصلنا عليها (مع إضافة +1) في قائمة الكلمات BIP39 (opens new window) فنحصل على كلماتنا المفتاحية الخاصة بمحفظتنا
ملاحظة: اضفنا 1 لان الحواسيب تقوم بالعد من الرقم 0 والقائمة تبدأ من الرقم 1
الرقم بالنظام الثنائي | الرقم بالنظام العشري | التسلسل بالقائمة | الكلمة من قائمة الكلمات BIP39 (opens new window) | |
---|---|---|---|---|
1 | 00100011110 | 286 | 287 | cat |
2 | 00101010011 | 339 | 340 | clerk |
3 | 10111110011 | 1523 | 1524 | salmon |
4 | 11011001111 | 1743 | 1744 | supreme |
5 | 10110000000 | 1408 | 1409 | quote |
6 | 10100011010 | 1306 | 1307 | person |
7 | 10001110110 | 1142 | 1143 | mom |
8 | 01001011010 | 602 | 603 | ensure |
9 | 01000100011 | 547 | 548 | dutch |
10 | 01010000100 | 644 | 645 | explain |
11 | 00001110001 | 113 | 114 | athlete |
12 | 11000011101 | 1565 | 1566 | senior |
13 | 10101010101 | 1365 | 1366 | primary |
14 | 01111011111 | 991 | 992 | know |
15 | 01010101100 | 684 | 685 | few |
16 | 01110011010 | 922 | 923 | infant |
17 | 00100110010 | 306 | 307 | chaos |
18 | 00001100001 | 97 | 98 | around |
19 | 10010101001 | 1193 | 1194 | news |
20 | 01001001010 | 586 | 587 | enable |
21 | 00100110010 | 306 | 307 | chaos |
22 | 00111001111 | 463 | 464 | delay |
23 | 01011101000 | 744 | 745 | fringe |
24 | 00100100000 | 288 | 289 | catch |
هكذا تنتج المحفظة كلماتنا المفتاحية الخاصة من رقم عشوائي كبير.
1.cat 7.mom 13.primary 19.news
2.clerk 8.ensure 14.know 20.enable
3.salmon 9.dutch 15.few 21.chaos
4.supreme 10.explain 16.infant 22.delay
5.quote 11.athlete 17.chaos 23.fringe
6.person 12.senior 18.around 24.catch
# كيف يجب أن نتعامل مع الكلمات المفتاحية؟
- ❌ لا تقم باخذ صورة لهذة الكلمات بهاتفك.
- ❌ لا تقم بعمل printscreen.
- ❌ -لا تقم بقراءة هذة الكلمات بصوتٍ عالٍ.
- ❌ لا تقم بتخزينهم على اي خدمة سحابية ك Dropbox او Google Drive أو iCloud
- ❌ لا تقم بوضع هذة الكلمات على أي جهاز متصل او يمكن ان يتصل بالانترنت
- ❌ لا تقم باعطاء هذة الكلمات لاي شخص حتى لو كان يريد مساعدتك.
- ✅ قم بكاتبتها بقلم رصاص على ورقة، وقم بحفظها بمكان آمن عندك بالبيت كالخزنة. تُعد هذة من أشد الطرق أمنا لحماية اموالك رغم بساطتها.
# كيف يمكن حفظ الكلمات المفتاحية بطرق أكثر امانا
لان هذة الكلمات هي نقودك هنالك طرق عديدة وأدوات مساعدة لحفظها مثلا عن طريق نقشها على قطعة معدنية في حال لا سمح الله تعرضت لحريق او تسريب مياة لا تتأثر.
هناك طرق أخرى في حال كنت تعتقد أنك قد تتعرض لسرقة هذة الكلمات.
سأعمل مستقبلا على عرض طرق في مقالة منفصلة. مثل (استعمال محافظ متعددة التواقيع، اضافة تعبيرية على الكلمات المفتاحية Passphrase، تخزين الكلمات عن طريق bip85 وغيرها من الطرق.
# ليست بيتكويناتك ان لم تكن كلماتك
اما إن كنت لا تمتلك كلمات مفتاحية فعلى الأرجح أنك أشتريت بيتكوين من على منصة تداول وتركت اموالك هناك. فانت لا تتعامل مع محفظة انت تتعامل مع حساب في منصة. يمكن تشبيه العملية بانك ذهبت الى محل صرافة وحولت الدولارات التي بحوزتك الى نقود محلية وقمت بتركها لدى الصراف، لحفظها لك.
لهذا تذكروا هذة الجملة :"ليست ساتوشياتك ان لم تكن كلماتك".
راجعوا المقالة حول : "هل هنالك خطورة بترك أموالك على المنصات؟" إضغط هنا
# ما هي المفاتيح الخاصة والعامة
- المفتاح الخاص هو رقم سري خاص بعنوان بيتكوين معين، لكل عنوان بيتكوين يوجد مفتاح خاص واحد(أو أكثر، في محافظ متعددة التواقيع مثلا).
- المفتاح الخاص يسمح لك بتوقيع "عملية تحويل" لنقل البيتكوين لعنوان اخر.
- المحفظة تحتفظ بسلسلة من المفاتيح الخاصة تسمى Extended Private Key (Xprv) أو Master private keys. هي سلسة من ارقام عشوائية سرية لك والتي تنبثق كلها من الكلمات المفتاحية( 12 او 24 كلمة) -
- من المفتاح الخاص ينتج المفتاح العام، اما العكس فمستحيل، لا يمكن انتاج المفتاح الخاص من المفتاح العام.
- من المفتاح العام ينتج عنوان البيتكوين
# ما هو عنوان بيتكوين وما هو ال UTXO
العنوان هو بمثابة فاتورة للدفع. نستعمله لمرة واحدة فقط (مثلا: عنوان مختلف لكل زبون، عنوان مختلف لكل عملية سحب من المنصة، عنوان لكل عملية وهكذا)
العنوان هو رقم عشوائي كبير متوافق مع صيغة العناوين المتفق عليها في قوانين شبكة البيتكوين، تقوم بانشائها المحفظة من الكلمات المفتاحية (12 او 24 كلمة) لكل عنوان هنالك مفتاح خاص ومفتاح عام.
المحفظة تنشأ لأول مرة عناوين بيتكوين في محفظتك لا أحد شاهدها من قبل وتكون جاهزة لنعطيها للاخرين لكي نستقبل بيتكوين عليها. يجب اعطاء عنوان لكل شخص، لكل معاملة، لكل تحويلة. كما نتعامل مع الفواتير بالضبط
الUTXO هو بمثابة فاتورة مدفوعة. هو عنوان تم دفعه (تم استقبال مبلغ من البيتكوين عليه).
اما ال utxo فهو عنوان بيتكوين يحتوي على كمية من البيتكوين في سجل الكتل، بعد ان تستقبل مبلغ معين من البيتكوين على عنوان ما، فقط عندها يتم تسجيل هذا العنوان في سجل الكتل ويصبح متاحا للجميع بشبكة البيتكوين. نسمي هذا العنوان ب utxo اي معاملة غير منفقة UTXO - Unspent Transaction Output.
الرصيد هو بمثابة مجموع الفواتير المدفوعة. اي مجموع كل العناوين التي تم استقبال مبالغ عليها
الرصيد الذي يظهر في محفظتك هو مجموع كل ال UTXOs من كل المعاملات السابقة الغير منفقة.
تلخيص حتى الان
📝 كلمات مفتاحية ==> 🔑 مفتاح خاص لعنوان ==> 🔑 مفتاح عام لعنوان ==> 📃 عنوان بيتكوين (فاتورة) ==> اذا تم دفعها ==> 📗 UTXO رصيد غير منفق (فاتورة مدفوعة)
# فهم عملية استقبال وإنفاق ال UTXO في البيتكوين
تخيلوا معي أن ال UTXO هي قطع نقدية او أوراق نقدية فيزيائية. لنفرض انك صاحب متجر وتريد أن تستقبل مبلغ معين من زبون معين ( لنفرض 0.01 BTC = مليون ساتوشي ) فان محفظتك ستعرض له واحد من عناوين البيتكوين العديدة المتوفرة في محفظتك. عندما يصلك المبلغ على هذا العنوان سيسجل عليه (لنتخيل العنوان هو عملة نقدية ويصك عليها) الرقم 0.01 BTC ويظهر في سجل الكتل للجميع ان هذا العنوان يحتوي 0.01 BTC.
في حال قرر نفس الشخص او شخص اخر ان يرسل لك مبلغ اخر( لنفرض هذة المرة 0.05 بيتكوين = 5 مليون ساتوشي) فإن المحفظة ستقوم بعرض عنوان بيتكوين جديد اخر مختلف تماما عن الأول، عندما يصلك المبلغ عليه سيصبح العنوان الجديد utxo ويسجل (او يصك) عليه القيمة 0.05 BTC. والمحفظة ستقوم بعرض مجموع ال UTXOs كرصيدك (في مثالنا مجموع القطع النقدية) بقيمة 0.06 BTC أو 6 مليون ساتوشي. وهكذا.
عندما تقرر ان تدفع لشخص معين كمثال 0.02 BTC أو 2 مليون ساتوشي سيقوم هذا الشخص باعطائك عنوان بيتكوين له، هنالك امكانيتين متاحتان لمحفظتك:
ان تدفع باستخدام ال UTXO بقيمة 0.05
- في هذة الحالة ستقوم محفظتك بتوقيع عملية تحويل لنقل بيتكوين من عنوانك لعنوان الشخص الذي تريد الدفع له بقيمة 0.02 وسترسل المبلغ المتبقي 0.03 الى عنوان بيتكوين جديد في محفظتك.
- تخيل أن ما حدث هو كالتالي: تم إذابة القطعة النقدية التي كانت بقيمة 0.05 وصنع قطعتين جديدتين واحدة بقيمة 0.02 تعطيها للشخص والثانية بقيمة 0.03 تأخذها أنت.
- في هذة الحالة ستقوم محفظتك بتوقيع عملية تحويل لنقل بيتكوين من عنوانك لعنوان الشخص الذي تريد الدفع له بقيمة 0.02 وسترسل المبلغ المتبقي 0.03 الى عنوان بيتكوين جديد في محفظتك.
أن تدفع بأستخدام 2 من ال UTXOs ( القطعة بقيمة 0.05 + والقطعة بيقيمة 0.01 )
- في هذة الحالة ستقوم محفظتك بتوقيع عملية تحويل لنقل بيتكوين من عناوينك 0.05 + 0.01 لعنوان الشخص الذي تريد الدفع له بقيمة 0.02 وسترسل المبلغ المتبقي 0.04 الى عنوان بيتكوين جديد في محفظتك.
- تخيل أن ما حدث هو كالتالي: تم إذابة القطعة النقدية التي كانت بقيمة 0.05 وصنع قطعتين جديدتين واحدة بقيمة 0.02 تعطيها للشخص والثانية بقيمة 0.04 تأخذها أنت.
- في هذة الحالة ستقوم محفظتك بتوقيع عملية تحويل لنقل بيتكوين من عناوينك 0.05 + 0.01 لعنوان الشخص الذي تريد الدفع له بقيمة 0.02 وسترسل المبلغ المتبقي 0.04 الى عنوان بيتكوين جديد في محفظتك.
# انواع عنواين البيتكوين
أنواع عنواين البيتكوين عديدة وتتطور مع الوقت وعادة توفر عمولة كبيرة مع تطورها وتضاف عليها خصائص جديدة. عادة المحافظ تقوم بإنشاء أفضل نوع من العنوانين عند إنشاء المحفظة الجديدة دون سؤال المستخدم. بعد المحافظ المتقدمة تقوم بسؤال المستخدم عن نوع العناوين التي يريد استخدامها:
نستطيع تمييز العناوين كتالي:
- عناوين تبدأ بالرقم 1، مثال: 19pjuNMKMCK.....57iDbgw7J8y (opens new window)
- عناوين تبدأ بالرقم 3، مثال : 354jhdji55Ce...VWZqyHNi (opens new window)
- عناوين تبدأ بـ bc1q، مثال : bc1qwcrx4......czhvg5pgmw (opens new window)
- عناوين تبدأ بـ bc1p، مثال : bc1p000g2kg4p....84uu58qvvmsq6 (opens new window)
العنوانين التي تبدأ ب 1 تُعد من الطراز القديم، حجمها كبير لذلك ستدفعون عُمولة اكبر عند صرفها، لا يفضل استعمالها.
العناوين التي تبدأ ب 3 مقبولة من ناحية عمولة، تجدونها تحت المسمى Legacy Segwit أو BIP49
العناوين التي تبدأ ب bc1q حاليا تعد بالنسبة لي الأختيار الأمثل. أنا شخصيا أنصح باختيارها عند إنشاءالمحفظة، ستوفر عليكم كثيرا في العمولة عند صرفها، منتشر على نطاق واسع وفي الاغلب هي الاختيار الافتراضي للمحافظ اليوم وتدعمها الغالبية العظمى من متصات التادول. تجدونها تحت المسميات التالية: Seqwit native أو BIP84 أو bech32 native أو P2WPKH
اما العناوين التي تبدأ ب bc1p (عناوين تابروت Taproot الجديدة) فهي اجدد وأفضل نوع من العناوين، ستوفر اكثر بالعمولة من عناوين bc1q (خاصة للمحافظ متعددة التواقيع) وستتيح خصائص جديدة طور البناء (خاصة في شبكة البرق) لكن بسبب انها جديدة فليست كل المحافظ والمتصات تدعمها بعد.أنصح باستخدامها للاشخاص الذين يخزنون البتكوين فقط ولا نية لديهم في صرفه هذة السنة 2022 (مثلي 😃 )
باختصار: اذا كنت Holder فقط قم باختيار عناوين تابروت bc1p، اما غير ذلك فقم باختيار عناوين Seqwit native التي تبدأ ب bc1q. اذا كانت العناوين bc1q غير متوفرة في محفظتكم، قم باختيار العنواين التي تبدأ ب 3. أما في حال كانت فقط العنواين التي تبدأ ب 1 هي النوع الوحيد المتوفر في المحفظة. فيبدو انك اخترت محفظة قديمة، لا تستخدمها وابحث عن محفظة أفضل.
# تلخيص أنواع عنواين بيتكوين
عناوين تبدأ ب | نوعها | رمزها | رقم التحسين bip | ملاحظات |
---|---|---|---|---|
1 | Legacy | P2PKH (Pay to Pubic Key Hash) | BIP44 | طراز قديم لا يُفضل استعماله |
3 | Legacy Segwit | P2SH-P2WPKH | BIP49 | أفضل من العنوان التي تبدأ ب 1 |
bc1q | Native Segwit | P2WPKH (Pay to Witness Public Key Hash) | BIP84 | Bech32 Native منتشر ومدعوم على نطاق واسع، عمولته زهيده. أنصح به |
bc1p | Taproot | P2TR(Pay to Taproot) | BIP86 | Bech32m أفضل نوع لكنه أجدد نوع، لذلك ما زال غير مدعوم كثيرا |
# ما هو ال xpub
xpub هو المفتاح العام الموسع (Extended Public Key) اوالماستر (master public key) لمحفظتكم، الذي يتيح إنشاء نسخة من المحفظة كحساب للمشاهدة فقط (Watch only wallet).
عن طريق xpub يمكن إعادة بناء كل عناوين محفظة البيتكوين بدون المفتايح الخاصة بهذة العناوين وبالتالي استاحلة صرف ما بداخلها، أي من خلاله نستطيع ان ننتج او نستنسخ نفس المحفظة بنفس العناوين على جهاز آخر او تطبيق آخر.
هذة الميزة تمكننا من إنشاء:
- محفظة ساخنة تحتوي على مفاتيح عامة فقط (public keys) نسخة من المحفظة الباردة. قد تكون على هاتفك او حاسوبك المتصل بالانترنت والذي قد يكون عُرضة للاختراق. لكن إن حصل لا سمح الله فلا خوف على اموالك لان المخترق لا يمكنه صرف ما بداخل عناوين المحفظة لانه لن يجد المفاتيح الخاصة، كل ما يمكنه فعله هو فقط مشاهدة ما تحتويه من رصيد المحفظة الباردة.
- المحفظة الباردة تحتوي على مفاتيح خاصة(private keys). هي المحفظة الاصلية الذي تحتوي الكلمات المفتاحية وبالتالي المفاتيح الخاصة وهي التي تنتج ال xpub اصلا. نقوم بحماية هذة المحفظة عن طريق عدم ايصالها للانترنت. هذا هو مبدأ عمل المحافظ الباردة.
الكلمات المفتاحية ومنها المفاتيح الخاص يجب ان لا نعطيها لأحد ولكن ايضا المفتاح العام الموسع xpub يجب ان نكون حذرين جدا في مشاركته مع اي طرف او مع أي تطبيق. لان من يمتلكه يمكنه مشاهدة عناوينك وكل عملياتك السابقة والمستقبلية
لكل نوع من العناوين، هنالك نوع من المفتاح العام الموسع، لذلك ستجدون اسماء مختلفة لل Extended Public Key كالتالي:
- xpub - للعناوين تبدأ بالرقم 1
- ypub - للعناوين تبدأ بالرقم 3
- zpub - للعناوين تبدأ ب bc1q
- tpub - للعناوين تبدأ ب bc1p
- Ypub - للعناوين متعددة التواقيع التي تبدأ بالرقم 3
- Zpub - للعناوين متعددة التواقيع التي تبدأ ب bc1q
- Tpub - للعناوين متعددة التواقيع التي تبدأ ب bc1p
في الحقيقة هنالك ايضا مفتاح خاص موسع xprev - وعن طريقة يتم إنتاج المفتاح العام الموسع xpub. لكن لم اجد اي استعمال له صراحة، اذ دائما يمكن استعمال الكلمات المفتاحة مكان ال xprv.
العناوين التي تبدأ ب | Public Key | Private Key | Address Encoding | BIP 32 Path |
---|---|---|---|---|
1 | xpub | xprv | P2PKH or P2SH | m/44'/0' |
3 | ypub | yprv | P2WPKH in P2SH | m/49'/0' |
bc1q | zpub | zprv | P2WPKH | m/84'/0' |
bc1p | tpub | tprv | P2WPKH | m/86'/0' |
3 - متعددة التواقيع | Ypub | Yprv | Multi-signature P2WSH in P2SH | - |
bc1q - متعددة التواقيع | Zpub | Zprv | Multi-signature P2WSH | - |
bc1p - متعددة التواقيع | Tpub | Tprv | MuSig2 | - |
# ما هي عبارة المرور Passphrase
عبارة المرور عبارة عن كلمة او جملة يمكنك إضافتها الى الكلمات المفتاحية لتنشأ محفظة جديدة (من Xpub جديد) ليست لها علاقة بالمحفظة بدون عبارة المرور.
يمكن استعمال عبارة المرور Passphrase لإنشاء عدة حسابات من نفس الكلمات المفتاحية مثلا:
- حساب شخصي: 12 كلمة مفتاحية + عبارة(1)
- حساب عمل: نفس ال 12 كلمة مفتاحية + عبارة(2)
- حساب مصروفات شهرية: 12 كلمة مفتاحية بدون أي عبارة
يمكن استعمال عبارة المرور Passphrase كنوع من الحماية الاضافية 2FA أو قابلية الإنكار Plausible deniability
- اذا قمت بحفظ العبارة التعبيرية بمكان مختلف عن الكلمات المفتاحية، عندها اذا وجد شخص معين الكلمات المفتاحية فلن يكون باستطاعته سرقة الاموال بدون عبارة المرور. لذلك تعد هذة الطريقة كنوع من الحماية الاضافية بخطوتين two-factor authentication (2FA)
- وبما انك تستطيع أن تضع أموال بسيطة(مستعد ان تخسرها) في المحفظة التي بدون العبارة التعبيرية، فاذا قام شخص معين بالحصول على الكلمات المفتاحية بطريقة ما او قد تعرضت لهجوم فيزيائي لا سمح الله كتعذيب، او تهديد بالقتل اذا لم تكشف عن أموالك، يمكنك عندها كشف الكلمات المفتاحية (12 او 24 كلمة) لوحدهم بدون ان يكون للمهاجم أدني فكرة حول عبارة المرور التي تحتوي أموالك الكبيرة
لا يفضل استعمال كلمة واحدة كعبارة مرور اذا يمكن للحاسوب تجربة الاف الاحتمالات لكلامات معينة بطريقة تعرف بال-brute Force لتخمين عبارة المرور Passphrase
# تلخيص الكلمات المفتاحية والعناوين
هي عبارة عن رقم عشوائي كبير بالتمثيل الثنائي (اي مكون من 0و1) يكون بطول 128 الى 256 خانة ==> يُترجم لكلمات مفتاحية خاصة SEED WORDS (12 أو 24 كلمة) ==> اذا اضفنا او لم نضف عليهم عبارة مرور Passphrase ==> ينتج مفتاح خاص موسع xprev ==> عنه ينتج مفتاح عام موسع xpub ==> بدوره ينتج عدد لا نهائي من عناوين البيتكوين. نعطي عنوان لكل عملية او زبون بحال تم استقبال أموال عليها يصبح هذا العنوان UTXO ويسجل على سجل الكتل.
ماذا تعلمنا حتى الان
128 او 256 بت ==> 📝 كلمات مفتاحية(12 أو 24 كلمة) ==> مع او بدون عبارة مرور Passphrase ==> 🔑 مفتاح خاص موسع ==> 🔑 مفتاح عام موسع ==> 📃 عناوين بيتكوين( فواتير) ==> اذا تم دفعها ==> 📗 تصبح UTXO رصيد غير منفق(فاتورة مدفوعة)
# أنواع المحافظ
هنالك أنواع مختلفة من المحافظ المتوفرة، محافظ على الهاتف كتطبيق، محافظ على الحاسوب كبرنامج، محافظ ويب على المتصفحات، محفظة كجهاز صلب (فيزيائي). لكن يمكن تقسيمهم الى نوعان من المحافظ (محافظ باردة ومحافظ ساخنة)
# المحافظ الساخنة 🔥
المحافظ الساخنة- Hot Wallets: هي كل محفظة تحفظ الكلمات المفتاحية بداخلها ومتصلة بالإنترنت أو يمكن لها أن تتصل بالإنترنت.
وتسمى ساخنة (hot) كونها متصلة بالانترنت وهنالك خطر تعرضها للاختراق. عادة تكون على شكل برنامج software يعمل على حاسوبك او كتطبيق App في هاتفك. استعمال تطبيق محفظة على هاتفك يعد أكثر امانا من استعمال برنامج محفظة على حاسوبك وخاصة على نظام ويندوز، ذلك بسبب أن أنظمة التشغيل على الحواسيب تسمح لأي برنامج بالوصول الى مساحة كل ملفات الجهاز عكس انظمة الهواتف الذكية (اندرويد وايفون) التي بها خاصية مساحة خاصة لكل تطبيق دون السماح لتطبيقات اخرى بالوصول اليها (sandboxes)
ميزة استخدام المحافظ الساخنة انها سهلة الاستخدام: يكفي برنامج او تطبيق واحد على هاتفك ليقوم بكل ما تحتاجه من استقبال وارسال وتتبع رصيد البيتكوين. إنشاء التحويلات، التوقيع عليها وارسالها سريعا.
# المحافظ الباردة ❄️
المحافظ الباردة-Cold Wallets: هي كل محفظة تحفظ الكلمات المفتاحية بداخلها، غير متصلة بالإنترنت ولا يمكن لهاأن تتصل بالإنترنت.
عادة تكون على جهاز خاص يدعى (Hardware Wallet - H.W محفظة صلبة) فيه كود بسيط نسبيا وظيفته ان يتعامل مع البيتكوين فقط (او العملات رقمية اخرى)، لان الكود بداخلة بسيط يجعل من الجهاز صعب الاختراق أو محدود الاختراق (low attack surface) ليس كالحواسيب المكتبية مثلا التي تحتوي على مئات البرمجيات التي يمكن اختراق الحاسوب عن طريقها (high attack surface).
المحفظة الباردة تقوم بعملية انشاء الكلمات المفتاحية بشكل offline (أي دون ان تكون متصلة بالانترنت)، حتى المحافظ هنالك فصل تام بين الجزء الذي ينشأ ويحفظ الكلمات المفتاحية التي تُوقع على التحويلات وبين الجزء الذي يستقبل ويرسل التحويلات والذي يمكن ان يكون متصل بالانترنت) عادة هذة الاجهزة تحتوي على فصل فيزيائي بي هذة الاجزاء عن طريق وحدة أمنية تسمى(secure elemnt/chip)
يمكن النظر الى أجهزة المحافظ الباردة على أنها أجهزة حاسوب بيتكوين لإنشاء وتخزين الكلمات المفتاحية واستخدامها لتوقيع عمليات تحويل بشكل offline
# كيف تعمل أجهزة المحافظ الباردة الصلبة H.W؟ وكيف لها ان تنقل المعلومات للإنترنت
اذا كانت اجهزة المحافظ الباردة غير متصلة بالانترنت، اذا كيف يمكن صرف البيتكوين الموجود على الانترنت اصلا. قبل ان أذكر لكم الطرق، علينا ان نعي التالي:
- المحفظة لا تحتوي على عُملات بيتكوين إنما تحتوي وتحفظ مفاتيح عنواين بيتكوين. عُملات البيتكوين تُحفظ على سجل الكتل (البلوكتشاين).
- المفاتيح الخاص لعناوينك تستطيع التوقيع على معاملة لنقل عملات البيتكوين من عنوانك لعناوين بيتكوين اخر.
- المحفظة تتيح لك إنشاء مُعاملة وتوقيعها باستخدام المفاتيح الخاصة بك، والمعاملات المُوقعة هي التي ترسل لشبكة البيتكوين. المفتاح الخاص لا يرسل الى شبكة البيتكوين بتاتا.
- لكي تُرسل عملية بيتكوين، الشبكة تًدقق وتفحص اذا كان التوقيع صالح ويلائم المفتاح العام لعنوان المُرسل. أشدد على أن شبكة البيتكوين ليست بحاجة للمفتاح الخاص.
لذلك جهاز محفظة صلبة يجب ان يكون به امكانية لاستقبال "عملية التحويل" بطريقة ما لتوقيعها بدون انترنت offline ومن ثم ايصالهاالى شبكة البيتكوين موقعه بالمفتاح الخاص. لذلك كل أجهزة المحافظ الصلبة H.W بحاجة لبرنامج او تطبيق(Software) مساعد متصل بالانترنت الذي يقوم بتجهيز عملية التحويل، نقلها لجهاز المحفظ الصلبة ثم استقبالها مُوقعه وبثها لشبكة البيتكوين عبر الانترنت موقعه،
يمكن تخيل العملية كانك تقوم بكتابة شيك بنكي ولكن بشكل إلكتروني. البرنامج او التطبيق المساعد المتصل بالانترنت يقوم بكتابة الشيك مع كامل تفاصيل العملية كالمبلغ، عنوان المرسل والمستقبل، عمولة التحويل. ثم ارسال الشيك بدون توقيع للمحفظة الصلبة الباردة الغير متصلة بالانترنت لتوقيعه وإعادة الشيك مُوقع للبرنامج او التطبيق المساعد ليقوم ببثه عبر الانترنت لشبكة البيتكوين.
الجهاز يتواصل مع البرنامج بطرق معينة والبرنامج هو الذي يكون متصل بالانترنت اليكم الطرق:
# طرق التواصل ما بين أجهزة المحافظ الصلبة والبرامج المساعدة
- توجد اجهزة H.W تستقبل وتُرسل معلومات عن طريق كابل
USB
. مثل جهاز Ledger Nano S و Trezor (شكله مثل الفلاشة DiskOnKey) - توجد اجهزة H.W تستقبل وتُرسل معلومات عن طريق بلوتوث
BT
مثل جهاز Ledger Nano X - توجد اجهزة H.W تستقبل وتُرسل معلومات عن طريق
NFC
مثل جهاز Keepser, ColdCard MK4 - توجد اجهزة H.W تستقبل وتُرسل معلومات عن طريق
SD Card
تسمى (air gap through sd card) يتم نقل التحويلات عن طريق كرت SDCard مثل جهاز ColdCard MK3. - توجد اجهزة H.W تستقبل وتُرسل معلومات عن طريق
QR code
. تسمى (air gap wallet through QR codes) مثل Cobo vault pro او Foundation Passport أو SeedSigner حيث تحوي هذة الاجهزة على شاشة وكاميرا.
انا شخصيا أفضل المحافظ الصلبة التي تستعمل ال QR code حيث أقوم بالاستعانة بتطبيق محفظة على هاتفي الذكي (ك Bluewallet, Electrum) كمحفظة للمشاهدة فقط اي لا تحتوي على الكلمات المفتاحية، فقط المفتاح العام الموسع xpub. عندما اريد أن استقبل بيتكوين اظهر عنوان بيتكوين جديد داخل تطبيق المحفظة على هاتفي. اما عندما أريد أن ارسل بيتكوين أقوم بتجهيز عملية تحويل غير موقعه وعرضها على شكل QR Code على شاشة الهاتف، ثم نقلها لجهاز المحفظة الصلب H.W عن طريق مسحها باستخدام كاميرا الجهاز. وباستخدام شاشة الجهاز استطيع التأكد من معلومات العملية مجددا ثم أوقعها بدون انترنت offline بعد ذلك يتم اظهار عملية التحويل هذة المرة مُوقعه على شاشة الجهاز على شكل QR Code. لاقوم بمسحها عن طريق هاتفي الذكي المتصل بالانترنت الذي بدوره يقوم ببث عملية التحويل المُوقعه لشبكة البتكوين.
# ما هي ال-(PSBTs)
هي عمليات تحويل بيتكوين موقعة جزئيا Partially Signed Bitcoin Transactions (PSBTs) أي ما زالت غير موقعة او موقعة بشكل غير كافي مثلا في المحافظ متعددة التواقيع. هي طريقة لتنسيق البيانات بحيث تسمح للمحافظ والأدوات الاخرى بتبادل معلومات حول معاملة بيتكوين معينة، التوقيع عليها وتجهيزها للبث لشبكة البيتكوين.
هي بالضبط تلك المعلومات التي يتم تبادلها ما بين جهاز المحفظة الباردة وبين البرامج والتطبيقات المساعدة، يمكن تشبه الأمر بالشيك البنكي ولكن إلكتروني غير موقع بعد أو موقع بشكل غير كافي (مثلا في المحافظ متعددة التواقيع من نوع 3 من 5 أي حتى يتم صرف الشيك يجب أن يتم توقيع 3 أشخاص/أجهزة على الاقل من بين 5 أشخاص/أجهزة على الشيك. يتم تبادل ملف الPSBT او الشيك بين كل شخص وشخص للتوقيع عليه لذلك يسمى موقع جزئيا، فقط عندما يتم توقيع 3 أشخاص على الاقل تكمل العملية وبالامكان بث الملف لشبكة البيتكوين)
الPSBT هو بمثابة شيك بنكي يرمز لعملية تحويل غير موقعه بعد بشكل كافي لبثها لشبكة البيتكوين.
# إمكانيات من المفضل أن تكون بالمحفظة التي تستعملها:
دائما مفضل إستعمال محفظة مفتوحة المصدر Open Source، من نوع HD-bip32 وbip39 بحيث تتيح لكم حفظ واعادة بناء المحفظة من الكلمات المفتاحية، بالاضافة لذلك مفضل ان تتيح لك التالي:
- إمكانية تسجيل ملاحظات بجانب كل تحويلة
- إمكانية تحديد العمولة للتحكم بسرعة تاكيد إرسال عملية البيتكوين - Fee Control
- إمكانية تعجيل التأكيد على عملية إرسال البيتكوين أو إلغائها- RBF - Replaced by Fee
- إمكانية تعجيل التأكيد على عملية إستقبال البيتكوين - CPFP - Child pays for parent
- إمكانية ربط المحفظة بعقدتك الكاملة - Link to your own Full node
- إمكانية تصنيف(label)، تعليق(freeze) واختيار ال UTXO عند بناء التحويل- Coin Control
# محافظ التي أفضل استخدامها
- BlueWallet
- Samourai Wallet
- Sparrow Wallet
** تحسينات مستقبلية على هذة المقالة:
- شرح فكرة عنوان من نوع PayNym في التحسين رقم Bip74
- شرح عن ال Derevation paths (opens new window)
مصادر للتعمق اكثر: