Author

Topic: سؤال بخصوص شبكة برق البيتكوين (Read 239 times)

legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
صراحةً لم اعلم ان هذا ممكن على شبكة البرق. انا صراحة مقصر في اي شيء يتعلق بشبكة البرق، شكراً اخي على شرحك المفيد.

اخي العزيز كل هده الخصائص موجودة في البتكوين اساسا وليست في شبكة البرق, كل ماتفلعه شبكة البرق هوا الاستفادة من هده الميزات, اعتقد ان معظم الناس لا يعرفون انه يمكنك فعلا انشاء Smart Contracts على بلوك تشين البتكوين, نظرا لشهرة عملة الايثيريوم في هدا المجال.

طبعا Bitcoin scripting ضعيفة نوعا ما مقارنة ب ETH حيث ان الامكانيات الموجودة على بلوكتشين الاثيريوم اكثر بكثير من الموجودة على البتكوين, ولكن هدا لايمنع وجود الميزات الاساسية لعقود الدفع وامكانية الصرف وغيرها على بلوك تشين البتكوين.

copper member
Activity: 250
Merit: 412
Building A Crypto Empire
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U

ادخال طرف ثالث في التحويل قد ينتج عنه اضرار اكثر من منافع, على العموم يكمن فعليا انشاء عقود ذكية smart contract على بلوكتشين البتكوين وهدا تحديد مايتم استعماله في شبكة اللبرق

هده العقود تعرف بي Hash Time Locked Contracts واختصارها HTLC وهي عبارة عن  hashlocks و timelocks


مايحدث هنا انه عند اجراء اي معاملة وكما ثم شرحه يقوم الطرفان بتوقيع تحويل , التحويل كل هده التحويلات تكون بها خاصية nLockTime مما يمنع تأكيدها من المعدنين قبل وصول البلوك تشين لبلوك معين.

لو فرضنا في المثال اعلاه, اول تحويل لايمكن تأكيده الا عند الوصول الى بلوك رقم  1000, ونحن الان في البلوك 500
التحويل التاني لايمكن تأكيده قبل الوصول للبلوك 800
التحويل الثالث لايمكن تحويل قبل الوصول لى البلوك 700

بهده الطريقة يكون التحويل الاخير لديه اصغر قيمة nLockTime ,ونظرا لان كل هده التحويلات تقوم بتحويل نفس ال inputs فعند تأكيد التحويل الاخير على الشبكة صبح كل التحويلات الاخرى تلقائيا unvalid لانه قد تم صرفها.


طبعا في هده اللحظة يجب ان تكون فكرت في مشكلة اخرى, وهي لماذا يجب عليا الانتظار حتى وصول المعدنين لبلوك معين, ماذا لو احتجت لاموالي قبل وصول ال Block Height الى قيمة nLockTime؟ هنا نقوم باستخدام Hash Time Locked Contracts وبالرجوع الى تعليقي السابق:

ال 1 BTC محجوزة داخل البلوك تشين في الواقع, فتح القناة هوا عبارة انشاء عنوان يحتوي على 1 بتكوين ويكون MultiSig 2-of-2, عند تحويلك مبلغ 0.5 بتكوين فأنت تقوم بانشاء عنوان اخر جديد من نفس النوع ولكن الشخص الاخر يستطيع وحده بدون موافقتك تحويل 0.5 منه


ببساطة هدا التحويل عبارة عن عقد ذكي يسمح للطرف المستفيد صرف تلك الاموال في حال رفض الطرف الاخر التوقيع.
legendary
Activity: 1848
Merit: 1982
Fully Regulated Crypto Casino

احد الحلول هو انشاء عنوان
Multisig 3-of-3
حيث المفتاح الثالث يكون بيد شخص يمكن الوثوق به كطرف ثالث

في حال كان الأستخدام على شبكة الأثيريوم ممكن عمل عقد ذكي بحيث يتم وضع شروط فيه واضحة ومتفق عليها لأزالة الطرف الثالث حيث يصبح العقد هو "كاتب العدل"
ممكن المبلغ يكون مثلاً
Wrapped BTC
على سبيل المثال

هذه المعلومات عامة ولا اعلم عن شبكة البرق


شكرا لك أخي @Coinoplex على مشاركتنا في الموضوع
لا أعرف إذا كان الحل هو إنشاء عنوان Multisig 3-of-3 ولكن عمليا عندما تقوم بفتح قناة فأنت تقوم بعملها بين طرفين فقط ولا تحتاج إلى طرف ثالث حتى يتم توثيق هذه المعاملات التي تجريها بينكما على البلوكتشاين في النهاية، أعني أنه عمليا هناك الكثير من القنوات المفتوحة بين شخصين فقط دون الحاجة لوجود طرف ثالث.
لكن في النهاية لا أعرف إن كان هذا هو الحل أم لا لذا أرجو من الاخ ميكي أن يعطينا رأيه في الموضوع.
copper member
Activity: 250
Merit: 412
Building A Crypto Empire

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

احد الحلول هو انشاء عنوان
Multisig 3-of-3
حيث المفتاح الثالث يكون بيد شخص يمكن الوثوق به كطرف ثالث

في حال كان الأستخدام على شبكة الأثيريوم ممكن عمل عقد ذكي بحيث يتم وضع شروط فيه واضحة ومتفق عليها لأزالة الطرف الثالث حيث يصبح العقد هو "كاتب العدل"
ممكن المبلغ يكون مثلاً
Wrapped BTC
على سبيل المثال

هذه المعلومات عامة ولا اعلم عن شبكة البرق
legendary
Activity: 1848
Merit: 1982
Fully Regulated Crypto Casino

اغلاق القناة عبارة عن Broadcast لاخر Transaction بينك وبين الشخص الاخر, لايوجد اي طريقة لاجبار الطرفين على التوقيع و الموافقة, ماذا لو كان رصيدي 1 بتكوين ورصيدك 100 بتكوين مالذي يمنعني من عدم الموافقة واقوم بابتزازك واطلب دفع رشوة لكي امكنك من الوصول لاموالك ؟

طبعا هدا من المفترض انه يجيب سؤالك التاني وهوا ان اي منكم يمكنه اغلاق القناة عندما يقوم بنشر احد التحويلات التي تم التوقيع عليها من كلاكما, او نشر التحويل الرئيسي الذي ثم بناء عليه بناء فتح القناة, بدونه لايوجد قناة, وبوجوده يعني ان كلاكما قد وقعه وهوا كافي لاغلاق القناة من اي احد منكم بدون موافقة الطرف الاخر.

صراحة لم أجد الحل وازداد فضولي لمعرفة حل المشكلة التي طرحتها أخي ميكي .
كيف يمكن منع أحد الأطراف من الغش وبث المعاملة التي يكون لديه فيها رصيد كبير.
أعتقد أن هذه المعاملات يجب أن يتم توثيقها عند (كاتب بالعدل) حتى يضمن الأطراف عدم الغش ممكن أن يقوم بهذا الدور هنا المحفظة نفسها أو عقد ذكي بين الطرفين. لا أعلم!
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
على كل حال فكرت في الجواب: وخطر لي أنه يجب أن لا يتم السماح لأحد الطرفين بإغلاق القناة قبل الطرف الآخر أو أنه يجب أن يتم التوقيع على التحويل الأخير من قبل الطرفين حتى يصبح نهائي.

هذا سؤال آخر كنت سأسأله أيضا: إذا قمت أنا بفتح القناة فهل يحق للطرف الآخر إغلاق القناة أم أنه يتم إغلاق القناة فقط من قبل الطرف الذي قام بفتحها؟


اغلاق القناة عبارة عن Broadcast لاخر Transaction بينك وبين الشخص الاخر, لايوجد اي طريقة لاجبار الطرفين على التوقيع و الموافقة, ماذا لو كان رصيدي 1 بتكوين ورصيدك 100 بتكوين مالذي يمنعني من عدم الموافقة واقوم بابتزازك واطلب دفع رشوة لكي امكنك من الوصول لاموالك ؟

طبعا هدا من المفترض انه يجيب سؤالك التاني وهوا ان اي منكم يمكنه اغلاق القناة عندما يقوم بنشر احد التحويلات التي تم التوقيع عليها من كلاكما, او نشر التحويل الرئيسي الذي ثم بناء عليه بناء فتح القناة, بدونه لايوجد قناة, وبوجوده يعني ان كلاكما قد وقعه وهوا كافي لاغلاق القناة من اي احد منكم بدون موافقة الطرف الاخر.
legendary
Activity: 1848
Merit: 1982
Fully Regulated Crypto Casino

Quote
طبعا فهمت أيضا أنه قبل إغلاق القناة تكون هذه 1 BTC محجوزة كلها داخل القناة ولا يمكنني أنا او هو التصرف بها حتى إغلاق القناة رغم أنه نظريا كما قلنا أنا أملك 0.75 BTC والطرف الثاني يملك 0.25 BTC .

ال 1 BTC محجوزة داخل البلوك تشين في الواقع, فتح القناة هوا عبارة انشاء عنوان يحتوي على 1 بتكوين ويكون MultiSig 2-of-2, عند تحويلك مبلغ 0.5 بتكوين فأنت تقوم بانشاء عنوان اخر جديد من نفس النوع ولكن الشخص الاخر يستطيع وحده بدون موافقتك تحويل 0.5 منه , وال 0.5 الاخرى تقوم بتحويلها لحسابك.

ايضا ان مستغرب انك لم تتسأئل عن احتمالية الغش  Grin, لنفترض انني الشخص التي قمت باتحويل له, طبعا انت الان تعلم ان كل تحويل يتم يتم فيه انشاء transaction موقع مني ومنك ويعتبر Valid لنتخيل هدا السيناريو

في النقطة 1 , رصيدي كان 0.5 بتكوين , قمنا بتوقيع التحويل وانا لدي نسخة منه وانت كذلك, في النقطة 2 ايضا قمنا بانشاء تحويل موقع مني ومنك و يعتبر valid , في النقطة 3 اصبح رصيدي 0.25 , مالذي يمنعني ان اقوم بعمل broadcast لي التحويل الصادر عن رقم 2 والذي كان فيه رصيدي 0.75 ورصيدك 0.25 علما بأن التحويل قمت انت بالتوقيع عليه وسيتم اعتباره تحويل قانوني وسيتم اغلاق القناة وتحويل مبلغ 0.75 بتكوين لحسابي و 0.25 لحسابك حتى بعد الخطوة 3 في حال ام تقم انت بنشر التحويل قبلي, ماهو حل هده المشكلة من وجهة نظرك؟

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

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

هذا سؤال آخر كنت سأسأله أيضا: إذا قمت أنا بفتح القناة فهل يحق للطرف الآخر إغلاق القناة أم أنه يتم إغلاق القناة فقط من قبل الطرف الذي قام بفتحها؟
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
شكرا لك أخي خالد وأخي ميكي
مما فهمته من شرحكما يمكن تلخيص الأمر بأنه عند فتح قناة بمبلغ 1 بيتكوين مثلا يتم حجز هذا المبلغ داخل القناة ويمكن عمل الكثير من التحويلات بين الطرفين وعند إغلاق القناة يتم تسجيل الوضع النهائي فقط على البلوكشاين وهو يصبح الرصيد النهائي للطرفين. سأعطي مثالا وأرجو أن تخبروني إن كان صحيح:
1- قمت بتحويل 0.5 إلى الطرف الآخر أصبح لديه 0.5 وأنا 0.5
2- قمت بتحويل 0.25 إلى الطرف الآخر وأصبح لديه 0.75 وأنا 0.25
3- قام هو بتحويل 0.5 لي فأصبح لدي 0.75 وهو أصبح لديه 0.25

الآن إذا قمنا بإغلاق القناة سبتم تسجيل النتيجة الأخيرة على البلوكتشاين أي أنني أملك 0.75 BTC والطرف الثاني يملك 0.25 BTC .

صحيح تمام اخي احسنت.

Quote
طبعا فهمت أيضا أنه قبل إغلاق القناة تكون هذه 1 BTC محجوزة كلها داخل القناة ولا يمكنني أنا او هو التصرف بها حتى إغلاق القناة رغم أنه نظريا كما قلنا أنا أملك 0.75 BTC والطرف الثاني يملك 0.25 BTC .

ال 1 BTC محجوزة داخل البلوك تشين في الواقع, فتح القناة هوا عبارة انشاء عنوان يحتوي على 1 بتكوين ويكون MultiSig 2-of-2, عند تحويلك مبلغ 0.5 بتكوين فأنت تقوم بانشاء عنوان اخر جديد من نفس النوع ولكن الشخص الاخر يستطيع وحده بدون موافقتك تحويل 0.5 منه , وال 0.5 الاخرى تقوم بتحويلها لحسابك.

ايضا ان مستغرب انك لم تتسأئل عن احتمالية الغش  Grin, لنفترض انني الشخص التي قمت باتحويل له, طبعا انت الان تعلم ان كل تحويل يتم يتم فيه انشاء transaction موقع مني ومنك ويعتبر Valid لنتخيل هدا السيناريو

في النقطة 1 , رصيدي كان 0.5 بتكوين , قمنا بتوقيع التحويل وانا لدي نسخة منه وانت كذلك, في النقطة 2 ايضا قمنا بانشاء تحويل موقع مني ومنك و يعتبر valid , في النقطة 3 اصبح رصيدي 0.25 , مالذي يمنعني ان اقوم بعمل broadcast لي التحويل الصادر عن رقم 2 والذي كان فيه رصيدي 0.75 ورصيدك 0.25 علما بأن التحويل قمت انت بالتوقيع عليه وسيتم اعتباره تحويل قانوني وسيتم اغلاق القناة وتحويل مبلغ 0.75 بتكوين لحسابي و 0.25 لحسابك حتى بعد الخطوة 3 في حال ام تقم انت بنشر التحويل قبلي, ماهو حل هده المشكلة من وجهة نظرك؟



legendary
Activity: 1848
Merit: 1982
Fully Regulated Crypto Casino
شكرا لك أخي خالد وأخي ميكي
مما فهمته من شرحكما يمكن تلخيص الأمر بأنه عند فتح قناة بمبلغ 1 بيتكوين مثلا يتم حجز هذا المبلغ داخل القناة ويمكن عمل الكثير من التحويلات بين الطرفين وعند إغلاق القناة يتم تسجيل الوضع النهائي فقط على البلوكشاين وهو يصبح الرصيد النهائي للطرفين. سأعطي مثالا وأرجو أن تخبروني إن كان صحيح:
1- قمت بتحويل 0.5 إلى الطرف الآخر أصبح لديه 0.5 وأنا 0.5
2- قمت بتحويل 0.25 إلى الطرف الآخر وأصبح لديه 0.75 وأنا 0.25
3- قام هو بتحويل 0.5 لي فأصبح لدي 0.75 وهو أصبح لديه 0.25

الآن إذا قمنا بإغلاق القناة سبتم تسجيل النتيجة الأخيرة على البلوكتشاين أي أنني أملك 0.75 BTC والطرف الثاني يملك 0.25 BTC .

طبعا فهمت أيضا أنه قبل إغلاق القناة تكون هذه 1 BTC محجوزة كلها داخل القناة ولا يمكنني أنا او هو التصرف بها حتى إغلاق القناة رغم أنه نظريا كما قلنا أنا أملك 0.75 BTC والطرف الثاني يملك 0.25 BTC .

هذا ما فهمته من شرح الأخوة وإذا كان هناك خطأ أرجو أن يصححوا لي.
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
السؤال : هذه 0.5 BTC التي قمت بدفعها أو تحويلها للطرف الآخر هل هو يملكها فعلا؟ أقصد طالما أنه لن يتم تسجيل المعاملة على البلوكتشاين إلا بعد إقفال القناة ؟ يعني طالما أنه لم يتم تسجيل أو تأكيد معاملة 0.5 BTC للطرف الآخر فهي ليست ملكه بعد؟ هل يمكنه التصرف بهذه 0.5 BTC قبل إغلاق القناة؟  أيضا هل يمكنني التصرف ب 0.5 BTC الباقية في رصيدي قبل إغلاق القناة؟ [/size]

الاجابة القصيرة للسؤالين هي "لا", اما السبب فهو يحتاج للقليل من الشرح.

عند فتح قناة دفع مع شخص اخر فعليا ماتقومان بفعله هوا انشاء تحويل بمفاتيح متعددة عددها 2 واحد تملكه انت والاخر يملكه الطرف الاخر وهي تعرف ب Multisig 2-of-2 , في هده المرحلة يكون التحويل عبارة عن 1 بتكوين منك و 0 بتكوين من الشخص الاخر, ولايمكن تحويل اي قيمة منه الا بعد اغلاق القناة.

قمت انت بتحويل 0.5 بتكوين للشخص الاخر, في هده المرحلة تقومان بانشاء بتحويل جديد خارج البلوك تشين يقتضي بارسال 0.5 بتكوين لعنوان خاص بالشخص الاخر و 0.5 بتكوين لعنوان خاص بك انت, ونظرا لان هده ال output تحتاج الى توقيعك مع توقيع الشخص الاخر فسيقوم كلاكم بتوقيع التحويل ويحتفظ كل منكم بنسخة منه بدون ارساله الى البلوك تشين.

عندما يريد احدكم اغلاق القناة يقوم ببساطة بعمل Broadcast للتحويل الاخير الذي ينص على تحويل 0.5 بتكوين لحساب X و 0.5 لحساب Y وبما ان كلاكما وقع عليه سيتم قبوله من النودز والماينرز.


legendary
Activity: 2702
Merit: 3045
Top Crypto Casino
تقنيا الرصيد الذي ترسله للطرف الاخر يضاف الى رصيدك الخارجي remote balance.
طالما ان القناة ما زالت مفتوحة فرصيدك و رصيد الطرف المقابل يعتبر رصيد مشترك.

في المثال الذي طرحته مثلا الطرف المقابل لا يمكنه استعمال المبلغ الذي ارسلته اليه الا لاعادته او اعادة جزء منه اليك طالما ان القناة مفتوحة.
لكن عمليا كل طرف يمكن ان يكون متصل باكثر من طرف اخر و هنا يمكن ان نفهم لماذا سمي المبلغ الذي ارسلته مع المبلغ المتوفر اساسا للطرف الاخر بالرصيد الخارجي:

لنفترض انك فتحت قناة مع احمد و احمد فاتح قناة مع علي. اذا اراد علي ارسال مبلغ اليك فعليه الارسال لاحمد و احمد يقوم بالارسال اليك ليس مما ارسله اليه علي بل من رصيدك الخارجي (المبلغ الذي قام بايداعه عند فتح القناة معك اضافة للمبلغ الذي ارسلته اليه)

اسف على تداخل المعلومات لكن اتمنى ان تكون الصورة واضحة.
legendary
Activity: 1848
Merit: 1982
Fully Regulated Crypto Casino
السلام عليكم
سأل الأحد الاعضاء هنا في المنتدى سؤال حول شبكة برق البيتكوين ولم أعرف الإجابة عنه لذلك أحببت سؤاله هنا في القسم العربي حتى أعرف الجواب ويستفاد الجميع
عندما أقوم بفتح قناة بيني وبين شخص آخر على سبيل المثال وأضع مبلغ 1 BTC في القناة وقمت بتحويل 0.5 BTC إلى الطرف الآخر في القناة وبقي لدي 0.5 BTC في رصيدي .

السؤال : هذه 0.5 BTC التي قمت بدفعها أو تحويلها للطرف الآخر هل هو يملكها فعلا؟ أقصد طالما أنه لن يتم تسجيل المعاملة على البلوكتشاين إلا بعد إقفال القناة ؟ يعني طالما أنه لم يتم تسجيل أو تأكيد معاملة 0.5 BTC للطرف الآخر فهي ليست ملكه بعد؟ هل يمكنه التصرف بهذه 0.5 BTC قبل إغلاق القناة؟  أيضا هل يمكنني التصرف ب 0.5 BTC الباقية في رصيدي قبل إغلاق القناة؟
Jump to: