Das Stellar-Konsensprotokoll

โดย David Mazières · 2015

โหมดเดี่ยว stellar.org

บทคัดย่อ

การชำระเงินระหว่างประเทศนั้นช้าและมีราคาแพง ส่วนหนึ่งเป็นเพราะการกำหนดเส้นทางการชำระเงินแบบหลายฮอปผ่านต่างกัน ระบบธนาคาร Stellar คือเครือข่ายการชำระเงินระดับโลกแห่งใหม่ ที่สามารถโอนเงินดิจิทัลได้โดยตรงทุกที่ใน โลกในไม่กี่วินาที นวัตกรรมที่สำคัญคือการทำธุรกรรมที่ปลอดภัย กลไกข้ามตัวกลางที่ไม่น่าเชื่อถือโดยใช้กลไกใหม่ โปรโตคอลข้อตกลงไบแซนไทน์ที่เรียกว่า SCP ด้วย SCP แต่ละตัว สถาบันระบุสถาบันอื่นที่จะยังคงอยู่ ในข้อตกลง; ผ่านการเชื่อมโยงระหว่างกันทั่วโลกของ ระบบการเงินทั้งเครือข่ายจึงตกลงกันแบบอะตอมมิก ธุรกรรมที่ครอบคลุมสถาบันต่างๆ โดยพลการ โดยไม่มีความเสี่ยงในการละลายหรืออัตราแลกเปลี่ยนจากผู้ออกสินทรัพย์ตัวกลาง หรือผู้ดูแลสภาพคล่อง เรานำเสนอแบบจำลอง ระเบียบวิธี และ การตรวจสอบอย่างเป็นทางการ อธิบายเครือข่ายการชำระเงิน Stellar และสุดท้ายประเมิน Stellar เชิงประจักษ์ผ่านการวัดประสิทธิภาพ และประสบการณ์ของเราในการใช้งานการผลิตเป็นเวลาหลายปี แนวคิดของซีซีเอส • ความปลอดภัยและความเป็นส่วนตัว →กระจาย ความปลอดภัยของระบบ • การจัดระบบคอมพิวเตอร์ → สถาปัตยกรรมแบบเพียร์ทูเพียร์ • ระบบสารสนเทศ → การโอนเงินทางอิเล็กทรอนิกส์ คำหลัก blockchain, BFT องค์ประชุม การชำระเงิน รูปแบบการอ้างอิง ACM: มาร์ตา โลคาวา, จูเลียโน โลซา, เดวิด มาซิแยร์, เกรย์ดอน ฮวาเร, นิโคลัส แบร์รี่, เอไล กาฟนี่, โจนาธาน โจฟ, ราฟาเอล มาลินอฟสกี้, เจด แม็กคาเลบ 2019 การชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar ใน SOSP ’62: การประชุมสัมมนาเรื่องหลักการระบบปฏิบัติการ วันที่ 27–30 ตุลาคม 2019 ฮันต์สวิลล์ ON แคนาดา ACM, นิวยอร์ก, NY, สหรัฐอเมริกา, 17 หน้า https://doi.org/10.1145/3341301.3359636

Zusammenfassung

Internationale Zahlungen sind langsam und teuer, was teilweise auf die Multi-Hop-Zahlungsweiterleitung über heterogene Systeme zurückzuführen ist Bankensysteme. Stellar ist ein neues globales Zahlungsnetzwerk das digitales Geld direkt überall in der Welt überweisen kann Welt in Sekunden. Die entscheidende Neuerung ist eine sichere Transaktion Mechanismus über nicht vertrauenswürdige Vermittler unter Verwendung eines neuen Byzantinisches Vereinbarungsprotokoll namens SCP. Mit SCP, jeweils Die Institution gibt andere Institutionen an, bei denen sie bleiben soll im Einvernehmen; durch die globale Vernetzung der Finanzsystem, das gesamte Netzwerk einigt sich dann auf Atomarität Transaktionen zwischen beliebigen Institutionen, ohne Solvenz- oder Wechselkursrisiko durch zwischengeschaltete Emittenten von Vermögenswerten oder Market Maker. Wir präsentieren SCPs Modell, Protokoll und formelle Überprüfung; Beschreiben Sie das Zahlungsnetzwerk Stellar; und schließlich Stellar empirisch durch Benchmarks bewerten und unsere Erfahrung aus mehrjährigem Produktionseinsatz. CCS-Konzepte • Sicherheit und Datenschutz → Verteilt Systemsicherheit; • Organisation von Computersystemen → Peer-to-Peer-Architekturen; • Informationssysteme → Elektronischer Geldtransfer. Schlüsselwörter blockchain, BFT, Quoren, Zahlungen ACM-Referenzformat: Marta Lokhava, Giuliano Losa, David Mazières, Graydon Hoare, Nicolas Barry, Eli Gafni, Jonathan Jove, Rafał Malinowsky, Jed McCaleb. 2019. Schnelle und sichere globale Zahlungen mit Stellar. Im SOSP ’19: Symposium zu Betriebssystemprinzipien, 27.–30. Oktober, 2019, Huntsville, ON, Kanada. ACM, New York, NY, USA, 17 Seiten. https://doi.org/10.1145/3341301.3359636

การแนะนำ

การชำระเงินระหว่างประเทศช้ามากและมีค่าใช้จ่ายสูง [32] พิจารณาความไม่สามารถทำได้จริงในการส่งเงิน $0.50 จากสหรัฐอเมริกาไปที่ *กาลอยส์ อิงค์ †ยูซีแอลเอ อนุญาตให้จัดทำสำเนาดิจิทัลหรือสำเนาของงานนี้ทั้งหมดหรือบางส่วนเพื่อ อนุญาตให้ใช้ส่วนตัวหรือในชั้นเรียนโดยไม่มีค่าธรรมเนียม โดยที่ไม่ต้องทำสำเนา จัดทำหรือแจกจ่ายเพื่อหากำไรหรือข้อได้เปรียบทางการค้าและมีสำเนาดังกล่าว ประกาศนี้และการอ้างอิงฉบับเต็มในหน้าแรก ลิขสิทธิ์สำหรับส่วนประกอบ งานนี้ต้องเป็นของบุคคลอื่นที่ไม่ใช่ ACM จะต้องได้รับเกียรติ นามธรรมด้วย เครดิตได้รับอนุญาต หากต้องการคัดลอกหรือเผยแพร่ซ้ำเพื่อโพสต์บนเซิร์ฟเวอร์หรือไปที่ แจกจ่ายไปยังรายการ ต้องได้รับอนุญาตเฉพาะล่วงหน้าและ/หรือมีค่าธรรมเนียม คำขอ สิทธิ์จาก [email protected] SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา © 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], ซึ่งซ้ำเติมด้วยเทคโนโลยีที่ไม่มีประสิทธิภาพ คนไหน. สามารถสร้างสรรค์สิ่งใหม่ๆ ได้ ราคาและเวลาในการตอบสนองลดลง ตัวอย่างเช่น การโอนเงินจากบัญชีธนาคารในไตรมาสที่ 2 ปี 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, Huntsville, ON, แคนาดา โลกาวา และคณะ บรรลุเป้าหมาย 1 และ 3 ในการขุด blockchains ที่โดดเด่นที่สุดในรูปแบบของ ERC20 tokens บน Ethereum [3] แนวคิดหลักของ blockchains เหล่านี้คือการสร้างสกุลเงินดิจิทัลใหม่เพื่อใช้เป็นรางวัลแก่ผู้คนสำหรับการตั้งถิ่นฐาน ธุรกรรมที่ยากต่อการย้อนกลับ ขออภัย ซึ่งหมายความว่าผู้ออก token ไม่ได้ควบคุมการทำธุรกรรมขั้นสุดท้าย ถ้าเป็นซอฟต์แวร์ ข้อผิดพลาดทำให้ประวัติการทำธุรกรรมถูกจัดระเบียบใหม่ [26, 73] หรือเมื่อริบมาจากคนฉ้อโกงเกินราคา การจัดระเบียบประวัติศาสตร์ใหม่ [74, 97] ผู้ออกอาจต้องรับผิดชอบต่อ tokens พวกเขาได้แลกเป็นเงินในโลกแห่งความเป็นจริงแล้ว Stellar blockchain มีคุณสมบัติที่แตกต่างสองประการ ประการแรก สนับสนุนตลาดที่มีประสิทธิภาพโดยกำเนิดระหว่าง tokens จากผู้ออกบัตรที่แตกต่างกัน โดยเฉพาะ ใครๆ ก็สามารถออก token, blockchain มีสมุดคำสั่งซื้อในตัวสำหรับการซื้อขายระหว่างคู่ tokens ใดๆ และผู้ใช้สามารถออกการชำระเงินตามเส้นทางได้ ที่มีการซื้อขายแบบอะตอมมิกในหลายคู่สกุลเงินในขณะนั้น รับประกันราคาจำกัดตั้งแต่ต้นจนจบ ประการที่สอง Stellar แนะนำข้อตกลงไบเซนไทน์ใหม่ โปรโตคอล SCP (Stellar โปรโตคอลฉันทามติ) ซึ่งผ่านทางนั้น token ผู้ออกกำหนดเซิร์ฟเวอร์ validator เฉพาะเพื่อบังคับใช้ การทำธุรกรรมขั้นสุดท้าย ตราบใดที่ไม่มีใครประนีประนอม validators ของผู้ออก (และลายเซ็นดิจิทัลที่เกี่ยวข้องและ การเข้ารหัสลับ hashes ยังคงปลอดภัย) ผู้ออกจะทราบแน่ชัดว่าธุรกรรมใดเกิดขึ้นและหลีกเลี่ยงความเสี่ยง ของการสูญเสียจากการปรับโครงสร้างประวัติศาสตร์ blockchain แนวคิดหลักของ SCP คือผู้ออกสินทรัพย์ส่วนใหญ่ได้รับประโยชน์จาก ตลาดที่มีสภาพคล่องและต้องการอำนวยความสะดวกในการทำธุรกรรมปรมาณู กับทรัพย์สินอื่นๆ ดังนั้น validator ผู้ดูแลระบบจึงกำหนดค่า เซิร์ฟเวอร์ของพวกเขาจะเห็นด้วยกับ validators อื่น ๆ อย่างแน่นอน ประวัติการทำธุรกรรมทั้งหมดในสินทรัพย์ทั้งหมด validator v1 สามารถเป็นได้ กำหนดค่าให้เห็นด้วยกับ v2 หรือ v2 สามารถกำหนดค่าให้เห็นด้วยได้ กับ v1 หรือทั้งสองอย่างอาจกำหนดค่าให้เห็นด้วยซึ่งกันและกัน ในทุกกรณี จะไม่ยอมรับประวัติการทำธุรกรรมจนกว่า มันรู้ว่าอีกฝ่ายไม่สามารถยอมรับประวัติศาสตร์ที่แตกต่างได้ โดยการเปลี่ยนแปลง ถ้า v1 ไม่เห็นด้วยกับ v2 และ v2 ไม่เห็นด้วยกับ v3 (หรือกลับกัน) v1 จะไม่เห็นด้วยกับ v3 v3 ไม่ว่า v3 จะแสดงถึงสินทรัพย์ v1 หรือไม่ก็ตาม ของ. ภายใต้สมมติฐานที่ว่าข้อตกลงเหล่านี้มีความสัมพันธ์กัน เชื่อมต่อเครือข่ายทั้งหมดอย่างต่อเนื่อง SCP รับประกัน ข้อตกลงระดับโลก ทำให้เป็นข้อตกลงไบแซนไทน์ระดับโลก โปรโตคอลที่มีการเป็นสมาชิกแบบเปิด เราเรียกสมมติฐานการเชื่อมต่อใหม่นี้ว่าสมมติฐานอินเทอร์เน็ต และสังเกตว่ามัน ถือครองทั้ง “อินเทอร์เน็ต” (ซึ่งใครๆ ก็เข้าใจ หมายถึงเครือข่าย IP ที่เชื่อมต่อแบบ Transitive ที่ใหญ่ที่สุดเพียงเครือข่ายเดียว) และการชำระเงินระหว่างประเทศแบบเดิม (ซึ่งเป็นแบบ hop-by-hop ไม่ใช่อะตอม แต่ใช้ประโยชน์จากการเชื่อมต่อแบบเปลี่ยนผ่านทั่วโลก เครือข่ายสถาบันการเงิน) Stellar ใช้งานจริงตั้งแต่เดือนกันยายน 2015 เพื่อให้ blockchain สามารถจัดการความยาวได้ ระบบจะทำงาน SCP ในช่วงเวลา 5 วินาที—เร็วตามมาตรฐาน blockchain แต่ ช้ากว่าการใช้งานทั่วไปของข้อตกลงไบแซนไทน์มาก แม้ว่าการใช้งานหลักจะเป็นการชำระเงิน แต่ Stellar ก็มีเช่นกัน ได้รับการพิสูจน์แล้วว่าน่าสนใจสำหรับ tokens ที่ไม่สามารถทดแทนเงินได้ซึ่งได้รับประโยชน์ จากตลาดรองทันที (ดูหัวข้อ 7.1) ส่วนถัดไปจะกล่าวถึงงานที่เกี่ยวข้อง ส่วนที่ 3 นำเสนอ เอสซีพี. ส่วนที่ 4 อธิบายการตรวจสอบ SCP อย่างเป็นทางการของเรา ส่วนที่ 5 อธิบายชั้นการชำระเงินของ Stellar ส่วนที่ 6 เกี่ยวข้อง ประสบการณ์การปรับใช้บางส่วนและบทเรียนที่ได้เรียนรู้ ส่วนที่ 7 ประเมินระบบ ส่วนที่ 8 สิ้นสุดลง

Einführung

Internationale Zahlungen sind bekanntermaßen langsam und kostspielig [32]. Bedenken Sie, dass es unpraktisch ist, 0,50 US-Dollar aus den USA nach zu senden *Galois, Inc. †UCLA Erlaubnis, digitale oder gedruckte Kopien des gesamten oder eines Teils dieser Arbeit anzufertigen Die persönliche oder unterrichtsbezogene Nutzung ist unentgeltlich gestattet, sofern dies bei Kopien nicht der Fall ist zu Gewinnzwecken oder kommerziellen Vorteilen hergestellt oder verbreitet werden und dass Kopien berechtigt sind Diese Mitteilung und das vollständige Zitat auf der ersten Seite. Urheberrechte für Komponenten Werke, die anderen als ACM gehören, müssen gewürdigt werden. Abstrahieren mit Kredit ist zulässig. Zum anderweitigen Kopieren oder erneuten Veröffentlichen, zum Posten auf Servern oder auf Für die Weiterverbreitung in Listen ist eine vorherige ausdrückliche Genehmigung und/oder eine Gebühr erforderlich. Anfrage Berechtigungen von [email protected]. SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada © 2019 Association for Computing Machinery. ACM ISBN 978-1-4503-6873-5/19/10...15,00 $ https://doi.org/10.1145/3341301.3359636 Mexiko, zwei Nachbarländer. Endverbraucher zahlen fast 9 US-Dollar für den Durchschnitt einer solchen Übertragung [32] und eine bilaterale Vereinbarung Die von den Zentralbanken der Länder vermittelten Gelder konnten nur reduziert werden Die zugrunde liegenden Bankkosten belaufen sich auf 0,67 USD pro Artikel [2]. Zusätzlich zu den Gebühren Bei internationalen Zahlungen wird grundsätzlich die Latenz berücksichtigt innerhalb weniger Tage, was es unmöglich macht, schnell Geld ins Ausland zu bekommen Notfälle. In Ländern, in denen das Bankensystem dies nicht tut funktioniert oder nicht allen Bürgern dient, oder wenn die Gebühren untragbar sind, greifen die Menschen auf die Überweisung von Zahlungen per Bus [38], by zurück Boot [19] und gelegentlich jetzt auch mit Bitcoin [55], allesamt Risiken, Verzögerungen oder Unannehmlichkeiten mit sich bringen. Obwohl es immer Compliance-Kosten geben wird, deuten die Beweise darauf hin, dass ein erheblicher Betrag durch mangelnden Wettbewerb verloren geht [21], was durch ineffiziente Technologie noch verschärft wird. Wo Menschen kann innovativ sein, Preise und Latenzen sinken. Beispielsweise kosteten Überweisungen von Bankkonten im zweiten Quartal 2019 durchschnittlich 6,99 %, während der Wert für mobiles Geld nur 4,88 % betrug [13]. Ein offenes, globales Zahlungsnetzwerk, das Innovationen anzieht und die Konkurrenz durch Nichtbanken könnte nachlassen Kosten und Latenzen auf allen Ebenen, einschließlich Compliance [83]. In diesem Dokument wird Stellar vorgestellt, eine blockchain-basierte Zahlung Netzwerk, das speziell darauf ausgelegt ist, Innovationen zu erleichtern und Wettbewerb im internationalen Zahlungsverkehr. Stellar ist der erste System, um alle drei der folgenden Ziele zu erreichen (unter a neuartige, aber empirisch gültige „Internet-Hypothese“): 1. Offene Mitgliedschaft – Jeder kann währungsgestützte Ausgaben tätigen digitale tokens, die zwischen Benutzern ausgetauscht werden können. 2. Vom Emittenten erzwungene Endgültigkeit – Der Emittent eines token kann dies verhindern Transaktionen im token können nicht storniert oder rückgängig gemacht werden. 3. Emittentenübergreifende Atomizität – Benutzer können atomar austauschen und handeln Sie tokens von mehreren Emittenten. Die ersten beiden zu erreichen ist einfach. Jedes Unternehmen kann einseitig ein Produkt wie Paypal, Venmo, WeChat anbieten Bezahlen Sie oder Alipay und stellen Sie die Endgültigkeit der Zahlungen sicher virtuelle Währungen, die sie geschaffen haben. Leider ist eine atomare Transaktion über diese Währungen hinweg nicht möglich. Tatsächlich, obwohl Paypal die Muttergesellschaft von Venmo übernommen hat Im Jahr 2013 ist es für Endbenutzer immer noch unmöglich, Venmo zu versenden Dollar an Paypal-Benutzer [78]. Erst seit kurzem können Händler Akzeptieren Sie sogar beides mit einer einzigen Integration. Die Ziele 2 und 3 können in einem geschlossenen System erreicht werden. Insbesondere verfügen einige Länder über einen effizienten Inlandszahlungsverkehr Netzwerke, die in der Regel von einer allgemein vertrauenswürdigen Regulierungsbehörde überwacht werden. Die Mitgliedschaft ist jedoch auf eine geschlossene Mitgliedschaft beschränkt Die Anzahl der zugelassenen Banken und die Netzwerke sind auf die beschränkt Reichweite der Regulierungsbehörde eines Landes.SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. Die Ziele 1 und 3 wurden in abgebauten blockchains erreicht, vor allem in Form von ERC20 tokens auf Ethereum [3]. Die Kernidee dieser blockchains besteht darin, eine neue Kryptowährung zu schaffen, mit der Menschen für ihre Abwicklung belohnt werden können Transaktionen sind schwer rückgängig zu machen. Leider bedeutet dies, dass die Emittenten von token die Endgültigkeit der Transaktion nicht kontrollieren. Wenn Software Fehler führen dazu, dass der Transaktionsverlauf neu organisiert wird [26, 73], oder wenn die Beute betrügerischer Menschen die Kosten übersteigt Durch die Neuordnung der Historie [74, 97] können Emittenten für tokens haftbar gemacht werden Sie wurden bereits gegen echtes Geld eingelöst. Der Stellar blockchain hat zwei charakteristische Eigenschaften. Erstens unterstützt es nativ effiziente Märkte zwischen tokens von verschiedenen Emittenten. Konkret kann jeder ein token ausstellen, Der blockchain bietet ein integriertes Orderbuch für den Handel zwischen einem beliebigen Paar von tokens, und Benutzer können Pfadzahlungen ausstellen die gleichzeitig atomar über mehrere Währungspaare hinweg handeln Gewährleistung eines End-to-End-Grenzpreises. Zweitens führt Stellar ein neues byzantinisches Abkommen ein Protokoll, SCP (Stellar Consensus Protocol), über das token-Aussteller benennen bestimmte validator-Server zur Durchsetzung Endgültigkeit der Transaktion. Solange niemand die validators eines Ausstellers (und die zugrunde liegenden digitalen Signaturen und kryptografische hashes bleiben sicher), der Emittent weiß genau, welche Transaktionen stattgefunden haben und vermeidet das Risiko der Verluste aus der Umstrukturierung der blockchain-Historie. Die Kernidee von SCP besteht darin, dass die meisten Emittenten von Vermögenswerten davon profitieren liquide Märkte und wollen atomare Transaktionen ermöglichen mit anderen Vermögenswerten. Daher konfigurieren validator Administratoren ihre Server, um sich mit anderen validators auf das Genaue zu einigen Historie aller Transaktionen mit allen Vermögenswerten. Ein validator v1 kann sein entweder so konfiguriert werden, dass sie v2 zustimmt, oder v2 kann so konfiguriert werden, dass sie zustimmt mit v1, oder beide können so konfiguriert werden, dass sie miteinander übereinstimmen; In allen Fällen wird sich keiner von beiden auf eine Transaktionshistorie festlegen, bis Es weiß, dass der andere sich nicht auf eine andere Geschichte festlegen kann. Wenn aufgrund der Transitivität v1 nicht mit v2 und v2 mit v3 nicht einverstanden sein kann (oder umgekehrt), kann v1 nicht mit v2 übereinstimmen v3, ob v3 Vermögenswerte darstellt oder nicht, hat v1 überhaupt gehört von. Unter der Annahme, dass diese Vereinbarungsbeziehungen Transitiv das gesamte Netzwerk verbinden, garantiert SCP globales Abkommen, was es zu einem globalen byzantinischen Abkommen macht Protokoll mit offener Mitgliedschaft. Wir nennen diese neue Verbundenheitsannahme die Internet-Hypothese und stellen fest, dass dies der Fall ist gilt sowohl für „das Internet“ (was jeder versteht). bedeuten das größte transitiv verbundene IP-Netzwerk) und alte internationale Zahlungen (die Hop-by-Hop sind). nicht-atomar, sondern nutzen eine transitiv verbundene, globale Netzwerk von Finanzinstituten). Stellar ist seit September 2015 im Produktionseinsatz. Um die Länge von blockchain überschaubar zu halten, läuft das System SCP in 5-Sekunden-Intervallen – für blockchain-Verhältnisse schnell, aber weitaus langsamer als typische Anwendungen byzantinischer Vereinbarungen. Obwohl der Hauptzweck Zahlungen waren, gilt dies auch für Stellar hat sich als attraktiv für nicht durch Geld fungible tokens erwiesen, die davon profitieren aus unmittelbaren Sekundärmärkten (siehe Abschnitt 7.1). Im nächsten Abschnitt werden verwandte Arbeiten besprochen. Abschnitt 3 präsentiert SCP. Abschnitt 4 beschreibt unsere formelle Überprüfung von SCP. Abschnitt 5 beschreibt die Zahlungsebene von Stellar. Abschnitt 6 betrifft einige unserer Einsatzerfahrungen und gewonnenen Erkenntnisse. Abschnitt 7 bewertet das System. Abschnitt 8 schließt ab.

Stellar โปรโตคอลฉันทามติ

Stellar ฉันทามติโปรโตคอล (SCP) เป็นแบบองค์ประชุม โปรโตคอลข้อตกลงไบเซนไทน์พร้อมสมาชิกแบบเปิด องค์ประชุมเกิดขึ้นจากการตัดสินใจกำหนดค่าท้องถิ่นแบบรวมของแต่ละโหนด อย่างไรก็ตาม โหนดจะรับรู้เท่านั้น โควรัมที่พวกเขาเป็นเจ้าของและหลังจากนั้นเท่านั้น เรียนรู้การกำหนดค่าในเครื่องของสมาชิกโควรัมคนอื่นๆ ทั้งหมด ข้อดีอย่างหนึ่งของแนวทางนี้คือ SCP โดยธรรมชาติแล้ว ยอมรับมุมมองที่แตกต่างกันของโหนดที่มีอยู่ ดังนั้น โหนดสามารถเข้าร่วมและออกฝ่ายเดียวได้โดยไม่จำเป็นต้องมี “ดูการเปลี่ยนแปลง” โปรโตคอลเพื่อประสานงานสมาชิก 3.1 ข้อตกลงสหพันธรัฐไบเซนไทน์ ปัญหาข้อตกลงไบแซนไทน์แบบดั้งเดิมประกอบด้วย ระบบปิดของโหนด N ซึ่งบางส่วนมีข้อผิดพลาดและอาจเกิดขึ้นได้ ประพฤติตนตามอำเภอใจ โหนดรับค่าอินพุตและการแลกเปลี่ยน ข้อความเพื่อตัดสินใจเกี่ยวกับค่าเอาต์พุตระหว่างอินพุต โปรโตคอลข้อตกลง Byzantine จะปลอดภัยเมื่อไม่มีโหนดใดที่ประพฤติตัวดีสองโหนดจะให้การตัดสินใจที่แตกต่างกันและไม่ซ้ำกัน การตัดสินใจเป็นข้อมูลที่ถูกต้อง (สำหรับคำจำกัดความบางประการของข้อตกลงที่ถูกต้องSOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา โลกาวา และคณะ ไว้ล่วงหน้า) โปรโตคอลจะใช้งานได้เมื่อรับประกันสิ่งนั้น โหนดที่ซื่อสัตย์ทุกอันจะส่งผลให้มีการตัดสินใจในที่สุด โดยทั่วไปแล้ว โปรโตคอลจะถือว่า N = 3f + 1 สำหรับจำนวนเต็มบางตัว f > 0 รับประกันความปลอดภัยและความมีชีวิตชีวาบางรูปแบบดังนั้น ตราบใดที่โหนด f ส่วนใหญ่มีข้อผิดพลาด ในบางช่วงของสิ่งเหล่านี้ โปรโตคอล โหนดลงคะแนนเสียงตามค่าที่เสนอและข้อเสนอ ได้รับคะแนนเสียง 2f + 1 เรียกว่าเป็นองค์ประชุมของการลงคะแนนเสียง การตัดสินใจ ด้วย N = 3f + 1 โหนด สองโควรัมใดๆ ของ ขนาด 2f + 1 ทับซ้อนกันในอย่างน้อย f + 1 โหนด แม้ว่า f ของพวกนี้ก็ตาม โหนดที่ทับซ้อนกันมีข้อบกพร่อง อย่างน้อยทั้งสององค์ก็ใช้ร่วมกัน โหนดเดียวที่ไม่ผิดพลาด ป้องกันการตัดสินใจที่ขัดแย้งกัน อย่างไรก็ตาม วิธีการนี้จะใช้ได้ก็ต่อเมื่อโหนดทั้งหมดเห็นด้วยเท่านั้น สิ่งที่ถือเป็นองค์ประชุมซึ่งเป็นไปไม่ได้ใน SCP ที่ไหน สองโหนดอาจไม่รู้ด้วยซ้ำถึงการมีอยู่ของกันและกัน ด้วย SCP แต่ละโหนด v จะประกาศชุดของโหนดเพียงฝ่ายเดียว เรียกว่าส่วนองค์ประชุมดังกล่าว โดยที่ (ก) v เชื่อว่าถ้าทั้งหมด สมาชิกของสไลซ์เห็นด้วยกับสถานะของระบบแล้ว มันถูกต้อง และ (b) v เชื่อว่ามีชิ้นของมันอย่างน้อยหนึ่งชิ้น จะพร้อมให้ข้อมูลทันเวลาเกี่ยวกับ สถานะของระบบ เราเรียกระบบผลลัพธ์ซึ่งประกอบด้วย ของโหนดและส่วนต่างๆ ของโหนดเหล่านั้น ซึ่งเป็นข้อตกลงแบบสหพันธรัฐไบเซนไทน์ (เอฟบีเอ) ระบบ. ดังที่เราจะเห็นต่อไป ระบบองค์ประชุมเกิดขึ้น จากชิ้นของโหนด อย่างไม่เป็นทางการ ชิ้นส่วนของโหนด FBA จะแสดงกับใคร โหนดต้องมีข้อตกลง เช่น โหนดอาจต้องมีข้อตกลงกับ 4 องค์กรเฉพาะ โดยแต่ละองค์กรใช้งาน 3 โหนด ถึง เพื่อรองรับเวลาหยุดทำงานก็อาจตั้งค่าชิ้นให้เป็นชุดทั้งหมด ประกอบด้วย 2 โหนดจากแต่ละองค์กร หากสิ่งนี้ “ต้องการ ข้อตกลงกับ” ความสัมพันธ์แบบสกรรมกริยาสัมพันธ์ระหว่างสองโหนดใด ๆ เราได้รับข้อตกลงระดับโลก ไม่เช่นนั้น เราก็จะได้รับความแตกต่าง แต่เฉพาะระหว่างองค์กรที่ต้องการเท่านั้น ข้อตกลงกับอีกฝ่าย เมื่อพิจารณาถึงโทโพโลยีของวันนี้ ระบบการเงิน เราตั้งสมมติฐานว่าการบรรจบกันอย่างกว้างขวางจะทำให้เกิดประวัติศาสตร์บัญชีแยกประเภทที่ผู้คนเรียกกันว่า “เครือข่าย Stellar” เช่นเดียวกับที่เราพูดถึงอินเทอร์เน็ต โควรัมเกิดจากสไลซ์ดังนี้ ทุกโหนดระบุ โควรัมจะแบ่งส่วนในทุกข้อความที่ส่ง ให้ S เป็น ชุดของโหนดซึ่งเป็นที่มาของชุดข้อความ ก โหนดถือว่าชุดข้อความถึงองค์ประชุมแล้ว ขีดจำกัดเมื่อสมาชิกทุกคนของ S มีสไลซ์รวมอยู่ใน S โดยการก่อสร้าง ชุด S ดังกล่าว ถ้ามีมติเป็นเอกฉันท์จะเป็นที่พอใจ ข้อกำหนดข้อตกลงของสมาชิกแต่ละคน เพื่อนที่ผิดพลาดอาจโฆษณาชิ้นส่วนที่สร้างขึ้นเพื่อเปลี่ยนแปลงอะไร โหนดที่มีความประพฤติดีจะพิจารณาองค์ประชุม เพื่อประโยชน์ในการวิเคราะห์โปรโตคอล เราจึงกำหนดให้องค์ประชุมใน FBA เป็นองค์ประชุมที่ไม่ว่างเปล่า ชุด S ของโหนดครอบคลุมอย่างน้อยหนึ่งส่วนโควรัมของ สมาชิกแต่ละคนที่ไม่มีข้อบกพร่อง สิ่งที่เป็นนามธรรมนี้มีเสียงเหมือนชุดใด ๆ ของข้อความที่อ้างว่าเป็นองค์ประชุมที่เป็นเอกฉันท์ ทำได้จริง (แม้ว่าจะมีข้อความจากโหนดที่ผิดพลาด) และจะแม่นยำเมื่อ S มีเพียงโหนดที่ประพฤติตัวดีเท่านั้น ใน ในส่วนนี้ เรายังถือว่าสไลซ์ของโหนดไม่มีการเปลี่ยนแปลง อย่างไรก็ตาม ผลลัพธ์ของเราจะถูกถ่ายโอนไปยังกรณีการเปลี่ยนแปลงสไลซ์ เพราะระบบการเปลี่ยนสไลซ์นั้นปลอดภัยไม่น้อยไปกว่า ระบบชิ้นคงที่ซึ่งชิ้นของโหนดประกอบด้วยทั้งหมด สไลซ์ที่เคยใช้ในกรณีการเปลี่ยนสไลซ์ (ดูทฤษฎีบท 13 ใน [68]) ตามที่อธิบายไว้ในส่วนที่ 4 ความมีชีวิตชีวาขึ้นอยู่กับ โหนดที่มีความประพฤติดีจะลบโหนดที่ไม่น่าเชื่อถือออกไปในที่สุด จากชิ้นของพวกเขา เนื่องจากโหนดที่แตกต่างกันมีข้อกำหนดของข้อตกลงที่แตกต่างกัน FBA จึงขัดขวางคำจำกัดความสากลของความปลอดภัย เราพูด โหนดที่ไม่ผิดพลาด v1 และ v2 จะเชื่อมโยงกันทุกครั้ง โควรัมของ v1 ตัดทุกโควรัมของ v2 อย่างน้อยหนึ่งตัว โหนดที่ไม่ผิดพลาด โปรโตคอล FBA สามารถรับประกันข้อตกลงได้ ระหว่างโหนดที่พันกันเท่านั้น เนื่องจาก SCP ทำเช่นนั้น จึงเป็นความผิดของมัน ความอดทนต่อความปลอดภัยเป็นสิ่งที่ดีที่สุด สมมติฐานทางอินเทอร์เน็ต การออกแบบของ Stellar พื้นฐานระบุว่าโหนดที่ผู้คนสนใจ เกี่ยวกับจะเกี่ยวพันกัน เราบอกว่าชุดของโหนดที่ฉันยังคงอยู่หากฉันเป็นองค์ประชุมที่ไม่มีข้อผิดพลาดสม่ำเสมอ โดยที่สมาชิกทุกๆ สองคนของฉันจะเกี่ยวพันกัน แม้ว่าทุกโหนดภายนอกฉันจะมีข้อผิดพลาดก็ตาม โดยสัญชาตญาณ ข้าพเจ้าก็ควรเป็นผู้ไม่ประมาทในการกระทำที่ไม่เสียหาย โหนด SCP รับประกันความมีชีวิตชีวาที่ไม่ปิดกั้น [93] และ ความปลอดภัยต่อชุดที่ไม่เสียหาย แม้ว่าตัวโหนดเองจะไม่ต้องการก็ตาม ให้รู้(และอาจไม่รู้)ว่าชุดไหนสมบูรณ์ นอกจากนี้ การรวมกันของสองฉากที่สมบูรณ์ซึ่งตัดกันก็คือ ชุดที่สมบูรณ์ ดังนั้นชุดที่ไม่เสียหายจึงกำหนดพาร์ติชันของ โหนดที่ประพฤติตัวดี โดยที่แต่ละพาร์ติชั่นปลอดภัยและใช้งานได้จริง (ภายใต้เงื่อนไขบางประการ)แต่พาร์ติชั่นที่แตกต่างกันอาจเอาท์พุตได้ การตัดสินใจที่แตกต่างกัน 3.1.1 ข้อควรพิจารณาด้านความปลอดภัยเทียบกับความมีชีวิตชีวาใน FBA ด้วยข้อยกเว้นที่จำกัด [64] โปรโตคอลข้อตกลงไบแซนไทน์ที่ปิดส่วนใหญ่จะถูกปรับไปยังจุดสมดุลที่ ความปลอดภัยและความมีชีวิตชีวามีความทนทานต่อความผิดพลาดเหมือนกัน ในเอฟบีเอ นั่นหมายถึงการกำหนดค่าทั้งหมดโดยไม่คำนึงถึงความล้มเหลว ชุดที่เกี่ยวพันกันก็ยังคงอยู่เหมือนเดิม เนื่องจาก FBA เป็นผู้กำหนด โควรัมในลักษณะกระจายอำนาจ ไม่น่าเป็นไปได้ที่การเลือกสไลซ์แต่ละรายการจะนำไปสู่ความสมดุลนี้ นอกจากนี้ ณ อย่างน้อยที่สุดใน Stellar ความสมดุลไม่เป็นที่ต้องการ: ผลที่ตามมา ของความล้มเหลวด้านความปลอดภัย (ได้แก่ การใช้เงินดิจิทัลซ้ำซ้อน) เลวร้ายยิ่งกว่าความล้มเหลวด้านความมีชีวิตชีวา (ได้แก่ ความล่าช้า ในการชำระเงินที่ต้องใช้เวลาหลายวันก่อน Stellar) ผู้คน ดังนั้นควรเลือกองค์ประชุมขนาดใหญ่เช่นนั้น โหนดของพวกเขามีแนวโน้มที่จะยังคงพันกันมากกว่าเดิม การเอียงตาชั่งเพิ่มเติมจะทำให้ฟื้นตัวได้ง่ายขึ้น ความล้มเหลวในความมีชีวิตชีวาโดยทั่วไปในระบบ FBA มากกว่าในระบบปิดแบบดั้งเดิม ในระบบปิด ข้อความทั้งหมดจะต้องเป็น ตีความตามโควรัมชุดเดียวกัน ดังนั้น จำเป็นต้องเพิ่มและลบโหนดเพื่อกู้คืนจากความล้มเหลว การบรรลุฉันทามติเกี่ยวกับเหตุการณ์การกำหนดค่าใหม่ ซึ่งเป็นเรื่องยากเมื่อไม่มีฉันทามติอีกต่อไป ในทางตรงกันข้ามกับ FBA โหนดใด ๆ สามารถปรับส่วนโควรัมของมันเพียงฝ่ายเดียวได้ตลอดเวลา เวลา. เพื่อตอบสนองต่อเหตุขัดข้องอย่างเป็นระบบที่สำคัญ องค์กร ผู้ดูแลระบบโหนดสามารถปรับส่วนของตนได้ แก้ไขปัญหา เช่นเดียวกับการประสานงานการตอบสนอง สู่หายนะ BGP [63] (แม้ว่าจะไม่มีข้อจำกัดของ การกำหนดเส้นทางผ่านลิงก์เครือข่ายทางกายภาพ)

การชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา 3.1.2 ทฤษฎีบทน้ำตก SCP เป็นไปตามแม่แบบของโมเดลทรงกลมพื้นฐาน [42]; โหนดคืบหน้าผ่านชุดบัตรลงคะแนนที่มีหมายเลขแต่ละชุด พยายามสามงาน: (1) ระบุค่า “ปลอดภัย” ที่ไม่ขัดแย้งกับการตัดสินใจใดๆ ในบัตรลงคะแนนครั้งก่อน (มักเรียกว่า เตรียมบัตรลงคะแนน) (2) ตกลงเรื่องมูลค่าที่ปลอดภัย และ (3) ตรวจพบว่าข้อตกลงประสบผลสำเร็จ อย่างไรก็ตาม FBA เปิดให้บริการแล้ว การเป็นสมาชิกขัดขวางเทคนิคทั่วไปหลายประการ เป็นไปไม่ได้ที่จะ "ย้าย" โปรโตคอลแบบปิดแบบดั้งเดิมไปยัง FBA แบบจำลองโดยเพียงแค่เปลี่ยนคำจำกัดความขององค์ประชุม เทคนิคหนึ่งที่ใช้โดยโปรโตคอลจำนวนมากคือการหมุนเวียน ผ่านโหนดผู้นำในรูปแบบ Round-Robin หลังจากการหมดเวลา ในระบบปิด การเลือกผู้นำแบบพบกันหมดจะช่วยให้มั่นใจได้ ในที่สุดผู้นำที่ซื่อสัตย์และมีเอกลักษณ์เฉพาะตัวจะจบลงด้วยข้อตกลงการประสานงานด้วยค่านิยมเดียว น่าเสียดายที่เป็นแบบโรบิน ไม่สามารถทำงานในระบบ FBA โดยไม่ทราบสมาชิกภาพ เทคนิคทั่วไปอีกประการหนึ่งที่ล้มเหลวกับ FBA คือการสมมติว่าองค์ประชุมเฉพาะสามารถโน้มน้าวโหนดทั้งหมดได้ ตัวอย่างเช่น ถ้าทุกคนจำโหนด 2f + 1 ใด ๆ ที่เป็นองค์ประชุมได้ ลายเซ็น 2f + 1 เพียงพอที่จะพิสูจน์สถานะโปรโตคอลของโหนดทั้งหมด ในทำนองเดียวกัน หากโหนดได้รับองค์ประชุมของข้อความที่เหมือนกัน ผ่านการออกอากาศที่เชื่อถือได้ [24] โหนดสามารถถือว่าโหนดที่ไม่มีข้อผิดพลาดทั้งหมดจะเห็นองค์ประชุมด้วย ในทางตรงกันข้าม ใน FBA ก องค์ประชุมไม่มีความหมายอะไรกับโหนดที่อยู่นอกองค์ประชุม สุดท้ายแล้ว ระบบที่ไม่ใช่แบบรวมศูนย์มักจะใช้ระบบแบบ "ถอยหลัง" การให้เหตุผลเกี่ยวกับความปลอดภัย: หากโหนด f + 1 ผิดพลาด ความปลอดภัยทั้งหมด การค้ำประกันจะหายไป ดังนั้น ถ้าโหนด v ได้ยิน f + 1 โหนดทั้งหมด บอกข้อเท็จจริงบางประการ F, v สามารถสันนิษฐานได้ว่าอย่างน้อยก็มีหนึ่งคนกำลังบอก ความจริง (และด้วยเหตุนี้ F จึงเป็นจริง) โดยไม่สูญเสียความปลอดภัย เช่น การใช้เหตุผลล้มเหลวใน FBA เนื่องจากความปลอดภัยเป็นสมบัติของคู่ ของโหนด ดังนั้นโหนดที่สูญเสียความปลอดภัยให้กับเพื่อนบางคนสามารถทำได้ สูญเสียความปลอดภัยให้กับโหนดมากขึ้นเสมอโดยสมมติข้อเท็จจริงที่ไม่ดี อย่างไรก็ตาม FBA สามารถให้เหตุผลย้อนหลังเกี่ยวกับความมีชีวิตชีวาได้ กำหนดชุด v-blocking เป็นชุดของโหนดที่ตัดกันทุกๆ ชิ้นของ v ถ้าชุด v-blocking B มีข้อบกพร่องอย่างเป็นเอกฉันท์ B สามารถปฏิเสธโหนด v องค์ประชุมและเสียค่าใช้จ่ายได้ ดังนั้น ถ้า B ระบุข้อเท็จจริง F อย่างเป็นเอกฉันท์ แล้ว v ก็รู้ว่า F คือค่าใดค่าหนึ่ง จริงหรือ v ไม่เสียหาย อย่างไรก็ตาม วียังต้องดูให้ครบ องค์ประชุมที่จะรู้ว่าโหนดที่พันกันจะไม่ขัดแย้งกับ F ซึ่งนำไปสู่การสื่อสารรอบสุดท้ายใน SCP และ โปรโตคอล FBA อื่นๆ [47] ที่ไม่จำเป็นในภาษาอะนาล็อก โปรโตคอลการเป็นสมาชิกแบบปิด ผลลัพธ์ที่ได้ก็คือเรานั้น ความเชื่อมั่นสามระดับที่เป็นไปได้ในข้อเท็จจริงที่อาจเกิดขึ้น: ไม่แน่นอน ปลอดภัยที่จะถือว่าอยู่ในโหนดที่สมบูรณ์ (ซึ่งเราจะ ข้อเท็จจริงที่ยอมรับในระยะ) และปลอดภัยที่จะถือว่าเชื่อมโยงกัน โหนด (ซึ่งเราจะเรียกว่าข้อเท็จจริงที่ได้รับการยืนยัน) Node v สามารถระบุได้อย่างมีประสิทธิภาพว่าชุด B กำลัง vblocking หรือไม่โดยตรวจสอบว่า 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, Huntsville, ON, แคนาดา โลกาวา และคณะ การเรียกคืนการลงคะแนนแบบสหพันธรัฐอาจไม่สิ้นสุด ดังนั้นบางส่วน ข้อความเกี่ยวกับบัตรลงคะแนนอาจติดอยู่อย่างถาวร สถานะที่ไม่แน่นอนซึ่งโหนดไม่สามารถระบุได้ว่าโหนดเหล่านั้นหรือไม่ ยังอยู่ระหว่างดำเนินการหรือติดขัด เพราะโหนดไม่สามารถแยกแยะได้ ความเป็นไปได้ของข้อความที่ไม่แน่นอนซึ่งพิสูจน์ได้ว่าเป็นความจริงในภายหลัง พวกเขาจะต้องไม่พยายามลงคะแนนเสียงแบบสหพันธรัฐในแถลงการณ์ใหม่ ขัดแย้งกับสิ่งที่ไม่แน่นอน ในการลงคะแนนเสียงแต่ละครั้ง n โหนดใช้การลงคะแนนแบบสหพันธรัฐในสองประเภท ของคำสั่ง: • เตรียม ⟨n,x⟩– ระบุว่าไม่มีค่าอื่นใดนอกจาก x เคยเป็นหรือจะได้รับการพิจารณาในบัตรลงคะแนนใด ๆ ≤n • กระทำการ ⟨n,x⟩– ระบุว่า x ได้รับการตัดสินในการลงคะแนนเสียง n ที่สำคัญ โปรดทราบว่าเตรียม ⟨n,x⟩contradicts commit ⟨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⟩ ขัดแย้งกับการกระทำใด ๆ ก่อนหน้านี้สำหรับค่าที่แตกต่าง โดยข้อตกลงรับประกันการลงคะแนนเสียงแบบสหพันธรัฐ เราพบว่าไม่สามารถกำหนดมูลค่าที่แตกต่างกันได้ก่อนหน้านี้ การลงคะแนนเสียงโดยสมาชิกของ ส. โดยการปฐมนิเทศหมายเลขบัตรลงคะแนนเรา จึงได้รู้ว่า SCP นั้นปลอดภัย เพื่อความมีชีวิตชีวาให้พิจารณาชุด I ที่สมบูรณ์และยาวพอสมควร การลงคะแนนเสียงแบบซิงโครนัส หากโหนดผิดพลาดปรากฏขึ้นในชิ้น ของโหนดที่ประพฤติตัวดีจะไม่เข้าไปยุ่งเกี่ยวกับ n จากนั้นโดยการลงคะแนนเสียง 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 อาจลงคะแนนให้กับคำสั่ง a ที่ถูกต้องใดๆ ที่ไม่ลงคะแนน ขัดแย้งกับสิ่งอื่นของมันคะแนนเสียงที่โดดเด่นและคำแถลงที่ยอมรับ ทำได้โดยการเผยแพร่ข้อความลงคะแนนเสียงที่ลงนามแล้ว v จากนั้นยอมรับ a ถ้า a สอดคล้องกับข้อความอื่นๆ ที่ยอมรับ และ (กรณีที่ 1)v เป็นสมาชิกขององค์ประชุมที่ แต่ละโหนดจะโหวตให้ a หรือยอมรับ หรือ (กรณีที่ 2) แม้ว่า v ก็ตาม ไม่ได้โหวตให้ a ชุด v-blocking ยอมรับ a ในกรณีที่ 2 v พฤษภาคม เคยลงคะแนนเสียงขัดแย้งกับ ก. ซึ่งขณะนี้ได้ ถูกแทนที่ v ได้รับอนุญาตให้ลืมเกี่ยวกับการโหวตที่ถูกลบล้าง และแสร้งทำเป็นว่ามันไม่เคยแคสต์มันเลย เพราะถ้า v อยู่ในสภาพสมบูรณ์ มันก็รู้ คะแนนเสียงที่เกินกำหนดไม่สามารถครบองค์ประชุมผ่านกรณีที่ 1 v ออกอากาศว่ายอมรับ a แล้วยืนยันเมื่อเข้ามา องค์ประชุมที่มีมติเป็นเอกฉันท์ยอมรับ รูปที่ 2 แสดง ผลของเซต v-blocking และทฤษฎีบทคาสเคดระหว่าง การลงคะแนนเสียงแบบสหพันธรัฐ โหนดที่เกี่ยวพันกันสองโหนดไม่สามารถยืนยันข้อความที่ขัดแย้งกัน เนื่องจากองค์ประชุมที่จำเป็นทั้งสองจะต้องแบ่งปันการชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา 3 4 2 1 5 7

Stellar Konsensprotokoll

Das Stellar-Konsensprotokoll (SCP) basiert auf einem Quorum Byzantinisches Vertragsprotokoll mit offener Mitgliedschaft. Quoren entstehen aus den kombinierten lokalen Konfigurationsentscheidungen einzelner Knoten. Knoten erkennen jedoch nur Kollegien, denen sie selbst angehören, und erst danach Lernen der lokalen Konfigurationen aller anderen Kollegiumsmitglieder. Ein Vorteil dieses Ansatzes besteht darin, dass SCP von Natur aus vorhanden ist toleriert heterogene Ansichten darüber, welche Knoten vorhanden sind. Daher, Knoten können einseitig beitreten und verlassen, ohne dass ein Knoten erforderlich ist „View Change“-Protokoll zur Koordinierung der Mitgliedschaft. 3.1 Föderiertes byzantinisches Abkommen Das traditionelle Problem der byzantinischen Vereinbarung besteht aus a geschlossenes System von N Knoten, von denen einige fehlerhaft sind und möglicherweise sich willkürlich verhalten. Knoten empfangen Eingabewerte und tauschen sie aus Nachrichten, um über einen Ausgabewert unter den Eingaben zu entscheiden. Ein byzantinisches Vereinbarungsprotokoll ist sicher, wenn keine zwei gut funktionierenden Knoten unterschiedliche Entscheidungen und die Einzigartigkeit ausgeben Entscheidung war eine gültige Eingabe (für eine Definition von gültig vereinbart).SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. (siehe vorher). Ein Protokoll ist dann live, wenn es dies garantiert Jeder ehrliche Knoten gibt schließlich eine Entscheidung aus. Normalerweise gehen Protokolle davon aus, dass N = 3f + 1 für eine ganze Zahl ist f > 0, dann garantieren Sicherheit und eine gewisse Lebendigkeit solange höchstens f Knoten fehlerhaft sind. Irgendwann in diesen Protokolle, Knoten stimmen über vorgeschlagene Werte und einen Vorschlag ab Der Erhalt von 2f + 1 Stimmen, ein sogenanntes Stimmenquorum, wird die Entscheidung. Mit N = 3f + 1 Knoten, zwei beliebige Quoren von Größe 2f + 1 Überlappung in mindestens f + 1 Knoten; auch wenn f davon Überlappende Knoten sind fehlerhaft, die beiden Quoren teilen sich zumindest ein fehlerfreier Knoten, wodurch widersprüchliche Entscheidungen verhindert werden. Allerdings funktioniert dieser Ansatz nur, wenn sich alle Knoten darauf einigen Was stellt ein Quorum dar, was in SCP wo unmöglich ist Zwei Knoten wissen möglicherweise nicht einmal von der Existenz des anderen. Mit SCP deklariert jeder Knoten v einseitig Knotenmengen, nennt seine Quorum-Slices, so dass (a) v das glaubt, wenn alle Die Mitglieder eines Slice sind sich also über den Zustand des Systems einig Sie haben Recht, und (b) v glaubt, dass mindestens eine seiner Scheiben wird zur Verfügung stehen, um rechtzeitig Informationen darüber bereitzustellen Zustand des Systems. Wir nennen das resultierende System bestehend von Knoten und ihren Slices, ein Föderiertes Byzantinisches Abkommen (FBA)-System. Wie wir als nächstes sehen werden, entsteht ein Quorumsystem aus Knotenscheiben. Informell geben die Slices eines FBA-Knotens an, mit wem der Knoten erfordert Zustimmung. Beispielsweise kann ein Knoten eine Vereinbarung mit vier spezifischen Organisationen erfordern, die jeweils drei Knoten betreiben. zu Um Ausfallzeiten zu berücksichtigen, kann es seine Slices so einstellen, dass sie alle Sätze sind bestehend aus 2 Knoten jeder Organisation. Wenn dies „erfordert „Übereinstimmung mit“-Beziehung verbindet transitiv zwei beliebige Knoten, Wir bekommen eine globale Einigung. Andernfalls kann es zu Divergenz kommen, aber nur zwischen Organisationen, die beides nicht erfordert Vereinbarung mit dem anderen. Angesichts der Topologie der heutigen Wir gehen davon aus, dass die umfassende Konvergenz im Finanzsystem weiterhin zu einer Singe-Ledger-Geschichte führen wird, die die Leute nennen „das Stellar-Netzwerk“, so wie wir auch vom Internet sprechen. Quoren entstehen wie folgt aus Slices. Jeder Knoten spezifiziert Sein Quorum schneidet jede Nachricht ab, die es sendet. Sei S das Gruppe von Knoten, von denen eine Gruppe von Nachrichten stammt. A Der Knoten geht davon aus, dass der Nachrichtensatz das Quorum erreicht hat Schwellenwert, wenn für jedes Mitglied von S ein Slice in S enthalten ist. Aufgrund der Konstruktion erfüllt eine solche Menge S, wenn sie einstimmig ist, die Zustimmungsanforderungen jedes seiner Mitglieder. Ein fehlerhafter Peer kann Slices anbieten, die so gestaltet sind, dass sie etwas ändern Gut erzogene Knoten berücksichtigen Quoren. Aus Gründen der Protokollanalyse definieren wir ein Quorum in FBA als nicht leer Menge S von Knoten, die mindestens ein Quorum-Slice umfassen jedes nicht fehlerhafte Mitglied. Diese Abstraktion ist wie jede Menge solide von Nachrichten, die angeblich ein einstimmiges Quorum darstellen tatsächlich (auch wenn es Nachrichten von fehlerhaften Knoten enthält), und es ist präzise, wenn S nur gut erzogene Knoten enthält. In In diesem Abschnitt gehen wir auch davon aus, dass sich die Slices der Knoten nicht ändern. Dennoch lassen sich unsere Ergebnisse auf den Fall der sich verändernden Schicht übertragen denn ein System, in dem sich Slices ändern, ist nicht weniger sicher als ein System mit festen Scheiben, bei dem die Scheiben eines Knotens aus allen bestehen Slices, die es jemals im Fall der sich verändernden Slices verwendet (siehe Theorem 13 in [68]). Wie in Abschnitt 4 erläutert, hängt die Lebendigkeit davon ab Gut erzogene Knoten entfernen schließlich unzuverlässige Knoten aus ihren Scheiben. Da verschiedene Knoten unterschiedliche Vereinbarungsanforderungen haben, schließt FBA eine globale Definition von Sicherheit aus. Wir sagen Die nicht fehlerhaften Knoten v1 und v2 sind jeweils miteinander verflochten Quorum von v1 schneidet jedes Quorum von v2 in mindestens einem nicht fehlerhafter Knoten. Ein FBA-Protokoll kann eine Einigung gewährleisten nur zwischen ineinander verschlungenen Knoten; Da SCP dies tut, ist es seine Schuld Die Sicherheitstoleranz ist optimal. Die Internet-Hypothese, Das zugrunde liegende Design von Stellar besagt, dass sich die Knoten um die Menschen kümmern ungefähr wird miteinander verflochten sein. Wir sagen, dass eine Menge von Knoten I intakt ist, wenn I ein einheitlich fehlerfreies Quorum ist, sodass alle zwei Mitglieder von I miteinander verflochten sind, selbst wenn jeder Knoten außerhalb von I fehlerhaft ist. Intuitiv, dann sollte ich für die Handlungen von Nichtintakten unempfindlich bleiben Knoten. SCP garantiert sowohl nicht blockierende Lebendigkeit [93] als auch Sicherheit für intakte Mengen, obwohl die Knoten selbst dies nicht benötigen zu wissen (und möglicherweise nicht wissen zu können), welche Sätze intakt sind. Darüber hinaus ist die Vereinigung zweier intakter Mengen, die sich schneiden ein intaktes Set. Daher definieren intakte Mengen eine Partition der gut erzogene Knoten, bei denen jede Partition sicher und aktiv ist (unter bestimmten Bedingungen), aber möglicherweise werden unterschiedliche Partitionen ausgegeben abweichende Entscheidungen. 3.1.1 Überlegungen zur Sicherheit vs. Lebendigkeit beim Versand durch Amazon Mit wenigen Ausnahmen [64] sind die meisten geschlossenen byzantinischen Vereinbarungsprotokolle auf den Gleichgewichtspunkt abgestimmt, an dem Sicherheit und Lebendigkeit haben die gleiche Fehlertoleranz. Bei Versand durch Amazon Das bedeutet Konfigurationen, bei denen unabhängig von Ausfällen alle Ineinander verschlungene Mengen sind ebenfalls intakt. Vorausgesetzt, FBA bestimmt Da die Quoren dezentral verteilt werden, ist es unwahrscheinlich, dass einzelne Wahlmöglichkeiten zu diesem Gleichgewicht führen. Darüber hinaus bei Zumindest in Stellar ist das Gleichgewicht nicht wünschenswert: die Konsequenzen eines Sicherheitsversagens (nämlich doppelt ausgegebenes digitales Geld) vorliegen weitaus schlimmer als die eines Liveness-Ausfalls (nämlich Verzögerungen). bei Zahlungen, die ohnehin Tage gedauert haben, bevor Stellar). Menschen Daher sollten und werden große Quorum-Slices ausgewählt, so dass Ihre Knoten bleiben eher miteinander verflochten als intakt. Je weiter die Waage kippt, desto einfacher ist es, sich davon zu erholen typischere Liveness-Fehler in einem FBA-System als in einem herkömmlichen geschlossenen System. In geschlossenen Systemen müssen alle Nachrichten vorhanden sein im Hinblick auf die gleiche Gruppe von Kollegien interpretiert werden. Daher, Das Hinzufügen und Entfernen von Knoten zur Wiederherstellung nach einem Ausfall ist erforderlich Einen Konsens über ein Neukonfigurationsereignis zu erzielen, was schwierig ist, wenn der Konsens nicht mehr besteht. Im Gegensatz dazu gilt bei FBA Jeder Knoten kann seine Quorum-Slices jederzeit einseitig anpassen Zeit. Als Reaktion auf einen Ausfall an einer systemrelevanten Stelle Organisation können Knotenadministratoren ihre Slices anpassen Umgehen des Problems, ähnlich wie beim Koordinieren von Antworten zu BGP-Katastrophen [63] (allerdings ohne die Einschränkungen von Routing über physische Netzwerkverbindungen).

Schnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada 3.1.2 Der Kaskadensatz SCP folgt der Vorlage des Grundrundenmodells [42]; Die Knoten durchlaufen jeweils eine Reihe nummerierter Stimmzettel Versuchen Sie drei Aufgaben: (1) Identifizieren Sie einen „sicheren“ Wert, der nicht durch eine Entscheidung in einem früheren Wahlgang im Widerspruch steht (oft als „sicherer“ Wert bezeichnet). Vorbereitung des Stimmzettels), (2) Einigung über den sicheren Wert und (3) Feststellung, dass die Einigung erfolgreich war. Versand durch Amazon ist jedoch geöffnet Die Mitgliedschaft behindert mehrere gängige Techniken und macht es möglich Es ist unmöglich, herkömmliche geschlossene Protokolle auf die FBA zu „portieren“. Modell durch einfaches Ändern der Definition des Quorums. Eine von vielen Protokollen verwendete Technik ist die Rotation nach Zeitüberschreitungen im Round-Robin-Verfahren durch die Leader-Knoten. In einem geschlossenen System wird die Leader-Auswahl im Round-Robin-Verfahren sichergestellt dass am Ende ein einzigartiger, ehrlicher Anführer eine Einigung über einen einzigen Wert erzielt. Leider Round-Robin kann nicht in einem FBA-System mit unbekannter Mitgliedschaft arbeiten. Eine weitere häufige Technik, die bei FBA fehlschlägt, besteht darin, anzunehmen, dass ein bestimmtes Quorum alle Knoten überzeugen kann. Zum Beispiel, Wenn jeder beliebige 2f + 1-Knoten als Quorum anerkennt, dann 2f + 1 Signaturen reichen aus, um allen Knoten den Protokollstatus nachzuweisen. Ähnlich verhält es sich, wenn ein Knoten ein Quorum identischer Nachrichten empfängt Durch die zuverlässige Übertragung [24] kann der Knoten davon ausgehen, dass alle nicht fehlerhaften Knoten ebenfalls ein Quorum sehen. Im Gegensatz dazu a Für Knoten außerhalb des Quorums bedeutet das Quorum nichts. Schließlich verwenden nicht-föderierte Systeme häufig „Rückwärts“-Methoden. Argumentation zur Sicherheit: Wenn f + 1 Knoten fehlerhaft sind, gilt für alle Sicherheit Garantien gehen verloren. Wenn also Knoten v alle f + 1 Knoten hört Geben Sie eine Tatsache an. F, v kann davon ausgehen, dass mindestens einer davon erzählt Wahrheit (und daher, dass F wahr ist) ohne Verlust der Sicherheit. So Die Argumentation schlägt bei FBA fehl, da Sicherheit eine Eigenschaft von Paaren ist von Knoten, so dass ein Knoten, der die Sicherheit einiger Peers verloren hat, dies kann Verlieren Sie immer die Sicherheit an mehr Knoten, indem Sie schlechte Fakten annehmen. FBA kann jedoch in Bezug auf die Lebendigkeit rückwärts denken. Definieren Sie einen V-Blocking-Satz als einen Satz von Knoten, die sich alle schneiden Scheibe von v. Wenn ein v-blockierender Satz B einstimmig fehlerhaft ist, B kann Node V ein Quorum verweigern und ihm die Lebendigkeit kosten. Daher, wenn B gibt einstimmig die Tatsache F an, dann weiß v, dass entweder F ist wahr oder v ist nicht intakt. Allerdings muss v noch vollständig angezeigt werden Quorum, um zu wissen, dass ineinander verschlungene Knoten F nicht widersprechen, was zu einer letzten Kommunikationsrunde in SCP führt und andere FBA-Protokolle [47], die analog nicht erforderlich sind geschlossene Mitgliedschaftsprotokolle. Das Ergebnis ist, dass wir es haben drei mögliche Ebenen des Vertrauens in potenzielle Fakten: unbestimmt, sicher unter intakten Knoten anzunehmen (was wir tun werden). Begriff akzeptierte Fakten) und sicher untereinander anzunehmen Knoten (die wir als bestätigte Fakten bezeichnen werden). Knoten v kann effizient bestimmen, ob eine Menge B blockiert, indem er prüft, ob B alle seine Slices schneidet. Interessanterweise kündigen Knoten immer ihre Anweisungen an Akzeptieren und ein vollständiges Quorum eine Aussage akzeptiert, löst dies einen Kaskadenprozess aus, durch den sich die Aussagen überall verbreiten intakte Sätze. Wir nennen die Schlüsseltatsache, die dieser Ausbreitung zugrunde liegt der Kaskadensatz, der Folgendes besagt: Wenn ich ein bin Intakte Menge, Q ist ein Quorum eines beliebigen Mitglieds von I und S ist ein beliebiges Obermenge von Q, dann ist entweder S ⊇I oder es gibt ein Mitglied v ∈I so dass v < S und I ∩S v-blockierend ist. Intuitiv war das so Ist dies nicht der Fall, würde das Komplement von S ein Quorum enthalten das schneidet I, aber nicht Q, und verstößt gegen die Quorum-Schnittmenge. Beachten Sie, dass wir mit S = Q beginnen und S wiederholt zu erweitern Wenn wir alle Knoten einbeziehen, die es blockiert, erhalten wir einen Kaskadeneffekt, bis schließlich umfasst S alles von I. 3.2 Protokollbeschreibung SCP ist ein teilweise synchrones Konsensprotokoll [42], das aus einer Reihe von Versuchen besteht, einen Konsens zu erreichen Stimmzettel. Bei Abstimmungen kommt es zu immer längeren Auszeiten. A Das Abstimmungssynchronisierungsprotokoll stellt sicher, dass die Knoten eingeschaltet bleiben den gleichen Stimmzettel für immer längere Zeiträume bis zu den Stimmzetteln sind effektiv synchron. Eine Kündigung ist nicht garantiert bis die Stimmzettel synchron sind, aber zwei synchrone Stimmzettel Dies ist bei fehlerhaften Mitgliedern von Slices gut erzogener Knoten der Fall Nichteingreifen reicht aus, damit SCP beendet wird. In einem Abstimmungsprotokoll werden die jeweils getroffenen Maßnahmen festgelegt Stimmzettel. Ein Stimmzettel beginnt mit einer Vorbereitungsphase, in der Knoten Versuchen Sie, einen Wert zu ermitteln, der nicht im Widerspruch steht eine frühere Entscheidung. Dann versuchen es die Knoten in einer Commit-Phase eine Entscheidung über den vorbereiteten Wert zu treffen. Bei der Stimmabgabe wird ein Vereinbarungs-Unterprotokoll namens „Federated Voting“ eingesetzt, dn welche Knoten über abstrakte Aussagen abstimmen das könnte sich irgendwann bestätigen oder stecken bleiben. Einige Aussagen könnten als widersprüchlich bezeichnet werden, und die Sicherheit Die Garantie der föderierten Abstimmung besteht darin, dass keine zwei Mitglieder einer Ineinander verschlungene Mengen bestätigen widersprüchliche Aussagen. Die Bestätigung einer Aussage kann nicht garantiert werden, es sei denn, sie ist intakt Gruppe, deren Mitglieder alle gleich abstimmen. Wenn jedoch a Mitglied einer intakten Menge bestätigt eine Aussage, föderiert Die Abstimmung garantiert, dass alle Mitglieder der intakten Menge diese Aussage letztendlich bestätigen. Daher werden irreversible Schritte unternommen als Antwort auf bestätigende Aussagen bewahrt die Lebendigkeit für intakte Knoten. Knoten schlagen zunächst Werte vor, die aus einer Nominierung stammen Protokoll, das die Chancen aller Mitglieder eines intakten Systems erhöht Satz, der denselben Wert vorschlägt, und der schließlich konvergiert (obwohl es keine Möglichkeit gibt, die Konvergenz als vollständig zu bestimmen). Die Nominierung kombiniert eine gemeinsame Abstimmung mit der Auswahl des Anführers. Da Round-Robin bei Versand durch Amazon nicht möglich ist, wird die Nominierung verwendet ein probabilistisches Führungsauswahlschema. Das Kaskadentheorem spielt bei der Stimmabgabe eine entscheidende Rolle Synchronisierung und bei der Vermeidung blockierter Zustände Eine Kündigung ist nicht mehr möglich. 3.2.1 Abstimmung SCP-Knoten führen eine Reihe nummerierter Abstimmungen durch und nutzen eine gemeinsame Abstimmung, um sich auf Aussagen darüber zu einigen Welche Werte in welchen Abstimmungen entschieden werden oder nicht. Wenn Asynchronität oder fehlerhaftes Verhalten eine Entscheidung in Abstimmung n verhindert, Zeitüberschreitung der Knoten und erneuter Versuch in Stimmzettel n + 1.

SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. Die Rückruf-Verbundabstimmung wird möglicherweise nicht beendet. Daher einige Aussagen zu Stimmzetteln können dauerhaft stecken bleiben unbestimmter Zustand, in dem Knoten niemals feststellen können, ob sie sind noch in Bearbeitung oder stecken fest. Weil Knoten nicht ausschließen können die Möglichkeit, dass sich unbestimmte Aussagen später als wahr erweisen, Sie dürfen niemals versuchen, gemeinsam über neue Stellungnahmen abzustimmen widersprüchliche unbestimmte. In jedem Wahlgang n nutzen die Knoten die föderierte Abstimmung für zwei Arten der Aussage: • Prepare ⟨n,x⟩– gibt an, dass es keinen anderen Wert als x gibt wurde oder wird jemals in einem Wahlgang ≤n entschieden. • commit ⟨n,x⟩– besagt, dass über x in Abstimmung n entschieden wird. Beachten Sie unbedingt, dass „prepare ⟨n,x⟩dem Commit widerspricht“. ⟨n′,x ′⟩wenn n ≥n′ und x , x ′. Ein Knoten beginnt mit Abstimmung n, indem er versucht, eine gemeinsame Abstimmung über a durchzuführen Anweisung vorbereiten ⟨n,x⟩. Falls vorhanden, vorbereiten Sie eine Anweisung wurde durch föderale Abstimmung erfolgreich bestätigt Der Knoten wählt x aus der bestätigten Liste des höchsten Stimmzettels. Andernfalls setzt der Knoten x auf die Ausgabe des Nominierungsprotokoll, das im nächsten Unterabschnitt beschrieben wird. Genau dann, wenn ein Knoten die Vorbereitung ⟨n,x⟩ erfolgreich bestätigt In Stimmzettel n versucht es eine föderierte Abstimmung über Commit ⟨n,x⟩. Wenn Wenn dies gelingt, bedeutet dies, dass der SCP eine Entscheidung getroffen hat und der Knoten etwas ausgibt der Wert aus der bestätigten Commit-Anweisung. Betrachten Sie eine ineinander verschlungene Menge S. Da höchstens ein Wert Kann von Mitgliedern von S in einem bestimmten Wahlgang bestätigt werden, es dürfen keine zwei unterschiedlichen Werte bestätigt werden Mitglieder von S in einem bestimmten Wahlgang. Darüber hinaus, wenn commit ⟨n,x⟩ bestätigt ist, dann Prepare ⟨n,x⟩wurde ebenfalls bestätigt; seitdem Prepare ⟨n,x⟩ widerspricht jedem früheren Commit für einen anderen Wert, da die Vereinbarung eine föderierte Abstimmung garantiert Wir erhalten, dass früher kein anderer Wert festgelegt werden darf Stimmzettel durch Mitglieder von S. Durch Einleitung der Stimmzettelnummern, wir Stellen Sie daher sicher, dass SCP sicher ist. Betrachten Sie für die Lebendigkeit einen intakten Satz I und einen ausreichend langen Satz synchroner Stimmzettel n. Wenn fehlerhafte Knoten in den Slices auftreten von gut erzogenen Knoten stören sich nicht an n, dann per Stimmzettel n + 1 alle Mitglieder von I haben die gleiche Menge P von Prepare-Anweisungen bestätigt. Wenn P = ∅und Stimmzettel n lang genug war, ist der Das Nominierungsprotokoll wird sich auf einen Wert x konvergiert haben. Andernfalls sei x der Wert aus dem Plan mit der höchsten Abstimmung in P. In jedem Fall werde ich es einheitlich mit dem Verbund versuchen Abstimmung über die Vorbereitung von ⟨n + 1,x⟩ im nächsten Wahlgang. Deshalb, wenn n + 1 ebenfalls synchron ist, folgt zwangsläufig eine Entscheidung für x. 3.2.2 Nominierung Die Nominierung erfordert eine gemeinsame Abstimmung über Stellungnahmen: • x nominieren – gibt an, dass x ein gültiger Entscheidungskandidat ist. Knoten können dafür stimmen, mehrere Werte zu nominieren – unterschiedliche Nominate-Aussagen sind nicht widersprüchlich. Allerdings einmal Bestätigt ein Knoten eine Nominierungsaussage, stimmt er nicht mehr dafür ab neue Werte benennen. Die föderierte Abstimmung ermöglicht es einem Knoten weiterhin Bestätigen Sie die Aussagen der neuen Nominierten, für die sie nicht gestimmt hat abstimmen oder annehmen a vom Kollegium akzeptiere a vom Kollegium a ist gültig akzeptiere ein von Sperrsatz unverbindlich stimmte a akzeptiert a bestätigt a stimmte mit ¬a Abbildung 1. Phasen der föderierten Abstimmung ermöglicht es Mitgliedern eines intakten Sets, sich gegenseitig zu bestätigen nominierten Werte, während gleichzeitig neue Stimmen zurückgehalten werden. Das (sich entwickelnde) Ergebnis der Nominierung ist eine deterministische Kombination aller Werte in bestätigten Nominierungsaussagen. Wenn x stellt eine Reihe von Transaktionen dar, Knoten können die Vereinigung annehmen von Mengen, die größte Menge oder die mit dem höchsten hash, also solange alle Knoten dasselbe tun. Weil Knoten Neues zurückhalten Stimmen nach Bestätigung einer Nominierungserklärung, der Satz von bestätigte Aussagen können nur endlich viele Werte enthalten. Die Tatsache, dass sich bestätigte Aussagen zuverlässig verbreiten Intakte Mengen bedeuten, dass intakte Knoten schließlich auf dem zusammenlaufen der gleiche Satz nominierter Werte und damit das gleiche Nominierungsergebnis, allerdings an einem unbekannten Punkt, willkürlich spät im Protokoll. Knoten verwenden eine föderierte Leiterauswahl, um die zu reduzieren Anzahl unterschiedlicher Werte in Nominate-Anweisungen. Nur Ein Anführer, der noch nicht für eine Nominierungserklärung gestimmt hat, kann ein neues x einführen. Andere Knoten warten darauf, von ihnen zu hören Führer und kopieren Sie einfach die (gültigen) Nominierungsstimmen ihrer Führer. Um Misserfolgen entgegenzuwirken, wächst die Gruppe der Führungskräfte immer weiter Es kommt zu Zeitüberschreitungen, obwohl in der Praxis nur wenige Knoten neue Werte von x einführen. 3.2.3 Föderierte Abstimmung Bei der föderierten Abstimmung wird ein dreiphasiges Protokoll verwendet, das in gezeigt wird Abbildung 1. Knoten versuchen zunächst, sich auf abstrakte Aussagen zu einigen Abstimmung, dann Annahme und schließlich Bestätigung von Aussagen. Ein Knoten v kann für jede gültige Anweisung a stimmen, die dies nicht tut dem anderen widersprechenausstehende Stimmen und angenommene Stellungnahmen. Dies geschieht durch die Ausstrahlung einer unterzeichneten Abstimmungsnachricht. v akzeptiert dann a, wenn a mit anderen akzeptierten Aussagen übereinstimmt und entweder (Fall 1)v Mitglied eines Quorums ist, in dem jeder Knoten stimmt entweder für a oder akzeptiert a, oder (Fall 2) auch wenn v habe nicht für a gestimmt, ein V-Blocking-Set akzeptiert a. Im Fall 2 kann v haben zuvor Stimmen abgegeben, die einem widersprechen, was jetzt der Fall ist überstimmt worden. v darf überstimmte Stimmen vergessen und tun Sie so, als hätte es sie nie gewirkt, weil ifv intakt ist, es weiß es Überstimmte Stimmen können kein Quorum durch Fall 1 vervollständigen. v sendet, dass es a akzeptiert, und bestätigt dann a, wenn es drin ist ein Quorum, das einstimmig annimmt. Abbildung 2 zeigt die Wirkung von V-Blocking-Sets und des Kaskadensatzes während föderierte Abstimmung. Zwei miteinander verflochtene Knoten können widersprüchliche Aussagen nicht bestätigen, da sich die beiden erforderlichen Quoren einen teilen müsstenSchnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada 3 4 2 1 5 7

โหวต X

โหวต Y (ก) 3 4 2 1 5 7 6 โหวต เอ็กซ์ โหวต เอ็กซ์ โหวต เอ็กซ์ โหวต ย โหวต เอ็กซ์ โหวต ย โหวต ย (ข) 3 4 2 1 5 7 6 ยอมรับ เอ็กซ์ โหวต เอ็กซ์ ยอมรับ เอ็กซ์ โหวต ย ยอมรับ เอ็กซ์ โหวต ย โหวต ย (ค) 3 4 2 1 5 7 6 ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ โหวต ย ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ โหวต ย (ง) 3 4 2 1 5 7 6 ยอมรับ เอ็กซ์ โหวต เอ็กซ์ ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ ยอมรับ เอ็กซ์ (จ) รูปที่ 2 ผลกระทบแบบเรียงซ้อนในการลงคะแนนเสียงแบบสหพันธรัฐ แต่ละโหนดมีหนึ่งส่วนโควรัมที่ระบุโดยลูกศรไปยังสมาชิกของส่วนนั้น (a) มีการนำข้อความ X และ Y ที่ขัดแย้งกันมาใช้ (b) โหนดลงคะแนนสำหรับข้อความที่ถูกต้อง (c) โหนด 1 ยอมรับ X หลังจากองค์ประชุม {1, 2, 3, 4} โหวตเป็นเอกฉันท์สำหรับ X. (d) โหนด 1, 2, 3 และ 4 ทั้งหมดยอมรับ X; ชุด {1} เป็นการปิดกั้น 5 รายการ ดังนั้นโหนด 5 จึงยอมรับ X ซึ่งอยู่เหนือการควบคุม การโหวตครั้งก่อนสำหรับ Y (e) ชุด {5} คือการบล็อก 6- และ 7 ดังนั้น 6 และ 7 จึงยอมรับ X ทั้งคู่ โหนดที่ไม่ผิดพลาดซึ่งไม่สามารถยอมรับข้อความที่ขัดแย้งกัน ไม่รับประกันการยืนยันคำสั่ง: ใน ในกรณีที่มีการลงคะแนนเสียงแตกแยก ทั้งสองข้อความอาจเป็นรายการถาวรได้ ติดอยู่ในการรอองค์ประชุมในช่วงลงคะแนนเสียง อย่างไรก็ตามหาก โหนดในชุดที่ไม่เสียหายฉันยืนยันคำสั่งแบบเรียงซ้อน ทฤษฎีบทและยอมรับกรณีที่ 2 ทำให้มั่นใจว่าในที่สุดฉันก็จะทำได้ ยืนยันข้อความนั้น 3.2.4 การซิงโครไนซ์บัตรลงคะแนน หากโหนดไม่สามารถยืนยันคำสั่งยืนยันสำหรับ บัตรลงคะแนนปัจจุบัน พวกเขาจะยอมแพ้หลังจากหมดเวลา การหมดเวลาได้รับ นานขึ้นกับการลงคะแนนแต่ละครั้งเพื่อปรับขอบเขตตามอำเภอใจ เกี่ยวกับความล่าช้าของเครือข่าย อย่างไรก็ตาม การหมดเวลาเพียงอย่างเดียวไม่เพียงพอที่จะซิงโครไนซ์บัตรลงคะแนนของโหนดที่ไม่ได้เริ่มต้นในเวลาเดียวกันหรือ ถูกยกเลิกการซิงโครไนซ์ด้วยเหตุผลอื่น เพื่อให้เกิดการซิงโครไนซ์ โหนดจะเริ่มตัวจับเวลาเมื่อเป็นส่วนหนึ่งของ a เท่านั้น องค์ประชุมทั้งหมดที่อยู่ในบัตรลงคะแนนปัจจุบัน (หรือหลังจากนั้น) นี้ ทำให้โหนดที่เริ่มต้นช้าลงและทำให้แน่ใจว่าไม่ สมาชิกของชุดที่สมบูรณ์จะอยู่ไกลกว่ากลุ่มมากเกินไป ยิ่งไปกว่านั้น หากโหนด v สังเกตเห็นการตั้งค่า v-blocking ในภายหลัง บัตรลงคะแนนก็จะข้ามไปที่บัตรลงคะแนนต่ำสุดทันทีเช่นนี้ จะไม่เป็นเช่นนั้นอีกต่อไป โดยไม่คำนึงถึงตัวจับเวลาใดๆ น้ำตก ทฤษฎีบทจะทำให้มั่นใจได้ว่าผู้พลัดหลงทุกคนตามทัน ผลลัพธ์ที่ได้ คือบัตรลงคะแนนมีการซิงโครไนซ์กันคร่าวๆ โดยสมบูรณ์ ตั้งค่าเมื่อระบบกลายเป็นซิงโครนัส 3.2.5 การคัดเลือกผู้นำแบบสหพันธรัฐ การเลือกผู้นำทำให้แต่ละโหนดสามารถเลือกผู้นำในลักษณะดังกล่าวได้ วิธีที่โดยทั่วไปแล้วโหนดจะเลือกเพียงตัวเลขเดียวหรือจำนวนน้อย ของผู้นำ เพื่อรองรับความล้มเหลวของผู้นำ การคัดเลือกผู้นำ ดำเนินการผ่านรอบ หากผู้นำในรอบปัจจุบัน ปรากฏว่าไม่ปฏิบัติตามหน้าที่ของตนแล้วหลังจากนั้น โหนดช่วงหมดเวลาบางรายการจะเข้าสู่รอบถัดไป ขยายกลุ่มผู้นำที่พวกเขาติดตาม แต่ละรอบใช้ฟังก์ชัน hash การเข้ารหัสลับที่ไม่ซ้ำกันสองฟังก์ชัน นั่นคือ H0 และ H1 ซึ่งเอาต์พุตจำนวนเต็มจะอยู่ในช่วง [0,hmax) ตัวอย่างเช่น Stellar ใช้ Hi(m) = SHA256(i∥b∥r ∥m) โดยที่ b คืออินสแตนซ์ SCP โดยรวม (หมายเลขบล็อกหรือบัญชีแยกประเภท) r คือ หมายเลขรอบคัดเลือกผู้นำ และ hmax = 2256 ภายใน ในแต่ละรอบ เรากำหนดลำดับความสำคัญของโหนด v เป็น: ลำดับความสำคัญ(v) = H1(v) ฟางหนึ่งคนจะเลือกแต่ละโหนดให้เป็นผู้นำ โหนดที่มีลำดับความสำคัญสูงสุด (v) แนวทางนี้ใช้ได้ผล มีโควรัมสไลซ์ที่เกือบจะเหมือนกัน แต่ก็ไม่ถูกต้อง จับความสำคัญของโหนดในการกำหนดค่าที่ไม่สมดุล เช่น ถ้ายุโรปและจีนช่วยกันคนละ 3 โหนดทุกโควรัม แต่จีนใช้งาน 1,000 โหนดและยุโรป 4 จากนั้นจีนจะมีโหนดที่มีลำดับความสำคัญสูงสุด 99.6% ของเวลา เราจึงแนะนำแนวคิดเรื่องน้ำหนักชิ้นโดยที่ น้ำหนัก (u,v) ∈[0, 1] คือเศษส่วนของส่วนโควรัมของโหนด u ที่มีโหนด v เมื่อโหนดคุณเลือกผู้นำคนใหม่ พิจารณาเฉพาะเพื่อนบ้าน กำหนดไว้ดังนี้ เพื่อนบ้าน(u) = { v | H0(v) < hmax · น้ำหนัก(u,v) } จากนั้น nodeu จะเริ่มต้นด้วยกลุ่มผู้นำที่ว่างเปล่า และที่แต่ละกลุ่ม round เพิ่มโหนด v ในเพื่อนบ้าน (u) ที่มีค่าสูงสุด ลำดับความสำคัญ(v) หากชุดเพื่อนบ้านว่างเปล่าในรอบใดๆ คุณจะเพิ่มโหนดที่มีค่าต่ำสุดเป็นH0(v)/weight(u,v) แทน

Abstimmung X

Stimme Y (a) 3 4 2 1 5 7 6 Abstimmung X Abstimmung X Abstimmung X Abstimmung Y Abstimmung X Abstimmung Y Abstimmung Y (b) 3 4 2 1 5 7 6 Akzeptiere X Abstimmung X Akzeptiere X Abstimmung Y Akzeptiere X Abstimmung Y Abstimmung Y (c) 3 4 2 1 5 7 6 Akzeptiere X Akzeptiere X Akzeptiere X Abstimmung Y Akzeptiere X Akzeptiere X Abstimmung Y (d) 3 4 2 1 5 7 6 Akzeptiere X Abstimmung X Akzeptiere X Akzeptiere X Akzeptiere X Akzeptiere X Akzeptiere X (e) Abbildung 2. Kaskadeneffekt bei der föderierten Abstimmung. Jeder Knoten verfügt über einen Quorum-Slice, der den Mitgliedern des Slice durch Pfeile angezeigt wird. (a) Widersprüchliche Aussagen X und Y werden eingeführt. (b) Knoten stimmen für gültige Aussagen. (c) Knoten 1 akzeptiert X nach Erreichen seines Quorums {1, 2, 3, 4} stimmt einstimmig für X. (d) Knoten 1, 2, 3 und 4 akzeptieren alle X; Satz {1} ist 5-blockierend, also akzeptiert Knoten 5 X und überstimmt seine vorherige Stimme für Y. (e) Satz {5} ist 6- und 7-blockierend, also akzeptieren 6 und 7 beide X. nicht fehlerhafter Knoten, der widersprüchliche Aussagen nicht akzeptieren konnte. Eine Bestätigung einer Aussage ist nicht gewährleistet: in Im Falle einer getrennten Abstimmung können beide Aussagen dauerhaft sein Ich muss in der Abstimmungsphase auf ein Quorum warten. Wenn jedoch ein Knoten in einer intakten Menge I bestätigt eine Aussage, die Kaskade Satz und akzeptiere Fall 2 stellen sicher, dass ich irgendwann alles tun werde bestätige diese Aussage. 3.2.4 Abstimmungssynchronisierung Wenn Knoten nicht in der Lage sind, eine Commit-Anweisung für zu bestätigen Aktueller Wahlgang, sie geben nach einer Auszeit auf. Die Zeitüberschreitung wird angezeigt mit jedem Wahlgang länger, um sich an willkürliche Grenzen anzupassen auf Netzwerkverzögerung. Timeouts allein reichen jedoch nicht aus, um Stimmzettel von Knoten zu synchronisieren, die nicht gleichzeitig gestartet sind oder wurde aus anderen Gründen desynchronisiert. Um eine Synchronisierung zu erreichen, starten Knoten den Timer erst, wenn sie Teil eines Knotens sind Quorum, das bei der aktuellen (oder einer späteren) Abstimmung gilt. Dies verlangsamt Knoten, die früh gestartet sind, und stellt sicher, dass keine Mitglied einer intakten Gruppe bleibt zu weit vor der Gruppe. Darüber hinaus, wenn ein Knoten v zu einem späteren Zeitpunkt jemals einen v-blockierenden Satz bemerkt Stimmzettel, es springt sofort zum niedrigsten Stimmzettel, so dass dieser Dies ist unabhängig von etwaigen Timern nicht mehr der Fall. Die Kaskade Der Satz stellt dann sicher, dass alle Nachzügler aufholen. Das Ergebnis ist, dass die Stimmzettel während eines ganzen Zeitraums ungefähr synchronisiert sind gesetzt, sobald das System synchron wird. 3.2.5 Auswahl des föderierten Anführers Durch die Auswahl von Anführern kann jeder Knoten Anführer in einem solchen Netzwerk auswählen So wählen Knoten im Allgemeinen nur eine oder eine kleine Anzahl aus von Führungskräften. Um dem Versagen des Leiters Rechnung zu tragen, erfolgt die Auswahl des Leiters geht durch Runden. Wenn Anführer der aktuellen Runde scheinen ihrer Verantwortung nicht nachzukommen, dann nach a Bestimmte Timeout-Knoten gehen in die nächste Runde über Erweitern Sie die Gruppe der Führungskräfte, denen sie folgen. Jede Runde verwendet zwei einzigartige kryptografische hash-Funktionen, H0 und H1, die Ganzzahlen im Bereich [0,hmax) ausgeben. Zum Beispiel verwendet Stellar Hi(m) = SHA256(i∥b∥r ∥m), wobei b ist die gesamte SCP-Instanz (Block- oder Ledger-Nummer), r ist die Anzahl der Leader-Auswahlrunden und hmax = 2256. Innerhalb In einer Runde definieren wir die Priorität von Knoten v als: Priorität(v) = H1(v) Jeder Knoten würde einen Strohmann als Anführer wählen der Knoten mit der höchsten Priorität (v). Dieser Ansatz funktioniert gut mit nahezu identischen Quorum-Slices, funktioniert aber nicht richtig Erfassen Sie die Bedeutung von Knoten in unausgeglichenen Konfigurationen. Wenn beispielsweise Europa und China jeweils 3 beitragen Knoten zu jedem Quorum, aber China betreibt 1.000 Knoten und Europa 4, dann wird China den Knoten mit der höchsten Priorität haben 99,6 % der Zeit. Wir führen daher einen Begriff des Scheibengewichts ein, wo Weight(u,v) ∈[0, 1] ist der Bruchteil der Quorum-Slices des Knotens u enthält den Knoten v. Wenn der Knoten u einen neuen Anführer auswählt, wird er berücksichtigt nur Nachbarn, die wie folgt definiert sind: Nachbarn(u) = { v | H0(v) < hmax · Gewicht(u,v) } Ein Knoten beginnt dann mit einem leeren Satz von Anführern und zwar bei jedem Runde fügt den Knoten v in Nachbarn (u) mit dem höchsten hinzu Priorität(v). Wenn die Menge der Nachbarn in einer Runde leer ist, fügt u stattdessen den Knoten v mit dem niedrigsten Wert von H0(v)/Gewicht(u,v) hinzu.

การตรวจสอบ SCP อย่างเป็นทางการ

เพื่อกำจัดข้อผิดพลาดในการออกแบบ เราได้ตรวจสอบความปลอดภัยของ SCP อย่างเป็นทางการ และคุณสมบัติความมีชีวิตชีวา (ดู [65]) โดยเฉพาะเราตรวจสอบแล้ว โหนดที่พันกันไม่เคยไม่เห็นด้วย และภายใต้เงื่อนไขที่กล่าวถึงด้านล่าง สมาชิกทุกคนในชุดที่สมบูรณ์จะตัดสินใจในที่สุด สิ่งที่น่าสนใจคือการตรวจสอบพบว่า เงื่อนไขที่ SCP รับประกันความมีชีวิตชีวานั้นละเอียดอ่อน และแข็งแกร่งกว่าที่คิดไว้ในตอนแรก [68]: ตามที่กล่าวไว้ด้านล่าง โหนดที่เป็นอันตรายซึ่งจัดการเวลาโดยไม่มีอย่างอื่น การเบี่ยงเบนไปจากโปรโตคอลอาจต้องถูกไล่ออกด้วยตนเอง จากชิ้นโควรัม

SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา โลกาวา และคณะ เพื่อให้แน่ใจว่าคุณสมบัติได้รับการพิสูจน์แล้วว่าสามารถถือครองได้ทั้งหมด การกำหนดค่าและการดำเนินการของ FBA เราพิจารณาโดยพลการ จำนวนโหนดที่มีการกำหนดค่าท้องถิ่นโดยพลการ นี้ รวมถึงสถานการณ์ที่มีชุดที่ไม่เสียหายที่ไม่ต่อเนื่องกัน รวมถึงการดำเนินการที่อาจยาวนานอย่างไม่มีที่สิ้นสุด ข้อเสียเปรียบก็คือเรา เผชิญกับปัญหาที่ท้าทายในการตรวจสอบพารามิเตอร์ ระบบสถานะอนันต์ เพื่อให้การตรวจสอบเป็นไปได้ เราได้จำลอง SCP ในตรรกะลำดับแรก (FOL) โดยใช้ Ivy [69] และวิธีการของ [82] กระบวนการตรวจสอบประกอบด้วยการให้การคาดเดาแบบอุปนัยด้วยตนเอง จากนั้นจะมีการตรวจสอบโดยอัตโนมัติ ไอวี่. โมเดล FOL ของ SCP เป็นนามธรรมเหนือบางแง่มุมของ ระบบ FBA ที่ยากต่อการจัดการใน FOL (เช่น ทฤษฎีบทน้ำตกถือเป็นสัจพจน์) ดังนั้นเราจึงตรวจสอบ ความสมบูรณ์ของนามธรรมโดยใช้ Isabelle/HOL [75] หลังจากแสดงปัญหาการตรวจสอบใน FOL แล้ว เราจะตรวจสอบความปลอดภัยโดยจัดให้มีค่าคงที่อุปนัย อุปนัย ค่าคงที่ประกอบด้วยการคาดเดาบรรทัดเดียวหลายสิบรายการสำหรับประมาณ ข้อกำหนดโปรโตคอล 150 บรรทัด จากนั้นเราจะระบุคุณสมบัติความมีชีวิตชีวาของ SCP ใน Linear Temporal Logic ของ Ivy และใช้ ความมีชีวิตชีวาต่อการลดความปลอดภัย [80, 81] เพื่อลดความมีชีวิตชีวา ปัญหาการตรวจสอบปัญหาการหาอุปนัย ไม่เปลี่ยนแปลง ในขณะที่ความปลอดภัยของ SCP นั้นค่อนข้างตรงไปตรงมา พิสูจน์ว่าข้อโต้แย้งความมีชีวิตชีวาของ SCP นั้นซับซ้อนกว่ามากและ ประกอบด้วยค่าคงที่บรรทัดเดียวประมาณ 150 รายการ การพิสูจน์ความมีชีวิตชีวาจำเป็นต้องมีการทำให้เป็นทางการอย่างแม่นยำ สมมติฐานที่ SCP รับรองการยุติ ตอนแรกเราคิดว่าฉากที่สมบูรณ์ฉันจะยุติลงหากทั้งหมด สมาชิกลบโหนดที่ผิดพลาดออกจากส่วนของพวกเขา [68] อย่างไรก็ตาม สิ่งนี้กลับกลายเป็นว่าไม่เพียงพอ: มีความประพฤติดี (แต่ ไม่เสียหาย) โหนดในองค์ประชุมของสมาชิกของ I can ภายใต้ อิทธิพลของโหนดที่ผิดพลาด ป้องกันการยุติโดยดำเนินการให้เสร็จสิ้น องค์ประชุมก่อนการลงคะแนนเสียงสิ้นสุดลงจึงทำให้ สมาชิกของกลุ่ม I จะต้องเลือกค่า x ที่แตกต่างกันในการลงคะแนนครั้งถัดไป ดังนั้นเราจึงต้องสันนิษฐานเพิ่มเติมว่าอย่างไม่เป็นทางการ แต่ละโหนดในองค์ประชุมของสมาชิกคนหนึ่งของฉันในที่สุดเช่นกัน ทันเวลาหรือไม่ส่งข้อความเลยในระยะเวลาที่เพียงพอ ในทางปฏิบัติ นี่หมายถึงสมาชิกของฉันอาจ ต้องปรับชิ้นจนกว่าสภาพจะคงอยู่ นี้ ปัญหาไม่มีอยู่ในระบบ FBA: Losa และคณะ [47] ปัจจุบัน โปรโตคอลที่ความมีชีวิตชีวาขึ้นอยู่กับจุดอ่อนที่อ่อนแอกว่าอย่างเคร่งครัด สมมติฐานของการซิงโครไนซ์ในท้ายที่สุดและการเลือกผู้นำในที่สุด โดยไม่จำเป็นต้องลบโหนดที่ผิดพลาดออกจากชิ้นส่วน

Formale Überprüfung des SCP

Um Konstruktionsfehler auszuschließen, haben wir die Sicherheit von SCP offiziell überprüft und Lebendigkeitseigenschaften (siehe [65]). Konkret haben wir es überprüft dass ineinander verschlungene Knoten niemals anderer Meinung sind und dass unter den unten diskutierten Bedingungen jedes Mitglied einer intakten Menge letztendlich entscheidet. Interessanterweise ergab die Überprüfung, dass die Bedingungen, unter denen SCP Lebendigkeit garantiert, sind subtil, und stärker als zunächst angenommen [68]: wie unten besprochen, bösartige Knoten, die das Timing unbefugt manipulieren Abweichungen vom Protokoll müssen möglicherweise manuell entfernt werden aus Quorum-Slices.

SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. Um sicherzustellen, dass die bewährten Eigenschaften möglichst erhalten bleiben FBA-Konfigurationen und -Ausführungen betrachten wir als beliebig Anzahl der Knoten mit beliebigen lokalen Konfigurationen. Dies umfasst Szenarien mit disjunkten intakten Mengen sowie potenziell unendlich langen Ausführungen. Der Nachteil ist, dass wir stehen vor dem herausfordernden Problem der Verifizierung einer parametrisierten System mit unendlichen Zuständen. Um die Überprüfung nachvollziehbar zu halten, haben wir SCP in First-Order-Logik (FOL) unter Verwendung von Ivy [69] und der Methodik von [82] modelliert. Der Verifizierungsprozess besteht aus der manuellen Bereitstellung induktiver Vermutungen, die dann automatisch überprüft werden Efeu. Das FOL-Modell von SCP abstrahiert einige Aspekte von FBA-Systeme, die in FOL schwer zu handhaben sind (z. B. das Der Kaskadensatz wird als Axiom genommen), also überprüfen wir das Solidität der Abstraktion unter Verwendung von Isabelle/HOL [75]. Nachdem wir das Verifizierungsproblem in FOL ausgedrückt haben, verifizieren wir die Sicherheit, indem wir eine induktive Invariante bereitstellen. Das Induktive Invariante besteht aus einem Dutzend einzeiliger Vermutungen für etwa 150 Zeilen Protokollspezifikation. Anschließend spezifizieren wir die Lebendigkeitseigenschaften von SCP in Ivys linearer zeitlicher Logik und verwenden die Reduzierung der Lebendigkeit auf Sicherheit von [80, 81] zur Reduzierung der Lebendigkeit Verifikationsproblem zum Problem, eine Induktion zu finden invariant. Während die Sicherheit von SCP relativ einfach ist beweisen, dass das Lebendigkeitsargument von SCP viel komplizierter ist und besteht aus etwa 150 einzeiligen Invarianten. Der Nachweis der Lebendigkeit erforderte eine genaue Formalisierung des Annahmen, unter denen SCP die Beendigung sicherstellt. Wir dachten zunächst, dass ich einen intakten Satz immer beenden würde, wenn alle vorhanden wären Mitglieder haben fehlerhafte Knoten aus ihren Slices [68] entfernt. Dies erwies sich jedoch als unzureichend: ein braves (aber nicht intakt) Knoten in einem Quorum eines Mitglieds von I can, unter dem Einfluss fehlerhafter Knoten, Beendigung durch Abschluss verhindern ein Quorum kurz vor dem Ende eines Wahlgangs, wodurch verursacht wird Mitglieder von I sollen im nächsten Wahlgang andere Werte für x wählen. Wir müssen daher zusätzlich davon ausgehen, dass informell Jeder Knoten in einem Quorum eines Mitglieds von I. schließlich auch kommt pünktlich oder sendet über einen ausreichenden Zeitraum überhaupt keine Nachrichten. In der Praxis bedeutet dies, dass Mitglieder von I may müssen ihre Slices anpassen, bis die Bedingung erfüllt ist. Dies Das Problem ist bei FBA-Systemen nicht inhärent: Losa et al. [47] vorhanden ein Protokoll, dessen Lebendigkeit von den strikt Schwächeren abhängt Annahmen lediglich einer eventuellen Synchronität und einer eventuellen Leaderelection, ohne dass fehlerhafte Knoten aus den Slices entfernt werden müssen.

เครือข่ายการชำระเงิน

ส่วนนี้จะอธิบายเครือข่ายการชำระเงินของ Stellar ซึ่งนำไปใช้เป็นเครื่องจำลองสถานะ [88] ที่ด้านบนของ SCP 5.1 แบบจำลองบัญชีแยกประเภท บัญชีแยกประเภทของ Stellar ได้รับการออกแบบโดยคำนึงถึงนามธรรมของบัญชี (ใน ตรงกันข้ามกับเอาท์พุตธุรกรรมที่ไม่ได้ใช้เหรียญเป็นศูนย์กลางมากกว่า หรือ UTXO โมเดลของ Bitcoin) เนื้อหาบัญชีแยกประเภทประกอบด้วย ชุดรายการบัญชีแยกประเภทสี่ประเภทที่แตกต่างกัน: บัญชี, สายที่เชื่อถือได้, ข้อเสนอและข้อมูลบัญชี บัญชีเป็นตัวการที่เป็นเจ้าของและออกสินทรัพย์ แต่ละ บัญชีถูกตั้งชื่อโดยกุญแจสาธารณะ ตามค่าเริ่มต้น คีย์ส่วนตัวที่เกี่ยวข้องสามารถลงนามธุรกรรมสำหรับบัญชีได้ อย่างไรก็ตาม คุณสามารถกำหนดค่าบัญชีใหม่เพื่อเพิ่มผู้ลงนามรายอื่นและยกเลิกการอนุญาตคีย์ที่ตั้งชื่อบัญชีได้โดยใช้ ตัวเลือก “multisig” เพื่อกำหนดให้ต้องมีผู้ลงนามหลายคน แต่ละบัญชี ประกอบด้วย: หมายเลขลำดับ (รวมอยู่ในธุรกรรม เพื่อป้องกันการเล่นซ้ำ) ธงบางส่วนและความสมดุลใน "พื้นเมือง" สกุลเงินดิจิทัลที่ขุดไว้ล่วงหน้าที่เรียกว่า XLM ซึ่งมีจุดประสงค์เพื่อลดผลกระทบ การโจมตีแบบปฏิเสธการให้บริการและอำนวยความสะดวกในการทำตลาด เป็นสกุลเงินที่เป็นกลาง Trustlines ติดตามความเป็นเจ้าของสินทรัพย์ที่ออกซึ่งได้แก่ ตั้งชื่อโดยคู่ที่ประกอบด้วยบัญชีผู้ออกและชอร์ต รหัสสินทรัพย์ (เช่น “USD” หรือ “EUR”) แต่ละ trustline ระบุ บัญชี สินทรัพย์ ยอดคงเหลือในบัญชีในสินทรัพย์นั้น ก เกินขีดจำกัดซึ่งยอดคงเหลือไม่สามารถเพิ่มขึ้นได้ และธงบางอัน บัญชีจะต้องยินยอมอย่างชัดเจนในการถือครองทรัพย์สินโดย สร้าง trustline เพื่อป้องกันไม่ให้ผู้ส่งอีเมลขยะต้องอานม้า บัญชีที่มีทรัพย์สินที่ไม่ต้องการ กฎระเบียบ Know-your-customer (KYC) กำหนดให้สถาบันการเงินหลายแห่งทราบว่าตนถือเงินฝากของใคร เช่นโดยการตรวจสอบบัตรประจำตัวที่มีรูปถ่าย เพื่อให้เป็นไปตามนั้นผู้ออกสามารถกำหนดได้ การตั้งค่าสถานะ auth_reqired ที่เป็นทางเลือกในบัญชีของพวกเขา ซึ่งจำกัดความเป็นเจ้าของเนื้อหาที่พวกเขาออกให้กับบัญชีที่ได้รับอนุญาต ในการให้อนุญาตดังกล่าว ผู้ออกจะตั้งค่าการอนุญาต ปักธงบนความไว้วางใจของลูกค้า ข้อเสนอที่สอดคล้องกับความเต็มใจของบัญชีในการแลกเปลี่ยน ไปยังสินทรัพย์จำนวนหนึ่งสำหรับอีกสินทรัพย์หนึ่ง ณ เวลาที่กำหนด ราคาในสมุดสั่งซื้อ พวกมันจะถูกจับคู่โดยอัตโนมัติและ เติมเมื่อราคาซื้อ/ขายข้าม สุดท้าย ข้อมูลบัญชีประกอบด้วยบัญชี คีย์ มูลค่าสามเท่า ช่วยให้เจ้าของบัญชี เพื่อเผยแพร่ค่าข้อมูลเมตาขนาดเล็ก เพื่อป้องกันสแปมบัญชีแยกประเภท มียอดคงเหลือ XLM ขั้นต่ำ เรียกว่าสำรอง ทุนสำรองของบัญชีจะเพิ่มขึ้นตามแต่ละบัญชี รายการบัญชีแยกประเภทที่เกี่ยวข้องและลดลงเมื่อรายการบัญชีแยกประเภท หายไป (เช่น เมื่อมีการกรอกหรือยกเลิกคำสั่งซื้อ หรือเมื่อ สายที่เชื่อถือได้จะถูกลบ) ปัจจุบันเงินสำรองเพิ่มขึ้น 0.5 XLM (∼$0.03) ต่อรายการบัญชีแยกประเภท ไม่ว่าจะเป็นเงินสำรองก็เป็นได้ เป็นไปได้ที่จะเรียกคืนมูลค่าทั้งหมดของบัญชีโดยการลบ ด้วยการดำเนินการ AccountMerge ส่วนหัวของบัญชีแยกประเภท แสดงในรูปที่ 3 จัดเก็บแอตทริบิวต์ส่วนกลาง: หมายเลขบัญชีแยกประเภท พารามิเตอร์ เช่น ยอดคงเหลือต่อ รายการบัญชีแยกประเภท hash ของส่วนหัวบัญชีแยกประเภทก่อนหน้า (อันที่จริง hashes หลายรายการสร้างรายการข้าม) เอาต์พุต SCP รวมถึง hash ของธุรกรรมใหม่ที่ใช้กับบัญชีแยกประเภทนี้, hash จาก ผลลัพธ์ของธุรกรรมเหล่านั้น (เช่น สำเร็จหรือล้มเหลวสำหรับ แต่ละรายการ) และสแน็ปช็อต hash ของรายการบัญชีแยกประเภททั้งหมด เนื่องจากสแน็ปช็อต hash มีเนื้อหาบัญชีแยกประเภททั้งหมด validators ไม่จำเป็นต้องเก็บประวัติเพื่อตรวจสอบธุรกรรม อย่างไรก็ตามจะขยายไปถึงหลายร้อยล้านที่คาดไว้ บัญชี เราไม่สามารถ rehash ตารางรายการบัญชีแยกประเภททั้งหมดในทุก ๆ ปิดบัญชีแยกประเภท นอกจากนี้ การโอนบัญชีแยกประเภทไม่สามารถทำได้การชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา บัญชีแยกประเภท # = 4 H(ก่อนหน้า hdr) เอาท์พุท SCP H∗(ผลลัพธ์) H∗(สแนปช็อต) ... ส่วนหัว บัญชีแยกประเภท # = 5 H(ก่อนหน้า hdr) เอาท์พุท SCP H∗(ผลลัพธ์) H∗(สแนปช็อต) ... ส่วนหัว . . . รูปที่ 3 เนื้อหาบัญชีแยกประเภท H คือ SHA-256 ในขณะที่ H ∗ แสดงถึงการประยุกต์ใช้แบบลำดับชั้นหรือแบบเรียกซ้ำของเอาต์พุต H. SCP ยังขึ้นอยู่กับส่วนหัวก่อนหน้า hash สร้างบัญชี สร้างและฝากเงินเข้าบัญชีแยกประเภทบัญชีใหม่ การรวมบัญชี ลบรายการบัญชีแยกประเภทบัญชี ตั้งค่าตัวเลือก เปลี่ยนสถานะบัญชีและผู้ลงนาม การชำระเงิน ชำระสินทรัพย์ตามจำนวนที่ต้องการเพื่อทำลาย บัญชี เส้นทางการชำระเงิน ชอบจ่ายเงินแต่จ่ายเป็นสินทรัพย์ต่างกัน (ขึ้นไป เพื่อจำกัด); ระบุสินทรัพย์ตัวกลางได้สูงสุด 5 รายการ จัดการข้อเสนอ สร้าง/ลบ/เปลี่ยนแปลงรายการบัญชีแยกประเภทข้อเสนอ -ข้อเสนอแบบพาสซีฟ ด้วยตัวแปรแบบพาสซีฟเพื่อให้สเปรดเป็นศูนย์ จัดการข้อมูล สร้าง/ลบ/เปลี่ยนแปลงบัญชี รายการบัญชีแยกประเภทข้อมูล เปลี่ยนความไว้วางใจ สร้าง/ลบ/เปลี่ยน trustline อนุญาตความไว้วางใจ ตั้งค่าหรือล้างธงที่ได้รับอนุญาตบนสายที่เชื่อถือได้ BumpSequence เพิ่มลำดับ หมายเลขในบัญชี รูปที่ 4 การดำเนินการบัญชีแยกประเภทหลัก ขนาดนั้นทุกครั้งที่โหนดถูกตัดการเชื่อมต่อ เครือข่ายนานเกินไป สแนปชอต hash จึงเป็นเช่นนั้น ออกแบบมาเพื่อเพิ่มประสิทธิภาพทั้ง hashing และการกระทบยอดสถานะ โดยเฉพาะอย่างยิ่ง สแน็ปช็อตจะแบ่งชั้นรายการบัญชีแยกประเภทตามเวลา ของการแก้ไขครั้งล่าสุดในชุดคอนเทนเนอร์ที่มีขนาดเอ็กซ์โปเนนเชียล เรียกว่าถัง การรวบรวมถังเรียกว่าถัง รายการ และมีความคล้ายคลึงกับต้นไม้ผสานที่มีโครงสร้างบันทึก (ต้นไม้ LSM) [77]. รายการถังจะไม่ถูกอ่านในระหว่างการประมวลผลธุรกรรม (ดูหัวข้อ 5.4) ดังนั้นการออกแบบบางอย่าง ลักษณะของต้นไม้ LSM สามารถผ่อนคลายได้ โดยเฉพาะการสุ่ม ไม่จำเป็นต้องเข้าถึงด้วยคีย์ และที่เก็บข้อมูลจะถูกอ่านเท่านั้น ตามลำดับซึ่งเป็นส่วนหนึ่งของระดับการผสาน กำลังแฮชถัง รายการเสร็จสิ้นโดย hash แต่ละที่เก็บข้อมูลเมื่อมีการผสานและคำนวณ hash สะสมใหม่ของที่เก็บข้อมูล hashes (ขนาดเล็ก ดัชนีอ้างอิงคงที่ hashes) ที่แต่ละบัญชีแยกประเภทปิด การกระทบยอดรายการฝากข้อมูลหลังจากขาดการเชื่อมต่อจำเป็นต้องดาวน์โหลด เฉพาะถังที่แตกต่างกัน 5.2 รูปแบบการทำธุรกรรม ธุรกรรมประกอบด้วยบัญชีต้นทาง เกณฑ์ความถูกต้อง ก บันทึกช่วยจำ และรายการการดำเนินการตั้งแต่หนึ่งรายการขึ้นไป รูปที่ 4 แสดงการดำเนินการที่มีอยู่ การดำเนินการแต่ละครั้งมีบัญชีต้นทางซึ่ง ค่าเริ่มต้นของธุรกรรมโดยรวม การทำธุรกรรมจะต้อง ลงนามด้วยคีย์ที่สอดคล้องกับทุกบัญชีต้นทาง การดำเนินการ บัญชี Multisig อาจต้องมีการลงนามที่สูงกว่า น้ำหนักสำหรับการดำเนินการบางอย่าง (เช่น SetOptions) และต่ำกว่า สำหรับผู้อื่น (เช่น AllowTrust) ธุรกรรมเป็นแบบอะตอมมิก หากการดำเนินการใดๆ ล้มเหลว จะไม่มีการดำเนินการใดเลย พวกเขาดำเนินการ สิ่งนี้ทำให้ข้อตกลงหลายทางง่ายขึ้น สมมุติว่าอัน ผู้ออกสร้างสินทรัพย์เพื่อแสดงโฉนดที่ดินและผู้ใช้ก ต้องการแลกเปลี่ยนที่ดินผืนเล็กบวก $10,000 เป็นเงิน ที่ดินแปลงใหญ่ที่บีเป็นเจ้าของ ผู้ใช้ทั้งสองคนสามารถลงนามได้ทั้งคู่ ธุรกรรมเดียวที่มีสามการดำเนินงาน: สองที่ดิน การชำระเงินและการชำระหนึ่งดอลลาร์ เกณฑ์ความถูกต้องหลักของธุรกรรมคือหมายเลขลำดับ ซึ่งจะต้องมากกว่าเกณฑ์ของธุรกรรม รายการบัญชีแยกประเภทแหล่งที่มา ดำเนินธุรกรรมที่ถูกต้อง (สำเร็จหรือไม่) เพิ่มหมายเลขลำดับ เพื่อป้องกันการเล่นซ้ำ หมายเลขลำดับเริ่มต้นประกอบด้วยบัญชีแยกประเภท ให้เป็นบิตสูงเพื่อป้องกันการเล่นซ้ำแม้จะลบไปแล้วก็ตาม และสร้างบัญชีใหม่ เกณฑ์ความถูกต้องอื่นๆ คือขีดจำกัดที่เป็นทางเลือกว่าเมื่อใด ธุรกรรมสามารถดำเนินการได้ กลับคืนสู่ดินแดนและดอลลาร์ สลับด้านบน หาก A ลงนามในธุรกรรมก่อน B, A อาจไม่ อยากให้บีนั่งทำธุรกรรมเป็นเวลาหนึ่งปีก่อนที่จะส่ง มันและอาจกำหนดระยะเวลาที่ทำให้ธุรกรรมเป็นโมฆะ หลังจากนั้นไม่กี่วัน สามารถกำหนดค่าบัญชี Multisig ได้ เพื่อให้การลงนามมีน้ำหนักต่อการเปิดเผยของภาพล่วงหน้า hash ซึ่งเมื่อรวมกับขอบเขตเวลา อนุญาตให้มีการซื้อขาย atomic crosschain [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, Huntsville, ON, แคนาดา โลกาวา และคณะ validator แกนกลาง ขอบฟ้า เอฟเอส ดีบี ดีบี ส่ง ลูกค้า ลูกค้า validators อื่นๆ รูปที่ 5. Stellar validator สถาปัตยกรรม รู้วิธีการปฏิบัติ) มีการกำหนดค่าการอัพเกรดที่ต้องการ ทริกเกอร์ในเวลาที่กำหนดโดยมีวัตถุประสงค์เพื่อประสานงานระหว่างกัน ตัวดำเนินการ โหนดที่ควบคุมมักจะลงคะแนนให้เสนอชื่อที่ต้องการ อัปเกรด ยอมรับแต่อย่าลงคะแนนเพื่อเสนอการอัปเกรดที่ถูกต้อง (เช่น ดำเนินการตามองค์ประชุมที่ปิดกั้น) และไม่ต้องลงคะแนนเสียงให้ หรือยอมรับการอัพเกรดที่ไม่ถูกต้อง เสียงสะท้อน validators ที่ไม่อยู่ภายใต้การควบคุม การลงคะแนนใดๆ ที่พวกเขาเห็นสำหรับการอัพเกรดที่ถูกต้อง โดยพื้นฐานแล้วเป็นการมอบหมาย การตัดสินใจว่าต้องการอัปเกรดอะไรสำหรับผู้ที่เลือก เพื่อทำหน้าที่กำกับดูแล 5.4 การนำไปปฏิบัติ รูปที่ 5 แสดงสถาปัตยกรรม validator ของ Stellar ภูต เรียกว่า stellar-core (∼92k บรรทัดของ C ++ ไม่นับไลบรารีบุคคลที่สาม) ใช้โปรโตคอล SCP และเครื่องสถานะที่จำลองแบบ การสร้างมูลค่าสำหรับ SCP จำเป็นต้องลดรายการบัญชีแยกประเภทจำนวนมากให้เหลือเพียงการเข้ารหัสขนาดเล็ก hashส. ในทางตรงกันข้าม การตรวจสอบและดำเนินการธุรกรรม ต้องค้นหาสถานะบัญชีและการจับคู่คำสั่งซื้อที่ ราคาที่ดีที่สุด เพื่อให้บริการทั้งสองฟังก์ชั่นได้อย่างมีประสิทธิภาพ stellar-core เก็บการเป็นตัวแทนของบัญชีแยกประเภทไว้สองรายการ: การเป็นตัวแทนภายนอกที่มีรายการถังซึ่งจัดเก็บเป็นไฟล์ไบนารี่นั้น สามารถอัปเดตได้อย่างมีประสิทธิภาพและเพิ่มขึ้นเรื่อยๆ rehashed และ การแสดงภายในในฐานข้อมูล SQL (PostgreSQL สำหรับโหนดการผลิต) Stellar-core สร้างไฟล์เก็บถาวรประวัติแบบเขียนอย่างเดียวที่มี แต่ละชุดธุรกรรมที่ได้รับการยืนยันและภาพรวมของ ถัง ไฟล์เก็บถาวรช่วยให้โหนดใหม่สามารถบู๊ตตัวเองได้ เมื่อเข้าร่วมเครือข่าย อีกทั้งยังมีบันทึกบัญชีแยกประเภทอีกด้วย ประวัติศาสตร์—จำเป็นต้องมีสถานที่ที่สามารถค้นหาได้ ธุรกรรมเมื่อสองปีที่แล้ว เนื่องจากประวัติศาสตร์เป็นเพียงการผนวกเท่านั้น และเข้าถึงไม่บ่อยก็สามารถเก็บไว้ในที่ราคาถูกได้ เช่น Amazon Glacier หรือบริการใดๆ ที่อนุญาตให้จัดเก็บได้ และดึงไฟล์แฟลต โดยทั่วไปแล้วโฮสต์ของเครื่องมือตรวจสอบจะไม่โฮสต์ ที่เก็บถาวรของตนเองเพื่อหลีกเลี่ยงผลกระทบต่อการตรวจสอบ ประสิทธิภาพจากประวัติการเสิร์ฟ เพื่อให้ stellar-core เรียบง่าย จึงไม่ได้ตั้งใจจะใช้ โดยตรงโดยแอปพลิเคชันและเปิดเผยเฉพาะอินเทอร์เฟซที่แคบมากสำหรับการส่งธุรกรรมใหม่ เพื่อรองรับ ลูกค้า validators ส่วนใหญ่เรียกใช้ daemon ที่เรียกว่าขอบฟ้า (∼18k lines of Go) ที่มีอินเทอร์เฟซ HTTP สำหรับการส่ง และการเรียนรู้ธุรกรรม Horizon มีสิทธิ์เข้าถึงแบบอ่านอย่างเดียว ฐานข้อมูล SQL ของ stellar-core ช่วยลดความเสี่ยงของเส้นขอบฟ้า แกนดาวฤกษ์ที่ไม่เสถียร คุณสมบัติต่างๆ เช่น การค้นหาเส้นทางการชำระเงินนั้นถูกนำไปใช้งานอย่างสมบูรณ์และสามารถอัปเกรดได้ ฝ่ายเดียวโดยไม่ประสานงานกับ validators อื่น ๆ daemons เลเยอร์ที่เป็นตัวเลือกที่สูงกว่าหลายตัวเป็นไคลเอนต์ที่ขอบฟ้า ล้อมรอบระบบนิเวศ บริดจ์เซิร์ฟเวอร์อำนวยความสะดวก การบูรณาการ Stellar กับระบบที่มีอยู่ เช่น การโพสต์การแจ้งเตือนการชำระเงินทั้งหมดที่ได้รับจากบัญชีเฉพาะ ก เซิร์ฟเวอร์การปฏิบัติตามกฎระเบียบมอบ hooks สำหรับสถาบันการเงิน แลกเปลี่ยนและอนุมัติข้อมูลผู้ส่งและผู้รับผลประโยชน์ ในการชำระเงินเพื่อให้สอดคล้องกับรายการคว่ำบาตร สุดท้ายนี้ เซิร์ฟเวอร์รวมใช้การตั้งชื่อที่มนุษย์สามารถอ่านได้ ระบบบัญชี. 6 ประสบการณ์การใช้งาน Stellar เติบโตเป็นเวลาหลายปีจนกลายเป็นรัฐที่มีระดับปานกลาง จำนวนตัวดำเนินการโหนดเต็มรูปแบบที่เชื่อถือได้พอสมควร อย่างไรก็ตาม การกำหนดค่าของโหนดนั้นมีความมีชีวิตชีวา (แม้ว่าจะไม่ใช่ก็ตาม ความปลอดภัย) ขึ้นอยู่กับเรา มูลนิธิ Stellar การพัฒนา (เอสดีเอฟ); หาก SDF หายไปอย่างกะทันหัน ผู้ดำเนินการโหนดรายอื่น จะต้องเข้ามาแทรกแซงและลบเราออกด้วยตนเอง จากส่วนโควรัมเพื่อให้เครือข่ายดำเนินการต่อ แม้ว่าเราและคนอื่นๆ ต้องการลดความสำคัญเชิงระบบของ SDF แต่เป้าหมายนี้ก็ได้รับลำดับความสำคัญเพิ่มมากขึ้นหลังจากนั้น นักวิจัย [58] ระบุปริมาณและเผยแพร่การรวมศูนย์ของเครือข่ายโดยไม่แยกแยะความเสี่ยงด้านความปลอดภัยและ ความมีชีวิตชีวา ผู้ปฏิบัติงานจำนวนหนึ่งตอบสนองต่อการปรับเปลี่ยนการกำหนดค่าที่ใช้งานอยู่ โดยหลักๆ แล้วจะเป็นการเพิ่มขนาดของพวกเขา แบ่งองค์ประชุมเพื่อลดความสำคัญของ SDF; น่าแปลกที่สิ่งนี้เพิ่มความเสี่ยงต่อความมีชีวิตชีวาเท่านั้น ปัญหาสองประการทำให้สถานการณ์รุนแรงขึ้น อันดับแรกเป็นที่นิยม เครื่องมือตรวจสอบบุคคลที่สาม Stellar [5] เป็นระบบ ประเมินเวลาทำงาน validator สูงเกินไปโดยไม่ตรวจสอบจริง แกนดาวฤกษ์นั้นกำลังทำงานอยู่ สิ่งนี้ทำให้ผู้คนรวม โหนดที่ไม่น่าเชื่อถือในส่วนโควรัม ประการที่สอง มีข้อบกพร่องใน stellar-core หมายถึงเมื่อ validator ย้ายไปยังบัญชีแยกประเภทถัดไป มันไม่ได้ช่วยให้โหนดที่เหลือทำ previ ได้เพียงพอบัญชีแยกประเภทในกรณีที่ข้อความสูญหาย เป็นผลให้ เครือข่ายประสบปัญหาการหยุดทำงานเป็นเวลา 67 นาทีและจำเป็น การประสานงานด้วยตนเองโดยผู้ดูแลระบบ validator เพื่อรีสตาร์ท ที่แย่กว่านั้นคือในขณะที่พยายามรีสตาร์ทเครือข่าย ส่งผลให้มีการกำหนดค่าใหม่อย่างรวดเร็วบนหลายโหนด ในการกำหนดค่าที่ไม่ถูกต้องโดยรวมซึ่งทำให้บางโหนดสามารถ แยกออกจากกันโดยต้องมีการปิดโหนดเหล่านั้นด้วยตนเองและ ส่งธุรกรรมที่ยอมรับอีกครั้งระหว่างความแตกต่าง โชคดีที่ความแตกต่างนี้ถูกจับได้และแก้ไขแล้ว อย่างรวดเร็วและไม่มีธุรกรรมที่ขัดแย้งกัน แต่ ความเสี่ยงที่เครือข่ายไม่สามารถเพลิดเพลินกับจุดตัดองค์ประชุม— แยกทางกันในขณะที่ยังคงยอมรับความขัดแย้งที่อาจขัดแย้งกันต่อไป มีการทำธุรกรรมเพียงเพราะการกำหนดค่าที่ไม่ถูกต้อง เหตุการณ์นี้เป็นรูปธรรมมาก การทบทวนประสบการณ์เหล่านี้นำไปสู่ข้อสรุปที่สำคัญสองประการ และการดำเนินการแก้ไขที่สอดคล้องกันการชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา สำคัญ 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 การตรวจสอบจุดตัดองค์ประชุม แม้ว่าการรวบรวมโควรัมสไลซ์จะเป็นเรื่องง่าย แต่การค้นหาโควรัมที่ไม่ต่อเนื่องกันนั้นถือเป็น NP-hard ร่วมกัน [62] อย่างไรก็ตาม เราก็รับเอา ชุดของการวิเคราะห์พฤติกรรมอัลกอริทึมและกฎการกำจัดตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เสนอโดย Lachowski [62] ที่ตรวจสอบอินสแตนซ์ทั่วไป ของปัญหาที่มีขนาดเร็วกว่านั้นหลายเท่า ต้นทุนกรณีที่เลวร้ายที่สุด ในทางปฏิบัติแล้วเครือข่ายในปัจจุบัน การปิดสกรรมกริยาโควรัมสไลซ์อยู่ในลำดับ 20–30 โหนดและโดยทั่วไปจะตรวจสอบด้วยการเพิ่มประสิทธิภาพของ Lachowski ภายในเวลาไม่กี่วินาทีบน CPU ตัวเดียว หากมีความจำเป็นเกิดขึ้น เพื่อเพิ่มประสิทธิภาพ เราอาจทำการค้นหาแบบขนาน 6.2.2 กำลังตรวจสอบการกำหนดค่าที่มีความเสี่ยง การตรวจพบว่าเครือข่ายยอมรับโควรัมที่ไม่เป็นสมาชิกร่วมนั้นเป็นขั้นตอนหนึ่ง ไปถูกทางแต่ส่งสัญญาณอันตรายช้าอย่างไม่สบายใจ สำหรับปัญหาที่สำคัญเช่นนี้ ตามหลักการแล้ว เราต้องการให้ผู้ดำเนินการโหนดได้รับคำเตือนเมื่อมีการกำหนดค่าโดยรวมของเครือข่าย กำลังเข้าสู่ภาวะเสี่ยงเท่านั้น ดังนั้นเราจึงขยายตัวตรวจสอบโควรัม-ทางแยก เพื่อตรวจจับสภาวะที่เราเรียกว่าวิกฤต: เมื่อกระแส การกำหนดค่าโดยรวมคือการกำหนดค่าที่ไม่ถูกต้องอย่างหนึ่ง รัฐที่ยอมรับองค์ประชุมที่ไม่ต่อเนื่องกัน เพื่อตรวจจับภาวะวิกฤติ ตัวตรวจสอบจะแทนที่การกำหนดค่าของแต่ละองค์กรซ้ำแล้วซ้ำอีกด้วยการกำหนดค่าที่ไม่ถูกต้องที่เลวร้ายที่สุดจำลอง รันตัวตรวจสอบจุดตัดโควรัมด้านในกับผลลัพธ์อีกครั้ง หากมีการกำหนดค่าผิดพลาดร้ายแรงดังกล่าวอยู่อีกขั้นตอนหนึ่ง จากสถานะปัจจุบันซอฟต์แวร์จะออกคำเตือนและ รายงานองค์กรที่มีความเสี่ยงในการกำหนดค่าที่ไม่ถูกต้อง การเปลี่ยนแปลงเหล่านี้ทำให้ชุมชนของผู้ปฏิบัติงานมีสองชั้น การแจ้งเตือนและคำแนะนำเพื่อป้องกันรูปแบบที่เลวร้ายที่สุด ของการกำหนดค่าผิดพลาดร่วมกัน

Zahlungsnetzwerk

In diesem Abschnitt wird das Zahlungsnetzwerk von Stellar beschrieben, das als replizierte Zustandsmaschine [88] auf SCP implementiert ist. 5.1 Ledger-Modell Das Hauptbuch von Stellar basiert auf einer Kontoabstraktion (in Im Gegensatz zur eher münzenzentrierten nicht ausgegebenen Transaktionsausgabe oder UTXO Modell von Bitcoin). Der Hauptbuchinhalt besteht aus a Satz von Hauptbucheinträgen aus vier verschiedenen Typen: Konten, Treuhandlinien, Angebote und Kontodaten. Konten sind die Auftraggeber, die Vermögenswerte besitzen und ausgeben. Jeder Das Konto wird durch einen öffentlichen Schlüssel benannt. Standardmäßig kann der entsprechende private Schlüssel Transaktionen für das Konto signieren. Konten können jedoch neu konfiguriert werden, um andere Unterzeichner hinzuzufügen und den Schlüssel, der das Konto benennt, mit einem zu deaktivieren „Multisig“-Option, um mehrere Unterzeichner zu erfordern. Jedes Konto enthält außerdem: eine Sequenznummer (in Transaktionen enthalten). um eine Wiederholung zu verhindern), einige Flags und ein Gleichgewicht in einer „nativen“ Vorab erstellte Kryptowährung namens XLM, die Abhilfe schaffen soll einige Denial-of-Service-Angriffe und erleichtern das Market-Making als neutrale Währung. Trustlines verfolgen das Eigentum an ausgegebenen Vermögenswerten benannt durch ein Paar bestehend aus dem ausstellenden Konto und einem Short Anlagecode (z. B. „USD“ oder „EUR“). Jede Vertrauenslinie gibt an ein Konto, ein Vermögenswert, der Kontostand in diesem Vermögenswert, a Grenze, über die der Saldo nicht steigen kann, und einige Flaggen. Ein Konto muss dem Halten eines Vermögenswerts ausdrücklich zustimmen Erstellen einer Vertrauenslinie, um Spammer daran zu hindern, sich anzumelden Konten mit unerwünschten Vermögenswerten. Die KYC-Vorschriften (Know Your Customer) verlangen von vielen Finanzinstituten, dass sie wissen, wessen Einlagen sie halten. zum Beispiel durch die Überprüfung des Lichtbildausweises. Zur Einhaltung können Emittenten festlegen ein optionales auth_reqired-Flag auf ihren Konten, das den Besitz der von ihnen ausgegebenen Vermögenswerte auf autorisierte Konten beschränkt. Um eine solche Autorisierung zu erteilen, legt der Emittent eine Autorisierung fest Markieren Sie die Vertrauenslinien der Kunden. Angebote entsprechen der Bereitschaft eines Kontos, nach oben zu handeln einen bestimmten Betrag eines bestimmten Vermögenswerts für einen anderen zu einem bestimmten Zeitpunkt zu übertragen Preis im Auftragsbuch; Sie werden automatisch abgeglichen und gefüllt, wenn sich Kauf-/Verkaufspreise kreuzen. Schließlich bestehen Kontodaten aus Konto-, Schlüssel- und Werttripeln, die den Kontoinhabern ermöglichen um kleine Metadatenwerte zu veröffentlichen. Um Ledger-Spam zu verhindern, gibt es ein XLM-Mindestguthaben. als Reserve bezeichnet. Die Reserve eines Kontos erhöht sich mit jedem zugeordneten Hauptbucheintrag und verringert sich, wenn der Hauptbucheintrag erfolgt verschwindet (z. B. wenn eine Bestellung ausgeführt oder storniert wird oder wenn a Trustline wird gelöscht). Derzeit wächst die Reserve um 0,5 XLM (∼0,03 $) pro Hauptbucheintrag. Unabhängig von der Reserve ist es so Es ist möglich, durch Löschung den gesamten Wert eines Kontos zurückzufordern es mit einer AccountMerge-Operation. Ein Hauptbuchkopf, wie in Abbildung 3 dargestellt, speichert globale Attribute: eine Hauptbuchnummer, Parameter wie der Reservesaldo pro Hauptbucheintrag, ein hash des vorherigen Hauptbuchkopfes (eigentlich mehrere hashes, die eine Skiplist bilden), einschließlich der SCP-Ausgabe a hash neuer Transaktionen, die in diesem Hauptbuch angewendet wurden, a hash von die Ergebnisse dieser Transaktionen (z. B. Erfolg oder Misserfolg für jeweils) und eine Momentaufnahme hash aller Hauptbucheinträge. Da der Snapshot hash alle Hauptbuchinhalte enthält, validators müssen den Verlauf nicht aufbewahren, um Transaktionen zu validieren. Allerdings ist mit einer Skalierung auf Hunderte Millionen zu rechnen Konten können wir nicht alle Hauptbucheintragstabellen für alle neu erstellen Hauptbuch schließen. Darüber hinaus ist es nicht praktikabel, ein Hauptbuch zu übertragenSchnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Hauptbuch # = 4 H(vorheriges HDR) SCP-Ausgabe H∗(Ergebnisse) H∗(Schnappschuss) ... Kopfzeile Hauptbuch # = 5 H(vorheriges HDR) SCP-Ausgabe H∗(Ergebnisse) H∗(Schnappschuss) ... Kopfzeile . . . Abbildung 3. Hauptbuchinhalte. H ist SHA-256, während H ∗ eine hierarchische oder rekursive Anwendung von H darstellt. SCP-Ausgabe Hängt auch vom vorherigen Header hash ab. Konto erstellen Erstellen und finanzieren Sie einen neuen Kontoeintrag Kontozusammenführung Kontobucheintrag löschen SetOptions Kontokennzeichnungen und Unterzeichner ändern Zahlung Zahlen Sie eine bestimmte Menge an Vermögenswerten an das Ziel. Konto. PathPayment Wie „Zahlung“, aber zahlen Sie in einem anderen Guthaben ein (aufwärts). begrenzen); Geben Sie bis zu 5 zwischengeschaltete Vermögenswerte an Angebot verwalten Angebotsbucheintrag erstellen/löschen/ändern, -Passives Angebot mit passiver Variante, um eine Nullausbreitung zu ermöglichen Daten verwalten Konto erstellen/löschen/ändern Datenbucheintrag ChangeTrust Trustline erstellen/löschen/ändern AllowTrust Setzen oder löschen Sie das Autorisierungskennzeichen auf der Trustline BumpSequence Erhöhen Sie die Folge. Nummer auf dem Konto Abbildung 4. Hauptbuchoperationen dieser Größe jedes Mal, wenn die Verbindung zu einem Knoten getrennt wurde zu lange im Netzwerk. Der Snapshot hash ist daher Entwickelt, um sowohl den hashing als auch den Zustandsabgleich zu optimieren. Konkret werden in der Momentaufnahme die Hauptbucheinträge nach Zeit geschichtet der letzten Änderung in einer Reihe exponentiell großer Container sogenannte Eimer. Die Ansammlung von Eimern wird Eimer genannt Liste und weist eine gewisse Ähnlichkeit mit logarithmisch strukturierten Zusammenführungsbäumen auf (LSM-Bäume) [77]. Die Bucket-Liste wird während der Transaktionsverarbeitung nicht gelesen (siehe Abschnitt 5.4). Daher bestimmtes Design Aspekte von LSM-Bäumen können gelockert werden. Insbesondere zufällig Ein Zugriff per Schlüssel ist nicht erforderlich und Buckets werden immer nur gelesen nacheinander im Rahmen der Zusammenführung von Ebenen. Den Eimer hashen Die Liste wird erstellt, indem jeder Bucket beim Zusammenführen hash wird und ein neuer kumulativer hash der Bucket-hashes berechnet wird (ein kleiner, fester Referenzindex hashes) bei jedem Ledgerabschluss. Der Abgleich der Bucket-Liste nach der Trennung erfordert einen Download nur Eimer, die sich unterscheiden. 5.2 Transaktionsmodell Eine Transaktion besteht aus einem Quellkonto, Gültigkeitskriterien, a Memo und eine Liste von einem oder mehreren Vorgängen. Abbildung 4 listet die verfügbaren Operationen auf. Jeder Vorgang verfügt über ein Quellkonto, das Der Standardwert ist der der gesamten Transaktion. Eine Transaktion muss mit Schlüsseln signiert sein, die jedem Quellkonto in entsprechen eine Operation. Multisig-Konten können eine höhere Signierung erfordern Gewicht für einige Operationen (z. B. SetOptions) und niedriger für andere (z. B. AllowTrust). Transaktionen sind atomar – wenn eine Operation fehlschlägt, keine davon sie ausführen. Dies vereinfacht Mehrweggeschäfte. Angenommen, ein Der Emittent erstellt einen Vermögenswert, um Landurkunden darzustellen, und Benutzer A möchte ein kleines Grundstück plus 10.000 US-Dollar gegen ein tauschen größeres Grundstück im Besitz von B. Die beiden Nutzer können beide unterzeichnen eine einzelne Transaktion mit drei Vorgängen: zwei Grundstücke Zahlungen und Ein-Dollar-Zahlung. Das wichtigste Gültigkeitskriterium einer Transaktion ist ihre Sequenznummer, die um eins größer sein muss als die der Transaktion Hauptbucheintrag des Quellkontos. Eine gültige Transaktion ausführen (erfolgreich oder nicht) erhöht die Sequenznummer und verhindert so die Wiedergabe. Die anfänglichen Sequenznummern enthalten das Hauptbuch Nummer in den hohen Bits, um eine erneute Wiedergabe auch nach dem Löschen zu verhindern und ein Konto neu erstellen. Das andere Gültigkeitskriterium ist eine optionale Begrenzung des Zeitpunkts Eine Transaktion kann ausgeführt werden. Zurück zum Land und zum Dollar Swap oben: Wenn A die Transaktion vor B unterzeichnet, kann A dies möglicherweise nicht tun Ich möchte, dass B die Transaktion ein Jahr lang abwartet, bevor sie sie einreicht Dies könnte dazu führen, dass eine Frist gesetzt wird, die die Transaktion ungültig macht nach ein paar Tagen. Es können auch Multisig-Konten konfiguriert werden um der Enthüllung eines hash Vorbildes signierendes Gewicht zu verleihen, Dies ermöglicht in Kombination mit Zeitgrenzen den atomaren Cross-Chain-Handel [1]. Das Quellkonto einer Transaktion zahlt eine geringe Gebühr in XLM. 10−5 XLM, es sei denn, es liegt eine Überlastung vor. Unter Stau ist die Die Betriebskosten werden durch eine niederländische Auktion festgelegt. Validatoren sind nicht durch Gebühren kompensiert, da validators analog sind zu Bitcoin vollständigen Knoten, nicht zu Minern. Anstatt XLM zu zerstören, Die Gebühren werden recycelt und anteilig durch Abstimmung verteilt bestehende XLM-Inhaber, die im Nachhinein möglicherweise oder könnten war die Komplexität nicht wert. 5.3 Konsenswerte Für jedes Hauptbuch verwendet Stellar SCP, um eine Datenstruktur zu vereinbaren mit drei Feldern: einem Transaktionssatz hash (einschließlich eines hash des vorherigen Ledger-Kopfes), ein Abschlusszeitpunkt, eind Upgrades. Wenn mehrere Werte als bestätigt bestätigt werden, wird Stellar übernommen der Transaktionssatz mit den meisten Operationen (Unterbrechung von Bindungen). nach Gesamtgebühren, dann Transaktionssatz hash), die Vereinigung aller Upgrades und die höchste Schließzeit. Eine enge Zeit ist nur gültig, wenn es zwischen dem Abschlusszeitpunkt des letzten Hauptbuchs und dem liegt vorhanden, sodass Knoten keine ungültigen Zeiten nominieren. Durch Upgrades werden globale Parameter wie der Reservesaldo, die Mindestbetriebsgebühr und die Protokollversion angepasst. Wann Während der Nominierung werden höhere Gebühren und Protokollversionsnummern kombiniert und ersetzen niedrigere. Upgrades wirken sich auf die Governance durch einen Streitraum mit gemeinsamer Abstimmung aus [34], aber auch nicht weder egalitär noch zentralisiert. Jeder validator ist konfiguriert als entweder regierend oder nicht regierend (Standardeinstellung). davon, ob sein Betreiber sich an der Governance beteiligen möchte. Die validators berücksichtigen drei Arten von Upgrades: erwünscht, gültig und ungültig (alles, was validator nicht tut).

SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. validator Kern Horizont FS DB DB einreichen Kunde Kunde andere validators Abbildung 5. Stellar validator Architektur wissen, wie man es umsetzt). Gewünschte Upgrades werden konfiguriert Auslöser zu einem bestimmten Zeitpunkt, der koordiniert werden soll Betreiber. Regierende Knoten stimmen immer für die Nominierung der gewünschten Personen Upgrades akzeptieren, aber nicht stimmen, um gültige Upgrades zu nominieren (d. h. einem Sperrquorum zustimmen) und niemals dafür stimmen oder ungültige Upgrades akzeptieren. Nicht regierendes validators-Echo Jede Stimme, die sie für ein gültiges Upgrade sehen, delegiert im Wesentlichen Die Entscheidung darüber, welche Upgrades gewünscht werden, liegt bei denjenigen, die sich dafür entscheiden für eine Führungsrolle. 5.4 Umsetzung Abbildung 5 zeigt die validator-Architektur von Stellar. Ein Dämon namens stellar-core (ca. 92.000 Zeilen C++, ohne Bibliotheken von Drittanbietern) implementiert das SCP-Protokoll und die replizierte Zustandsmaschine. Um Werte für SCP zu erzeugen, muss eine große Anzahl von Hauptbucheinträgen auf kleine kryptografische Werte reduziert werden hashes. Im Gegensatz dazu Transaktionsvalidierung und -ausführung erfordert die Suche nach Kontostatus und Auftragsabgleich unter der beste Preis. Um beide Funktionen effizient zu erfüllen, stellar-core Behält zwei Darstellungen des Ledgers: eine externe Darstellung, die die Bucket-Liste enthält und als Binärdateien gespeichert wird kann effizient aktualisiert und inkrementell rehashed werden, und eine interne Darstellung in einer SQL-Datenbank (PostgreSQL für Produktionsknoten). Stellar-core erstellt ein schreibgeschütztes Verlaufsarchiv mit Jeder Transaktionssatz, der bestätigt wurde, und Snapshots davon Eimer. Das Archiv ermöglicht es neuen Knoten, sich selbst zu booten beim Beitritt zum Netzwerk. Es bietet auch eine Aufzeichnung des Hauptbuchs Geschichte – es muss einen Ort geben, an dem man nachschlagen kann Transaktion von vor zwei Jahren. Da der Verlauf nur angehängt werden kann Da es selten genutzt wird und selten darauf zugegriffen wird, kann es an günstigen Orten aufbewahrt werden wie Amazon Glacier oder jeder andere Dienst, der das Speichern ermöglicht und Flatfiles abrufen. Validator-Hosts hosten normalerweise nicht ihre eigenen Archive, um jegliche Auswirkungen auf die Validierung zu vermeiden Leistung aus dem Dienst der Geschichte. Um den Sternkern einfach zu halten, ist er nicht für die Verwendung vorgesehen direkt durch Anwendungen und stellt nur eine sehr schmale Schnittstelle für die Übermittlung neuer Transaktionen bereit. Zur Unterstützung Clients führen die meisten validators einen Daemon namens Horizon aus (∼18k Zeilen von Go), die eine HTTP-Schnittstelle zum Senden bereitstellt und Lernen von Transaktionen. Horizon hat nur Lesezugriff auf Die SQL-Datenbank von stellar-core minimiert das Risiko von Horizon Destabilisierender Sternenkern. Funktionen wie die Zahlungspfadfindung sind vollständig in Horizon implementiert und können erweitert werden einseitig ohne Abstimmung mit anderen validators. Mehrere optionale Daemons höherer Ebenen sind Clients für Horizon und runden das Ökosystem ab. Ein Bridge-Server erleichtert dies Integration von Stellar in bestehende Systeme, z. B. Verbuchung von Benachrichtigungen über alle auf einem bestimmten Konto eingegangenen Zahlungen. A Der Compliance-Server bietet Hooks für Finanzinstitute Austausch und Genehmigung von Absender- und Empfängerinformationen zu Zahlungen, zur Einhaltung von Sanktionslisten. Schließlich, Ein Verbundserver implementiert eine für Menschen lesbare Benennung System für Konten. 6 Bereitstellungserfahrung Stellar entwickelte sich über mehrere Jahre zu einem Staat mit gemäßigtem Anzahl einigermaßen zuverlässiger Full-Node-Betreiber. Allerdings Die Konfigurationen der Knoten waren so, dass Lebendigkeit (obwohl nicht Sicherheit) hing von uns ab, der Stellar Development Foundation (SDF); SDF war plötzlich verschwunden, andere Knotenbetreiber hätte eingreifen und uns manuell entfernen müssen von Quorum-Slices, damit das Netzwerk fortfahren kann. Während wir und viele andere die systemische Bedeutung von SDF reduzieren wollen, hat dieses Ziel seitdem immer mehr Priorität erhalten Forscher [58] quantifizierten und veröffentlichten die Zentralisierung des Netzwerks, ohne die Risiken für Sicherheit und Sicherheit zu differenzieren Lebendigkeit. Eine Reihe von Betreibern reagierte mit aktiven Konfigurationsanpassungen, vor allem mit der Vergrößerung ihrer Anlagen Quorum-Scheiben, um die Bedeutung der SDF abzuschwächen; Ironischerweise erhöhte dies nur das Risiko für die Lebendigkeit. Zwei Probleme verschärften die Situation. Erstens ein beliebter Das Überwachungstool [5] eines Drittanbieters Stellar wurde systematisch durchgeführt Überschätzung der Betriebszeit von validator durch nicht tatsächliche Überprüfung dieser Sternenkern lief; Dies führte dazu, dass Menschen einbezogen wurden unzuverlässige Knoten in ihren Quorum-Slices. Zweitens ein Fehler Stellar-Core bedeutete, dass einmal ein validator in das nächste Hauptbuch verschoben wurde, Es hat den verbleibenden Knoten nicht ausreichend dabei geholfen, die Previ abzuschließenNotieren Sie sich Ihr Konto für den Fall, dass Nachrichten verloren gehen. Infolgedessen ist die Das Netzwerk hatte eine Ausfallzeit von 67 Minuten und war erforderlich manuelle Koordination durch validator-Administratoren zum Neustart. Schlimmer noch: Beim Versuch, das Netzwerk neu zu starten, kam es gleichzeitig zu überstürzten Neukonfigurationen auf mehreren Knoten in einer kollektiven Fehlkonfiguration, die es einigen Knoten ermöglichte divergieren, was ein manuelles Herunterfahren dieser Knoten erfordert und Wiedervorlage der während der Divergenz akzeptierten Transaktionen. Glücklicherweise wurde diese Abweichung erkannt und korrigiert schnell und enthielt keine widersprüchlichen Transaktionen, aber die Risiko, dass das Netzwerk die Quorum-Überschneidung nicht erreicht – Spaltung unter gleichzeitiger Akzeptanz potenzieller Konflikte Transaktionen, einfach aufgrund einer Fehlkonfiguration, wurden durchgeführt sehr konkret durch diesen Vorfall. Die Überprüfung dieser Erfahrungen führte zu zwei wichtigen Schlussfolgerungen und entsprechende Korrekturmaßnahmen.Schnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Kritisch, 100 % 51 % 51 % Hoch, 67 % 51 % Mittel, 67 % 51 % Niedrig, 67 % 51 % 51 % ... ... ... 51 % ... 51 % Abbildung 6. Qualitätshierarchie des Validators. Knoten höchster Qualität erfordern den höchsten Schwellenwert von 100 %, während niedrigere Qualitäten auf einen Schwellenwert von 67 % konfiguriert sind. Knoten innerhalb eines einzigen Für die Organisation ist eine einfache Mehrheit von 51 % erforderlich. 6.1 Komplexität und Fragilität der Konfiguration Stellar drückt Quorum-Slices als verschachtelte Quorum-Sets aus, die aus n Einträgen und einem Schwellenwert k bestehen, wobei jeder Satz von k Einträgen besteht stellt einen Quorum-Slice dar. Jeder der n Einträge ist dann entweder ein öffentlicher Schlüssel validator oder, rekursiv, ein anderer Quorumsatz. Obwohl es flexibel und kompakt ist, haben wir ein verschachteltes Quorum realisiert Sets boten den Knotenbetreibern gleichzeitig zu viel Flexibilität und zu wenig Anleitung: Es war leicht, unsichere (bzw auch unsinnige) Konfigurationen. Die Kriterien für die Gruppierung Knoten in Mengen, zum Organisieren von Teilmengen in einer Hierarchie und zur Auswahl der Schwellenwerte waren alle nicht ausreichend klar und trugen zu Betriebsausfällen bei. Es war nicht klar, ob Behandeln Sie eine „Ebene“ in der Hierarchie der verschachtelten Mengen als eine Vertrauensebene. oder eine Organisation oder beides; viele Konfigurationen im Feld vermischte diese Konzepte zusätzlich zur Angabe gefährlicher oder bedeutungslose Schwellenwerte. Wir haben daher einen einfacheren Konfigurationsmechanismus hinzugefügt das zwei Aspekte verschachtelter Quorum-Sets trennt: Gruppierung Knoten nach Organisation zusammenfassen und jede Organisation mit einer einfachen Vertrauensklassifizierung (niedrig, mittel, hoch usw.) kennzeichnen kritisch). Organisationen auf und über hoher Ebene sind dazu verpflichtet Geschichtsarchive veröffentlichen. Das neue System synthetisiert verschachtelte Quorum-Sets, in denen jede Organisation als eine dargestellt wird Es wurde ein Schwellenwert von 51 % festgelegt und Organisationen werden in Gruppen eingeteilt mit 67 %- oder 100 %-Schwellenwerten (abhängig von der Gruppenqualität). Jede Gruppe ist ein einzelner Eintrag in der nächsten (höherwertigen) Gruppe. wie in Abbildung 6 dargestellt. Dieses vereinfachte Modell reduziert die Wahrscheinlichkeit einer Fehlkonfiguration, sowohl hinsichtlich der Struktur der synthetisierten verschachtelten Mengen und der dafür gewählten Schwellenwerte Jeder Satz. 6.2 Proaktive Erkennung von Fehlkonfigurationen Zweitens haben wir erkannt, dass es zu spät ist, kollektive Fehlkonfigurationen zu erkennen, indem man auf die Beobachtung ihrer negativen Auswirkungen wartet. Insbesondere im Hinblick auf Fehlkonfigurationen, die abweichen können – a schwerwiegenderer Fehlermodus als Anhalten – das Netzwerk benötigt um in der Lage zu sein, Fehlkonfigurationen sofort zu erkennen, so dass Bediener sie rückgängig machen können, bevor es tatsächlich zu Abweichungen kommt. Um diesem Bedarf gerecht zu werden, haben wir einen Mechanismus in die Software validator eingebaut, der kontinuierlich den kollektiven Konfigurationsstatus aller Peers im transitiven Abschluss des Knotens erfasst und das Potenzial für Divergenz – d. h. Disjunktheit – erkennt Kollegien – innerhalb dieser kollektiven Konfiguration. 6.2.1 Überprüfung der Quorum-Schnittmenge Während das Sammeln von Quorum-Slices einfach ist, ist es schwierig, disjunkte Quoren unter ihnen zu finden.[62]. Wir haben es jedoch angenommen eine Reihe algorithmischer Heuristiken und Falleliminierungsregeln vorgeschlagen von Lachowski [62], die typische Instanzen überprüfen des Problems mehrere Größenordnungen schneller als die Kosten im schlimmsten Fall. Praktisch gesehen das aktuelle Netzwerk Die transitiven Quorum-Slice-Abschlüsse liegen in der Größenordnung von 20–30 Knoten und, mit Lachowskis Optimierungen, typischerweise überprüfen in Sekundenschnelle auf einer einzigen CPU. Sollte sich der Bedarf ergeben Um die Leistung zu verbessern, können wir die Suche parallelisieren. 6.2.2 Überprüfung riskanter Konfigurationen Zu erkennen, dass das Netzwerk disjunkte Quoren zulässt, ist ein Schritt in die richtige Richtung, macht aber unangenehm spät auf die Gefahr aufmerksam für solch ein kritisches Thema. Im Idealfall möchten wir, dass Knotenbetreiber Warnungen erhalten, wenn die kollektive Konfiguration des Netzwerks erfolgt nähert sich lediglich einem riskanten Zustand. Daher haben wir den Quorum-Intersection-Checker erweitert Um einen Zustand zu erkennen, nennen wir ihn Kritikalität: wenn der Strom Die kollektive Konfiguration ist nur eine Fehlkonfiguration entfernt ein Staat, der disjunkte Quoren zulässt. Um Kritikalität zu erkennen, Der Prüfer ersetzt dann wiederholt die Konfiguration jeder Organisation durch eine simulierte Worst-Case-Fehlkonfiguration führt die innere Quorum-Schnittpunktprüfung für das Ergebnis erneut aus. Wenn eine solche kritische Fehlkonfiguration vorliegt, ist nur ein Schritt entfernt Ab dem aktuellen Stand gibt die Software eine Warnung aus und meldet, dass die Organisation ein Fehlkonfigurationsrisiko darstellt. Durch diese Änderungen erhält die Betreibergemeinschaft zwei Ebenen von Hinweisen und Anleitungen, um sich vor den schlimmsten Formen zu schützen kollektiver Fehlkonfiguration.

การประเมิน

เพื่อทำความเข้าใจความเหมาะสมของ Stellar ในฐานะการชำระเงินทั่วโลกและ เครือข่ายการซื้อขาย เราประเมินสถานะของเครือข่ายสาธารณะ และทำการทดลองแบบควบคุมในการทดลองส่วนตัว เครือข่าย เรามุ่งเน้นไปที่คำถามต่อไปนี้: • โทโพโลยีเครือข่ายการผลิตมีลักษณะอย่างไร? โดยเฉลี่ยจะออกอากาศกี่ข้อความ และ SCP ประสบกับการหมดเวลาอย่างไร • เวลาแฝงในการอัปเดตฉันทามติและบัญชีแยกประเภทยังคงไม่ขึ้นอยู่กับจำนวนบัญชีหรือไม่SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา โลกาวา และคณะ • เวลาแฝงจะได้รับผลกระทบอย่างไรจากการเพิ่ม (ก) ธุรกรรมต่อวินาที (และผลที่ตามมาคือ ธุรกรรมต่อ บัญชีแยกประเภท) และ (b) จำนวน validator โหนด? • ค่าใช้จ่ายในการรันโหนดในแง่ของ CPU คือเท่าไร หน่วยความจำและแบนด์วิธเครือข่าย? เครือข่ายการชำระเงินมีอัตราการทำธุรกรรมต่ำเมื่อเปรียบเทียบ ไปยังระบบกระจายประเภทอื่นๆ blockchains ชั้นนำ Bitcoin และ Ethereum ยืนยันธุรกรรมสูงสุด 15 รายการ/วินาที น้อยกว่า Stellar นอกจากนี้ระบบเหล่านี้ยังใช้เวลาเพียงไม่กี่นาที หนึ่งชั่วโมงเพื่อยืนยันธุรกรรมอย่างปลอดภัย เนื่องจากการพิสูจน์การทำงานต้องรอหลายบล็อคจึงจะขุดได้ ที่ ไม่ใช่-blockchain เครือข่าย SWIFT เฉลี่ยเพียง 420 ธุรกรรมต่อวินาทีในวันที่มีการใช้งานสูงสุด [14] เราจึงเลือก เพื่อเปรียบเทียบการวัดของเรากับเป้าหมาย 5 วินาที ช่วงบัญชีแยกประเภทซึ่งเป็นเป้าหมายเชิงรุกมากขึ้น ผลลัพธ์ของเราแสดงให้เห็น เวลาแฝงนั้นต่ำกว่าขีดจำกัดนี้อย่างสบายใจด้วย การเพิ่มประสิทธิภาพที่ยังไม่ได้ใช้งานหลายอย่างยังคงอยู่ในขั้นตอนการทำงาน 7.1 จุดยึด สินทรัพย์ที่มีการซื้อขายสูงสุดตามปริมาณ ได้แก่ สกุลเงิน (เช่น 3 USD จุดยึด 2 หยวน) จุดยึด Bitcoin การรักษาความปลอดภัยที่ได้รับการสนับสนุนจากอสังหาริมทรัพย์ token [92] และสกุลเงินในแอป [8] แองเคอร์ที่ต่างกันมีนโยบายที่แตกต่างกัน ตัวอย่างเช่น สมอหนึ่งดอลลาร์สหรัฐ Stronghold ตั้งค่า auth_reqired และต้องการกระบวนการ Know-yourcustomer (KYC) สำหรับทุกบัญชีที่ถือครอง สินทรัพย์ อีกอันคือ AnchorUSD ใครๆ ก็รับและซื้อขายกัน USD ของพวกเขา (ทำให้สามารถส่ง $0.50 ไปยังเม็กซิโกได้อย่างแท้จริง ใน 5 วินาทีโดยมีค่าธรรมเนียม $0.000001) อย่างไรก็ตาม AnchorUSD ต้องใช้ KYC และค่าธรรมเนียมในการซื้อหรือแลก USD ด้วยการโอนเงินแบบธรรมดา ในประเทศฟิลิปปินส์ที่ไหน กฎระเบียบของธนาคารเข้มงวดกว่าสำหรับการชำระเงินที่เข้ามา, Coins.ph รองรับการถอนเงิน PHP ที่ตู้ ATM ใดก็ได้ [36] นอกเหนือจากการรักษาความปลอดภัย token ที่กล่าวมาข้างต้นและสกุลเงินในแอปแล้ว ยังมี token ที่ไม่ใช่สกุลเงินที่หลากหลายตั้งแต่ พันธบัตรเชิงพาณิชย์ [22] และคาร์บอนเครดิต [85, 96] ขึ้นไปอีก เนื้อหาลึกลับ เช่น token ที่จูงใจในการทำงานร่วมกัน การยึดรถ [35]. 7.2 เครือข่ายสาธารณะ ในขณะที่เขียนบทความนี้ มีโหนดเต็มรูปแบบที่ใช้งานอยู่ 126 โหนด โดยในจำนวนนี้มี 66 โหนด มีส่วนร่วมในการลงมติโดยการลงนามในข้อความลงคะแนนเสียง รูปที่ 7 (สร้างโดย [5]) แสดงภาพเครือข่ายโดยมีเส้นแบ่งระหว่าง สองโหนดหากมีอันหนึ่งปรากฏในส่วนโควรัมของอีกอันหนึ่งและ เส้นสีน้ำเงินเข้มเพื่อแสดงการพึ่งพาแบบสองทิศทาง ที่ center คือกลุ่มของ 17 de facto “tier-one validators” ที่ดำเนินการโดยพฤตินัย SDF, SatoshiPay, LOBSTR, COINQVEST และ Keybase เมื่อสี่เดือนก่อนก่อนเกิดเหตุการณ์มาตรา 6 ที่นั่น มี 15 โหนดที่สำคัญอย่างเป็นระบบ: 3 โหนดจากที่ดูเหมือน องค์กรระดับหนึ่งและซิงเกิลตันแบบสุ่มหลายรายการ ที่ กราฟยังดูไม่ปกติมากนัก ดังนั้นกลไกการกำหนดค่าใหม่และ/หรือการตัดสินใจของผู้ปฏิบัติงานที่ดีขึ้นจึงดูเหมือน เพื่อสนับสนุนโทโพโลยีเครือข่ายที่ดียิ่งขึ้น โดยไม่ต้อง ทรัพยากรทางการเงินที่ยอดเยี่ยม (และผู้ถือหุ้นที่เกี่ยวข้อง รูปที่ 7 แผนที่ชิ้นโควรัม ภาระผูกพัน) คงเป็นเรื่องยากที่จะรับสมัคร 5 ระดับหนึ่ง องค์กรตั้งแต่เริ่มต้นอย่างไรก็ตาม นี่แสดงว่าองค์ประชุม สไลซ์มีบทบาทสำคัญในการบูตเครือข่าย: ใครๆ ก็สามารถทำได้ เข้าร่วมโดยมีเป้าหมายในการเป็นผู้เล่นคนสำคัญเพราะว่า ไม่มีผู้เฝ้าประตูที่จะตกลงกันเป็นคู่ ขณะนี้มีบัญชีมากกว่า 3.3 ล้านบัญชีในบัญชีแยกประเภท จบแล้ว ในช่วง 24 ชั่วโมงล่าสุด Stellar เฉลี่ย 4.5 ธุรกรรม และ การดำเนินงาน 15.7 ต่อวินาที การตรวจสอบบัญชีแยกประเภทล่าสุดส่วนใหญ่ ธุรกรรมดูเหมือนจะมีการดำเนินการเพียงครั้งเดียว ในขณะที่ทุก ๆ สองสามรายการ บัญชีแยกประเภทที่เราเห็นธุรกรรมที่มีการดำเนินการหลายอย่างนั้น ดูเหมือนจะมาจากผู้ดูแลสภาพคล่องที่จัดการข้อเสนอ ที่ เวลาเฉลี่ยเพื่อให้บรรลุฉันทามติและปรับปรุงบัญชีแยกประเภทได้ 1,061 มิลลิวินาที และ 46 มิลลิวินาที ตามลำดับ เปอร์เซ็นไทล์ที่ 99 คือ 2252 ms และ 142 ms (อันแรกสะท้อนการหมดเวลา 1 วินาที ในการคัดเลือกผู้นำการเสนอชื่อ) หมายเหตุประสิทธิภาพของ SCP คือ ส่วนใหญ่ไม่ขึ้นอยู่กับธุรกรรมต่อวินาที ตั้งแต่ SCP เห็นด้วยกับ hash ของธุรกรรมจำนวนมากโดยพลการ คอขวดมีแนวโน้มที่จะเกิดจากการเผยแพร่ผู้สมัคร ธุรกรรมระหว่างการเสนอชื่อ การดำเนินการ และการตรวจสอบความถูกต้อง ธุรกรรมและการรวมถัง เรายังไม่ต้องการ เพื่อทำการประมวลผลธุรกรรมของ stellar-core แบบขนานบนแกน CPU หรือดิสก์ไดรฟ์หลายตัว เรายังประเมินจำนวนข้อความ SCP ที่ออกอากาศด้วย บนเครือข่ายการผลิต ในกรณีปกติที่มีตัวเดียว ผู้นำเลือกที่จะเสนอชื่อค่าเราคาดหวังเจ็ดตรรกะ ข้อความที่จะออกอากาศ: สองข้อความที่จะโหวตและยอมรับ โนมิคำสั่งเนท สองข้อความที่ต้องยอมรับและยืนยัน เตรียมคำสั่งสองข้อความเพื่อยอมรับและยืนยัน คำสั่งยืนยันและสุดท้ายคือข้อความภายนอก (ส่งหลังจากทำบัญชีแยกประเภทใหม่ไปยังดิสก์เพื่อช่วยเหลือผู้หลงทาง ตามทัน) การใช้งานจะรวมการยืนยันการคอมมิต และส่งออกข้อความเป็นการเพิ่มประสิทธิภาพ เนื่องจากเป็นเช่นนั้น ปลอดภัยในการแปลงค่าภายนอกหลังจากที่มีการดำเนินการแล้ว จากนั้นเราจะวิเคราะห์ตัวชี้วัดที่รวบรวมจากการผลิต Stellar validator จบแล้ว ตลอดระยะเวลา 68 ชั่วโมง มีการส่งข้อความ 1.3 ข้อความ/วินาที โดยเฉลี่ย 6-7 ข้อความต่อบัญชีแยกประเภท เราสังเกตว่ายอดรวม

การชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา เปอร์เซ็นต์ไทล์ จำนวนการหมดเวลา การสรรหา การลงคะแนนเสียง 75% 0 0 99% 1 0 สูงสุด 4 1 รูปที่ 8 การหมดเวลาต่อบัญชีแยกประเภทเกิน 68 ชั่วโมง จำนวนข้อความที่ออกอากาศโดย validators นั้นมากกว่า เนื่องจากใน นอกเหนือจากข้อความการลงคะแนนแบบรวมศูนย์แล้ว โหนดยังออกอากาศอีกด้วย ธุรกรรมใดๆ ที่พวกเขาเรียนรู้ รูปที่ 8 แสดงการหมดเวลาที่เกิดขึ้นจากการผลิต validator ในช่วง 68 ชั่วโมง หมดเวลาการเสนอชื่อคือ การวัดประสิทธิภาพ (ใน) ของฟังก์ชันการเลือกตั้งผู้นำ ในขณะที่การหมดเวลาของบัตรลงคะแนนจะขึ้นอยู่กับเครือข่ายเป็นอย่างมาก และข้อความอาจล่าช้า การหมดเวลามีความสอดคล้องกัน ด้วยจำนวนข้อความที่ส่ง: หกข้อความใน สถานการณ์กรณีที่ดีที่สุด และข้อความอย่างน้อยเจ็ดข้อความหากจำเป็นต้องมีการเสนอชื่อเพิ่มเติม 7.3 การทดลองที่มีการควบคุม เราทำการทดลองแบบควบคุมในภาชนะที่บรรจุไว้ อินสแตนซ์ Amazon EC2 c5d.9xlarge พร้อม RAM ขนาด 72 GiB NVMe SSD ขนาด 900 GB และ vCPU 36 ตัว แต่ละกรณีอยู่ใน ภูมิภาค EC2 เดียวกันและมีแบนด์วิดท์คงที่ 10 Gbps เราใช้ SQLite เป็นร้านค้า (Stellar ยังรองรับ PostgreSQL ด้วย แต่มีงานแบบอะซิงโครนัสที่ส่งเสียงรบกวนเข้าสู่การวัด) Stellar ให้แบบสอบถามรันไทม์ในตัว, Generateload, ที่ช่วยให้สามารถสร้างโหลดสังเคราะห์ที่เป้าหมายเฉพาะได้ ธุรกรรม/อัตราที่สอง แม้ว่า Stellar รองรับหลากหลาย คุณสมบัติการซื้อขาย เช่น หนังสือสั่งซื้อและเส้นทางข้ามสินทรัพย์ การชำระเงิน เราเน้นการชำระเงินแบบง่ายๆ การยืนยันธุรกรรมประกอบด้วยหลายขั้นตอนดังนั้นเราจึง บันทึกการวัดสำหรับแต่ละสิ่งต่อไปนี้: • การสรรหา: ระยะเวลาตั้งแต่การเสนอชื่อจนถึงการเตรียมการครั้งแรก • การลงคะแนนเสียง: ระยะเวลาตั้งแต่การเตรียมการครั้งแรกจนถึงการยืนยัน ก ลงคะแนนเสียงแล้ว • การอัปเดตบัญชีแยกประเภท: ถึงเวลาใช้มูลค่าที่เป็นเอกฉันท์ • จำนวนธุรกรรม: ธุรกรรมที่ยืนยันต่อบัญชีแยกประเภท การทดลองแต่ละครั้งของเราถูกกำหนดโดยพารามิเตอร์สามตัว: จำนวนรายการบัญชีในบัญชีแยกประเภท, จำนวนเงิน โหลด (ในรูปแบบของการชำระเงิน XLM) ที่ส่งต่อวินาที และจำนวน validators เรากำหนดค่าทุก ๆ validator เพื่อทราบเกี่ยวกับ validator อื่นๆ ทั้งหมด (สถานการณ์ที่เลวร้ายที่สุด สำหรับ SCP) โดยกำหนดให้โควรัมเป็นส่วนใหญ่อย่างง่าย โหนด (เพื่อเพิ่มจำนวนองค์ประชุมที่แตกต่างกันให้สูงสุด) พื้นฐาน การทดสอบพื้นฐานของเราวัดได้ Stellar ด้วย 100,000 บัญชี สี่ validators และการสร้างโหลด อัตราการทำธุรกรรม 100 รายการ/วินาที เราสังเกตธุรกรรม 507 รายการต่อบัญชีแยกประเภทโดยเฉลี่ย โดยมีค่าเบี่ยงเบนมาตรฐานอยู่ที่ 49 (9.7%) โปรดทราบว่าไม่มีธุรกรรมใดตกหล่น เล็กน้อย 105 106 107 0 500 1,000 1,500 2,000 บัญชี เวลาแฝง [ms] การปรับปรุงบัญชีแยกประเภท การลงคะแนนเสียง การสรรหา รูปที่ 9. เวลาแฝงเมื่อจำนวนบัญชีเพิ่มขึ้น ความแปรปรวนเกิดจากข้อจำกัดด้านตารางเวลาของตัวสร้างโหลด เราสังเกตว่าจำนวนธุรกรรมต่อบัญชีแยกประเภท สอดคล้องกับอัตราการสร้างโหลดของเรา ตามบัญชีแยกประเภท ปิดทุกๆ 5 วินาที การสรรหา การลงคะแนนเสียง และบัญชีแยกประเภท การอัปเดตแสดงเวลาแฝงเฉลี่ย 82.53 ms, 95.96 ms และ 174.08 มิลลิวินาที ตามลำดับ เราสังเกตเห็นความล่าช้าในการเสนอชื่อ เปอร์เซ็นไทล์ที่ 99 ต่ำกว่า 61 มิลลิวินาทีอย่างสม่ำเสมอ โดยอาจมีเป็นครั้งคราว เพิ่มขึ้นประมาณ 1 วินาที ซึ่งสอดคล้องกับก้าวแรก ในฟังก์ชันหมดเวลาของการเลือกผู้นำ เมื่อพิจารณาถึงประสิทธิภาพพื้นฐานแล้ว เราจึงพิจารณาถึงผลกระทบ ของการเปลี่ยนแปลงพารามิเตอร์การตั้งค่าการทดสอบแต่ละรายการ บัญชี ข้อมูลในรูปที่ 9 แสดงให้เห็นว่า Stellar ปรับขนาด รวมถึงจำนวนบัญชีที่เพิ่มขึ้น การสร้างแบบทดสอบ บัญชีกลายเป็นกระบวนการที่ใช้เวลานาน เช่น การสร้างที่เก็บข้อมูลและ การรวมเข้าด้วยกันทำให้เราไม่สามารถเติมฐานข้อมูลได้อย่างง่ายดาย ด้วยบัญชีโดยตรงผ่าน SQL ดังนั้นเราจึงดำเนินการของเรา ทดลองได้ถึง 50,000,000 บัญชี ในขณะที่มี ผลกระทบน้อยที่สุดต่อเวลาแฝงในการอัปเดตฉันทามติและบัญชีแยกประเภท เราทราบว่าการเพิ่มบัญชีทำให้เกิดค่าใช้จ่าย การรวมถังซึ่งมีขนาดใหญ่ขึ้น อัตราการทำธุรกรรม อัตราการทำธุรกรรมส่งผลกระทบต่อจำนวนเงิน ทราฟฟิกมัลติคาสต์ระหว่าง validators จำนวนธุรกรรมที่รวมอยู่ในแต่ละบัญชีแยกประเภท และขนาดของระดับบนสุด ถัง เพื่อให้เข้าใจถึงผลกระทบของการทำธุรกรรมที่เพิ่มขึ้น โหลดเลย เราทำการทดสอบกับ 100,000 บัญชีและ 4 validators รูปที่ 10 แสดงการเติบโตที่ช้าในเวลาแฝงที่เป็นเอกฉันท์ ในขณะที่ใช้เวลาส่วนใหญ่ในการอัปเดตบัญชีแยกประเภท ไม่น่าแปลกใจเลยที่ชุดธุรกรรมมีขนาดเพิ่มขึ้น ใช้เวลานานกว่าในการส่งไปยังฐานข้อมูล เรายังทราบด้วยว่า เวลาแฝงในการอัปเดตบัญชีแยกประเภทขึ้นอยู่กับการใช้งานอย่างมาก และได้รับผลกระทบจากการเลือกฐานข้อมูล โหนดตัวตรวจสอบ หากต้องการดูว่าจำนวน tierone validators เพิ่มขึ้นเพียงใดส่งผลต่อประสิทธิภาพ เราได้ทำการทดลอง ด้วยบัญชี 100,000 บัญชี 100 ธุรกรรม/วินาที และจำนวน validators ที่แตกต่างกันตั้งแต่ 4 ถึง 43 validators ทั้งหมดปรากฏขึ้น ในส่วนโควรัมของ validators ทั้งหมด ชิ้นโควรัมที่มีขนาดเล็กลง มีผลกระทบต่อประสิทธิภาพน้อยกว่าSOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา โลกาวา และคณะ 100 150 200 250 300 350 0 500 1,000 1,500 2,000 โหลด [ธุรกรรม/วินาที] เวลาแฝง [ms] การปรับปรุงบัญชีแยกประเภท การลงคะแนนเสียง การสรรหา รูปที่ 10 เวลาแฝงเมื่อโหลดธุรกรรมเพิ่มขึ้น 10 20 30 40 0 500 1,000 1,500 2,000 ผู้ตรวจสอบความถูกต้อง เวลาแฝง [ms] การปรับปรุงบัญชีแยกประเภท การลงคะแนนเสียง การสรรหา รูปที่ 11. เวลาแฝงเมื่อจำนวนโหนดเพิ่มขึ้น การเปลี่ยนจำนวนโหนดตรวจสอบความถูกต้องบนเครือข่าย ส่งผลกระทบต่อจำนวนข้อความ SCP ที่มีการแลกเปลี่ยนเช่นกัน จำนวนค่าที่เป็นไปได้ในระหว่างการเสนอชื่อ รูปที่ 11 แสดงเวลาการเสนอชื่อที่เพิ่มขึ้นในอัตราที่ค่อนข้างน้อย แม้ว่าข้อมูลจะชี้ให้เห็นว่าการลงคะแนนเสียงถือเป็นปัญหาคอขวด แต่เรา เชื่อว่าปัญหาการปรับขนาดหลายอย่างสามารถแก้ไขได้ด้วยการปรับปรุง เครือข่ายซ้อนทับของ Stellar เพื่อเพิ่มประสิทธิภาพการรับส่งข้อมูลเครือข่าย เช่น ที่คาดไว้ เวลาแฝงในการอัปเดตบัญชีแยกประเภทยังคงไม่ขึ้นอยู่กับ จำนวนโหนด อัตราปิด สุดท้ายนี้ เราต้องการวัดประสิทธิภาพตั้งแต่ต้นจนจบของ Stellar โดยการวัดความถี่ในการยืนยันบัญชีแยกประเภท และ Stellar บรรลุเป้าหมาย 5 วินาทีโดยไม่ วางธุรกรรมใด ๆ เราสังเกตเห็นการปิดบัญชีแยกประเภทโดยเฉลี่ย เท่าของ 5.03 วิ, 5.10 วิ และ 5.15 วิ เมื่อเราเพิ่มบัญชี รายการ อัตราการทำธุรกรรม และจำนวนโหนด ตามลำดับ ผลลัพธ์แนะนำว่า Stellar สามารถปิดบัญชีแยกประเภทได้อย่างสม่ำเสมอ ภายใต้ภาระสูง 7.4 กำลังเรียกใช้ validator คุณสมบัติที่สำคัญอย่างหนึ่งของ Stellar คือต้นทุนที่ต่ำ ใช้งาน validator ตามที่จุดยึดควรทำงาน (หรือทำสัญญาด้วย) validators เพื่อบังคับใช้ขั้นสุดท้าย SDF รันการผลิต 3 รายการ validators ทั้งหมดบนอินสแตนซ์ AWS c5.large ซึ่งมี 2 คอร์ RAM 4 GiB และ CPU Intel(R) Xeon(R) Platinum 8124M @ โปรเซสเซอร์ 3.00GHz การตรวจสอบการใช้ทรัพยากรในที่เดียว ของเครื่องเหล่านี้ เราสังเกตเห็นการใช้กระบวนการ Stellar CPU ประมาณ 7% และหน่วยความจำ 300 MiB ในแง่ของการรับส่งข้อมูลเครือข่าย โดยมีการเชื่อมต่อกับเพียร์ 28 รายการและขนาดองค์ประชุม จาก 34 อัตราขาเข้าและขาออกอยู่ที่ 2.78 Mbit/s และ 2.56 Mbit/s ตามลำดับ ฮาร์ดแวร์ที่จำเป็นในการทำงานดังกล่าว กระบวนการมีราคาไม่แพง ในกรณีของเรา ค่าใช้จ่ายคือ 0.054 USD/ชั่วโมง หรือประมาณ $40/เดือน 7.5 งานในอนาคต การทดลองเหล่านี้แนะนำว่า Stellar สามารถปรับขนาดคำสั่งซื้อ 1–2 รายการได้อย่างง่ายดาย ยิ่งใหญ่เกินกว่าการใช้งานเครือข่ายในปัจจุบัน เพราะว่า ความต้องการด้านประสิทธิภาพนั้นค่อนข้างเรียบง่ายจนถึงปัจจุบัน Stellar เหลือพื้นที่ไว้สำหรับการเพิ่มประสิทธิภาพแบบตรงไปตรงมาหลายอย่างโดยใช้ เทคนิคที่รู้จักกันดี ตัวอย่างเช่น ธุรกรรมและ SCP ข้อความถูกถ่ายทอดโดย validators โดยใช้การฟลัดแบบไร้เดียงสา โปรโตคอล แต่ควรใช้อย่างมีประสิทธิภาพและมีโครงสร้างมากกว่า มัลติคาสต์แบบเพียร์ทูเพียร์ [30] นอกจากนี้ฐานข้อมูลยังหนัก เวลาในการอัปเดตบัญชีแยกประเภทสามารถปรับปรุงได้โดยใช้เทคนิคการแบทช์มาตรฐานและการดึงข้อมูลล่วงหน้า

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

Auswertung

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

Um die Eignung von Stellar als globales Zahlungsmittel zu verstehen und Handelsnetzwerk haben wir den Zustand des öffentlichen Netzwerks bewertet und führte kontrollierte Experimente auf einem privaten Experiment durch Netzwerk. Dabei haben wir uns auf folgende Fragen konzentriert: • Wie sieht die Topologie des Produktionsnetzwerks aus? Wie viele Nachrichten werden durchschnittlich gesendet und Wie kommt es bei SCP zu Zeitüberschreitungen? • Bleiben Konsens- und Ledger-Update-Latenzen unabhängig von der Anzahl der Konten?SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. • Wie werden Latenzen durch die Erhöhung (a) der Transaktionen pro Sekunde (und folglich der Transaktionen pro Sekunde) beeinflusst? Ledger) und (b) die Anzahl der validator Knoten? • Wie hoch sind die Kosten für den Betrieb eines Knotens in Bezug auf die CPU? Speicher und Netzwerkbandbreite? Zahlungsnetzwerke weisen im Vergleich niedrige Transaktionsraten auf zu anderen Arten von verteilten Systemen. Die führenden blockchains, Bitcoin und Ethereum, bestätigen bis zu 15 Transaktionen/Sekunde, weniger als Stellar. Darüber hinaus dauert die Installation dieser Systeme nur wenige Minuten eine Stunde, um eine Transaktion sicher zu bestätigen, da für den Proof-of-Work darauf gewartet werden muss, dass mehrere Blöcke abgebaut werden. Die Nicht-blockchain Das SWIFT-Netzwerk verzeichnete an seinem Spitzentag [14] durchschnittlich nur 420 Transaktionen pro Sekunde. Deshalb haben wir uns entschieden um unsere Messungen mit dem 5-Sekunden-Ziel zu vergleichen Ledger-Intervall, ein aggressiveres Ziel. Unsere Ergebnisse zeigen dass die Latenzen auch mit deutlich unter dieser Grenze liegen Mehrere nicht implementierte Optimierungen sind noch in der Pipeline. 7.1 Anker Zu den volumenmäßig am häufigsten gehandelten Vermögenswerten gehören Währungen (z. B. 3 USD). Anker, 2 CNY), ein Anker Bitcoin, ein immobilienbesichertes Wertpapier token [92] und eine In-App-Währung [8]. Verschiedene Anker haben unterschiedliche Richtlinien. Zum Beispiel ein USD-Anker, Stronghold legt auth_reqired fest und erfordert einen Know-Your-Customer-Prozess (KYC) für jedes Konto, das seinen Kunden besitzt Vermögenswerte. Ein anderes, AnchorUSD, lässt jeden empfangen und handeln ihren USD (was es buchstäblich möglich macht, 0,50 $ nach Mexiko zu senden). in 5 Sekunden mit einer Gebühr von 0,000001 $). Allerdings AnchorUSD Für den Kauf oder die Einlösung ihrer USD sind KYC und Gebühren erforderlich mit herkömmlichen Überweisungen. Auf den Philippinen, wo Laut Coins.ph sind die Bankvorschriften für eingehende Zahlungen laxer unterstützt die Auszahlung von PHP an jedem Geldautomaten [36]. Zusätzlich zu der oben genannten Sicherheit token und der In-App-Währung gibt es eine Reihe von Nicht-Währungs-tokens von Handelsanleihen [22] und Emissionsgutschriften [85, 96] bis mehr esoterische Vermögenswerte wie eine token, die Anreize für die Zusammenarbeit bietet Autorücknahme [35]. 7.2 Öffentliches Netzwerk Zum jetzigen Zeitpunkt gibt es 126 aktive Vollknoten, davon 66 Nehmen Sie am Konsens teil, indem Sie Abstimmungsbotschaften unterzeichnen. Abbildung 7 (generiert von [5]) visualisiert das Netzwerk mit einer Linie dazwischen zwei Knoten, wenn einer in den Quorum-Slices des anderen erscheint und a Eine dunkelblaue Linie zeigt die bidirektionale Abhängigkeit. Am Center ist ein Cluster von 17 De-facto-„Tier-One-validators“, die von betrieben werden SDF, SatoshiPay, LOBSTR, COINQVEST und Keybase. Vor vier Monaten, vor den Ereignissen von Abschnitt 6, dort Es gab 15 systemisch wichtige Knoten: 3 von scheinbar Tier-1-Organisationen und mehrere zufällige Singletons. Die Die Grafik sah auch viel weniger regelmäßig aus. Daher scheinen der neue Konfigurationsmechanismus und/oder bessere Bedienerentscheidungen zu sein um zu einer gesünderen Netzwerktopologie beizutragen. Ohne große finanzielle Mittel (und entsprechender Anteilseigner). Abbildung 7. Quorum-Slice-Map Verpflichtungen) wäre es schwierig gewesen, fünf Tier-1-Mitarbeiter zu rekrutieren Organisationen jedoch von Anfang an. Dies deutet auf ein Quorum hin Slices spielen beim Netzwerk-Bootstraping eine nützliche Rolle: Das kann jeder Treten Sie mit dem Ziel bei, ein wichtiger Spieler zu werden, denn Es gibt keine Gatekeeper für die paarweise Vereinbarung. Derzeit befinden sich über 3,3 Millionen Konten im Hauptbuch. Vorbei In den letzten 24 Stunden hat Stellar durchschnittlich 4,5 Transaktionen durchgeführt und 15,7 Operationen pro Sekunde. Meistens die Überprüfung aktueller Bücher Transaktionen scheinen einen einzigen Vorgang zu haben, während alle paar In Hauptbüchern sehen wir Transaktionen, die viele Vorgänge enthalten scheinen von Market Makern zu stammen, die Angebote verwalten. Die Die durchschnittlichen Zeiten, um einen Konsens zu erzielen und das Hauptbuch zu aktualisieren, waren 1061 ms bzw. 46 ms. Die 99. Perzentile waren 2252 ms und 142 ms (ersteres entspricht einer Zeitüberschreitung von 1 Sekunde). bei der Auswahl des Nominierungsleiters). Beachten Sie, dass die Leistung von SCP beträgt weitgehend unabhängig von Transaktionen pro Sekunde, da SCP stimmt einem hash beliebig vieler Transaktionen zu. Es ist wahrscheinlicher, dass Engpässe durch die Verbreitung von Kandidaten entstehen Transaktionen während der Nominierung, Ausführung und Validierung Transaktionen und das Zusammenführen von Buckets. Wir haben es noch nicht gebraucht um die Transaktionsverarbeitung von Stellar-Core über mehrere CPU-Kerne oder Festplatten zu parallelisieren. Wir haben auch die Anzahl der gesendeten SCP-Nachrichten ausgewertet im Produktionsnetzwerk. Im Normalfall mit einer Single Führer gewählt, um einen Wert zu nominieren, erwarten wir sieben logische Zu sendende Nachrichten: zwei Nachrichten zum Abstimmen und Annehmen ein Nominate-Anweisung, zwei Nachrichten zum Akzeptieren und Bestätigen eine Vorbereitungserklärung, zwei Nachrichten zum Akzeptieren und Bestätigen eine Commit-Anweisung und schließlich eine Externalize-Nachricht (wird gesendet, nachdem ein neues Hauptbuch auf die Festplatte übertragen wurde, um Nachzüglern zu helfen aufholen). Die Implementierung kombiniert Commit bestätigen und externalisieren Sie Nachrichten als Optimierung, da dies der Fall ist Es ist sicher, einen Wert zu externalisieren, nachdem er festgeschrieben wurde. Anschließend analysieren wir die für eine Produktion erfassten Metriken Stellar validator. Vorbei Im Laufe von 68 Stunden wurden 1,3 Nachrichten/Sekunde ausgesendet, Durchschnittlich 6-7 Nachrichten pro Hauptbuch. Wir stellen fest, dass die Summe

Schnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Perzentil Anzahl der Timeouts Nominierung Abstimmung 75 % 0 0 99 % 1 0 Max 4 1 Abbildung 8. Timeouts pro Ledger über 68 Stunden Die Anzahl der von validators gesendeten Nachrichten ist größer, seit in Zusätzlich zu den föderierten Abstimmungsnachrichten senden die Knoten auch Nachrichten alle Transaktionen, von denen sie erfahren. Abbildung 8 zeigt die Zeitüberschreitungen bei einer Produktion validator über einen Zeitraum von 68 Stunden. Nominierungs-Timeouts sind ein Maß für die (Un-)Wirksamkeit der Funktion zur Wahl des Vorsitzenden, während Abstimmungszeitüberschreitungen stark vom Netzwerk abhängen und mögliche Nachrichtenverzögerungen. Die Timeouts sind konsistent mit der Anzahl der ausgegebenen Nachrichten: sechs Nachrichten im Best-Case-Szenario und mindestens sieben Nachrichten, falls eine weitere Nominierungsrunde erforderlich ist. 7.3 Kontrollierte Experimente Wir führten kontrollierte Experimente in aufgepackten Behältern durch Amazon EC2 c5d.9xlarge-Instances mit 72 GiB RAM, 900 GB NVMe SSD und 36 vCPUs. Jede Instanz war in derselben EC2-Region und hatte eine feste Bandbreite von 10 Gbit/s. Wir haben SQLite als Speicher verwendet. (Stellar unterstützt auch PostgreSQL, aber das hat asynchrone Aufgaben, die Rauschen in die Messungen einbringen.) Stellar bietet eine integrierte Laufzeitabfrage, genericload, Dies ermöglicht die Erzeugung einer synthetischen Last an einem bestimmten Ziel Transaktion/Zweitkurs. Obwohl Stellar verschiedene unterstützt Handelsfunktionen wie Orderbuch und Cross-Asset-Pfad Im Bereich Zahlungen haben wir uns auf einfache Zahlungen konzentriert. Die Bestätigung von Transaktionen besteht aus mehreren Schritten zeichnete die Messungen für jedes der folgenden Elemente auf: • Nominierung: Zeit von der Nominierung bis zur ersten Vorbereitung • Abstimmung: Zeit von der ersten Vorbereitung bis zur Bestätigung a Stimmzettel begangen • Ledger-Aktualisierung: Zeit, den Konsenswert anzuwenden • Transaktionsanzahl: bestätigte Transaktionen pro Hauptbuch Jedes unserer Experimente wurde durch drei Parameter definiert: die Anzahl der Kontoeinträge im Hauptbuch, der Betrag von Last (in Form von XLM-Zahlungen), die pro Sekunde übermittelt wird, und die Anzahl der validators. Wir haben jeden validator konfiguriert über jeden anderen validator Bescheid wissen (ein Worst-Case-Szenario). für SCP), wobei die Quorum-Slices auf eine beliebige einfache Mehrheit eingestellt sind Knoten (um die Anzahl verschiedener Quoren zu maximieren). Grundlinie Unser Basisexperiment hat Stellar mit gemessen 100.000 Konten, vier validators und die Lastgenerierung Rate von 100 Transaktionen/Sekunde. Wir haben durchschnittlich 507 Transaktionen pro Hauptbuch beobachtet, mit einer Standardabweichung von 49 (9,7 %). Beachten Sie, dass keine Transaktionen gelöscht wurden; das Geringste 105 106 107 0 500 1.000 1.500 2.000 Konten Latenz [ms] Aktualisierung des Hauptbuchs Abstimmung Nominierung Abbildung 9. Latenz bei zunehmender Anzahl von Konten Die Abweichung ist auf Planungseinschränkungen des Lastgenerators zurückzuführen. Wir haben beobachtet, dass die Anzahl der Transaktionen pro Ledger entsprach unserer Lastgenerierungsrate, gegeben im Hauptbuch Schließt alle 5 Sekunden. Nominierung, Abstimmung und Protokoll Das Update zeigte mittlere Latenzen von 82,53 ms, 95,96 ms und 174,08 ms. Wir haben diese Nominierungslatenz beobachtet Das 99. Perzentil liegt gelegentlich unter 61 ms Spitzen von etwa 1 Sekunde, entsprechend dem ersten Schritt in der Timeout-Funktion der Leader-Auswahl. Angesichts der Ausgangsleistung haben wir uns die Auswirkungen angesehen Möglichkeit, die einzelnen Parameter des Testaufbaus zu variieren. Konten Die Daten in Abbildung 9 deuten darauf hin, dass Stellar skaliert Außerdem steigt die Anzahl der Konten. Testgenerierung Konten wurden zu einem langwierigen Prozess, da die Bucket-Erstellung und Durch die Zusammenführung konnten wir die Datenbank nicht einfach füllen mit Konten direkt über SQL. Deshalb haben wir unsere durchgeführt Experimente für bis zu 50.000.000 Konten. Während es gibt minimale Auswirkung auf Konsens- und Ledger-Update-Latenzen, Wir stellen fest, dass die Erhöhung der Konten einen Overhead von verursacht Zusammenführen von Eimern, die größer werden. Transaktionsrate Die Transaktionsrate beeinflusst die Menge Traffic-Multicast zwischen validators, die Anzahl der in jedem Ledger enthaltenen Transaktionen und die Größe der obersten Ebene Eimer. Die Auswirkungen zunehmender Transaktionen verstehen Beim Laden haben wir ein Experiment mit 100.000 Konten und 4 validators durchgeführt. Abbildung 10 zeigt das langsame Wachstum der Konsenslatenz. während die meiste Zeit für die Aktualisierung des Hauptbuchs aufgewendet wurde. Es überrascht nicht, dass es mit zunehmender Größe des Transaktionssatzes zunimmt Es dauert länger, es in die Datenbank zu übernehmen. Das nehmen wir auch zur Kenntnis Die Latenz der Ledger-Aktualisierung ist stark von der Implementierung abhängig. und wird durch die Wahl der Datenbank beeinflusst. Validatorknoten Um zu sehen, wie sich die Anzahl der Tierone validators erhöhtAuswirkungen auf die Leistung haben, haben wir Experimente durchgeführt mit 100.000 Konten, 100 Transaktionen/Sekunde und einer variierenden Anzahl von validators von 4 bis 43. Alle validators wurden angezeigt in allen Quorum-Slices von validators; kleinere Quorum-Slices würden es tun einen geringeren Einfluss auf die Leistung haben.SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada Lokhava et al. 100 150 200 250 300 350 0 500 1.000 1.500 2.000 Laden [Transaktionen/Sekunde] Latenz [ms] Aktualisierung des Hauptbuchs Abstimmung Nominierung Abbildung 10. Latenz bei steigender Transaktionslast 10 20 30 40 0 500 1.000 1.500 2.000 Validatoren Latenz [ms] Aktualisierung des Hauptbuchs Abstimmung Nominierung Abbildung 11. Latenz mit zunehmender Knotenanzahl Ändern der Anzahl validierender Knoten im Netzwerk wirkt sich auch auf die Anzahl der ausgetauschten SCP-Nachrichten aus die Anzahl der potenziellen Werte während der Nominierung. Abbildung 11 zeigt, dass die Nominierungszeit relativ langsam zunimmt. Während die Daten darauf hindeuten, dass die Stimmabgabe der Engpass ist, haben wir sind davon überzeugt, dass viele Skalierungsprobleme durch Verbesserungen gelöst werden können Das Overlay-Netzwerk von Stellar zur Optimierung des Netzwerkverkehrs. Als erwartet, blieb die Latenz der Ledger-Aktualisierung unabhängig davon die Anzahl der Knoten. Schlusskurs Schließlich wollten wir die End-to-End-Leistung von Stellar messen, indem wir messen, wie oft Hauptbücher bestätigt werden und ob Stellar sein 5-Sekunden-Ziel ohne Bestätigung erreicht alle Transaktionen fallen lassen. Wir haben einen durchschnittlichen Hauptbuchabschluss beobachtet Zeiten von 5,03 s, 5,10 s und 5,15 s, als wir das Konto erhöhten Einträge, Transaktionsrate bzw. Anzahl der Knoten. Die Ergebnisse legen nahe, dass Stellar Hauptbücher konsistent schließen kann unter hoher Belastung. 7.4 Ausführen eines validator Eines der wichtigen Merkmale von Stellar sind die geringen Kosten Ausführen eines validator, da Anker ausgeführt (oder mit ihnen kontrahiert) werden sollen validators, um die Endgültigkeit zu erzwingen. SDF führt drei Produktions-validators aus, alle auf c5.large AWS-Instanzen, die über zwei Kerne verfügen. 4 GiB RAM und Intel(R) Xeon(R) Platinum 8124M CPU @ 3,00-GHz-Prozessoren. Überprüfen der Ressourcennutzung auf einem Bei diesen Maschinen haben wir den Prozess Stellar beobachtet etwa 7 % der CPU und 300 MiB Speicher. Bezogen auf den Netzwerkverkehr mit 28 Verbindungen zu Peers und einer Quorumgröße Von 34 betrugen die eingehenden und ausgehenden Raten 2,78 Mbit/s und 2,56 Mbit/s. Hardware, die zum Ausführen eines solchen erforderlich ist Der Prozess ist kostengünstig. In unserem Fall betragen die Kosten 0,054 $/Stunde oder etwa 40 $/Monat. 7.5 Zukünftige Arbeit Diese Experimente legen nahe, dass Stellar problemlos 1–2 Ordnungen skalieren kann in einer Größenordnung, die über die heutige Netzwerknutzung hinausgeht. Denn die Die Leistungsanforderungen waren bisher so bescheiden, Stellar lässt Raum für viele einfache Optimierungen bekannte Techniken. Zum Beispiel Transaktionen und SCP Nachrichten werden von validators mithilfe einer naiven Flutung gesendet Protokoll, sollte aber idealerweise effizienter und strukturierter sein Peer-to-Peer-Multicast [30]. Zudem datenbanklastig Die Aktualisierungszeit des Hauptbuchs kann durch Standard-Batching- und Prefetching-Techniken verbessert werden.

บทสรุป

การชำระเงินระหว่างประเทศมีราคาแพงและใช้เวลาหลายวัน กองทุน การดูแลผ่านสถาบันการเงินหลายแห่ง รวมถึงธนาคารตัวแทนและบริการโอนเงิน เนื่องจากแต่ละฮอปจะต้องได้รับความไว้วางใจอย่างเต็มที่ จึงเป็นเรื่องยากสำหรับฮอปใหม่ ผู้เข้าร่วมเพื่อเพิ่มส่วนแบ่งการตลาดและแข่งขัน Stellar รายการ วิธีส่งเงินทั่วโลกอย่างถูกในไม่กี่วินาที ที่ นวัตกรรมที่สำคัญคือโปรโตคอลข้อตกลงไบแซนไทน์แบบเปิดสมาชิกใหม่ SCP ซึ่งใช้ประโยชน์จากโครงสร้างแบบเพียร์ทูเพียร์ ของเครือข่ายทางการเงินเพื่อให้บรรลุฉันทามติระดับโลกภายใต้ก สมมติฐานอินเทอร์เน็ตใหม่ SCP อนุญาตให้ Stellar กระทำแบบอะตอมมิก ธุรกรรมที่ไม่สามารถย้อนกลับได้ระหว่างผู้เข้าร่วมโดยพลการซึ่ง ไม่รู้หรือเชื่อใจกัน ซึ่งจะรับประกันว่าผู้เข้ามาใหม่จะสามารถเข้าถึงตลาดเดียวกันกับที่จัดตั้งขึ้น ผู้เล่นทำให้ปลอดภัยที่จะได้รับการแลกเปลี่ยนที่ดีที่สุด อัตราแม้จากผู้ดูแลสภาพคล่องที่ไม่น่าเชื่อถือและอย่างมาก ลดความล่าช้าในการชำระเงิน รับทราบ Stellar คงมาไม่ถึงทุกวันนี้ถ้าไม่ตื่นแต่เช้า ความเป็นผู้นำของจอยซ์ คิม หรือการมีส่วนร่วมอันยิ่งใหญ่ของ Scott Fleckenstein และ Bartek Nowotarski ในการก่อสร้างและ การรักษาขอบฟ้า, Stellar SDK และส่วนสำคัญอื่นๆ ของระบบนิเวศ Stellar นอกจากนี้เรายังขอขอบคุณ Kolten Bergeron เฮนรี คอร์ริแกน-กิบส์, แคนเดซ เคลลี, คาพิล เค. เจน, บอริส เรซนิคอฟ, เจเรมี รูบิน, คริสเตียน รัดเดอร์, เอริก ซอนเดอร์ส, Torsten Stüber, Tomer Weller, ผู้วิจารณ์ที่ไม่เปิดเผยนาม และ Justine Sherry คนเลี้ยงแกะของเราสำหรับความคิดเห็นที่เป็นประโยชน์ของพวกเขา ร่างก่อนหน้านี้ ข้อสงวนสิทธิ์ การสนับสนุนของศาสตราจารย์ Mazières ในสิ่งพิมพ์นี้ถือเป็นที่ปรึกษาที่ได้รับค่าตอบแทน และไม่ได้เป็นส่วนหนึ่งของเขา หน้าที่หรือความรับผิดชอบของมหาวิทยาลัยสแตนฟอร์ด

การชำระเงินทั่วโลกที่รวดเร็วและปลอดภัยด้วย Stellar SOSP '19, 27–30 ตุลาคม 2019, Huntsville, ON, แคนาดา

Abschluss

Internationale Zahlungen sind teuer und dauern Tage. Fonds Die Verwahrung erfolgt über mehrere Finanzinstitute, darunter Korrespondenzbanken und Geldtransferdienste. Da jeder Hop vollständig vertrauenswürdig sein muss, ist es schwierig, neue Hops zu erstellen Marktteilnehmer, um Marktanteile zu gewinnen und im Wettbewerb zu bestehen. Stellar zeigt So senden Sie Geld in Sekundenschnelle günstig um die Welt. Die Die wichtigste Innovation ist ein neues byzantinisches Vereinbarungsprotokoll mit offener Mitgliedschaft, SCP, das die Peer-to-Peer-Struktur nutzt des Finanznetzwerks, um einen globalen Konsens unter a zu erreichen neuartige Internet-Hypothese. SCP lässt Stellar atomar festschreiben irreversible Transaktionen zwischen beliebigen Teilnehmern, die Sie wissen nichts voneinander und vertrauen einander nicht. Dies wiederum garantiert neuen Marktteilnehmern Zugang zu denselben Märkten wie etablierten Spieler, macht es sicher, den besten verfügbaren Austausch zu erhalten selbst von nicht vertrauenswürdigen Market Makern, und zwar dramatisch reduziert die Zahlungsverzögerung. Danksagungen Stellar wäre ohne die frühen nicht da, wo es heute ist Führung von Joyce Kim oder die enormen Beiträge von Scott Fleckenstein und Bartek Nowotarski im Bauwesen und Aufrechterhaltung des Horizonts, des Stellar SDK und anderer wichtiger Elemente des Ökosystems Stellar. Wir danken auch Kolten Bergeron, Henry Corrigan-Gibbs, Candace Kelly, Kapil K. Jain, Boris Reznikov, Jeremy Rubin, Christian Rudder, Eric Saunders, Torsten Stüber, Tomer Weller, die anonymen Gutachter und unserer Schäferin Justine Sherry für ihre hilfreichen Kommentare zu frühere Entwürfe. Haftungsausschluss Der Beitrag von Professor Mazières zu dieser Veröffentlichung erfolgte als bezahlter Berater und war nicht Teil seiner Aufgaben oder Verantwortlichkeiten der Stanford University.

Schnelle und sichere globale Zahlungen mit Stellar SOSP ’19, 27.–30. Oktober 2019, Huntsville, ON, Kanada