Giao thức đồng thuận Stellar

بقلم David Mazières · 2015

وضع فردي stellar.org

خلاصة

المدفوعات الدولية بطيئة ومكلفة، ويرجع ذلك جزئيًا إلى توجيه الدفع متعدد القفزات عبر طرق غير متجانسة الأنظمة المصرفية. Stellar هي شبكة دفع عالمية جديدة التي يمكنها تحويل الأموال الرقمية مباشرة إلى أي مكان في العالم العالم في ثواني. الابتكار الرئيسي هو معاملة آمنة آلية عبر وسطاء غير موثوق بهم، وذلك باستخدام جديد بروتوكول الاتفاقية البيزنطية يسمى SCP. مع SCP، لكل منهما تحدد المؤسسة المؤسسات الأخرى التي ستبقى معها في الاتفاق؛ من خلال الترابط العالمي النظام المالي، ثم توافق الشبكة بأكملها على الذرية المعاملات التي تشمل مؤسسات تعسفية، مع عدم وجود مخاطر الملاءة المالية أو سعر الصرف من مصدري الأصول الوسطاء أو صناع السوق. نقدم نموذج SCP وبروتوكوله و التحقق الرسمي؛ وصف شبكة الدفع Stellar؛ وأخيرًا قم بتقييم Stellar تجريبيًا من خلال المعايير وخبرتنا مع عدة سنوات من استخدام الإنتاج. مفاهيم CCS • الأمن والخصوصية →الموزعة أمن الأنظمة؛ • تنظيم أنظمة الكمبيوتر → أبنية نظير إلى نظير؛ • نظم المعلومات → تحويل الأموال إلكترونيا. الكلمات الرئيسية blockchain, BFT, النصاب القانوني, الدفعات التنسيق المرجعي ACM: مارتا لوخافا، جوليانو لوسا، ديفيد مازيير، جرايدون هور، نيكولا باري، إيلي جافني، جوناثان جوف، رافائيل مالينوفسكي، جيد مكالب. 2019. مدفوعات عالمية سريعة وآمنة باستخدام Stellar. في SOSP ’19: ندوة حول مبادئ أنظمة التشغيل، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا. ACM، نيويورك، نيويورك، الولايات المتحدة الأمريكية، 17 صفحة. https://doi.org/10.1145/3341301.3359636

Tóm tắt

Thanh toán quốc tế chậm và tốn kém, một phần là do định tuyến thanh toán nhiều bước thông qua các mạng không đồng nhất. các hệ thống ngân hàng. Stellar là mạng thanh toán toàn cầu mới có thể chuyển trực tiếp tiền kỹ thuật số đến bất kỳ đâu trên thế giới thế giới trong vài giây. Sự đổi mới quan trọng là một giao dịch an toàn cơ chế thông qua các trung gian không đáng tin cậy, sử dụng một cơ chế mới Giao thức thỏa thuận Byzantine được gọi là SCP. Với SCP, mỗi tổ chức chỉ định các tổ chức khác sẽ ở lại đồng ý; thông qua sự kết nối toàn cầu của hệ thống tài chính, toàn bộ mạng lưới sau đó đồng ý về nguyên tử giao dịch trải rộng trên các tổ chức tùy ý, không có rủi ro về khả năng thanh toán hoặc tỷ giá hối đoái từ các tổ chức phát hành tài sản trung gian hoặc các nhà tạo lập thị trường. Chúng tôi trình bày mô hình, giao thức và xác minh chính thức; mô tả mạng thanh toán Stellar; và cuối cùng đánh giá Stellar theo kinh nghiệm thông qua điểm chuẩn và kinh nghiệm của chúng tôi với nhiều năm sử dụng sản xuất. Khái niệm CCS • Bảo mật và quyền riêng tư → Phân tán bảo mật hệ thống; • Tổ chức hệ thống máy tính → Kiến trúc ngang hàng; • Hệ thống thông tin → Chuyển tiền điện tử. Từ khóa blockchain, BFT, số đại biểu, thanh toán Định dạng tham chiếu ACM: Marta Lokhava, Giuliano Losa, David Mazières, Graydon Hoare, Nicolas Barry, Eli Gafni, Jonathan Jove, Rafał Malinowsky, Jed McCaleb. 2019. Thanh toán toàn cầu nhanh chóng và an toàn với Stellar. trong SOSP '19: Hội nghị chuyên đề về Nguyên tắc hệ điều hành, ngày 27–30 tháng 10, 2019, Huntsville, ON, Canada. ACM, New York, NY, Mỹ, 17 trang. https://doi.org/10.1145/3341301.3359636

مقدمة

من المعروف أن المدفوعات الدولية بطيئة ومكلفة [32]. خذ بعين الاعتبار عدم جدوى إرسال 0.50 دولار من الولايات المتحدة إلى * شركة جالوا †جامعة كاليفورنيا الإذن بعمل نسخ رقمية أو ورقية من كل هذا العمل أو جزء منه يُمنح الاستخدام الشخصي أو الاستخدام في الفصل الدراسي بدون رسوم بشرط عدم وجود نسخ صنعت أو وزعت لتحقيق الربح أو الميزة التجارية وتحمل تلك النسخ هذا الإشعار والاقتباس الكامل في الصفحة الأولى. حقوق الطبع والنشر للمكونات يجب تكريم هذا العمل المملوك لآخرين غير ACM. التجريد مع الائتمان مسموح به. النسخ بخلاف ذلك، أو إعادة النشر، للنشر على الخوادم أو إلى إعادة التوزيع على القوائم يتطلب الحصول على إذن محدد مسبق و/أو دفع رسوم. طلب الأذونات من [email protected]. SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا © 2019 جمعية آلات الحوسبة. ACM ISBN 978-1-4503-6873-5/19/10...$15.00 https://doi.org/10.1145/3341301.3359636 المكسيك دولتان متجاورتان. يدفع المستخدمون النهائيون ما يقرب من 9 دولارات لمتوسط هذا النقل [32]، واتفاق ثنائي ولم يكن من الممكن إلا أن تخفض الديون التي توسطت فيها البنوك المركزية في البلدان تبلغ تكلفة البنك الأساسي 0.67 دولارًا أمريكيًا لكل عنصر [2]. على رأس الرسوم، يتم احتساب زمن الوصول للمدفوعات الدولية بشكل عام في أيام، مما يجعل من المستحيل الحصول على الأموال في الخارج بسرعة حالات الطوارئ. في البلدان التي لا يوجد بها نظام مصرفي العمل أو لا يخدم جميع المواطنين، أو عندما تكون الرسوم غير محتملة، يلجأ الناس إلى إرسال المدفوعات بالحافلة [38]، عن طريق القارب [19]، وأحيانًا الآن بواسطة Bitcoin [55]، وكلها تحمل المخاطر أو الكمون أو الإزعاج. على الرغم من أنه ستكون هناك دائمًا تكاليف امتثال، تشير الأدلة إلى ضياع مبلغ كبير بسبب انعدام المنافسة [21]، والتي تتفاقم بسبب التكنولوجيا غير الفعالة. حيث الناس يمكن أن يبتكر، وتنخفض الأسعار وفترات التأخير. على سبيل المثال، بلغت تكلفة التحويلات من الحسابات المصرفية في الربع الثاني من عام 2019 ما متوسطه 6.99%، بينما بلغت نسبة تحويل الأموال عبر الهاتف المحمول 4.88% فقط [13]. شبكة دفع عالمية مفتوحة تجذب الابتكار ومن الممكن أن تؤدي المنافسة من جانب الكيانات غير المصرفية إلى الانخفاض التكاليف وزمن الوصول في جميع الطبقات، بما في ذلك الامتثال [83]. تعرض هذه الورقة Stellar، دفعة مستندة إلى blockchain شبكة مصممة خصيصًا لتسهيل الابتكار و المنافسة في المدفوعات الدولية. Stellar هو الأول نظام لتحقيق الأهداف الثلاثة التالية (تحت أ "فرضية الإنترنت" جديدة ولكنها صالحة تجريبيًا): 1. العضوية المفتوحة – يمكن لأي شخص إصدار عملة مدعومة tokens الرقمية التي يمكن تبادلها بين المستخدمين. 2. النهاية التي يفرضها المُصدر - يمكن لجهة إصدار token أن تمنع المعاملات في token من التراجع أو التراجع. 3. الذرية عبر المُصدر – يمكن للمستخدمين التبادل ذريًا وتداول tokens من جهات إصدار متعددة. إن تحقيق الأولين أمر سهل. يمكن لأي شركة أن تقدم من جانب واحد منتجًا مثل Paypal وVenmo وWeChat الدفع، أو Alipay والتأكد من نهائية المدفوعات في العملات الافتراضية التي قاموا بإنشائها. ولسوء الحظ، فإن التعامل ذريًا عبر هذه العملات أمر مستحيل. في الواقع، على الرغم من استحواذ Paypal على الشركة الأم لشركة Venmo في عام 2013، لا يزال من المستحيل على المستخدمين النهائيين إرسال Venmo دولار لمستخدمي Paypal [78]. في الآونة الأخيرة فقط يمكن للتجار حتى قبول كلاهما بتكامل واحد. يمكن تحقيق الهدفين 2 و 3 في نظام مغلق. وعلى وجه الخصوص، يتمتع عدد من البلدان بمدفوعات محلية تتسم بالكفاءة الشبكات، التي تشرف عليها عادةً هيئة تنظيمية موثوقة عالميًا. ومع ذلك، تقتصر العضوية على مغلقة مجموعة من البنوك المعتمدة والشبكات تقتصر على مدى وصول السلطة التنظيمية في البلاد.SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. تم تحقيق الهدفين 1 و3 في blockchains، وعلى الأخص في شكل ERC20 tokens على Ethereum [3]. الفكرة الرئيسية لهذه blockchain هي إنشاء عملة مشفرة جديدة يمكن من خلالها مكافأة الأشخاص على تسوية الأمر المعاملات من الصعب العودة. لسوء الحظ، هذا يعني أن جهات إصدار token لا تتحكم في نهائية المعاملة. إذا البرمجيات تتسبب الأخطاء في إعادة تنظيم سجل المعاملات [26، 73]، أو عندما تكون غنائم الغشاشين أكثر من تكلفة إعادة تنظيم التاريخ [74، 97]، قد يكون المصدرون مسؤولين عن tokens لقد قاموا بالفعل باستبدال أموال العالم الحقيقي. يحتوي Stellar blockchain على خاصيتين مميزتين. أولاً، يدعم أصلاً الأسواق الفعالة بين tokens من مصدرين مختلفين. على وجه التحديد، يمكن لأي شخص إصدار token، يوفر blockchain سجل طلبات مدمجًا للتداول بين أي زوج من token، ويمكن للمستخدمين إصدار دفعات المسار التي تتداول ذريًا عبر عدة أزواج عملات بينما ضمان سعر الحد الشامل. ثانيًا، يقدم Stellar اتفاقية بيزنطية جديدة البروتوكول SCP (Stellar بروتوكول الإجماع) والذي من خلاله يقوم مصدرو token بتعيين خوادم validator محددة للتنفيذ نهائية المعاملة. طالما لم يقم أحد بالمساس بـ validators الخاصة بجهة الإصدار (والتوقيعات الرقمية الأساسية و التشفير hashes آمن)، يعرف المصدر بالضبط المعاملات التي حدثت ويتجنب المخاطر من الخسائر الناجمة عن blockchain إعادة تنظيم التاريخ. الفكرة الرئيسية لشركة SCP هي أن معظم مصدري الأصول يستفيدون منها الأسواق السائلة وتريد تسهيل المعاملات الذرية مع الأصول الأخرى. ومن ثم، يتم تكوين مسؤولي validator خوادمهم للاتفاق مع validators الأخرى على وجه التحديد تاريخ جميع المعاملات على جميع الأصول. يمكن أن يكون validator v1 يمكن تكوينه للموافقة على الإصدار 2، أو يمكن تكوين الإصدار 2 للموافقة مع الإصدار 1، أو قد يتم تكوين كليهما للاتفاق مع بعضهما البعض؛ وفي جميع الحالات، لن يلتزم أي منهما بسجل المعاملات حتى إنها تعلم أن الآخر لا يمكنه الالتزام بتاريخ مختلف. بواسطة العبور، إذا كان v1 لا يمكن أن يختلف مع v2 وv2 لا يمكن أن يختلف مع v3 (أو العكس)، فإن v1 لا يمكن أن يختلف مع v3 v3، سواء كان v3 يمثل الأصول التي سمعها v1 أم لا من. في ظل فرضية أن هذه العلاقات اتفاق ربط الشبكة بالكامل بشكل عابر، يضمن SCP اتفاقية عالمية، مما جعلها اتفاقية بيزنطية عالمية بروتوكول ذو عضوية مفتوحة. نحن نطلق على افتراض الترابط الجديد هذا اسم فرضية الإنترنت، ونلاحظ ذلك يحمل كلا من "الإنترنت" (الذي يفهمه الجميع يعني أكبر شبكة IP متصلة بشكل عابر) والمدفوعات الدولية القديمة (التي تتم على أساس خطوة تلو الأخرى غير ذرية، ولكنها تستفيد من عالمية متصلة بشكل عابر شبكة المؤسسات المالية). Stellar قيد الاستخدام الإنتاجي منذ سبتمبر 2015. للحفاظ على طول blockchain قابلاً للإدارة، يتم تشغيل النظام SCP على فترات زمنية مدتها 5 ثوانٍ — بسرعة وفقًا لمعايير blockchain، ولكن أبطأ بكثير من التطبيقات النموذجية للاتفاقية البيزنطية. على الرغم من أن الاستخدام الأساسي كان عبارة عن مدفوعات، إلا أن Stellar كان كذلك أيضًا أثبتت جاذبيتها للأشياء القابلة للاستبدال غير المالية token والتي تستفيد منها من الأسواق الثانوية المباشرة (انظر القسم 7.1). ويناقش القسم التالي الأعمال ذات الصلة. يعرض القسم 3 SCP. يصف القسم 4 التحقق الرسمي من SCP. يصف القسم 5 طبقة الدفع الخاصة بـ Stellar. ويتعلق القسم 6 بعض خبراتنا في النشر والدروس المستفادة. القسم 7 يقيم النظام. وينتهي القسم 8.

Giới thiệu

Thanh toán quốc tế nổi tiếng là chậm và tốn kém [32]. Hãy xem xét tính phi thực tế của việc gửi 0,5 đô la từ Hoa Kỳ tới *Galois, Inc. †UCLA Quyền tạo bản sao kỹ thuật số hoặc bản cứng của tất cả hoặc một phần tác phẩm này cho việc sử dụng cá nhân hoặc lớp học được cấp miễn phí với điều kiện là các bản sao không được thực hiện hoặc phân phối vì lợi nhuận hoặc lợi ích thương mại và các bản sao đó mang thông báo này và trích dẫn đầy đủ ở trang đầu tiên. Bản quyền cho các thành phần tác phẩm này thuộc sở hữu của người khác ngoài ACM phải được tôn vinh. Trừu tượng hóa với tín dụng được cho phép. Sao chép theo cách khác hoặc xuất bản lại để đăng trên máy chủ hoặc phân phối lại vào danh sách, cần có sự cho phép cụ thể trước và/hoặc phải trả phí. Yêu cầu quyền từ [email protected]. SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada © 2019 Hiệp hội Máy tính. ACM ISBN 978-1-4503-6873-5/19/10...$15,00 https://doi.org/10.1145/3341301.3359636 Mexico, hai nước láng giềng. Người dùng cuối phải trả gần 9 USD đối với mức chuyển khoản trung bình như vậy [32] và thỏa thuận song phương được môi giới bởi ngân hàng trung ương của các nước chỉ có thể làm giảm chi phí ngân hàng cơ bản lên tới 0,67 USD cho mỗi mặt hàng [2]. Ngoài phí, độ trễ của thanh toán quốc tế thường được tính trong vài ngày, khiến cho việc chuyển tiền ra nước ngoài nhanh chóng trong trường hợp khẩn cấp. Ở những nước mà hệ thống ngân hàng không làm việc hoặc không phục vụ mọi công dân hoặc khi mức phí không thể chấp nhận được, mọi người chuyển sang gửi thanh toán bằng xe buýt [38], bằng thuyền [19] và thỉnh thoảng bây giờ là Bitcoin [55], tất cả đều như vậy phải chịu rủi ro, độ trễ hoặc sự bất tiện. Mặc dù sẽ luôn có chi phí tuân thủ nhưng bằng chứng cho thấy tổn thất một khoản đáng kể do thiếu cạnh tranh [21], càng trở nên trầm trọng hơn do công nghệ kém hiệu quả. Nơi mọi người có thể đổi mới, giá cả và độ trễ giảm xuống. Chẳng hạn, chuyển tiền từ tài khoản ngân hàng trong quý 2 năm 2019 có chi phí trung bình là 6,99%, trong khi con số về tiền di động chỉ là 4,88% [13]. Mạng thanh toán toàn cầu mở thu hút sự đổi mới và sự cạnh tranh từ các tổ chức phi ngân hàng có thể làm giảm chi phí và độ trễ ở tất cả các lớp, bao gồm cả việc tuân thủ [83]. Bài viết này trình bày Stellar, khoản thanh toán dựa trên blockchain mạng được thiết kế đặc biệt để tạo thuận lợi cho sự đổi mới và cạnh tranh trong thanh toán quốc tế. Stellar là lần đầu tiên thống để đáp ứng cả ba mục tiêu sau (theo một “Giả thuyết Internet” mới lạ nhưng có giá trị thực nghiệm: 1. Tư cách thành viên mở – Bất kỳ ai cũng có thể phát hành được hỗ trợ bằng tiền tệ token kỹ thuật số có thể được trao đổi giữa những người dùng. 2. Quyết định cuối cùng do nhà phát hành thực thi – Nhà phát hành của token có thể ngăn chặn các giao dịch trong token không bị đảo ngược hoặc hoàn tác. 3. Tính nguyên tử của nhà phát hành chéo – Người dùng có thể trao đổi nguyên tử và giao dịch token từ nhiều tổ chức phát hành. Đạt được hai điều đầu tiên thật dễ dàng. Bất kỳ công ty nào cũng có thể đơn phương cung cấp một sản phẩm như Paypal, Venmo, WeChat Thanh toán hoặc Alipay và đảm bảo tính cuối cùng của thanh toán trong tiền ảo mà họ đã tạo ra. Thật không may, giao dịch nguyên tử giữa các loại tiền tệ này là không thể. Trên thực tế, mặc dù Paypal đã mua lại công ty mẹ của Venmo vào năm 2013, người dùng cuối vẫn không thể gửi Venmo đô la cho người dùng Paypal [78]. Chỉ gần đây các thương nhân mới có thể thậm chí chấp nhận cả hai với một sự tích hợp duy nhất. Mục tiêu 2 và 3 có thể đạt được trong một hệ thống khép kín. Đặc biệt, một số nước đã có thanh toán nội địa hiệu quả mạng, thường được giám sát bởi một cơ quan quản lý đáng tin cậy trên toàn cầu. Tuy nhiên, tư cách thành viên được giới hạn ở mức đóng tập hợp các ngân hàng đặc quyền và mạng lưới được giới hạn ở tầm với của cơ quan quản lý của một quốc gia.SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. Mục tiêu 1 và 3 đã đạt được trong blockchain giây được khai thác, đáng chú ý nhất là ở dạng ERC20 tokens trên Ethereum [3]. Ý tưởng chính của những blockchain này là tạo ra một loại tiền điện tử mới để thưởng cho mọi người vì đã thanh toán giao dịch khó hoàn nguyên. Thật không may, điều này có nghĩa là nhà phát hành token không kiểm soát tính cuối cùng của giao dịch. Nếu phần mềm lỗi khiến lịch sử giao dịch bị sắp xếp lại [26, 73], hoặc khi chiến lợi phẩm của việc lừa gạt người khác vượt quá chi phí sắp xếp lại lịch sử [74, 97], nhà phát hành có thể phải chịu trách nhiệm về tokens họ đã đổi lấy tiền thật. Stellar blockchain có hai thuộc tính phân biệt. Đầu tiên, nó thực sự hỗ trợ thị trường hiệu quả trong khoảng token giây từ các tổ chức phát hành khác nhau. Cụ thể, bất kỳ ai cũng có thể phát hành token, blockchain cung cấp sổ đặt hàng tích hợp để giao dịch giữa bất kỳ cặp token nào và người dùng có thể phát hành thanh toán đường dẫn giao dịch nguyên tử trên một số cặp tiền tệ trong khi đảm bảo giá giới hạn từ đầu đến cuối. Thứ hai, Stellar giới thiệu thỏa thuận Byzantine mới giao thức, SCP (Stellar Giao thức đồng thuận), thông qua đó token nhà phát hành chỉ định máy chủ validator cụ thể để thực thi sự cuối cùng của giao dịch. Miễn là không ai xâm phạm validator của nhà phát hành (và các chữ ký số cơ bản và mật mã hash vẫn được bảo mật), nhà phát hành biết chính xác giao dịch nào đã xảy ra và tránh rủi ro về tổn thất từ blockchain việc sắp xếp lại lịch sử. Ý tưởng chính của SCP là hầu hết các nhà phát hành tài sản đều được hưởng lợi từ thị trường thanh khoản và muốn tạo điều kiện thuận lợi cho các giao dịch nguyên tử với các tài sản khác. Do đó, quản trị viên validator định cấu hình máy chủ của họ đồng ý chính xác với các validator khác lịch sử của tất cả các giao dịch trên tất cả các tài sản. validator v1 có thể được cấu hình để đồng ý với v2 hoặc v2 có thể được cấu hình để đồng ý với v1 hoặc cả hai có thể được cấu hình để đồng ý với nhau; trong mọi trường hợp, sẽ không cam kết về lịch sử giao dịch cho đến khi nó biết người kia không thể cam kết với một lịch sử khác. Theo tính bắc cầu, nếu v1 không thể không đồng ý với v2 và v2 không thể không đồng ý với v3 (hoặc ngược lại) thì v1 không thể không đồng ý với v3, v3 có đại diện cho tài sản v1 hay không thì đã nghe nói rồi của. Theo giả thuyết rằng các mối quan hệ thỏa thuận này kết nối liên tục toàn bộ mạng, SCP đảm bảo thỏa thuận toàn cầu, biến nó thành một thỏa thuận Byzantine toàn cầu giao thức với tư cách thành viên mở. Chúng tôi gọi giả định kết nối mới này là giả thuyết Internet và lưu ý rằng nó nắm giữ cả “Internet” (điều mà mọi người đều hiểu có nghĩa là mạng IP được kết nối bắc cầu lớn nhất) và thanh toán quốc tế truyền thống (được thực hiện theo từng bước phi nguyên tử, nhưng tận dụng một kết nối xuyên suốt, toàn cầu mạng lưới các tổ chức tài chính). Stellar đã được đưa vào sử dụng sản xuất từ tháng 9 năm 2015. Để duy trì độ dài blockchain có thể quản lý được, hệ thống sẽ chạy SCP trong khoảng thời gian 5 giây—nhanh theo tiêu chuẩn blockchain, nhưng chậm hơn nhiều so với các ứng dụng điển hình của thỏa thuận Byzantine. Mặc dù mục đích sử dụng chính là thanh toán, Stellar cũng có đã được chứng minh là hấp dẫn đối với những token có thể thay thế được bằng tiền và được hưởng lợi từ thị trường thứ cấp trực tiếp (xem Phần 7.1). Phần tiếp theo thảo luận về công việc liên quan. Phần 3 trình bày SCP. Phần 4 mô tả xác minh chính thức của chúng tôi về SCP. Phần 5 mô tả lớp thanh toán của Stellar. Mục 6 liên quan một số kinh nghiệm triển khai và bài học kinh nghiệm của chúng tôi. Phần 7 đánh giá hệ thống. Phần 8 kết thúc.

Stellar بروتوكول الإجماع

يعتمد بروتوكول الإجماع Stellar (SCP) على النصاب القانوني بروتوكول الاتفاقية البيزنطية ذو العضوية المفتوحة. تنشأ النصاب القانوني من قرارات التكوين المحلي المجمعة للعقد الفردية. ومع ذلك، العقد تعترف فقط النصاب الذي ينتمون إليه أنفسهم، وبعد ذلك فقط التعرف على التكوينات المحلية لجميع أعضاء النصاب القانوني الآخرين. إحدى فوائد هذا النهج هو أن SCP بطبيعته يتسامح مع وجهات النظر غير المتجانسة حول ما هي العقد الموجودة. وبالتالي، يمكن للعقد الانضمام والمغادرة من جانب واحد دون الحاجة إلى بروتوكول "عرض التغيير" لتنسيق العضوية. 3.1 الاتفاقية البيزنطية الفيدرالية تتكون مشكلة الاتفاقية البيزنطية التقليدية من أ نظام مغلق من العقد N، وبعضها معيب وربما التصرف بشكل تعسفي. تتلقى العقد قيم الإدخال والتبادل الرسائل لتحديد قيمة الإخراج بين المدخلات. يكون بروتوكول الاتفاقية البيزنطية آمنًا عندما لا تنتج عقدتان جيدتا التصرف قرارات مختلفة وفريدة من نوعها كان القرار مدخلاً صالحًا (بالنسبة لبعض التعريفات الصالحة المتفق عليهاSOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. عليه مسبقًا). يكون البروتوكول حيًا عندما يضمن ذلك كل عقدة صادقة تنتج في النهاية قرارًا. عادةً، تفترض البروتوكولات N = 3f + 1 لبعض الأعداد الصحيحة f > 0، ثم ضمان السلامة وشكل من أشكال الحيوية طالما أن معظم العقد f معيبة. في مرحلة ما في هذه البروتوكولات، والعقد تصوت على القيم المقترحة والاقتراح الحصول على 2f + 1 صوت، وهو ما يسمى نصاب الأصوات، يصبح القرار. مع N = 3f + 1 العقد، أي نصابين من يتداخل الحجم 2f + 1 في العقد f + 1 على الأقل؛ حتى لو و من هذه العقد المتداخلة معيبة، ويشترك النصابان على الأقل عقدة واحدة غير معيبة، مما يمنع اتخاذ قرارات متناقضة. ومع ذلك، فإن هذا النهج لا يعمل إلا إذا اتفقت جميع العقد ما يشكل النصاب القانوني، وهو أمر مستحيل في SCP حيث قد لا تعرف العقدتان وجود بعضهما البعض. مع SCP، كل عقدة v تعلن من جانب واحد عن مجموعات من العقد، تسمى شرائح النصاب القانوني، بحيث (أ) v يعتقد أنه إذا كان كل شيء إذن، يتفق أعضاء الشريحة على حالة النظام إنهم على حق، و(ب) v يعتقد أن شريحة واحدة على الأقل من شرائحه سيكون متاحًا لتقديم المعلومات في الوقت المناسب حول حالة النظام. نحن نسمي النظام الناتج، يتكون العقد وشرائحها، اتفاقية بيزنطية موحدة نظام (FBA). وكما سنرى بعد ذلك، يظهر نظام النصاب القانوني من شرائح العقد. بشكل غير رسمي، تعبر شرائح عقدة FBA عن من معه العقدة تتطلب الاتفاق. على سبيل المثال، قد تتطلب العقدة اتفاقًا مع 4 مؤسسات محددة، تدير كل منها 3 عقد؛ ل لاستيعاب وقت التوقف عن العمل، فقد يقوم بتعيين شرائحه لتكون جميع المجموعات تتكون من عقدتين من كل منظمة. إذا كان هذا "يتطلب الاتفاق مع "العلاقة ترتبط بشكل متعدٍ بأي عقدتين، نحصل على اتفاق عالمي. وإلا فإننا قد نحصل على الاختلاف، ولكن فقط بين المنظمات لا يتطلب أي منهما الاتفاق مع الآخر. بالنظر إلى طوبولوجيا اليوم في النظام المالي، فإننا نفترض أن التقارب واسع النطاق سوف يستمر في إنتاج سجل تاريخي واحد يسميه الناس "شبكة Stellar"، بقدر ما نتحدث عن الإنترنت. النصاب القانوني ينشأ من الشرائح على النحو التالي. تحدد كل عقدة شرائح النصاب القانوني في كل رسالة يرسلها. دع S يكون مجموعة العقد التي نشأت منها مجموعة من الرسائل. أ تعتبر العقدة أن مجموعة الرسائل قد وصلت إلى النصاب القانوني العتبة عندما يكون لدى كل عضو في S شريحة مضمنة في S. من خلال البناء، فإن مثل هذه المجموعة S، إذا تم الإجماع عليها، تلبي متطلبات الاتفاق لكل عضو من أعضائها. قد يعلن النظير المعيب عن شرائح تم تصميمها لتغيير ما العقد حسنة التصرف تأخذ في الاعتبار النصاب القانوني. من أجل تحليل البروتوكول، حددنا النصاب القانوني في FBA ليكون غير فارغ مجموعة S من العقد تشمل شريحة نصاب واحدة على الأقل كل عضو غير معيب. وهذا التجريد سليم، كأي مجموعة من الرسائل التي يزعم أنها تمثل النصاب القانوني بالإجماع في الواقع (حتى لو كان يحتوي على رسائل من عقد معيبة)، ويكون دقيقًا عندما يحتوي S على العقد جيدة التصرف فقط. في في هذا القسم، نفترض أيضًا أن شرائح العقد لا تتغير. ومع ذلك، فإن نتائجنا تنتقل إلى حالة الشريحة المتغيرة لأن النظام الذي يتم فيه تغيير الشرائح لا يقل أمانًا عن نظام شريحة ثابتة تتكون فيه شرائح العقدة من جميع الشرائح التي تستخدمها على الإطلاق في حالة الشرائح المتغيرة (انظر النظرية 13 في [68]). كما هو موضح في القسم 4، تعتمد الحيوية على العقد حسنة التصرف تقوم في النهاية بإزالة العقد غير الموثوقة من شرائحهم. نظرًا لأن العقد المختلفة لها متطلبات اتفاقية مختلفة، فإن FBA يمنع تعريفًا عالميًا للسلامة. نحن نقول تتشابك العقد غير المعيبة v1 وv2 عند كل منهما يتقاطع نصاب v1 مع كل نصاب v2 في واحد على الأقل عقدة غير معيبة. يمكن لبروتوكول FBA ضمان الاتفاق فقط بين العقد المتشابكة؛ منذ SCP يفعل ذلك، خطأه التسامح من أجل السلامة هو الأمثل. فرضية الإنترنت ينص تصميم Stellar الأساسي على أن العقد تهتم بالأشخاص حول سوف تكون متشابكة. نقول إن مجموعة العقد I سليمة إذا كنت نصابًا غير معيب بشكل موحد بحيث يتشابك كل عضوين من I حتى لو كانت كل عقدة خارج I معيبة. بشكل حدسي، إذن، يجب أن أبقى منيعًا أمام تصرفات غير سليمة العقد. يضمن SCP كلاً من الحيوية غير المحظورة [93] و السلامة لمجموعات سليمة، على الرغم من أن العقد نفسها لا تحتاج إليها لمعرفة (وقد لا تكون قادرًا على معرفة) المجموعات السليمة. علاوة على ذلك، فإن اتحاد مجموعتين سليمتين متقاطعتين هو مجموعة سليمة. لذلك، تحدد المجموعات السليمة قسمًا من ملف العقد حسنة التصرف، حيث يكون كل قسم آمنًا وحيويًا (في ظل بعض الشروط)، ولكن قد يتم إخراج أقسام مختلفة قرارات متباينة. 3.1.1 اعتبارات السلامة مقابل الحياة في FBA مع استثناءات محدودة [64]، يتم ضبط معظم بروتوكولات الاتفاقية البيزنطية المغلقة على نقطة التوازن التي عندها السلامة والحيوية لهما نفس التسامح مع الخطأ. في فبا، وهذا يعني التكوينات التي، بغض النظر عن الفشل، كل شيء المجموعات المتشابكة سليمة أيضًا. بالنظر إلى أن FBA يحدد النصاب القانوني بطريقة لا مركزية، فمن غير المرجح أن تؤدي اختيارات الشرائح الفردية إلى هذا التوازن. علاوة على ذلك، في على الأقل في Stellar، التوازن غير مرغوب فيه: العواقب من فشل السلامة (أي الأموال الرقمية التي تم إنفاقها بشكل مزدوج). أسوأ بكثير من فشل الحياة (أي التأخير في الدفعات التي استغرقت على أي حال أيامًا قبل Stellar). الناس ولذلك ينبغي القيام بتحديد شرائح النصاب القانوني الكبيرة من هذا القبيل من المرجح أن تظل عقدها متشابكة أكثر من كونها سليمة. علاوة على ذلك، يصبح التعافي منه أسهل إخفاقات الحيوية النموذجية في نظام FBA مقارنةً بالنظام التقليدي المغلق. في الأنظمة المغلقة، يجب أن تكون كافة الرسائل يتم تفسيرها فيما يتعلق بنفس مجموعة النصاب القانوني. وبالتالي، يتطلب إضافة العقد وإزالتها للتعافي من الفشل التوصل إلى إجماع حول حدث إعادة التشكيل، وهو أمر صعب بمجرد انتهاء الإجماع. على النقيض من ذلك، مع FBA، يمكن لأي عقدة ضبط شرائح النصاب القانوني الخاصة بها من جانب واحد في أي وقت الوقت. ردا على انقطاع التيار الكهربائي في أهمية نظامية المؤسسة، يمكن لمسؤولي العقدة ضبط الشرائح الخاصة بهم وفقًا لذلك التغلب على المشكلة، يشبه إلى حد ما تنسيق الاستجابات لكوارث BGP [63] (على الرغم من عدم وجود قيود التوجيه عبر روابط الشبكة الفعلية).

مدفوعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا 3.1.2 نظرية التتالي يتبع SCP قالب النموذج الدائري الأساسي [42]؛ تتقدم العقد من خلال سلسلة من بطاقات الاقتراع المرقمة، لكل منها محاولة القيام بثلاث مهام: (1) تحديد قيمة "آمنة" لا تتعارض مع أي قرار تم اتخاذه في الاقتراع السابق (يُطلق عليه غالبًا إعداد الاقتراع)، (2) الاتفاق على القيمة الآمنة، و (3) اكتشاف أن الاتفاق كان ناجحًا. ومع ذلك، FBA مفتوح العضوية تحبط العديد من التقنيات الشائعة، مما يجعلها من المستحيل "نقل" البروتوكولات التقليدية المغلقة إلى FBA النموذج ببساطة عن طريق تغيير تعريف النصاب القانوني. إحدى التقنيات المستخدمة في العديد من البروتوكولات هي التدوير من خلال العقد الرائدة بطريقة دائرية بعد انتهاء المهلات. في النظام المغلق، يتم ضمان اختيار القائد بشكل دائري في نهاية المطاف، ينتهي الأمر بالقائد الصادق الفريد إلى تنسيق الاتفاق على قيمة واحدة. لسوء الحظ، جولة روبن لا يمكن العمل في نظام FBA بعضوية غير معروفة. أسلوب شائع آخر يفشل مع FBA هو افتراض أن نصابًا معينًا يمكنه إقناع جميع العقد. على سبيل المثال، إذا تعرف الجميع على أي عقد 2f + 1 كنصاب قانوني، إذن تكفي توقيعات 2f + 1 لإثبات حالة البروتوكول لجميع العقد. وبالمثل، إذا تلقت العقدة نصابًا من الرسائل المتطابقة من خلال البث الموثوق [24]، يمكن للعقدة أن تفترض أن جميع العقد غير الخاطئة سوف تشهد أيضًا النصاب القانوني. في FBA، على النقيض من ذلك، أ النصاب القانوني لا يعني شيئا للعقد خارج النصاب القانوني. وأخيرا، غالبا ما تستخدم الأنظمة غير الفيدرالية "الرجعية" التفكير في السلامة: إذا كانت العقد f + 1 معيبة، فكل الأمان فقدت الضمانات. وبالتالي، إذا سمعت العقدة v جميع العقد f + 1 اذكر بعض الحقائق F، v يمكن أن تفترض أن واحدًا على الأقل هو الذي يخبر الحقيقة (وبالتالي F صحيحة) دون فقدان الأمان. مثل هذا يفشل المنطق في FBA لأن السلامة هي خاصية للأزواج من العقد، لذلك يمكن للعقدة التي فقدت الأمان لبعض أقرانها تفقد الأمان دائمًا لمزيد من العقد من خلال افتراض حقائق سيئة. ومع ذلك، يمكن لـ FBA التفكير بشكل عكسي فيما يتعلق بالحيوية. حدد مجموعة v-blocking كمجموعة من العقد التي تتقاطع مع كل منها شريحة v. إذا كانت مجموعة حجب v B معيبة بالإجماع، فإن B يمكن رفض العقدة ضد النصاب القانوني وتكلفتها الحيوية. وبالتالي، إذا ينص B بالإجماع على الحقيقة F، ثم يعرف v أن أيًا من F هو صحيح أو v ليس سليما. ومع ذلك، لا يزال v بحاجة لرؤية كامل النصاب القانوني لمعرفة أن العقد المتشابكة لن تتعارض مع F، مما يؤدي إلى الجولة النهائية من الاتصالات في SCP و بروتوكولات FBA الأخرى [47] غير المطلوبة في الأنظمة المشابهة بروتوكولات العضوية المغلقة. والنتيجة هي أن لدينا ثلاثة مستويات محتملة من الثقة في الحقائق المحتملة: غير محددة، وآمنة للافتراض بين العقد السليمة (وهو ما سنفعله). مصطلح حقائق مقبولة)، وآمن الافتراض فيما بينها العقد (والتي سنسميها حقائق مؤكدة). يمكن للعقدة v تحديد ما إذا كانت المجموعة B محظورة بكفاءة عن طريق التحقق مما إذا كانت B تتقاطع مع جميع شرائحها. ومن المثير للاهتمام أنه إذا كانت العقد تعلن دائمًا عن البيانات فإنها قبول والنصاب القانوني الكامل لقبول بيان، فإنه يطلق عملية متتالية يتم من خلالها نشر البيانات في جميع أنحاء مجموعات سليمة. نحن نسمي الحقيقة الأساسية الكامنة وراء هذا الانتشار النظرية المتتالية، التي تنص على ما يلي: إذا كنت مجموعة سليمة، Q هو النصاب القانوني لأي عضو في I، وS هو أي مجموعة شاملة من Q، ثم إما S ⊇I أو هناك عضو v ∈I بحيث يكون v < S و I ∩S بمثابة حجب v. حدسيًا، كان هذا ليس الأمر كذلك، فإن تكملة S سوف تحتوي على النصاب القانوني الذي يتقاطع مع I وليس Q، مما ينتهك تقاطع النصاب القانوني. لاحظ أنه إذا بدأنا بـ S = Q وقمنا بتوسيع S بشكل متكرر إلى بتضمين جميع العقد التي يحظرها، نحصل على تأثير متتالي حتى، في النهاية، S يشمل كل I. 3.2 وصف البروتوكول SCP هو بروتوكول إجماع متزامن جزئيًا [42] يتكون من سلسلة من المحاولات للوصول إلى إجماع يسمى بطاقات الاقتراع. تستخدم بطاقات الاقتراع فترات زمنية أطول. أ يضمن بروتوكول مزامنة الاقتراع بقاء العقد قائمة نفس الاقتراع لفترات زمنية متزايدة حتى الاقتراع متزامنة بشكل فعال. الإنهاء غير مضمون حتى تصبح بطاقات الاقتراع متزامنة، ولكن ورقتين متزامنتين وهو ما يفعله الأعضاء المعيبون في شرائح العقد حسنة التصرف عدم التدخل كافية لإنهاء SCP. ويحدد بروتوكول الاقتراع الإجراءات المتخذة خلال كل منها الاقتراع. يبدأ الاقتراع بمرحلة إعداد، حيث يتم تحديد العقد محاولة تحديد قيمة لاقتراح لا يتعارض أي قرار سابق. ثم، في مرحلة الالتزام، تحاول العقد لاتخاذ قرار بشأن القيمة المعدة. يستخدم الاقتراع بروتوكولًا فرعيًا للاتفاق يسمى التصويت الفيدرالي، أيn التي العقد تصوت على البيانات المجردة والتي قد يتم تأكيدها في النهاية أو تتعثر. قد يتم تصنيف بعض العبارات على أنها متناقضة، والسلامة ضمان التصويت الفيدرالي هو عدم وجود عضوين في أي عضو مجموعة متشابكة تؤكد تصريحات متناقضة. ولا يضمن تأكيد القول إلا سليما تعيين الذي يصوت جميع أعضائه بنفس الطريقة. ومع ذلك، إذا كان أ عضو في مجموعة سليمة يؤكد بيانًا متحدًا يضمن التصويت أن جميع أعضاء المجموعة السليمة يؤكدون هذا البيان في النهاية. وبالتالي اتخاذ خطوات لا رجعة فيها ردا على تأكيد التصريحات يحفظ الحيوية ل العقد سليمة. تقترح العقد في البداية القيم التي تم الحصول عليها من الترشيح البروتوكول الذي يزيد من فرص جميع الأعضاء سليمة مجموعة تقترح نفس القيمة، والتي تتقارب في نهاية المطاف (على الرغم من عدم وجود طريقة لتحديد التقارب الكامل). يجمع الترشيح بين التصويت الفيدرالي واختيار القائد. لأن جولة روبن مستحيلة في FBA، يستخدم الترشيح مخطط احتمالي لاختيار القائد. تلعب نظرية التعاقب دورًا حاسمًا في الاقتراع المزامنة وتجنب الحالات المحظورة منها الإنهاء لم يعد ممكنا. 3.2.1 الاقتراع تستمر عقد SCP عبر سلسلة من بطاقات الاقتراع المرقمة، باستخدام التصويت الفيدرالي للاتفاق على البيانات المتعلقة بها يتم أو لا يتم تحديد القيم في أي بطاقة اقتراع. إذا كان غير متزامن أو السلوك الخاطئ يمنع التوصل إلى قرار في الاقتراع ن، انتهت مهلة العقد وحاول مرة أخرى في الاقتراع n + 1.

SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. تذكر أن التصويت الفيدرالي قد لا ينتهي. وبالتالي بعض يمكن أن تتعثر البيانات المتعلقة بأوراق الاقتراع بشكل دائم حالة غير محددة حيث لا يمكن للعقد أبدًا تحديد ما إذا كانت لا تزال في التقدم أو عالقة. لأن العقد لا يمكن استبعادها إمكانية إثبات صحة البيانات غير المحددة لاحقًا، ويجب عليهم ألا يحاولوا أبدًا التصويت الفيدرالي على البيانات الجديدة يتعارض مع غير المحدد. في كل اقتراع n، تستخدم العقد التصويت الفيدرالي على نوعين من البيان: • تحضير ⟨n,x⟩– ينص على عدم وجود قيمة أخرى غير x تم أو سيتم تحديده في أي اقتراع. • الالتزام ⟨n,x⟩– الدول x يتم تحديدها في الاقتراع n. الأهم من ذلك، لاحظ أن تحضير ⟨n,x⟩تناقضات الالتزام ⟨n',x ′⟩عندما n ≥n' و x , x ′. تبدأ العقدة الاقتراع n من خلال محاولة التصويت الفيدرالي على a بيان تحضير ⟨n,x⟩. إذا كان هناك أي بيان إعداد سابق تم تأكيده بنجاح من خلال التصويت الفيدرالي تختار العقدة x من الإعداد المؤكد لأعلى بطاقة اقتراع. وبخلاف ذلك، تقوم العقدة بتعيين x إلى إخراج الملف بروتوكول الترشيح الموضح في القسم الفرعي التالي. إذا وفقط إذا أكدت العقدة بنجاح التحضير ⟨n,x⟩ في الاقتراع n، يحاول التصويت الفيدرالي على الالتزام ⟨n,x⟩. إذا إذا نجح، فهذا يعني أن SCP قد قرر، وبالتالي يتم إخراج العقدة القيمة من بيان الالتزام المؤكد. النظر في مجموعة متشابكة S. منذ قيمة واحدة على الأكثر يمكن تأكيد إعدادها من قبل أعضاء S في اقتراع معين، ولا يجوز تأكيد الالتزام بقيمتين مختلفتين أعضاء S في اقتراع معين. علاوة على ذلك، إذا ارتكبت ⟨n,x⟩ تم تأكيده، ثم تم تأكيد إعداد ⟨n,x⟩ أيضًا؛ منذ ذلك الحين يعد ⟨n,x⟩يناقض أي التزام سابق بقيمة مختلفة، بموجب اتفاقية ضمانات التصويت الفيدرالي لقد حصلنا على أنه لا يمكن تحديد قيمة مختلفة في وقت سابق الاقتراع من قبل أعضاء S. عن طريق التعريف بأرقام الاقتراع، نحن لذا تأكد من أن SCP آمن. من أجل الحيوية، فكر في مجموعة سليمة وطويلة بما فيه الكفاية اقتراع متزامن إذا ظهرت العقد الخاطئة في الشرائح من العقد حسنة التصرف لا تتدخل في ن، ثم عن طريق الاقتراع n + 1 جميع أعضاء لقد أكدوا نفس المجموعة P من بيانات الإعداد. إذا كانت P = ∅وبطاقة الاقتراع n طويلة بما فيه الكفاية، فإن سيكون بروتوكول الترشيح قد تقارب على بعض القيمة x. بخلاف ذلك، اجعل x هي القيمة من الإعداد بأعلى ورقة اقتراع في P. وفي كلتا الحالتين، سأحاول بشكل موحد التصويت على إعداد ⟨n + 1,x⟩ في الاقتراع التالي. لذلك، إذا n + 1 متزامن أيضًا، ويتبع ذلك حتماً قرار x. 3.2.2 الترشيح يستلزم الترشيح التصويت الموحد على البيانات: • ترشيح x - الدول x هي مرشح صالح للقرار. قد تصوت العقد لترشيح قيم متعددة — مختلفة تصريحات الترشيح ليست متناقضة. ومع ذلك، مرة واحدة تؤكد العقدة أي بيان ترشيح، وتتوقف عن التصويت عليه ترشيح قيم جديدة. لا يزال التصويت الفيدرالي يسمح للعقدة بذلك تأكيد بيانات الترشيح الجديدة التي لم تصوت لها التصويت أو القبول أ من النصاب القانوني قبول أ من النصاب القانوني أ صالح قبول من مجموعة الحظر غير ملتزم صوت أ قبلت أ أكد أ تم التصويت بـ أ الشكل 1. مراحل التصويت الفيدرالي يسمح لأعضاء مجموعة سليمة بتأكيد مجموعة بعضهم البعض القيم المرشحة مع الاستمرار في حجب الأصوات الجديدة. النتيجة (المتطورة) للترشيح هي مزيج حتمي من جميع القيم في بيانات الترشيح المؤكدة. إذا يمثل x مجموعة من المعاملات، ويمكن للعقد أن تأخذ الاتحاد من المجموعات، المجموعة الأكبر، أو المجموعة ذات أعلى hash، لذا طالما أن جميع العقد تفعل الشيء نفسه. لأن العقد حجب جديدة الأصوات بعد تأكيد بيان ترشيح واحد، مجموعة يمكن أن تحتوي البيانات المؤكدة على عدد محدود من القيم فقط. حقيقة أن التصريحات المؤكدة انتشرت بشكل موثوق من خلال المجموعات السليمة تعني أن العقد السليمة تتقارب في النهاية على نفس مجموعة القيم المرشحة وبالتالي نتيجة الترشيح، وإن كان عند نقطة غير معروفة بشكل تعسفي في وقت متأخر من البروتوكول. تستخدم العقد اختيار القائد المتحد لتقليل عدد القيم المختلفة في بيانات الترشيح. فقط يجوز للقائد الذي لم يصوت بالفعل لصالح بيان الترشيح أن يقدم علامة x جديدة. العقد الأخرى تنتظر أن تسمع منها القادة ويقومون فقط بنسخ أصوات ترشيح قادتهم (الصالحة). لاستيعاب الفشل، تستمر مجموعة القادة في النمو تحدث المهلات، على الرغم من أن عددًا قليلاً فقط من العقد تقدم قيمًا جديدة لـ x. 3.2.3 التصويت الفيدرالي يستخدم التصويت الفيدرالي بروتوكولًا ثلاثي المراحل كما هو موضح في الشكل 1. تحاول العقد الاتفاق على البيانات المجردة أولاً التصويت، ثم القبول، وأخيراً تأكيد البيانات. قد تصوت العقدة v لأي بيان صالح لا ينطبق عليه ذلك يناقض غيرهالأصوات المتميزة والبيانات المقبولة. ويتم ذلك عن طريق بث رسالة تصويت موقعة. v ثم يقبل a إذا كان a متوافقًا مع البيانات المقبولة الأخرى وإما (الحالة 1)v هو عضو في النصاب القانوني الذي كل عقدة إما تصوت لـ أو تقبل أو (الحالة 2) حتى لو كانت v لم أصوت لصالح مجموعة v-blocking تقبل a. في الحالة 2، قد سبق أن أدلوا بأصوات تتعارض مع ما حدث الآن تم نقضها. v يُسمح له بنسيان الأصوات الملغاة ويتظاهر بأنه لم يلقيهم أبدًا لأنه إذا كان سليمًا، فهو يعلم لا يمكن للأصوات الملغاة إكمال النصاب القانوني من خلال الحالة 1. v يبث أنه يقبل a، ثم يؤكد a عندما يكون موجودًا نصاب يقبل بالإجماع أ. ويبين الشكل 2 تأثير مجموعات الحجب v ونظرية التتالي خلال التصويت الفيدرالي. لا يمكن لعقدتين متشابكتين تأكيد البيانات المتناقضة، حيث يجب أن يتشارك النصابان المطلوبان في أمدفوعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا 3 4 2 1 5 7

Stellar giao thức đồng thuận

Giao thức đồng thuận Stellar (SCP) là giao thức dựa trên đại biểu Giao thức thỏa thuận Byzantine với tư cách thành viên mở. Số đại biểu xuất hiện từ các quyết định cấu hình cục bộ kết hợp của các nút riêng lẻ. Tuy nhiên, các nút chỉ nhận ra số đại biểu mà họ thuộc về, và chỉ sau khi tìm hiểu cấu hình cục bộ của tất cả các thành viên trong nhóm túc số khác. Một lợi ích của phương pháp này là SCP vốn đã chấp nhận các quan điểm không đồng nhất về những nút nào tồn tại. Do đó, các nút có thể tham gia và rời đi một cách đơn phương mà không cần Giao thức "xem thay đổi" để điều phối thành viên. 3.1 Thỏa thuận Byzantine liên bang Bài toán thỏa thuận Byzantine truyền thống bao gồm một hệ thống khép kín gồm N nút, một số trong đó bị lỗi và có thể hành xử tùy tiện. Các nút nhận giá trị đầu vào và trao đổi thông báo để quyết định giá trị đầu ra trong số các đầu vào. Giao thức thỏa thuận Byzantine là an toàn khi không có hai nút hoạt động tốt nào đưa ra các quyết định khác nhau và địa chỉ duy nhất quyết định là một đầu vào hợp lệ (đối với một số định nghĩa về thỏa thuận hợp lệSOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. trước đó). Một giao thức hoạt động khi nó đảm bảo rằng mọi nút trung thực cuối cùng đều đưa ra quyết định. Thông thường, các giao thức giả định N = 3f + 1 đối với một số nguyên f > 0 thì đảm bảo an toàn và một dạng sống động nào đó miễn là nhiều nhất f nút bị lỗi. Ở một giai đoạn nào đó trong số này giao thức, các nút bỏ phiếu cho các giá trị được đề xuất và một đề xuất nhận được 2f + 1 phiếu bầu, gọi là số phiếu đại biểu, trở thành quyết định. Với N = 3f + 1 nút, hai số đại biểu bất kỳ của kích thước 2f + 1 chồng lên nhau ở ít nhất các nút f + 1; ngay cả khi f trong số này các nút chồng chéo bị lỗi thì ít nhất hai đại biểu chia sẻ một nút không bị lỗi, ngăn chặn các quyết định trái ngược nhau. Tuy nhiên, cách tiếp cận này chỉ hoạt động nếu tất cả các nút đồng ý những gì tạo nên số đại biểu, điều này là không thể trong SCP khi hai nút thậm chí có thể không biết đến sự tồn tại của nhau. Với SCP, mỗi nút v đơn phương khai báo các tập hợp nút, được gọi là các lát đại biểu của nó, sao cho (a) v tin rằng nếu tất cả các thành viên của một lát đồng ý về trạng thái của hệ thống, sau đó họ đúng, và (b) v tin rằng ít nhất một trong các lát cắt của nó sẵn sàng cung cấp thông tin kịp thời về trạng thái của hệ thống. Chúng tôi gọi hệ thống kết quả, bao gồm của các nút và các lát cắt của chúng, một Thỏa thuận Byzantine Liên bang (FBA) hệ thống. Như chúng ta sẽ thấy tiếp theo, một hệ thống đại biểu xuất hiện từ các lát cắt của nút. Một cách không chính thức, các lát cắt của nút FBA thể hiện ai nút yêu cầu sự đồng ý. Ví dụ: một nút có thể yêu cầu thỏa thuận với 4 tổ chức cụ thể, mỗi tổ chức điều hành 3 nút; để để phù hợp với thời gian ngừng hoạt động, nó có thể đặt các lát cắt của nó thành tất cả các bộ bao gồm 2 nút từ mỗi tổ chức. Nếu điều này “yêu cầu thỏa thuận với” mối quan hệ liên kết bắc cầu với hai nút bất kỳ, chúng tôi có được thỏa thuận toàn cầu. Ngược lại, chúng ta có thể có được sự phân kỳ, mà chỉ giữa các tổ chức không yêu cầu thỏa thuận với người kia. Với cấu trúc liên kết ngày nay thống tài chính, chúng tôi đưa ra giả thuyết rằng sự hội tụ rộng rãi sẽ tiếp tục tạo ra một lịch sử sổ cái duy nhất mà mọi người gọi là “mạng Stellar,” giống như cách chúng ta nói về Internet. Số đại biểu phát sinh từ các lát cắt như sau. Mỗi nút chỉ định số đại biểu của nó bị cắt trong mỗi tin nhắn nó gửi. Gọi S là tập hợp các nút mà từ đó một tập hợp các thông điệp bắt nguồn. A nút coi tập hợp các tin nhắn đã đạt đến số đại biểu ngưỡng khi mọi thành viên của S đều có một lát nằm trong S. Bằng cách xây dựng, tập S như vậy, nếu nhất trí, thỏa mãn điều kiện yêu cầu thoả thuận của mỗi thành viên. Một thiết bị ngang hàng bị lỗi có thể quảng cáo các lát cắt được tạo ra để thay đổi những gì các nút hoạt động tốt sẽ xem xét số đại biểu. Vì mục đích phân tích giao thức, chúng tôi xác định số đại biểu trong FBA là không trống tập S gồm các nút bao gồm ít nhất một lát đại biểu của từng thành viên không có lỗi. Sự trừu tượng này là âm thanh, như bất kỳ tập hợp nào của các thông điệp có ý đại diện cho một số đại biểu nhất trí thực sự có (ngay cả khi nó chứa thông báo từ các nút bị lỗi), và nó chính xác khi S chỉ chứa các nút hoạt động tốt. trong phần này, chúng tôi cũng giả định rằng các lát cắt của nút không thay đổi. Tuy nhiên, kết quả của chúng tôi chuyển sang trường hợp lát cắt thay đổi bởi vì một hệ thống trong đó các lát thay đổi không kém an toàn hơn một hệ thống lát cắt cố định trong đó các lát cắt của nút bao gồm tất cả các các lát cắt mà nó từng sử dụng trong trường hợp các lát cắt thay đổi (xem Định lý 13 trong [68]). Như đã giải thích ở Phần 4, tính sống động phụ thuộc vào các nút hoạt động tốt cuối cùng sẽ loại bỏ các nút không đáng tin cậy từ lát cắt của họ. Bởi vì các nút khác nhau có các yêu cầu thỏa thuận khác nhau nên FBA loại trừ định nghĩa toàn cầu về an toàn. Chúng tôi nói các nút không bị lỗi v1 và v2 được đan xen khi mỗi nút số đại biểu của v1 cắt mọi số đại biểu của v2 tại ít nhất một nút không bị lỗi. Một giao thức FBA có thể đảm bảo sự đồng thuận chỉ giữa các nút đan xen; vì SCP làm như vậy nên lỗi của nó dung sai cho sự an toàn là tối ưu. Giả thuyết về Internet thiết kế cơ bản của Stellar, nêu rõ rằng các nút mà mọi người quan tâm về sẽ được đan xen. Chúng ta nói một tập hợp các nút I còn nguyên vẹn nếu I là một đại biểu không bị lỗi thống nhất sao cho mỗi hai thành viên của I đều gắn bó với nhau ngay cả khi mọi nút bên ngoài I đều bị lỗi. Một cách trực quan, thì tôi nên tránh xa những hành động không còn nguyên vẹn nút. SCP đảm bảo cả tính sống động không bị chặn [93] và an toàn cho các tập hợp nguyên vẹn, mặc dù bản thân các nút không cần để biết (và có thể không biết) bộ nào còn nguyên vẹn. Hơn nữa, hợp của hai tập hợp nguyên vẹn giao nhau là một bộ còn nguyên vẹn. Do đó, các bộ nguyên vẹn xác định một phân vùng của các nút hoạt động tốt, trong đó mỗi phân vùng đều an toàn và hoạt động (trong một số điều kiện), nhưng các phân vùng khác nhau có thể xuất ra những quyết định khác nhau. 3.1.1 Cân nhắc về an toàn và tính sống động trong FBA Với các ngoại lệ hạn chế [64], hầu hết các giao thức thỏa thuận Byzantine đóng đều được điều chỉnh đến điểm cân bằng tại đó sự an toàn và sự sống động có khả năng chịu lỗi như nhau. Trong FBA, điều đó có nghĩa là các cấu hình trong đó, bất kể lỗi, tất cả các bộ đan xen cũng còn nguyên vẹn. Cho rằng FBA xác định số đại biểu theo cách phi tập trung, khó có khả năng các lựa chọn lát cắt riêng lẻ sẽ dẫn đến trạng thái cân bằng này. Hơn nữa, tại ít nhất là trong Stellar, trạng thái cân bằng là không mong muốn: hậu quả về lỗi an toàn (cụ thể là tiền kỹ thuật số được chi tiêu hai lần) là tệ hơn nhiều so với những trường hợp hỏng hóc về khả năng hoạt động (cụ thể là sự chậm trễ trong các khoản thanh toán dù sao cũng phải mất vài ngày trước Stellar). mọi người do đó nên và nên chọn các lát đại biểu lớn sao cho các nút của chúng có nhiều khả năng vẫn gắn liền với nhau hơn là nguyên vẹn. Nghiêng hơn nữa, việc phục hồi sau đó sẽ dễ dàng hơn các lỗi hoạt động điển hình trong hệ thống FBA so với hệ thống đóng truyền thống. Trong các hệ thống đóng, tất cả các thông điệp phải được được giải thích đối với cùng một tập hợp các đại biểu. Do đó, việc thêm và xóa các nút để phục hồi sau lỗi yêu cầu đạt được sự đồng thuận về một sự kiện cấu hình lại, điều này rất khó khăn khi sự đồng thuận không còn tồn tại. Ngược lại, với FBA, bất kỳ nút nào cũng có thể đơn phương điều chỉnh các lát cắt đại biểu của nó bất kỳ lúc nào thời gian. Để ứng phó với sự cố mất điện tại một điểm quan trọng mang tính hệ thống tổ chức, quản trị viên nút có thể điều chỉnh các lát cắt của họ để giải quyết vấn đề, hơi giống như điều phối các phản ứng tới thảm họa BGP [63] (mặc dù không có ràng buộc về định tuyến qua các liên kết mạng vật lý).

Thanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada 3.1.2 Định lý tầng SCP tuân theo khuôn mẫu của mô hình tròn cơ bản [42]; các nút tiến triển thông qua một loạt các phiếu bầu được đánh số, mỗi nút cố gắng thực hiện ba nhiệm vụ: (1) xác định giá trị “an toàn” không mâu thuẫn với bất kỳ quyết định nào trong cuộc bỏ phiếu trước đó (thường được gọi là chuẩn bị phiếu), (2) thống nhất về giá trị an toàn, và (3) phát hiện thỏa thuận đã thành công. Tuy nhiên, FBA mở cửa tư cách thành viên cản trở một số kỹ thuật phổ biến, khiến nó không thể “chuyển” các giao thức đóng truyền thống sang FBA mô hình bằng cách thay đổi định nghĩa về số đại biểu. Một kỹ thuật được nhiều giao thức sử dụng là xoay vòng thông qua các nút dẫn đầu theo kiểu quay vòng sau khi hết thời gian chờ. Trong một hệ thống khép kín, việc lựa chọn người lãnh đạo theo vòng tròn đảm bảo rằng cuối cùng một nhà lãnh đạo trung thực duy nhất sẽ đạt được thỏa thuận điều phối về một giá trị duy nhất. Thật không may, vòng tròn không thể hoạt động trong hệ thống FBA với tư cách thành viên không xác định. Một kỹ thuật phổ biến khác không thành công với FBA là giả sử một số đại biểu cụ thể có thể thuyết phục được tất cả các nút. Ví dụ, nếu mọi người nhận ra bất kỳ nút 2f + 1 nào là số đại biểu thì Chữ ký 2f + 1 đủ để chứng minh trạng thái giao thức cho tất cả các nút. Tương tự, nếu một nút nhận được số lượng tin nhắn giống hệt nhau thông qua chương trình phát sóng đáng tin cậy [24], nút có thể cho rằng tất cả các nút không bị lỗi cũng sẽ thấy số đại biểu. Ngược lại, trong FBA, một đại biểu không có ý nghĩa gì đối với các nút bên ngoài đại biểu. Cuối cùng, các hệ thống không liên kết thường sử dụng “ngược” lý luận về an toàn: nếu nút f + 1 bị lỗi, tất cả đều an toàn bảo lãnh bị mất. Do đó, nếu nút v nghe thấy tất cả các nút f + 1 nêu một sự thật nào đó F, v có thể cho rằng ít nhất một người đang nói với sự thật (và do đó F đúng) mà không mất đi sự an toàn. Như vậy lý luận thất bại trong FBA vì an toàn là thuộc tính của các cặp của các nút, do đó, một nút đã mất đi sự an toàn đối với một số nút ngang hàng có thể luôn mất đi sự an toàn đối với nhiều nút hơn bằng cách giả định các sự kiện xấu. Tuy nhiên, FBA có thể lý giải ngược lại về tính sống động. Xác định tập v-blocking là tập hợp các nút giao nhau lát của v. Nếu tập chặn v B bị lỗi nhất trí, B có thể từ chối nút và số đại biểu và khiến nó mất đi sự sống động. Do đó, nếu B nhất trí nêu sự thật F, khi đó v biết rằng F là đúng hoặc v không còn nguyên vẹn. Tuy nhiên v vẫn cần xem đầy đủ đủ số đại biểu để biết rằng các nút đan xen sẽ không mâu thuẫn với F, dẫn đến vòng giao tiếp cuối cùng trong SCP và các giao thức FBA khác [47] không bắt buộc tương tự giao thức thành viên đóng. Kết quả là chúng ta có ba mức độ tin cậy có thể có đối với các sự kiện tiềm ẩn: không xác định, an toàn để giả định giữa các nút nguyên vẹn (chúng tôi sẽ thuật ngữ được chấp nhận thực tế), và an toàn để giả định giữa đan xen các nút (mà chúng tôi sẽ gọi là sự thật đã được xác nhận). Nút v có thể xác định một cách hiệu quả liệu một tập hợp B có bị vblocking hay không bằng cách kiểm tra xem B có giao nhau với tất cả các lát cắt của nó hay không. Điều thú vị là nếu các nút luôn thông báo các câu lệnh mà chúng chấp nhận và đủ số đại biểu chấp nhận một tuyên bố, nó sẽ khởi động một quá trình xếp tầng theo đó các tuyên bố được lan truyền xuyên suốt bộ còn nguyên vẹn. Chúng tôi gọi thực tế quan trọng đằng sau sự truyền bá này định lý tầng, trong đó thỏa mãn điều sau: Nếu tôi là một tập nguyên vẹn, Q là số đại biểu của bất kỳ phần tử nào của I, và S là bất kỳ tập siêu của Q thì S ⊇I hoặc có thành viên v ∈I sao cho v < S và I ∩S bị chặn v. Bằng trực giác, liệu đây có phải là không phải như vậy, phần bù của S sẽ chứa đại biểu cắt I nhưng không cắt Q, vi phạm giao điểm đại biểu. Lưu ý rằng nếu chúng ta bắt đầu với S = Q và liên tục mở rộng S thành bao gồm tất cả các nút mà nó chặn, chúng tôi có được hiệu ứng xếp tầng cho đến khi, cuối cùng, S bao gồm tất cả I. 3.2 Mô tả giao thức SCP là một giao thức đồng thuận đồng bộ một phần [42] bao gồm một loạt các nỗ lực nhằm đạt được sự đồng thuận được gọi là phiếu bầu. Phiếu bầu sử dụng thời gian chờ với thời lượng tăng dần. A giao thức đồng bộ hóa lá phiếu đảm bảo rằng các nút luôn hoạt động cùng một lá phiếu trong khoảng thời gian tăng dần cho đến khi các lá phiếu được đồng bộ một cách hiệu quả. Việc chấm dứt không được đảm bảo cho đến khi các lá phiếu được đồng bộ, nhưng có hai lá phiếu đồng bộ trong đó các thành viên bị lỗi của các lát cắt của nút hoạt động tốt không can thiệp là đủ để SCP chấm dứt. Một giao thức bỏ phiếu chỉ định các hành động được thực hiện trong mỗi lá phiếu. Một cuộc bỏ phiếu bắt đầu bằng giai đoạn chuẩn bị, trong đó các nút cố gắng xác định một giá trị để đề xuất không mâu thuẫn quyết định nào trước đó. Sau đó, trong giai đoạn cam kết, các nút sẽ thử để đưa ra quyết định về giá trị đã chuẩn bị. Việc bỏ phiếu sử dụng một giao thức con thỏa thuận được gọi là bỏ phiếu liên kết, tôin nút nào bỏ phiếu cho các câu lệnh trừu tượng điều đó cuối cùng có thể được xác nhận hoặc bị mắc kẹt. Một số tuyên bố có thể được coi là mâu thuẫn và sự an toàn đảm bảo cho việc bỏ phiếu liên bang là không có hai thành viên của một tập hợp đan xen xác nhận các tuyên bố trái ngược nhau. Việc xác nhận một tuyên bố không được đảm bảo ngoại trừ một bản còn nguyên vẹn tập hợp mà tất cả các thành viên đều bỏ phiếu theo cùng một cách. Tuy nhiên, nếu một thành viên của một tập hợp nguyên vẹn xác nhận một tuyên bố, được liên kết việc bỏ phiếu đảm bảo rằng tất cả các thành viên của tập hợp nguyên vẹn cuối cùng sẽ xác nhận tuyên bố đó. Do đó, thực hiện các bước không thể đảo ngược để đáp lại những tuyên bố xác nhận sẽ duy trì sự sống động cho các nút còn nguyên vẹn. Các nút ban đầu đề xuất các giá trị thu được từ một đề cử giao thức làm tăng cơ hội của tất cả các thành viên trong một mạng lưới nguyên vẹn tập đề xuất cùng một giá trị và cuối cùng hội tụ (mặc dù không có cách nào để xác định sự hội tụ đã hoàn tất). Đề cử kết hợp bỏ phiếu liên bang với lựa chọn người lãnh đạo. Vì FBA không thể thực hiện vòng tròn tính điểm nên việc đề cử sẽ được sử dụng một kế hoạch lựa chọn người lãnh đạo theo xác suất. Định lý xếp tầng đóng một vai trò quan trọng cả trong việc bỏ phiếu đồng bộ hóa và tránh các trạng thái bị chặn từ đó việc chấm dứt là không thể được nữa. 3.2.1 Bỏ phiếu Các nút SCP tiến hành thông qua một loạt các lá phiếu được đánh số, sử dụng biểu quyết liên đoàn để thống nhất các tuyên bố về cái nào giá trị được quyết định hay không trong lá phiếu nào. Nếu không đồng bộ hoặc hành vi sai sót ngăn cản việc đưa ra quyết định trong lá phiếu n, các nút hết thời gian chờ và thử lại trong lá phiếu n + 1.

SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. Hãy nhớ lại việc bỏ phiếu liên bang có thể không chấm dứt. Do đó, một số các tuyên bố về lá phiếu có thể bị kẹt vĩnh viễn trạng thái không xác định trong đó các nút không bao giờ có thể xác định liệu chúng có vẫn đang được tiến hành hoặc bị mắc kẹt. Bởi vì các nút không thể loại trừ khả năng những tuyên bố không xác định sau này được chứng minh là đúng, họ không bao giờ được cố gắng bỏ phiếu liên bang cho các tuyên bố mới mâu thuẫn với những cái không xác định. Trong mỗi lá phiếu n, các nút sử dụng biểu quyết liên kết trên hai loại của tuyên bố: • chuẩn bị ⟨n,x⟩– cho biết không có giá trị nào khác ngoài x đã hoặc sẽ được quyết định trong bất kỳ cuộc bỏ phiếu nào ≤n. • cam kết ⟨n,x⟩– nêu x được quyết định trong lá phiếu n. Điều quan trọng, lưu ý rằng chuẩn bị ⟨n,x⟩contradicts cam kết ⟨n′,x ′⟩khi n ≥n′ và x , x ′. Một nút bắt đầu bỏ phiếu n bằng cách thử bỏ phiếu liên bang trên một câu lệnh chuẩn bị ⟨n,x⟩. Nếu có tuyên bố chuẩn bị trước đó đã được xác nhận thành công thông qua bỏ phiếu liên đoàn, nút chọn x từ sự chuẩn bị đã được xác nhận của lá phiếu cao nhất. Mặt khác, nút đặt x thành đầu ra của thức đề cử được mô tả trong tiểu mục tiếp theo. Nếu và chỉ khi một nút xác nhận thành công, hãy chuẩn bị ⟨n,x⟩ trong lá phiếu n, nó cố gắng bỏ phiếu liên kết theo cam kết ⟨n,x⟩. Nếu thành công, điều đó có nghĩa là SCP đã quyết định, do đó nút xuất ra giá trị từ tuyên bố cam kết được xác nhận. Xét một tập S đan xen. Vì có nhiều nhất một giá trị có thể được xác nhận bởi các thành viên của S trong một lá phiếu nhất định, không được xác nhận hai giá trị khác nhau do thành viên của S trong một lá phiếu nhất định. Hơn nữa, nếu cam kết ⟨n,x⟩ được xác nhận, sau đó chuẩn bị ⟨n,x⟩cũng được xác nhận; kể từ khi chuẩn bị ⟨n,x⟩trái ngược với bất kỳ cam kết nào trước đó về một giá trị khác, bằng thỏa thuận đảm bảo về bỏ phiếu liên bang chúng tôi hiểu rằng không có giá trị khác nào có thể được quyết định sớm hơn phiếu bầu của các thành viên của S. Bằng cách quy nạp số phiếu bầu, chúng tôi do đó hãy chắc chắn rằng SCP vẫn an toàn. Để có sự sống động, hãy xem xét một tập I nguyên vẹn và đủ dài lá phiếu đồng bộ n. Nếu các nút bị lỗi xuất hiện trong các lát của các nút hoạt động tốt không can thiệp vào n, sau đó bằng cách bỏ phiếu n + 1 tất cả các thành viên của I đều đã xác nhận cùng một tập P của các câu lệnh chuẩn bị. Nếu P = ∅ và lá phiếu n đủ dài thì giao thức đề cử sẽ hội tụ về một số giá trị x. Mặt khác, đặt x là giá trị từ lượt chuẩn bị có phiếu bầu cao nhất ở P. Dù thế nào đi nữa, tôi sẽ thống nhất thử liên kết bỏ phiếu chuẩn bị ⟨n + 1,x⟩trong lần bỏ phiếu tiếp theo. Vì vậy, nếu n + 1 cũng đồng bộ nên quyết định về x tất yếu sẽ xảy ra sau đó. 3.2.2 Đề cử Đề cử đòi hỏi phải bỏ phiếu liên bang về các tuyên bố: • đề cử x – cho biết x là ứng cử viên quyết định hợp lệ. Các nút có thể bỏ phiếu để đề cử nhiều giá trị—khác nhau các tuyên bố đề cử không mâu thuẫn nhau. Tuy nhiên, một lần một nút xác nhận bất kỳ tuyên bố đề cử nào, nó sẽ dừng bỏ phiếu đề cử các giá trị mới. Bỏ phiếu liên kết vẫn cho phép một nút xác nhận các tuyên bố đề cử mới mà họ không bỏ phiếu, bỏ phiếu hoặc chấp nhận một từ đại biểu chấp nhận một từ đại biểu a là hợp lệ chấp nhận từ bộ chặn không cam kết đã bình chọn một chấp nhận một đã xác nhận một đã bình chọn -a Hình 1. Các giai đoạn bỏ phiếu liên bang cho phép các thành viên của một tập hợp nguyên vẹn xác nhận ý kiến của nhau các giá trị được đề cử trong khi vẫn giữ lại phiếu bầu mới. Kết quả (đang phát triển) của việc đề cử là sự kết hợp mang tính quyết định của tất cả các giá trị trong các tuyên bố đề cử đã được xác nhận. Nếu x đại diện cho một tập hợp các giao dịch, các nút có thể kết hợp trong số các bộ, bộ lớn nhất hoặc bộ có hash cao nhất, vì vậy miễn là tất cả các nút đều làm như vậy. Bởi vì các nút giữ lại cái mới phiếu bầu sau khi xác nhận một tuyên bố đề cử, tập hợp các các câu lệnh được xác nhận chỉ có thể chứa hữu hạn nhiều giá trị. Thực tế là các tuyên bố đã được xác nhận được lan truyền một cách đáng tin cậy thông qua tập hợp nguyên vẹn có nghĩa là các nút nguyên vẹn cuối cùng hội tụ trên cùng một tập hợp các giá trị được đề cử và do đó kết quả đề cử, mặc dù tại một điểm không xác định, tùy ý bị trễ trong giao thức. Các nút sử dụng lựa chọn lãnh đạo liên kết để giảm số lượng các giá trị khác nhau trong các câu lệnh đề cử. Chỉ một nhà lãnh đạo chưa bỏ phiếu cho tuyên bố đề cử có thể giới thiệu một x mới. Các nút khác đang chờ phản hồi từ lãnh đạo và chỉ sao chép phiếu đề cử (hợp lệ) của lãnh đạo họ. Để đối phó với thất bại, đội ngũ lãnh đạo không ngừng phát triển xảy ra thời gian chờ, mặc dù trong thực tế chỉ có một số nút đưa ra các giá trị mới của x. 3.2.3 Bỏ phiếu liên bang Bỏ phiếu liên bang sử dụng giao thức ba giai đoạn được hiển thị trong Hình 1. Các nút cố gắng thống nhất các câu lệnh trừu tượng trước tiên bỏ phiếu, sau đó chấp nhận và cuối cùng là xác nhận các tuyên bố. Nút v có thể bỏ phiếu cho bất kỳ câu lệnh a hợp lệ nào mà không mâu thuẫn với cái khác của nósố phiếu còn tồn đọng và các tuyên bố được chấp nhận. Nó làm như vậy bằng cách phát đi một tin nhắn biểu quyết đã ký. v sau đó chấp nhận a nếu a phù hợp với các phát biểu được chấp nhận khác và (trường hợp 1)v là thành viên của một đại biểu trong đó mỗi nút hoặc bỏ phiếu cho a hoặc chấp nhận a hoặc (trường hợp 2) ngay cả khi v không bỏ phiếu cho a, tập hợp chặn v chấp nhận a. Trường hợp 2, v có thể trước đây đã bỏ phiếu mâu thuẫn với a, hiện đã bỏ phiếu bị bác bỏ. v được phép quên đi những phiếu bầu bị bác bỏ và giả vờ như nó chưa bao giờ sử dụng chúng vì ifv còn nguyên vẹn, nó biết phiếu bị bác bỏ không thể hoàn thành số đại biểu thông qua trường hợp 1. v thông báo rằng nó chấp nhận a, sau đó xác nhận a khi nó ở trong số đại biểu nhất trí chấp nhận a. Hình 2 cho thấy ảnh hưởng của tập chặn v và định lý xếp tầng trong bỏ phiếu liên bang. Hai nút đan xen nhau không thể xác nhận các tuyên bố trái ngược nhau, vì hai số đại biểu bắt buộc sẽ phải chia sẻ mộtThanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada 3 4 2 1 5 7

التصويت ×

التصويت ي (أ) 3 4 2 1 5 7 6 التصويت X التصويت X التصويت X التصويت ي التصويت X التصويت ي التصويت ي (ب) 3 4 2 1 5 7 6 قبول X التصويت X قبول X التصويت ي قبول X التصويت ي التصويت ي (ج) 3 4 2 1 5 7 6 قبول X قبول X قبول X التصويت ي قبول X قبول X التصويت ي (د) 3 4 2 1 5 7 6 قبول X التصويت X قبول X قبول X قبول X قبول X قبول X (هـ) الشكل 2. تأثير تتالي في التصويت الاتحادي. تحتوي كل عقدة على شريحة نصاب واحدة يُشار إليها بأسهم لأعضاء الشريحة. (أ) تم تقديم بيانات متناقضة X وY. (ب) تصوت العقد على البيانات الصحيحة. (ج) العقدة 1 تقبل X بعد نصابها القانوني {1، 2، 3، 4} يصوتون بالإجماع لصالح X. (د) تقبل جميع العقد 1 و2 و3 و4 X؛ المجموعة {1} عبارة عن 5 حظر، لذا تقبل العقدة 5 X، مما يؤدي إلى إلغاء ذلك تصويتها السابق لصالح Y. (هـ) المجموعة {5} عبارة عن حجب 6 و7، لذا يقبل كل من 6 و7 X. عقدة غير معيبة لا يمكنها قبول البيانات المتناقضة. تأكيد البيان غير مضمون: في وفي حالة انقسام التصويت، يجوز أن يكون كلا البيانين بشكل دائم عالقون في انتظار اكتمال النصاب القانوني في مرحلة التصويت. ومع ذلك، إذا عقدة في مجموعة سليمة تؤكد بيانًا، التتالي النظرية وقبول الحالة 2 تأكد من أنني سأفعل ذلك جميعًا في النهاية تأكيد هذا البيان. 3.2.4 مزامنة الاقتراع إذا كانت العقد غير قادرة على تأكيد بيان الالتزام لـ الاقتراع الحالي، فإنهم يستسلمون بعد مهلة. يحصل المهلة لفترة أطول مع كل اقتراع حتى يتسنى التكيف مع الحدود التعسفية على تأخير الشبكة. ومع ذلك، فإن المهلات وحدها ليست كافية لمزامنة بطاقات الاقتراع الخاصة بالعقد التي لم تبدأ في نفس الوقت أو حصلت على غير متزامنة لأسباب أخرى. لتحقيق التزامن، تبدأ العقد في تشغيل المؤقت فقط عندما تصبح جزءًا من ملف النصاب القانوني الذي يكون موجودًا في الاقتراع الحالي (أو اللاحق) n. هذا يبطئ العقد التي بدأت مبكرًا ويضمن عدم حدوث ذلك يبقى العضو في مجموعة سليمة متقدمًا جدًا على المجموعة. علاوة على ذلك، إذا لاحظت العقدة v تعيين حجب v في وقت لاحق الاقتراع، فإنه يتخطى على الفور إلى أدنى بطاقة اقتراع مثل هذا لم يعد هذا هو الحال، بغض النظر عن أي توقيت. الشلال ثم تضمن النظرية أن جميع المتطرفين يلحقون بالركب. النتيجة هو أن بطاقات الاقتراع تتم مزامنتها تقريبًا في جميع أنحاء سليمة يتم ضبطه بمجرد أن يصبح النظام متزامنًا. 3.2.5 اختيار الزعيم الاتحادي يسمح اختيار القائد لكل عقدة باختيار القادة في مثل هذا الطريقة التي تختار بها العقد عمومًا واحدًا أو عددًا صغيرًا فقط من القادة. لاستيعاب فشل القائد، يتم اختيار القائد العائدات من خلال جولات. إذا كان قادة الجولة الحالية يبدو أنهم لا يقومون بمسؤولياتهم، ثم بعد أ تنتقل عقد معينة في فترة المهلة إلى الجولة التالية توسيع مجموعة القادة الذين يتبعونهم. تستخدم كل جولة وظيفتين تشفيريتين فريدتين hash، H0 وH1، اللتين تنتجان أعدادًا صحيحة في النطاق [0,hmax). على سبيل المثال، Stellar يستخدم Hi(m) = SHA256(i∥b∥r ∥m)، حيث b هو مثيل SCP الإجمالي (رقم الكتلة أو دفتر الأستاذ)، وr هو الرقم الدائري لاختيار القائد، وhmax = 2256. ضمن جولة، نحدد أولوية العقدة v على النحو التالي: الأولوية (ت) = H1(ت) سيكون رجل القش واحدًا لكل عقدة لتختاره كقائد العقدة ذات الأولوية العليا (v). هذا النهج يعمل بشكل جيد مع شرائح النصاب القانوني المتطابقة تقريبًا، ولكن ليس بشكل صحيح التقاط أهمية العقد في التكوينات غير المتوازنة. على سبيل المثال، إذا ساهمت كل من أوروبا والصين بـ 3 عقد لكل نصاب، لكن الصين تدير 1000 عقدة وأوروبا 4، عندها ستحصل الصين على العقدة ذات الأولوية القصوى بنسبة 99.6% من الوقت. لذلك نقدم فكرة وزن الشريحة، حيث الوزن (u,v) ∈[0, 1] هو جزء من شرائح النصاب القانوني للعقدة u تحتوي على العقدة v. عندما تقوم العقدة u باختيار قائد جديد، فإنه يأخذ في الاعتبار الجيران فقط، ويتم تعريفهم على النحو التالي: الجيران (ش) = { ت | H0(v) < hmax · الوزن(u,v) } تبدأ العقدة بعد ذلك بمجموعة فارغة من القادة، وعند كل منهم تضيف إليها العقدة v في الجيران (u) ذات الأعلى الأولوية (ت). إذا كانت مجموعة الجيران فارغة في أي جولة، فبدلاً من ذلك تضيف العقدة ذات القيمة الأقل H0(v)/weight(u,v).

Bình chọn X

Bầu Y (a) 3 4 2 1 5 7 6 Bình chọn X Bình chọn X Bình chọn X Bình chọn Y Bình chọn X Bình chọn Y Bình chọn Y (b) 3 4 2 1 5 7 6 Chấp nhận X Bình chọn X Chấp nhận X Bình chọn Y Chấp nhận X Bình chọn Y Bình chọn Y (c) 3 4 2 1 5 7 6 Chấp nhận X Chấp nhận X Chấp nhận X Bình chọn Y Chấp nhận X Chấp nhận X Bình chọn Y (d) 3 4 2 1 5 7 6 Chấp nhận X Bình chọn X Chấp nhận X Chấp nhận X Chấp nhận X Chấp nhận X Chấp nhận X (e) Hình 2. Hiệu ứng xếp tầng trong bỏ phiếu liên bang. Mỗi nút có một lát đại biểu được biểu thị bằng các mũi tên tới các thành viên của lát. (a) Các phát biểu mâu thuẫn X và Y được đưa ra. (b) Các nút bỏ phiếu cho các phát biểu hợp lệ. (c) Nút 1 chấp nhận X sau đại biểu của nó {1, 2, 3, 4} nhất trí bỏ phiếu cho X. (d) Các nút 1, 2, 3 và 4 đều chấp nhận X; tập {1} là 5-blocking, vì vậy nút 5 chấp nhận X, ghi đè phiếu bầu trước đó của nó cho Y. (e) Tập {5} là 6- và 7-chặn, vì vậy cả 6 và 7 đều chấp nhận X. nút không bị lỗi không thể chấp nhận các câu lệnh mâu thuẫn. Việc xác nhận một tuyên bố không được đảm bảo: trong trường hợp biểu quyết chia rẽ, cả hai tuyên bố có thể có hiệu lực vĩnh viễn bị mắc kẹt khi chờ số đại biểu trong giai đoạn bỏ phiếu. Tuy nhiên, nếu một nút trong một tập nguyên vẹn Tôi xác nhận một câu lệnh, tầng định lý và chấp nhận trường hợp 2 đảm bảo rằng tất cả I cuối cùng sẽ xác nhận tuyên bố đó. 3.2.4 Đồng bộ hóa phiếu bầu Nếu các nút không thể xác nhận một tuyên bố cam kết cho lá phiếu hiện tại, họ sẽ bỏ cuộc sau khi hết thời gian chờ. Thời gian chờ được dài hơn với mỗi lá phiếu để điều chỉnh theo giới hạn tùy ý về độ trễ mạng. Tuy nhiên, chỉ thời gian chờ là không đủ để đồng bộ hóa phiếu bầu của các nút không bắt đầu cùng lúc hoặc đã không đồng bộ hóa vì các lý do khác. Để đạt được sự đồng bộ hóa, các nút chỉ khởi động bộ đếm thời gian khi chúng là một phần của số đại biểu có ở lá phiếu hiện tại (hoặc sau này) n. Cái này làm chậm các nút bắt đầu sớm và đảm bảo rằng không có thành viên của một nhóm nguyên vẹn luôn dẫn đầu nhóm quá xa. Hơn nữa, nếu một nút v nhận thấy một tập hợp chặn v sau đó. lá phiếu, nó ngay lập tức chuyển sang lá phiếu thấp nhất sao cho không còn như vậy nữa, bất kể bất kỳ bộ tính giờ nào. thác nước định lý sau đó đảm bảo rằng tất cả những người đi sau đều bắt kịp. kết quả là các lá phiếu gần như được đồng bộ hóa xuyên suốt một cách nguyên vẹn được thiết lập khi hệ thống trở nên đồng bộ. 3.2.5 Lựa chọn lãnh đạo liên bang Lựa chọn người lãnh đạo cho phép mỗi nút chọn những người lãnh đạo theo cách như vậy theo cách mà các nút thường chỉ chọn một hoặc một số nhỏ của các nhà lãnh đạo. Để khắc phục sự thất bại của người lãnh đạo, việc lựa chọn người lãnh đạo tiến hành qua các vòng. Nếu người dẫn đầu vòng hiện tại dường như không hoàn thành trách nhiệm của mình thì sau một thời gian các nút trong khoảng thời gian chờ nhất định sẽ chuyển sang vòng tiếp theo để mở rộng nhóm lãnh đạo mà họ theo đuổi. Mỗi vòng sử dụng hai hàm mật mã hash duy nhất, H0 và H1, xuất ra các số nguyên trong phạm vi [0,hmax). Ví dụ: Stellar sử dụng Hi(m) = SHA256(i∥b∥r ∥m), trong đó b là phiên bản SCP tổng thể (số khối hoặc sổ cái), r là số vòng lựa chọn người lãnh đạo và hmax = 2256. Trong một vòng, chúng tôi xác định mức độ ưu tiên của nút v là: mức độ ưu tiên(v) = H1(v) Mỗi nút sẽ chọn một người làm ống hút làm người lãnh đạo nút có mức độ ưu tiên cao nhất (v). Cách tiếp cận này hoạt động tốt với các lát đại biểu gần như giống hệt nhau, nhưng không đúng cách nắm bắt được tầm quan trọng của các nút trong cấu hình không cân bằng. Ví dụ: nếu Châu Âu và Trung Quốc mỗi nước đóng góp 3 các nút theo mọi đại biểu, nhưng Trung Quốc chạy 1.000 nút và Châu Âu 4, thì Trung Quốc sẽ có nút ưu tiên cao nhất 99,6% của thời đại. Do đó chúng tôi giới thiệu một khái niệm về trọng lượng lát cắt, trong đó trọng lượng(u,v) ∈[0, 1] là một phần của các lát đại biểu của nút u chứa nút v. Khi nút u đang chọn người lãnh đạo mới, nó chỉ xem xét hàng xóm, được xác định như sau: hàng xóm(u) = { v | H0(v) < hmax · trọng lượng(u,v) } Sau đó, một nodeu bắt đầu với một tập hợp các nhà lãnh đạo trống và tại mỗi vòng thêm vào đó nút v trong hàng xóm (u) có giá trị cao nhất ưu tiên(v). Nếu tập hàng xóm trống trong bất kỳ vòng nào, thay vào đó, u sẽ thêm nút có giá trị thấp nhất làH0(v)/weight(u,v).

التحقق الرسمي من SCP

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

SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. للتأكد من أن الخصائص ثبت ثباتها بكل ما هو ممكن تكوينات FBA وعمليات التنفيذ، نعتبرها تعسفية عدد العقد ذات التكوينات المحلية التعسفية. هذا يتضمن سيناريوهات ذات مجموعات سليمة مفككة، بالإضافة إلى عمليات تنفيذ طويلة بلا حدود. العيب هو أننا مواجهة المشكلة الصعبة المتمثلة في التحقق من المعلمات نظام الدولة اللانهائية. لإبقاء التحقق سهلاً، قمنا بتصميم SCP في منطق الدرجة الأولى (FOL) باستخدام Ivy [69] ومنهجية [82]. تتكون عملية التحقق من تقديم تخمينات استقرائية يدويًا، والتي يتم بعد ذلك التحقق منها تلقائيًا اللبلاب. يلخص نموذج FOL لملخصات SCP بعض جوانب أنظمة FBA التي يصعب التعامل معها في FOL (على سبيل المثال، يتم أخذ نظرية التتالي كبديهية)، لذلك نحن نتحقق من سلامة التجريد باستخدام Isabelle/HOL [75]. بعد التعبير عن مشكلة التحقق في FOL، نتحقق من السلامة من خلال توفير ثابت استقرائي. الاستقرائي يتكون الثابت من عشرات التخمينات ذات السطر الواحد لحوالي 150 سطرًا من مواصفات البروتوكول. نقوم بعد ذلك بتحديد خصائص حيوية SCP في المنطق الزمني الخطي لـ Ivy ونستخدم من الحيوية إلى تقليل السلامة [80، 81] لتقليل الحيوية مشكلة التحقق لمشكلة العثور على الاستقرائي ثابت. في حين أن سلامة SCP واضحة نسبيًا أثبت أن حجة حيوية SCP أكثر تعقيدًا و يتكون من حوالي 150 ثابتًا في سطر واحد. يتطلب إثبات الحيوية إضفاء الطابع الرسمي الدقيق على الافتراضات التي بموجبها تضمن SCP الإنهاء. لقد اعتقدنا في البداية أن المجموعة السليمة سوف أقوم بإنهائها دائمًا قام الأعضاء بإزالة العقد المعيبة من شرائحهم [68]. ومع ذلك، فقد تبين أن هذا غير كاف: حسن التصرف (لكن غير سليمة) عقدة في النصاب القانوني لعضو أستطيع، تحت تأثير العقد الخاطئة، ومنع الإنهاء عن طريق استكمال النصاب القانوني قبل نهاية الاقتراع مباشرة، مما يتسبب في ذلك أعضاء I لاختيار قيم مختلفة لـ x في الاقتراع التالي. ولذلك يجب علينا بالإضافة إلى ذلك أن نفترض أنه، بشكل غير رسمي، كل عقدة في النصاب القانوني لعضو من أنا في نهاية المطاف سواء يصبح في الوقت المناسب أو لا يرسل الرسائل على الإطلاق لفترة كافية. في الممارسة العملية، هذا يعني أعضاء يجوز لي بحاجة إلى ضبط شرائحهم حتى يستمر الشرط. هذا المشكلة ليست متأصلة في أنظمة FBA: Losa et al. [47] موجود بروتوكول تعتمد حيويته على الأضعف تمامًا افتراضات التزامن النهائي وانتخاب القائد في نهاية المطاف، دون الحاجة إلى إزالة العقد المعيبة من الشرائح.

Xác minh chính thức của SCP

Để loại bỏ các lỗi thiết kế, chúng tôi đã chính thức xác minh tính an toàn của SCP và các thuộc tính sống động (xem [65]). Cụ thể, chúng tôi đã xác minh các nút đan xen đó không bao giờ bất đồng ý kiến và rằng, trong các điều kiện được thảo luận dưới đây, mọi thành viên của một tập hợp nguyên vẹn cuối cùng sẽ quyết định. Điều thú vị là việc xác minh cho thấy rằng những điều kiện mà SCP đảm bảo sự sống rất tinh tế, và mạnh mẽ hơn suy nghĩ ban đầu [68]: như được thảo luận bên dưới, các nút độc hại thao túng thời gian mà không có cách nào khác đi chệch khỏi giao thức có thể cần phải được gỡ bỏ bằng tay từ các lát đại biểu.

SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. Để đảm bảo rằng các tài sản đã được chứng minh có giá trị nhất có thể cấu hình và thực thi FBA, chúng tôi xem xét tùy ý số nút có cấu hình cục bộ tùy ý. Cái này bao gồm các kịch bản với các bộ nguyên vẹn rời rạc, cũng như các lần thực thi có thể kéo dài vô tận. Nhược điểm là chúng ta phải đối mặt với vấn đề đầy thách thức trong việc xác minh một tham số hệ thống trạng thái vô hạn. Để duy trì việc xác minh dễ dàng, chúng tôi đã lập mô hình SCP theo logic bậc nhất (FOL) bằng cách sử dụng Ivy [69] và phương pháp của [82]. Quá trình xác minh bao gồm việc cung cấp các phỏng đoán quy nạp theo cách thủ công, sau đó được kiểm tra tự động bởi Cây thường xuân. Mô hình FOL của SCP tóm tắt một số khía cạnh của Các hệ thống FBA khó xử lý trong FOL (ví dụ: định lý tầng được coi là một tiên đề), vì vậy chúng tôi xác minh tính đúng đắn của sự trừu tượng hóa bằng cách sử dụng Isabelle/HOL [75]. Sau khi trình bày vấn đề xác minh trong FOL, chúng tôi xác minh tính an toàn bằng cách cung cấp một bất biến quy nạp. quy nạp bất biến bao gồm hàng tá phỏng đoán một dòng cho khoảng 150 dòng đặc tả giao thức. Sau đó, chúng tôi chỉ định các thuộc tính sống của SCP trong Logic Thời gian Tuyến tính của Ivy và sử dụng giảm độ sống để an toàn [80, 81] để giảm độ sống bài toán xác minh cho bài toán tìm biểu thức quy nạp bất biến. Mặc dù sự an toàn của SCP tương đối dễ thực hiện chứng minh, lập luận về sự sống của SCP phức tạp hơn nhiều và bao gồm khoảng 150 bất biến một dòng. Việc chứng minh tính sống động đòi hỏi một sự hình thức hóa chính xác của giả định theo đó SCP đảm bảo chấm dứt. Ban đầu chúng tôi nghĩ rằng một bộ nguyên vẹn sẽ luôn chấm dứt nếu tất cả các thành viên đã loại bỏ các nút bị lỗi khỏi lát cắt của họ [68]. Tuy nhiên, điều này hóa ra vẫn chưa đủ: một người cư xử tốt (nhưng không còn nguyên vẹn) nút trong số đại biểu thành viên của I can, theo ảnh hưởng của các nút bị lỗi, ngăn chặn việc chấm dứt bằng cách hoàn thành đủ số đại biểu ngay trước khi kết thúc cuộc bỏ phiếu, do đó gây ra thành viên của I chọn các giá trị khác nhau của x trong lần bỏ phiếu tiếp theo. Do đó, chúng ta phải giả định thêm rằng, một cách không chính thức, cuối cùng mỗi nút trong số đại biểu của một thành viên của tôi trở nên kịp thời hoặc không gửi tin nhắn nào trong một khoảng thời gian vừa đủ. Trong thực tế, điều này có nghĩa là các thành viên của tôi có thể cần điều chỉnh các lát cắt của chúng cho đến khi điều kiện được giữ nguyên. Cái này vấn đề không phải là cố hữu của hệ thống FBA: Losa et al. [47] có mặt một giao thức mà sự tồn tại của nó phụ thuộc vào điểm yếu hơn giả định về sự đồng bộ hóa cuối cùng và sự lựa chọn lãnh đạo cuối cùng mà không cần phải loại bỏ các nút bị lỗi khỏi các lát cắt.

شبكة الدفع

يصف هذا القسم شبكة الدفع الخاصة بـ Stellar، والتي تم تنفيذها كجهاز حالة منسوخ [88] أعلى SCP. 5.1 نموذج دفتر الأستاذ تم تصميم دفتر الأستاذ Stellar حول تجريد الحساب (في على النقيض من مخرجات المعاملات غير المنفقة التي تركز على العملات المعدنية أو UTXO طراز Bitcoin). تتكون محتويات الدفتر من أ مجموعة من إدخالات دفتر الأستاذ من أربعة أنواع متميزة: الحسابات، وخطوط الثقة، العروض وبيانات الحساب. الحسابات هي المديرون الذين يمتلكون الأصول ويصدرونها. كل تتم تسمية الحساب بواسطة مفتاح عام. افتراضيًا، يمكن للمفتاح الخاص المقابل توقيع المعاملات الخاصة بالحساب. ومع ذلك، يمكن إعادة تكوين الحسابات لإضافة موقعين آخرين وإلغاء تخويل المفتاح الذي يُسمي الحساب، باستخدام خيار "multisig" يتطلب عدة موقعين. كل حساب يحتوي أيضًا على: رقم تسلسلي (مدرج في المعاملات لمنع الإعادة)، وبعض الأعلام، ورصيد في “أصلي” عملة مشفرة تم تعدينها مسبقًا تسمى XLM، تهدف إلى التخفيف بعض هجمات حجب الخدمة وتسهيل صناعة السوق كعملة محايدة. تقوم خطوط الثقة بتتبع ملكية الأصول المصدرة، وهي اسمه زوج يتكون من حساب الإصدار وقصير رمز الأصل (على سبيل المثال، "USD" أو "EUR"). يحدد كل خط ثقة حساب، أصل، رصيد الحساب في ذلك الأصل، أ الحد الذي لا يمكن أن يرتفع الميزان فوقه، وبعض الأعلام. يجب أن يوافق الحساب صراحةً على الاحتفاظ بالأصل من خلاله إنشاء خط ثقة، ومنع مرسلي البريد العشوائي من التسلل حسابات ذات أصول غير مرغوب فيها. تتطلب لوائح اعرف عميلك (KYC) من العديد من المؤسسات المالية معرفة الودائع التي تحتفظ بها، على سبيل المثال عن طريق التحقق من بطاقة الهوية التي تحتوي على صورة. للامتثال، يمكن للمصدرين تعيين علامة auth_reqired اختيارية على حساباتهم، مما يقيد ملكية الأصول التي يصدرونها للحسابات المعتمدة. لمنح هذا الترخيص، يقوم المصدر بتعيين معتمد وضع علامة على خطوط ثقة العملاء. تتوافق العروض مع رغبة الحساب في التداول إلى مبلغ معين من أصل معين لآخر في وقت معين السعر في دفتر الطلبات؛ تتم مطابقتها تلقائيًا و يتم ملؤها عندما تتقاطع أسعار الشراء/البيع. وأخيرًا، تتكون بيانات الحساب من الحساب والمفتاح والقيمة الثلاثية، مما يسمح لأصحاب الحساب لنشر قيم البيانات الوصفية الصغيرة. لمنع البريد العشوائي في دفتر الأستاذ، يوجد حد أدنى لرصيد XLM، يسمى الاحتياط. يزداد احتياطي الحساب مع كل منها يرتبط إدخال دفتر الأستاذ ويتناقص عند إدخال دفتر الأستاذ يختفي (على سبيل المثال، عند تنفيذ أمر ما أو إلغاؤه، أو عند أ تم حذف خط الثقة). حاليًا ينمو الاحتياطي بمقدار 0.5 XLM (∼ 0.03 دولار) لكل إدخال في دفتر الأستاذ. بغض النظر عن الاحتياطي، فهو كذلك من الممكن استعادة القيمة الكاملة للحساب عن طريق الحذف مع عملية AccountMerge. يقوم رأس دفتر الأستاذ، الموضح في الشكل 3، بتخزين السمات العامة: رقم دفتر الأستاذ، والمعلمات مثل الرصيد الاحتياطي لكل إدخال دفتر الأستاذ، hash من رأس دفتر الأستاذ السابق (في الواقع عدة hashes تشكل قائمة تخطي)، بما في ذلك إخراج SCP hash من المعاملات الجديدة المطبقة في دفتر الأستاذ هذا، hash من نتائج تلك المعاملات (على سبيل المثال، النجاح أو الفشل ل لكل منهما)، ولقطة hash لجميع إدخالات دفتر الأستاذ. نظرًا لأن اللقطة hash تشتمل على كافة محتويات دفتر الأستاذ، لا يحتاج validators إلى الاحتفاظ بالسجل للتحقق من صحة المعاملات. ومع ذلك، لتوسيع نطاق مئات الملايين من المتوقع الحسابات، لا يمكننا إعادة hash جميع جداول إدخال دفتر الأستاذ في كل منها إغلاق دفتر الأستاذ. علاوة على ذلك، ليس من العملي نقل دفتر الأستاذمدفوعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا دفتر الأستاذ # = 4 H (نطاق عالي الديناميكية السابق) مخرجات SCP ح∗(النتائج) ح∗(لقطة) ... header دفتر الأستاذ # = 5 H (نطاق عالي الديناميكية السابق) مخرجات SCP ح∗(النتائج) ح∗(لقطة) ... header . . . الشكل 3. محتويات دفتر الأستاذ. H هو SHA-256، بينما H ∗ يمثل التطبيق الهرمي أو التكراري لـ H. مخرجات SCP يعتمد أيضًا على الرأس السابق hash. إنشاء حساب إنشاء وتمويل إدخال دفتر الأستاذ الجديد للحساب دمج الحساب حذف إدخال دفتر الأستاذ الحساب خيارات الضبط تغيير علامات الحساب والموقعين الدفع ادفع كمية محددة من الأصول إلى الوجهة. com.acct. مسار الدفع مثل الدفع، ولكن الدفع في أصول مختلفة (ما يصل للحد)؛ حدد ما يصل إلى 5 أصول وسيطة إدارة العرض إنشاء/حذف/تغيير إدخال دفتر الأستاذ للعرض، -العرض السلبي مع متغير سلبي للسماح بانتشار صفر إدارة البيانات إنشاء/حذف/تغيير الحساب. إدخال دفتر البيانات تغيير الثقة إنشاء/حذف/تغيير خط الثقة السماح بالثقة قم بتعيين أو مسح العلامة المعتمدة على خط الثقة BumpSequence زيادة ما يلي. رقم على الحساب الشكل 4. عمليات دفتر الأستاذ الرئيسي بهذا الحجم في كل مرة يتم فيها قطع اتصال العقدة الشبكة لفترة طويلة جدًا. وبالتالي فإن اللقطة hash هي مصمم لتحسين كل من hashing وتسوية الحالة. على وجه التحديد، تقوم اللقطة بتقسيم إدخالات دفتر الأستاذ حسب الوقت التعديل الأخير في مجموعة من الحاويات ذات الحجم المتضاعف تسمى الدلاء. يسمى جمع الدلاء بالدلو القائمة، وتحمل بعض التشابه مع أشجار الدمج المنظمة بالسجل (أشجار-LSM) [77]. لا تتم قراءة قائمة المجموعة أثناء معالجة المعاملات (انظر القسم 5.4). ومن ثم تصميم معين يمكن تخفيف جوانب أشجار LSM. وعلى وجه الخصوص، عشوائية الوصول عن طريق المفتاح غير مطلوب، ولا تتم قراءة الدلاء إلا على الإطلاق بالتتابع كجزء من دمج المستويات. تجزئة الدلو يتم إجراء القائمة عن طريق hashing كل مجموعة أثناء دمجها وحساب تراكمي جديد hash للمجموعة hashes (صغير، الفهرس المرجعي الثابت hashes) عند كل إغلاق لدفتر الأستاذ. تتطلب تسوية قائمة المجموعة بعد قطع الاتصال التنزيل الدلاء فقط التي تختلف. 5.2 نموذج الصفقة تتكون المعاملة من حساب المصدر ومعايير الصلاحية وأ مذكرة، وقائمة واحدة أو أكثر من العمليات. يسرد الشكل 4 العمليات المتاحة. كل عملية لها حساب مصدر، والذي الافتراضيات لتلك الصفقة الشاملة. لا بد من الصفقة يتم توقيعه بواسطة المفاتيح المقابلة لكل حساب مصدر في عملية. يمكن أن تتطلب حسابات Multisig توقيعًا أعلى الوزن لبعض العمليات (مثل SetOptions) وأقل للآخرين (مثلallowTrust). المعاملات ذرية - إذا فشلت أي عملية، فلن يحدث أي منها ينفذون. وهذا يبسط الصفقات متعددة الاتجاهات. لنفترض أن يقوم المُصدر بإنشاء أصل لتمثيل سندات الأرض، ويقوم المستخدم أ يريد استبدال قطعة أرض صغيرة بالإضافة إلى 10000 دولار مقابل أ قطعة أرض أكبر يملكها B. يمكن لكلا المستخدمين التوقيع معاملة واحدة تحتوي على ثلاث عمليات: أرضان المدفوعات ودفع دولار واحد. معيار صلاحية المعاملة الرئيسي هو رقمها التسلسلي، الذي يجب أن يكون أكبر من الرقم التسلسلي للمعاملة. إدخال دفتر الأستاذ حساب المصدر. تنفيذ معاملة صالحة (بنجاح أم لا) يؤدي إلى زيادة الرقم التسلسلي، مما يمنع إعادة التشغيل. تحتوي أرقام التسلسل الأولية على دفتر الأستاذ عدد البتات العالية لمنع إعادة التشغيل حتى بعد الحذف وإعادة إنشاء الحساب. معيار الصلاحية الآخر هو الحد الاختياري للوقت يمكن تنفيذ الصفقة. العودة إلى الأرض والدولار المبادلة أعلاه، إذا قام A بتوقيع المعاملة قبل B، فلا يجوز لـ A ذلك تريد B أن يجلس على المعاملة لمدة عام قبل تقديمها عليه، وبالتالي يمكن وضع حد زمني لإبطال المعاملة بعد بضعة أيام. يمكن أيضًا تكوين حسابات Multisig لإضفاء وزن التوقيع على الكشف عن الصورة المسبقة hash، والتي، إلى جانب الحدود الزمنية، تسمح بالتداول عبر سلسلة ذرية [1]. يدفع الحساب المصدر للمعاملة رسومًا بسيطة بعملة XLM، 10−5 XLM ما لم يكن هناك ازدحام. في ظل الازدحام يتم تحديد تكلفة العمليات عن طريق المزاد الهولندي. المصادقون هم لا يتم تعويضها بالرسوم لأن validators متشابهة إلى Bitcoin العقد الكاملة، وليس عمال المناجم. بدلاً من تدمير XLM، يتم إعادة تدوير الرسوم وتوزيعها بشكل متناسب عن طريق التصويت حاملي XLM الحاليين، والذي قد يكون أو قد يكون في وقت لاحق لم تكن تستحق التعقيد. 5.3 قيم الإجماع بالنسبة لكل دفتر أستاذ، يستخدم Stellar SCP للموافقة على بنية البيانات مع ثلاثة حقول: مجموعة المعاملات hash (بما في ذلك hash) من رأس دفتر الأستاذ السابق)، في وقت قريب، ود ترقيات. عندما يتم تأكيد ترشيح قيم متعددة، يأخذ Stellar المعاملة التي تم تعيينها بأكبر عدد من العمليات (قطع العلاقات بإجمالي الرسوم، ثم مجموعة المعاملات hash)، اتحاد الكل ترقيات، وأعلى وقت إغلاق. وقت قريب هو فقط صالح إذا كان بين وقت إغلاق دفتر الأستاذ الأخير و موجودة، لذلك لا ترشح العقد أوقاتًا غير صالحة. تقوم الترقيات بضبط المعلمات العالمية مثل الرصيد الاحتياطي والحد الأدنى لرسوم التشغيل وإصدار البروتوكول. متى مجتمعة أثناء الترشيح، تحل الرسوم الأعلى وأرقام إصدار البروتوكول محل الأرقام الأقل. ترقيات تأثير الحكم من خلال مساحة صراع التصويت الفيدرالي [34]، ولا مساواة ولا مركزية. تم تكوين كل validator كـ إما الحاكم أو غير الحاكم (الافتراضي)، وفقا إلى ما إذا كان مشغلها يريد المشاركة في الحكم. تعتبر إدارة validators ثلاثة أنواع من الترقية: مطلوب وصالح وغير صالح (أي شيء لا يفعله validator

SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. validator الأساسية الأفق خ.س ديسيبل ديسيبل إرسال العميل العميل validators أخرى الشكل 5. بنية Stellar validator تعرف كيفية التنفيذ). تم تكوين الترقيات المطلوبة ل الزناد في وقت محدد، والمقصود أن يتم التنسيق فيما بينهم مشغلي. العقد الحاكمة تصوت دائمًا للترشيح المرغوب الترقيات، اقبل ولكن لا تصوت لترشيح ترقيات صالحة (أي، وافق على النصاب القانوني المحظور)، ولا تصوت لصالحه أبدًا أو قبول ترقيات غير صالحة. صدى validators غير الحاكم أي تصويت يرونه لترقية صالحة، هو في الأساس تفويض القرار بشأن الترقيات المطلوبة لأولئك الذين يختارون ذلك لدور الحكم. 5.4 التنفيذ يوضح الشكل 5 بنية Stellar validator. شيطان يُسمى Stellar-core (∼ 92 ألف سطر من C ++، دون احتساب مكتبات الطرف الثالث) ينفذ بروتوكول SCP وجهاز الحالة المنسوخ. يتطلب إنتاج قيم SCP تقليل أعداد كبيرة من إدخالات دفتر الأستاذ إلى عمليات تشفير صغيرة hashes. وعلى النقيض من ذلك، التحقق من صحة المعاملة وتنفيذها يتطلب البحث عن حالة الحساب ومطابقة الطلب في أفضل الأسعار. لخدمة كلتا الوظيفتين بكفاءة، نجمي النواة يحتفظ بتمثيلين لدفتر الأستاذ: تمثيل خارجي يحتوي على قائمة الجرافة، المخزنة كملفات ثنائية يمكن تحديثه بكفاءة وإعادة hashed بشكل تدريجي، و تمثيل داخلي في قاعدة بيانات SQL (PostgreSQL لعقد الإنتاج). Stellar- يقوم النواة بإنشاء أرشيف محفوظات للكتابة فقط يحتوي على كل مجموعة معاملات تم تأكيدها ولقطات منها دلاء. يتيح الأرشيف للعقد الجديدة أن تقوم بتمهيد نفسها عند الانضمام إلى الشبكة. كما يوفر سجلا لدفتر الأستاذ التاريخ - يجب أن يكون هناك مكان ما يمكن للمرء البحث عنه الصفقة منذ عامين. منذ التاريخ هو إلحاق فقط ولا يتم الوصول إليه بشكل متكرر، ويمكن الاحتفاظ به في أماكن رخيصة مثل Amazon Glacier أو أي خدمة تسمح بالتخزين واسترجاع الملفات المسطحة. عادةً لا يستضيف مضيفو أداة التحقق أرشيفاتهم الخاصة لتجنب أي تأثير على التحقق من الصحة الأداء من خدمة التاريخ. لإبقاء النواة النجمية بسيطة، فهي غير مخصصة للاستخدام مباشرة عن طريق التطبيقات ولا يعرض سوى واجهة ضيقة جدًا لتقديم المعاملات الجديدة. لدعم العملاء، يقوم معظم validators بتشغيل برنامج خفي يسمى Horizon (∼18k خطوط Go) التي توفر واجهة HTTP للإرسال وتعلم المعاملات . Horizon لديه حق الوصول للقراءة فقط قاعدة بيانات SQL الخاصة بـ stellar-core، مما يقلل من مخاطر الأفق زعزعة الاستقرار النجمي. يتم تنفيذ ميزات مثل العثور على مسار الدفع بالكامل في الأفق ويمكن ترقيتها من جانب واحد دون التنسيق مع validators الأخرى. العديد من البرامج الاختيارية ذات الطبقة العليا هي عملاء للأفق، مما يكمل النظام البيئي. يسهل خادم الجسر تكامل Stellar مع الأنظمة الحالية، على سبيل المثال، نشر إشعارات بجميع المدفوعات المستلمة بواسطة حساب معين. أ يوفر خادم الامتثال خطافات للمؤسسات المالية تبادل واعتماد معلومات المرسل والمستفيد بشأن المدفوعات، للامتثال لقوائم العقوبات. وأخيرا، ينفذ خادم الاتحاد تسمية يمكن قراءتها بواسطة الإنسان نظام للحسابات. 6 تجربة النشر Stellar نمت لعدة سنوات إلى دولة معتدلة عدد مشغلي العقدة الكاملة الموثوقين بشكل معقول. ومع ذلك، كانت تكوينات العقد بحيث تكون الحيوية (وإن لم تكن كذلك). السلامة) تعتمد علينا، مؤسسة Stellar التنمية (قسد)؛ لو اختفت قوات الدفاع الذاتي فجأة، مشغلي العقدة الآخرين كان سيحتاج إلى التدخل وإزالتنا يدويًا من شرائح النصاب القانوني لاستمرار الشبكة. في حين أننا والعديد من الآخرين نريد تقليل الأهمية النظامية لقوات سوريا الديمقراطية، فقد حظي هذا الهدف بأولوية متزايدة بعد ذلك قام الباحثون [58] بقياس ونشر مركزية الشبكة دون التمييز بين المخاطر على السلامة حيوية. كان رد فعل عدد من المشغلين هو إجراء تعديلات التكوين النشطة، مما أدى في المقام الأول إلى زيادة حجم طائراتهم شرائح النصاب القانوني في محاولة لتخفيف أهمية قوات سوريا الديمقراطية؛ ومن المفارقات أن هذا أدى فقط إلى زيادة المخاطر على الحيوية. مشكلتان أدت إلى تفاقم الوضع. أولا شعبية تم استخدام أداة مراقبة Stellar التابعة لجهة خارجية [5] بشكل منهجي المبالغة في تقدير وقت تشغيل validator من خلال عدم التحقق فعليًا كان ذلك النواة النجمية يعمل؛ هذا يقود الناس إلى تضمين العقد غير الموثوقة في شرائح النصاب القانوني الخاصة بهم. ثانياً: خطأ في يُقصد بالنواة النجمية بمجرد انتقال validator إلى دفتر الأستاذ التالي، لم يساعد العقد المتبقية بشكل كافٍ في إكمال العقد السابقدفتر الأستاذ في حالة فقدان الرسائل. ونتيجة لذلك، شهدت الشبكة 67 دقيقة من التوقف وكانت مطلوبة التنسيق اليدوي بواسطة مسؤولي validator لإعادة التشغيل. والأسوأ من ذلك، أثناء محاولة إعادة تشغيل الشبكة، أدت عمليات إعادة التكوين السريعة المتزامنة على عقد متعددة في تكوين خاطئ جماعي سمح لبعض العقد بذلك تتباعد، مما يتطلب الإغلاق اليدوي لتلك العقد و إعادة تقديم المعاملات المقبولة أثناء الاختلاف. ولحسن الحظ، تم اكتشاف هذا الاختلاف وتصحيحه بسرعة ولم تحتوي على أي معاملات متضاربة، ولكن خطر فشل الشبكة في التمتع بتقاطع النصاب القانوني— الانقسام مع الاستمرار في قبول التضارب المحتمل المعاملات، وذلك ببساطة بسبب التكوين الخاطئ ملموسة جدا من هذا الحادث. أدت مراجعة هذه التجارب إلى استنتاجين رئيسيين والإجراءات التصحيحية المقابلة.مدفوعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا حرجة 100% 51% 51% عالية 67% 51% متوسطة 67% 51% منخفض، 67% 51% 51% ... ... ... 51% ... 51% الشكل 6. التسلسل الهرمي لجودة المدقق. أعلى جودة العقد تتطلب الحد الأعلى وهو 100%، في حين يتم ضبط الجودة الأدنى على عتبة 67%. العقد داخل واحدة تتطلب المنظمة أغلبية بسيطة بنسبة 51٪. 6.1 تعقيد التكوين وهشاشته Stellar يعبر عن شرائح النصاب كمجموعات نصاب متداخلة تتكون من n إدخالات وعتبة k حيث توجد أي مجموعة من إدخالات k يشكل شريحة النصاب القانوني. كل من الإدخالات n هو إما validator مفتاح عام أو، بشكل متكرر، مجموعة نصاب أخرى. وعلى الرغم من مرونتنا وصغر حجمنا، فقد حققنا النصاب القانوني المتداخل أتاحت المجموعات في الوقت نفسه لمشغلي العقد مرونة كبيرة جدًا وقليلًا جدًا من التوجيه: كان من السهل كتابة ملفات غير آمنة (أو حتى لا معنى لها) التكوينات. معايير التجميع العقد إلى مجموعات، لتنظيم المجموعات الفرعية في تسلسل هرمي، و لاختيار العتبات كلها كانت غير واضحة بما فيه الكفاية وساهمت في الفشل التشغيلي. ولم يكن من الواضح ما إذا كان الأمر كذلك التعامل مع "المستوى" في التسلسل الهرمي المتداخل كمستوى ثقة، أو منظمة، أو كليهما؛ العديد من التكوينات في هذا المجال اختلطت هذه المفاهيم، بالإضافة إلى تحديد الخطورة أو عتبات لا معنى لها. ولذلك أضفنا آلية تكوين أبسط الذي يفصل بين جانبين من مجموعات النصاب المتداخلة: التجميع العقد معًا حسب المؤسسة، وتصنيف كل مؤسسة بتصنيف ثقة بسيط (منخفض، متوسط، مرتفع، أو حرجة). مطلوب من المنظمات ذات المستوى الأعلى وما فوق ذلك نشر أرشيف التاريخ. يقوم النظام الجديد بتجميع مجموعات النصاب المتداخلة التي يتم فيها تمثيل كل مؤسسة كـ تم تحديد عتبة 51%، ويتم تجميع المنظمات في مجموعات بحدود 67% أو 100% (حسب جودة المجموعة). كل مجموعة عبارة عن إدخال واحد في المجموعة التالية (الأعلى جودة)، كما هو موضح في الشكل 6. هذا النموذج المبسط يقلل من احتمالية التكوين الخاطئ، سواء من حيث الهيكل من المجموعات المتداخلة المركبة والعتبات المختارة كل مجموعة. 6.2 الكشف الاستباقي عن التكوين الخاطئ ثانياً، أدركنا أن اكتشاف سوء التشكيل الجماعي من خلال الانتظار لملاحظة آثاره السلبية قد فات الأوان. خاصة فيما يتعلق بالتكوينات الخاطئة التي يمكن أن تتباعد — أ وضع فشل أكثر خطورة من التوقف — احتياجات الشبكة لتكون قادرًا على اكتشاف التكوين الخاطئ على الفور حتى يتمكن المشغلون من التراجع عنه قبل حدوث أي اختلاف فعليًا. لتلبية هذه الحاجة، قمنا ببناء آلية في برنامج validator تعمل بشكل مستمر على جمع حالة التكوين الجماعية لجميع النظراء في الإغلاق المتعدي للعقدة وتكتشف احتمالية الاختلاف، أي الانفصال النصاب القانوني – ضمن هذا التكوين الجماعي. 6.2.1 التحقق من تقاطع النصاب القانوني على الرغم من أن جمع شرائح النصاب أمر سهل، إلا أن العثور على النصاب المنفصل فيما بينها يعد أمرًا صعبًا [62]. ومع ذلك، اعتمدنا مجموعة من الاستدلالات الخوارزمية وقواعد حذف الحالات اقترحه Lachowski [62] للتحقق من الحالات النموذجية من المشكلة عدة أوامر من حيث الحجم أسرع من تكلفة أسوأ الحالات. من الناحية العملية، الشبكة الحالية تكون عمليات الإغلاق الانتقالية لشريحة النصاب في حدود 20-30 العقد، وباستخدام تحسينات Lachowski، يتم التحقق عادةً في غضون ثوان على وحدة المعالجة المركزية واحدة. إذا دعت الحاجة لتعزيز الأداء، يمكننا موازاة البحث. 6.2.2 التحقق من التكوينات الخطرة يعد اكتشاف أن الشبكة تقبل النصاب القانوني المنفصل بمثابة خطوة في الاتجاه الصحيح، لكنه يشير إلى الخطر في وقت متأخر بشكل غير مريح لمثل هذه القضية الحرجة. من الناحية المثالية، نريد أن يتلقى مشغلو العقد تحذيرات عند التكوين الجماعي للشبكة يقترب فقط من حالة محفوفة بالمخاطر. ولذلك قمنا بتوسيع مدقق تقاطع النصاب القانوني للكشف عن حالة نسميها الحرجية: عندما يكون التيار التكوين الجماعي هو تكوين خاطئ واحد بعيدا عن دولة تقبل النصاب القانوني المنفصل. للكشف عن الأهمية، يقوم المدقق باستبدال تكوين كل مؤسسة بشكل متكرر بمحاكاة تكوين خاطئ لأسوأ الحالات إعادة تشغيل مدقق تقاطع النصاب الداخلي على النتيجة. في حالة وجود أي خطأ فادح في التكوين على بعد خطوة واحدة من الحالة الحالية، يصدر البرنامج تحذيرًا و تقارير المنظمة التي تشكل خطر التكوين الخاطئ. تمنح هذه التغييرات مجتمع المشغلين طبقتين من الإشعار والتوجيه للعزل ضد أسوأ الأشكال من سوء التكوين الجماعي

Mạng thanh toán

Phần này mô tả mạng thanh toán của Stellar, được triển khai dưới dạng máy trạng thái được sao chép [88] trên SCP. 5.1 Mô hình sổ cái Sổ cái của Stellar được thiết kế dựa trên sự trừu tượng hóa tài khoản (trong tương phản với sản lượng giao dịch chưa chi tiêu tập trung vào tiền xu hơn hoặc mẫu UTXO của Bitcoin). Nội dung sổ cái bao gồm một tập hợp các mục sổ cái gồm bốn loại riêng biệt: tài khoản, đường tin cậy, ưu đãi và dữ liệu tài khoản. Tài khoản là người chủ sở hữu và phát hành tài sản. Mỗi tài khoản được đặt tên theo khóa công khai. Theo mặc định, khóa riêng tương ứng có thể ký giao dịch cho tài khoản. Tuy nhiên, các tài khoản có thể được cấu hình lại để thêm những người ký khác và hủy cấp phép khóa đặt tên cho tài khoản, bằng một Tùy chọn “multisig” để yêu cầu nhiều người ký. Mỗi tài khoản cũng chứa: số thứ tự (có trong giao dịch để tránh phát lại), một số cờ và số dư trong "bản địa" tiền điện tử được khai thác trước có tên là XLM, nhằm giảm thiểu một số cuộc tấn công từ chối dịch vụ và tạo điều kiện thuận lợi cho việc tạo lập thị trường như một loại tiền tệ trung lập. Trustlines theo dõi quyền sở hữu các tài sản đã phát hành, được đặt tên bởi một cặp bao gồm tài khoản phát hành và một tài khoản ngắn hạn mã tài sản (ví dụ: “USD” hoặc “EUR”). Mỗi đường dây tin cậy chỉ định một tài khoản, một tài sản, số dư của tài khoản trong tài sản đó, một vượt quá giới hạn mà số dư không thể tăng lên và một số cờ. Một tài khoản phải đồng ý rõ ràng để nắm giữ một tài sản bằng cách tạo ra một đường dây tin cậy, ngăn chặn những kẻ gửi thư rác tài khoản có tài sản không mong muốn. Quy định về nhận biết khách hàng (KYC) yêu cầu nhiều tổ chức tài chính phải biết họ đang nắm giữ tiền gửi của ai, ví dụ bằng cách kiểm tra ID ảnh. Để tuân thủ, tổ chức phát hành có thể thiết lập cờ auth_reqired tùy chọn trên tài khoản của họ, hạn chế quyền sở hữu tài sản mà họ cấp cho các tài khoản được ủy quyền. Để cấp phép như vậy, người phát hành thiết lập một ủy quyền gắn cờ trên đường tin cậy của khách hàng. Ưu đãi tương ứng với sự sẵn sàng giao dịch của tài khoản một số lượng nhất định của một tài sản cụ thể cho một tài sản khác tại một thời điểm nhất định giá trên sổ lệnh; chúng được tự động khớp và được lấp đầy khi giá mua/bán giao nhau. Cuối cùng, dữ liệu tài khoản bao gồm bộ ba tài khoản, khóa, giá trị, cho phép chủ tài khoản để xuất bản các giá trị siêu dữ liệu nhỏ. Để ngăn chặn thư rác sổ cái, cần có số dư XLM tối thiểu, gọi là dự trữ. Dự trữ của tài khoản tăng lên theo từng mục sổ cái liên quan và giảm khi mục sổ cái biến mất (ví dụ: khi một đơn hàng được thực hiện hoặc bị hủy, hoặc khi một đường dây tin cậy sẽ bị xóa). Hiện tại dự trữ tăng thêm 0,5 XLM (∼$0,03) cho mỗi mục sổ cái. Bất kể dự trữ là gì, nó là có thể lấy lại toàn bộ giá trị của tài khoản bằng cách xóa nó bằng thao tác AccountMerge. Tiêu đề sổ cái, được hiển thị trong Hình 3, lưu trữ các thuộc tính chung: số sổ cái, các thông số như số dư dự trữ trên mỗi mục sổ cái, hash của tiêu đề sổ cái trước đó (thực tế là một số hashes tạo thành danh sách bỏ qua), đầu ra SCP bao gồm hash giao dịch mới được áp dụng vào sổ cái này, hash trong số kết quả của các giao dịch đó (ví dụ: thành công hay thất bại đối với từng mục) và ảnh chụp nhanh hash của tất cả các mục trong sổ cái. Bởi vì ảnh chụp nhanh hash bao gồm tất cả nội dung sổ cái, validator không cần giữ lại lịch sử để xác thực giao dịch. Tuy nhiên, để mở rộng quy mô lên tới hàng trăm triệu dự kiến tài khoản, chúng tôi không thể rehash tất cả các bảng nhập sổ cái trên mỗi sổ cái đóng lại. Hơn nữa, việc chuyển sổ cáiThanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada sổ cái # = 4 H(HDR trước) Đầu ra SCP H∗(kết quả) H∗(ảnh chụp nhanh) ... tiêu đề sổ cái # = 5 H(HDR trước) Đầu ra SCP H∗(kết quả) H∗(ảnh chụp nhanh) ... tiêu đề . . . Hình 3. Nội dung sổ cái. H là SHA-256, trong khi H ∗ thể hiện ứng dụng phân cấp hoặc đệ quy của đầu ra H. SCP cũng phụ thuộc vào tiêu đề trước hash. Tạo tài khoản Tạo và nạp tiền vào sổ cái tài khoản mới Hợp nhất tài khoản Xóa mục nhập sổ cái tài khoản Đặt tùy chọn Thay đổi cờ tài khoản và người ký Thanh toán Trả số lượng tài sản cụ thể cho đích. tài khoản. Đường dẫnThanh toán Giống như Thanh toán, nhưng thanh toán bằng nội dung khác (tối đa hạn chế); chỉ định tối đa 5 tài sản trung gian Quản lý ưu đãi Tạo/xóa/thay đổi mục nhập sổ cái ưu đãi, -Ưu đãi thụ động với biến thể thụ động để cho phép lan truyền bằng không Quản lý dữ liệu Tạo/xóa/thay đổi tài khoản. nhập sổ cái dữ liệu Thay đổi tin cậy Tạo/xóa/thay đổi đường dây tin cậy AllowTrust Đặt hoặc xóa cờ được ủy quyền trên đường dây tin cậy Trình tự va chạm Tăng thứ tự số trên tài khoản Hình 4. Hoạt động sổ cái chính có kích thước đó mỗi khi một nút bị ngắt kết nối khỏi mạng quá lâu. Do đó, ảnh chụp nhanh hash là được thiết kế để tối ưu hóa cả hashing và điều chỉnh trạng thái. Cụ thể, ảnh chụp nhanh phân loại các mục sổ cái theo thời gian sửa đổi cuối cùng trong một tập hợp các thùng chứa có kích thước theo cấp số nhân gọi là xô. Bộ sưu tập các thùng được gọi là thùng danh sách và có một số điểm tương đồng với cây hợp nhất có cấu trúc nhật ký (LSM-cây) [77]. Danh sách nhóm không được đọc trong quá trình xử lý giao dịch (xem Phần 5.4). Do đó, thiết kế nhất định các khía cạnh của cây LSM có thể được nới lỏng. Đặc biệt, ngẫu nhiên không cần truy cập bằng khóa và các nhóm chỉ được đọc tuần tự như một phần của các cấp độ hợp nhất. Băm xô danh sách được thực hiện bằng cách hashing từng nhóm khi nó được hợp nhất và tính toán hash tích lũy mới của nhóm hashes (nhỏ, chỉ số tham chiếu cố định hashes) khi đóng mỗi sổ cái. Điều chỉnh danh sách nhóm sau khi ngắt kết nối yêu cầu tải xuống chỉ có các thùng khác nhau. 5.2 Mô hình giao dịch Một giao dịch bao gồm một tài khoản nguồn, tiêu chí hợp lệ, một bản ghi nhớ và danh sách một hoặc nhiều thao tác. Hình 4 liệt kê các hoạt động có sẵn. Mỗi hoạt động có một tài khoản nguồn, tài khoản này mặc định cho giao dịch tổng thể. Một giao dịch phải được ký bằng các khóa tương ứng với mọi tài khoản nguồn trong một cuộc phẫu thuật. Tài khoản Multisig có thể yêu cầu chữ ký cao hơn trọng lượng cho một số thao tác (chẳng hạn như SetOptions) và thấp hơn cho những người khác (chẳng hạn như AllowTrust). Giao dịch là nguyên tử—nếu bất kỳ thao tác nào thất bại, không có thao tác nào họ thực thi. Điều này đơn giản hóa các giao dịch đa chiều. Giả sử một nhà phát hành tạo ra một tài sản để đại diện cho chứng thư đất đai và người dùng A muốn đổi một thửa đất nhỏ cộng thêm 10.000 USD lấy một thửa đất lớn hơn thuộc sở hữu của B. Hai người sử dụng đều có thể ký một giao dịch duy nhất bao gồm ba hoạt động: hai đất thanh toán và thanh toán một đô la. Tiêu chí hiệu lực chính của giao dịch là số thứ tự của nó, số này phải lớn hơn số thứ tự của giao dịch. mục nhập sổ cái tài khoản nguồn. Thực hiện một giao dịch hợp lệ (thành công hay không) tăng số thứ tự, ngăn chặn việc phát lại. Số thứ tự ban đầu chứa sổ cái số ở bit cao để tránh phát lại ngay cả sau khi xóa và tạo lại tài khoản. Tiêu chí hợp lệ khác là giới hạn tùy chọn khi một giao dịch có thể thực hiện. Trở về đất và đô la hoán đổi trên, nếu A ký giao dịch trước B thì A không được muốn B tham gia giao dịch trong một năm trước khi nộp đơn nó và do đó có thể đặt ra giới hạn thời gian làm mất hiệu lực giao dịch sau một vài ngày. Tài khoản Multisig cũng có thể được cấu hình để tạo sức thuyết phục cho việc tiết lộ hình ảnh trước hash, kết hợp với giới hạn thời gian, cho phép giao dịch chuỗi chéo nguyên tử [1]. Tài khoản nguồn của giao dịch trả một khoản phí nhỏ bằng XLM, 10−5 XLM trừ khi có tắc nghẽn. Dưới tình trạng tắc nghẽn, chi phí hoạt động được thiết lập bởi đấu giá Hà Lan. Trình xác nhận là không được trả phí vì validator tương tự tới Bitcoin nút đầy đủ, không phải công cụ khai thác. Thay vì phá hủy XLM, phí được tái chế và phân bổ theo tỷ lệ bằng phiếu bầu của những người nắm giữ XLM hiện có, mà nhìn lại có thể hoặc có thể không có giá trị phức tạp. 5.3 Giá trị đồng thuận Đối với mỗi sổ cái, Stellar sử dụng SCP để thống nhất về cấu trúc dữ liệu với ba trường: bộ giao dịch hash (bao gồm hash của tiêu đề sổ cái trước đó), thời gian đóng,d nâng cấp. Khi nhiều giá trị được xác nhận đề cử, Stellar sẽ thực hiện tập hợp giao dịch có nhiều hoạt động nhất (phá vỡ mối quan hệ theo tổng phí, sau đó là tập giao dịch hash), liên minh của tất cả nâng cấp và thời gian đóng cao nhất. Một thời gian gần gũi chỉ là hợp lệ nếu nó nằm trong khoảng thời gian đóng của sổ cái cuối cùng và hiện tại, do đó các nút không chỉ định thời gian không hợp lệ. Các bản nâng cấp điều chỉnh các tham số chung như số dư dự trữ, phí hoạt động tối thiểu và phiên bản giao thức. Khi nào được kết hợp trong quá trình đề cử, mức phí cao hơn và số phiên bản giao thức sẽ thay thế mức phí thấp hơn. Nâng cấp hiệu quả quản trị thông qua không gian tranh chấp biểu quyết liên bang [34], cũng không bình đẳng và không tập trung. Mỗi validator được định cấu hình là quản lý hoặc không quản lý (mặc định), theo liệu người điều hành nó có muốn tham gia quản trị hay không. validator quản trị xem xét ba loại nâng cấp: mong muốn, hợp lệ và không hợp lệ (bất cứ điều gì validator không

SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. validator cốt lõi chân trời FS cơ sở dữ liệu cơ sở dữ liệu nộp khách hàng khách hàng validator khác Hình 5. Kiến trúc Stellar validator biết cách thực hiện). Các nâng cấp mong muốn được cấu hình để kích hoạt tại một thời điểm cụ thể, nhằm mục đích phối hợp giữa các nhà khai thác. Các nút quản trị luôn bỏ phiếu để đề cử mong muốn nâng cấp, chấp nhận nhưng không bỏ phiếu để đề cử nâng cấp hợp lệ (tức là tuân theo số đại biểu chặn) và không bao giờ bỏ phiếu cho hoặc chấp nhận nâng cấp không hợp lệ. Tiếng vang validators không quản lý bất kỳ phiếu bầu nào họ thấy cho một bản nâng cấp hợp lệ, về cơ bản là ủy quyền quyết định về những nâng cấp mong muốn đối với những người lựa chọn cho vai trò quản trị. 5,4 Thực hiện Hình 5 hiển thị kiến trúc validator của Stellar. Một con quỷ được gọi là Stellar-core (∼92k dòng C++, không tính thư viện của bên thứ ba) triển khai giao thức SCP và máy trạng thái được sao chép. Việc tạo ra các giá trị cho SCP yêu cầu giảm số lượng lớn các mục sổ cái thành các mật mã nhỏ hashes. Ngược lại, việc xác nhận và thực hiện giao dịch yêu cầu tra cứu trạng thái tài khoản và khớp lệnh tại giá tốt nhất. Để phục vụ cả hai chức năng một cách hiệu quả, Stellar-core giữ hai cách trình bày của sổ cái: một cách trình bày bên ngoài chứa danh sách nhóm, được lưu trữ dưới dạng tệp nhị phân có thể được cập nhật một cách hiệu quả và được rehashed tăng dần, và một biểu diễn nội bộ trong cơ sở dữ liệu SQL (PostgreSQL cho các nút sản xuất). Stellar-core tạo kho lưu trữ lịch sử chỉ ghi có chứa mỗi bộ giao dịch đã được xác nhận và ảnh chụp nhanh của xô. Kho lưu trữ cho phép các nút mới tự khởi động khi tham gia mạng. Nó cũng cung cấp một bản ghi sổ cái lịch sử—cần có một nơi nào đó để người ta có thể tra cứu giao dịch từ hai năm trước. Vì lịch sử chỉ được thêm vào và được truy cập không thường xuyên, nó có thể được giữ ở những nơi rẻ tiền chẳng hạn như Amazon Glacier hoặc bất kỳ dịch vụ nào cho phép một người lưu trữ và truy xuất các tập tin phẳng. Máy chủ xác thực thường không lưu trữ tài liệu lưu trữ của riêng họ để tránh bất kỳ tác động nào đến việc xác thực hiệu suất từ lịch sử phục vụ. Để giữ cho lõi sao đơn giản, nó không được thiết kế để sử dụng trực tiếp bởi các ứng dụng và chỉ hiển thị một giao diện rất hẹp để gửi các giao dịch mới. Để hỗ trợ khách hàng, hầu hết validator đều chạy một daemon có tên là Horizon (∼18k dòng Go) cung cấp giao diện HTTP để gửi và tìm hiểu các giao dịch. Horizon có quyền truy cập chỉ đọc vào cơ sở dữ liệu SQL của Stellar-core, giảm thiểu rủi ro về chân trời làm mất ổn định lõi sao. Các tính năng như tìm đường dẫn thanh toán được triển khai hoàn toàn trong thời gian ngắn và có thể được nâng cấp đơn phương mà không phối hợp với validator khác. Một số daemon lớp cao hơn tùy chọn là ứng dụng khách ở đường chân trời, hoàn thiện hệ sinh thái. Một máy chủ cầu nối tạo điều kiện thuận lợi tích hợp Stellar với các hệ thống hiện có, ví dụ: đăng thông báo về tất cả các khoản thanh toán mà một tài khoản cụ thể nhận được. A máy chủ tuân thủ cung cấp các kết nối cho các tổ chức tài chính để trao đổi và phê duyệt thông tin người gửi và người thụ hưởng về thanh toán, để tuân thủ danh sách trừng phạt. Cuối cùng, một máy chủ liên kết thực hiện cách đặt tên mà con người có thể đọc được hệ thống cho các tài khoản. 6 Kinh nghiệm triển khai Stellar đã phát triển trong vài năm thành một tiểu bang có mức độ phát triển vừa phải số lượng nhà khai thác nút đầy đủ có độ tin cậy hợp lý. Tuy nhiên, cấu hình của các nút sao cho có tính sống động (mặc dù không an toàn) phụ thuộc vào chúng tôi, Quỹ Phát triển Stellar (SDF); SDF đột nhiên biến mất, các nhà khai thác nút khác sẽ cần phải can thiệp và loại bỏ chúng tôi theo cách thủ công từ các lát đại biểu để mạng tiếp tục. Trong khi chúng tôi và nhiều người khác muốn giảm tầm quan trọng mang tính hệ thống của SDF, mục tiêu này ngày càng được ưu tiên hơn sau các nhà nghiên cứu [58] đã định lượng và công khai tính tập trung của mạng mà không phân biệt các rủi ro đối với sự an toàn và sự sống động. Một số nhà khai thác đã phản ứng bằng các điều chỉnh cấu hình tích cực, chủ yếu là tăng kích thước cắt giảm số đại biểu trong nỗ lực làm giảm tầm quan trọng của SDF; Trớ trêu thay, điều này chỉ làm tăng nguy cơ ảnh hưởng đến sự sống. Hai vấn đề làm trầm trọng thêm tình hình. Đầu tiên, một phổ biến công cụ giám sát Stellar của bên thứ ba [5] được thực hiện một cách có hệ thống đánh giá quá cao validator thời gian hoạt động do không thực sự xác minh lõi sao đó đang chạy; điều này khiến mọi người bao gồm các nút không đáng tin cậy trong các lát đại biểu của chúng. Thứ hai, một lỗi trong lõi sao có nghĩa là khi validator được chuyển sang sổ cái tiếp theo, nó không giúp ích đầy đủ cho các nút còn lại hoàn thành giai đoạn trướcsổ cái trong trường hợp mất tin nhắn. Kết quả là, mạng đã trải qua 67 phút ngừng hoạt động và được yêu cầu quản trị viên validator phối hợp thủ công để khởi động lại. Tệ hơn nữa, trong khi cố gắng khởi động lại mạng, việc cấu hình lại vội vàng đồng thời trên nhiều nút đã dẫn đến kết quả là trong một cấu hình sai tập thể cho phép một số nút phân kỳ, yêu cầu tắt thủ công các nút đó và gửi lại các giao dịch được chấp nhận trong thời gian phân kỳ. May mắn thay, sự khác biệt này đã được phát hiện và khắc phục nhanh chóng và không chứa các giao dịch xung đột, nhưng nguy cơ mạng không đạt được giao điểm đại biểu— chia rẽ trong khi vẫn tiếp tục chấp nhận những xung đột tiềm ẩn giao dịch, đơn giản là do cấu hình sai—đã được thực hiện rất cụ thể về sự việc này. Việc xem xét lại những kinh nghiệm này dẫn đến hai kết luận chính và các hành động khắc phục tương ứng.Thanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Quan trọng, 100% 51% 51% Cao, 67% 51% Trung bình, 67% 51% Thấp, 67% 51% 51% ... ... ... 51% ... 51% Hình 6. Phân cấp chất lượng của trình xác thực. Các nút chất lượng cao nhất yêu cầu ngưỡng cao nhất là 100%, trong khi chất lượng thấp hơn được định cấu hình ở ngưỡng 67%. Các nút trong một tổ chức yêu cầu đa số đơn giản là 51%. 6.1 Cấu hình phức tạp và dễ vỡ Stellar biểu thị các lát cắt đại biểu dưới dạng tập hợp đại biểu lồng nhau bao gồm n mục nhập và ngưỡng k trong đó bất kỳ tập hợp k mục nào tạo thành một lát đại biểu. Mỗi mục trong số n mục sau đó là một khóa công khai validator hoặc theo cách đệ quy, một tập đại biểu khác. Mặc dù linh hoạt và nhỏ gọn, chúng tôi đã nhận ra số đại biểu lồng nhau đặt đồng thời các toán tử nút có quá nhiều tính linh hoạt và quá ít hướng dẫn: rất dễ viết không an toàn (hoặc thậm chí là cấu hình vô nghĩa). Tiêu chí phân nhóm các nút thành các tập hợp, để tổ chức các tập hợp con thành một hệ thống phân cấp và để lựa chọn các ngưỡng đều không đủ rõ ràng và góp phần gây ra những thất bại trong hoạt động. Không rõ liệu có nên coi một “cấp độ” trong hệ thống phân cấp lồng nhau là một mức độ tin cậy, hoặc một tổ chức, hoặc cả hai; nhiều cấu hình trong lĩnh vực này trộn lẫn các khái niệm này, ngoài việc xác định mức độ nguy hiểm hoặc ngưỡng vô nghĩa. Do đó chúng tôi đã thêm một cơ chế cấu hình đơn giản hơn phân tách hai khía cạnh của các nhóm đại biểu lồng nhau: nhóm các nút lại với nhau theo tổ chức và gắn nhãn cho mỗi tổ chức bằng một phân loại tin cậy đơn giản (thấp, trung bình, cao hoặc quan trọng). Các tổ chức ở cấp cao trở lên được yêu cầu phải xuất bản kho lưu trữ lịch sử. Hệ thống mới tổng hợp các tập hợp đại biểu lồng nhau trong đó mỗi tổ chức được biểu diễn dưới dạng Đã đặt ngưỡng 51% và các tổ chức được nhóm thành các nhóm với ngưỡng 67% hoặc 100% (tùy chất lượng nhóm). Mỗi nhóm là một mục duy nhất trong nhóm tiếp theo (chất lượng cao hơn), như minh họa trong Hình 6. Mô hình đơn giản hóa này làm giảm khả năng cấu hình sai, cả về mặt cấu trúc của các tập hợp lồng nhau được tổng hợp và các ngưỡng được chọn cho mỗi bộ. 6.2 Chủ động phát hiện cấu hình sai Thứ hai, chúng tôi nhận ra rằng việc phát hiện hành vi cấu hình sai tập thể bằng cách chờ quan sát tác động tiêu cực của nó là quá muộn. Đặc biệt đối với các cấu hình sai có thể khác nhau—a chế độ lỗi nghiêm trọng hơn là tạm dừng—mạng cần có thể phát hiện cấu hình sai ngay lập tức để người vận hành có thể hoàn nguyên cấu hình đó trước khi bất kỳ sự khác biệt nào thực sự xảy ra. Để giải quyết nhu cầu này, chúng tôi đã xây dựng một cơ chế trong phần mềm validator để liên tục thu thập trạng thái cấu hình chung của tất cả các nút ngang hàng trong quá trình đóng chuyển tiếp của nút và phát hiện khả năng phân kỳ—tức là rời rạc nhóm túc số—trong cấu hình tập thể đó. 6.2.1 Kiểm tra giao lộ đại biểu Mặc dù việc thu thập các nhóm đại biểu là điều dễ dàng nhưng việc tìm ra các nhóm túc số rời rạc trong số đó là việc khó [62]. Tuy nhiên, chúng tôi đã thông qua một tập hợp các phương pháp chẩn đoán thuật toán và quy tắc loại bỏ trường hợp được đề xuất bởi Lachowski [62] để kiểm tra các trường hợp điển hình của vấn đề nhanh hơn nhiều bậc so với chi phí trong trường hợp xấu nhất. Thực tế mà nói, mạng hiện tại các lần đóng chuyển tiếp lát cắt đại biểu theo thứ tự 20–30 các nút và, với sự tối ưu hóa của Lachowski, thường kiểm tra chỉ trong vài giây trên một CPU. Nếu có nhu cầu phát sinh để nâng cao hiệu suất, chúng tôi có thể thực hiện tìm kiếm song song. 6.2.2 Kiểm tra cấu hình rủi ro Phát hiện mạng thừa nhận các đại biểu rời rạc là một bước đi đúng hướng nhưng báo nguy hiểm muộn một cách khó chịu đối với một vấn đề quan trọng như vậy. Lý tưởng nhất là chúng tôi muốn các nhà khai thác nút nhận được cảnh báo khi cấu hình chung của mạng chỉ đang tiến đến một trạng thái rủi ro. Do đó, chúng tôi đã mở rộng trình kiểm tra giao điểm đại biểu để phát hiện một điều kiện mà chúng tôi gọi là tới hạn: khi dòng điện cấu hình tập thể chỉ là một cấu hình sai một tiểu bang thừa nhận số đại biểu rời rạc. Để phát hiện mức độ nghiêm trọng, trình kiểm tra liên tục thay thế cấu hình của mỗi tổ chức bằng cấu hình sai mô phỏng trong trường hợp xấu nhất, sau đó chạy lại trình kiểm tra giao điểm đại biểu bên trong trên kết quả. Nếu có bất kỳ cấu hình sai nghiêm trọng nào như vậy tồn tại thì chỉ còn một bước nữa là từ trạng thái hiện tại, phần mềm sẽ đưa ra cảnh báo và báo cáo tổ chức gây ra rủi ro cấu hình sai. Những thay đổi này cung cấp cho cộng đồng các nhà khai thác hai lớp thông báo và hướng dẫn cách ly chống lại các hình thức tồi tệ nhất của việc cấu hình sai tập thể.

تقييم

Stellar network quorum slice map showing validator nodes and their bidirectional dependencies

لفهم مدى ملاءمة Stellar كدفعة عالمية و شبكة التداول، قمنا بتقييم حالة الشبكة العامة وأجرى تجارب مضبوطة على تجربة خاصة شبكة. ركزنا على الأسئلة التالية: • كيف تبدو طوبولوجيا شبكة الإنتاج؟ كم عدد الرسائل التي يتم بثها في المتوسط، و كيف يواجه SCP المهلات؟ • هل يظل زمن الاستجابة لتحديث الإجماع ودفتر الأستاذ مستقلاً عن عدد الحسابات؟SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. • كيف تتأثر فترات الاستجابة بزيادة (أ) المعاملات في الثانية (وبالتالي المعاملات في كل ثانية). دفتر الأستاذ)، و(ب) عدد العقد validator؟ • ما هي تكلفة تشغيل العقدة من حيث وحدة المعالجة المركزية، الذاكرة وعرض النطاق الترددي للشبكة؟ تتمتع شبكات الدفع بمعدلات معاملات منخفضة مقارنة إلى أنواع أخرى من النظام الموزع. الرائدة blockchains، Bitcoin وEthereum، تأكيد ما يصل إلى 15 معاملة في الثانية، أقل من Stellar. علاوة على ذلك، تستغرق هذه الأنظمة دقائق ساعة لتأكيد المعاملة بشكل آمن، لأن إثبات العمل يتطلب الانتظار حتى يتم تعدين عدة كتل. ال بلغ متوسط شبكة غير blockchain SWIFT 420 معاملة في الثانية فقط في يوم الذروة [14]. لذلك اخترنا لمقارنة قياساتنا مع هدف الـ 5 ثواني الفاصل الزمني دفتر الأستاذ، وهو هدف أكثر عدوانية. تظهر نتائجنا أن زمن الوصول أقل من هذا الحد بشكل مريح حتى مع العديد من التحسينات غير المنفذة لا تزال قيد التنفيذ. 7.1 المراسي تشمل الأصول الأكثر تداولًا من حيث الحجم العملة (على سبيل المثال، 3 دولارات أمريكية المرساة، 2 يوان صيني)، المرساة Bitcoin، والأمان المدعوم بالعقارات token [92]، والعملة داخل التطبيق [8]. المراسي المختلفة لها سياسات مختلفة. على سبيل المثال، مرساة واحدة بالدولار الأمريكي، Stronghold، يقوم بتعيين auth_reqired ويتطلب عملية معرفة عميلك (KYC) لكل حساب يحتفظ به الأصول. آخر، AnchorUSD، يتيح لأي شخص الاستلام والتداول الدولار الأمريكي (مما يجعل من الممكن حرفيًا إرسال 0.50 دولارًا إلى المكسيك في 5 ثواني برسوم قدرها 0.000001 دولار). ومع ذلك، مرساةUSD يتطلب KYC ورسومًا لشراء أو استرداد الدولار الأمريكي مع التحويلات البرقية التقليدية. في الفلبين حيث تعتبر اللوائح المصرفية أكثر مرونة فيما يتعلق بالمدفوعات الواردة، والعملات المعدنية يدعم صرف PHP من أي ماكينة صراف آلي [36]. بالإضافة إلى الأمان المذكور أعلاه token والعملة داخل التطبيق، هناك مجموعة من العملات غير token تتراوح من السندات التجارية [22] وأرصدة الكربون [85، 96] وأكثر الأصول الباطنية مثل token التحفيز التعاوني استعادة ملكية السيارة [35]. 7.2 شبكة عامة حتى كتابة هذه السطور، هناك 126 عقدة كاملة نشطة، 66 منها المشاركة في الإجماع من خلال التوقيع على رسائل التصويت. الشكل 7 (تم إنشاؤه بواسطة [5]) يصور الشبكة، مع وجود خط بينهما عقدتان إذا ظهرت إحداهما في شرائح النصاب القانوني للأخرى و أ خط أزرق غامق لإظهار الاعتماد ثنائي الاتجاه. في المركز عبارة عن مجموعة من 17 "المستوى الأول validators" بحكم الأمر الواقع يديرها SDF، وSatoshiPay، وLOBSTR، وCOINQVEST، وKeybase. قبل أربعة أشهر، قبل أحداث القسم السادس، هناك كانت هناك 15 عقدة ذات أهمية نظامية: 3 منها على ما يبدو منظمات من المستوى الأول والعديد من المفردات العشوائية. ال بدا الرسم البياني أيضًا أقل انتظامًا. ومن ثم، تظهر آلية التكوين الجديدة و/أو قرارات المشغل الأفضل للمساهمة في طوبولوجيا الشبكة الأكثر صحة. بدون موارد مالية كبيرة (والمساهمين المقابلين الشكل 7. خريطة شريحة النصاب القانوني الالتزامات)، كان من الصعب تعيين 5 الطبقة الأولى لكن المنظمات منذ البداية. وهذا يشير إلى النصاب القانوني تلعب الشرائح دورًا مفيدًا في تمهيد الشبكة: يمكن لأي شخص ذلك انضم بهدف أن تصبح لاعبًا مهمًا بسبب لا يوجد حراس على الاتفاق الزوجي. يوجد حاليًا أكثر من 3.3 مليون حساب في دفتر الأستاذ. انتهى خلال فترة 24 ساعة الأخيرة، بلغ متوسط Stellar 4.5 معاملة و 15.7 عملية في الثانية. مراجعة دفاتر الأستاذ الأخيرة، أكثر يبدو أن المعاملات لديها عملية واحدة، في حين أن كل عدد قليل دفاتر الأستاذ نرى المعاملات التي تحتوي على العديد من العمليات التي يبدو أنها تأتي من صانعي السوق الذين يديرون العروض. ال متوسط الأوقات لتحقيق الإجماع وتحديث دفتر الأستاذ كان 1061 مللي ثانية و 46 مللي ثانية على التوالي. وكانت النسب المئوية 99 2252 مللي ثانية و142 مللي ثانية (يعكس الأول مهلة مدتها ثانية واحدة في اختيار زعيم الترشيح). لاحظ أن أداء SCP هو معظمها مستقلة عن المعاملات في الثانية الواحدة، منذ SCP يوافق على hash من العديد من المعاملات بشكل تعسفي. من المرجح أن تنشأ الاختناقات من نشر المرشح المعاملات أثناء الترشيح والتنفيذ والمصادقة المعاملات، ودمج الدلاء. لم نحتاج بعد لموازاة معالجة المعاملات الخاصة بـ Stellar-core عبر عدة مراكز لوحدة المعالجة المركزية أو محركات الأقراص. قمنا أيضًا بتقييم عدد رسائل SCP التي يتم بثها على شبكة الإنتاج. في الحالة العادية مع واحد الزعيم المنتخب لترشيح قيمة، نتوقع سبعة منطقية الرسائل التي سيتم بثها: رسالتان للتصويت والقبول نوميبيان نيت، رسالتين للقبول والتأكيد بيان إعداد، رسالتين للقبول والتأكيد بيان الالتزام، وأخيرا، رسالة خارجية (تم إرساله بعد الالتزام بدفتر أستاذ جديد على القرص لمساعدة المتطرفين اللحاق). يجمع التنفيذ بين تأكيد الالتزام وإضفاء الطابع الخارجي على الرسائل كتحسين، لأنه كذلك من الآمن إضفاء الطابع الخارجي على القيمة بعد الالتزام بها. نقوم بعد ذلك بتحليل المقاييس المجمعة على الإنتاج Stellar validator. انتهى على مدار 68 ساعة، تم بث 1.3 رسالة في الثانية، بمتوسط 6-7 رسائل لكل دفتر. ونلاحظ أن المجموع

مدفوعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا المئوي عدد المهلات الترشيح الاقتراع 75% 0 0 99% 1 0 ماكس 4 1 الشكل 8. المهلة لكل دفتر الأستاذ أكثر من 68 ساعة عدد الرسائل التي يتم بثها بواسطة validators أكبر، منذ عام بالإضافة إلى رسائل التصويت الموحد، يتم أيضًا بث العقد أي معاملات يتعلمون عنها. ويبين الشكل 8 المهلات التي يمر بها الإنتاج validator خلال فترة 68 ساعة. مهلة الترشيح هي وهو مقياس لمدى (عدم) فعالية وظيفة انتخاب القائد، في حين أن مهلة الاقتراع تعتمد بشكل كبير على الشبكة والتأخير المحتمل للرسائل. المهلات متسقة مع عدد الرسائل المرسلة: ستة رسائل في أفضل السيناريوهات، وسبع رسائل على الأقل إذا كانت هناك حاجة إلى جولة ترشيح إضافية. 7.3 التجارب الخاضعة للرقابة أجرينا تجارب مضبوطة في حاويات معبأة مثيلات Amazon EC2 c5d.9xlarge مع 72 جيجابايت من ذاكرة الوصول العشوائي، 900 جيجابايت من NVMe SSD و36 وحدة معالجة مركزية افتراضية. كل مثيل كان في نفس منطقة EC2 وكان لها عرض نطاق ترددي ثابت يبلغ 10 جيجابت في الثانية. استخدمنا SQLite كمتجر. (Stellar يدعم أيضًا PostgreSQL، ولكن هذا يحتوي على مهام غير متزامنة تضخ الضوضاء في القياسات.) يوفر Stellar استعلامًا مدمجًا في وقت التشغيل، وإنشاء التحميل، الذي يسمح بتوليد حمل اصطناعي على هدف محدد المعاملة/المعدل الثاني. على الرغم من أن Stellar يدعم العديد من ميزات التداول، مثل دفتر الطلبات ومسار الأصول المشتركة المدفوعات، ركزنا على المدفوعات البسيطة. يتكون تأكيد المعاملات من خطوات متعددة، لذلك نحن سجلت القياسات لكل مما يلي: • الترشيح: الوقت منذ الترشيح وحتى الإعداد الأول • الاقتراع: الوقت من الإعداد الأول إلى التأكيد ارتكبت الاقتراع • تحديث دفتر الأستاذ: حان الوقت لتطبيق القيمة المتفق عليها • عدد المعاملات: المعاملات المؤكدة لكل دفتر الأستاذ تم تعريف كل تجربة من تجاربنا من خلال ثلاث معلمات: عدد إدخالات الحساب في دفتر الأستاذ، ومبلغ التحميل (في شكل دفعات XLM) المقدمة في الثانية، وعدد validators. قمنا بتكوين كل validator لمعرفة المزيد عن كل validator (السيناريو الأسوأ بالنسبة إلى SCP)، مع تعيين شرائح النصاب القانوني على أي أغلبية بسيطة من العقد (بسبب زيادة عدد النصاب القانوني المختلفة). خط الأساس تم قياس تجربتنا الأساسية بـ Stellar بـ 100000 حساب، وأربعة validators، وتوليد التحميل معدل 100 معاملة / ثانية. لقد لاحظنا 507 معاملة لكل دفتر أستاذ في المتوسط، مع انحراف معياري قدره 49 (9.7%). لاحظ أنه لم يتم إسقاط أية معاملات؛ الطفيف 105 106 107 0 500 1000 1500 2000 الحسابات الكمون [مللي ثانية] تحديث دفتر الأستاذ الاقتراع الترشيح الشكل 9. الكمون مع زيادة عدد الحسابات يرجع التباين إلى قيود الجدولة الخاصة بمولد الحمل. لاحظنا أن عدد المعاملات لكل دفتر الأستاذ كان متسقًا مع معدل توليد التحميل لدينا، نظرًا لدفتر الأستاذ إغلاق كل 5 ثواني الترشيح والاقتراع وسجل الأستاذ أظهر التحديث متوسط زمن الوصول 82.53 مللي ثانية، 95.96 مللي ثانية، و 174.08 مللي ثانية، على التوالي. لاحظنا أن الكمون الترشيح النسبة المئوية 99 دائمًا أقل من 61 مللي ثانية، مع بعض الأحيان طفرات مدتها ثانية واحدة تقريبًا، تتوافق مع الخطوة الأولى في وظيفة المهلة لاختيار القائد. وبالنظر إلى الأداء الأساسي، نظرنا إلى التأثيرات من تغيير كل من معلمات إعداد الاختبار. الحسابات تشير البيانات الواردة في الشكل 9 إلى أن المقياس Stellar وكذلك عدد الحسابات يزيد. جيل الاختبار أصبحت الحسابات عملية طويلة، حيث أن إنشاء الدلو و لقد منعنا الدمج من ملء قاعدة البيانات ببساطة مع الحسابات مباشرة عبر SQL. ولذلك، أجرينا لدينا تجارب لما يصل إلى 50,000,000 حساب. في حين أن هناك الحد الأدنى من التأثير على الإجماع وزمن وصول تحديث دفتر الأستاذ، نلاحظ أن زيادة الحسابات تؤدي إلى زيادة في النفقات العامة دمج الدلاء، والتي تصبح أكبر. معدل المعاملة يؤثر معدل المعاملة على المبلغ حركة البث المتعدد بين validators، وعدد المعاملات المضمنة في كل دفتر أستاذ، وحجم المستوى الأعلى دلاء. لفهم آثار زيادة المعاملات التحميل، أجرينا تجربة على 100000 حساب و4 validators. ويبين الشكل 10 النمو البطيء في زمن الوصول المتفق عليه، بينما تم قضاء معظم الوقت في تحديث دفتر الأستاذ. ليس من المستغرب أنه مع زيادة حجم مجموعة المعاملات، فإنه يستغرق وقتًا أطول لربطه بقاعدة البيانات. ونلاحظ ذلك أيضا يعتمد زمن استجابة تحديث دفتر الأستاذ بشكل كبير على التنفيذ، ويتأثر باختيار قاعدة البيانات. عقد التحقق من الصحة لمعرفة كيفية زيادة عدد tierone validatorsيؤثر على الأداء، أجرينا التجارب مع 100000 حساب، و100 معاملة في الثانية، وعدد متفاوت من validators من 4 إلى 43. ظهرت جميع validators في جميع شرائح النصاب القانوني لـ validators؛ سوف شرائح النصاب أصغر لها تأثير أقل على الأداء.SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا لوخافا وآخرون. 100 150 200 250 300 350 0 500 1000 1500 2000 تحميل [المعاملات/الثانية] الكمون [مللي ثانية] تحديث دفتر الأستاذ الاقتراع الترشيح الشكل 10. زمن الوصول مع زيادة حمل المعاملات 10 20 30 40 0 500 1000 1500 2000 المدققون الكمون [مللي ثانية] تحديث دفتر الأستاذ الاقتراع الترشيح الشكل 11. الكمون مع زيادة عدد العقد تغيير عدد عقد التحقق على الشبكة يؤثر أيضًا على عدد رسائل SCP المتبادلة عدد القيم المحتملة أثناء الترشيح. الشكل 11 يُظهر أن وقت الترشيح ينمو بمعدل صغير نسبيًا. وفي حين تشير البيانات إلى أن الاقتراع هو عنق الزجاجة، فإننا نعتقد أنه يمكن معالجة العديد من مشكلات التوسع من خلال التحسين شبكة Stellar المتراكبة لتحسين حركة مرور الشبكة. كما المتوقع، ظل زمن استجابة تحديث دفتر الأستاذ مستقلاً عن عدد العقد. سعر الإغلاق أخيرًا، أردنا قياس أداء Stellar الشامل من خلال قياس عدد مرات تأكيد دفاتر الأستاذ وما إذا كان Stellar يحقق هدفه البالغ 5 ثوانٍ دون إسقاط أي معاملات. لاحظنا إغلاق دفتر الأستاذ المتوسط مرات 5.03 ثانية و 5.10 ثانية و 5.15 ثانية مع زيادة الحساب الإدخالات ومعدل المعاملات وعدد العقد على التوالي. تشير النتائج إلى أن Stellar يمكنه إغلاق دفاتر الأستاذ باستمرار تحت حمولة عالية. 7.4 تشغيل validator إحدى الميزات المهمة لـ Stellar هي التكلفة المنخفضة تشغيل validator، حيث يجب تشغيل المراسي (أو التعاقد معها) validators لفرض النهاية. يقوم SDF بتشغيل 3 وحدات إنتاج validator، جميعها على مثيلات c5.large AWS، والتي تحتوي على مركزين، 4 غيغابايت من ذاكرة الوصول العشوائي ووحدة المعالجة المركزية Intel (R) Xeon (R) Platinum 8124M معالجات بسرعة 3.00 جيجا هرتز. فحص استخدام الموارد على واحد من هذه الأجهزة، لاحظنا استخدام عملية Stellar حوالي 7% من وحدة المعالجة المركزية و300 ميجابايت من الذاكرة. من حيث حركة مرور الشبكة، مع 28 اتصالاً بالأقران وحجم النصاب القانوني من 34، كانت معدلات الدخول والخروج 2.78 ميجابت/ثانية و 2.56 ميجابت/ثانية، على التوالي. الأجهزة المطلوبة لتشغيل مثل هذا العملية غير مكلفة. في حالتنا، تبلغ التكلفة 0.054 دولارًا في الساعة أو حوالي 40 دولارًا في الشهر. 7.5 العمل المستقبلي تشير هذه التجارب إلى أن Stellar يمكنه بسهولة التوسع في طلب واحد أو أمرين بحجم يتجاوز استخدام الشبكة اليوم. لأن لقد كانت متطلبات الأداء متواضعة جدًا حتى الآن، Stellar يترك مجالًا للعديد من التحسينات المباشرة باستخدام تقنيات معروفة. على سبيل المثال، المعاملات وSCP يتم بث الرسائل بواسطة validators باستخدام فيضان ساذج بروتوكول، ولكن يجب أن يستخدم بشكل مثالي أكثر كفاءة وتنظيما البث المتعدد من نظير إلى نظير [30]. بالإضافة إلى ذلك، قاعدة بيانات ثقيلة يمكن تحسين وقت تحديث دفتر الأستاذ من خلال تقنيات التجميع والجلب المسبق القياسية.

Sự đánh giá

Stellar network quorum slice map showing validator nodes and their bidirectional dependencies

Để hiểu sự phù hợp của Stellar với tư cách là phương thức thanh toán toàn cầu và mạng lưới giao dịch, chúng tôi đã đánh giá trạng thái của mạng công cộng và chạy các thí nghiệm có kiểm soát trên một phòng thí nghiệm riêng mạng. Chúng tôi tập trung vào các câu hỏi sau: • Cấu trúc liên kết mạng sản xuất trông như thế nào? Trung bình có bao nhiêu tin nhắn được phát đi và SCP trải qua thời gian chờ như thế nào? • Độ trễ đồng thuận và cập nhật sổ cái có còn độc lập với số lượng tài khoản không?SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. • Độ trễ bị ảnh hưởng như thế nào khi tăng (a) giao dịch trên giây (và do đó, giao dịch trên mỗi giây) sổ cái) và (b) số nút validator? • Chi phí chạy một nút tính theo CPU là bao nhiêu, bộ nhớ và băng thông mạng? Mạng thanh toán có tỷ lệ giao dịch thấp so với với các loại hệ thống phân tán khác. blockchain hàng đầu, Bitcoin và Ethereum, xác nhận tối đa 15 giao dịch/giây, nhỏ hơn Stellar. Hơn nữa, các hệ thống này mất vài phút để một giờ để xác nhận giao dịch một cách an toàn, vì bằng chứng công việc yêu cầu phải chờ một số khối được khai thác. các mạng không phảiblockchain SWIFT chỉ đạt trung bình 420 giao dịch mỗi giây vào ngày cao điểm [14]. Do đó chúng tôi đã chọn để so sánh số đo của chúng tôi với mục tiêu 5 giây khoảng thời gian sổ cái, một mục tiêu tích cực hơn. Kết quả của chúng tôi cho thấy độ trễ ở dưới mức giới hạn này một cách thoải mái ngay cả với một số tối ưu hóa chưa được thực hiện vẫn đang được thực hiện. 7.1 Neo Các tài sản được giao dịch nhiều nhất theo khối lượng bao gồm tiền tệ (ví dụ: 3 USD neo, 2 CNY), neo Bitcoin, chứng khoán được hỗ trợ bởi bất động sản token [92] và tiền tệ trong ứng dụng [8]. Các neo khác nhau có chính sách khác nhau. Ví dụ: một mỏ neo USD, Stronghold, đặt auth_reqired và yêu cầu quy trình xác định khách hàng (KYC) cho mọi tài khoản nắm giữ tài sản. Một cái khác, AnchorUSD, để mọi người nhận và giao dịch USD của họ (làm cho việc gửi 0,50 USD đến Mexico theo đúng nghĩa đen là có thể trong 5 giây với mức phí 0,000001 USD). Tuy nhiên, AnchorUSD không yêu cầu KYC và phí để mua hoặc đổi USD của họ với chuyển khoản thông thường. Ở Philippines, nơi các quy định của ngân hàng lỏng lẻo hơn đối với các khoản thanh toán đến, coins.ph hỗ trợ rút tiền PHP tại bất kỳ máy ATM nào [36]. Ngoài bảo mật token và đơn vị tiền tệ trong ứng dụng nói trên, còn có nhiều loại token phi tiền tệ khác nhau, từ trái phiếu thương mại [22] và tín chỉ carbon [85, 96] trở lên nội dung bí truyền chẳng hạn như token khuyến khích cộng tác thu hồi xe [35]. 7.2 Mạng công cộng Tính đến thời điểm viết bài này, có 126 nút đầy đủ đang hoạt động, 66 trong số đó tham gia thống nhất bằng cách ký vào tin nhắn biểu quyết. Hình 7 (được tạo bởi [5]) trực quan hóa mạng, với một đường giữa hai nút nếu một nút xuất hiện trong các lát đại biểu của nút kia và một đường màu xanh đậm hơn để hiển thị sự phụ thuộc hai chiều. Tại trung tâm là một cụm gồm 17 “cấp một validators” trên thực tế được điều hành bởi SDF, SatoshiPay, LOBSTR, COINQVEST và Keybase. Bốn tháng trước, trước sự kiện ở Phần 6, có có 15 nút quan trọng về mặt hệ thống: 3 từ dường như các tổ chức cấp một và một số đơn vị ngẫu nhiên. các biểu đồ cũng trông kém đều đặn hơn nhiều. Do đó, cơ chế cấu hình mới và/hoặc các quyết định vận hành tốt hơn dường như để góp phần tạo nên cấu trúc liên kết mạng lành mạnh hơn. không có nguồn tài chính lớn (và cổ đông tương ứng Hình 7. Bản đồ lát cắt đại biểu nghĩa vụ), sẽ rất khó để tuyển dụng 5 cấp một Tuy nhiên, các tổ chức ngay từ đầu. Điều này cho thấy số đại biểu các lát cắt đóng một vai trò hữu ích trong quá trình khởi động mạng: bất kỳ ai cũng có thể tham gia với mục tiêu trở thành một người chơi quan trọng bởi vì không có người gác cổng để thỏa thuận theo cặp. Hiện có hơn 3,3 triệu tài khoản trong sổ cái. Kết thúc trong khoảng thời gian 24 giờ gần đây, Stellar trung bình có 4,5 giao dịch và 15,7 hoạt động mỗi giây. Xem lại sổ cái gần đây, hầu hết các giao dịch dường như chỉ có một thao tác duy nhất, trong khi cứ một vài giao dịch sổ cái chúng ta thấy các giao dịch chứa nhiều hoạt động dường như đến từ việc các nhà tạo lập thị trường quản lý các chào hàng. các thời gian cần thiết để đạt được sự đồng thuận và cập nhật sổ cái là lần lượt là 1061 ms và 46 ms. Phân vị thứ 99 là 2252 ms và 142 ms (trước đây phản ánh thời gian chờ 1 giây trong việc lựa chọn lãnh đạo đề cử). Lưu ý hiệu suất của SCP là hầu như độc lập với các giao dịch mỗi giây, vì SCP đồng ý với hash nhiều giao dịch tùy ý. Nút thắt có nhiều khả năng phát sinh từ việc tuyên truyền ứng cử viên giao dịch trong quá trình đề cử, thực hiện và xác nhận giao dịch và nhóm hợp nhất. Chúng tôi vẫn chưa cần để song song quá trình xử lý giao dịch của Stellar-Core trên nhiều lõi CPU hoặc ổ đĩa. Chúng tôi cũng đã đánh giá số lượng tin nhắn SCP được phát đi trên mạng sản xuất. Trong trường hợp bình thường với một lãnh đạo được bầu để đề cử một giá trị, chúng tôi mong đợi bảy hợp lý tin nhắn được phát sóng: hai tin nhắn để bỏ phiếu và chấp nhận một nomituyên bố nate, hai tin nhắn để chấp nhận và xác nhận một tuyên bố chuẩn bị, hai tin nhắn để chấp nhận và xác nhận một tuyên bố cam kết và cuối cùng là một thông báo bên ngoài (được gửi sau khi ghi một sổ cái mới vào đĩa để giúp những người đi lạc bắt kịp). Việc thực hiện kết hợp xác nhận cam kết và hiển thị các thông điệp như một sự tối ưu hóa, vì nó an toàn để đưa ra ngoài một giá trị sau khi nó được cam kết. Sau đó, chúng tôi phân tích các số liệu được thu thập trong quá trình sản xuất Stellar validator. Kết thúc trong 68 giờ, 1,3 tin nhắn/giây được phát ra, trung bình có 6-7 tin nhắn trên mỗi sổ cái. Chúng tôi lưu ý rằng tổng

Thanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Phần trăm Số lần hết giờ Đề cử Bỏ phiếu 75% 0 0 99% 1 0 Tối đa 4 1 Hình 8. Thời gian chờ trên mỗi sổ cái hơn 68 giờ số lượng tin nhắn được phát bởi validators lớn hơn vì trong Ngoài các tin nhắn biểu quyết liên kết, các nút còn phát sóng bất kỳ giao dịch nào họ tìm hiểu. Hình 8 cho thấy thời gian chờ của quá trình sản xuất validator trong khoảng thời gian 68 giờ. Thời gian chờ đề cử là thước đo tính hiệu quả (trong) của chức năng bầu cử người lãnh đạo, trong khi thời gian chờ bỏ phiếu phụ thuộc nhiều vào mạng và sự chậm trễ của tin nhắn có thể xảy ra. Thời gian chờ nhất quán với số lượng tin nhắn được phát ra: sáu tin nhắn trong trường hợp tốt nhất và ít nhất bảy tin nhắn nếu cần một vòng đề cử bổ sung. 7.3 Thí nghiệm có kiểm soát Chúng tôi đã tiến hành các thí nghiệm có kiểm soát trong các thùng chứa được đóng gói trên Phiên bản Amazon EC2 c5d.9xlarge có RAM 72 GiB, 900 GB SSD NVMe và 36 vCPU. Mỗi trường hợp nằm trong cùng vùng EC2 và có băng thông cố định 10 Gbps. Chúng tôi đã sử dụng SQLite làm cửa hàng. (Stellar cũng hỗ trợ PostgreSQL, nhưng nó có các tác vụ không đồng bộ gây nhiễu vào các phép đo.) Stellar cung cấp truy vấn thời gian chạy tích hợp, tạo tải, cho phép tạo tải tổng hợp tại một mục tiêu cụ thể giao dịch/tỷ lệ thứ hai. Mặc dù Stellar hỗ trợ nhiều các tính năng giao dịch, chẳng hạn như sổ đặt hàng và đường dẫn tài sản chéo thanh toán, chúng tôi tập trung vào thanh toán đơn giản. Việc xác nhận giao dịch bao gồm nhiều bước, vì vậy chúng tôi ghi lại các phép đo cho mỗi trường hợp sau: • Đề cử: thời gian từ khi đề cử đến khi chuẩn bị lần đầu • Bỏ phiếu: thời gian từ khi chuẩn bị lần đầu đến khi xác nhận phiếu cam kết • Cập nhật sổ cái: thời gian áp dụng giá trị đồng thuận • Số lượng giao dịch: số giao dịch được xác nhận trên mỗi sổ cái Mỗi thử nghiệm của chúng tôi được xác định bởi ba tham số: số lượng tài khoản trong sổ cái, số tiền tải (dưới dạng thanh toán XLM) được gửi mỗi giây, và số lượng validator giây. Chúng tôi đã định cấu hình mọi validator biết về mọi validator khác (trường hợp xấu nhất cho SCP), với các lát đại biểu được đặt thành bất kỳ phần lớn đơn giản nào các nút (để tối đa hóa số lượng đại biểu khác nhau). Đường cơ sở Thử nghiệm cơ bản của chúng tôi đã đo Stellar bằng 100.000 tài khoản, bốn validator và tạo tải tốc độ 100 giao dịch/giây. Chúng tôi quan sát thấy trung bình 507 giao dịch trên mỗi sổ cái, với độ lệch chuẩn là 49. (9,7%). Lưu ý rằng không có giao dịch nào bị hủy; sự nhẹ nhàng 105 106 107 0 500 1.000 1.500 2.000 Tài khoản Độ trễ [ms] Cập nhật sổ cái Bỏ phiếu Đề cử Hình 9. Độ trễ khi số lượng tài khoản tăng lên phương sai là do các hạn chế về lịch trình của bộ tạo tải. Chúng tôi quan sát thấy rằng số lượng giao dịch trên mỗi sổ cái phù hợp với tốc độ tạo tải của chúng tôi, dựa trên sổ cái đóng mỗi 5 giây. Đề cử, bỏ phiếu và sổ cái bản cập nhật cho thấy độ trễ trung bình là 82,53 ms, 95,96 ms và tương ứng là 174,08 ms. Chúng tôi quan sát thấy độ trễ đề cử Phân vị thứ 99 luôn dưới 61 mili giây, thỉnh thoảng tăng đột biến khoảng 1 giây, tương ứng với bước đầu tiên trong chức năng hết thời gian của việc lựa chọn người lãnh đạo. Dựa trên hiệu suất cơ bản, chúng tôi đã xem xét tác động thay đổi từng thông số thiết lập thử nghiệm. Tài khoản Dữ liệu trong Hình 9 gợi ý rằng thang đo Stellar cũng như số lượng tài khoản tăng lên. Tạo thử nghiệm tài khoản đã trở thành một quá trình kéo dài vì việc tạo nhóm và việc hợp nhất đã ngăn cản chúng tôi điền vào cơ sở dữ liệu với các tài khoản trực tiếp qua SQL. Vì vậy, chúng tôi đã tiến hành thử nghiệm cho tối đa 50.000.000 tài khoản. Trong khi có tác động tối thiểu đến sự đồng thuận và độ trễ cập nhật sổ cái, chúng tôi lưu ý rằng việc tăng tài khoản sẽ tạo ra chi phí chung các thùng hợp nhất sẽ lớn hơn. Tỷ giá giao dịch Tỷ giá giao dịch ảnh hưởng đến số lượng lưu lượng truy cập đa hướng giữa validator, số lượng giao dịch có trong mỗi sổ cái và kích thước của cấp cao nhất xô. Để hiểu tác động của việc tăng giao dịch tải, chúng tôi đã chạy thử nghiệm với 100.000 tài khoản và 4 validators. Hình 10 cho thấy độ trễ đồng thuận tăng chậm, trong khi phần lớn thời gian được dành để cập nhật sổ cái. Không có gì ngạc nhiên khi tập giao dịch tăng kích thước, nó mất nhiều thời gian hơn để đưa nó vào cơ sở dữ liệu. Chúng tôi cũng lưu ý rằng độ trễ cập nhật sổ cái phụ thuộc rất nhiều vào việc thực hiện, và bị ảnh hưởng bởi việc lựa chọn cơ sở dữ liệu. Các nút xác thực Để xem số cấp bậc validators tăng như thế nàotác động đến hiệu suất, chúng tôi đã chạy thử nghiệm với 100.000 tài khoản, 100 giao dịch/giây và số lượng validator khác nhau từ 4 đến 43. Tất cả validator đều xuất hiện trong tất cả các phần đại biểu của validator; lát đại biểu nhỏ hơn sẽ có tác động ít hơn đến hiệu suất.SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada Lokhava và cộng sự. 100 150 200 250 300 350 0 500 1.000 1.500 2.000 Tải [giao dịch/giây] Độ trễ [ms] Cập nhật sổ cái Bỏ phiếu Đề cử Hình 10. Độ trễ khi tải giao dịch tăng lên 10 20 30 40 0 500 1.000 1.500 2.000 Trình xác nhận Độ trễ [ms] Cập nhật sổ cái Bỏ phiếu Đề cử Hình 11. Độ trễ khi số lượng nút tăng lên Thay đổi số lượng nút xác thực trên mạng ảnh hưởng đến số lượng tin nhắn SCP được trao đổi cũng như số lượng giá trị tiềm năng trong quá trình đề cử. Hình 11 cho thấy thời gian đề cử tăng với tốc độ tương đối nhỏ. Mặc dù dữ liệu cho thấy việc bỏ phiếu là điểm nghẽn, chúng tôi tin rằng nhiều vấn đề về quy mô có thể được giải quyết bằng cách cải thiện Mạng lớp phủ của Stellar để tối ưu hóa lưu lượng truy cập mạng. Như dự kiến, độ trễ cập nhật sổ cái vẫn độc lập với số lượng nút. Tỷ lệ đóng Cuối cùng, chúng tôi muốn đo lường hiệu suất từ đầu đến cuối của Stellar bằng cách đo tần suất các sổ cái được xác nhận và liệu Stellar có đáp ứng được mục tiêu 5 giây của nó mà không bỏ bất kỳ giao dịch nào. Chúng tôi quan sát thấy sổ cái trung bình đóng lần 5,03 giây, 5,10 giây và 5,15 giây khi chúng tôi tăng tài khoản các mục nhập, tỷ lệ giao dịch và số lượng nút tương ứng. Kết quả cho thấy Stellar có thể đóng sổ cái một cách nhất quán dưới tải cao. 7.4 Đang chạy validator Một trong những tính năng quan trọng của Stellar là chi phí thấp đang chạy validator, vì các neo sẽ chạy (hoặc ký hợp đồng với) validators để thực thi quyết định cuối cùng. SDF chạy 3 validator sản xuất, tất cả đều trên phiên bản AWS c5.large có hai lõi, RAM 4 GiB và CPU Intel(R) Xeon(R) Platinum 8124M @ Bộ xử lý 3.00GHz. Kiểm tra việc sử dụng tài nguyên trên một trong số các máy này, chúng tôi đã quan sát quy trình Stellar bằng cách sử dụng khoảng 7% CPU và 300 MiB bộ nhớ. Về lưu lượng mạng, với 28 kết nối tới các thiết bị ngang hàng và quy mô đại biểu trong số 34, tốc độ đến và đi là 2,78 Mbit/s và tương ứng là 2,56 Mbit/s. Phần cứng cần thiết để chạy như vậy quá trình là không tốn kém. Trong trường hợp của chúng tôi, chi phí là 0,054 USD/giờ hoặc khoảng $40/tháng. 7,5 Công việc tương lai Những thử nghiệm này cho thấy Stellar có thể dễ dàng mở rộng quy mô từ 1–2 đơn hàng có tầm quan trọng vượt xa mức sử dụng mạng ngày nay. Bởi vì nhu cầu về hiệu suất cho đến nay vẫn rất khiêm tốn, Stellar nhường chỗ cho nhiều cách tối ưu hóa đơn giản bằng cách sử dụng những kỹ thuật nổi tiếng. Ví dụ: giao dịch và SCP tin nhắn được phát bởi validator bằng cách sử dụng tính năng tràn ngập đơn giản giao thức, nhưng lý tưởng nhất là nên sử dụng hiệu quả hơn, có cấu trúc hơn phát đa hướng ngang hàng [30]. Ngoài ra, cơ sở dữ liệu nặng Thời gian cập nhật sổ cái có thể được cải thiện thông qua các kỹ thuật phân nhóm và tìm nạp trước tiêu chuẩn.

خاتمة

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

دفعات عالمية سريعة وآمنة باستخدام Stellar SOSP '19، 27-30 أكتوبر 2019، هانتسفيل، أونتاريو، كندا

Phần kết luận

Thanh toán quốc tế rất tốn kém và mất nhiều ngày. Quỹ quyền giám hộ đi qua nhiều tổ chức tài chính bao gồm các ngân hàng đại lý và dịch vụ chuyển tiền. Bởi vì mỗi bước nhảy phải được tin cậy hoàn toàn nên rất khó cho các bước nhảy mới. những người tham gia để giành thị phần và cạnh tranh. Stellar trình chiếu cách gửi tiền khắp thế giới với chi phí rẻ chỉ trong vài giây. các cải tiến quan trọng là giao thức thỏa thuận Byzantine dành cho thành viên mở mới, SCP, thúc đẩy cấu trúc ngang hàng của mạng lưới tài chính để đạt được sự đồng thuận toàn cầu theo một giả thuyết Internet mới lạ. SCP cho phép Stellar cam kết nguyên tử giao dịch không thể đảo ngược giữa những người tham gia tùy ý không biết hoặc tin tưởng lẫn nhau. Điều đó đảm bảo cho những người mới tham gia tiếp cận được các thị trường giống như đã được thiết lập người chơi, đảm bảo an toàn để có được trao đổi tốt nhất hiện có ngay cả từ những nhà tạo lập thị trường không đáng tin cậy, và đáng kể giảm độ trễ thanh toán. Lời cảm ơn Stellar sẽ không có được ngày hôm nay nếu không sớm sự lãnh đạo của Joyce Kim hay những đóng góp to lớn của Scott Fleckenstein và Bartek Nowotarski trong việc xây dựng và duy trì chân trời, Stellar SDK và các phần quan trọng khác của hệ sinh thái Stellar. Chúng tôi cũng cảm ơn Kolten Bergeron, Henry Corrigan-Gibbs, Candace Kelly, Kapil K. Jain, Boris Reznikov, Jeremy Rubin, Christian Rudder, Eric Saunders, Torsten Stüber, Tomer Weller, những người đánh giá ẩn danh, và người chăn cừu Justine Sherry của chúng tôi vì những nhận xét hữu ích của họ về những bản thảo trước đó. Tuyên bố từ chối trách nhiệm Đóng góp của Giáo sư Mazières cho ấn phẩm này là một nhà tư vấn được trả lương chứ không phải là một phần trong công việc của ông. Nhiệm vụ hoặc trách nhiệm của Đại học Stanford.

Thanh toán toàn cầu nhanh chóng và an toàn với Stellar SOSP '19, ngày 27–30 tháng 10 năm 2019, Huntsville, ON, Canada