Stellar Konsensüs Protokolü
Resumen
Los pagos internacionales son lentos y costosos, en parte debido al enrutamiento de pagos de múltiples saltos a través de canales heterogéneos. sistemas bancarios. Stellar es una nueva red de pagos global que puede transferir dinero digital directamente a cualquier parte del mundo mundo en segundos. La innovación clave es una transacción segura mecanismo a través de intermediarios no confiables, utilizando un nuevo Protocolo de acuerdo bizantino llamado SCP. Con SCP, cada institución especifica otras instituciones con las cuales permanecer de acuerdo; a través de la interconexión global de la sistema financiero, toda la red se pone de acuerdo en términos atómicos. transacciones que abarcan instituciones arbitrarias, sin solvencia ni riesgo de tipo de cambio por parte de emisores de activos intermediarios o creadores de mercado. Presentamos el modelo, protocolo y verificación formal; describir la red de pago Stellar; y finalmente evaluar Stellar empíricamente a través de puntos de referencia y nuestra experiencia con varios años de uso en producción. Conceptos de CCS • Seguridad y privacidad →Distribuida seguridad de sistemas; • Organización de sistemas informáticos → Arquitecturas de igual a igual; • Sistemas de información → Transferencia electrónica de fondos. Palabras clave blockchain, BFT, quórumes, pagos Formato de referencia ACM: Marta Lokhava, Giuliano Losa, David Mazières, Graydon Hoare, Nicolas Barry, Eli Gafni, Jonathan Jove, Rafał Malinowsky, Jed McCaleb. 2019. Pagos globales rápidos y seguros con Stellar. En SOSP '19: Simposio sobre principios de sistemas operativos, 27 al 30 de octubre, 2019, Huntsville, ON, Canadá. ACM, Nueva York, NY, EE.UU., 17 páginas. 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
Introducción
Los pagos internacionales son notoriamente lentos y costosos [32]. Considere la impracticabilidad de enviar 0,50 dólares desde EE.UU. a *Galois, Inc. †UCLA Permiso para realizar copias digitales o impresas de todo o parte de este trabajo para El uso personal o en el aula se concede sin cargo, siempre que no se realicen copias. realizados o distribuidos con fines de lucro o ventaja comercial y que las copias lleven este aviso y la cita completa en la primera página. Derechos de autor de los componentes de este trabajo propiedad de terceros distintos de ACM deben ser respetados. Abstraer con Se permite el crédito. Para copiar de otra manera, o republicar, para publicar en servidores o para redistribuir a listas, requiere permiso previo específico y/o una tarifa. Solicitar permisos de [email protected]. SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá © 2019 Asociación de Maquinaria de Computación. ACM ISBN 978-1-4503-6873-5/19/10...$15,00 https://doi.org/10.1145/3341301.3359636 México, dos países vecinos. Los usuarios finales pagan casi 9 dólares para el promedio de dicha transferencia [32], y un acuerdo bilateral mediada por los bancos centrales de los países sólo podría reducir el costo bancario subyacente a $0,67 por artículo [2]. Además de las tarifas, la latencia de los pagos internacionales generalmente se cuenta en días, lo que hace imposible sacar dinero del extranjero rápidamente en emergencias. En países donde el sistema bancario no funciona o no sirve a todos los ciudadanos, o cuando las tarifas son intolerables, la gente recurre a enviar pagos en autobús [38], por barco [19], y ocasionalmente ahora por Bitcoin [55], todos los cuales incurrir en riesgos, latencia o inconvenientes. Si bien siempre habrá costos de cumplimiento, la evidencia sugiere que se pierde una cantidad significativa por falta de competencia [21], lo cual se ve exacerbado por la tecnología ineficiente. donde la gente puede innovar, los precios y las latencias bajan. Por ejemplo, las remesas desde cuentas bancarias en el segundo trimestre de 2019 costaron un promedio de 6,99%, mientras que la cifra del dinero móvil fue sólo del 4,88% [13]. Una red de pagos abierta y global que atrae la innovación y la competencia de entidades no bancarias podría reducir costos y latencias en todas las capas, incluido el cumplimiento [83]. Este documento presenta Stellar, un pago basado en blockchain red diseñada específicamente para facilitar la innovación y Competencia en pagos internacionales. Stellar es el primero sistema para cumplir los tres objetivos siguientes (bajo un “hipótesis de Internet novedosa pero empíricamente válida”): 1. Membresía abierta: cualquiera puede emitir bonos respaldados por moneda. tokens digitales que se pueden intercambiar entre usuarios. 2. Finalidad impuesta por el emisor: el emisor de un token puede evitar transacciones en el token se reviertan o deshagan. 3. Atomicidad entre emisores: los usuarios pueden intercambiar atómicamente y negociar tokens de múltiples emisores. Lograr los dos primeros es fácil. Cualquier empresa puede ofrecer unilateralmente un producto como Paypal, Venmo, WeChat. Pay, o Alipay y garantizar la firmeza de los pagos en el monedas virtuales que han creado. Desafortunadamente, realizar transacciones atómicas entre estas monedas es imposible. De hecho, a pesar de que Paypal adquirió la empresa matriz de Venmo En 2013, todavía es imposible que los usuarios finales envíen Venmo. dólares a los usuarios de Paypal [78]. Sólo recientemente los comerciantes pueden incluso aceptar ambos con una sola integración. Los objetivos 2 y 3 se pueden lograr en un sistema cerrado. En particular, varios países cuentan con sistemas de pago internos eficientes. redes, normalmente supervisadas por una autoridad reguladora de confianza universal. Sin embargo, la membresía está limitada a un recinto cerrado. conjunto de bancos autorizados y las redes se limitan a la alcance de la autoridad reguladora de un país.SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. Los objetivos 1 y 3 se han logrado en blockchain minados, más notablemente en forma de ERC20 tokens en Ethereum [3]. La idea clave de estos blockchains es crear una nueva criptomoneda con la que recompensar a las personas por establecerse transacciones difíciles de revertir. Desafortunadamente, esto significa que los emisores token no controlan la finalidad de la transacción. Si el software los errores hacen que el historial de transacciones se reorganice [26, 73], o cuando el botín de defraudar a la gente excede el costo de historial de reorganización [74, 97], los emisores pueden ser responsables de tokens ya han canjeado por dinero del mundo real. El Stellar blockchain tiene dos propiedades distintivas. En primer lugar, admite de forma nativa mercados eficientes entre tokens de diferentes emisores. Específicamente, cualquiera puede emitir un token, el blockchain proporciona un libro de pedidos integrado para el comercio entre cualquier par de token y los usuarios pueden emitir pagos de ruta que comercian atómicamente en varios pares de divisas mientras garantizando un precio límite de extremo a extremo. En segundo lugar, Stellar introduce un nuevo acuerdo bizantino. protocolo, SCP (Stellar Protocolo de Consenso), a través del cual Los emisores token designan servidores validator específicos para hacer cumplir finalidad de la transacción. Siempre y cuando nadie comprometa los validators de un emisor (y las firmas digitales subyacentes y Los hashes criptográficos permanecen seguros), el emisor sabe exactamente qué transacciones se han producido y evita el riesgo. de pérdidas por blockchain reorganización histórica. La idea clave de SCP es que la mayoría de los emisores de activos se benefician de mercados líquidos y quieren facilitar las transacciones atómicas con otros activos. Por lo tanto, los administradores validator configuran sus servidores para acordar con otros validators exactamente historial de todas las transacciones sobre todos los activos. Un validator v1 puede ser configurado para estar de acuerdo con v2, o v2 puede configurarse para estar de acuerdo con v1, o ambos pueden configurarse para que coincidan entre sí; En todos los casos, ninguno se comprometerá con un historial de transacciones hasta sabe que el otro no puede comprometerse con una historia diferente. Por transitividad, si v1 no puede estar en desacuerdo con v2 y v2 no puede estar en desacuerdo con v3 (o viceversa), v1 no puede estar en desacuerdo con v3, ya sea que v3 represente o no activos, v1 incluso ha escuchado de. Bajo la hipótesis de que estas relaciones de acuerdo conectar transitivamente toda la red, SCP garantiza acuerdo global, lo que lo convierte en un acuerdo bizantino global protocolo con membresía abierta. A este nuevo supuesto de conectividad lo llamamos hipótesis de Internet y observamos que posee tanto de “Internet” (que todo el mundo entiende como significa la red IP más grande conectada transitivamente) y pagos internacionales heredados (que son salto a salto no atómico, pero aprovecha un sistema global transitivamente conectado. red de instituciones financieras). Stellar ha estado en uso de producción desde septiembre de 2015. Para mantener manejable la longitud blockchain, el sistema ejecuta SCP a intervalos de 5 segundos: rápido según los estándares blockchain, pero mucho más lento que las aplicaciones típicas del acuerdo bizantino. Aunque el uso principal ha sido pagos, Stellar también ha probado atractivo para tokens fungibles no monetarios que se benefician de los mercados secundarios inmediatos (ver Sección 7.1). La siguiente sección analiza el trabajo relacionado. La sección 3 presenta SCP. La Sección 4 describe nuestra verificación formal de SCP. La sección 5 describe la capa de pago de Stellar. La sección 6 se relaciona parte de nuestra experiencia de implementación y lecciones aprendidas. La sección 7 evalúa el sistema. La sección 8 concluye.
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 protocolo de consenso
El protocolo de consenso (SCP) Stellar es un protocolo basado en quórum Protocolo de acuerdo bizantino con membresía abierta. Los quórums surgen de las decisiones de configuración local combinadas de nodos individuales. Sin embargo, los nodos sólo reconocen quórums a los que pertenecen ellos mismos, y sólo después aprender las configuraciones locales de todos los demás miembros del quórum. Un beneficio de este enfoque es que SCP es inherentemente Tolera visiones heterogéneas de los nodos que existen. Por lo tanto, Los nodos pueden unirse y salir unilateralmente sin necesidad de un Protocolo de “ver cambio” para coordinar la membresía. 3.1 Acuerdo bizantino federado El problema tradicional del acuerdo bizantino consiste en una sistema cerrado de N nodos, algunos de los cuales están defectuosos y pueden comportarse arbitrariamente. Los nodos reciben valores de entrada e intercambian mensajes para decidir sobre un valor de salida entre las entradas. Un protocolo de acuerdo bizantino es seguro cuando no hay dos nodos con buen comportamiento que produzcan decisiones diferentes y el único decisión fue un insumo válido (para alguna definición de acuerdo válidoSOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. previamente). Un protocolo está activo cuando garantiza que cada nodo honesto eventualmente genera una decisión. Normalmente, los protocolos suponen N = 3f + 1 para algún número entero f > 0, entonces garantizamos seguridad y alguna forma de vida para que siempre y cuando como máximo f nodos estén defectuosos. En algún momento de estos protocolos, los nodos votan sobre los valores propuestos y una propuesta recibir 2f + 1 votos, llamado quórum de votos, se convierte en la decisión. Con N = 3f + 1 nodos, dos quórumes cualesquiera de el tamaño 2f + 1 se superpone en al menos f + 1 nodos; incluso si f de estos Los nodos superpuestos son defectuosos, los dos quórums comparten al menos un nodo no defectuoso, evitando decisiones contradictorias. Sin embargo, este enfoque sólo funciona si todos los nodos están de acuerdo lo que constituye un quórum, lo cual es imposible en SCP donde Es posible que dos nodos ni siquiera sepan de la existencia del otro. Con SCP, cada nodo v declara unilateralmente conjuntos de nodos, llamado sus sectores de quórum, de modo que (a) v cree que si todos los miembros de un segmento están de acuerdo sobre el estado del sistema, entonces tienen razón, y (b) v cree que al menos una de sus porciones estará disponible para brindar información oportuna sobre la estado del sistema. Llamamos al sistema resultante, que consiste de nodos y sus cortes, un Acuerdo Bizantino Federado (Logística de Amazon). Como veremos a continuación, surge un sistema de quórum de los cortes de los nodos. De manera informal, las porciones de un nodo Logística de Amazon expresan con quién El nodo requiere acuerdo. Por ejemplo, un nodo puede requerir un acuerdo con 4 organizaciones específicas, cada una de las cuales ejecuta 3 nodos; a acomodar el tiempo de inactividad, puede configurar sus sectores para que sean todos los conjuntos compuesto por 2 nodos de cada organización. Si esto “requiere La relación “acuerdo con” relaciona transitivamente dos nodos cualesquiera, conseguimos un acuerdo global. De lo contrario, podemos obtener divergencia, pero sólo entre organizaciones ninguna de las cuales requiere acuerdo con el otro. Dada la topología actual sistema financiero, planteamos la hipótesis de que la convergencia generalizada seguirá produciendo una historia de contabilidad única que la gente llama “la red Stellar”, del mismo modo que hablamos de Internet. Los quórums surgen de las porciones de la siguiente manera. Cada nodo especifica su quórum se divide en cada mensaje que envía. Sea S el conjunto de nodos desde los cuales se originó un conjunto de mensajes. un El nodo considera que el conjunto de mensajes ha alcanzado el quórum. umbral cuando cada miembro de S tiene un segmento incluido en S. Por construcción, tal conjunto S, si es unánime, satisface la requisitos de acuerdo de cada uno de sus miembros. Un par defectuoso puede anunciar porciones diseñadas para cambiar lo que Los nodos con buen comportamiento consideran quórumes. Por el bien del análisis del protocolo, definimos un quórum en Logística de Amazon como no vacío. conjunto S de nodos que abarcan al menos una porción de quórum de cada miembro no defectuoso. Esta abstracción es sólida, como cualquier conjunto. de mensajes que pretenden representar un quórum unánime realmente lo hace (incluso si contiene mensajes de nodos defectuosos), y es preciso cuando S contiene sólo nodos que se comportan bien. en En esta sección, también asumimos que los sectores de los nodos no cambian. Sin embargo, nuestros resultados se transfieren al caso del segmento cambiante. porque un sistema en el que cambian las porciones no es menos seguro que un sistema de corte fijo en el que los cortes de un nodo constan de todos los sectores que alguna vez utiliza en el caso de sectores cambiantes (ver Teorema 13 en [68]). Como se explica en la Sección 4, la vivacidad depende de Los nodos con buen comportamiento eventualmente eliminan los nodos no confiables. de sus rebanadas. Debido a que diferentes nodos tienen diferentes requisitos de acuerdo, Logística de Amazon excluye una definición global de seguridad. decimos Los nodos no defectuosos v1 y v2 se entrelazan cuando cada El quórum de v1 interseca cada quórum de v2 en al menos un nodo no defectuoso. Un protocolo de Logística de Amazon puede garantizar un acuerdo sólo entre nodos entrelazados; ya que SCP lo hace, es culpa suya La tolerancia a la seguridad es óptima. La hipótesis de Internet, subyacente al diseño de Stellar, afirma que los nodos que a la gente le importan sobre estarán entrelazados. Decimos que un conjunto de nodos I está intacto si I es un quórum uniformemente no defectuoso tal que cada dos miembros de I están entrelazados incluso si todos los nodos fuera de I son defectuosos. Intuitivamente, Entonces, debería permanecer inmune a las acciones de los no intactos. nodos. SCP garantiza tanto la vida sin bloqueo [93] como seguridad para conjuntos intactos, aunque los nodos en sí no necesitan saber (y tal vez no poder saber) qué conjuntos están intactos. Además, la unión de dos conjuntos intactos que se cruzan es un conjunto intacto. Por lo tanto, los conjuntos intactos definen una partición del Nodos de buen comportamiento, donde cada partición es segura y activa. (bajo algunas condiciones), pero pueden generarse diferentes particiones decisiones divergentes. 3.1.1 Consideraciones de seguridad versus vida en Logística de Amazon Con excepciones limitadas [64], la mayoría de los protocolos de acuerdos bizantinos cerrados están ajustados al punto de equilibrio en el que la seguridad y la vivacidad tienen la misma tolerancia a fallos. En Logística de Amazon, eso significa configuraciones en las que, independientemente de las fallas, todos Los conjuntos entrelazados también están intactos. Dado que Logística de Amazon determina quórums de forma descentralizada, es poco probable que las elecciones de sectores individuales conduzcan a este equilibrio. Además, en al menos en Stellar, el equilibrio no es deseable: las consecuencias de una falla de seguridad (es decir, dinero digital doblemente gastado) son mucho peores que los de una falla en la vida (es decir, retrasos en pagos que de todos modos tomaban días antes del Stellar). gente por lo tanto, debe seleccionar y selecciona porciones de quórum grandes tales que es más probable que sus nodos permanezcan entrelazados que intactos. Inclinando aún más la balanza, es más fácil recuperarse de fallas de vida típicas en un sistema Logística de Amazon que en uno cerrado tradicional. En sistemas cerrados, todos los mensajes deben ser interpretado con respecto al mismo conjunto de quórumes. Por lo tanto, Agregar y eliminar nodos para recuperarse de una falla requiere llegar a un consenso sobre un evento de reconfiguración, lo cual es difícil una vez que el consenso ya no existe. Por el contrario, con Logística de Amazon, cualquier nodo puede ajustar unilateralmente sus porciones de quórum en cualquier tiempo. En respuesta a una interrupción en un sistema de importancia sistémica organización, los administradores de nodos pueden ajustar sus sectores para solucionar el problema, un poco como coordinar respuestas a catástrofes de BGP [63] (aunque sin las limitaciones de enrutamiento a través de enlaces de red física).
Pagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá 3.1.2 El teorema de la cascada SCP sigue la plantilla del modelo redondo básico [42]; Los nodos avanzan a través de una serie de papeletas numeradas, cada una intentar tres tareas: (1) identificar un valor “seguro” que no esté en contradicción con ninguna decisión en una votación anterior (a menudo denominada preparar la papeleta), (2) acordar el valor seguro, y (3) detectar que el acuerdo fue exitoso. Sin embargo, Logística de Amazon está abierta La membresía obstaculiza varias técnicas comunes, lo que hace que sea imposible "portar" los protocolos cerrados tradicionales a la Logística de Amazon modelo simplemente cambiando la definición de quórum. Una técnica empleada por muchos protocolos es la rotación a través de los nodos líderes en forma de turnos después de los tiempos de espera. En un sistema cerrado, la selección del líder por turnos garantiza que eventualmente un líder único y honesto termine coordinando un acuerdo sobre un único valor. Desafortunadamente, todos contra todos no puede funcionar en un sistema Logística de Amazon con membresía desconocida. Otra técnica común que falla con Logística de Amazon es asumir que un quórum particular puede convencer a todos los nodos. Por ejemplo, Si todos reconocen cualquier nodo 2f + 1 como quórum, entonces 2f + 1 firmas son suficientes para demostrar el estado del protocolo en todos los nodos. De manera similar, si un nodo recibe un quórum de mensajes idénticos A través de la transmisión confiable [24], el nodo puede asumir que todos los nodos que no son defectuosos también verán un quórum. En cambio, en Logística de Amazon, una El quórum no significa nada para los nodos fuera del quórum. Por último, los sistemas no federados suelen emplear sistemas "al revés". razonamiento sobre seguridad: si los nodos f + 1 están defectuosos, toda la seguridad Se pierden las garantías. Por lo tanto, si el nodo v escucha f + 1 nodos, todos declarar algún hecho F, v puede suponer que al menos uno le está diciendo al verdad (y por tanto que F es verdadera) sin pérdida de seguridad. tal El razonamiento falla en Logística de Amazon porque la seguridad es una propiedad de pares. de nodos, por lo que un nodo que ha perdido seguridad para algunos pares puede Siempre se pierde seguridad frente a más nodos al asumir hechos incorrectos. Sin embargo, Logística de Amazon puede razonar al revés sobre la vitalidad. Defina un conjunto de bloqueo v como un conjunto de nodos que intersecta cada porción de v. Si un conjunto de bloqueo de v B es unánimemente defectuoso, B puede negarle al nodo v un quórum y costarle vida. Por lo tanto, si B declara unánimemente el hecho F, entonces v sabe que F es true o v no está intacto. Sin embargo, todavía necesita ver una versión completa. quórum para saber que los nodos entrelazados no contradicen a F, lo que conduce a una ronda final de comunicación en SCP y otros protocolos de Logística de Amazon [47] que no se requieren en casos análogos protocolos de membresía cerrada. El resultado es que tenemos tres posibles niveles de confianza en hechos potenciales: indeterminado, seguro de asumir entre nodos intactos (que veremos término hechos aceptados), y es seguro asumir entre entrelazados nodos (que llamaremos hechos confirmados). El nodo v puede determinar de manera eficiente si un conjunto B está bloqueando v verificando si B cruza todos sus sectores. Curiosamente, si los nodos siempre anuncian las declaraciones que aceptar y un quórum completo acepta una declaración, se desencadena un proceso en cascada mediante el cual las declaraciones se propagan a lo largo conjuntos intactos. Al hecho clave que subyace a esta propagación lo llamamos el teorema de la cascada, que establece lo siguiente: Si I es un conjunto intacto, Q es un quórum de cualquier miembro de I, y S es cualquier superconjunto de Q, entonces S ⊇I o hay un miembro v ∈I tal que v < S y I ∩S es v-bloqueo. Intuitivamente, ¿fue esto no es el caso, el complemento de S contendría un quórum que cruza I pero no Q, violando la intersección de quórum. Tenga en cuenta que si comenzamos con S = Q y expandimos repetidamente S hasta incluir todos los nodos que bloquea, obtenemos un efecto en cascada hasta que, eventualmente, S abarca todo I. 3.2 Descripción del protocolo SCP es un protocolo de consenso parcialmente sincrónico [42] que consta de una serie de intentos para llegar a un consenso llamado papeletas. Las papeletas emplean tiempos de espera de duración cada vez mayor. un El protocolo de sincronización de boletas garantiza que los nodos permanezcan encendidos. la misma papeleta por períodos de tiempo crecientes hasta que las papeletas son efectivamente sincrónicos. La rescisión no está garantizada hasta que las votaciones sean sincrónicas, pero dos votaciones sincrónicas en el que los miembros defectuosos de los sectores de nodos con buen comportamiento no no interferir son suficientes para que SCP termine. Un protocolo de votación especifica las acciones tomadas durante cada boleta. Una votación comienza con una fase de preparación, en la que los nodos tratar de determinar un valor a proponer que no contradiga cualquier decisión previa. Luego, en una fase de confirmación, los nodos intentan para tomar una decisión sobre el valor preparado. La votación emplea un subprotocolo de acuerdo llamado votación federada, in qué nodos votan sobre declaraciones abstractas eso eventualmente puede confirmarse o quedarse estancado. Algunas declaraciones pueden considerarse contradictorias y la seguridad La garantía del voto federado es que no pueden haber dos miembros de un conjunto entrelazado confirma afirmaciones contradictorias. La confirmación de una declaración no está garantizada excepto si está intacta. conjunto cuyos miembros votan todos de la misma manera. Sin embargo, si un miembro de un conjunto intacto confirma una declaración, federada la votación garantiza que todos los miembros del conjunto intacto eventualmente confirmen esa afirmación. Por lo tanto, tomar medidas irreversibles en respuesta a declaraciones confirmatorias preserva la vivacidad de nodos intactos. Los nodos inicialmente proponen valores obtenidos de una nominación. protocolo que aumenta las posibilidades de todos los miembros de una comunidad intacta. conjunto que propone el mismo valor, y que eventualmente converge (aunque no hay forma de determinar que la convergencia sea completa). La nominación combina la votación federada con la selección de líderes. Debido a que el sistema de todos contra todos es imposible en Logística de Amazon, la nominación utiliza un esquema probabilístico de selección de líderes. El teorema de la cascada juega un papel crucial tanto en la votación sincronización y en evitar estados bloqueados desde los cuales la terminación ya no es posible. 3.2.1 votación Los nodos SCP proceden a través de una serie de votaciones numeradas, empleando votación federada para acordar declaraciones sobre qué Los valores se deciden o no en qué papeletas. Si hay asincronía o un comportamiento incorrecto impide llegar a una decisión en la votación n, Los nodos se agotan y vuelven a intentarlo en la boleta n + 1.
SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. Recordemos que el voto federado podría no terminar. Por lo tanto, algunos Las declaraciones sobre las papeletas pueden quedar atascadas permanentemente. Estado indeterminado donde los nodos nunca pueden determinar si todavía están en progreso o atascados. Porque los nodos no pueden descartar la posibilidad de que declaraciones indeterminadas luego resulten verdaderas, nunca deben intentar una votación federada sobre nuevas declaraciones contradictorios con los indeterminados. En cada votación n, los nodos utilizan votación federada en dos tipos de declaración: • preparar ⟨n,x⟩– indica que ningún valor distinto de x se decidió o se decidirá alguna vez en cualquier votación ≤n. • comprometer ⟨n,x⟩– indica que x se decide en la votación n. Es importante destacar que preparar ⟨n,x⟩contradice el compromiso ⟨n′,x ′⟩cuando n ≥n′ y x , x ′. Un nodo inicia la votación n intentando la votación federada en un declaración preparar ⟨n,x⟩. Si alguna declaración previa preparar fue confirmado con éxito mediante votación federada, el El nodo elige x del grupo confirmado de la boleta superior. De lo contrario, el nodo establece x como la salida del protocolo de nominación descrito en la siguiente subsección. Si y sólo si un nodo confirma con éxito preparar ⟨n,x⟩ en la votación n, intenta la votación federada sobre el compromiso ⟨n,x⟩. si que tiene éxito, significa que SCP ha decidido, por lo que el nodo genera el valor de la declaración de confirmación confirmada. Considere un conjunto S entrelazado. Dado que como máximo un valor pueden ser confirmados preparados por miembros de S en una votación determinada, no se pueden confirmar dos valores diferentes comprometidos por miembros de S en una votación determinada. Además, si se compromete ⟨n,x⟩ se confirma, luego prepare ⟨n,x⟩se confirmó también; desde preparar ⟨n,x⟩ contradice cualquier compromiso anterior por un valor diferente, por el acuerdo que garantiza el voto federado conseguimos que no se puede decidir ningún valor diferente en una fecha anterior votación de los miembros de S. Por inducción sobre los números de la boleta, Por lo tanto, consiga que SCP sea seguro. Para darle vida, considere un conjunto I intacto y un tiempo suficientemente largo. votación sincrónica Si aparecen nodos defectuosos en los cortes de nodos con buen comportamiento no interfieren en n, luego por votación n + 1 todos los miembros de I han confirmado el mismo conjunto P de declaraciones de preparación. Si P = ∅ y la votación n fue lo suficientemente larga, la El protocolo de nominación habrá convergido en algún valor x. De lo contrario, sea x el valor del equipo con la votación más alta en P. De cualquier manera, intentaré uniformemente votar sobre preparar ⟨n + 1,x⟩ en la próxima votación. Por lo tanto, si n + 1 también es sincrónico, por lo que inevitablemente se sigue una decisión para x. 3.2.2 Nominación La nominación implica votación federada de las declaraciones: • nominar x – indica que x es un candidato de decisión válido. Los nodos pueden votar para nominar múltiples valores, diferentes Las declaraciones nominadas no son contradictorias. Sin embargo, una vez un nodo confirma cualquier declaración nominada, deja de votar para proponer nuevos valores. La votación federada todavía permite que un nodo confirmar nuevas declaraciones nominadas por las que no votó, que votar o aceptar un del quórum aceptar un del quórum una es válida aceptar un de conjunto de bloqueo no comprometido votó un aceptó un confirmó un votó ¬a Figura 1. Etapas del voto federado permite a los miembros de un conjunto intacto confirmar entre sí los valores nominados y al mismo tiempo retener nuevos votos. El resultado (evolutivo) de la nominación es una combinación determinista de todos los valores en las declaraciones de nominación confirmadas. si x representa un conjunto de transacciones, los nodos pueden tomar la unión de conjuntos, el conjunto más grande o el que tiene el hash más alto, por lo que siempre y cuando todos los nodos hagan lo mismo. Porque los nodos retienen nuevos votos después de confirmar una declaración nominada, el conjunto de Las declaraciones confirmadas sólo pueden contener un número finito de valores. El hecho de que las declaraciones confirmadas se difundieran de forma fiable conjuntos intactos significa que los nodos intactos eventualmente convergen en el mismo conjunto de valores nominados y, por tanto, resultado de la nominación, aunque en un punto desconocido arbitrariamente tarde en el protocolo. Los nodos emplean la selección de líderes federados para reducir la número de valores diferentes en declaraciones nominadas. Sólo un líder que aún no haya votado a favor de una declaración propuesta puede introducir una nueva x. Otros nodos esperan recibir noticias líderes y simplemente copiar los votos de nominación (válidos) de sus líderes. Para adaptarse al fracaso, el conjunto de líderes sigue creciendo a medida que avanza. Se producen tiempos de espera, aunque en la práctica sólo unos pocos nodos introducen nuevos valores de x. 3.2.3 Voto federado La votación federada emplea un protocolo de tres fases que se muestra en Figura 1. Los nodos intentan ponerse de acuerdo sobre declaraciones abstractas primero votar, luego aceptar y finalmente confirmar las declaraciones. Un nodo v puede votar por cualquier declaración válida a que no contradice su otrovotos pendientes y declaraciones aceptadas. Lo hace mediante la difusión de un mensaje de voto firmado. v luego acepta a si a es consistente con otras declaraciones aceptadas y (caso 1)v es miembro de un quórum en el que cada nodo vota por a o acepta a, o (caso 2) incluso si v no votó por a, un conjunto de bloqueo v acepta a. En el caso 2, v mayo han emitido previamente votos que contradicen a, que ahora han sido anulado. A v se le permite olvidarse de los votos anulados. y pretender que nunca los lanzó porque siv está intacto, lo sabe los votos anulados no pueden completar el quórum mediante el caso 1. v transmite que acepta a y luego confirma a cuando está en un quórum que acepte por unanimidad a. La figura 2 muestra la efecto de los conjuntos de bloqueo v y el teorema de la cascada durante votación federada. Dos nodos entrelazados no pueden confirmar declaraciones contradictorias, ya que los dos quórums requeridos tendrían que compartir unPagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá 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
Vota X
Vota Y (un) 3 4 2 1 5 7 6 votar x votar x votar x votar Y votar x votar Y votar Y (b) 3 4 2 1 5 7 6 Aceptar x votar x Aceptar x votar Y Aceptar x votar Y votar Y (c) 3 4 2 1 5 7 6 Aceptar x Aceptar x Aceptar x votar Y Aceptar x Aceptar x votar Y (d) 3 4 2 1 5 7 6 Aceptar x votar x Aceptar x Aceptar x Aceptar x Aceptar x Aceptar x (e) Figura 2. Efecto cascada en el voto federado. Cada nodo tiene un segmento de quórum indicado por flechas para los miembros del segmento. (a) Se introducen declaraciones contradictorias X e Y. (b) Los nodos votan por declaraciones válidas. (c) El nodo 1 acepta X después de su quórum {1, 2, 3, 4} vota unánimemente por X. (d) Los nodos 1, 2, 3 y 4 aceptan X; el conjunto {1} es de bloqueo 5, por lo que el nodo 5 acepta X, anulando su voto anterior por Y. (e) El conjunto {5} bloquea 6 y 7, por lo que 6 y 7 aceptan X. nodo no defectuoso que no podía aceptar declaraciones contradictorias. No se garantiza la confirmación de una declaración: en En caso de votación dividida, ambas declaraciones podrán ser permanentemente estancado esperando por un quórum en la fase de votación. Sin embargo, si un nodo en un conjunto intacto I confirma una declaración, la cascada teorema y acepte el caso 2, asegúrese de que todos los I eventualmente confirmar esa afirmación. 3.2.4 Sincronización de boletas Si los nodos no pueden confirmar una declaración de confirmación para el votación actual, se dan por vencidos después de un tiempo muerto. El tiempo de espera llega más tiempo con cada votación para ajustarse a límites arbitrarios en el retraso de la red. Sin embargo, los tiempos de espera por sí solos no son suficientes para sincronizar las votaciones de los nodos que no comenzaron al mismo tiempo o se desincronizó por otras razones. Para lograr la sincronización, los nodos inician el temporizador sólo una vez que son parte de un quórum que se obtiene en la votación actual (o en una posterior) n. esto ralentiza los nodos que se iniciaron temprano y garantiza que no miembro de un conjunto intacto se mantiene demasiado por delante del grupo. Además, si un nodo v alguna vez nota un bloqueo v establecido en un momento posterior votación, salta inmediatamente a la votación más baja, de modo que esta ya no es el caso, independientemente de los temporizadores. la cascada El teorema entonces asegura que todos los rezagados se pongan al día. El resultado es que las papeletas están aproximadamente sincronizadas en todo un país intacto. se establece una vez que el sistema se vuelve sincrónico. 3.2.5 Selección de líder federado La selección de líderes permite a cada nodo elegir líderes de tal manera forma en que los nodos generalmente solo eligen uno o un pequeño número de líderes. Para adaptarse al fracaso del líder, selección del líder procede a través de rondas. Si los líderes de la ronda actual parecen no estar cumpliendo con sus responsabilidades, luego de un ciertos nodos del período de tiempo de espera pasan a la siguiente ronda para ampliar el conjunto de líderes que siguen. Cada ronda emplea dos funciones criptográficas hash únicas, H0 y H1, que generan números enteros en el rango [0,hmax). Por ejemplo, Stellar usa Hi(m) = SHA256(i∥b∥r ∥m), donde b es la instancia SCP general (bloque o número de libro mayor), r es el número de ronda de selección de líder, y hmax = 2256. Dentro una ronda, definimos la prioridad del nodo v como: prioridad(v) = H1(v) Un muñeco de paja sería para que cada nodo eligiera como líder. el nodev con la mayor prioridad (v). Este enfoque funciona bien con porciones de quórum casi idénticas, pero no funciona correctamente Captar la importancia de los nodos en configuraciones desequilibradas. Por ejemplo, si Europa y China aportan cada una 3 nodos para cada quórum, pero China tiene 1000 nodos y Europa 4, entonces China tendrá el nodo de mayor prioridad (99,6%). de la época. Por lo tanto, introducimos una noción de peso de corte, donde peso(u,v) ∈[0, 1] es la fracción de los sectores de quórum del nodo u que contiene el nodo v. Cuando el nodo u selecciona un nuevo líder, sólo considera vecinos, definidos de la siguiente manera: vecinos(u) = { v | H0(v) < hmáx · peso(u,v) } Luego, un nodo comienza con un conjunto vacío de líderes, y en cada round le agrega el nodo v en vecinos(u) con el mayor prioridad (v). Si el conjunto de vecinos está vacío en cualquier ronda, u agrega el nodov con el valor más bajo de H0(v)/peso(u,v).
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.
Verificación formal de SCP
Para eliminar errores de diseño, verificamos formalmente la seguridad de SCP. y propiedades de vida (ver [65]). En concreto, verificamos que los nodos entrelazados nunca están en desacuerdo y que, bajo las condiciones que se analizan más adelante, cada miembro de un conjunto intacto finalmente decide. Curiosamente, la verificación reveló que el Las condiciones bajo las cuales el SCP garantiza la vida son sutiles, y más fuerte de lo que se pensaba inicialmente [68]: como se analiza a continuación, nodos maliciosos que manipulan el tiempo sin otra cosa Es posible que sea necesario desalojar manualmente a aquellos que se desvían del protocolo. de porciones de quórum.
SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. Para garantizar que las propiedades demostradas se mantengan en todos los aspectos posibles. Configuraciones y ejecuciones de Logística de Amazon, consideramos una opción arbitraria. número de nodos con configuraciones locales arbitrarias. esto incluye escenarios con conjuntos intactos desunidos, así como ejecuciones potencialmente infinitamente largas. El inconveniente es que nosotros enfrentar el desafiante problema de verificar un parámetro parametrizado sistema de estados infinitos. Para mantener la verificación manejable, modelamos SCP en lógica de primer orden (FOL) usando Ivy [69] y la metodología de [82]. El proceso de verificación consiste en proporcionar manualmente conjeturas inductivas que luego son verificadas automáticamente por Hiedra. El modelo FOL de SCP resume algunos aspectos de Sistemas FBA que son difíciles de manejar en FOL (por ejemplo, el teorema de la cascada se toma como axioma), por lo que verificamos la solidez de la abstracción usando Isabelle/HOL [75]. Después de expresar el problema de verificación en FOL, verificamos la seguridad proporcionando un invariante inductivo. el inductivo invariante consta de una docena de conjeturas de una sola línea durante aproximadamente 150 líneas de especificación de protocolo. Luego especificamos las propiedades de vida de SCP en la Lógica Temporal Lineal de Ivy y usamos el vida a la reducción de seguridad de [80, 81] para reducir la vida problema de verificación al problema de encontrar un inductivo invariante. Si bien la seguridad de SCP es relativamente sencilla de demostrar, el argumento de la vida de SCP es mucho más complejo y consta de alrededor de 150 invariantes de una sola línea. Demostrar vivacidad requería una formalización precisa de la supuestos bajo los cuales SCP garantiza la terminación. Inicialmente pensamos que un conjunto intacto siempre lo terminaría si todos Los miembros eliminaron nodos defectuosos de sus sectores [68]. Sin embargo, esto resultó ser insuficiente: un hombre bien educado (pero no intacto) nodo en un quórum de un miembro de Puedo, bajo el influencia de nodos defectuosos, evite la terminación completando un quórum justo antes del final de la votación, provocando así Los miembros de I elegirán diferentes valores de x en la próxima votación. Por lo tanto, debemos suponer además que, informalmente, cada nodo en un quórum de un miembro de I eventualmente se vuelve oportuno o no envía ningún mensaje durante un período de tiempo suficiente. En la práctica, esto significa que los miembros de I may necesitan ajustar sus rebanadas hasta que la condición se mantenga. esto El problema no es inherente a los sistemas Logística de Amazon: Losa et al. [47] presente un protocolo cuya vida depende de los estrictamente más débiles suposiciones de una eventual sincronía y una eventual elección de líder, sin la necesidad de eliminar los nodos defectuosos de los cortes.
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ı.
Red de pago
Esta sección describe la red de pago de Stellar, implementada como una máquina de estado replicada [88] encima de SCP. 5.1 modelo de libro mayor El libro mayor de Stellar está diseñado en torno a una abstracción de cuenta (en contraste con la producción de transacciones no gastadas más centradas en monedas o UTXO modelo de Bitcoin). El contenido del libro mayor consta de un conjunto de asientos contables de cuatro tipos distintos: cuentas, líneas de confianza, ofertas y datos de la cuenta. Las cuentas son los principales que poseen y emiten activos. cada uno La cuenta recibe el nombre de una clave pública. De forma predeterminada, la clave privada correspondiente puede firmar transacciones para la cuenta. Sin embargo, las cuentas se pueden reconfigurar para agregar otros firmantes y desautorizar la clave que nombra la cuenta, con un Opción “multisig” para requerir múltiples firmantes. cada cuenta también contiene: un número de secuencia (incluido en las transacciones para evitar la repetición), algunas banderas y un equilibrio en un “nativo” criptomoneda preminada llamada XLM, destinada a mitigar algunos ataques de denegación de servicio y facilitar la creación de mercado como moneda neutral. Las líneas fiduciarias rastrean la propiedad de los activos emitidos, que son nombrado por un par que consta de la cuenta emisora y una cuenta corta código de activo (por ejemplo, “USD” o “EUR”). Cada línea de confianza especifica una cuenta, un activo, el saldo de la cuenta en ese activo, un límite por encima del cual el saldo no puede aumentar, y algunas banderas. Una cuenta debe dar su consentimiento explícito a mantener un activo mediante creando una línea de confianza, evitando que los spammers ensillaran cuentas con activos no deseados. Las regulaciones de Know-your-customer (KYC) requieren que muchas instituciones financieras sepan de quién son los depósitos que tienen, por ejemplo, comprobando una identificación con fotografía. Para cumplir, los emisores pueden establecer una marca auth_reqired opcional en sus cuentas, restringiendo la propiedad de los activos que emiten a cuentas autorizadas. Para otorgar dicha autorización, el emisor fija un límite autorizado marcar las líneas de confianza de los clientes. Las ofertas corresponden a la voluntad de una cuenta de negociar a una cierta cantidad de un activo particular por otro en un momento dado precio en el libro de pedidos; se emparejan automáticamente y se llena cuando los precios de compra/venta se cruzan. Finalmente, los datos de la cuenta constan de triples de cuenta, clave y valor, lo que permite a los titulares de cuentas para publicar pequeños valores de metadatos. Para evitar el spam en el libro mayor, existe un saldo XLM mínimo, llamada reserva. La reserva de una cuenta aumenta con cada asiento contable asociado y disminuye cuando el asiento contable desaparece (por ejemplo, cuando se completa o cancela una orden, o cuando una se elimina la línea de confianza). Actualmente la reserva crece 0,5 XLM (~$0,03) por asiento del libro mayor. Independientemente de la reserva, es Es posible recuperar el valor total de una cuenta eliminando con una operación AccountMerge. Un encabezado de libro mayor, que se muestra en la Figura 3, almacena atributos globales: un número de libro mayor, parámetros como el saldo de reserva por asiento contable, un hash del encabezado del libro mayor anterior (en realidad varios hashes que forman una lista de omisión), la salida de SCP incluye un hash de nuevas transacciones aplicadas en este libro mayor, un hash de los resultados de esas transacciones (por ejemplo, éxito o fracaso para cada uno) y una instantánea hash de todos los asientos del libro mayor. Debido a que la instantánea hash incluye todo el contenido del libro mayor, validators no necesitan conservar el historial para validar las transacciones. Sin embargo, para escalar a cientos de millones de anticipados cuentas, no podemos rehash todas las tablas de asientos contables en cada cierre del libro mayor. Además, no es práctico transferir un libro mayorPagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá libro mayor # = 4 H(hdr anterior) salida SCP H∗(resultados) H∗(instantánea) ... encabezado libro mayor # = 5 H(hdr anterior) salida SCP H∗(resultados) H∗(instantánea) ... encabezado . . . Figura 3. Contenido del libro mayor. H es SHA-256, mientras que H ∗ representa la aplicación jerárquica o recursiva de H. Salida SCP También depende del encabezado anterior hash. Crear cuenta Crear y financiar un nuevo asiento de cuenta en el libro mayor Fusión de cuentas Eliminar asiento del libro mayor de cuenta Establecer opciones Cambiar indicadores y firmantes de cuentas Pago Pagar una cantidad específica de activo al destino. cuenta RutaPago Como Pago, pero paga en un activo diferente (hasta limitar); especificar hasta 5 activos intermediarios AdministrarOferta Crear/eliminar/cambiar asiento de libro mayor de ofertas, -Oferta Pasiva con variante pasiva para permitir un spread cero Administrar datos Crear/eliminar/cambiar cuenta. entrada de datos en el libro mayor CambiarConfianza Crear/eliminar/cambiar línea de confianza Permitir confianza Establecer o borrar la bandera autorizada en la línea de confianza Secuencia de golpes Aumentar sec. numero en cuenta Figura 4. Operaciones del libro mayor principal de ese tamaño cada vez que un nodo se ha desconectado de la red durante demasiado tiempo. Por lo tanto, la instantánea hash es diseñado para optimizar tanto la hashing como la conciliación estatal. Específicamente, la instantánea estratifica los asientos del libro mayor por tiempo. de la última modificación en un conjunto de contenedores de tamaño exponencial llamados cubos. La colección de cubos se llama cubo. lista, y tiene cierta similitud con los árboles de fusión estructurados logarítmicamente (árboles LSM) [77]. La lista de deseos no se lee durante el procesamiento de transacciones (consulte la Sección 5.4). Por lo tanto, cierto diseño Se pueden relajar algunos aspectos de los árboles LSM. En particular, al azar No se requiere acceso mediante clave y los depósitos solo se leen. secuencialmente como parte de la fusión de niveles. Haciendo el cubo La lista se realiza hashing cada depósito a medida que se fusiona y calculando un nuevo hash acumulativo del depósito hashes (un pequeño, índice fijo de referencia hashes) en cada cierre del libro mayor. Conciliar la lista de deseos después de la desconexión requiere descarga sólo cubos que difieren. 5.2 Modelo de transacción Una transacción consta de una cuenta fuente, criterios de validez, una memorándum y una lista de una o más operaciones. La Figura 4 enumera las operaciones disponibles. Cada operación tiene una cuenta fuente, que por defecto es el de la transacción global. Una transacción debe estar firmado por claves correspondientes a cada cuenta de origen en una operación. Las cuentas multifirma pueden requerir una firma más alta peso para algunas operaciones (como SetOptions) y menor para otros (como AllowTrust). Las transacciones son atómicas: si alguna operación falla, ninguna de ellas ellos ejecutan. Esto simplifica los acuerdos multidireccionales. Supongamos que un El emisor crea un activo para representar títulos de propiedad y el usuario A. quiere cambiar una pequeña parcela de tierra más $10,000 por una parcela de tierra más grande propiedad de B. Los dos usuarios pueden firmar una única transacción que contiene tres operaciones: dos terrenos Pagos y pago de un dólar. El principal criterio de validez de una transacción es su número de secuencia, que debe ser uno mayor que el de la transacción. asiento contable de la cuenta fuente. Ejecutar una transacción válida (con éxito o no) incrementa el número de secuencia, evitando la repetición. Los números de secuencia iniciales contienen el libro mayor. número en los bits altos para evitar la reproducción incluso después de eliminar y volver a crear una cuenta. El otro criterio de validez es un límite opcional sobre cuándo se puede ejecutar una transacción. Volviendo a la tierra y al dólar intercambio anterior, si A firma la transacción antes que B, A no puede quiere que B se quede sentado en la transacción durante un año antes de presentarla ello, y por lo tanto podría imponer un límite de tiempo que invalida la transacción después de unos días. También se pueden configurar cuentas multifirma para dar peso de firma a la revelación de una preimagen hash, que, combinado con límites de tiempo, permite el comercio atómico entre cadenas [1]. La cuenta fuente de una transacción paga una tarifa trivial en XLM, 10-5 XLM a menos que haya congestión. En condiciones de congestión, el El coste de las operaciones se fija en una subasta holandesa. Los validadores son no compensado por tarifas porque los validators son análogos a Bitcoin nodos completos, no mineros. En lugar de destruir XLM, las tarifas se reciclan y distribuyen proporcionalmente mediante el voto de titulares de XLM existentes, que en retrospectiva podrían o podrían No habría valido la pena la complejidad. 5.3 Valores de consenso Para cada libro mayor, Stellar utiliza SCP para acordar una estructura de datos con tres campos: un conjunto de transacciones hash (incluido un hash del encabezado del libro mayor anterior), una hora de cierre, unaactualizaciones. Cuando se confirma la nominación de varios valores, Stellar toma el conjunto de transacciones con más operaciones (rompiendo lazos por tarifas totales, luego conjunto de transacciones hash), la unión de todos actualizaciones y el tiempo de cierre más alto. Un tiempo cercano es sólo válido si es entre la hora de cierre del último libro mayor y la presente, por lo que los nodos no nominan tiempos no válidos. Las actualizaciones ajustan parámetros globales como el saldo de reserva, la tarifa mínima de operación y la versión del protocolo. cuando combinados durante la nominación, las tarifas más altas y los números de versión del protocolo reemplazan a los más bajos. Las actualizaciones afectan la gobernanza a través de un espacio de disputa de votación federada [34], ninguno de los dos igualitario ni centralizado. Cada validator está configurado como ya sea gobernante o no gubernamental (el valor predeterminado), según a si su operador quiere participar en la gobernanza. Los validator que gobiernan consideran tres tipos de actualización: deseado, válido e inválido (cualquier cosa que el validator no
SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. validator núcleo horizonte FS DB DB enviar cliente cliente otros validators Figura 5. Arquitectura Stellar validator saber implementar). Las actualizaciones deseadas se configuran para desencadenar en un momento específico, destinado a ser coordinado entre operadores. Los nodos gobernantes siempre votan para nominar a los candidatos deseados. actualizaciones, acepte pero no vote para nominar actualizaciones válidas (es decir, aceptar un quórum de bloqueo) y nunca votar por o aceptar actualizaciones no válidas. Eco no gubernamental de validators cualquier voto que vean para una actualización válida, esencialmente delegando la decisión sobre qué actualizaciones se desean para aquellos que optan para un rol de gobernanza. 5.4 Implementación La Figura 5 muestra la arquitectura validator de Stellar. un demonio llamado stellar-core (~92k líneas de C++, sin contar bibliotecas de terceros) implementa el protocolo SCP y la máquina de estado replicada. Producir valores para SCP requiere reducir un gran número de entradas del libro mayor a pequeños valores criptográficos. hashes. Por el contrario, la validación y ejecución de transacciones requiere buscar el estado de la cuenta y la correspondencia de pedidos en el mejor precio. Para cumplir ambas funciones de manera eficiente, stellar-core mantiene dos representaciones del libro mayor: una representación externa que contiene la lista de deseos, almacenada como archivos binarios que se puede actualizar de manera eficiente y modificar incrementalmentehash, y una representación interna en una base de datos SQL (PostgreSQL para nodos de producción). Stellar-core crea un archivo histórico de solo escritura que contiene cada conjunto de transacciones que se confirmó y instantáneas de cubos. El archivo permite que los nuevos nodos se inicien solos al unirse a la red. También proporciona un registro del libro mayor. historia: es necesario que haya algún lugar donde se pueda buscar una transacción de hace dos años. Dado que el historial es solo para agregar y se accede con poca frecuencia, se puede guardar en lugares baratos como Amazon Glacier o cualquier servicio que permita almacenar y recuperar archivos planos. Los hosts validadores normalmente no alojan sus propios archivos para evitar cualquier impacto en la validación desempeño de la historia del servicio. Para mantener simple el núcleo estelar, no está diseñado para ser utilizado directamente por las aplicaciones y expone sólo una interfaz muy estrecha para el envío de nuevas transacciones. para apoyar clientes, la mayoría de los validator ejecutan un demonio llamado horizonte (∼18k líneas de Go) que proporciona una interfaz HTTP para enviar y aprendizaje de transacciones. horizonte tiene acceso de sólo lectura a base de datos SQL de stellar-core, minimizando el riesgo de horizonte núcleo estelar desestabilizador. Funciones como la búsqueda de rutas de pago se implementan completamente en el horizonte y se pueden actualizar unilateralmente sin coordinarse con otros validators. Varios demonios opcionales de capa superior son clientes del horizonte, completando el ecosistema. Un servidor puente facilita integración de Stellar con sistemas existentes, por ejemplo, publicación de notificaciones de todos los pagos recibidos por una cuenta específica. un El servidor de cumplimiento proporciona ganchos para que las instituciones financieras intercambiar y aprobar información del remitente y del beneficiario sobre pagos, para el cumplimiento de listas de sanciones. Finalmente, un servidor de federación implementa un nombre legible por humanos sistema de cuentas. 6 Experiencia de implementación Stellar creció durante varios años hasta convertirse en un estado con una moderada número de operadores de nodo completo razonablemente confiables. Sin embargo, Las configuraciones de los nodos eran tales que la vida (aunque no seguridad) dependía de nosotros, la Fundación para el Desarrollo Stellar (FDS); Si SDF hubiera desaparecido repentinamente, otros operadores de nodos Habría sido necesario intervenir y eliminarnos manualmente. de porciones de quórum para que la red continúe. Si bien nosotros y muchos otros queremos reducir la importancia sistémica del SDF, este objetivo recibió una prioridad cada vez mayor después de Los investigadores [58] cuantificaron y dieron a conocer la centralización de la red sin diferenciar los riesgos para la seguridad y vivacidad. Varios operadores reaccionaron con ajustes activos de configuración, principalmente aumentando el tamaño de su divisiones de quórum en un esfuerzo por diluir la importancia del SDF; Irónicamente, esto sólo aumentó el riesgo para la vida. Dos problemas agravaron la situación. Primero, un popular herramienta de monitoreo de terceros Stellar [5] fue sistemáticamente sobreestimar el tiempo de actividad de validator al no verificarlo ese núcleo estelar estaba funcionando; esto lleva a la gente a incluir nodos poco confiables en sus sectores de quórum. En segundo lugar, un error en núcleo estelar significaba que una vez que un validator se movía al siguiente libro mayor, no ayudó adecuadamente a los nodos restantes a completar el proceso anteriorlibro mayor en caso de pérdida de mensajes. Como resultado, el La red experimentó 67 minutos de inactividad y requirió coordinación manual por parte de validator administradores para reiniciar. Peor aún, al intentar reiniciar la red, se produjeron reconfiguraciones apresuradas simultáneas en varios nodos. en una mala configuración colectiva que permitió que algunos nodos divergen, lo que requiere un apagado manual de esos nodos y nueva presentación de las transacciones aceptadas durante la divergencia. Afortunadamente, esta divergencia fue detectada y corregida. rápidamente y no contenía transacciones conflictivas, pero el riesgo de que la red no pueda disfrutar de la intersección del quórum: dividiéndose mientras se continúa aceptando situaciones potencialmente conflictivas. transacciones, simplemente debido a una mala configuración, se realizó muy concreto por este incidente. La revisión de estas experiencias llevó a dos conclusiones principales. y las acciones correctivas correspondientes.Pagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Crítico, 100% 51% 51% Alto, 67% 51% Medio, 67% 51% Bajo, 67% 51% 51% ... ... ... 51% ... 51% Figura 6. Jerarquía de calidad del validador. Nodos de la más alta calidad requieren el umbral más alto del 100%, mientras que las calidades más bajas están configuradas con un umbral del 67%. Nodos dentro de un solo organización requiere una mayoría simple del 51%. 6.1 Complejidad y fragilidad de la configuración. Stellar expresa sectores de quórum como conjuntos de quórum anidados que constan de n entradas y un umbral k donde cualquier conjunto de k entradas constituye una porción de quórum. Cada una de las n entradas entonces es una clave pública validator o, de forma recursiva, otro conjunto de quórum. Aunque flexibles y compactos, implementamos el quórum anidado conjuntos simultáneamente brindaban a los operadores de nodos demasiada flexibilidad y muy poca orientación: era fácil escribir datos inseguros (o incluso configuraciones sin sentido). Los criterios para agrupar nodos en conjuntos, para organizar subconjuntos en una jerarquía, y para elegir los umbrales no fueron suficientemente claros y contribuyeron a fallos operativos. No estaba claro si tratar un "nivel" en la jerarquía de conjuntos anidados como un nivel de confianza, o una organización, o ambos; muchas configuraciones en el campo mezcló estos conceptos, además de especificar peligros o umbrales sin sentido. Por lo tanto, agregamos un mecanismo de configuración más simple. que separa dos aspectos de los conjuntos de quórum anidados: agrupación nodos juntos por organización y etiquetando cada organización con una clasificación de confianza simple (baja, media, alta o crítico). Las organizaciones en niveles superiores y superiores deben publicar archivos de historia. El nuevo sistema sintetiza conjuntos de quórum anidados en los que cada organización está representada como un Se establece un umbral del 51 % y las organizaciones se agrupan en conjuntos con umbrales del 67% o 100% (dependiendo de la calidad del grupo). Cada grupo es una entrada única en el siguiente grupo (de mayor calidad), como se ilustra en la Figura 6. Este modelo simplificado reduce la probabilidad de una mala configuración, tanto en términos de la estructura de los conjuntos anidados sintetizados y los umbrales elegidos para cada conjunto. 6.2 Detección proactiva de errores de configuración En segundo lugar, nos dimos cuenta de que detectar la mala configuración colectiva esperando a observar sus efectos negativos es demasiado tarde. Especialmente con respecto a configuraciones erróneas que pueden divergir: un modo de falla más grave que detenerse: la red necesita para poder detectar errores de configuración inmediatamente para que los operadores puedan revertirlos antes de que ocurra cualquier divergencia. Para abordar esta necesidad, construimos un mecanismo en el software validator que recopila continuamente el estado de configuración colectiva de todos los pares en el cierre transitivo del nodo y detecta el potencial de divergencia, es decir, disjuntos. quórums, dentro de esa configuración colectiva. 6.2.1 Comprobando la intersección del quórum Si bien reunir porciones de quórum es fácil, encontrar quórums disjuntos entre ellas es co-NP-difícil [62]. Sin embargo, adoptamos un conjunto de heurísticas algorítmicas y reglas de eliminación de casos propuesto por Lachowski [62] que verifica casos típicos del problema varios órdenes de magnitud más rápido que el costo en el peor de los casos. En la práctica, la red actual Los cierres transitivos de sectores de quórum son del orden de 20 a 30. nodos y, con las optimizaciones de Lachowski, normalmente verifica en cuestión de segundos en una sola CPU. Si surge la necesidad Para mejorar el rendimiento, podemos paralelizar la búsqueda. 6.2.2 Comprobando configuraciones riesgosas Detectar que la red admite quórums disjuntos es un paso en la dirección correcta, pero advierte el peligro incómodamente tarde para un tema tan crítico. Idealmente, queremos que los operadores de nodos reciban advertencias cuando la configuración colectiva de la red simplemente se está acercando a un estado de riesgo. Por lo tanto, ampliamos el verificador de intersección de quórum para detectar una condición que llamamos criticidad: cuando la corriente La configuración colectiva está a una mala configuración de un estado que admite quórumes disjuntos. Para detectar la criticidad, el verificador reemplaza repetidamente la configuración de cada organización con una configuración incorrecta simulada en el peor de los casos, luego Vuelve a ejecutar el verificador de intersección del quórum interno en el resultado. Si existe algún error de configuración crítico, a un paso de distancia desde el estado actual, el software emite una advertencia y informa que la organización presenta un riesgo de configuración incorrecta. Estos cambios dan a la comunidad de operadores dos capas de aviso y orientación para aislarse contra las peores formas de una mala configuración colectiva.
Ö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.
Evaluación

Comprender la idoneidad de Stellar como pago global y red comercial, evaluamos el estado de la red pública y realizó experimentos controlados en un laboratorio experimental privado. red. Nos centramos en las siguientes preguntas: • ¿Cómo es la topología de la red de producción? ¿Cuántos mensajes se transmiten en promedio y ¿Cómo experimenta SCP los tiempos de espera? • ¿Las latencias de actualización del consenso y del libro mayor siguen siendo independientes del número de cuentas?SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. • ¿Cómo se ven afectadas las latencias por el aumento de (a) las transacciones por segundo (y, en consecuencia, las transacciones por segundo)? libro mayor), y (b) el número de validator nodos? • ¿Cuál es el costo de ejecutar un nodo en términos de CPU? memoria y ancho de banda de la red? Las redes de pago tienen tasas de transacción bajas en comparación a otros tipos de sistemas distribuidos. Los principales blockchains, Bitcoin y Ethereum, confirman hasta 15 transacciones/segundo, menos de Stellar. Además, estos sistemas tardan unos minutos en Una hora para confirmar una transacción de forma segura, porque la prueba de trabajo requiere esperar a que se extraigan varios bloques. el La red SWIFT no blockchain promedió solo 420 transacciones por segundo en su día pico [14]. Por lo tanto elegimos para comparar nuestras mediciones con el objetivo de 5 segundos intervalo del libro mayor, un objetivo más agresivo. Nuestros resultados muestran que las latencias están cómodamente por debajo de este límite incluso con Varias optimizaciones no implementadas aún están en proceso. 7.1 Anclas Los principales activos negociados por volumen incluyen divisas (por ejemplo, 3 USD anclas, 2 CNY), un ancla Bitcoin, un valor respaldado por bienes raíces token [92] y una moneda en la aplicación [8]. Diferentes anclas tienen diferentes políticas. Por ejemplo, un ancla en USD, Stronghold, establece auth_reqired y requiere un proceso de conocimiento de su cliente (KYC) para cada cuenta que tenga su activos. Otro, AnchorUSD, cualquiera puede recibir e intercambiar sus USD (haciendo literalmente posible enviar $0.50 a México en 5 segundos con una tarifa de $0.000001). Sin embargo, AnchorUSD requiere KYC y tarifas para comprar o canjear sus USD con transferencias bancarias convencionales. En Filipinas, donde Las regulaciones bancarias son más laxas para los pagos entrantes, monedas.ph admite el retiro de PHP en cualquier cajero automático [36]. Además de la seguridad token mencionada anteriormente y la moneda de la aplicación, existe una variedad de tokens no monetarios que van desde bonos comerciales [22] y créditos de carbono [85, 96] a más activos esotéricos como un token que incentiva la colaboración recuperación del automóvil [35]. 7.2 Red pública Al momento de escribir este artículo, hay 126 nodos completos activos, 66 de los cuales participar en el consenso firmando mensajes de voto. Figura 7 (generado por [5]) visualiza la red, con una línea entre dos nodos si uno aparece en los sectores de quórum del otro y un Línea azul más oscura para mostrar dependencia bidireccional. en el El centro es un grupo de 17 “validators de nivel uno” de facto dirigidos por SDF, SatoshiPay, LOBSTR, COINQVEST y Keybase. Hace cuatro meses, antes de los acontecimientos de la Sección 6, había Había 15 nodos sistémicamente importantes: 3 de aparentemente organizaciones de primer nivel y varios singletons aleatorios. el El gráfico también parecía mucho menos regular. Por lo tanto, el nuevo mecanismo de configuración y/o mejores decisiones del operador parecen contribuir a una topología de red más saludable. sin Grandes recursos financieros (y el correspondiente accionista). Figura 7. Mapa de porción de quórum obligaciones), hubiera sido difícil reclutar 5 niveles uno organizaciones desde el principio. Esto sugiere quórum Los sectores desempeñan un papel útil en el arranque de la red: cualquiera puede unirse con el objetivo de convertirme en un jugador importante porque no existen barreras para el acuerdo por parejas. Actualmente hay más de 3,3 millones de cuentas en el libro mayor. Más En un período reciente de 24 horas, Stellar promedió 4,5 transacciones y 15,7 operaciones por segundo. Revisando los libros de contabilidad recientes, la mayoría Las transacciones parecen tener una sola operación, mientras que cada pocos En los libros mayores vemos transacciones que contienen muchas operaciones que parecen provenir de creadores de mercado que gestionan ofertas. el Los tiempos medios para lograr el consenso y actualizar el libro mayor fueron 1061 ms y 46 ms, respectivamente. Los percentiles 99 fueron 2252 ms y 142 ms (el primero refleja un tiempo de espera de 1 segundo en la selección del líder de nominación). Tenga en cuenta que el rendimiento de SCP es en su mayoría independiente de las transacciones por segundo, ya que SCP acuerda un hash de muchas transacciones arbitrarias. Es más probable que surjan cuellos de botella al propagar el candidato. transacciones durante la nominación, ejecución y validación transacciones y fusión de depósitos. todavía no hemos necesitado para paralelizar el procesamiento de transacciones de stellar-core en múltiples núcleos de CPU o unidades de disco. También evaluamos la cantidad de mensajes SCP transmitidos. en la red de producción. En el caso normal con un solo líder elegido para nominar un valor, esperamos siete lógicas mensajes a difundir: dos mensajes para votar y aceptar una nomiDeclaración de nacimiento, dos mensajes para aceptar y confirmar. una declaración de preparación, dos mensajes para aceptar y confirmar una declaración de confirmación y, finalmente, un mensaje de externalización (enviado después de enviar un nuevo libro mayor al disco para ayudar a los rezagados ponerse al día). La implementación combina confirmar el compromiso. y externalizar mensajes como una optimización, ya que es Es seguro externalizar un valor una vez comprometido. Luego analizamos las métricas recopiladas en una producción Stellar validator. Más En el transcurso de 68 horas se emitieron 1,3 mensajes/segundo, con un promedio de 6 a 7 mensajes por libro mayor. Observamos que el total
Pagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá percentil Número de tiempos de espera Nominación votación 75% 0 0 99% 1 0 máx. 4 1 Figura 8. Tiempos de espera por libro mayor de 68 horas El recuento de mensajes transmitidos por validators es mayor, ya que en Además de los mensajes de votación federados, los nodos también transmiten cualquier transacción que conozcan. La Figura 8 muestra los tiempos de espera experimentados por una producción. validator durante un período de 68 horas. Los tiempos de espera para las nominaciones son una medida de la (in)eficacia de la función de elección del líder, mientras que los tiempos de espera de las votaciones dependen en gran medida de la red y posibles retrasos en los mensajes. Los tiempos de espera son consistentes. con el número de mensajes emitidos: seis mensajes en el en el mejor de los casos, y al menos siete mensajes si se necesita una ronda de nominaciones adicional. 7.3 Experimentos controlados Realizamos experimentos controlados en contenedores empaquetados en Instancias Amazon EC2 c5d.9xlarge con 72 GiB de RAM, 900 GB de SSD NVMe y 36 vCPU. Cada instancia estaba en la misma región EC2 y tenía un ancho de banda fijo de 10 Gbps. Usamos SQLite como tienda. (Stellar también es compatible con PostgreSQL, pero eso tiene tareas asincrónicas que inyectan ruido en las mediciones). Stellar proporciona una consulta de tiempo de ejecución integrada, generateload, que permite generar carga sintética en un objetivo específico transacción/segunda tasa. Aunque Stellar admite varios Funciones comerciales, como libro de órdenes y ruta entre activos. pagos, nos centramos en pagos simples. La confirmación de transacciones consta de varios pasos, por lo que registró las medidas para cada uno de los siguientes: • Nominación: tiempo desde la nominación hasta la primera preparación. • Votación: tiempo desde la primera preparación hasta la confirmación de una boleta comprometida • Actualización del libro mayor: es hora de aplicar el valor de consenso • Recuento de transacciones: transacciones confirmadas por libro mayor Cada uno de nuestros experimentos estuvo definido por tres parámetros: el número de asientos de cuenta en el libro mayor, la cantidad de carga (en forma de pagos XLM) enviada por segundo, y el número de validators. Configuramos cada validator saber sobre todos los demás validator (el peor de los casos para SCP), con porciones de quórum establecidas en cualquier mayoría simple de nodos (para maximizar el número de quórums diferentes). Línea de base Nuestro experimento de referencia midió Stellar con 100.000 cuentas, cuatro validator y la generación de carga tasa de 100 transacciones/segundo. Observamos 507 transacciones por libro mayor en promedio, con una desviación estándar de 49 (9,7%). Tenga en cuenta que no se descartaron transacciones; el ligero 105 106 107 0 500 1.000 1.500 2.000 Cuentas Latencia [ms] Actualización del libro mayor votación Nominación Figura 9. Latencia a medida que aumenta el número de cuentas La variación se debe a limitaciones de programación del generador de carga. Observamos que el número de transacciones por libro mayor fue consistente con nuestra tasa de generación de carga, dado el libro mayor cerrando cada 5 segundos. Nominación, votación y libro mayor La actualización mostró latencias medias de 82,53 ms, 95,96 ms y 174,08 ms, respectivamente. Observamos que la latencia de nominación El percentil 99 está constantemente por debajo de 61 ms, con ocasionales picos de aproximadamente 1 segundo, correspondientes al primer paso en la función de tiempo de espera de la selección de líder. Dado el desempeño de referencia, analizamos los efectos de variar cada uno de los parámetros de configuración de la prueba. Cuentas Los datos de la Figura 9 sugieren que Stellar escala así como el número de cuentas aumenta. Generación de prueba Las cuentas se convirtieron en un proceso largo, ya que la creación de depósitos y la fusión nos impidió simplemente poblar la base de datos con cuentas directamente a través de SQL. Por lo tanto, llevamos a cabo nuestra experimentos para hasta 50.000.000 de cuentas. mientras hay impacto mínimo en las latencias de actualización del consenso y del libro mayor, observamos que el aumento de cuentas crea un gasto general de fusionando cubos, que se hacen más grandes. Tasa de transacción La tasa de transacción afecta la cantidad de multidifusión de tráfico entre validators, el número de transacciones incluidas en cada libro mayor y el tamaño del nivel superior cubos. Comprender los efectos del aumento de las transacciones. carga, realizamos un experimento con 100.000 cuentas y 4 validators. La Figura 10 muestra un lento crecimiento en la latencia del consenso, mientras que la mayor parte del tiempo se dedicó a actualizar el libro mayor. No es sorprendente que a medida que el conjunto de transacciones aumenta de tamaño, lleva más tiempo enviarlo a la base de datos. También notamos que La latencia de actualización del libro mayor depende en gran medida de la implementación. y se ve afectado por la elección de la base de datos. Nodos validadores Para ver cómo aumenta el número de tíone validatorsimpacta el rendimiento, realizamos experimentos con 100.000 cuentas, 100 transacciones por segundo y un número variable de validators de 4 a 43. Aparecieron todos los validators en todos los sectores de quórum de validators; porciones de quórum más pequeñas tienen un menor impacto en el rendimiento.SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá Lokhava et al. 100 150 200 250 300 350 0 500 1.000 1.500 2.000 Carga [transacciones/segundo] Latencia [ms] Actualización del libro mayor votación Nominación Figura 10. Latencia a medida que aumenta la carga de transacciones 10 20 30 40 0 500 1.000 1.500 2.000 Validadores Latencia [ms] Actualización del libro mayor votación Nominación Figura 11. Latencia a medida que aumenta el número de nodos Cambiar el número de nodos de validación en la red afecta la cantidad de mensajes SCP intercambiados, así como el número de valores potenciales durante la nominación. Figura 11 muestra que el tiempo de nominación crece a un ritmo relativamente pequeño. Si bien los datos sugieren que las votaciones son el cuello de botella, Creemos que muchos problemas de escala se pueden abordar mejorando Red superpuesta de Stellar para optimizar el tráfico de red. como Como era de esperar, la latencia de actualización del libro mayor se mantuvo independiente de el número de nodos. Tasa de cierre Por último, queríamos medir el rendimiento de extremo a extremo de Stellar midiendo la frecuencia con la que se confirman los libros de contabilidad y si Stellar cumple su objetivo de 5 segundos sin abandonar cualquier transacción. Observamos un cierre promedio del libro mayor tiempos de 5,03 s, 5,10 s y 5,15 s a medida que aumentamos la cuenta entradas, tasa de transacción y número de nodos, respectivamente. Los resultados sugieren que Stellar puede cerrar libros contables de forma consistente bajo carga alta. 7.4 Ejecutando un validator Una de las características importantes de Stellar es el bajo costo de ejecutando un validator, ya que los anclajes deben ejecutarse (o contraerse) validators para hacer cumplir la finalidad. SDF ejecuta 3 validator de producción, todos en instancias c5.large de AWS, que tienen dos núcleos, 4 GiB de RAM y CPU Intel(R) Xeon(R) Platinum 8124M @ Procesadores de 3,00 GHz. Inspeccionar el uso de recursos en uno de estas máquinas, observamos el proceso Stellar usando alrededor del 7% de la CPU y 300 MiB de memoria. En términos de tráfico de red, con 28 conexiones a pares y un tamaño de quórum de 34, las velocidades entrantes y salientes fueron de 2,78 Mbit/s y 2,56 Mbit/s, respectivamente. Hardware necesario para ejecutar tal El proceso es económico. En nuestro caso, el coste es de 0,054$/hora. o alrededor de $40/mes. 7.5 Trabajo futuro Estos experimentos sugieren que Stellar puede escalar fácilmente entre 1 y 2 pedidos de magnitud más allá del uso actual de la red. porque el Las demandas de rendimiento han sido tan modestas hasta la fecha, Stellar deja espacio para muchas optimizaciones sencillas utilizando técnicas bien conocidas. Por ejemplo, transacciones y SCP los mensajes son transmitidos por validators usando una inundación ingenua protocolo, pero idealmente debería utilizar métodos más eficientes y estructurados. multidifusión punto a punto [30]. Además, con muchas bases de datos El tiempo de actualización del libro mayor se puede mejorar mediante técnicas estándar de procesamiento por lotes y captación previa.
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.
Conclusión
Los pagos internacionales son caros y tardan días. Fondo la custodia pasa a través de múltiples instituciones financieras, incluidos bancos corresponsales y servicios de transferencia de dinero. Debido a que se debe confiar plenamente en cada salto, es difícil para los nuevos nuevos participantes ganen cuota de mercado y compitan. Stellar muestra cómo enviar dinero a todo el mundo de forma económica en segundos. el La innovación clave es un nuevo protocolo de acuerdo bizantino de membresía abierta, SCP, que aprovecha la estructura de igual a igual. de la red financiera para lograr un consenso global bajo un Nueva hipótesis de Internet. SCP permite que Stellar se comprometa atómicamente transacciones irreversibles entre participantes arbitrarios que no se conocen ni confían el uno en el otro. Esto, a su vez, garantiza a los nuevos participantes el acceso a los mismos mercados establecidos. jugadores, hace que sea seguro obtener el mejor intercambio disponible tasas incluso de creadores de mercado que no son de confianza, y dramáticamente Reduce la latencia de pago. Agradecimientos Stellar no estaría donde está hoy sin el temprano liderazgo de Joyce Kim o las tremendas contribuciones de Scott Fleckenstein y Bartek Nowotarski en la construcción y manteniendo horizonte, el SDK Stellar y otras piezas clave del ecosistema Stellar. También agradecemos a Kolten Bergeron, Henry Corrigan-Gibbs, Candace Kelly, Kapil K. Jain, Boris Reznikov, Jeremy Rubin, Christian Rudder, Eric Saunders, Torsten Stüber, Tomer Weller, los revisores anónimos y nuestra pastora Justine Sherry por sus útiles comentarios sobre borradores anteriores. Descargo de responsabilidad La contribución del profesor Mazières a esta publicación fue como consultor remunerado y no formó parte de su Deberes o responsabilidades de la Universidad de Stanford.
Pagos globales rápidos y seguros con Stellar SOSP ’19, 27 al 30 de octubre de 2019, Huntsville, ON, Canadá
Çö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