Stellar Konsensüs Protokolü
概要
国際決済は遅くて高価ですが、その理由の 1 つは、異種混合を介したマルチホップ決済ルーティングです。 銀行システム。 Stellar は新しいグローバル決済ネットワークです どこにでもデジタルマネーを直接送金できる 秒単位の世界。重要なイノベーションは安全なトランザクションです 新しいメカニズムを使用した、信頼できない仲介者間のメカニズム SCPと呼ばれるビザンチン協定プロトコル。 SCPでは、それぞれ 機関は、所属する他の機関を指定します 同意します。のグローバルな相互接続を通じて、 金融システムでは、ネットワーク全体がアトミックに同意します。 任意の機関にまたがる取引で、仲介資産発行会社による支払い能力や為替リスクがありません またはマーケットメーカー。 SCP のモデル、プロトコル、および 正式な検証。 Stellar 支払いネットワークについて説明します。 そして最後にベンチマークを通じて Stellar を経験的に評価します そして数年間の実稼働環境での使用経験。 CCS の概念 • セキュリティとプライバシー →分散 システムのセキュリティ。 • コンピュータシステムの組織 → ピアツーピアアーキテクチャ。・情報システム → 電子送金。 キーワード blockchain、BFT、定足数、支払い ACM 参照形式: マルタ・ロカバ、ジュリアーノ・ロサ、デビッド・マジエール、グレイドン・ホア、 ニコラス・バリー、イーライ・ガフニ、ジョナサン・ジョーブ、ラファウ・マリノフスキー、ジェド・マッケイレブ。 2019. Stellar による高速かつ安全なグローバル支払い。 SOSPで ’19: オペレーティング システム原則に関するシンポジウム、10 月 27 ~ 30 日 2019年、カナダ、オンタリオ州ハンツビル。 ACM、米国ニューヨーク州ニューヨーク、17 ページ。 https://doi.org/10.1145/3341301.3359636
Özet
Uluslararası ödemeler yavaş ve pahalıdır; bunun nedeni kısmen, heterojen ödemeler üzerinden çok duraklı ödeme yönlendirmesidir. bankacılık sistemleri. Stellar yeni bir küresel ödeme ağıdır dijital parayı dünyanın herhangi bir yerine doğrudan aktarabilen saniyeler içinde dünya. En önemli yenilik güvenli bir işlemdir güvenilmeyen aracılar arasında yeni bir mekanizma kullanarak Bizans anlaşma protokolüne SCP denir. SCP ile her biri kurum kalacağı diğer kurumları belirtir anlaşarak; küresel birbirine bağlılığı sayesinde finansal sistem, tüm ağ daha sonra atomik aracı varlık ihraççılarından kaynaklanan ödeme gücü veya döviz kuru riski olmayan, keyfi kurumları kapsayan işlemler veya piyasa yapıcılar. SCP'nin modelini, protokolünü ve resmi doğrulama; Stellar ödeme ağını açıklayın; ve son olarak Stellar'yi karşılaştırmalar yoluyla ampirik olarak değerlendirin ve birkaç yıllık üretim kullanımı deneyimimiz. CCS Konseptleri • Güvenlik ve gizlilik →Dağıtılmış sistem güvenliği; • Bilgisayar sistemleri organizasyonu → Eşler arası mimariler; • Bilgi sistemleri → Elektronik fon transferi. Anahtar Kelimeler blockchain, BFT, yetersayılar, ödemeler ACM Referans Formatı: Marta Lokhava, Giuliano Losa, David Mazières, Graydon Hoare, Nicolas Barry, Eli Gafni, Jonathan Jove, Rafał Malinowsky, Jed McCaleb. 2019. Stellar ile hızlı ve güvenli küresel ödemeler. SOSP'de '19: İşletim Sistemleri İlkeleri Sempozyumu, 27–30 Ekim, 2019, Huntsville, ON, Kanada. ACM, New York, NY, ABD, 17 sayfa. https://doi.org/10.1145/3341301.3359636
導入
国際支払いは遅くて費用がかかることで有名です[32]。 米国から0.50ドルを送金することが非現実的であることを考えてみましょう。 ※株式会社ガロア †カリフォルニア大学ロサンゼルス校 この作品の全部または一部のデジタルコピーまたはハードコピーを作成する許可 個人または教室での使用は、コピーが行われない限り、無料で許可されます。 営利または商業的利益を目的として作成または配布され、そのコピーには この通知と最初のページの引用全文。コンポーネントの著作権 ACM 以外の者が所有するこの作品は尊重されなければなりません。で抽象化する クレジットは許可されています。別の方法でコピーしたり再公開したり、サーバーに投稿したり、 リストに再配布するには、事前の特定の許可および/または料金が必要です。リクエスト 許可は、[email protected] から取得します。 SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル © 2019 コンピューティング機械協会。 ACM ISBN 978-1-4503-6873-5/19/10...$15.00 https://doi.org/10.1145/3341301.3359636 メキシコ、隣り合う2つの国。エンドユーザーは 9 ドル近くを支払います 平均的な転送[32]と二国間協定の場合 各国の中央銀行が仲介するのは、削減することしかできない 基本的な銀行コストはアイテム [2] あたり 0.67 ドルになります。手数料に加えて、 通常、国際決済の遅延は考慮されます 数日かかるため、すぐに海外でお金を得ることができなくなります 緊急事態。銀行システムが整備されていない国では 仕事をしていないか、すべての国民にサービスを提供していない場合、または手数料が耐えられない場合、人々はバス [38] による支払いに頼ることになります。 ボート [19]、そして時々 Bitcoin [55] によって、すべて リスク、遅延、または不便が生じる可能性があります。 コンプライアンスコストは常に発生しますが、競争の欠如により多額の損失が発生することを示す証拠 [21]、 これは非効率なテクノロジーによってさらに悪化します。人がいる場所 イノベーションが可能になり、価格とレイテンシが下がります。たとえば、2019 年第 2 四半期の銀行口座からの送金には平均で次の費用がかかりました。 6.99% であるのに対し、モバイル マネーの数字は 4.88% [13] にすぎませんでした。 イノベーションを呼び込むオープンでグローバルな決済ネットワーク 銀行以外の組織との競争が激化する可能性がある コンプライアンス [83] を含む、すべてのレイヤーでのコストとレイテンシ。 このペーパーでは、Stellar、blockchain ベースの支払いについて説明します。 イノベーションを促進するために特別に設計されたネットワーク 国際決済における競争。 Stellar が最初です 以下の 3 つの目標をすべて満たすシステム ( 新規だが経験的に有効な「インターネット仮説」): 1. オープンメンバーシップ – 誰でも通貨を裏付けとした発行が可能 ユーザー間で交換できるデジタル token。 2. 発行者による強制的なファイナリティ – token の発行者は、これを防ぐことができます token のトランザクションが取り消されたり取り消されたりすることを防ぎます。 3. 発行者間のアトミック性 – ユーザーはアトミックに交換できる 複数の発行者からの token を取引します。 最初の 2 つを達成するのは簡単です。 Paypal、Venmo、WeChat などの製品をどの企業も一方的に提供できる Pay または Alipay を使用して、支払いの最終性を確保します。 彼らが作った仮想通貨。残念ながら、これらの通貨間でアトミックに取引することは不可能です。実際、 PaypalがVenmoの親会社を買収したにもかかわらず 2013 年になっても、エンドユーザーが Venmo を送信することはまだ不可能です Paypal ユーザー [78] にドル。販売者ができるようになったのは最近になってからです 単一の統合で両方を受け入れることもできます。 目標 2 と 3 はクローズド システムで達成できます。特に、多くの国では効率的な国内決済が行われています。 ネットワークは、通常、広く信頼されている規制当局によって監督されています。ただし会員資格は非公開に限ります 一連のチャータード銀行とネットワークは以下に限定されます。 国の規制当局の管轄範囲。SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 目標 1 と 3 はマイニングされた blockchain で達成されました。 最も顕著なのは、Ethereum [3] 上の ERC20 token の形式です。 これらのblockchainの重要なアイデアは、定住した人々に報酬を与える新しい暗号通貨を作成することです。 トランザクションを元に戻すのは困難です。残念ながら、これは、token 発行者がトランザクションのファイナリティを制御していないことを意味します。ソフトウェアの場合 エラーによりトランザクション履歴が再編成される [26、73]、 あるいは、人をだまして得た戦利品がその費用を超えたとき。 歴史の再編成 [74、97]、発行者はtokens について責任を負う可能性がある 彼らはすでに現実世界のお金と引き換えています。 Stellar blockchain には 2 つの特徴的なプロパティがあります。 まず、token 間の効率的な市場をネイティブにサポートします。 さまざまな発行者からのもの。具体的には、誰でもtokenを発行できます。 blockchain は、token の任意のペア間の取引用の組み込みオーダーブックを提供し、ユーザーはパス支払いを発行できます 複数の通貨ペアにわたってアトミックに取引されますが、 エンドツーエンドの制限価格を保証します。 第二に、Stellar は新しいビザンチン協定を導入します プロトコル、SCP (Stellar コンセンサス プロトコル)、これを介して token 発行者は、強制する特定の validator サーバーを指定します トランザクションのファイナリティ。誰も発行者のvalidator(および基礎となるデジタル署名と 暗号 hashes は安全なままです)、発行者はどのトランザクションが発生したかを正確に把握し、リスクを回避します blockchain 履歴の再編成による損失の増加。 SCP の重要な考え方は、ほとんどの資産発行者が次のような恩恵を受けるということです。 流動性の高い市場であり、アトミックな取引を促進したいと考えています 他の資産と一緒に。したがって、validator 管理者は次のように設定します。 サーバーが他の validator と正確に一致するようにします。 すべての資産に対するすべてのトランザクションの履歴。 validator v1 は次のようになります。 v2 と一致するように構成されているか、v2 が一致するように構成できます v1 と、または両方が相互に一致するように構成できます。 どのような場合でも、どちらもトランザクション履歴にコミットすることはありません。 それは、相手が異なる歴史にコミットできないことを知っています。 推移性により、v1 が v2 に同意できず、v2 が v3 に同意できない場合 (またはその逆)、v1 は v3 に同意できません。 v3、v3 が v1 が聞いたアセットを表すかどうか の。これらの合意関係が仮定されると、 ネットワーク全体を推移的に接続することを SCP が保証します 世界的な協定となり、世界的なビザンチン協定となる オープンなメンバーシップを持つプロトコル。私たちはこの新しい接続性の仮定をインターネット仮説と呼びます。 「インターネット」(誰もがそう理解している)の両方が保持されます。 推移的に接続された単一最大の IP ネットワークを意味します) 従来の国際決済(ホップバイホップ) 非アトミックですが、推移的に接続されたグローバルなネットワークを活用します。 金融機関のネットワーク)。 Stellar は、2015 年 9 月から本番環境で使用されています。 blockchain の長さを管理しやすい状態に保つために、システムは 5 秒間隔の SCP - blockchain 標準では高速ですが、 ビザンチン協定の典型的な適用よりもはるかに遅い。 主な用途は支払いですが、Stellar はまた、 利益をもたらす非金銭代替可能tokenにとって魅力的であることが証明されている 即時流通市場からの取引(セクション 7.1 を参照)。 次のセクションでは、関連する作業について説明します。セクション 3 の紹介 SCP。セクション 4 では、SCP の正式な検証について説明します。セクション 5 では、Stellar の支払いレイヤーについて説明します。セクション 6 に関連する 導入の経験と学んだ教訓の一部。 セクション 7 ではシステムを評価します。セクション 8 は終了です。
giriiş
Uluslararası ödemeler herkesin bildiği gibi yavaş ve maliyetlidir [32]. ABD'den ABD'ye 0,50 dolar göndermenin pratik olmadığını düşünün. *Galois, Inc. †UCLA Bu çalışmanın tamamının veya bir kısmının dijital veya basılı kopyalarını alma izni kopyalarının olmaması koşuluyla kişisel veya sınıf kullanımı ücretsiz olarak sağlanır. kar veya ticari avantaj amacıyla yapılmış veya dağıtılmış ve kopyaların bu duyuru ve alıntının tamamı ilk sayfadadır. Bileşenler için telif hakları Bu çalışmanın ACM dışında başkaları tarafından sahiplenilmesi onurlandırılmalıdır. ile soyutlama krediye izin veriliyor. Başka bir şekilde kopyalamak veya yeniden yayınlamak, sunuculara göndermek veya listelere yeniden dağıtılması, önceden özel izin ve/veya ücret gerektirir. Talep izinler:[email protected]'dan. SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada © 2019 Bilgisayar Makineleri Derneği. ACM ISBN 978-1-4503-6873-5/19/10...$15,00 https://doi.org/10.1145/3341301.3359636 Meksika, iki komşu ülke. Son kullanıcılar yaklaşık 9$ ödüyor ortalama olarak bu tür bir transfer [32] ve ikili bir anlaşma için ülkelerin merkez bankalarının aracılığı ile ancak azaltılabilir temel bankanın maliyeti [2] öğe başına 0,67 ABD dolarıdır. Ücretlerin yanı sıra, Uluslararası ödemelerin gecikmesi genellikle sayılır birkaç gün içinde yurt dışından hızlı bir şekilde para almayı imkansız hale getiriyor acil durumlar. Bankacılık sisteminin olmadığı ülkelerde Çalışıyor veya tüm vatandaşlara hizmet vermiyorsa ya da ücretlerin kabul edilemez olduğu durumlarda insanlar ödemelerini [38] numaralı otobüsle göndermeye başvuruyor. [19] tekneyle ve ara sıra Bitcoin [55] ile, hepsi riske, gecikmeye veya rahatsızlığa neden olabilir. Uyum maliyetleri her zaman mevcut olsa da, kanıtlar rekabet eksikliği nedeniyle önemli miktarda kaybın olduğunu gösteriyor [21], verimsiz teknoloji nedeniyle daha da kötüleşiyor. İnsanlar nerede yenilik yapılabilir, fiyatlar ve gecikmeler düşer. Örneğin, 2019'un 2. çeyreğinde banka hesaplarından yapılan havalelerin maliyeti ortalama %6,99, mobil paranın rakamı ise yalnızca %4,88 idi [13]. Yeniliği cezbeden açık, küresel bir ödeme ağı ve banka dışı kuruluşların rekabeti bu durumu aşağı çekebilir uyumluluk [83] dahil olmak üzere tüm katmanlardaki maliyetler ve gecikmeler. Bu belgede blockchain tabanlı bir ödeme olan Stellar anlatılmaktadır Yeniliği kolaylaştırmak için özel olarak tasarlanmış ağ ve Uluslararası ödemelerde rekabet. Stellar ilki Aşağıdaki hedeflerin üçünü de karşılayacak sistem (bir yeni ama ampirik olarak geçerli “İnternet hipotezi”): 1. Açık üyelik – Herkes paraya dayalı para basabilir kullanıcılar arasında değiş tokuş edilebilecek dijital token'ler. 2. İhraççı tarafından uygulanan kesinlik – Bir token'nın ihraççısı engelleyebilir token içindeki işlemlerin geri alınmasını veya geri alınmasını önleyin. 3. Veren kurumlar arası atomiklik – Kullanıcılar atomik olarak alışveriş yapabilir ve birden fazla ihraççıdan tokens ticareti yapın. İlk ikisine ulaşmak kolaydır. Paypal, Venmo, WeChat gibi bir ürünü her firma tek taraflı olarak sunabilir Pay veya Alipay ile ödemelerin kesinliğini sağlayın yarattıkları sanal para birimleri. Ne yazık ki, bu para birimleri arasında atomik işlem yapmak imkansızdır. Aslında Paypal'ın Venmo'nun ana şirketini satın almasına rağmen 2013'te son kullanıcıların Venmo'yu göndermesi hala imkansız Paypal kullanıcılarına [78] dolar. Satıcılar yalnızca son zamanlarda hatta tek entegrasyonla ikisini de kabul edin. 2. ve 3. hedeflere kapalı bir sistemde ulaşılabilir. Özellikle bazı ülkelerde etkin yurt içi ödeme sistemi mevcuttur. ağlar genellikle evrensel olarak güvenilen bir düzenleyici otorite tarafından denetlenir. Ancak üyelik kapalı bir alanla sınırlıdır. anlaşmalı bankalar kümesi ve ağlar aşağıdakilerle sınırlıdır: Bir ülkenin düzenleyici otoritesinin erişimi.SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. Kazılan blockchains'de 1. ve 3. hedeflere ulaşıldı, en önemlisi Ethereum [3] üzerindeki ERC20 tokens biçimindedir. Bu blockchain'lerin ana fikri, insanları ödeme yaptıkları için ödüllendirecek yeni bir kripto para birimi yaratmaktır. işlemlerin geri döndürülmesi zor. Maalesef bu, token veren kuruluşların işlemin kesinliğini kontrol etmediği anlamına gelir. Eğer yazılım hatalar işlem geçmişinin yeniden düzenlenmesine neden olur [26, 73], veya insanları dolandırmanın ganimeti, maliyeti aştığında geçmişi yeniden düzenlerken [74, 97], ihraççılar tokens'den sorumlu olabilir zaten gerçek dünya parası karşılığında kullandılar. Stellar blockchain'nin iki ayırt edici özelliği vardır. İlk olarak, tokens arasındaki verimli pazarları yerel olarak destekler farklı ihraççılardan. Özellikle herkes token düzenleyebilir, blockchain, herhangi bir token çifti arasındaki ticaret için yerleşik bir emir defteri sağlar ve kullanıcılar yol ödemeleri yapabilir birkaç döviz çifti arasında atomik olarak ticaret yaparken uçtan uca limit fiyatı garanti eder. İkincisi, Stellar yeni bir Bizans anlaşması getiriyor protokol, SCP (Stellar Konsensüs Protokolü), bunun aracılığıyla token verenler, zorunlu kılmak için belirli validator sunucularını belirler işlem kesinliği. Hiç kimse ihraççının validator'lerinden (ve temel dijital imzalarından ve kriptografik hashes güvende kalır), ihraççı tam olarak hangi işlemlerin gerçekleştiğini bilir ve riskten kaçınır blockchain geçmişin yeniden düzenlenmesinden kaynaklanan kayıplar. SCP'nin temel fikri, çoğu varlık ihraççısının bundan faydalanmasıdır. Likit piyasalar ve atomik işlemleri kolaylaştırmak istiyor diğer varlıklarla. Bu nedenle, validator yöneticiler yapılandırıyor sunucularının diğer validator'lerle tam olarak aynı fikirde olması tüm varlıklardaki tüm işlemlerin geçmişi. Bir validator v1 olabilir v2 ile anlaşacak şekilde yapılandırılmış veya v2 kabul edecek şekilde yapılandırılabilir v1 ile veya her ikisi de birbiriyle uyumlu olacak şekilde yapılandırılabilir; her durumda, ikisi de bir işlem geçmişini taahhüt etmeyecektir. diğerinin farklı bir tarihe bağlanamayacağını biliyor. Geçişliliğe göre, eğer v1, v2 ile anlaşamıyorsa ve v2, v3 ile anlaşamıyorsa (veya tam tersi), v1, v2 ile anlaşamıyorsa v3, v3'ün v1'in duyduğu varlıkları temsil edip etmediği arasında. Bu anlaşma ilişkilerinin hipotezi altında SCP, tüm ağı geçişli olarak bağlamayı garanti eder küresel bir anlaşma, onu küresel bir Bizans anlaşması haline getiriyor açık üyelik protokolü Bu yeni bağlantılılık varsayımına İnternet hipotezi diyoruz ve bunun hem “İnternet”i (herkesin anladığı) geçişli olarak bağlanan en büyük tek IP ağı anlamına gelir) ve eski uluslararası ödemeler (bunlar adım adım atomik değildir ancak geçişli olarak bağlantılı, küresel bir yapıdan yararlanır finansal kurumlar ağı). Stellar Eylül 2015'ten bu yana üretimde kullanılıyor. blockchain uzunluğunu yönetilebilir tutmak için sistem çalışır 5 saniyelik aralıklarla SCP — blockchain standartlarına göre hızlı, ancak Bizans anlaşmasının tipik uygulamalarından çok daha yavaş. Ana kullanım alanı ödemeler olsa da Stellar aynı zamanda Fayda sağlayan parasal olmayan takas edilebilir token'ler için cazip olduğu kanıtlanmış doğrudan ikincil piyasalardan (bkz. Bölüm 7.1). Bir sonraki bölümde ilgili çalışmalar anlatılmaktadır. Bölüm 3 sunar SCP. Bölüm 4, SCP'nin resmi doğrulamasını açıklamaktadır. Bölüm 5'te Stellar'nin ödeme katmanı açıklanmaktadır. Bölüm 6 ilgilidir dağıtım deneyimlerimizden ve öğrendiğimiz derslerden bazıları. Bölüm 7'de sistem değerlendirilmektedir. Bölüm 8 sona eriyor.
Stellar コンセンサスプロトコル
Stellar コンセンサス プロトコル (SCP) はクォーラムベースの オープンメンバーシップを備えたビザンチン協定プロトコル。クォーラムは、個々のノードのローカル構成の決定を組み合わせて生成されます。ただし、ノードは認識するだけです 自分自身が所属する定員会に参加した後のみ、 他のすべての定足数メンバーのローカル構成を学習します。このアプローチの利点の 1 つは、SCP が本質的に どのようなノードが存在するかについての異種のビューを許容します。したがって、 ノードは一方的に参加したり離脱したりできます。 メンバーシップを調整するための「ビュー変更」プロトコル。 3.1 ビザンチン連邦協定 伝統的なビザンチン協定の問題は次のようなもので構成されています。 N 個のノードからなるクローズド システム。そのうちのいくつかには障害があり、 恣意的に行動する。ノードは入力値を受け取り、交換します。 入力の中から出力値を決定するためのメッセージ。 ビザンチン協定プロトコルは、行儀の良い 2 つのノードが異なる決定を出力せず、一意の決定を出力しない場合には安全です。 決定は有効な入力でした(有効な合意の定義にとって)SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 事前に)。プロトコルが有効であることは、それが保証する場合に有効です。 すべての正直なノードは最終的に決定を出力します。 通常、プロトコルは整数に対して N = 3f + 1 を想定します。 f > 0 の場合、安全性と何らかの形の生存性が保証されるため、 最大でも f 個のノードに障害がある限り。これらのある段階で、 プロトコル、ノードは提案された値と提案に投票します 投票の定足数と呼ばれる 2f + 1 票を受け取ると、 決定。 N = 3f + 1 ノードの場合、任意の 2 つのクォーラム サイズ 2f + 1 は少なくとも f + 1 ノードでオーバーラップします。たとえこれらのうちの 重複するノードに障害がある場合、2 つのクォーラムは少なくとも共有します 障害のない 1 つのノードにより、矛盾した決定が防止されます。 ただし、このアプローチは、すべてのノードが同意する場合にのみ機能します。 定足数を構成するものは何ですか。SCP では不可能です。 2 つのノードは互いの存在を知らない場合もあります。 SCP では、各ノード v が一方的にノードのセットを宣言します。 (a) v は、すべての場合に次のように信じます。 スライスのメンバーがシステムの状態について同意すると、 彼らは正しく、(b) v はそのスライスの少なくとも 1 つが、 に関するタイムリーな情報を提供できるようになります。 システムの状態。結果として得られるシステムを次のように呼びます。 ノードとそのスライスの統合ビザンチン協定 (FBA)システム。次に見るように、定足数システムが登場します ノードのスライスから。 非公式には、FBA ノードのスライスは誰との関係を表します。 ノードには同意が必要です。たとえば、ノードには、それぞれ 3 つのノードを実行する 4 つの特定の組織との合意が必要な場合があります。に ダウンタイムに対応するため、スライスをすべてのセットに設定する場合があります 各組織の 2 つのノードで構成されます。これが「必要な場合」 「一致」関係は任意の 2 つのノードを推移的に関連付けます。 世界的な合意が得られます。そうしないと、発散が発生する可能性があります。 ただし組織間のみであり、どちらの組織も必要ありません 相手との合意。今日のトポロジーを考えると、 金融システムでは、広範な収束が人々が呼ぶ単一の元帳履歴を生み出し続けると仮説を立てています。 私たちがインターネットについて話すのと同じように、「Stellar ネットワーク」です。 クォーラムは次のようにスライスから生成されます。すべてのノードが指定します 送信するすべてのメッセージのクォーラム スライスが発生します。 S を 一連のメッセージの発信元となるノードのセット。あ ノードは一連のメッセージがクォーラムに達したとみなします。 S のすべてのメンバーが S に含まれるスライスを持つ場合のしきい値。 構造上、そのような集合 S は、全員一致であれば、次の条件を満たします。 各メンバーの同意要件。 障害のあるピアは、内容を変更するために作成されたスライスをアドバタイズする可能性があります。 正常に動作するノードはクォーラムを考慮します。プロトコル分析のために、FBA のクォーラムは空ではないものとして定義されます。 少なくとも 1 つのクォーラム スライスを含むノードのセット S 欠陥のない各メンバー。他のセットと同様に、この抽象化は健全です 全会一致の定足数を表すと称するメッセージの数 実際には (障害のあるノードからのメッセージが含まれている場合でも)、 そして、S に行儀の良いノードのみが含まれている場合は正確です。で このセクションでは、ノードのスライスは変更されないと仮定します。 それにもかかわらず、私たちの結果はスライス変更の場合に当てはまります。 なぜなら、スライスが変化するシステムは安全であることに劣らないからです。 ノードのスライスがすべての要素で構成される固定スライス システム。 スライス変更の場合に使用するスライス (定理を参照) [68] の 13)。セクション 4 で説明したように、活性度は以下に依存します。 行儀の良いノードは最終的に信頼性の低いノードを削除します 彼らのスライスから。 異なるノードには異なる合意要件があるため、FBA では安全性のグローバルな定義が妨げられます。私たちは言います 障害のないノード v1 と v2 が絡み合っているのは、 v1 のクォーラムが少なくとも 1 つで v2 のすべてのクォーラムと交差します。 障害のないノード。 FBAプロトコルにより合意を保証できる 絡み合ったノード間のみ。 SCP がそうするのですから、SCP のせいです 安全性に対する許容度は最適です。インターネット仮説、 Stellar の設計の根底にあるのは、人々が気にかけているノードであると述べています について絡みます。 I の外側のすべてのノードに障害がある場合でも、I のすべての 2 つのメンバーが絡み合っているような、一様に障害のないクォーラムである場合、ノードのセット I は無傷であると言います。直感的には、 それなら、私は無傷でない者の行為に影響されないようにする必要があります ノード。 SCP は、ノンブロッキングな生存性 [93] と ノード自体は必要ありませんが、無傷のセットに対する安全性 どのセットが無傷であるかを知るためです (また、知ることができない場合もあります)。 さらに、交差する 2 つのそのままのセットの和集合は次のようになります。 無傷のセット。したがって、そのままのセットは、 各パーティションが安全で稼働している、正常に動作するノード (条件によっては)ただし、異なるパーティションが出力する場合があります 異なる決定。 3.1.1 FBA における安全性と生存性の考慮事項 限られた例外 [64] を除いて、ほとんどの終了したビザンチン協定プロトコルは、均衡点に調整されています。 安全性と活性性は同じ耐障害性を持っています。 FBAでは、 つまり、障害に関係なく、すべての 絡み合ったセットもそのままです。 FBAが判断した場合、 分散型のクォーラムでは、個々のスライスの選択がこの均衡につながる可能性は低いです。さらに、 少なくともStellarでは、均衡は望ましくない: その結果 安全上の欠陥(デジタルマネーの二重使用)は、 liveness 障害 (つまり、遅延) よりもはるかに悪いです。 いずれにしても Stellar までに数日かかった支払いの場合)。人々 したがって、次のような大きなクォーラム スライスを選択する必要がありますし、実際に選択する必要があります。 それらのノードは無傷よりも絡み合ったままになる可能性が高くなります。 さらに状況が悪化すると、回復が容易になります。 FBA システムでは、従来のクローズドシステムよりも一般的な liveness 障害が発生します。閉じたシステムでは、すべてのメッセージは次のとおりである必要があります。 同じクォーラムのセットに関して解釈されます。したがって、 障害から回復するためにノードを追加および削除するには、次のことが必要です 再構成イベントについて合意に達することですが、合意が得られなくなると困難になります。それに対してFBAの場合は、 どのノードもクォーラム スライスをいつでも一方的に調整できます。 時間。システム上重要なシステムの停止に対応して 組織では、ノード管理者はスライスを次のように調整できます。 対応を調整するような感じで問題を回避する BGP の大惨事 [63] まで (ただし、次のような制約はありません) 物理ネットワークリンクを介したルーティング)。
Stellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル 3.1.2 カスケード定理 SCP は、基本的なラウンド モデル [42] のテンプレートに従います。 ノードは一連の番号付き投票を進めていきます。 3 つのタスクを試みます:(1)以前の投票の決定と矛盾しない「安全な」値を特定します(よくこのように呼ばれます) (2) 安全値に同意し、(3) 同意が成功したことを検出します。ただし、FBAは開いています メンバーシップはいくつかの一般的な手法を妨げ、 従来のクローズドプロトコルをFBAに「移植」することは不可能 クォーラムの定義を変更するだけでモデルを構築できます。 多くのプロトコルで採用されている手法の 1 つがローテーションです。 タイムアウト後にラウンドロビン方式でリーダー ノードを経由します。クローズド システムでは、ラウンドロビンのリーダー選択により確実に 最終的には、唯一無二の誠実なリーダーが、単一の価値観についての合意を調整することになるのです。残念ながらラウンドロビン メンバーシップが不明な FBA システムでは機能できません。 FBA で失敗するもう 1 つの一般的なテクニックは、特定のクォーラムがすべてのノードを説得できると想定することです。たとえば、 全員が 2f + 1 ノードをクォーラムとして認識すると、 2f + 1 署名は、すべてのノードに対してプロトコル状態を証明するのに十分です。 同様に、ノードが同一のメッセージのクォーラムを受信した場合、 信頼性の高いブロードキャスト [24] を通じて、ノードは障害のないすべてのノードにもクォーラムがあると想定できます。対照的に、FBA では、 クォーラムは、クォーラム外のノードにとっては何の意味も持ちません。 最後に、非連合システムは「逆方向」を使用することがよくあります。 安全性に関する推論: f + 1 ノードに障害がある場合、すべてが安全である 保証は失われます。したがって、ノード v が f + 1 ノードすべてを聞くと、 何らかの事実を述べる F、v は、少なくとも 1 人が、 安全性を損なうことなく、真実(したがって F は真実)になります。そんな 安全性はペアの特性であるため、FBA では推論が失敗します ノードの数が多いため、一部のピアに対して安全性を失ったノードは、 悪い事実を仮定することにより、常により多くのノードの安全性が失われます。 ただし、FBA はライブ性について逆に推論することができます。 v ブロッキング セットを、すべてのノードと交差するノードのセットとして定義します。 v のスライス。v ブロッキング セット B が満場一致で欠陥がある場合、B ノードとクォーラムを拒否し、活性を損なう可能性があります。したがって、もし B が満場一致で事実 F を述べた場合、v はいずれかの F が true または v はそのままではありません。ただし、v はまだ完全なものを確認する必要があります。 絡み合ったノードが F と矛盾しないことを知るための定足数、 これはSCPでのコミュニケーションの最終ラウンドにつながり、 類似のプロトコルでは必要のない他の FBA プロトコル [47] 非公開メンバーシッププロトコル。その結果、 潜在的な事実に対する信頼度の 3 つの可能なレベル: 不確定、無傷のノード間で想定しても安全 (これについては後で説明します) 用語は受け入れられた事実)、絡み合っていると想定するのが安全です ノード(これを確認された事実と呼びます)。 ノード v は、セット B がそのすべてのスライスと交差するかどうかをチェックすることで、セット B が vblocking かどうかを効率的に判断できます。興味深いことに、ノードが常にステートメントをアナウンスする場合、 accept し、フルクォーラムがステートメントを受け入れると、ステートメントが全体に伝播するカスケード プロセスが開始されます。 無傷のセット。この伝播の根底にある重要な事実を カスケード定理は次のことを述べています。 そのままのセット、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] であり、コンセンサスに達するための一連の試みで構成されます。 投票用紙。投票では、継続時間が長くなるタイムアウトが採用されます。あ 投票同期プロトコルにより、ノードが確実に稼働状態に維持されます。 投票用紙が届くまでの期間が長くなり、同じ投票用紙が使用される 事実上同期しています。終了は保証されません 投票が同期されるまで、ただし 2 つの同期投票 正常に動作するノードのスライスの欠陥のあるメンバーがそうなる SCP が終了するには、干渉しないだけで十分です。 投票プロトコルは、投票ごとに実行されるアクションを指定します。 投票用紙。投票は準備フェーズから始まります。 矛盾しない提案する値を決定してください 以前の決定。次に、コミットフェーズで、ノードは次のことを試みます。 準備された値に基づいて決定を行います。 投票には、連合投票と呼ばれる合意サブプロトコルが使用されます。n どのノードが抽象ステートメントに投票するか それは最終的に確認されるか、行き詰まる可能性があります。一部の記述は矛盾しているとみなされる可能性があり、安全性は 連合投票の保証は、2 人のメンバーが連合投票を行わないことです。 絡み合ったセットは矛盾したステートメントを裏付けます。ステートメントが無傷である場合を除き、ステートメントの確認は保証されません メンバー全員が同じように投票するセット。ただし、 完全なセットのメンバーがステートメントを確認します。フェデレーテッド 投票により、無傷のセットのすべてのメンバーが最終的にそのステートメントを確認することが保証されます。そこで、取り返しのつかない措置を講じる 確認ステートメントに応じて、生存期間を維持します 無傷のノード。 ノードは最初に、候補から取得した値を提案します。 メンバー全員が無傷である可能性を高めるプロトコル 同じ値を提案する集合、そして最終的には収束する (ただし、収束が完了したかどうかを判断する方法はありません)。 指名は、連合による投票とリーダーの選択を組み合わせたものです。 FBAでは総当たりが不可能なため、指名は 確率的なリーダー選択スキーム。 カスケード定理は投票においても重要な役割を果たします。 同期を確立し、ブロック状態を回避します。 終了はもう不可能です。 3.2.1 投票 SCP ノードは一連の番号付き投票を進め、連合投票を利用して以下の声明に同意します。 値はどの投票用紙で決定されるか決定されません。非同期の場合 または、誤った行動により投票番号 n での決定に達することができません。 ノードがタイムアウトになり、投票 n + 1 で再試行します。
SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 連合投票が終了しない可能性があることを思い出してください。したがって、いくつかの 投票用紙に関する発言は永久に固定化される可能性があります ノードがその状態にあるかどうかを決して判断できない不定状態。 まだ進行中か停止中です。ノードは除外できないため 不確定な発言が後で真実であることが判明する可能性、 新しい声明に対する連合投票を決して試みてはなりません 矛盾する不定なもの。 各投票 n では、ノードは 2 つのタイプの連合投票を使用します。 ステートメントの: • prepare ⟨n,x⟩ – x 以外の値がないことを示します n 以内の投票で決定された、または今後決定されることになります。 • commit ⟨n,x⟩ – x が投票 n で決定されると述べます。 重要なのは、prepare ⟨n,x⟩ は commit に矛盾することに注意してください。 ⟨n′,x ′⟩ n ≧ n′かつ x , x ′のとき。 ノードは、投票 n に対して連合投票を試みることによって開始します。 ステートメントは ⟨n,x⟩ を準備します。以前の準備ステートメントがある場合 連合投票により無事確認されました。 ノードは、確認された最高の投票用紙から x を選択します。それ以外の場合、ノードは x を 指名プロトコルについては次のサブセクションで説明します。 ノードが ⟨n,x⟩ の準備を正常に確認した場合にのみ 投票 n では、コミット ⟨n,x⟩ で統合投票を試みます。もし それが成功した場合、SCP が決定したことを意味するため、ノードは次のように出力します。 確認されたコミットステートメントの値。 絡み合った集合 S を考えてみましょう。値は 1 つだけなので、 特定の投票用紙で S のメンバーが作成したものであることを確認できますが、2 つの異なる値がコミットされたことを確認することはできません。 特定の投票用紙に含まれる S のメンバー。さらに、 commit ⟨n,x⟩ の場合 が確認されたら、⟨n,x⟩ を準備することも確認されました。それ以来 prepare ⟨n,x⟩ は、フェデレーション投票の合意保証により、異なる値に対する以前のコミットと矛盾します。 異なる値が以前に決定されることはないことがわかります。 S のメンバーによる投票。投票番号の誘導により、 したがって、SCP は安全であることがわかります。 生存性については、無傷のセット I と十分に長いものを考慮してください。 同期投票 n.スライスに障害のあるノードが現れた場合 行儀の良いノードのうち、n に干渉しないノードは投票によって決定されます n + 1 I のすべてのメンバーは、prepare ステートメントの同じ集合 P を確認しました。 P = ∅で投票用紙 n が十分に長い場合、 指名プロトコルは、ある値 x に収束します。 それ以外の場合、x を P で最も高い投票数を持つ準備からの値とします。いずれにしても、私は一律にフェデレーションを試みます。 次の投票で⟨n + 1,x⟩を準備することに投票します。したがって、もし n + 1 も同期しているため、必然的に x の決定が続きます。 3.2.2 指名 指名には、以下の声明に対する連合投票が必要となります。 • nominate x – x が有効な決定候補であると述べます。 ノードは、複数の値 (異なる値) を指名するために投票することができます。 指名発言は矛盾していない。ただし、一度、 ノードは任意の指名ステートメントを確認すると、投票を停止します。 新しい価値観を提案します。フェデレーション投票により、ノードは引き続き次のことを行うことができます。 投票しなかった新たな指名声明を確認する。 投票または承認 定足数から 受け入れる 定足数から は有効です からのを受け入れる ブロッキングセット コミットされていない に投票した を受け入れました を確認した に投票しました 図 1. 連合投票の段階 完全なセットのメンバーがお互いのことを確認できるようになります。 新たな投票を保留しながら、ノミネートされた値を変更します。 指名の (進化する) 結果は、確認された指名ステートメント内のすべての値の決定論的な組み合わせです。もし x はトランザクションのセットを表し、ノードは和集合を取ることができます セットの中で、最大のセット、または最も高い hash を持つセット、つまり すべてのノードが同じことを行う限り。ノードが新規を保留しているため 1 つの指名発言を確認した後に投票します。 確認されたステートメントには、有限個の値のみを含めることができます。 確認された声明が確実に拡散したという事実 無傷のセットとは、無傷のノードが最終的に 候補値のセットが同じであるため、候補結果が得られます。 ただし、プロトコルの後半の未知の時点で任意に行われました。 ノードはフェデレーテッド リーダー選択を採用して、 nominate ステートメント内の異なる値の数。のみ 指名声明にまだ投票していない指導者は、新しい × を導入することができます。他のノードはメッセージの受信を待機します リーダーの(有効な)指名投票をコピーするだけです。 失敗に対応するために、リーダーのセットは成長し続けます。 タイムアウトが発生しますが、実際には x の新しい値を導入するノードはわずかです。 3.2.3 連合投票 連合投票では、以下に示す 3 段階のプロトコルが採用されています。 図 1. ノードは最初に抽象ステートメントに同意しようとします 投票し、次に承認し、最後に声明を確認します。 ノード v は、有効なステートメント a に投票できます。 他と矛盾する未決の投票数と受け入れられた声明。これは、署名された投票メッセージをブロードキャストすることによって行われます。 v 次に、a が他の受け入れられたステートメントと一致しており、かつ (ケース 1)v が次のクォーラムのメンバーである場合に、a を受け入れます。 各ノードは、a に投票するか、a を受け入れるか、または (ケース 2) v の場合でも a に投票しませんでしたが、v ブロッキング セットは a を受け入れます。ケース 2 の場合、v は 以前に a に反対する票を投じたことがあるが、現在は 却下されました。 v 否決された投票については忘れてもよい そして、もしvが無傷なら、それは知っているので、それらをキャストしなかったふりをします 否決された投票では、ケース 1 によって定足数を満たすことはできません。 v a を受け入れることをブロードキャストし、それが入っているときに a を確認します。 全会一致で承認する定足数。図 2 は、 v ブロック集合とカスケード定理の効果 連合投票。 2 つの必要なクォーラムが共有する必要があるため、絡み合った 2 つのノードは矛盾するステートメントを確認できません。Stellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル 3 4 2 1 5 7
Stellar fikir birliği protokolü
Stellar konsensüs protokolü (SCP) yeter sayıya dayalıdır Açık üyelikle Bizans anlaşması protokolü. Yeterli çoğunluk, bireysel düğümlerin birleşik yerel yapılandırma kararlarından ortaya çıkar. Ancak düğümler yalnızca tanır kendilerinin ait olduğu yetersayılar ve ancak bundan sonra diğer tüm çekirdek üyelerinin yerel konfigürasyonlarının öğrenilmesi. Bu yaklaşımın bir faydası SCP'nin doğası gereği Hangi düğümlerin var olduğuna dair heterojen görüşlere tolerans gösterir. Bu nedenle, düğümler herhangi bir müdahaleye gerek kalmadan tek taraflı olarak katılıp ayrılabilirler. Üyeliği koordine etmek için “değişikliği görüntüle” protokolü. 3.1 Federe Bizans anlaşması Geleneksel Bizans anlaşma problemi, N düğümden oluşan kapalı sistem; bunlardan bazıları hatalıdır ve keyfi davranın. Düğümler giriş değerlerini alır ve değiştirir Girişler arasında bir çıkış değerine karar vermek için mesajlar. Bir Bizans anlaşma protokolü, iyi davranan iki düğümün farklı kararlar vermediği ve benzersiz bir karar vermediği durumlarda güvenlidir. karar geçerli bir girdiydi (geçerli mutabakata varılan bazı tanımlar için)SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. önceden). Bir protokol bunu garanti ettiğinde yayındadır Her dürüst düğüm sonunda bir karar verir. Tipik olarak protokoller bazı tamsayılar için N = 3f + 1 olduğunu varsayar f > 0 ise güvenliği ve bir tür canlılığı garanti eder, böylece en fazla f düğümü hatalı olduğu sürece. Bunların bir aşamasında protokoller, düğümler önerilen değerlere ve bir teklife oy verir Oy yeter sayısı olarak adlandırılan 2f + 1 oy alınması, Karar. N = 3f + 1 düğüm ile herhangi iki yeter sayı boyut 2f + 1 en az f + 1 düğümde örtüşüyor; bunlardan f olsa bile örtüşen düğümler hatalı, iki çekirdek en azından paylaşıyor hatalı olmayan bir düğüm, çelişkili kararları önler. Ancak bu yaklaşım yalnızca tüm düğümlerin aynı fikirde olması durumunda işe yarar. SCP'de imkansız olan yeterli çoğunluğu ne oluşturur? iki düğüm birbirinin varlığından bile haberdar olmayabilir. SCP ile her düğüm tek taraflı olarak düğüm kümelerini bildirir, yetersayı dilimleri olarak adlandırılır, öyle ki (a) v, eğer hepsi varsa bir dilimin üyeleri sistemin durumu hakkında hemfikirdir, ardından haklılar ve (b) v, dilimlerinden en az birinin hakkında zamanında bilgi sağlamak için mevcut olacaktır. sistemin durumu. Ortaya çıkan sistemi diyoruz, düğümler ve bunların dilimleri, bir Birleşik Bizans Anlaşması (FBA) sistemi. Daha sonra göreceğimiz gibi, bir yeter sayı sistemi ortaya çıkıyor düğümlerin dilimlerinden. Gayri resmi olarak, bir FBA düğümünün dilimleri kiminle olduğunu ifade eder düğüm anlaşmayı gerektirir. Örneğin bir düğüm, her biri 3 düğüm çalıştıran 4 özel kuruluşla anlaşma gerektirebilir; için kesinti süresini karşılamak için dilimlerini tüm setler olacak şekilde ayarlayabilir Her kuruluştan 2 düğümden oluşur. Eğer bu “gerekiyorsa "ile anlaşma" ilişkisi herhangi iki düğümü geçişli olarak ilişkilendirir, küresel bir anlaşmaya varıyoruz. Aksi halde ayrılık yaşayabiliriz ancak yalnızca hiçbiri gerektirmeyen kuruluşlar arasında diğeriyle anlaşma. Günümüzün topolojisi göz önüne alındığında Finansal sistemdeki yaygın yakınlaşmanın, insanların tek bir defter tarihi olarak adlandırdığı bir defter tarihi üretmeye devam edeceğini varsayıyoruz. İnternetten bahsettiğimiz şekliyle “Stellar ağı”. Yeter sayı, dilimlerden aşağıdaki gibi ortaya çıkar. Her düğüm belirtir Gönderdiği her mesajdaki yetersayı dilimleri. S olsun bir dizi mesajın kaynaklandığı düğümler kümesi. bir düğüm, mesaj kümesinin yeter sayıya ulaştığını düşünüyor S'nin her üyesinin S'de yer alan bir dilime sahip olduğu eşik. Yapı itibarıyla böyle bir S kümesi, eğer oybirliğiyle kabul edilirse, şu koşulu karşılar: üyelerinin her birinin anlaşma gereksinimleri. Hatalı bir eş, neyi değiştirmek için hazırlanmış dilimlerin reklamını yapabilir? iyi huylu düğümler yeterli çoğunlukları dikkate alır. Protokol analizi açısından, FBA'daki yeter çoğunluğu boş olmayan bir sayı olarak tanımlıyoruz. en az bir yetersayı dilimini kapsayan düğümlerin S kümesi kusurlu olmayan her üye. Bu soyutlama, herhangi bir küme gibi sağlamdır. Oybirliğiyle alınmış bir yeter sayıyı temsil ettiği iddia edilen mesajların sayısı aslında öyledir (hatalı düğümlerden gelen mesajları içerse bile), ve S'nin yalnızca iyi davranan düğümleri içermesi kesindir. içinde Bu bölümde ayrıca düğümlerin dilimlerinin değişmediğini varsayıyoruz. Bununla birlikte, sonuçlarımız değişen dilim vakasına aktarılıyor Çünkü dilimlerin değiştiği bir sistem, bundan daha az güvenli değildir. bir düğümün dilimlerinin tüm bileşenlerden oluştuğu sabit dilim sistemi değişen dilimler durumunda kullandığı dilimler (bkz. Teorem [68] içinde 13). Bölüm 4'te açıklandığı gibi canlılık şunlara bağlıdır: iyi davranan düğümler sonunda güvenilmez düğümleri ortadan kaldırır onların dilimlerinden. Farklı düğümlerin farklı anlaşma gereksinimleri olduğundan, FBA küresel bir güvenlik tanımına izin vermez. Diyoruz Arızalı olmayan düğümler v1 ve v2 her seferinde iç içe geçmiş durumda v1 yeter sayısı, v2'nin her yeter sayısıyla en az bir noktada kesişiyor arızalı olmayan düğüm Bir FBA protokolü anlaşmayı sağlayabilir yalnızca iç içe geçmiş düğümler arasında; SCP bunu yaptığına göre bu onun hatası Güvenlik toleransı optimaldir. İnternet hipotezi, Stellar tasarımının temelinde, insanların önemsediği düğümlerin olduğu belirtiliyor hakkında iç içe geçecektir. Eğer I, tekdüze olarak hatasız bir çekirdek ise, I'in her iki üyesi de iç içe geçmişse, I'in dışındaki her düğüm hatalı olsa bile, bir I düğümleri kümesinin sağlam olduğunu söyleriz. Sezgisel olarak, o zaman, sağlam olmayanların eylemlerine karşı dayanıklı kalmalıyım düğümler. SCP, hem [93] engellenmeyen canlılığı hem de düğümlerin kendilerine ihtiyaç duymasa da, bozulmamış kümelerin güvenliği hangi setlerin sağlam olduğunu bilmek (ve bilememek). Ayrıca kesişen iki sağlam kümenin birleşimi bozulmamış bir set. Bu nedenle, bozulmamış kümeler bir bölümü tanımlar. Her bölümün güvenli ve canlı olduğu iyi huylu düğümler (bazı koşullar altında), ancak farklı bölümler çıktı alabilir farklı kararlar. 3.1.1 Amazon Lojistik'te Güvenlik ve Canlılık hususları Sınırlı istisnalar [64] dışında, kapalı Bizans anlaşma protokollerinin çoğu, denge noktasına göre ayarlanmıştır. Güvenlik ve canlılık aynı hata toleransına sahiptir. FBA'da, bu, arızalardan bağımsız olarak tümünün iç içe setler de sağlamdır. FBA'nın belirlediği göz önüne alındığında Yeterli çoğunluk merkezi olmayan bir şekilde sağlanıyorsa, bireysel dilim seçimlerinin bu dengeye yol açması pek olası değildir. Üstelik en azından Stellar'de denge istenmiyor: sonuçlar Bir güvenlik arızasının (yani çift harcanan dijital paranın) canlılık başarısızlığından çok daha kötü (yani gecikmeler) zaten Stellar tarihinden birkaç gün önce yapılan ödemelerde). İnsanlar bu nedenle büyük çekirdek dilimleri seçilmelidir ve seçilmelidir, öyle ki düğümlerinin sağlam olmaktan ziyade iç içe geçmiş kalması daha olasıdır. Teraziyi daha da eğmek, iyileşmeyi kolaylaştırır FBA sisteminde geleneksel kapalı sisteme kıyasla tipik canlılık hataları. Kapalı sistemlerde tüm mesajların aynı nisaplar dizisine göre yorumlanır. Bu nedenle, Arızadan kurtulmak için düğüm ekleme ve kaldırma gerektirir bir yeniden yapılandırma olayı üzerinde fikir birliğine varmak; fikir birliği artık canlı olmadığında bu zordur. FBA'nın aksine, herhangi bir düğüm çekirdek dilimlerini herhangi bir zamanda tek taraflı olarak ayarlayabilir zaman. Sistemik olarak önemli bir tesisteki kesintiye yanıt olarak düğüm yöneticileri dilimlerini şu şekilde ayarlayabilir: Sorunu çözmeye çalışın, biraz yanıtları koordine etmeye benzer BGP felaketlerine [63] (her ne kadar kısıtlamalar olmasa da) fiziksel ağ bağlantıları üzerinden yönlendirme).
Stellar ile hızlı ve güvenli küresel ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada 3.1.2 Basamaklı teoremi SCP, [42] temel yuvarlak modelinin şablonunu takip eder; Düğümler, her biri bir dizi numaralı oy pusulası aracılığıyla ilerler. üç görevi yerine getirmek: (1) önceki oylamada alınan herhangi bir kararla çelişmeyen "güvenli" bir değer belirlemek (genellikle bu değer olarak adlandırılır) oy pusulasını hazırlamak), (2) güvenli değer üzerinde anlaşmak ve (3) anlaşmanın başarılı olduğunu tespit etmek. Ancak FBA'nın açık Üyelik birçok yaygın tekniğin önünde engel teşkil ediyor. Geleneksel kapalı protokolleri Amazon Lojistik'e "taşımak" imkansız yetersayı tanımını değiştirerek modeli değiştirin. Birçok protokolün kullandığı tekniklerden biri rotasyondur Zaman aşımlarını takiben lider düğümler aracılığıyla dönüşümlü olarak. Kapalı bir sistemde, çevrimsel lider seçimi, sonunda benzersiz ve dürüst bir lider, tek bir değer üzerinde anlaşmayı koordine eder. Ne yazık ki, dönüşümlü üyeliği bilinmeyen bir FBA sisteminde çalışamaz. FBA'da başarısız olan diğer bir yaygın teknik, belirli bir yeter sayının tüm düğümleri ikna edebileceğini varsaymaktır. Örneğin, eğer herkes herhangi bir 2f + 1 düğümünü çekirdek olarak tanırsa, o zaman 2f + 1 imza, protokol durumunu tüm düğümlere kanıtlamak için yeterlidir. Benzer şekilde, eğer bir düğüm aynı mesajlardan oluşan bir çoğunluk alırsa güvenilir yayın [24] aracılığıyla, düğüm, arızalı olmayan tüm düğümlerin de yeterli çoğunluğu göreceğini varsayabilir. FBA'da ise tam tersine, yetersayı, yetersayı dışındaki düğümler için hiçbir şey ifade etmez. Son olarak, federe olmayan sistemler sıklıkla “geriye doğru” Güvenlikle ilgili akıl yürütme: f + 1 düğümleri hatalıysa, tüm güvenlik garantiler kaybolur. Dolayısıyla, eğer v düğümü f + 1 düğümlerin hepsini duyarsa bazı gerçekleri belirtin F, v en az birinin bunu söylediğini varsayabilir hiçbir güvenlik kaybı olmadan gerçektir (ve dolayısıyla F doğrudur). Böyle Güvenlik çiftlerin bir özelliği olduğu için FBA'da mantık başarısız oluyor düğüm sayısı, böylece bazı eşler için güvenliğini kaybetmiş bir düğüm Kötü gerçekleri varsayarak her zaman daha fazla düğümün güvenliğini kaybedersiniz. Ancak FBA, canlılık konusunda geriye doğru mantık yürütebilir. Bir v-engelleme kümesini her bir düğümle kesişen bir düğüm kümesi olarak tanımlayın. v dilimi. Eğer bir v-engelleme seti B oybirliğiyle hatalıysa, B düğüm v'nin yeterli çoğunluğunu reddedebilir ve canlılığına mal olabilir. Dolayısıyla eğer B oybirliğiyle F gerçeğini belirtiyorsa v, F'den birinin olduğunu biliyor doğru veya v sağlam değil. Ancak v'nin yine de tam bir görünüm görmesi gerekiyor iç içe geçmiş düğümlerin F ile çelişmeyeceğini bilmek için yeter sayı, bu da SCP'de son bir iletişim turuna yol açar ve benzer şekilde gerekli olmayan diğer FBA protokolleri [47] kapalı üyelik protokolleri. Sonuç şu ki, elimizde Potansiyel gerçeklere ilişkin üç olası güven düzeyi: belirsiz, sağlam düğümler arasında varsayılması güvenli (ki bunu yapacağız) kabul edilen gerçekler) ve iç içe geçmiş durumlar arasında varsayılması güvenli düğümler (bunlara doğrulanmış gerçekler adını vereceğiz). V düğümü, B kümesinin vbblocking olup olmadığını, B'nin tüm dilimleriyle kesişip kesişmediğini kontrol ederek etkili bir şekilde belirleyebilir. İlginç bir şekilde, düğümler her zaman yaptıkları açıklamaları duyuruyorsa kabul ederse ve tam çoğunluk bir ifadeyi kabul ederse, bu, ifadelerin her yere yayıldığı basamaklı bir süreci başlatır. sağlam setler. Bu yayılmanın altında yatan temel gerçeği diyoruz aşağıdakileri karşılayan basamaklı teorem: Eğer ben bir bozulmamış küme, Q I'in herhangi bir üyesinin yeter sayısıdır ve S herhangi bir üyedir Q'nun üst kümesi ise ya S ⊇I ya da bir v ∈I üyesi vardır öyle ki v < S ve I ∩S v-bloke edicidir. Sezgisel olarak bu durum böyle değilse, S'nin tamamlayıcısı bir yeter sayı içerecektir I ile kesişiyor ama Q ile kesişmiyor, çekirdek kesişimini ihlal ediyor. S = Q ile başlarsak ve S'yi tekrar tekrar genişletirsek şunu unutmayın: Engellediği tüm düğümleri dahil edersek basamaklı bir etki elde ederiz, ta ki, sonuçta S, I'in tamamını kapsar. 3.2 Protokol açıklaması SCP, adı verilen fikir birliğine varmaya yönelik bir dizi girişimden oluşan, kısmen senkronize bir fikir birliği protokolü [42] oy pusulaları. Oy pusulalarında artan süreli zaman aşımları kullanılır. bir oylama senkronizasyon protokolü düğümlerin açık kalmasını sağlar oylamalara kadar artan sürelerde aynı oylama etkili bir şekilde senkronizedir. Sonlandırma garanti edilmez oylamalar eşzamanlı olana kadar, ancak iki eşzamanlı oylama iyi davranan düğüm dilimlerinin hatalı üyelerinin yaptığı SCP'nin sonlandırılması için müdahale etmemek yeterlidir. Bir oylama protokolü, her oylama sırasında gerçekleştirilen eylemleri belirtir. oy pusulası. Oylama, düğümlerin yer aldığı bir hazırlık aşamasıyla başlar. önermek için çelişmeyen bir değer belirlemeye çalışın önceki herhangi bir karar. Daha sonra, bir taahhüt aşamasında düğümler şunu dener: Hazırlanan değere karar vermek. Oylamada, birleşik oylama adı verilen bir anlaşma alt protokolü kullanılır.n hangi düğümler soyut ifadelere oy verir bu sonunda onaylanabilir veya takılıp kalabilir. Bazı ifadeler çelişkili olarak adlandırılabilir ve güvenlik Federasyon oylamanın garantisi, bir oylamada iki üyenin olmamasıdır. iç içe geçmiş küme çelişkili ifadeleri doğrular. Bir bildirimin onaylanması, sağlam olması dışında garanti edilmez. üyelerinin hepsinin aynı şekilde oy kullandığı bir grup. Ancak eğer bir sağlam bir grubun üyesi bir beyanı doğruluyor, birleştirilmiş oylama, bozulmamış setin tüm üyelerinin eninde sonunda bu ifadeyi onaylamasını garanti eder. Bu nedenle geri dönüşü olmayan adımlar atmak teyit edici ifadelere yanıt olarak canlılığı korur sağlam düğümler Düğümler başlangıçta bir adaylıktan elde edilen değerleri önerir tüm üyelerin sağlam olma şansını artıran protokol aynı değeri öneren ve sonunda yakınsayan küme (yakınsamanın tamamlandığını belirlemenin hiçbir yolu olmasa da). Aday gösterme, birleşik oylamayı lider seçimiyle birleştirir. FBA'da hepsini bir kez denemek mümkün olmadığından, aday gösterme yöntemleri olasılıksal bir lider seçim şeması. Basamaklı teoremi hem oylamada önemli bir rol oynar senkronizasyon ve engellenen durumlardan kaçınma fesih artık mümkün değildir. 3.2.1 oylama SCP düğümleri, bir dizi numaralı oylama yoluyla ilerler ve hangi beyanlar üzerinde anlaşmaya varmak için birleşik oylama kullanır? Değerlerin hangi oylamada belirlenip belirlenmeyeceğine karar verilir. Eşzamansız ise veya hatalı davranışın n oylamasında karara varılmasını engellemesi, düğümler zaman aşımına uğradı ve n + 1 oylamasında tekrar deneyin.
SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. Federal oylamanın sona ermeyebileceğini hatırlayın. Dolayısıyla bazı Oy pusulalarıyla ilgili açıklamalar kalıcı olarak sıkışıp kalabilir düğümlerin asla karar veremeyecekleri belirsiz durum hala devam ediyor veya takılıp kaldı. Çünkü düğümler göz ardı edilemez belirsiz ifadelerin daha sonra doğru çıkma olasılığı, yeni beyanlar üzerinde asla federal oylamaya kalkışmamalılar belirsiz olanlarla çelişen. Her n oylamasında, düğümler iki türde birleştirilmiş oylamayı kullanır beyanının: • hazırla ⟨n,x⟩– x dışında hiçbir değerin olmadığını belirtir ≤n herhangi bir oylamada kararlaştırıldı veya belirlenecek. • taahhüt ⟨n,x⟩– x'e n oylamasında karar verildiğini belirtir. Önemli olarak, ⟨n,x⟩contradicts taahhütlerini hazırladığınızı unutmayın ⟨n',x ′⟩n ≥n' ve x , x ′ olduğunda. Bir düğüm, birleştirilmiş oylamayı deneyerek n oylamaya başlar. ifade hazırlığı ⟨n,x⟩. Daha önce hazırlanmış bir beyan varsa Federasyon oylamasıyla başarıyla onaylanan düğüm, en yüksek oylamanın onaylanmış formundan x'i seçer. Aksi halde düğüm x'i çıktıya ayarlar. Bir sonraki alt bölümde açıklanan adaylık protokolü. Ancak ve ancak bir düğüm başarılı bir şekilde hazırlığı onaylarsa ⟨n,x⟩ n oylamasında, ⟨n,x⟩ taahhüdü üzerine federal oylama girişiminde bulunur. Eğer başarılı olursa, bu SCP'nin karar verdiği anlamına gelir, dolayısıyla düğüm çıktı verir onaylanmış taahhüt beyanındaki değer. İç içe geçmiş bir S kümesi düşünün. En fazla bir değer olduğundan Belirli bir oylamada S üyeleri tarafından hazırlanan teyit edilebilir, iki farklı değerin taahhüt edildiği teyit edilemez. Belirli bir oylamada S üyeleri. Üstelik ⟨n,x⟩ taahhüt edilirse onaylandı, ardından ⟨n,x⟩ hazırlığı da onaylandı; o zamandan beri ⟨n,x⟩ hazırlamak, federal oylamanın anlaşma garantileri ile daha önce farklı bir değere yönelik taahhütlerle çelişir daha erken bir tarihte farklı bir değere karar verilemeyeceğini anlıyoruz S üyeleri tarafından yapılan oylama. Oy pusulası sayılarına ilişkin tümevarım yoluyla, bu nedenle SCP'nin güvenli olduğunu anlayın. Canlılık için sağlam bir I kümesini ve yeterince uzun bir diziyi düşünün. eşzamanlı oylama Dilimlerde hatalı düğümler görünüyorsa iyi huylu düğümlerin sayısı n'ye müdahale etmez, ardından oylamayla n + 1 I'in tüm üyeleri aynı P hazırlama ifadesini onayladılar. Eğer P = ∅ ve oy pusulası n yeterince uzunsa, adaylık protokolü bazı x değerlerine yakınlaşacaktır. Aksi takdirde, P'de en yüksek oyu alan hazırlıktan elde edilen değer x olsun. Her iki durumda da, eşit şekilde federal girişimde bulunacağım Bir sonraki oylamada ⟨n + 1,x⟩ hazırlığı için oylama. Bu nedenle eğer n + 1 de eşzamanlıdır, kaçınılmaz olarak x kararı takip eder. 3.2.2 Adaylık Aday gösterme, aşağıdaki ifadeler üzerinde federal oylamayı gerektirir: • x'i aday gösterin – x'in geçerli bir karar adayı olduğunu belirtir. Düğümler birden fazla değeri aday göstermek için oy kullanabilir (farklı) aday ifadeleri çelişkili değildir. Ancak bir kez bir düğüm herhangi bir aday beyanını onayladığında oylamayı durdurur yeni değerleri aday gösterin. Birleşik oylama hala bir düğümün şunları yapmasına izin veriyor: oy vermediği yeni aday beyanlarını onaylayın; oy ver ya da kabul et çoğunluktan kabul etmek çoğunluktan a geçerlidir gelen bir teklifi kabul et engelleme seti taahhütsüz oy verdi kabul edildi doğrulandı oy verildi ¬a Şekil 1. Birleştirilmiş oylamanın aşamaları bozulmamış bir kümenin üyelerinin birbirlerinin bilgilerini onaylamasına olanak tanır yeni oyları alıkoyarken değerleri aday gösterdi. Aday göstermenin (gelişen) sonucu, onaylanmış aday gösterme ifadelerindeki tüm değerlerin deterministik bir birleşimidir. Eğer x bir dizi işlemi temsil eder, düğümler birliği alabilir kümelerin en büyüğü veya en yüksek hash değerine sahip olanıdır, yani tüm düğümler aynı şeyi yaptığı sürece. Çünkü düğümler yeniyi saklıyor bir aday beyanını onayladıktan sonra oylar, Onaylanmış ifadeler yalnızca sonlu sayıda değer içerebilir. Onaylanan açıklamaların güvenilir bir şekilde yayılması bozulmamış kümeler, bozulmamış düğümlerin eninde sonunda aynı noktada birleşeceği anlamına gelir aynı aday değerler kümesi ve dolayısıyla adaylık sonucu, ancak bilinmeyen bir noktada keyfi olarak protokolün sonlarında. Düğümler, birleşik lider seçimini kullanarak aday ifadelerindeki farklı değerlerin sayısı. Yalnızca Henüz aday beyanına oy vermemiş bir lider yeni bir x getirebilir. Diğer düğümler sizden haber almayı bekliyor Liderlerin (geçerli) aday oylarını kopyalayın. Başarısızlığa uyum sağlamak için liderler kümesi büyümeye devam ediyor zaman aşımları meydana gelir, ancak pratikte yalnızca birkaç düğüm yeni x değerlerini sunar. 3.2.3 Federe oylama Birleşik oylamada gösterilen üç aşamalı bir protokol kullanılır Şekil 1. Düğümler öncelikle soyut ifadeler üzerinde anlaşmaya varmaya çalışırlar. oylama, ardından kabul etme ve son olarak beyanları onaylama. Bir v düğümü, geçerli olmayan herhangi bir a ifadesine oy verebilir. diğeriyle çelişiyorödenmemiş oylar ve kabul edilen beyanlar. Bunu imzalı bir oylama mesajı yayınlayarak yapar. v daha sonra a'nın kabul edilen diğer ifadelerle tutarlı olması ve her iki (durum 1)v'nin bir yetersayı üyesi olması durumunda a'yı kabul eder; her düğüm ya a'ya oy verir ya da a'yı kabul eder veya (durum 2) v olsa bile a'ya oy vermediyse, v-engelleyici küme a'yı kabul eder. Durum 2'de v olabilir daha önce a ile çelişen oylar kullanmışken, şimdi bunlar reddedildi. v'nin geçersiz oyları unutmasına izin verilir ve onları hiç kullanmamış gibi davran çünkü eğerv sağlamsa, biliyor Reddedilen oylar, 1. durumda yetersayıyı tamamlayamaz. v a'yı kabul ettiğini yayınlar, ardından içeri girdiğinde a'yı onaylar oybirliğiyle kabul eden bir yeter sayı. Şekil 2 şunları göstermektedir: v-bloklama kümelerinin etkisi ve basamak teoremi federal oylama. İç içe geçmiş iki düğüm, çelişkili ifadeleri onaylayamaz çünkü gerekli iki yeter sayının aynı fikirde olması gerekir.Stellar ile hızlı ve güvenli küresel ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada 3 4 2 1 5 7
X に投票
Yに投票 (a) 3 4 2 1 5 7 6 投票する × 投票する × 投票する × 投票する Y 投票する × 投票する Y 投票する Y (b) 3 4 2 1 5 7 6 受け入れる × 投票する × 受け入れる × 投票する Y 受け入れる × 投票する Y 投票する Y (c) 3 4 2 1 5 7 6 受け入れる × 受け入れる × 受け入れる × 投票する Y 受け入れる × 受け入れる × 投票する Y (d) 3 4 2 1 5 7 6 受け入れる × 投票する × 受け入れる × 受け入れる × 受け入れる × 受け入れる × 受け入れる × (e) 図 2. 連合投票におけるカスケード効果。各ノードには、スライスのメンバーへの矢印で示される 1 つのクォーラム スライスがあります。 (a) 矛盾したステートメント X と Y が導入されます。 (b) ノードは有効なステートメントに投票します。 (c) ノード 1 はクォーラムの後に X を受け入れます {1, 2, 3, 4} は全会一致で X に投票します。(d) ノード 1、2、3、および 4 はすべて X を受け入れます。セット {1} は 5 ブロッキングであるため、ノード 5 は X を受け入れ、これを無効にします。 (e) セット {5} は 6 および 7 ブロックであるため、6 と 7 は両方とも X を受け入れます。 矛盾していないステートメントを受け入れることができない障害のないノード。ステートメントの確認は保証されていません: 投票が分かれた場合、両方の声明が永久に残る可能性がある 投票フェーズで定足数に達するのを待っている状態です。ただし、 無傷のセット内のノード 私はステートメント、カスケードを確認します 定理とケース 2 を受け入れると、最終的にはすべてが確実に その発言を確認します。 3.2.4 投票用紙の同期 ノードがコミットステートメントを確認できない場合、 現在の投票では、タイムアウト後にギブアップします。タイムアウトが発生する 任意の範囲に調整するために投票ごとに長くする ネットワーク遅延について。 ただし、タイムアウトだけでは、同時に開始されなかったノードの投票を同期するには十分ではありません。 他の理由で非同期になりました。同期を実現するために、ノードはノードの一部になったときにのみタイマーを開始します。 現在 (または今後) の投票ですべての定足数 n.これ 早期に起動したノードの速度を低下させ、 無傷のセットのメンバーがグループよりもはるかに先にいる。 さらに、ノード v が後で v-blocking セットに気づいた場合 投票の場合、すぐに最下位の投票にスキップします。 タイマーに関係なく、これはもう当てはまりません。カスケード 定理により、すべての落伍者が確実に追いつきます。結果 投票用紙は無傷の組織全体でほぼ同期されているということです。 システムが同期状態になると設定されます。 3.2.5 連合リーダーの選択 リーダーの選択により、各ノードがそのようなリーダーを選択できるようになります。 ノードが通常 1 つまたは少数の数だけを選択する方法 リーダーたちの。リーダーの失敗に対応するためのリーダーの選択 ラウンドを経て進みます。現在のラウンドのリーダーの場合 責任を果たしていないように見え、その後、 特定のタイムアウト期間のノードは次のラウンドに進みます。 彼らが従うリーダーの集団を拡大します。 各ラウンドでは、[0,hmax) の範囲の整数を出力する 2 つの固有の暗号化関数 hash 関数 H0 と H1 が使用されます。 たとえば、Stellar は Hi(m) = SHA256(i∥b∥r ∥m) を使用します。 b は SCP インスタンス全体 (ブロックまたは台帳番号)、r は リーダー選択ラウンド番号、および hmax = 2256。 ラウンドでは、ノード v の優先順位を次のように定義します。 優先度(v) = H1(v) 各ノードで 1 人のストローマンがリーダーとして選択されます 最も高い優先順位を持つノード (v)。このアプローチは機能します ほぼ同一のクォーラム スライスでは問題ありませんが、正しく動作しません 不均衡な構成におけるノードの重要性を把握します。たとえば、ヨーロッパと中国がそれぞれ 3 を貢献した場合、 すべてのクォーラムにノードを追加しますが、中国が 1,000 ノード、ヨーロッパが 4 ノードを実行すると、中国が 99.6% の優先順位の最も高いノードを持つことになります。 当時の。 したがって、スライス重みの概念を導入します。 Weight(u,v) ∈[0, 1] はノード u のクォーラム スライスの割合です ノード v を含む。ノード u が新しいリーダーを選択するとき、 次のように定義される近傍のみを考慮します。 隣人(u) = { v | H0(v) < hmax · 重み(u,v) } 次に、ノードは空のリーダーのセットから開始され、それぞれのリーダーで ラウンドは、最も高い値を持つneighbors(u)のノードvをそれに追加します。 優先度(v)。いずれかのラウンドで近隣セットが空の場合、u は代わりに H0(v)/weight(u,v) の最小値を持つ nodev を追加します。
X'e oy ver
E oyu ver (bir) 3 4 2 1 5 7 6 Oy ver X Oy ver X Oy ver X Oy ver e Oy ver X Oy ver e Oy ver e (b) 3 4 2 1 5 7 6 Kabul et X Oy ver X Kabul et X Oy ver e Kabul et X Oy ver e Oy ver e (c) 3 4 2 1 5 7 6 Kabul et X Kabul et X Kabul et X Oy ver e Kabul et X Kabul et X Oy ver e (d) 3 4 2 1 5 7 6 Kabul et X Oy ver X Kabul et X Kabul et X Kabul et X Kabul et X Kabul et X (e) Şekil 2. Birleştirilmiş oylamada kademeli etki. Her düğüm, dilimin üyelerine oklarla gösterilen bir çekirdek dilime sahiptir. (a) Çelişkili X ve Y ifadeleri tanıtılır. (b) Düğümler geçerli ifadelere oy verir. (c) Düğüm 1, yeterli çoğunluktan sonra X'i kabul eder {1, 2, 3, 4} oybirliğiyle X'e oy verir. (d) 1, 2, 3 ve 4. düğümlerin tümü X'i kabul eder; {1} kümesi 5'i engelliyor, dolayısıyla düğüm 5 X'i kabul ederek geçersiz kılıyor önceki oyu Y'ye verilmiştir. (e) {5} kümesi 6- ve 7'yi bloke etmektedir, dolayısıyla 6 ve 7'nin her ikisi de X'i kabul etmektedir. çelişkili ifadeleri kabul edemeyen hatalı olmayan düğüm. Bir bildirimin onaylanması garanti edilmez: Oyların bölünmesi durumunda her iki beyan da kalıcı olarak geçerli olabilir. oylama aşamasında yetersayıyı beklemek zorunda kaldı. Ancak eğer bozulmamış bir kümedeki bir düğüm Bir ifadeyi doğrularım, basamaklı teorem ve durum 2'nin kabul edilmesi, sonunda I'in tamamının olmasını sağlar bu ifadeyi onaylayın. 3.2.4 Oy pusulası senkronizasyonu Düğümler bir taahhüt ifadesini onaylayamıyorsa mevcut oylamada, bir mola sonrasında pes ediyorlar. Zaman aşımı alır keyfi sınırlara uyum sağlamak için her oylamada daha uzun ağ gecikmesinde. Ancak zaman aşımları tek başına aynı anda başlamamış veya başlamamış düğümlerin oylamalarını senkronize etmek için yeterli değildir. başka nedenlerden dolayı senkronizasyonu bozuldu. Senkronizasyonu sağlamak için düğümler zamanlayıcıyı yalnızca bir sistemin parçası olduklarında başlatır. mevcut (veya daha sonraki) oylamada bulunan yeter çoğunluk Bu erken başlayan düğümleri yavaşlatır ve hiçbir Sağlam bir grubun üyesi grubun çok ilerisinde kalır. Ayrıca, eğer bir v düğümü daha sonra bir v-engelleme setini fark ederse oylamada hemen en düşük oylamaya atlanır, öyle ki herhangi bir zamanlayıcıdan bağımsız olarak artık durum böyle değil. Çağlayan teoremi daha sonra tüm başıboş kalanların yetişmesini sağlar. Sonuç oy pusulalarının sağlam bir şekilde kabaca senkronize edilmesidir sistem senkronize hale geldiğinde ayarlanır. 3.2.5 Federe lider seçimi Lider seçimi, her düğümün böyle bir şekilde liderleri seçmesine olanak tanır. düğümlerin genellikle yalnızca bir veya küçük bir sayı seçmesi liderlerin. Lider başarısızlığını telafi etmek için lider seçimi turlarla ilerler. Mevcut turun liderleri ise sorumluluklarını yerine getirmiyor gibi görünüyorlar ve bir süre sonra belirli zaman aşımı süresi düğümleri bir sonraki tura geçer Takip ettikleri liderler kümesini genişletin. Her turda, [0,hmax] aralığında tamsayıların çıktısını veren iki benzersiz şifreleme hash işlevi (H0 ve H1) kullanılır. Örneğin, Stellar Hi(m) = SHA256(i∥b∥r ∥m) kullanır; burada b genel SCP örneğidir (blok veya defter numarası), r ise lider seçim turu numarası ve hmax = 2256. Bir turda v düğümünün önceliğini şu şekilde tanımlarız: öncelik(v) = H1(v) Her düğüm için bir saman adam lider olarak seçilecek en yüksek önceliğe sahip düğüm(v). Bu yaklaşım işe yarıyor neredeyse aynı çekirdek dilimleriyle iyi, ancak düzgün şekilde çalışmıyor Dengesiz konfigürasyonlarda düğümlerin önemini yakalayın. Örneğin, eğer Avrupa ve Çin'in her biri 3 katkı sağlıyorsa her çoğunluk için düğümler, ancak Çin 1.000 düğüm ve Avrupa 4 çalıştırıyorsa, o zaman Çin %99,6 ile en yüksek öncelikli düğüme sahip olacak zamanın. Bu nedenle dilim ağırlığı kavramını tanıtıyoruz; ağırlık(u,v) ∈[0, 1] u düğümünün çekirdek dilimlerinin kesridir v düğümünü içeren. U düğümü yeni bir lider seçerken, yalnızca aşağıdaki şekilde tanımlanan komşuları dikkate alır: komşular(u) = { v | H0(v) < hmax · ağırlık(u,v) } Daha sonra bir düğüm boş bir lider kümesiyle başlar ve her birinde round ona en yüksek değere sahip komşulardaki (u) v düğümünü ekler öncelik(v). Eğer komşular seti herhangi bir turda boşsa, u bunun yerine en düşük H0(v)/ağırlık(u,v) değerine sahip düğümü ekler.
SCPの正式な検証
設計ミスを排除するために、SCP の安全性を正式に検証しました および liveness プロパティ ([65] を参照)。具体的に検証したところ、 絡み合ったノードは決して意見が一致せず、以下で説明する条件下では、無傷のセットのすべてのメンバーが最終的に決定するということです。興味深いことに、検証の結果、 SCPが生存を保証する条件は微妙ですが、 そして当初考えられていたよりも強力です [68]: 以下で説明するように、 意図せずにタイミングを操作する悪意のあるノード プロトコルから逸脱すると、手動で削除する必要がある場合があります クォーラムスライスから。
SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 証明された特性がすべての可能な状況に当てはまることを確認するため FBA の構成と実行については、任意のものを考慮します。 任意のローカル構成を持つノードの数。これ これには、結合されていないそのままのセットを含むシナリオや、無限に長い実行が発生する可能性のあるシナリオが含まれます。欠点は、私たちが パラメータ化されたパラメータを検証するという困難な問題に直面しています 無限状態システム。 検証を扱いやすくするために、Ivy [69] と [82] の方法論を使用して、一次ロジック (FOL) で SCP をモデル化しました。 検証プロセスは、帰納的推測を手動で提供することで構成され、その後、それが自動的にチェックされます。 アイビー。 SCP の FOL モデルは、SCP のいくつかの側面を要約しています。 FOL での取り扱いが難しい FBA システム(例: カスケード定理を公理として採用します)ので、次を検証します。 Isabelle/HOL [75] を使用した抽象化の健全性。 FOLで検証問題を表現した後、帰納的不変量を与えることで安全性を検証します。帰納的 不変式は、約 10 個の 1 行の推測で構成されます 150 行のプロトコル仕様。次に、Ivy の線形時間論理で SCP の活性プロパティを指定し、 生存性を安全性まで減らす [80, 81] の生存性を減らす 検証問題から帰納法を見つける問題へ 不変。 SCP の安全性は比較的簡単ですが、 証明してください、SCP の生存に関する議論ははるかに複雑であり、 約 150 の単一行の不変式で構成されます。 生きていることを証明するには、 SCP が終了を保証する前提。私たちは当初、無傷のセットをすべて削除した場合に常に終了すると考えていました。 メンバーはスライス [68] から障害のあるノードを削除しました。しかし、これでは不十分であることが判明しました。 完全ではありません) I can のメンバーのクォーラム内のノード。 障害ノードの影響、完了による終了を防止 投票終了直前に定足数に満たないため、 I のメンバーは、次の投票で x の異なる値を選択します。 したがって、非公式には次のように仮定する必要があります。 I のメンバーのクォーラム内の各ノードは、最終的に次のいずれかを実行します。 タイムリーになるか、十分な期間メッセージをまったく送信しません。実際には、これは、I のメンバーが 条件が整うまでスライスを調整する必要があります。これ この問題は FBA システムに固有のものではありません: Losa et al. [47] 現在 活性が厳密に弱いプロトコルに依存するプロトコル スライスから障害のあるノードを削除する必要がなく、最終的には同期が行われ、最終的にはリーダーが選出されると仮定します。
SCP'nin resmi doğrulaması
Tasarım hatalarını ortadan kaldırmak için SCP'nin güvenliğini resmi olarak doğruladık ve canlılık özellikleri (bkz. [65]). Özellikle, doğruladık iç içe geçmiş düğümlerin hiçbir zaman anlaşmazlığa düşmemesi ve aşağıda tartışılan koşullar altında, sağlam bir kümenin her üyesinin eninde sonunda karar vermesi. İlginç bir şekilde, doğrulama şunu ortaya çıkardı: SCP'nin canlılığı garanti ettiği koşullar incelikli, ve başlangıçta düşünülenden daha güçlü [68]: aşağıda tartışıldığı gibi, Aksi halde zamanlamayı değiştiren kötü niyetli düğümler protokolden sapmanın manuel olarak tahliye edilmesi gerekebilir çekirdek dilimlerinden.
SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. Özelliklerin mümkün olan her durumda geçerli olmasını sağlamak için FBA yapılandırmaları ve uygulamalarının keyfi olduğunu düşünüyoruz keyfi yerel konfigürasyonlara sahip düğümlerin sayısı. Bu ayrık bozulmamış kümelerin yanı sıra potansiyel olarak sonsuz uzunlukta yürütmelere sahip senaryoları içerir. Dezavantajımız şu ki Parametrelendirilmiş bir doğrulamanın zorlu sorunuyla karşı karşıya sonsuz durum sistemi. Doğrulamayı izlenebilir kılmak için, Ivy [69] ve [82] metodolojisini kullanarak SCP'yi birinci dereceden mantıkta (FOL) modelledik. Doğrulama süreci, daha sonra otomatik olarak kontrol edilen tümevarımsal varsayımların manuel olarak sağlanmasından oluşur. Sarmaşık. SCP'nin FOL modeli bazı yönleri özetliyor FOL'de yönetimi zor olan FBA sistemleri (örn. kaskad teoremi bir aksiyom olarak alınır), bu nedenle şunu doğrularız: Isabelle/HOL [75] kullanarak soyutlamanın sağlamlığı. Doğrulama problemini FOL'de ifade ettikten sonra, endüktif bir değişmez sağlayarak güvenliği doğruluyoruz. endüktif değişmez yaklaşık olarak bir düzine tek satırlık varsayımdan oluşur 150 satırlık protokol spesifikasyonu. Daha sonra Ivy'nin Doğrusal Zamansal Mantığı'nda SCP'nin canlılık özelliklerini belirliyoruz ve Canlılığı azaltmak için canlılıktan güvenliğe azalma [80, 81] doğrulama probleminden tümevarım bulma problemine değişmez. SCP'nin güvenliği nispeten basit olsa da SCP'nin canlılık argümanının çok daha karmaşık olduğunu kanıtlayın ve yaklaşık 150 tek satırlı değişmezden oluşur. Canlılığın kanıtlanması, kesin bir resmileştirmeyi gerektiriyordu. SCP'nin fesih sağladığı varsayımlar. Başlangıçta bozulmamış bir seti her zaman sonlandıracağımı düşündük. üyeler hatalı düğümleri dilimlerinden kaldırdı [68]. Ancak bunun yetersiz olduğu ortaya çıktı: iyi huylu (ama (sağlam değil) düğümün bir üye yeter sayısı altında, hatalı düğümlerin etkisi, tamamlanarak sonlandırmayı önleyin oylamanın bitiminden hemen önce yeter sayının sağlanması, dolayısıyla I üyeleri bir sonraki oylamada x'in farklı değerlerini seçecek. Bu nedenle ayrıca gayri resmi olarak şunu varsaymalıyız: I üyesinin yeterli çoğunluğundaki her düğüm sonunda zamanında geliyor veya yeterli bir süre boyunca hiç mesaj göndermiyor. Uygulamada bu, I üyelerinin durum devam edene kadar dilimlerini ayarlamaları gerekir. Bu sorun FBA sistemlerine özgü değildir: Losa ve ark. [47] mevcut canlılığı kesinlikle zayıf olana bağlı olan bir protokol hatalı düğümleri dilimlerden çıkarmaya gerek kalmadan, yalnızca nihai senkronizasyon ve nihai lider seçimi varsayımları.
決済ネットワーク
このセクションでは、SCP 上に複製されたステート マシン [88] として実装された Stellar の支払いネットワークについて説明します。 5.1 台帳モデル Stellar の台帳は、アカウントの抽象化を中心に設計されています ( よりコイン中心の未使用トランザクション出力とは対照的です または Bitcoin の UTXO モデル)。台帳の内容は次のもので構成されます。 アカウント、トラストライン、 オファー、およびアカウントデータ。 アカウントは、資産を所有および発行する主体です。それぞれ アカウントは公開キーによって名前が付けられます。デフォルトでは、対応する秘密キーでアカウントのトランザクションに署名できます。 ただし、アカウントを再構成して、他の署名者を追加し、アカウントに名前を付けるキーの認証を解除することはできます。 複数の署名者を必要とする「multisig」オプション。各アカウント シーケンス番号 (トランザクションに含まれる) も含まれます。 リプレイを防ぐため)、いくつかのフラグ、および「ネイティブ」のバランス XLM と呼ばれる、事前に採掘された仮想通貨で、被害を軽減することを目的としています。 一部のサービス拒否攻撃を防止し、市場形成を促進します 中立通貨として。 トラストラインは、発行された資産の所有権を追跡します。 発行アカウントと短いアカウントからなるペアで名前が付けられます。 資産コード (例: 「USD」または「EUR」)。各トラストラインは次のように指定します 口座、資産、その資産の口座残高、 それを超えると残高が上昇できない制限と、いくつかのフラグ。 アカウントは、次の方法で資産の保有に明示的に同意する必要があります。 トラストラインを作成し、スパマーのサドルを防止します 不要な資産を含むアカウント。 顧客確認 (KYC) 規制により、多くの金融機関は誰の預金を保有しているかを把握する必要があります。 たとえば写真付き身分証明書を確認することによって。準拠するために、発行者は設定できます アカウントにオプションの auth_reqired フラグを設定し、発行するアセットの所有権を承認されたアカウントに制限します。 このような認可を与えるために、発行者は認可された権限を設定します。 顧客のトラストラインにフラグを立てます。 オファーはアカウントの取引意欲に対応します 特定の資産の一定量を、特定の時点で別の資産に割り当てる 注文簿上の価格。それらは自動的に照合され、 買値と売値がクロスすると約定します。最後に、アカウント データはアカウント、キー、値の 3 つの組み合わせで構成され、アカウント所有者が許可します。 小さなメタデータ値を公開します。 台帳スパムを防ぐために、最小 XLM 残高があり、 予備と呼ばれます。アカウントの準備金は毎回増加します 関連する元帳エントリと元帳エントリが減少すると減少します 消える(注文が約定またはキャンセルされたとき、または注文が完了したときなど) トラストラインは削除されます)。現在、リザーブは 0.5 XLM 増加します 台帳エントリごとに (〜$0.03)。予備力とは関係なく、 アカウントを削除することで、アカウントの価値全体を取り戻すことが可能 AccountMerge オペレーションを使用してこれを実行します。 図 3 に示すレジャー ヘッダーには、グローバル属性が保存されます。 元帳番号、毎の準備金残高などのパラメータ 元帳エントリ、前の元帳ヘッダーの hash (実際には スキップリストを形成するいくつかの hashes)、SCP 出力には以下が含まれます この台帳に適用された新しいトランザクションの hash、 の hash それらのトランザクションの結果 (例: トランザクションの成功または失敗) それぞれ)、およびすべての台帳エントリのスナップショット hash。 スナップショット hash には元帳のすべての内容が含まれているため、 validator は、トランザクションを検証するために履歴を保持する必要はありません。 ただし、予想される数億件にスケールするには アカウントの場合、すべての台帳エントリ テーブルをhash 再設定することはできません。 帳簿を閉じます。また、台帳を移転することは現実的ではありませんStellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル 元帳番号 = 4 H(前のHDR) SCP出力 H(結果) H∗(スナップショット) ... ヘッダー 元帳番号 = 5 H(前のHDR) SCP出力 H(結果) H∗(スナップショット) ... ヘッダー 。 。 。 図 3. 元帳の内容。 H は SHA-256 ですが、H ∗ は H の階層的または再帰的適用を表します。 SCP 出力 前のヘッダー hash にも依存します。 アカウントの作成 新しい口座元帳エントリを作成して資金を投入する アカウントマージ 勘定科目元帳エントリの削除 オプションの設定 アカウントフラグと署名者を変更する お支払い 特定の量の資産を宛先に支払います。アカウント。 パス支払い Payment と同様ですが、別の資産で支払います (上 制限する);最大 5 つの中間資産を指定します オファーの管理 オファー台帳エントリの作成/削除/変更、 -パッシブオファー ゼロスプレッドを可能にするパッシブバリアントを使用 データの管理 アカウントの作成/削除/変更。データ台帳の入力 チェンジトラスト トラストラインの作成/削除/変更 信頼を許可する トラストラインで承認済みフラグを設定またはクリアする バンプシーケンス シーケンスを増加します。アカウントの番号 図 4. 主な台帳操作 ノードが切断されるたびにそのサイズの ネットワークが長すぎます。したがって、スナップショット hash は次のようになります。 hashing と状態調整の両方を最適化するように設計されています。 具体的には、スナップショットは台帳エントリを時間ごとに階層化します。 指数関数的にサイズが大きいコンテナのセットにおける最後の変更の内容 バケットと呼ばれます。バケットの集合はバケットと呼ばれます リストであり、ログ構造のマージツリーとある程度の類似点があります。 (LSM ツリー) [77]。バケット リストはトランザクション処理中に読み取られません (セクション 5.4 を参照)。したがって、特定のデザイン LSM ツリーの側面を緩和することができます。特にランダム キーによるアクセスは必要なく、バケットは読み取られるだけです レベルの結合の一部として順次。バケットのハッシュ化 リストは、マージされる各バケットを hash し、バケット hashes (小さい、 元帳が閉じるたびに参照の固定インデックス hashes)。切断後にバケット リストを調整するにはダウンロードが必要です バケットのみが異なります。 5.2 トランザクションモデル トランザクションは、ソースアカウント、有効性基準、 メモ、および 1 つ以上の操作のリスト。図 4 に、利用可能な操作を示します。各操作にはソース アカウントがあり、 デフォルトはトランザクション全体のデフォルトです。トランザクションは次のことを行う必要があります すべてのソースアカウントに対応するキーで署名されること 手術。マルチシグアカウントではより高度な署名が必要になる場合があります 一部の操作 (SetOptions など) の重み以下 他のもの (AllowTrust など)。 トランザクションはアトミックです。いずれかの操作が失敗した場合、いずれの操作も失敗しません。 彼らは実行します。これにより、多方向の取引が簡素化されます。仮に 発行者は土地権利書を表す資産を作成し、ユーザー A 小さな土地区画と10,000ドルを交換したい B が所有するより大きな土地区画。2 人のユーザーは両方とも署名できます。 3 つの操作を含む 1 つのトランザクション: 2 つのランド 支払いと1ドルの支払い。 トランザクションの主な有効性基準はシーケンス番号であり、これはトランザクションのシーケンス番号より 1 大きい必要があります。 ソースアカウント元帳エントリ。有効なトランザクションの実行 (成功したかどうかに関係なく) シーケンス番号がインクリメントされ、再生が防止されます。初期シーケンス番号には元帳が含まれます 削除した後でも再生を防ぐための上位ビットの数値 そしてアカウントを再作成します。 もう 1 つの有効性基準は、次の場合に関するオプションの制限です。 トランザクションを実行できます。土地とドルへの回帰 上記のスワップでは、A が B より先にトランザクションに署名した場合、A は署名できない可能性があります B が提出する前に 1 年間取引を続けてほしい そのため、トランザクションを無効にする時間制限が設けられる可能性があります 数日後。マルチシグアカウントも設定可能 hash プレイメージの暴露に署名の重要性を与えるため、 これと時間制限を組み合わせることで、アトミックなクロスチェーン取引 [1] が可能になります。 トランザクションのソースアカウントは、XLM でわずかな手数料を支払います。 輻輳がない場合は 10−5 XLM。混雑時には、 運営コストはオランダのオークションによって設定されます。バリデーターは validator は類似しているため、料金による補償はありません マイナーではなく、Bitcoin フルノードに。 XLMを破壊するのではなく、 料金は再利用され、投票によって比例配分されます。 既存の XLM ホルダー、振り返ってみると、 複雑さの価値はありませんでした。 5.3 コンセンサス値 各台帳について、Stellar は SCP を使用してデータ構造に同意します 3 つのフィールド: トランザクション セット hash (hash を含む) 前の元帳ヘッダーの)、終了時間、d アップグレード。 複数の値がノミネートされていることが確認された場合、Stellar はかかります 最も多くの操作を含むトランザクション セット (関係を破る) 合計手数料、次にトランザクション セット hash)、すべての和集合 アップグレード、および最高の終了時間。閉店時間はあくまで 最後の元帳の終了時刻と次の時刻の間の場合に有効です。 存在するため、ノードは無効な時間を指定しません。 アップグレードでは、リザーブ残高、最低運用料金、プロトコル バージョンなどのグローバル パラメーターが調整されます。いつ 指名中に組み合わせた場合、高い料金とプロトコルのバージョン番号が低い料金とプロトコルのバージョン番号に優先します。アップグレードは、連合投票による争奪スペース [34] を通じてガバナンスに影響を与えますが、どちらでもありません 平等主義でも中央集権主義でもありません。各 validator は次のように構成されます 応じて、統治または非統治(デフォルト)のいずれか 運営者がガバナンスに参加したいかどうか。 validator を管理する場合は、次の 3 種類のアップグレードを検討します。 望ましい、有効、および無効 (validator に含まれないもの)
SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 validator コア 地平線 FS DB DB 提出する クライアント クライアント その他のvalidator 図 5. Stellar validator アーキテクチャ 実装方法を知っています)。必要なアップグレードは次のように構成されています 特定の時間にトリガーし、相互に調整することを目的としています。 オペレーター。統治ノードは常に投票して希望するノードを指名します アップグレード、受け入れますが、有効なアップグレードを推薦するために投票はしません (つまり、ブロッキング定足数に従う)、決して投票しないでください。 または無効なアップグレードを受け入れます。非政府validatorのエコー 有効なアップグレードに対する投票、つまり本質的に委任 アップグレードを選択する人がどのようなアップグレードを希望するかについての決定 ガバナンスの役割のために。 5.4 実装 図 5 は、Stellar の validator アーキテクチャを示しています。デーモン stellar-core (約 92k 行の C++、サードパーティ ライブラリを除く) と呼ばれる SCP プロトコルと複製されたステート マシンを実装します。 SCP の値を生成するには、多数の台帳エントリを小さな暗号化に削減する必要があります。 hashes。対照的に、トランザクションの検証と実行 アカウントの状態と注文の照合を検索する必要があります。 最高の価格。両方の機能を効率的に提供するには、ステラコア 台帳の 2 つの表現を保持します。1 つはバケット リストを含む外部表現で、バイナリ ファイルとして保存されます。 効率的に更新し、段階的に再hashすることができます。 SQL データベースの内部表現 (PostgreSQL) 実稼働ノードの場合)。 Stellar-core は、次の内容を含む書き込み専用の履歴アーカイブを作成します。 確認された各トランザクションセットとそのスナップショット バケツ。アーカイブにより、新しいノードが自らブートストラップできるようになります ネットワークに参加するとき。台帳の記録も提供します 歴史 - 歴史を調べることができる場所が必要です 2年前の取引です。履歴は追加専用なので アクセス頻度が低いため、安価な場所に保管できます Amazon Glacier または保存できるサービスなど フラット ファイルを取得します。バリデーターホストは通常、ホストをホストしません。 検証への影響を避けるために独自のアーカイブを作成する 配信履歴からのパフォーマンス。 Stellar-Core をシンプルに保つため、使用することは意図されていません。 アプリケーションによって直接実行され、新しいトランザクションを送信するための非常に狭いインターフェイスのみが公開されます。サポートする クライアントでは、ほとんどの validator が Horizon と呼ばれるデーモンを実行します (〜18k Go の行) を送信するための HTTP インターフェイスを提供します そして取引の学習。 Horizon には読み取り専用アクセス権があります stellar-core の SQL データベース、ホライズンのリスクを最小限に抑える 不安定化する恒星の核。支払い経路検索などの機能はすべて Horizon 内に実装されており、アップグレード可能です 他のvalidatorと調整せずに一方的に。 いくつかのオプションの上位層デーモンがクライアントとなり、エコシステムを完成させます。ブリッジサーバーにより、 Stellar と既存のシステムの統合 (例: 特定のアカウントで受け取ったすべての支払いの通知を投稿する)。あ コンプライアンス サーバーは金融機関にフックを提供します。 送金者と受取人の情報を交換し、承認する 支払いに関して、制裁リストの順守のために。最後に、 フェデレーション サーバーは人間が判読できる名前を実装します。 アカウントのシステム。 6 導入経験 Stellar は数年間で中程度の状態に成長しました 適度に信頼できるフルノードオペレーターの数。ただし、 ノードの構成は、活性を維持するようなものでした(ただし、 安全性) 私たち、Stellar 開発財団に依存していました (自衛隊); SDF が突然失踪した場合、他のノード運営者は 介入して手動で私たちを削除する必要があったでしょう ネットワークを継続するにはクォーラム スライスから削除します。 私たちや他の多くの人々は、SDF の組織的重要性を軽減したいと考えていますが、この目標はその後、ますます優先されるようになりました。 研究者 [58] は、安全性とリスクを区別することなく、ネットワークの集中化を定量化し、公表しました。 活気。多くの通信事業者は積極的な設定調整に対応し、主に通信事業者のサイズを拡大しました。 SDF の重要性を薄めるために定足数を削減する。皮肉なことに、これは生命へのリスクを増大させるだけでした。 2 つの問題が状況を悪化させました。まずは人気の サードパーティの Stellar 監視ツール [5] が体系的に 実際に検証していないため、validator 稼働時間を過大評価しています その恒星コアが稼働していました。これにより、人々は次のことを含めるようになります クォーラム スライス内の信頼性の低いノード。 2番目に、バグです。 ステラコアとは、validator が次の台帳に移動すると、 残りのノードが previ を完了するのに十分に役立ちませんでしたメッセージが失われた場合の台帳。その結果、 ネットワークで 67 分間のダウンタイムが発生し、必要なダウンタイムが発生しました validator 管理者による手動調整で再起動してください。 さらに悪いことに、ネットワークを再起動しようとしているときに、複数のノードで同時に急いで再構成が行われてしまいました。 集団的な構成ミスにより、一部のノードが 分岐すると、それらのノードを手動でシャットダウンする必要があり、 乖離中に受け入れられたトランザクションの再送信。幸いなことに、この相違は発見され、修正されました 迅速に処理され、競合するトランザクションは含まれていませんでしたが、 ネットワークがクォーラム交差を享受できないリスク - 潜在的に矛盾するものを受け入れ続けながら分割する 単に設定ミスによりトランザクションが実行されました この出来事によって、非常に具体的なことが分かりました。 これらの経験を検討すると、2 つの主要な結論が得られました。 および対応する是正措置。Stellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル クリティカル、100% 51% 51% 高、67% 51% 中、67% 51% 低い、67% 51% 51% ... ... ... 51% ... 51% 図 6. バリデータの品質階層。最高品質のノード 最高のしきい値 100% が必要ですが、それより低い品質は 67% のしきい値に設定されます。単一内のノード 組織には単純に 51% の過半数が必要です。 6.1 構成の複雑さと脆弱性 Stellar は、クォーラム スライスを、n 個のエントリとしきい値 k で構成されるネストされたクォーラム セットとして表現します。ここで、k 個のエントリのセットはどれも同じです。 クォーラム スライスを構成します。 n 個のエントリはそれぞれ次のいずれかになります。 validator 公開キー、または再帰的に別のクォーラム セット。 柔軟かつコンパクトでありながら、ネストされたクォーラムを実現 セットは同時にノード演算子に柔軟性を与えすぎ、ガイダンスが少なすぎるため、安全でない (または たとえ無意味な構成であっても。グループ化の基準 ノードをセットに分割し、サブセットを階層に編成します。 しきい値の選択についてはすべて明確さが不十分であり、運用上の失敗の一因となっていました。するかどうかは不明 ネストされたセット階層内の「レベル」を信頼のレベルとして扱います。 または組織、またはその両方。現場での多くの構成 危険性を特定することに加えて、これらの概念を混合しました。 または無意味なしきい値。 したがって、より単純な構成メカニズムを追加しました。 これは、ネストされたクォーラム セットの 2 つの側面を分離します: グループ化 ノードを組織ごとにまとめ、各組織に単純な信頼分類 (低、中、高、または クリティカル)。高位以上の組織には、次のことが求められます。 歴史アーカイブを公開します。新しいシステムは、各組織が 51% のしきい値が設定され、組織はセットにグループ化されます 67% または 100% のしきい値 (グループの品質に応じて)。 各グループは、次の (高品質) グループの 1 つのエントリです。 図 6 に示すように、この単純化されたモデルにより、 構造の両方の点で構成ミスが発生する可能性 合成されたネストされたセットと選択されたしきい値の 各セット。 6.2 構成ミスのプロアクティブな検出 第 2 に、悪影響を観察するのを待って集団的な設定ミスを検出するのでは遅すぎることに気づきました。特に、分岐する可能性のある構成ミスに関しては、 停止よりも深刻な障害モード - ネットワークが必要とする 構成ミスを即座に検出できるため、オペレーターは実際に相違が発生する前に構成を元に戻すことができます。 このニーズに対処するために、ノードの推移閉包内のすべてのピアの集合的な構成状態を継続的に収集し、発散の可能性、つまり素性を検出するメカニズムを validator ソフトウェアに組み込みました。 クォーラム - その集合的な構成内。 6.2.1 クォーラム交差のチェック クォーラム スライスを収集するのは簡単ですが、それらの間で互いに素なクォーラムを見つけるのは、NP にとって非常に困難です [62]。ただし、私たちが採用したのは、 一連のアルゴリズムヒューリスティックと大文字小文字の区別ルール Lachowski [62] によって提案された、典型的なインスタンスをチェックする 問題の解決は、 最悪の場合のコスト。実際的に言えば、現在のネットワークは クォーラム スライスの推移的クロージャは 20 ~ 30 程度です ノードを作成し、Lachowski の最適化を使用して、通常は次のチェックを行います。 単一の CPU 上で数秒で完了します。必要が生じた場合 パフォーマンスを向上させるために、検索を並列化する場合があります。 6.2.2 危険な構成のチェック ネットワークが素のクォーラムを許可していることを検出することがステップです 正しい方向に進んでいるが、危険を知らせるのが不快なほど遅い このような重大な問題に対して。理想的には、ネットワークの集合的な設定が行われたときにノード オペレータが警告を受け取るようにしたいと考えています。 単に危険な状態に近づいているだけです。 したがって、クォーラム交差チェッカーを拡張しました。 臨界と呼ばれる状態を検出するには、現在の状態が 集合的な設定は、設定ミスが 1 つあるだけです バラバラな定足数を認める州。重大度を検出するには、 チェッカーは、各組織の構成を、シミュレートされた最悪の構成ミスに繰り返し置き換えます。 結果に対して内部クォーラム交差チェッカーを再実行します。 このような重大な構成ミスが一歩手前に存在する場合 現在の状態から、ソフトウェアは警告を発行し、 組織が構成ミスのリスクを引き起こしていると報告しています。 これらの変更により、オペレーターのコミュニティに 2 つの層が与えられます。 最悪の事態を防ぐための通知と指導 集団的な設定ミス。
Ödeme ağı
Bu bölümde, Stellar'nin, SCP'nin üzerinde kopyalanmış bir durum makinesi [88] olarak uygulanan ödeme ağı açıklanmaktadır. 5.1 Defter modeli Stellar'in defteri, hesap soyutlaması etrafında tasarlanmıştır (içinde daha çok madeni para merkezli harcanmamış işlem çıktısının aksine veya UTXO modelinin Bitcoin modeli). Defterin içeriği şunlardan oluşur: Dört farklı türden defter girişleri kümesi: hesaplar, güven hatları, teklifler ve hesap verileri. Hesaplar, varlıkların sahibi olan ve ihraç eden müdürlerdir. Her biri hesap genel anahtarla adlandırılır. Varsayılan olarak karşılık gelen özel anahtar, hesap için işlemleri imzalayabilir. Ancak hesaplar, başka imzalayanlar eklemek ve hesabı adlandıran anahtarın yetkisini kaldırmak için yeniden yapılandırılabilir. Birden fazla imzalayanın kullanılmasını gerektiren "multisig" seçeneği. Her hesap ayrıca şunları içerir: bir sıra numarası (işlemlere dahil edilir) tekrarı önlemek için), bazı bayraklar ve “yerel” bir denge hafifletmeyi amaçlayan, XLM adı verilen önceden çıkarılmış kripto para birimi bazı hizmet reddi saldırıları ve pazar oluşumunu kolaylaştırma nötr bir para birimi olarak. Trustlines, ihraç edilen varlıkların sahipliğini takip eder. veren hesap ve kısa bir hesaptan oluşan bir çift tarafından adlandırılır. varlık kodu (ör. "USD" veya "EUR"). Her güven hattı şunları belirtir: bir hesap, bir varlık, hesabın o varlıktaki bakiyesi, bir dengenin üzerine çıkamayacağı limit ve bazı bayraklar. Bir hesap, bir varlığın elde tutulmasına açıkça izin vermelidir: Spam gönderenlerin engellenmesini önleyen bir güven hattı oluşturmak İstenmeyen varlıklara sahip hesaplar. Müşterinizi Tanıyın (KYC) düzenlemeleri, birçok finans kuruluşunun kimin mevduatını tuttuğunu bilmesini gerektirir. örneğin fotoğraflı kimliği kontrol ederek. Uyumluluk için, ihraççılar ayarlayabilir Hesaplarında isteğe bağlı bir auth_reqired bayrağı yer alıyor ve verdikleri varlıkların sahipliğini yetkili hesaplarla sınırlıyorlar. Bu yetkiyi vermek için ihraççı, yetkili bir Müşterilerin güven hatlarını işaretleyin. Teklifler bir hesabın takas yapma isteğine karşılık gelir Belirli bir varlık için belirli bir miktardaki bir başka varlığa belirli bir zamanda sipariş defterindeki fiyat; otomatik olarak eşleştirilirler ve alış/satış fiyatları kesiştiğinde doldurulur. Son olarak hesap verileri hesap, anahtar, değer üçlülerinden oluşur ve hesap sahiplerine izin verir. küçük meta veri değerlerini yayınlamak için. Defter spam'ını önlemek için minimum XLM bakiyesi vardır, rezerv denir. Bir hesabın rezervi her biri ile artar ilgili defter girişi ve defter girişi yapıldığında azalır kaybolur (örn. bir sipariş yerine getirildiğinde veya iptal edildiğinde ya da güven hattı silinir). Şu anda rezerv 0,5 XLM artıyor (∼$0,03) defter girişi başına. Rezerv ne olursa olsun, silerek bir hesabın tüm değerini geri almak mümkün Bunu bir AccountMerge işlemiyle yapın. Şekil 3'te gösterilen genel muhasebe başlığı genel nitelikleri saklar: bir defter numarası, rezerv bakiyesi gibi parametreler defter girişi, önceki defter başlığının hash'si (aslında birkaç hashes bir atlama listesi oluşturur), SCP çıktısı şunları içerir: bu deftere hash yeni işlem uygulandı, hash bu işlemlerin sonuçları (örneğin, başarı veya başarısızlık) her biri) ve tüm genel muhasebe girişlerinin anlık görüntüsü hash. hash anlık görüntüsü tüm defter içeriğini içerdiğinden, validators'nin işlemleri doğrulamak için geçmişi saklamasına gerek yoktur. Ancak yüz milyonlarca beklenen sayıya ölçeklendirmek için hesaplarda, her hesapta tüm genel muhasebe giriş tablolarını yenidenhash yeniden yapamıyoruz. defter yakın. Ayrıca defter aktarımı pratik değildir.Stellar ile hızlı ve güvenli global ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada defter numarası = 4 H(önceki hdr) SCP çıkışı H∗(sonuçlar) H∗(anlık görüntü) ... başlık defter numarası = 5 H(önceki hdr) SCP çıkışı H∗(sonuçlar) H∗(anlık görüntü) ... başlık . . . Şekil 3. Defter içeriği. H, SHA-256'dir; H ∗, H.SCP çıktısının hiyerarşik veya özyinelemeli uygulamasını temsil eder aynı zamanda önceki başlığa da bağlıdır hash. Hesap Oluştur Yeni hesap defteri girişi oluşturun ve finanse edin HesapBirleştirme Hesap defteri girişini sil Seçenekleri Ayarla Hesap işaretlerini ve imzalayanları değiştirme Ödeme Hedefe belirli miktarda varlık ödeyin. kanun. YolÖdeme Ödemeyi beğenin, ancak farklı bir varlıkla ödeme yapın (yukarı sınırlamak için); 5'e kadar aracı varlık belirtin Teklifi Yönet Teklif defteri girişi oluşturma/silme/değiştirme, -PasifTeklif sıfır yayılmaya izin veren pasif değişkenli Verileri Yönet Hesap oluştur/sil/değiştir. veri defteri girişi Güveni Değiştir Güven hattı oluştur/sil/değiştir İzin VerGüven Güven hattında yetkili bayrağını ayarlayın veya temizleyin Çarpma Sırası Sırayı artırın hesaptaki numara Şekil 4. Ana defter işlemleri bir düğümün bağlantısı her kesildiğinde bu boyutta ağ çok uzun süredir. Bu nedenle anlık görüntü hash hem hashing hem de durum uzlaşmasını optimize etmek için tasarlanmıştır. Özellikle, anlık görüntü genel muhasebe girişlerini zamana göre katmanlandırır üstel boyutlu kaplar kümesindeki son değişiklik kovalar denir. Kovaların toplanmasına kova denir listesidir ve log yapılı birleştirme ağaçlarıyla bazı benzerlikler taşır (LSM ağaçları) [77]. Yapılacaklar listesi işlem gerçekleştirilirken okunmaz (bkz. Bölüm 5.4). Bu nedenle belirli bir tasarım LSM ağaçlarının bazı yönleri gevşetilebilir. Özellikle rastgele anahtarla erişim gerekli değildir ve paketler yalnızca okunur seviyelerin birleştirilmesinin parçası olarak sırayla. Kovayı karıştırmak liste, birleştirilirken her bir paket hash'ye tabi tutularak ve hashes paketinin (küçük, her defter kapanışında sabit referans indeksi hashes). Bağlantı kesildikten sonra yapılacaklar listesinin uzlaştırılması, indirmeyi gerektirir yalnızca kovalar farklıdır. 5.2 İşlem modeli Bir işlem kaynak hesaptan, geçerlilik kriterlerinden ve not ve bir veya daha fazla işlemin listesi. Şekil 4'te mevcut işlemler listelenmektedir. Her işlemin bir kaynak hesabı vardır. varsayılan olarak genel işlemin varsayılanıdır. Bir işlem yapılmalı içindeki her kaynak hesaba karşılık gelen anahtarlar tarafından imzalanacaktır. bir operasyon. Çoklu imzalı hesaplar daha yüksek imza gerektirebilir bazı işlemler için ağırlık (SetOptions gibi) ve daha düşük diğerleri için (AllowTrust gibi). İşlemler atomiktir; herhangi bir işlem başarısız olursa hiçbiri idam ederler. Bu, çok yönlü anlaşmaları basitleştirir. varsayalım ki ihraççı, arazi tapularını temsil edecek bir varlık oluşturur ve A kullanıcısı Küçük bir arazi parselini artı 10.000 $'la takas etmek istiyor B'ye ait olan daha büyük arazi parseli. İki kullanıcı da imza atabilir üç işlemi içeren tek bir işlem: iki arazi ödemeler ve bir dolar ödeme. Bir işlemin ana geçerlilik kriteri, işlemin sıra numarasından bir büyük olması gereken sıra numarasıdır. kaynak hesap defteri girişi. Geçerli bir işlemin yürütülmesi (başarılı olsun ya da olmasın) sıra numarasını artırarak tekrar oynatmayı engeller. İlk sıra numaraları defteri içerir Sildikten sonra bile tekrar oynatmayı önlemek için yüksek bitlerdeki sayı ve bir hesabı yeniden oluşturma. Diğer geçerlilik kriteri ise ne zaman yapılacağına ilişkin isteğe bağlı bir sınırdır. bir işlem yürütülebilir. Toprağa ve dolara dönüş yukarıdaki takas, eğer A işlemi B'den önce imzalarsa, A bunu yapmayabilir B'nin göndermeden önce bir yıl boyunca işlemde kalmasını istiyor ve böylece işlemi geçersiz kılan bir zaman sınırı koyabilir birkaç gün sonra. Multisig hesapları da yapılandırılabilir hash ön görüntünün ortaya çıkmasına imza ağırlığı vermek, bu, zaman sınırlarıyla birlikte atomik çapraz zincir ticaretine izin verir [1]. Bir işlemin kaynak hesabı XLM'de önemsiz bir ücret öder, Tıkanıklık olmadığı sürece 10−5 XLM. Sıkışıklık altında, Operasyonların maliyeti Hollanda açık artırmasıyla belirlenir. Doğrulayıcılar validator'lar benzer olduğundan ücretlerle karşılanmıyor madencilere değil, Bitcoin tam düğümlere. XLM'yi yok etmek yerine, ücretler geri dönüştürülür ve oylamayla orantılı olarak dağıtılır geçmişe bakıldığında mevcut XLM sahipleri karmaşıklığa değmedi. 5.3 Konsensüs değerleri Her defter için Stellar, bir veri yapısı üzerinde anlaşmak amacıyla SCP'yi kullanır üç alanlı: hash işlem kümesi (hash dahil) önceki genel muhasebe başlığının), yakın bir zaman, bird yükseltmeleri. Birden fazla değerin aday gösterildiği onaylandığında, Stellar alınır en fazla işlemi içeren işlem seti (bağları koparmak) toplam ücretlere göre, ardından işlem seti hash), hepsinin birleşimi yükseltmeler ve en yüksek kapanış süresi. Yakın bir zaman sadece son defterin kapanış zamanı ile son defterin kapanış zamanı arasında ise geçerlidir. mevcut olduğundan düğümler geçersiz süreleri belirtmez. Yükseltmeler, rezerv bakiyesi, minimum işletim ücreti ve protokol sürümü gibi genel parametreleri ayarlar. Ne zaman aday gösterme sırasında bir araya getirildiğinde, yüksek ücretler ve protokol sürüm numaraları düşük olanların yerini alır. Yükseltmeler, federal oylama mücadele alanı [34] aracılığıyla yönetimi etkiler; ikisi de eşitlikçi ve merkezi değil. Her validator şu şekilde yapılandırılmıştır: göre, yöneten ya da olmayan (varsayılan), operatörünün yönetişime katılmak isteyip istemediğine bağlıdır. validator'leri yönetenler üç tür yükseltmeyi dikkate alır: istenen, geçerli ve geçersiz (validator'nin yapmadığı herhangi bir şey)
SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. validator çekirdek ufuk FS Veritabanı Veritabanı gönder müşteri müşteri diğer validators Şekil 5. Stellar validator mimarisi nasıl uygulanacağını biliyorum). İstenilen yükseltmeler şu şekilde yapılandırılmıştır: arasında koordine edilmesi amaçlanan, belirli bir zamanda tetiklenmesi operatörler. Yönetici düğümler her zaman istenen adaya oy verir yükseltmeleri kabul edin ancak geçerli yükseltmeleri aday göstermek için oy vermeyin (yani, engelleme yeter çoğunluğuna uyun) ve asla oy vermeyin. veya geçersiz yükseltmeleri kabul edin. Yönetim dışı validators echo geçerli bir yükseltme için gördükleri herhangi bir oy, esasen yetki devri tercih edenler için hangi yükseltmelerin istendiğine ilişkin karar bir yönetim rolü için. 5.4 Uygulama Şekil 5, Stellar'nin validator mimarisini göstermektedir. Bir şeytan Stellar-core olarak adlandırılan (∼92k C++ satırı, üçüncü taraf kitaplıkları sayılmaz) SCP protokolünü ve çoğaltılmış durum makinesini uygular. SCP için değer üretmek, çok sayıdaki defter girişini küçük kriptografik girişlere azaltmayı gerektirir hashes. Buna karşılık, işlem doğrulama ve yürütme hesap durumuna ve sipariş eşleşmesine bakmayı gerektirir en iyi fiyat. Her iki işlevi de verimli bir şekilde yerine getirmek için yıldız çekirdeği Defterin iki temsilini tutar: ikili dosyalar olarak saklanan, yapılacaklar listesini içeren harici bir temsil. verimli bir şekilde güncellenebilir ve artımlı olarak yeniden hashed edilebilir ve SQL veritabanındaki dahili bir temsil (PostgreSQL üretim düğümleri için). Stellar-core, aşağıdakileri içeren salt okunur bir geçmiş arşivi oluşturur: onaylanan her işlem seti ve bunların anlık görüntüleri kovalar. Arşiv, yeni düğümlerin kendilerini önyüklemesine olanak tanıyor ağa katıldığınızda. Aynı zamanda bir defter kaydı sağlar tarih—birinin arayabileceği bir yer olması gerekiyor iki yıl önceki işlem. Geçmiş yalnızca ekleme amaçlı olduğundan ve nadiren erişildiği için ucuz yerlerde saklanabilir Amazon Glacier veya depolamaya izin veren herhangi bir hizmet gibi ve düz dosyaları alın. Doğrulayıcı ana bilgisayarlar genellikle barındırmaz Doğrulama üzerinde herhangi bir etkiyi önlemek için kendi arşivleri Hizmet geçmişinden performans. Yıldız çekirdeğini basit tutmak için kullanılması amaçlanmamıştır. doğrudan uygulamalar tarafından sağlanır ve yeni işlemlerin sunulması için yalnızca çok dar bir arayüz sunar. Desteklemek istemcilerde, çoğu validator, Horizon adı verilen bir arka plan programı çalıştırır (∼18k gönderme için bir HTTP arayüzü sağlayan Go satırları) ve işlemlerin öğrenilmesi. Horizon'un salt okunur erişimi var Stellar-core'un SQL veritabanı, ufuk riskini en aza indiriyor yıldız çekirdeğinin istikrarını bozuyor. Ödeme yolu bulma gibi özellikler tamamen ufukta uygulanır ve yükseltilebilir diğer validator'larla koordinasyon olmadan tek taraflı olarak. Birkaç isteğe bağlı üst düzey arka plan programı, ekosistemi tamamlayan, ufuktaki istemcilerdir. Bir köprü sunucusu kolaylaştırır Stellar'nin mevcut sistemlerle entegrasyonu; örneğin, belirli bir hesap tarafından alınan tüm ödemelerin bildirimlerinin yayınlanması. bir uyumluluk sunucusu finansal kurumların Gönderen ve yararlanıcı bilgilerinin değişimi ve onaylanması ödemeler konusunda, yaptırım listelerine uyum için. Son olarak, bir federasyon sunucusu insan tarafından okunabilen bir adlandırma uygular hesaplar için sistem. 6 Dağıtım deneyimi Stellar birkaç yıl boyunca ılımlı bir eyalet haline geldi makul derecede güvenilir tam düğüm operatörlerinin sayısı. Ancak, düğümlerin konfigürasyonları canlılık sağlayacak şekildeydi (ancak güvenliği) bize, yani Stellar Kalkınma Vakfı'na bağlıydı (SDF); SDF aniden ortadan kaybolsaydı, diğer düğüm operatörleri müdahale etmesi ve bizi manuel olarak kaldırması gerekirdi ağın devam etmesi için çekirdek dilimlerinden. Biz ve pek çok kişi SDG'nin sistemik önemini azaltmak istesek de, bu hedef daha sonra artan bir öncelik kazandı. araştırmacılar [58] güvenlik risklerini ayırt etmeden ağın merkezileşmesini ölçtü ve duyurdu. canlılık. Bazı operatörler aktif konfigürasyon ayarlamaları yaparak tepki gösterdiler ve öncelikle kendi SDF'nin önemini azaltmak amacıyla çoğunluk dilimleri; ironik bir şekilde bu yalnızca canlılık riskini artırdı. İki sorun durumu daha da kötüleştirdi. İlk olarak popüler bir üçüncü taraf Stellar izleme aracı [5] sistematik olarak doğrulama yapmayarak validator çalışma süresini olduğundan fazla tahmin ediyorsunuz o yıldız çekirdeği çalışıyordu; bu insanları dahil etmeye yönlendirir çekirdek dilimlerindeki güvenilmez düğümler. İkincisi, bir hata yıldız çekirdeği, validator bir sonraki deftere taşındığında anlamına gelir, kalan düğümlerin önceki işlemi tamamlamasına yeterince yardımcı olmadıMesajların kaybolması durumunda büyük defter. Sonuç olarak, ağda 67 dakikalık kesinti yaşandı ve gerekli yeniden başlatmak için validator yöneticiler tarafından manuel koordinasyon. Daha da kötüsü, ağı yeniden başlatmaya çalışırken, birden çok düğümde eş zamanlı ve aceleyle yapılan yeniden yapılandırmalar ortaya çıktı bazı düğümlerin çalışmasına izin veren toplu bir yanlış yapılandırmada bu düğümlerin manuel olarak kapatılmasını gerektiren ve Farklılaşma sırasında kabul edilen işlemlerin yeniden sunulması. Neyse ki bu farklılık fark edildi ve düzeltildi hızlı bir şekilde ve birbiriyle çelişen işlemler içermedi, ancak ağın çekirdek kesişiminden yararlanamama riski— potansiyel olarak çelişkili olanı kabul etmeye devam ederken bölünme yanlış yapılandırma nedeniyle yapılan işlemler bu olay çok somut. Bu deneyimleri gözden geçirmek iki önemli sonuca yol açtı ve ilgili düzeltici eylemler.Stellar ile hızlı ve güvenli küresel ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Kritik, %100 %51 %51 Yüksek, %67 %51 Orta, %67 %51 Düşük, %67 %51 %51 ... ... ... %51 ... %51 Şekil 6. Doğrulayıcı kalite hiyerarşisi. En yüksek kalitede düğümler %100'lük en yüksek eşiği gerektirirken, daha düşük kaliteler %67 eşiğine göre yapılandırılmıştır. Tek bir düğüm içindeki düğümler organizasyon için %51'lik basit bir çoğunluk gerekiyor. 6.1 Yapılandırma karmaşıklığı ve kırılganlığı Stellar çekirdek dilimlerini, n giriş ve k eşiğinden oluşan iç içe çekirdek kümeleri olarak ifade eder; burada herhangi bir k giriş kümesi vardır yetersayı dilimi oluşturur. O zaman n girişin her biri ya bir validator genel anahtarı veya yinelemeli olarak başka bir çekirdek kümesi. Esnek ve kompakt olmasına rağmen iç içe geçmiş bir çoğunluk elde ettik kümeler aynı anda düğüm operatörlerine çok fazla esneklik ve çok az rehberlik sağlıyordu: güvenli olmayan (veya hatta saçma) konfigürasyonlar. Gruplandırma kriterleri alt kümeleri bir hiyerarşi halinde düzenlemek için düğümleri kümeler halinde ve Eşiklerin seçimine ilişkin hususların tümü yeterince açık değildi ve operasyonel başarısızlıklara katkıda bulundu. yapılıp yapılmayacağı belli değildi İç içe geçmiş hiyerarşideki bir "düzeyi" güven düzeyi olarak ele alın, veya bir kuruluş veya her ikisi; sahada birçok konfigürasyon Tehlikeli olanı belirtmenin yanı sıra bu kavramları karıştırdı veya anlamsız eşikler. Bu nedenle daha basit bir yapılandırma mekanizması ekledik iç içe çekirdek kümelerinin iki yönünü ayıran şey: gruplama düğümlerin kuruluşa göre bir araya getirilmesi ve her kuruluşun basit bir güven sınıflandırmasıyla (düşük, orta, yüksek veya kritik). Üst düzey ve üzeri kuruluşların şunları yapması gerekir: tarih arşivlerini yayınlayın. Yeni sistem, her organizasyonun bir grup olarak temsil edildiği iç içe çekirdek kümelerini sentezler. %51 eşik belirlendi ve kuruluşlar gruplar halinde gruplandırıldı %67 veya %100 eşik değerleri ile (grup kalitesine bağlı olarak). Her grup bir sonraki (daha yüksek kalitede) grupta tek bir giriştir, Şekil 6'da gösterildiği gibi. Bu basitleştirilmiş model, hem yapı açısından yanlış yapılandırma olasılığı Sentezlenen iç içe geçmiş kümelerin ve seçilen eşiklerin her set. 6.2 Yanlış yapılandırmanın proaktif tespiti İkincisi, toplu yanlış yapılandırmanın olumsuz etkilerini gözlemlemeyi bekleyerek tespit etmenin çok geç olduğunu fark ettik. Özellikle farklılık gösterebilecek yanlış yapılandırmalarla ilgili olarak durmaktan daha ciddi bir arıza modu; ağın ihtiyacı var Yanlış yapılandırmayı anında tespit edebilmek, böylece operatörlerin herhangi bir sapma meydana gelmeden önce bunu geri döndürebilmesini sağlamak. Bu ihtiyacı karşılamak için validator yazılımına, düğümün geçişli kapanışındaki tüm eşlerin kolektif konfigürasyon durumunu sürekli olarak toplayan ve sapma potansiyelini (yani ayrıklığı) tespit eden bir mekanizma oluşturduk. yetersayılar - bu kolektif konfigürasyon dahilinde. 6.2.1 Çekirdek kesişimi kontrol ediliyor Çekirdek dilimlerini toplamak kolay olsa da, aralarında ayrık çekirdekleri bulmak eş-NP-zordur [62]. Ancak biz benimsedik bir dizi algoritmik buluşsal yöntem ve vaka eleme kuralları Tipik örnekleri kontrol eden Lachowski [62] tarafından önerildi Sorunun birkaç kat daha hızlı çözülmesi en kötü durum maliyeti. Pratik olarak konuşursak, mevcut ağ çekirdek dilimi geçişli kapanışları 20-30 düzeyindedir düğümleri ve Lachowski'nin optimizasyonlarıyla genellikle kontrol edin tek bir CPU'da birkaç saniye içinde. İhtiyaç ortaya çıkarsa Performansı artırmak için aramayı paralel hale getirebiliriz. 6.2.2 Riskli konfigürasyonların kontrol edilmesi Ağın ayrık yeter çoğunlukları kabul ettiğini tespit etmek bir adımdır doğru yönde, ancak tehlikeyi rahatsız edici derecede geç işaretliyor Böyle kritik bir konu için. İdeal olarak, ağın toplu yapılandırması sırasında düğüm operatörlerinin uyarı almasını isteriz. sadece riskli bir duruma yaklaşıyor. Bu nedenle çekirdek-kesişme denetleyicisini genişlettik kritiklik dediğimiz bir durumu tespit etmek için: mevcut durum kolektif yapılandırma, bir yanlış yapılandırmadan uzaktadır ayrık yeter çoğunlukları kabul eden bir eyalet. Kritikliği tespit etmek için, denetleyici sürekli olarak her kuruluşun yapılandırmasını simüle edilmiş en kötü durum yanlış yapılandırmasıyla değiştirir ve ardından sonuç üzerinde iç çekirdek kesişim denetleyicisini yeniden çalıştırır. Böyle kritik bir yanlış yapılandırmanın bir adım ötede olması durumunda mevcut durumdan itibaren yazılım bir uyarı verir ve Kuruluşun yanlış yapılandırma riski oluşturduğunu bildirir. Bu değişiklikler operatör topluluğuna iki katman kazandırıyor en kötü biçimlere karşı izolasyon sağlamak için bildirim ve rehberlik kolektif yanlış yapılandırma.
評価

Stellar のグローバルな支払いとしての適性を理解するため、 取引ネットワーク、パブリック ネットワークの状態を評価しました そして私的な実験で管理された実験を実行しました ネットワーク。私たちは次の質問に焦点を当てました。 • 実稼働ネットワーク トポロジはどのようなものですか? ブロードキャストされるメッセージの平均数、および SCP はどのようにタイムアウトを経験しますか? • コンセンサスと台帳の更新の遅延はアカウントの数に依存しませんか?SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 • (a) 1 秒あたりのトランザクション (したがって、1 あたりのトランザクション数) の増加によってレイテンシはどのような影響を受けるか 台帳)、および (b) validator ノードの数? • CPU の観点から見たノードの実行コストはいくらですか。 メモリとネットワーク帯域幅は? 決済ネットワークは他のものと比べて取引率が低い 他のタイプの分散システムへ。先頭のblockchain、 Bitcoin および Ethereum、最大 15 トランザクション/秒を確認します。 Stellar 未満。さらに、これらのシステムは、 プルーフ・オブ・ワークではいくつかのブロックがマイニングされるのを待つ必要があるため、トランザクションを安全に確認するには 1 時間かかります。の blockchain 以外の SWIFT ネットワークでは、ピーク日 [14] には 1 秒あたり平均 420 トランザクションしかありませんでした。そこで私たちが選んだのは、 測定値を 5 秒の目標と比較するため 元帳間隔、より積極的な目標。私たちの結果は次のことを示しています レイテンシはこの制限を快適に下回っています。 いくつかの未実装の最適化がまだパイプラインにあります。 7.1 アンカー 取引量で上位の資産には通貨が含まれます (例: 3 USD アンカー、2 CNY)、Bitcoin アンカー、不動産担保証券 token [92]、およびアプリ内通貨 [8]。アンカーが異なれば、ポリシーも異なります。たとえば、1 つの USD アンカー、 Stronghold、auth_reqired を設定し、顧客を保持するすべてのアカウントに対して顧客確認 (KYC) プロセスを要求します。 資産。もう 1 つの AnchorUSD は、誰でも受け取って取引できます 彼らの米ドル(文字通り0.50ドルをメキシコに送金することが可能になります) 5 秒で 0.000001 ドルの手数料がかかります)。ただし、アンカーUSD USDの購入または引き換えにはKYCと手数料が必要です 従来の電信送金を使用します。フィリピンでは、 Coins.ph の入金に対する銀行の規制は緩い 任意の ATM マシン [36] での PHP のキャッシュアウトをサポートします。前述のセキュリティ token とアプリ内通貨に加えて、次のようなさまざまな非通貨 token があります。 商業債券 [22] および炭素クレジット [85、96] からその他 協力を促す token などの難解な資産 車の差し押さえ [35]。 7.2 パブリックネットワーク この記事の執筆時点では、126 個のアクティブなフル ノードがあり、そのうち 66 個は 投票メッセージに署名してコンセンサスに参加します。図7 ([5] によって生成) は、ネットワークを視覚化します。 一方が他方のクォーラム スライスに存在する場合は 2 つのノード、もう一方のクォーラム スライスに存在する場合は 2 つのノード 濃い青の線は双方向の依存性を示します。で センターは、17 の事実上の「ティア 1 validators」からなるクラスターであり、以下によって運営されています。 SDF、SatoshiPay、LOBSTR、COINQVEST、および Keybase。 4 か月前、第 6 節の出来事が起こる前に、 システム的に重要なノードは 15 個あり、そのうち 3 個は一見したところからのノードでした 第一層の組織といくつかのランダムなシングルトン。の グラフもかなり規則性が欠けているように見えました。したがって、新しい構成メカニズムおよび/またはより適切なオペレーターの決定が必要と思われます。 より健全なネットワーク トポロジに貢献します。なし 莫大な資金力(そしてそれに対応する株主) 図 7. クォーラム スライス マップ 義務)、ティア1を5人採用するのは困難だったでしょう ただし、組織は最初からそうなっています。これは定足数を示唆しています スライスはネットワーク ブートストラップで便利な役割を果たします。誰でも実行できます。 重要なプレーヤーになるという目標を持って参加するため、 ペアごとの合意の門番は存在しません。 現在、台帳には 330 万を超えるアカウントがあります。終わった 最近 24 時間で、Stellar のトランザクションは平均 4.5 件で、 1 秒あたり 15.7 回の操作。最近の台帳を確認すると、ほとんどの場合、 トランザクションには単一の操作があるように見えますが、数回ごとに 台帳では、多くの操作を含むトランザクションが見られます。 オファーを管理するマーケットメーカーから来ているようです。の 合意形成と台帳の更新にかかる平均時間は それぞれ1061ミリ秒と46ミリ秒。 99 パーセンタイルは次のとおりです。 2252 ミリ秒と 142 ミリ秒 (前者は 1 秒のタイムアウトを反映) 指名リーダーの選択において)。 SCP のパフォーマンスは次のとおりです。 SCP 以来、1 秒あたりのトランザクションにほとんど依存しません。 任意の多数のトランザクションの hash に同意します。ボトルネックは候補の伝播によって発生する可能性が高くなります 指名、実行、検証中のトランザクション トランザクションとバケットのマージ。まだ必要ありません 複数の CPU コアまたはディスク ドライブ上で Stellar-core のトランザクション処理を並列化します。 また、ブロードキャストされた SCP メッセージの数も評価しました。 本番ネットワーク上で。通常のシングルの場合 リーダーが価値を指名するために選出された場合、私たちは 7 つの論理的価値を期待します ブロードキャストされるメッセージ: 投票して承認する 2 つのメッセージ のみnate ステートメント、受け入れて確認する 2 つのメッセージ 準備ステートメント、受け入れと確認のための 2 つのメッセージ commit ステートメント、そして最後に externalize メッセージ (敗者を支援するために新しい台帳をディスクにコミットした後に送信されます) 追いつきます)。実装はコミット確認を組み合わせます そしてメッセージを最適化として外部化します。 コミット後に値を安全に外部化できます。次に、本番環境 Stellar validator で収集されたメトリクスを分析します。終わった 68 時間にわたって、1 秒あたり 1.3 メッセージが送信されました。 台帳あたりのメッセージは平均して 6 ~ 7 件です。合計は
Stellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル パーセンタイル タイムアウト数 指名 投票 75% 0 0 99% 1 0 マックス 4 1 図 8. 68 時間にわたるレジャーごとのタイムアウト validators によってブロードキャストされるメッセージの数は大きくなります。 フェデレーテッド投票メッセージに加えて、ノードはブロードキャストも行います。 彼らが知ったあらゆる取引。 図 8 は、プロダクションで発生したタイムアウトを示しています。 validator 68 時間にわたって。指名タイムアウトは、 リーダー選出機能の(非)有効性の尺度。投票タイムアウトはネットワークに大きく依存します。 メッセージの遅延の可能性もあります。タイムアウトは一貫しています 発行されるメッセージの数: 6 つのメッセージ 最良のシナリオ、および追加の指名ラウンドが必要な場合は少なくとも 7 つのメッセージ。 7.3 管理された実験 に詰められたコンテナ内で制御された実験を実行しました。 72 GiB の RAM を備えた Amazon EC2 c5d.9xlarge インスタンス、 900 GB の NVMe SSD、および 36 個の vCPU。各インスタンスは 同じ EC2 リージョンにあり、10 Gbps の固定帯域幅がありました。 ストアとして SQLite を使用しました。 (Stellar は PostgreSQL もサポートしています。 ただし、測定にノイズを注入する非同期タスクが含まれます)。 Stellar は、組み込みのランタイム クエリ、generateload、 特定のターゲットで合成負荷を生成できるようにします トランザクション/秒レート。 Stellar はさまざまな機能をサポートしていますが、 オーダーブックやクロスアセットパスなどの取引機能 決済においては、シンプルな決済に注力しました。 トランザクションの確認は複数のステップで構成されているため、 次のそれぞれの測定値を記録しました。 • 指名: 指名から最初の準備までの時間 • 投票: 最初の準備から投票の確認までの時間 投票用紙がコミットされました • 台帳の更新: コンセンサス値を適用する時期 • トランザクション数: 台帳ごとに確認されたトランザクション 私たちの各実験は 3 つのパラメーターによって定義されました。 台帳の口座エントリの数、金額 1 秒あたりに送信される負荷 (XLM 支払いの形式)、 そしてvalidatorの数。 validator ごとに構成しました validator ごとに知るため (最悪のシナリオ) SCP の場合)、クォーラム スライスは単純過半数に設定されます。 (異なるクォーラムの数を最大化するため)。 ベースライン ベースライン実験では Stellar を測定しました 100,000 アカウント、4 つの validator、および負荷生成 100 トランザクション/秒のレート。台帳ごとに平均 507 件のトランザクションが観察され、標準偏差は 49 でした。 (9.7%)。トランザクションがドロップされなかったことに注意してください。わずかな 105 106 107 0 500 1,000 1,500 2,000 アカウント レイテンシ[ミリ秒] 台帳の更新 投票 指名 図 9. アカウント数の増加に伴う待ち時間 差異は、ロード ジェネレーターのスケジュール制限によるものです。台帳ごとのトランザクション数が観察されました。 台帳を考慮すると、負荷生成率と一致していました 5秒ごとに閉まります。指名、投票、台帳 アップデートでは、平均レイテンシが 82.53 ミリ秒、95.96 ミリ秒、 それぞれ174.08ミリ秒。指名のレイテンシーが観察されました 99 パーセンタイルは常に 61 ミリ秒未満ですが、場合によっては 最初のステップに相当する約 1 秒のスパイク リーダー選択のタイムアウト機能で。 ベースラインのパフォーマンスを考慮して、その影響を調べました。 各テスト設定パラメータを変更します。 アカウント 図 9 のデータは、Stellar がスケールすることを示唆しています。 アカウントの数も増えます。テストの生成 バケットの作成と、アカウントの作成に時間がかかるプロセスになりました。 マージにより、単にデータベースにデータを追加することができなくなりました SQL 経由でアカウントを直接使用します。そこで私たちは、 最大 50,000,000 アカウントを対象とした実験。あるうちに コンセンサスと台帳更新の遅延への影響を最小限に抑え、 アカウントを増やすと、次のようなオーバーヘッドが発生することに注意してください。 バケットを結合すると、サイズが大きくなります。 トランザクションレート 取引レートは金額に影響を与えます validator 間のトラフィック マルチキャスト、各台帳に含まれるトランザクションの数、および最上位のサイズ バケツ。トランザクションの増加による影響を理解するため 負荷に応じて、100,000 のアカウントと 4 つの validator を使用して実験を実行しました。 図 10 は、コンセンサス レイテンシーの緩やかな増加を示しています。 一方、大部分の時間は台帳の更新に費やされました。 当然のことですが、トランザクション セットのサイズが大きくなるにつれて、 データベースにコミットするのに時間がかかります。また、 台帳更新の遅延は実装に大きく依存します。 データベースの選択によって影響を受けます。 バリデータノード tierone validators の数がどのように増加するかを確認するにはパフォーマンスに影響を与えるため、実験を実行しました 100,000 のアカウント、100 トランザクション/秒、validator の数は 4 ~ 43 で、すべての validator が表示されました。 すべての validator のクォーラム スライス内。より小さいクォーラム スライスは、 パフォーマンスへの影響が少なくなります。SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル ロカバら。 100 150 200 250 300 350 0 500 1,000 1,500 2,000 ロード [トランザクション/秒] レイテンシ[ミリ秒] 台帳の更新 投票 指名 図 10. トランザクション負荷の増加に伴うレイテンシ 10 20 30 40 0 500 1,000 1,500 2,000 バリデーター レイテンシ[ミリ秒] 台帳の更新 投票 指名 図 11. ノード数の増加に伴うレイテンシ ネットワーク上の検証ノードの数の変更 交換される SCP メッセージの数に影響を与えるだけでなく、 推薦中の潜在的な値の数。図11 は、指名時間の増加率が比較的小さいことを示しています。 データは投票がボトルネックであることを示唆していますが、 スケーリングに関する多くの問題は、改善することで解決できると考えています。 Stellar のオーバーレイ ネットワークを使用してネットワーク トラフィックを最適化します。として 予想通り、台帳更新の遅延は独立したままでした ノードの数。 成約率 最後に、台帳が確認される頻度と、Stellar が 5 秒の目標を達成するかどうかを測定することで、Stellar のエンドツーエンドのパフォーマンスを測定したいと考えました。 トランザクションを削除します。平均的な元帳のクローズが観察されました アカウントの増加に伴い、5.03 秒、5.10 秒、5.15 秒の時間になりました それぞれ、エントリ、トランザクション レート、ノード数です。 結果は、Stellar が元帳を一貫してクローズできることを示唆しています 高負荷時。 7.4 validator を実行しています Stellar の重要な特徴の 1 つは、コストが低いことです。 validator を実行します。アンカーは実行 (または契約) する必要があります。 validators でファイナリティを強制します。 SDF は 3 つの本番 validator を実行し、すべて 2 つのコアを持つ c5.large AWS インスタンス上で実行します。 4 GiB の RAM および Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz プロセッサ。 1 台でのリソース使用状況の検査 これらのマシンのうち、Stellar プロセスを観察しました。 CPU の約 7% とメモリ 300 MiB。ネットワーク トラフィックに関しては、ピアへの接続数が 28、クォーラム サイズが 1 つあります。 34 の場合、受信速度と送信速度は 2.78 Mbit/s でした。 それぞれ2.56Mビット/秒。このようなものを実行するにはハードウェアが必要です プロセスが安価です。この場合、コストは 0.054 ドル/時間です。 または月額約40ドル。 7.5 今後の取り組み これらの実験は、Stellar が 1 ~ 2 個の注文を簡単にスケールできることを示しています 今日のネットワーク使用量を超える規模です。なぜなら、 これまでのところ、パフォーマンスに対する要求は非常に控えめです。Stellar を使用して多くの直接的な最適化の余地を残します。 有名なテクニック。例: トランザクションと SCP メッセージは素朴なフラッディングを使用して validators によってブロードキャストされます プロトコルを使用しますが、理想的には、より効率的で構造化されたプロトコルを使用する必要があります。 ピアツーピア マルチキャスト [30]。さらに、データベースを多用する 台帳の更新時間は、標準のバッチ処理およびプリフェッチ技術によって改善できます。
Değerlendirme

Stellar'nin küresel ödeme olarak uygunluğunu anlamak ve ticaret ağı, genel ağın durumunu değerlendirdik ve özel bir deneyde kontrollü deneyler yürüttük ağ. Aşağıdaki sorulara odaklandık: • Üretim ağı topolojisi neye benziyor? Ortalama kaç mesaj yayınlanıyor ve SCP zaman aşımlarını nasıl yaşıyor? • Konsensüs ve defter güncelleme gecikmeleri hesap sayısından bağımsız mı kalıyor?SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. • (a) Saniye başına işlemlerin (ve dolayısıyla saniye başına işlemlerin) artmasından gecikmeler nasıl etkilenir? defter) ve (b) validator düğümlerin sayısı? • Bir düğümü çalıştırmanın CPU açısından maliyeti nedir, bellek ve ağ bant genişliği? Ödeme ağları karşılaştırıldığında düşük işlem oranlarına sahiptir diğer dağıtılmış sistem türlerine. Önde gelen blockchain'ler, Bitcoin ve Ethereum, saniyede 15 işleme kadar onaylayın, Stellar'den az. Üstelik bu sistemlerin çalışması dakikalar sürüyor. Bir işlemin güvenli bir şekilde onaylanması bir saat sürer, çünkü iş kanıtı birkaç bloğun çıkarılmasını beklemeyi gerektirir. blockchain olmayan SWIFT ağı, en yoğun olduğu gün olan [14]'de saniyede yalnızca 420 işlem gerçekleştirdi. Bu nedenle seçtik ölçümlerimizi 5 saniyelik hedefle karşılaştırmak için defter aralığı, daha agresif bir hedef. Sonuçlarımız gösteriyor gecikmelerin rahatlıkla bu sınırın altında olduğu hala geliştirilme aşamasında olan birkaç uygulanmamış optimizasyon. 7.1 Çapalar Hacim bazında en çok işlem gören varlıklar arasında para birimi de yer alıyor (ör. 3 USD) çapa, 2 CNY), bir Bitcoin çapa, gayrimenkul destekli bir menkul kıymet token [92] ve uygulama içi para birimi [8]. Farklı çapaların farklı politikaları vardır. Örneğin, bir USD çapası, Stronghold, auth_reqired'i ayarlar ve müşterilerini tanıyan her hesap için müşterini tanı (KYC) süreci gerektirir. varlıklar. Bir diğeri, AnchorUSD, herkesin alıp ticaret yapmasına izin verin USD'leri (Meksika'ya 0,50 $ göndermeyi tam anlamıyla mümkün kılıyor) 0,000001 ABD Doları ücretle 5 saniye içinde). Ancak AnchorUSD USD'lerini satın almak veya kullanmak için KYC ve ücret gerektirir geleneksel banka havaleleriyle. Filipinler'de, nerede banka düzenlemeleri gelen ödemeler konusunda daha gevşektir, coin.ph PHP'nin herhangi bir ATM makinesinden [36] paraya çevrilmesini destekler. Yukarıda bahsedilen güvenlik token ve uygulama içi para birimine ek olarak, para birimi olmayan tokens aralığı da vardır: ticari tahviller [22] ve karbon kredileri [85, 96] daha fazlasına token gibi ortak çalışmayı teşvik eden ezoterik varlıklar arabanın yeniden ele geçirilmesi [35]. 7.2 Genel ağ Bu yazının yazıldığı an itibariyle 126 aktif tam düğüm mevcut olup bunların 66'sı oylama mesajlarını imzalayarak fikir birliğine katılın. Şekil 7 ([5] tarafından oluşturulmuştur) ağı aralarında bir çizgiyle görselleştirir biri diğerinin çekirdek dilimlerinde görünüyorsa iki düğüm ve iki yönlü bağımlılığı göstermek için daha koyu mavi çizgi. Şunda merkez, tarafından yönetilen 17 fiili "birinci kademe validators"den oluşan bir kümedir. SDF, SatoshiPay, LOBSTR, COINQVEST ve Keybase. Dört ay önce, Bölüm 6'daki olaylardan önce, orada 15 sistemik olarak önemli düğüm vardı: 3'ü görünüşte birinci kademe organizasyonlar ve birkaç rastgele singleton. grafik de çok daha az düzenli görünüyordu. Dolayısıyla yeni konfigürasyon mekanizması ve/veya daha iyi operatör kararları görünmektedir. daha sağlıklı bir ağ topolojisine katkıda bulunmak. olmadan büyük mali kaynaklar (ve ilgili hissedarlar) Şekil 7. Çekirdek dilim haritası yükümlülükler), 5. kademeyi işe almak zor olurdu Ancak başlangıçtan itibaren organizasyonlar. Bu yeter sayıyı öneriyor dilimler ağ önyüklemesinde yararlı bir rol oynar: herkes yapabilir önemli bir oyuncu olma hedefiyle katılın çünkü ikili anlaşmanın bekçileri yoktur. Şu anda defterde 3,3 milyondan fazla hesap var. bitti son 24 saatlik dönemde Stellar ortalama 4,5 işlem gerçekleştirdi ve Saniyede 15,7 işlem. Son defterlerin incelenmesi, çoğu işlemlerin tek bir işlemi varmış gibi görünürken, her birkaç Defterlerde birçok işlemi içeren işlemleri görüyoruz teklifleri yöneten piyasa yapıcılardan geliyor gibi görünüyor. Fikir birliğine varmak ve defteri güncellemek için ortalama süreler Sırasıyla 1061 ms ve 46 ms. 99. yüzdelik dilimler şunlardı: 2252 ms ve 142 ms (ilki 1 saniyelik zaman aşımını yansıtıyor) adaylık lideri seçiminde). SCP'nin performansının şu şekilde olduğunu unutmayın: SCP'den beri çoğunlukla saniyedeki işlemlerden bağımsızdır keyfi olarak birçok işlemden oluşan hash üzerinde anlaşır. Adayın propagandası nedeniyle darboğazların ortaya çıkma olasılığı daha yüksektir Aday gösterme, yürütme ve doğrulama sırasındaki işlemler işlemler ve paketlerin birleştirilmesi. Henüz ihtiyacımız olmadı Stellar-core'un işlem işlemlerini birden fazla CPU çekirdeği veya disk sürücüsü üzerinden paralelleştirmek için. Ayrıca yayınlanan SCP mesajlarının sayısını da değerlendirdik üretim ağında. Normal durumda tek Bir değeri aday göstermek için seçilen liderden yedi mantıksal değer bekliyoruz yayınlanacak mesajlar: oylanacak ve kabul edilecek iki mesaj bir isimnate beyanı, kabul edilecek ve onaylanacak iki mesaj bir hazırlık ifadesi, kabul etmek ve onaylamak için iki mesaj bir taahhüt beyanı ve son olarak bir dışsallaştırma mesajı (başıboş kalanlara yardım etmek için diske yeni bir defter işlendikten sonra gönderilir) yetişin). Uygulama onaylama taahhüdünü birleştirir ve mesajları bir optimizasyon olarak dışsallaştırın, çünkü Bir değeri taahhüt edildikten sonra dışsallaştırmak güvenlidir. Daha sonra Stellar validator numaralı üretimde toplanan metrikleri analiz ederiz. bitti 68 saat boyunca saniyede 1,3 mesaj gönderildi, Defter başına ortalama 6-7 mesaj. Toplamın olduğunu not ediyoruz
Stellar ile hızlı ve güvenli küresel ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Yüzdelik dilim Zaman Aşımı Sayısı Adaylık oylama %75 0 0 %99 1 0 Maksimum 4 1 Şekil 8. Defter başına 68 saatten fazla zaman aşımı validators tarafından yayınlanan mesajların sayısı daha fazla, çünkü Birleşik oylama mesajlarına ek olarak düğümler aynı zamanda yayın da yapar öğrendikleri herhangi bir işlem. Şekil 8, bir üretimin yaşadığı zaman aşımlarını göstermektedir validator 68 saatlik bir süre boyunca. Adaylık zaman aşımları oylama zaman aşımları büyük ölçüde ağa bağlıyken, lider seçim fonksiyonunun etkili(olmayan)etkinliğinin bir ölçüsü ve potansiyel mesaj gecikmeleri. Zaman aşımları tutarlı gönderilen mesaj sayısıyla birlikte: altı mesaj en iyi senaryo ve ek bir adaylık turu gerekiyorsa en az yedi mesaj. 7.3 Kontrollü deneyler Ambalajlı kaplarda kontrollü deneyler yaptık. 72 GiB RAM'e sahip Amazon EC2 c5d.9xlarge bulut sunucuları, 900 GB NVMe SSD ve 36 vCPU. Her örnek şu şekildeydi: aynı EC2 bölgesi ve 10 Gbps sabit bant genişliğine sahipti. SQLite'ı mağaza olarak kullandık. (Stellar ayrıca PostgreSQL'i de destekler, ancak ölçümlere gürültü katan eş zamanlı olmayan görevleri vardır.) Stellar yerleşik bir çalışma zamanı sorgusu sağlar, createdload, belirli bir hedefte sentetik yük oluşturulmasına olanak sağlayan işlem/ikinci oran. Stellar çeşitli destekleri olsa da Sipariş defteri ve çapraz varlık yolu gibi ticaret özellikleri ödemelerde basit ödemelere odaklandık. İşlemlerin onaylanması birden fazla adımdan oluşur, bu nedenle aşağıdakilerin her biri için ölçümleri kaydetti: • Aday gösterme: aday gösterilme anından ilk hazırlığa kadar geçen süre • Oylama: ilk hazırlıktan bir oylamanın onaylanmasına kadar geçen süre oy pusulası işlendi • Defter güncellemesi: fikir birliği değerini uygulama zamanı • İşlem sayısı: defter başına onaylanmış işlemler Deneylerimizin her biri üç parametreyle tanımlandı: Defterdeki hesap girişlerinin sayısı, tutarı Saniyede gönderilen yük (XLM ödemeleri şeklinde), ve validators sayısı. Her validator'yı yapılandırdık diğer validator hakkında bilgi sahibi olmak (en kötü senaryo) SCP için), çekirdek dilimleri herhangi bir basit çoğunluğa ayarlanmış olarak düğümler (farklı yetersayıların sayısını en üst düzeye çıkarmak için). Temel Temel denememiz Stellar ile ölçüldü 100.000 hesap, dört validator ve yük oluşturma 100 işlem/saniye hızı. Defter başına ortalama 507 işlem gözlemledik, standart sapma 49 (%9,7). Hiçbir işlemin iptal edilmediğini unutmayın; hafif 105 106 107 0 500 1.000 1.500 2.000 Hesaplar Gecikme [ms] Defter güncellemesi oylama Adaylık Şekil 9. Hesap sayısı arttıkça gecikme varyans, yük oluşturucunun planlama sınırlamalarından kaynaklanmaktadır. Defter başına işlem sayısının arttığını gözlemledik. defter göz önüne alındığında, yük oluşturma oranımızla tutarlıydı Her 5 saniyede bir kapanıyor. Aday gösterme, oylama ve defter güncelleme ortalama 82,53 ms, 95,96 ms gecikme süresi gösterdi ve Sırasıyla 174,08 ms. Aday gösterme gecikmesini gözlemledik 99. yüzdelik dilim sürekli olarak 61 ms'nin altındadır, ara sıra İlk adıma karşılık gelen yaklaşık 1 saniyelik ani artışlar lider seçiminin zaman aşımı fonksiyonunda. Temel performans göz önüne alındığında, etkilere baktık test kurulum parametrelerinin her birini değiştirme. Hesaplar Şekil 9'daki veriler Stellar'nin ölçeklendiğini göstermektedir hesap sayısı da artıyor. Testin oluşturulması hesaplar, paket oluşturma ve birleştirme veritabanını basitçe doldurmamızı engelledi hesaplarla doğrudan SQL üzerinden. Bu nedenle çalışmalarımızı gerçekleştirdik. 50.000.000'e kadar hesap için denemeler. varken Konsensüs ve defter güncelleme gecikmeleri üzerinde minimum etki, Artan hesapların bir ek yük yarattığını not ediyoruz giderek büyüyen kovaları birleştiriyor. İşlem oranı İşlem oranı tutarı etkiler validators arasındaki trafik çoklu yayını, her bir defterde yer alan işlem sayısı ve üst düzeyin boyutu kovalar. Artan işlemlerin etkilerini anlamak yüklendiğinde, 100.000 hesap ve 4 validators ile bir deneme yaptık. Şekil 10, fikir birliği gecikmesindeki yavaş büyümeyi göstermektedir, zamanın büyük bir kısmı defteri güncellemekle geçiyordu. İşlem kümesinin boyutu arttıkça şaşırtıcı olmayan bir şekilde veritabanına kaydedilmesi daha uzun sürer. Ayrıca şunu da not ediyoruz Defter güncelleme gecikmesi büyük ölçüde uygulamaya bağlıdır, ve veritabanı seçiminden etkilenir. Doğrulayıcı düğümler validators katman sayısının nasıl arttığını görmek içinperformansı etkiliyor, deneyler yaptık 100.000 hesap, 100 işlem/saniye ve 4 ile 43 arasında değişen sayıda validator ile. Tüm validator'ler göründü validators'nin tüm çekirdek dilimlerinde; daha küçük çoğunluk dilimleri performans üzerinde daha az etkiye sahiptir.SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada Lokhava ve diğerleri. 100 150 200 250 300 350 0 500 1.000 1.500 2.000 Yükle [işlem/saniye] Gecikme [ms] Defter güncellemesi oylama Adaylık Şekil 10. İşlem yükü arttıkça gecikme 10 20 30 40 0 500 1.000 1.500 2.000 Doğrulayıcılar Gecikme [ms] Defter güncellemesi oylama Adaylık Şekil 11. Düğüm sayısı arttıkça gecikme Ağdaki doğrulayan düğümlerin sayısını değiştirme değiştirilen SCP mesajlarının sayısını ve ayrıca Aday gösterme sırasındaki potansiyel değerlerin sayısı. Şekil 11 adaylık süresinin nispeten küçük bir oranda arttığını gösteriyor. Veriler oylamanın bir darboğaz olduğunu öne sürse de, biz ölçeklendirme sorunlarının çoğunun iyileştirilerek çözülebileceğine inanıyorum Ağ trafiğini optimize etmek için Stellar'nin yer paylaşımlı ağı. olarak beklenen, defter güncelleme gecikmesi bağımsız kaldı düğüm sayısı. Kapanış oranı Son olarak, Stellar'nin uçtan uca performansını, defterlerin ne sıklıkta onaylandığını ve Stellar'nin 5 saniyelik hedefine herhangi bir müdahale olmadan ulaşıp ulaşmadığını ölçerek ölçmek istedik. herhangi bir işlemin bırakılması. Ortalama defter kapanışını gözlemledik hesabı artırdıkça 5,03 sn, 5,10 sn ve 5,15 sn'lik zamanlar sırasıyla girişler, işlem oranı ve düğüm sayısı. Sonuçlar Stellar'nın defterleri tutarlı bir şekilde kapatabildiğini gösteriyor yüksek yük altında. 7.4 validator çalıştırılıyor Stellar'nin önemli özelliklerinden biri de düşük maliyetidir. çapaların çalışması (veya sözleşme yapması) gerektiği için validator çalıştırılıyor Kesinliği uygulamak için validators. SDF, tamamı iki çekirdeğe sahip c5.large AWS örneklerinde olmak üzere 3 adet üretim validator çalıştırıyor. 4 GiB RAM ve Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz işlemciler. Birinde kaynak kullanımı inceleniyor bu makinelerin Stellar işlemini kullanarak gözlemledik CPU'nun yaklaşık %7'si ve 300 MiB bellek. Ağ trafiği açısından, eşlerle 28 bağlantı ve çekirdek boyutuyla 34'ün giriş ve çıkış hızları 2,78 Mbit/s idi ve Sırasıyla 2,56 Mbit/s. Böyle bir işlemi çalıştırmak için gerekli donanım süreç ucuzdur. Bizim durumumuzda maliyet 0,054$/saattir veya ayda yaklaşık 40$. 7.5 Gelecekteki çalışmalar Bu deneyler, Stellar ürününün 1-2 siparişi kolayca ölçeklendirebileceğini gösteriyor günümüzün ağ kullanımının ötesinde büyüklükte. Çünkü performans talepleri bugüne kadar çok mütevazıydı, Stellar kullanarak birçok basit optimizasyona yer bırakır iyi bilinen teknikler. Örneğin, işlemler ve SCP mesajlar saf bir Flood kullanarak validators tarafından yayınlanıyor protokol, ancak ideal olarak daha verimli, yapılandırılmış bir protokol kullanmalıdır eşler arası çoklu yayın [30]. Ayrıca veritabanı ağırlıklı Defter güncelleme süresi, standart toplu işlem ve önceden getirme teknikleri yoluyla iyileştirilebilir.
結論
国際決済は高額で日数もかかります。基金 保管はコルレス銀行や送金サービスを含む複数の金融機関を経由します。 各ホップは完全に信頼される必要があるため、新しいホップは困難です。 参入者は市場シェアを獲得し、競争します。 Stellar の番組 数秒で世界中に安く送金する方法。の 主要な革新は、ピアツーピア構造を活用した新しいオープンメンバーシップのビザンチン協定プロトコルである SCP です。 世界的なコンセンサスを達成するための金融ネットワークの構築 新しいインターネット仮説。 SCP は Stellar をアトミックにコミットさせます 任意の参加者間の不可逆的なトランザクション。 お互いのことを知らないし信頼もしていない。これにより、新規参入者が既存の市場と同じ市場にアクセスできることが保証されます。 プレーヤーは、利用可能な最高の交換を安全に入手できます 信頼できないマーケットメーカーからのレートであっても、劇的に上昇します。 支払いの待ち時間を短縮します。 謝辞 Stellar は、初期の ジョイス・キムのリーダーシップまたは多大な貢献 スコット・フレッケンシュタインとバルテック・ノヴォタルスキーが建築と Horizon、Stellar SDK、およびその他の重要な要素の維持 Stellar エコシステムの。コルテン・ベルジェロンにも感謝します。 ヘンリー・コリガン=ギブス、キャンディス・ケリー、カピル・K・ジェイン、ボリス レズニコフ、ジェレミー・ルービン、クリスチャン・ラダー、エリック・サンダース、 Torsten Stüber、Tomer Weller、匿名の査読者、 私たちの羊飼いのジャスティン・シェリーさんに有益なコメントをいただきました 以前の草案。 免責事項 マジエール教授のこの出版物への貢献は有償コンサルタントとしてのものであり、教授の活動の一部ではありませんでした。 スタンフォード大学の義務または責任。
Stellar による高速かつ安全なグローバル支払い SOSP ’19、2019 年 10 月 27 ~ 30 日、カナダ、オンタリオ州ハンツビル
Çözüm
Uluslararası ödemeler pahalıdır ve günler sürer. Fon saklama, muhabir bankalar ve para transfer hizmetleri de dahil olmak üzere birden fazla finansal kurumdan geçer. Her bir şerbetçiotuna tamamen güvenilmesi gerektiğinden, yeni Katılımcıların pazar payı kazanmaları ve rekabet edebilmeleri. Stellar gösterileri Saniyeler içinde dünyanın her yerine ucuza nasıl para gönderilir? Temel yenilik, eşler arası yapıyı güçlendiren yeni bir açık üyelik Bizans anlaşma protokolü SCP'dir. finansal ağın küresel fikir birliğine varılması için Yeni İnternet hipotezi. SCP, Stellar'nin atomik olarak işlemesine izin veriyor keyfi katılımcılar arasında geri dönüşü olmayan işlemler Birbirinizi tanımıyorsunuz veya güvenmiyorsunuz. Bu da yeni girenlerin yerleşik pazarlarla aynı pazarlara erişmesini garanti eder oyuncular, mevcut en iyi değişimi almayı güvenli hale getirir güvenilmeyen piyasa yapıcılardan bile yüksek oranlar ve dramatik bir şekilde ödeme gecikmesini azaltır. Teşekkür Stellar erken olmasaydı bugün olduğu yerde olmazdı Joyce Kim'in liderliği veya muazzam katkıları Scott Fleckenstein ve Bartek Nowotarski inşaatta ve ufku, Stellar SDK'yı ve diğer önemli parçaları korumak Stellar ekosisteminin. Ayrıca Kolten Bergeron'a da teşekkür ederiz. Henry Corrigan-Gibbs, Candace Kelly, Kapil K. Jain, Boris Reznikov, Jeremy Rubin, Christian Rudder, Eric Saunders, Torsten Stüber, Tomer Weller, anonim eleştirmenler ve çobanımız Justine Sherry'e faydalı yorumlarından dolayı teşekkür ederiz. önceki taslaklar. Sorumluluk reddi beyanı Profesör Mazières'in bu yayına katkısı ücretli danışman olarak olmuştur ve kendi görevinin bir parçası değildir. Stanford Üniversitesi'nin görevleri veya sorumlulukları.
Stellar ile hızlı ve güvenli küresel ödemeler SOSP '19, 27–30 Ekim 2019, Huntsville, ON, Kanada