BR112020012449A2 - fast and resilient block chains to partition - Google Patents

fast and resilient block chains to partition Download PDF

Info

Publication number
BR112020012449A2
BR112020012449A2 BR112020012449-4A BR112020012449A BR112020012449A2 BR 112020012449 A2 BR112020012449 A2 BR 112020012449A2 BR 112020012449 A BR112020012449 A BR 112020012449A BR 112020012449 A2 BR112020012449 A2 BR 112020012449A2
Authority
BR
Brazil
Prior art keywords
block
entity
cycle
user
fact
Prior art date
Application number
BR112020012449-4A
Other languages
Portuguese (pt)
Inventor
Georgios Vlachos
Jing Chen
Sergey Gorbunov
Silvio Micali
Original Assignee
Algorand Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Algorand Inc. filed Critical Algorand Inc.
Publication of BR112020012449A2 publication Critical patent/BR112020012449A2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Trata-se de um sistema de transação no qual as transações são organizadas em blocos, em que um novo bloco Br de transações válidas é construído, com relação a uma sequência de blocos anteriores B0,..., Br-1, fazendo com que uma entidade determine uma quantidade Q a partir dos blocos anteriores, fazendo com que uma entidade use uma chave secreta a fim de computar uma linha S unicamente associada à Q e à entidade, fazendo com que a entidade compute, a partir de S, uma quantidade T que é um dentre: S por si só, uma função de S e/ou um valor hash de S, fazendo com que a entidade determine a possibilidade de T possuir uma determinada propriedade e, se T possuir a determinada propriedade, fazer com que a entidade assine digitalmente um valor hash H de Br e torne S, Br disponível e uma versão digitalmente assinada de H, em que Br pode ser proposto em etapas diferentes do ciclo r e pode ser proposto novamente múltiplas vezes durante o ciclo r, e uma entidade pode verificar um valor hash H de um bloco B independentemente de a entidade ter recebido ou não B.It is a transaction system in which transactions are organized in blocks, in which a new Br block of valid transactions is built, with respect to a sequence of previous blocks B0, ..., Br-1, making an entity determines a quantity Q from the previous blocks, causing an entity to use a secret key in order to compute a line S solely associated with Q and the entity, causing the entity to compute, from S, a quantity T which is one of: S by itself, a function of S and / or a hash value of S, causing the entity to determine the possibility of T having a certain property and, if T has a certain property, causing the entity digitally signs a hash value H of Br and makes S, Br available and a digitally signed version of H, where Br can be proposed at different stages of cycle r and can be proposed again multiple times during cycle r, and an entity can check a hash value H of u block B regardless of whether the entity has received B.

Description

Relatório descritivo da patente de invenção para “CADEIAS DE BLOCOS RÁPIDAS E RESILIENTES À PARTIÇÃO”Descriptive report of the invention patent for “QUICK AND RESILIENT BLOCK CHAINS TO PARTITION”

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOSCROSS REFERENCE TO RELATED ORDERS

[0001] Este pedido reivindica a prioridade do Pedido de Patente Provisório nº U.S. 62/607.558, depositado em 19 de dezembro de 2017, e intitulado FASTER BYZANTINE AGREEMENT IN PROPAGATION NETWORKS WITH > 2/3 HONEST MAJORITY, e do Pedido de Patente Provisório nº U.S. 62/632.944, depositado em 20 de fevereiro de 2018, e intitulado ALGORAND, e do Pedido de Patente Provisório nº U.S. 62/643.331, depositado em 15 de março de 2018, e intitulado INCENTIVES AND TRANSACTION FEES IN ALGORAND, e do Pedido de Patente Provisório nº U.S. 62/777.410, depositado em 10 de dezembro de 2018, e intitulado VIRTUAL BLOCKCHAIN PROTOCOLS FOR FAIR ELECTRONIC EXCHANGE, e do Pedido de Patente Provisório nº U.S. 62/778.482, depositado em 12 de dezembro de 2018, e intitulado VIRTUAL BLOCKCHAIN PROTOCOLS FOR FAIR ELECTRONIC EXCHANGE, que são todos incorporados a título de referência ao presente documento.[0001] This application claims the priority of Provisional Patent Application No. US 62 / 607,558, filed on December 19, 2017, and entitled FASTER BYZANTINE AGREEMENT IN PROPAGATION NETWORKS WITH> 2/3 HONEST MAJORITY, and Provisional Patent Application No. US 62 / 632,944, filed on February 20, 2018, and entitled ALGORAND, and Provisional Patent Application No. US 62 / 643,331, filed on March 15, 2018, and entitled INCENTIVES AND TRANSACTION FEES IN ALGORAND, and the Application for Provisional Patent No. 62 / 777,410, filed on December 10, 2018, and entitled VIRTUAL BLOCKCHAIN PROTOCOLS FOR FAIR ELECTRONIC EXCHANGE, and Provisional Patent Application No. 62 / 778,482, filed on December 12, 2018, and entitled VIRTUAL BLOCKCHAIN PROTOCOLS FOR FAIR ELECTRONIC EXCHANGE, which are all incorporated by reference into this document.

CAMPO DA TÉCNICATECHNICAL FIELD

[0002] Este pedido se refere ao campo de transações eletrônicas e, mais particularmente, ao campo de razões públicas distribuídas, que asseguram os conteúdos de sequência de blocos de transação e a verificação de pagamentos eletrônicos.[0002] This request refers to the field of electronic transactions and, more particularly, to the field of distributed public reasons, which ensure the contents of sequence of transaction blocks and the verification of electronic payments.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[0003] Uma cadeia de blocos consiste em uma sequência aumentável de blocos: B1, B2, . . . , em que cada bloco consiste em um número de transações, o hash do bloco anterior, e outros dados —por exemplo, o índice do bloco, informações de tempo, etc. Propriedades úteis de uma cadeia de blocos são que (P1) há um único bloco que corresponde a cada índice 1, 2, . . . , (P2) cada usuário no sistema eventualmente aprende o conteúdo de cada bloco, (P3) ninguém pode alterar o conteúdo ou a ordem dos blocos, e (P4) qualquer transação válida eventualmente entrará em um bloco na cadeia.[0003] A chain of blocks consists of an expandable sequence of blocks: B1, B2,. . . , where each block consists of a number of transactions, the hash of the previous block, and other data — for example, the block index, timing information, etc. Useful properties of a chain of blocks are that (P1) there is a single block that corresponds to each index 1, 2,. . . , (P2) each user in the system eventually learns the content of each block, (P3) no one can change the content or order of the blocks, and (P4) any valid transaction will eventually enter a block in the chain.

[0004] Os usuários podem assinar digitalmente mensagens, e, desse modo, cada usuário possui pelo menos uma chave pública e uma chave secreta correspondente. Em uma cadeia de blocos, em geral, uma pessoa conhece as chaves públicas, mas não necessariamente o usuário sabe quem é o dono da mesma. Consequentemente, pode-se identificar uma chave pública com seu proprietário.[0004] Users can digitally sign messages, so each user has at least one public key and a corresponding secret key. In a chain of blocks, in general, a person knows the public keys, but not necessarily the user knows who owns it. Consequently, a public key can be identified with its owner.

[0005] Diversos sistemas de cadeia de blocos exigem que um bloco seja certificado pelas assinaturas digitais de usuários o suficiente no sistema. Em alguns sistemas tais usuários certificadores pertencem a um conjunto fixo de usuários. Em alguns outros sistemas os mesmos pertencem a um conjunto com alteração dinâmica. O último é preferencial, devido ao fato de que um adversário teria dificuldade em corromper um conjunto de alteração dinâmica, particularmente se o conjunto não for apenas dinâmico, mas também imprevisível.[0005] Several block chain systems require that a block be certified by enough digital signatures of users in the system. In some systems, such certifying users belong to a fixed set of users. In some other systems they belong to a set with dynamic changes. The latter is preferred, due to the fact that an opponent would have a hard time corrupting a set of dynamic changes, particularly if the set is not only dynamic, but also unpredictable.

[0006] Uma forma particularmente eficaz de selecionar um conjunto de usuários em uma forma verificável, mas imprevisível é a técnica de eleição criptográfica que é descrita no pedido de patente PCT publicado nº PCT/US2017/031037, que é incorporado a título de referência ao presente documento. Aqui, um usuário i pertence a um conjunto de usuários empoderados a atuar em alguma etapa s durante a produção do bloco número r com base no resultado de uma computação que i realiza por meio de uma chave secreta sua, com o uso de entradas s e r, e possivelmente outras entradas e outros dados (por exemplo, o fato de que o usuário aderiu ao sistema pelo menos k blocos antes do bloco r, para algum determinado número inteiro k). Por exemplo, a computação de i pode envolver assinatura digital de i, 𝑆𝑖𝑟,𝑠 , de tais entradas, execução de hash de 𝑆𝑖𝑟,𝑠 e verificação da possibilidade de o hash ser menor que um determinado limite t. (De fato, como qualquer outra linha, um valor com hash pode ser interpretado de alguma forma padrão como um número.) Nesse caso, 𝜎𝑖𝑟,𝑠 = 𝑆𝑖𝑟,𝑠 é definido como a credencial de i para a etapa s sobre o bloco r. Tal credencial prova para qualquer um que i é, de fato, autorizado a produzir uma mensagem (preferencialmente assinada) 𝑚𝑖𝑟,𝑠 , sua mensagem de voto, para a etapa s no ciclo r, no processo destinado a produzir o bloco r. De fato, as assinaturas digitais de i podem ser verificadas por qualquer pessoa, e qualquer pessoa pode realizar hash a um determinado valor, e então, verificar a possibilidade de o resultado de fato ser menor que (ou igual a) um determinado número.[0006] A particularly effective way of selecting a set of users in a verifiable but unpredictable way is the cryptographic election technique that is described in published PCT patent application No. PCT / US2017 / 031037, which is incorporated by reference to this document. Here, a user i belongs to a set of empowered users to act at some stage s during the production of block number r based on the result of a computation that i performs by means of his secret key, with the use of ser, and possibly other entries and other data (for example, the fact that the user has joined the system at least k blocks before block r, for some given integer k). For example, the computation of i may involve digital signature of i, 𝑆𝑖𝑟, 𝑠, from such entries, hashing of 𝑆𝑖𝑟, 𝑠 and checking whether the hash is less than a certain limit t. (In fact, like any other line, a hashed value can be interpreted in some standard way as a number.) In this case, 𝜎𝑖𝑟, 𝑠 = 𝑆𝑖𝑟, 𝑠 is defined as the credential of i for step s on block r . This credential proves to anyone that i is, in fact, authorized to produce a message (preferably signed) 𝑚𝑖𝑟, 𝑠, your vote message, for step s in cycle r, in the process intended to produce block r. In fact, i's digital signatures can be verified by anyone, and anyone can hash a certain amount, and then check the possibility that the result will actually be less than (or equal to) a certain number.

[0007] Uma cadeia de blocos trabalha para propagar mensagens (por exemplo, blocos, transações, mensagens de voto, assinaturas digitais, etc.). Tipicamente, mas não exclusivamente, as mensagens são propagadas por rumores das mesmas de maneira ponto a ponto, ou por meio de transferências. Diversos sistemas de cadeia de blocos exigem que a rede de propagação garanta a entrega de mensagens propagadas por cada usuário honesto para outros usuários honestos em um atraso delimitado. Algumas exigem adicionalmente que os usuários tenham relógios de sistema (quase) alinhados, de modo que os usuários propaguem mensagens de maneira sincronizada —por exemplo, os usuários entram na etapa 2 na geração do bloco 100 na hora 11h20m00 EST, em que as mensagens de voto para essa etapa são entregues na hora 11h20m05 EST, e os usuários, então, entram na etapa 3 do bloco 100. Uma exigência menos rigorosa e, desse modo, preferível, como imposto pela Algorand, é que os relógios dos usuários tenham (quase) a mesma velocidade, mas os tempos reais mostrados nos relógios podem ser arbitrariamente distantes uns dos outros. Um usuário começa sua própria etapa s na geração do bloco r com base nas mensagens que o mesmo recebeu da rede de propagação, e termina a mesma com base em mensagens recebidas e no quanto seu próprio relógio avançou desde que o mesmo começou sua etapa.[0007] A chain of blocks works to propagate messages (for example, blocks, transactions, voting messages, digital signatures, etc.). Typically, but not exclusively, messages are propagated by rumors of them in a point-to-point manner, or by means of transfers. Several block chain systems require the propagation network to guarantee the delivery of messages propagated by each honest user to other honest users in a limited delay. Some additionally require that users have (almost) aligned system clocks, so that users propagate messages in a synchronized manner — for example, users enter step 2 in generating block 100 at 11:20 am EST, where messages from votes for this step are delivered at 11h20m05 EST, and users then enter step 3 of block 100. A less stringent and therefore preferable requirement, as imposed by Algorand, is that users' watches have (almost ) the same speed, but the actual times shown on the clocks can be arbitrarily distant from each other. A user starts his own step in the generation of block r based on the messages he received from the propagation network, and finishes it based on messages received and how far his own clock has progressed since he started his step.

[0008] Quando a rede de propagação satisfaz essa exigência, a Algorand garante que o adversário não pode impedir a cadeia de blocos de funcionar adequadamente (incluindo obter as propriedades P1—P4). No entanto, isso depende de o adversário não atacar a rede de propagação por si só. Tais ataques incluem qualquer esforço que o adversário pode tomar a fim de violar o atraso delimitado de entrega de mensagem para uma quantidade suficientemente grande de usuários —por exemplo, particionando-se os usuários em dois grupos de tamanho igual e controlando-se a entrega de canais de mensagem entre os mesmos, de modo que uma mensagem propagada por um usuário do grupo 1 possa ter atraso indefinido antes de alcançar qualquer usuário no grupo 2.[0008] When the propagation network meets this requirement, Algorand guarantees that the adversary cannot prevent the chain of blocks from functioning properly (including obtaining the properties P1 — P4). However, this depends on the opponent not attacking the propagation network by itself. Such attacks include any effort that the adversary can take to breach the delimited message delivery delay to a sufficiently large number of users — for example, by splitting users into two equal-sized groups and controlling the delivery of messages. message channels between them, so that a message propagated by a user in group 1 may have an indefinite delay before reaching any user in group 2.

[0009] É, desse modo, desejável enfraquecer essa exigência e fornecer cadeias de blocos e sistemas de dinheiro eletrônico que não sofrem das ineficácias e inseguranças de abordagens descentralizadas conhecidas.[0009] It is therefore desirable to weaken this requirement and provide chains of blocks and electronic money systems that do not suffer from the inefficiencies and insecurities of known decentralized approaches.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[0010] De acordo com o sistema descrito no presente documento, uma entidade gerencia um sistema de transação no qual transações são organizadas em uma sequência de blocos que são certificados por assinaturas digitais de um número suficiente de verificadores por meio da proposição da entidade de um hash de um bloco B’ que inclui novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1, se nenhum r-ésimo bloco Br tiver sido certificado, e por meio da proposição da entidade de um hash do bloco Br, se o r-ésimo bloco Br tiver sido verificado por um número suficiente de outras entidades. Um bloco pode ser certificado pela entidade apenas em resposta à confirmação de transações para o bloco e à confirmação de que o bloco foi construído e propagado por uma entidade encarregada de construir e propagar o bloco.[0010] According to the system described in this document, an entity manages a transaction system in which transactions are organized in a sequence of blocks that are certified by digital signatures of a sufficient number of verifiers through the proposition of the entity of a hash of a B 'block that includes new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1, if no r-th block Br has been certified, and by proposing the hash entity of block Br, if the r-th block Br has been verified by a sufficient number of other entities. A block can be certified by the entity only in response to confirming transactions for the block and confirming that the block was built and propagated by an entity in charge of building and propagating the block.

A entidade pode propor um valor hash assinando-se digitalmente o valor hash para fornecer uma versão assinada digitalmente do valor hash e a entidade pode propagar a versão assinada digitalmente do valor hash a uma rede que inclui outras entidades.The entity can propose a hash value by digitally signing the hash value to provide a digitally signed version of the hash value and the entity can propagate the digitally signed version of the hash value to a network that includes other entities.

Se nenhum r-ésimo bloco Br tiver sido certificado, a entidade também pode assinar digitalmente e propagar o bloco B'. A entidade pode determinar uma quantidade Q a partir dos blocos anteriores e pode usar uma chave secreta a fim de computar uma linha S unicamente associada à Q e computar, a partir de S, uma quantidade T que é S por si só, uma função de S e/ou um valor hash de S e a entidade pode determinar a possibilidade de propor um valor hash determinando-se a possibilidade de T possuir uma determinada propriedade.If no rth block Br has been certified, the entity can also digitally sign and propagate block B '. The entity can determine a quantity Q from the previous blocks and can use a secret key to compute a line S solely associated with Q and compute, from S, a quantity T that is S in itself, a function of S and / or a hash value of S and the entity can determine the possibility of proposing a hash value by determining the possibility of T having a certain property.

S pode ser uma assinatura de Q sob uma chave secreta da entidade, T pode ser um hash de S e T pode possuir a determinada propriedade se T for menor que um determinado limite.S can be a signature of Q under a secret entity key, T can be a hash of S and T can have a certain property if T is less than a certain limit.

A entidade pode ser parte de uma rede de entidades e uma entidade específica dentre as entidades pode construir e propagar o bloco Br.The entity can be part of a network of entities and a specific entity among the entities can build and propagate the Br block.

O r-ésimo bloco Br pode ser determinado como certificado pela entidade se a entidade receber uma indicação de que pelo menos um número predeterminado das entidades certifica individualmente um valor hash correspondente ao r-ésimo bloco Br.The rth block Br can be determined as certified by the entity if the entity receives an indication that at least a predetermined number of entities individually certifies a hash value corresponding to the rth block Br.

Em resposta à entidade receber a indicação de que um número predeterminado das entidades certificou individualmente o r-ésimo bloco Br, a entidade pode incrementar r para começar a adicionar blocos adicionais à sequência de blocos.In response to the entity receiving the indication that a predetermined number of entities individually certified the rth block Br, the entity can increment r to start adding additional blocks to the block sequence.

Uma entidade específica dentre as entidades pode ser individualmente escolhida por um número predeterminado das entidades como uma líder.A specific entity among the entities can be individually chosen by a predetermined number of entities as a leader.

O r-ésimo bloco Br pode ser determinado como certificável pela entidade se a entidade receber uma indicação de que pelo menos um número predeterminado das entidades verifica individualmente o recebimento de uma indicação de que a entidade específica dentre as entidades forneceu um valor hash correspondente ao r- ésimo bloco Br para cada uma dentre o número predeterminado das entidades.The rth block Br can be determined as certifiable by the entity if the entity receives an indication that at least a predetermined number of entities individually verifies receipt of an indication that the specific entity among the entities has provided a hash value corresponding to the r - th block Br for each of the predetermined number of entities.

[0011] Adicionalmente de acordo com o sistema descrito no presente documento, uma entidade gerencia um sistema de transação no qual transações são organizadas em uma sequência de blocos certificados por meio do recebimento, pela entidade, de um valor hash de um bloco Br a partir de uma outra entidade que gerou o bloco com base em novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1, da certificação, pela entidade, do bloco Br em resposta a um número suficiente de outras entidades ter indicado o recebimento do valor hash do bloco Br a partir da outra entidade e ao valor hash ser válido para o bloco Br, da geração, pela entidade, de um novo bloco B’ com base em novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1 em resposta a um número insuficiente das outras entidades indicar o recebimento do valor hash do bloco Br a partir da outra entidade, em que B’ é diferente de Br, e da incrementação, pela entidade, de r para começar a adicionar blocos adicionais à sequência de blocos em resposta à entidade receber a indicação de que um número predeterminado das entidades certificou individualmente o r-ésimo bloco Br ou um número predeterminado das entidades certificou individualmente o novo bloco B’. Os blocos podem ser certificados por assinaturas digitais. Novos blocos podem ser propostos por entidades diferentes dentre as entidades até o recebimento da indicação de que um número predeterminado das entidades certificou individualmente um bloco proposto anteriormente. A entidade pode fornecer uma indicação de que um novo bloco deve ser gerado em resposta ao valor hash não ser válido para o bloco Br. A entidade pode gerar um novo bloco B’ com base em novas transações válidas com relação a uma sequência de blocos B0 certificados, . . . , Br-1 em resposta a um número suficiente das outras entidades fornecer uma indicação de que um novo bloco deve ser gerado. A entidade pode fornecer uma indicação de que o valor hash do bloco Br deve ser propagado em resposta a um número suficiente das outras entidades indicar o recebimento do valor hash do bloco Br a partir da outra entidade e ao valor hash ser válido para o bloco Br.[0011] Additionally in accordance with the system described in this document, an entity manages a transaction system in which transactions are organized in a sequence of certified blocks by receiving, by the entity, a hash value of a Br block from from another entity that generated the block based on new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1, of the certification, by the entity, of the Br block in response to a sufficient number of other entities having indicated the receipt of the hash value of the Br block from the other entity and the hash value to be valid for the Br block, of the generation by the entity of a new block B 'based on new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1 in response to an insufficient number of other entities indicating the receipt of the hash value of the block Br from the other entity, where B 'is different from Br, and of the increment, by the entity, of r to start adding additional blocks to the sequence of blocks in response to the entity receiving the indication that a predetermined number of entities individually certified the rth block Br or a predetermined number of entities individually certified the new block B '. The blocks can be certified by digital signatures. New blocks can be proposed by different entities among the entities until receipt of the indication that a predetermined number of entities has individually certified a previously proposed block. The entity can provide an indication that a new block should be generated in response to the hash value not being valid for block Br. The entity can generate a new block B 'based on new valid transactions with respect to a sequence of blocks B0 certificates,. . . , Br-1 in response to a sufficient number of other entities to provide an indication that a new block should be generated. The entity may provide an indication that the hash value of the Br block must be propagated in response to a sufficient number of other entities to indicate that the hash value of the Br block has been received from the other entity and that the hash value is valid for the Br block. .

[0012] Adicionalmente de acordo com o sistema descrito no presente documento, uma entidade verifica um valor hash proposto de um novo bloco Br de transações com relação a uma determinada sequência de blocos, B0, . . . , Br-1, sem acesso ao novo bloco Br em um sistema de transação no qual transações são organizadas em blocos e os blocos são certificados por um conjunto de assinaturas digitais ao fazer com que a entidade determine uma quantidade Q dos blocos anteriores, fazer com que a entidade compute uma assinatura digital S de Q, fazer com que a entidade compute, a partir de S, uma quantidade T que é S por si só, uma função de S e/ou valor hash de S, fazer com que a entidade determine a possibilidade de T possuir uma determinada propriedade e, se T possuir a determinada propriedade, fazer com que a entidade verifique o valor hash proposto do novo bloco Br independentemente da confirmação de o valor hash proposto corresponder ao novo bloco Br. A entidade pode propagar o valor hash proposto do novo bloco Br antes de receber o novo bloco Br.[0012] Additionally, according to the system described in this document, an entity verifies a proposed hash value of a new Br block of transactions with respect to a certain sequence of blocks, B0,. . . , Br-1, without access to the new Br block in a transaction system in which transactions are organized in blocks and the blocks are certified by a set of digital signatures when causing the entity to determine a quantity Q of the previous blocks, that the entity compute a digital signature S of Q, cause the entity to compute, from S, a quantity T that is S by itself, a function of S and / or hash value of S, cause the entity determine the possibility of T having a certain property and, if T has a certain property, have the entity check the proposed hash value of the new Br block regardless of confirmation that the proposed hash value corresponds to the new Br block. The entity can propagate the proposed hash value of the new Br block before receiving the new Br block.

[0013] Adicionalmente de acordo com o sistema descrito no presente documento, em um sistema de transação no qual transações são organizadas em blocos, um novo bloco Br de transações válidas é construído, com relação a uma sequência de blocos anteriores B0, B1, . . . , Br-1 , ao fazer com que uma entidade determine uma quantidade Q a partir dos blocos anteriores, fazer com que a entidade use uma chave secreta a fim de computar uma linha S unicamente associada à Q, fazer com que a entidade compute, a partir de S, uma quantidade T que é S por si só, uma função de S e/ou um valor hash de S, fazer com que a entidade determine a possibilidade de T possuir uma determinada propriedade e, se T possuir a determinada propriedade, fazer com que a entidade compute um valor hash[0013] Additionally according to the system described in this document, in a transaction system in which transactions are organized in blocks, a new Br block of valid transactions is constructed, with respect to a sequence of previous blocks B0, B1,. . . , Br-1, when making an entity determine a quantity Q from the previous blocks, make the entity use a secret key in order to compute a line S solely associated with Q, make the entity compute, the from S, a quantity T that is S in itself, a function of S and / or a hash value of S, make the entity determine the possibility of T having a certain property and, if T has a certain property, cause the entity to compute a hash value

H de Br, assine digitalmente H e disponibilize para outros S, Br e uma versão digitalmente assinada de H. A chave secreta pode ser uma chave de assinatura secreta que corresponde a uma chave pública da entidade e S é uma assinatura digital de Q pela entidade. T pode ser uma expansão binária de um número e satisfazer a determinada propriedade se T for menor que um determinado número p. S pode ser disponibilizado tornando-se S deduzível de Br. Cada usuário pode ter um saldo no sistema de transação e p pode variar para cada usuário de acordo com o saldo de cada usuário.H of Br, digitally sign H and make available to others S, Br and a digitally signed version of H. The secret key can be a secret signature key that corresponds to an entity's public key and S is a digital signature of Q by the entity . T can be a binary expansion of a number and satisfy a given property if T is less than a given number p. S can be made available by becoming S deductible from Br. Each user can have a balance in the transaction system and p can vary for each user according to the balance of each user.

[0014] Adicionalmente de acordo com o sistema descrito no presente documento, selecionar um subconjunto de usuários em um sistema de cadeia de blocos para verificar uma linha de dados m com relação a uma sequência de blocos anteriores B0, . . . , Br-1, inclui fazer com que pelo menos alguns dos usuários determinem uma quantidade Q a partir dos blocos anteriores, fazer com que pelo menos alguns dos usuários computem uma assinatura digital S de Q e outras informações, fazer com que pelo menos alguns dos usuários determinem um valor hash da assinatura digital, fazer com que pelo menos alguns dos usuários comparem o valor hash a um limite predeterminado e fazer com que o subconjunto dos usuários assine digitalmente m em conjunto com outras informações e disponibilize para outros S e uma versão digitalmente assinada de m em resposta ao valor hash estar abaixo de um limite predeterminado para cada do subconjunto de usuários. A assinatura digital pode ser credenciada se o valor hash estiver abaixo de um limite predeterminado. Cada usuário pode ter um saldo no sistema de transação e o limite predeterminado pode variar para cada usuário de acordo com o saldo de cada usuário. O limite predeterminado para cada usuário pode ser escolhido para fazer com que o subconjunto dos usuários contenha um número mínimo dos usuários. A linha de dados m pode ser um valor hash de um novo bloco Br. A linha de dados m pode ser verificada por pelo menos um determinado número de assinaturas credenciadas de m.[0014] Additionally according to the system described in this document, select a subset of users in a block chain system to check a data line m against a sequence of previous blocks B0,. . . , Br-1, includes making at least some of the users determine a quantity Q from the previous blocks, making at least some of the users compute a digital signature S of Q and other information, making at least some of the users determine a hash value of the digital signature, have at least some of the users compare the hash value to a predetermined limit, and have the subset of users digitally sign m together with other information and make it available to other S and a digitally version signed in response to the hash value being below a predetermined limit for each of the subset of users. The digital signature can be accredited if the hash value is below a predetermined limit. Each user can have a balance in the transaction system and the predetermined limit can vary for each user according to the balance of each user. The predetermined limit for each user can be chosen to make the subset of users contain a minimum number of users. The data line m can be a hash value of a new block Br. The data line m can be verified by at least a certain number of accredited signatures of m.

[0015] Adicionalmente de acordo com o sistema descrito no presente documento, selecionar um subconjunto de usuários em um sistema de cadeia de blocos para verificar um novo bloco Br com relação a uma sequência de blocos anteriores B0, . . . , Br-1, inclui fazer com que pelo menos alguns dos usuários determinem uma quantidade Q dos blocos anteriores, fazer com que pelo menos alguns dos usuários computem uma assinatura digital S de Q e outras informações, fazer com que pelo menos alguns dos usuários determinem um valor hash da assinatura digital, fazer com que pelo menos alguns dos usuários comparem o valor hash a um limite predeterminado, fazer com que o subconjunto dos usuários determine se Br é válido com relação a B0, . . . , Br-1 em resposta ao valor hash estar abaixo de um limite predeterminado para cada um dentre o subconjunto de usuários e fazer com que o subconjunto dos usuários assine digitalmente um valor hash H de Br em conjunto com outras informações e disponibilize para outros S e uma versão digitalmente assinada de H. Um usuário específico dentre os usuários pode assinar digitalmente o novo bloco Br apenas se o usuário específico dentre os usuários verificar as informações fornecidas no novo bloco Br. Cada usuário pode ter um saldo no sistema de transação e o limite predeterminado pode variar para cada usuário de acordo com o saldo de cada usuário. O limite predeterminado para cada usuário pode ser escolhido para fazer com que o subconjunto dos usuários contenha um número mínimo dos usuários. O bloco Br pode ser certificado por pelo menos um determinado número de assinaturas credenciadas de H a partir dos usuários que determinaram que Br é válido com relação a B0, . . . , Br-1.[0015] Additionally according to the system described in this document, select a subset of users in a block chain system to verify a new block Br with respect to a sequence of previous blocks B0,. . . , Br-1, includes making at least some of the users determine a quantity Q of the previous blocks, making at least some of the users compute a digital signature S of Q and other information, making at least some of the users determining a hash value of the digital signature, make at least some of the users compare the hash value to a predetermined limit, make the subset of the users determine whether Br is valid with respect to B0,. . . , Br-1 in response to the hash value being below a predetermined limit for each of the subset of users and having the subset of users digitally sign a hash value of Br together with other information and make it available to other S and a digitally signed version of H. A specific user among users can digitally sign the new Br block only if the specific user among the users verifies the information provided in the new Br block. Each user can have a balance in the transaction system and the limit predetermined amount can vary for each user according to the balance of each user. The predetermined limit for each user can be chosen to make the subset of users contain a minimum number of users. The Br block can be certified by at least a certain number of H-accredited signatures from users who have determined that Br is valid with respect to B0,. . . , Br-1.

[0016] Adicionalmente de acordo com o sistema descrito no presente documento, o software de computador, fornecido em um meio legível por computador não transitório, inclui código executável que implementa qualquer uma das etapas descritas no presente documento.[0016] In addition to the system described in this document, the computer software, provided in a non-transitory, computer-readable medium, includes executable code that implements any of the steps described in this document.

[0017] A presente invenção não necessita da exigência no atraso de entrega de mensagem da rede de propagação para a segurança de novos blocos de certificação. Um novo bloco é primeiro preparado (por exemplo, proposto, propagado e/ou acordado por pelo menos alguns usuários) e, então, é certificado. Um usuário que recebeu um bloco recentemente construído, um valor hash de um novo bloco e/ou assinaturas credenciadas em um intervalo de tempo desejado prossegue para verificar e/ou certificar o novo bloco. No entanto, deseja-se certificar um novo bloco mesmo quando as mensagens propagadas na rede podem ser indefinidamente atrasadas. A certificação de um bloco B garante que determinadas propriedades valiosas se aplicam ao bloco. Uma propriedade principal típica é permitir que um usuário, mesmo um usuário que não participou ou observou a preparação de um bloco B, determine que B foi adicionado à cadeia de blocos, ou até mesmo que B é o r-ésimo bloco na cadeia de blocos. Outra propriedade valiosa (frequentemente denominada finalização) garante que B não desaparecerá da cadeia de blocos, devido a um soft-fork, mesmo na presença de uma partição da rede de comunicação na qual o protocolo de cadeia de blocos é executado. Uma partição da rede pode fazer com que os usuários possam ser separados em múltiplos grupos, com mensagens propagadas a partir de um grupo que não alcança os usuários em outros grupos. Uma partição pode ser resolvida após uma quantidade indefinida de tempo, após o que a rede garante novamente a entrega de mensagem após atrasos delimitados.[0017] The present invention does not require the requirement to delay message delivery from the propagation network for the safety of new certification blocks. A new block is first prepared (for example, proposed, propagated and / or agreed upon by at least some users) and is then certified. A user who has received a newly constructed block, a hash value for a new block and / or accredited signatures within a desired time frame proceeds to verify and / or certify the new block. However, we want to certify a new block even when messages propagated on the network can be delayed indefinitely. The certification of a block B ensures that certain valuable properties apply to the block. A typical primary property is to allow a user, even a user who has not participated or observed the preparation of a B block, to determine that B has been added to the block chain, or even that B is the r-th block in the block chain. . Another valuable property (often called termination) ensures that B will not disappear from the block chain, due to a soft-fork, even in the presence of a communication network partition on which the block chain protocol is executed. A network partition can cause users to be separated into multiple groups, with messages propagated from one group that does not reach users in other groups. A partition can be resolved after an indefinite amount of time, after which the network again guarantees message delivery after delimited delays.

[0018] Presumindo-se que um bloco B foi preparado, de qualquer maneira e em qualquer número de etapas. Perceber que um bloco foi adequadamente preparado exige tempo e esforço, e a verificação de várias evidências. Um certificado de B consiste em um determinado número de assinaturas digitais de usuários com credenciais válidas. Tal certificado de B assegura que os usuários que produziram tais assinaturas participaram ou observaram a preparação de B. Pelo menos, assegura que, se uma dentre as assinaturas digitais do certificado foi produzida por um usuário honesto, então, tal usuário verificou que B foi adequadamente preparado.[0018] Assuming that a block B was prepared, in any way and in any number of steps. Realizing that a block has been properly prepared requires time and effort, and the verification of various evidences. A B certificate consists of a specified number of digital signatures from users with valid credentials. Such a certificate from B ensures that users who produced such signatures participated in or observed the preparation of B. At least it ensures that if one of the digital signatures on the certificate was produced by an honest user, then that user verified that B was properly prepared.

[0019] No sistema descrito no presente documento, enquanto um usuário coleta evidências para um bloco B que é adequadamente preparado como o r-ésimo bloco na cadeia de blocos com relação a blocos anteriores B0, . . . , Br-1, o usuário pode construir e propor um novo bloco B' como o r-ésimo bloco na cadeia de blocos com relação a B0, . . . , Br-1 se o mesmo possuir evidência de que um certificado de B não foi gerado no sistema. Um usuário propõe B', determinando-se uma quantidade Q dos blocos anteriores, computando-se uma linha S unicamente associada à Q com o uso de uma chave secreta, computando-se, a partir de S, uma quantidade T que é S por si só, uma função de S e/ou um valor hash de S, determinando-se a possibilidade de T possuir uma determinada propriedade e, se T possuir a determinada propriedade, computando-se um valor hash H' de B', assinando digitalmente H' e disponibilizando para outros S, B' e uma versão digitalmente assinada de H'. A chave secreta pode ser uma chave de assinatura secreta que corresponde a uma chave pública da entidade e S é uma assinatura digital de Q pela entidade. T pode ser uma expansão binária de um número e satisfazer a determinada propriedade se T for menor que um determinado número p. S pode ser disponibilizado tornando-se S deduzível de B'. Cada usuário pode ter um saldo no sistema de transação e p pode variar para cada usuário de acordo com o saldo de cada usuário.[0019] In the system described in this document, while a user collects evidence for a block B that is properly prepared as the r-th block in the block chain with respect to previous blocks B0,. . . , Br-1, the user can construct and propose a new block B 'as the rth block in the block chain with respect to B0,. . . , Br-1 if it has evidence that a B certificate was not generated in the system. A user proposes B ', determining a quantity Q from the previous blocks, computing a line S solely associated with Q using a secret key, computing, from S, a quantity T that is S by itself, a function of S and / or a hash value of S, determining the possibility of T having a certain property and, if T has a certain property, computing a hash value H 'of B', digitally signing H 'and making available to other S, B' and a digitally signed version of H '. The secret key can be a secret signature key that corresponds to an entity's public key and S is a digital signature of Q by the entity. T can be a binary expansion of a number and satisfy a given property if T is less than a given number p. S can be made available by making S deductible from B '. Each user can have a balance in the transaction system and p can vary for each user according to the balance of each user.

[0020] No sistema descrito no presente documento, enquanto um usuário coleta evidências para um bloco B que é adequadamente preparado como o r-ésimo bloco na cadeia de blocos com relação a blocos anteriores B0, . . . , Br-1, o usuário pode propor novamente B como o r-ésimo bloco na cadeia de blocos se o mesmo possuir evidência de que um certificado de B pode ter sido gerado no sistema, mas não foi disponibilizado para o mesmo. Um usuário pode propor novamente B sem ter recebido B por si só, mas em vez disso, ter recebido um determinado número de assinaturas digitais de usuários com credenciais válidas que verificam um valor hash de B. Um usuário pode propor novamente B determinando-se uma quantidade Q a partir de blocos anteriores, computar uma linha S unicamente associada à Q com o uso de uma chave secreta, computar a partir de S uma quantidade T que é S por si só, uma função de S, e/ou um valor hash de S, determinar a possibilidade de T possuir uma determinada propriedade e, se T possuir a determinada propriedade, assinar digitalmente um valor hash H de B e disponibilizar para outros S e uma versão digitalmente assinada de H. A chave secreta pode ser uma chave de assinatura secreta que corresponde a uma chave pública da entidade e S é uma assinatura digital de Q pela entidade. T pode ser uma expansão binária de um número e satisfazer a determinada propriedade se T for menor que um determinado número p. S pode ser disponibilizado tornando-se S deduzível de B'. Cada usuário pode ter um saldo no sistema de transação e p pode variar para cada usuário de acordo com o saldo de cada usuário.[0020] In the system described in this document, while a user collects evidence for a block B that is properly prepared as the r-th block in the block chain with respect to previous blocks B0,. . . , Br-1, the user can again propose B as the r-th block in the block chain if it has evidence that a B certificate may have been generated in the system, but was not made available for it. A user can resubmit B without having received B by itself, but instead have received a certain number of digital signatures from users with valid credentials that verify a hash value of B. A user can resubmit B by determining a quantity Q from previous blocks, compute a line S uniquely associated with Q using a secret key, compute from S a quantity T that is S in itself, a function of S, and / or a hash value of S, determine the possibility of T having a certain property and, if T has a certain property, digitally sign a hash value of B and make available to others S and a digitally signed version of H. The secret key can be a security key secret signature that corresponds to an entity's public key and S is a digital signature of Q by the entity. T can be a binary expansion of a number and satisfy a given property if T is less than a given number p. S can be made available by making S deductible from B '. Each user can have a balance in the transaction system and p can vary for each user according to the balance of each user.

[0021] A proposição de novos blocos e a proposição novamente de blocos existentes pode ocorrer uma quantidade indefinida de vezes durante a geração de um r-ésimo bloco da cadeia de blocos e podem ser realizadas por usuários diferentes. Um bloco B pode ter mais de um certificado gerado a partir de etapas diferentes. No entanto, durante a geração de um r-ésimo bloco da cadeia de blocos, um e apenas um bloco terá um certificado e, desse modo, será considerado pelos usuários como o r-ésimo bloco da cadeia de blocos.[0021] The proposition of new blocks and the proposal again of existing blocks can occur an indefinite number of times during the generation of a r-th block of the block chain and can be carried out by different users. A B block can have more than one certificate generated from different steps. However, during the generation of a r-block of the block chain, one and only one block will have a certificate and, thus, it will be considered by users as the r-block of the block chain.

[0022] A eficácia do sistema descrito no presente documento deriva dos seguintes fatos. Primeiro, um usuário i pode verificar e/ou propor novamente um valor hash de um bloco B antes do usuário poder receber B por si só. Em segundo lugar, um novo bloco B' pode ser proposto como o r-[0022] The effectiveness of the system described in this document stems from the following facts. First, a user i can check and / or re-propose a hash value of a B block before the user can receive B by itself. Second, a new block B 'can be proposed as the r-

ésimo bloco antes de todos os usuários poderem ter coletado evidência de que um bloco B proposto anteriormente como o r-ésimo bloco não tem um certificado gerado no sistema. De fato, B' pode ser proposto assim que um usuário coletou tal evidência. Em terceiro lugar, um bloco B proposto anteriormente como o r-ésimo bloco da cadeia de blocos pode ser proposto novamente antes de todos os usuários poderem ter coletado evidência de que um certificado para B pode ter sido gerado no sistema, mas não estar disponível para todos. De fato, B pode ser proposto novamente assim que um usuário coletou tal evidência.th block before all users can have collected evidence that a previously proposed block B as the rth block does not have a certificate generated in the system. In fact, B 'can be proposed as soon as a user has collected such evidence. Third, a previously proposed B block as the r-th block in the block chain can be proposed again before all users can have collected evidence that a certificate for B may have been generated in the system, but not be available for all. In fact, B can be proposed again as soon as a user has collected such evidence.

[0023] Uma evidência pode consistir em um conjunto de assinaturas credenciadas adequadamente formadas para verificar uma linha de dados m. As evidências para propósitos diferentes podem consistir em números diferentes de assinaturas. A segurança do sistema descrito no presente documento deriva de escolhas adequadas de limites predeterminados que usuários comparam os valores hash de suas assinaturas para quando estiver verificando linhas de dados diferentes, e a partir de escolhas adequadas de números de assinaturas suficientes para formar evidências para propósitos diferentes. Por exemplo, seja p uma porcentagem máxima de usuários maliciosos no sistema. Tipicamente, usuários maliciosos estão em uma minoria — por exemplo, p < 1/3. Então, o limite predeterminado t e o número suficiente n de assinaturas que forma um certificado para um bloco podem ser escolhidos de modo que, com probabilidade suficientemente alta, (a) para qualquer valor de bloco B possível, haja n ou mais assinaturas credenciadas de usuários honestos para formar um certificado para B e (b) em qualquer certificado de B, mais que 2/3 de assinaturas credenciadas pertencem a usuários honestos.[0023] An evidence can consist of a set of accredited signatures properly formed to verify a line of data m. Evidence for different purposes may consist of different numbers of signatures. The security of the system described in this document derives from appropriate choices of predetermined limits that users compare the hash values of their signatures for when checking different data lines, and from adequate choices of numbers of signatures sufficient to form evidence for different purposes . For example, let p be a maximum percentage of malicious users on the system. Typically, malicious users are in a minority - for example, p <1/3. Then, the predetermined limit and the sufficient number of signatures that form a certificate for a block can be chosen so that, with sufficiently high probability, (a) for any possible value of block B, there are n or more accredited signatures from honest users to form a certificate for B and (b) on any B certificate, more than 2/3 of accredited signatures belong to honest users.

[0024] O sistema descrito no presente documento ser agnóstico sobre a possibilidade de chaves efêmeras serem usadas na cadeia de blocos: quando os usuários propõem novos blocos, propõem novamente blocos existentes ou verificam linhas de dados, os usuários podem usar chaves secretas de longo prazo para gerar assinaturas credenciadas, em que as chaves podem ser usadas repetidamente durante o tempo de vida do sistema, ou os usuários podem usar chaves secretas efêmeras onde uma chave é usada apenas uma vez, ou os usuários podem usar combinações de chaves de longo prazo e chaves efêmeras.[0024] The system described in this document is agnostic about the possibility of ephemeral keys being used in the block chain: when users propose new blocks, re-propose existing blocks or check data lines, users can use long-term secret keys to generate accredited signatures, where keys can be used repeatedly throughout the life of the system, or users can use ephemeral secret keys where a key is used only once, or users can use long-term key combinations and ephemeral keys.

[0025] Como parte do sistema descrito no presente documento, um usuário i pode não ter apenas uma assinatura credenciada para participar na geração de um bloco, mas também uma assinatura credenciada com um peso (essencialmente uma assinatura credenciada associada a um número de votos). De fato, o peso de assinatura de credencial de i para participar na geração de um bloco pode depender de quanto dinheiro i tem no sistema. De fato, em vez de ter um único limite predeterminado t para todos os usuários para participar na geração de bloco, cada usuário i pode ter seu próprio limite ti que é maior que a quantidade de i superior de dinheiro. E um usuário i pode ter limites diferentes para participar na geração de bloco de formas diferentes —por exemplo, propor um novo bloco, propor novamente um bloco, ou verificar uma linha de dados m de um formato específico. Para simplicidade, porém sem limitação desejada, a descrição do sistema que trata um usuário i com uma assinatura credenciada de peso-n como n usuários, em que cada um tem uma assinatura credenciada (peso-1) continuará.[0025] As part of the system described in this document, a user i may not only have an accredited signature to participate in the generation of a block, but also an accredited signature with a weight (essentially an accredited signature associated with a number of votes) . In fact, the weight of i's credential signing to participate in the generation of a block may depend on how much money i has in the system. In fact, instead of having a single predetermined limit t for all users to participate in block generation, each user i can have his own limit ti which is greater than the upper amount of money i. And a user i may have different limits for participating in block generation in different ways — for example, proposing a new block, proposing a block again, or checking a line of data m of a specific format. For simplicity, but without any desired limitation, the description of the system that treats a user i with an accredited subscription of weight-n as n users, in which each has an accredited subscription (weight-1) will continue.

[0026] Abaixo, após relembrar rapidamente do sistema tradicional da Algorand, é fornecido um exemplo da modalidade preferida, sem qualquer limitação desejada, com base em Algorand.[0026] Below, after quickly recalling the traditional Algorand system, an example of the preferred modality is provided, without any desired limitation, based on Algorand.

BREVES DESCRIÇÕES DOS DESENHOSBRIEF DESCRIPTIONS OF THE DRAWINGS

[0027] As modalidades do sistema descrito no presente documento são explicadas em mais detalhes, de acordo com as figuras dos desenhos, que são brevemente descritos conforme a seguir.[0027] The modalities of the system described in this document are explained in more detail, according to the figures in the drawings, which are briefly described as follows.

[0028] A Figura 1 é uma representação esquemática de uma rede e estações de computação, de acordo com uma modalidade do sistema descrito no presente documento.[0028] Figure 1 is a schematic representation of a network and computing stations, according to a modality of the system described in this document.

[0029] A Figura 2 é um sumário esquemático e conceitual da primeira etapa do sistema da Algorand, em que um novo bloco de transações é proposto.[0029] Figure 2 is a schematic and conceptual summary of the first stage of the Algorand system, in which a new block of transactions is proposed.

[0030] A Figura 3 é um sumário esquemático e conceitual do acordo e da certificação de um novo bloco no sistema da Algorand.[0030] Figure 3 is a schematic and conceptual summary of the agreement and certification for a new block in the Algorand system.

[0031] A Figura 4 é um diagrama esquemático que ilustra uma árvore de Merkle e uma trajetória de autenticação para um valor contido em um de seus nós.[0031] Figure 4 is a schematic diagram that illustrates a Merkle tree and an authentication path for a value contained in one of its nodes.

[0032] A Figura 5 é um diagrama esquemático que ilustra as 8 árvores de Merkle correspondentes aos seus primeiros 8 blocos construídos em uma árvore de blocos.[0032] Figure 5 is a schematic diagram that illustrates the 8 Merkle trees corresponding to its first 8 blocks built in a block tree.

[0033] A Figura 6 é uma representação esquemática de uma rede particionada e estações de computação, de acordo com uma modalidade do sistema descrito no presente documento.[0033] Figure 6 is a schematic representation of a partitioned network and computing stations, according to a system modality described in this document.

DESCRIÇÃO DETALHADA DAS VÁRIAS MODALIDADESDETAILED DESCRIPTION OF THE VARIOUS MODALITIES

[0034] O sistema descrito no presente documento fornece mecanismos para distribuir verificação e propagação de transação de modo que nenhuma entidade seja unicamente responsável por realizar cálculos para verificar e/ou propagar informações de transação. Em vez disso, cada uma dentre as entidades participantes compartilham nos cálculos que são realizadas para propagar a transação de maneira verificável e confiável.[0034] The system described in this document provides mechanisms to distribute transaction verification and propagation so that no entity is solely responsible for performing calculations to verify and / or propagate transaction information. Instead, each of the participating entities shares in the calculations that are made to propagate the transaction in a verifiable and reliable manner.

[0035] Referindo-se à Figura 1, um diagrama 20 mostra uma pluralidade de estações de trabalho de computação 22a a 22c conectadas a uma rede de dados 24, como a Internet. As estações de trabalho 22a a 22c se comunicam por meio da rede 24 para fornecer propagação e verificação de transação distribuída, como descrito em mais detalhes em outro lugar no presente documento. O sistema pode acomodar qualquer número de estações de trabalho com a capacidade para fornecer a funcionalidade descrita no presente documento, contanto que as estações de trabalho 22a a 22c tenham a capacidade para se comunicarem entre si. Cada uma dentre as estações de trabalho 22a a 22c pode realizar independentemente o processamento para propagar transações para todos as outras estações de trabalho no sistema e para verificar transações, como descrito em mais detalhes em outro lugar no presente documento.[0035] Referring to Figure 1, a diagram 20 shows a plurality of computing workstations 22a to 22c connected to a data network 24, such as the Internet. Workstations 22a through 22c communicate via network 24 to provide distributed transaction verification and propagation, as described in more detail elsewhere in this document. The system can accommodate any number of workstations with the ability to provide the functionality described in this document, as long as workstations 22a through 22c have the ability to communicate with each other. Each of workstations 22a through 22c can independently perform processing to propagate transactions to all other workstations in the system and to verify transactions, as described in more detail elsewhere in this document.

[0036] A Figura 2 resume diagramática e conceitualmente a primeira etapa de um ciclo r no sistema da Algorand, em que cada um dentre alguns usuários selecionados propõe seu próprio candidato para o r-ésimo bloco. Especificamente, a etapa começa com os usuários no sistema, a, . . . , z, individualmente passa pelo processo de eleição criptográfica secreta, que decide quais usuários são selecionados para propor um bloco, e em que cada usuário selecionado secretamente computa uma credencial que prova que o mesmo é autorizado a produzir um bloco. Apenas usuários b, d e h são selecionados para propor um bloco, e suas credenciais respectivamente computadas são 𝜎𝑏𝑟,1 , 𝜎𝑑𝑟,𝑎1 e 𝜎ℎ𝑟,1 . Cada usuário selecionado i monta seu próprio bloco proposto, 𝐵𝑖𝑟 , assina de modo efêmero o mesmo (isto é, assina digitalmente o mesmo com uma chave efêmera, como explicado mais adiante), e propaga para rede em conjunto com sua própria credencial. O líder do ciclo é o usuário selecionado cuja credencial tem o menor hash. A Figura indica o líder como o usuário d. Desse modo, seu bloco proposto, 𝐵𝑑𝑟 , é aquele a ser fornecido como entrada para o protocolo de acordo Binário.[0036] Figure 2 summarizes diagrammatically and conceptually the first stage of an r cycle in the Algorand system, in which each of some selected users proposes their own candidate for the r-th block. Specifically, the step begins with the users in the system, a,. . . , z, individually goes through the secret cryptographic election process, which decides which users are selected to propose a block, and in which each user selected secretly computes a credential that proves that he is authorized to produce a block. Only users b, d and h are selected to propose a block, and their credentials respectively computed are 𝜎𝑏𝑟, 1, 𝜎𝑑𝑟, 𝑎1 and 𝜎ℎ𝑟, 1. Each selected user i assembles his own proposed block, 𝐵𝑖𝑟, ephemerally signs the same (that is, digitally signs the same with an ephemeral key, as explained later), and propagates to the network together with his own credential. The leader of the cycle is the selected user whose credential has the lowest hash. The Figure indicates the leader as the user d. Thus, its proposed block, 𝐵𝑑𝑟, is the one to be provided as an input to the Binary agreement protocol.

[0037] A Figura 3 resume diagramática e conceitualmente o processo da Algorand para obter o acordo e certificar um bloco proposto como o r-ésimo bloco oficial, Br. Visto que a primeira etapa da Algorand consiste em propor um novo bloco, esse processo começa com a segunda etapa. Essa etapa, de fato, coincide com a primeira etapa do protocolo de acordo Bizantino preferido da Algorand, 𝐵𝐴∗ . Cada etapa desse protocolo é executada por um “comitê” diferente de participantes, aleatoriamente selecionados por eleição criptográfica secreta (não mostrado nessa Figura). Consequentemente, os usuários selecionados para realizar cada etapa podem ser totalmente diferentes. O número de Etapas de 𝐵𝐴∗ pode variar. A Figura 3 retrata uma execução de 𝐵𝐴∗ que envolve 7 etapas: da etapa 2 da Algorand a 8 da Algorand. Os usuários selecionados para realizar etapa 2 são a, e e q. Cada usuário i ∈ {a, e, q} propaga para a rede sua credencial, 𝜎𝑖𝑟,2 que prova que i é, de fato, autorizado a enviar uma mensagem na etapa 2 do ciclo r da Algorand, e sua mensagem adequada dessa etapa, 𝑚𝑖𝑟,𝑠 , assinada de modo efêmero. Etapas 3 a 7 não são mostradas. Na última etapa 8, a Figura mostra que os usuários selecionados correspondentes, b, f e x, obtiveram acordo sobre Br como o bloco oficial do ciclo r, propagaram suas próprias assinaturas efêmeras do bloco Br (em conjunto, essas assinaturas certificam Br) e suas próprias credenciais, mostrando que os mesmos são autorizados a agir na Etapa 8.[0037] Figure 3 summarizes diagrammatically and conceptually Algorand's process to obtain the agreement and certify a proposed block as the r-th official block, Br. Since Algorand's first step is to propose a new block, this process begins with the second stage. This step, in fact, coincides with the first step of Algorand's preferred Byzantine settlement protocol, 𝐵𝐴 ∗. Each step of this protocol is performed by a different “committee” of participants, randomly selected by secret cryptographic election (not shown in this Figure). Consequently, the users selected to perform each step can be totally different. The number of de ∗ Steps may vary. Figure 3 depicts an execution of 𝐵𝐴 ∗ that involves 7 steps: from step 2 of Algorand to 8 of Algorand. The users selected to perform step 2 are a, e and q. Each user i ∈ {a, e, q} propagates his credential, 𝜎𝑖𝑟, 2 to the network, which proves that i is, in fact, authorized to send a message in step 2 of Algorand cycle r, and his appropriate message from that step , 𝑚𝑖𝑟, 𝑠, ephemerally signed. Steps 3 through 7 are not shown. In the last step 8, the Figure shows that the selected selected users, b, fex, reached agreement on Br as the official block of cycle r, propagated their own ephemeral signatures of the Br block (together, these signatures certify Br) and their own credentials, showing that they are authorized to act in Step 8.

[0038] A Figura 4 ilustra esquematicamente uma árvore de Merkle e uma de suas trajetórias de autenticação. Especificamente, a Figura[0038] Figure 4 schematically illustrates a Merkle tree and one of its authentication paths. Specifically, the Figure

4. A ilustra uma árvore de Merkle completa de profundidade 3. Cada nó x, em que x é denotado por uma linha binária de comprimento ≤ 3, armazena um valor νx. Se x tem comprimento ≤ 2, então, νx = H(νx0, νx1). Para a árvore de Merkle da Figura 4.a, a Figura 4.B ilustra a trajetória de autenticação do valor ν010.4. A illustrates a complete Merkle tree of depth 3. Each node x, where x is denoted by a binary line of length ≤ 3, stores a value νx. If x has length ≤ 2, then νx = H (νx0, νx1). For the Merkle tree of Figure 4.a, Figure 4.B illustrates the authentication path of the value ν010.

[0039] A Figura 5 ilustra esquematicamente as 8 árvores de Merkle, correspondentes aos primeiros 8 blocos construídos em uma árvore de blocos, construída em uma árvore binária completa de profundidade 3. Na Figura 5.i, os nós marcados por um número inteiro pertencem à árvore de Merkle Ti. Os conteúdos de nós marcados por i (respectivamente, por i) são temporários (respectivamente, permanentes).[0039] Figure 5 schematically illustrates the 8 Merkle trees, corresponding to the first 8 blocks built in a block tree, built in a complete binary tree of depth 3. In Figure 5.i, the nodes marked by an integer belong to the Merkle Ti tree. The contents of nodes marked by i (respectively, by i) are temporary (respectively, permanent).

[0040] A descrição no presente documento foca em transações que são pagamentos e na descrição doo sistema no presente documento como uma plataforma de dinheiro. Aqueles versados na técnica perceberão que o sistema descrito no presente documento pode também gerenciar todos os tipos de transações.[0040] The description in this document focuses on transactions that are payments and the description of the system in this document as a cash platform. Those skilled in the art will realize that the system described in this document can also manage all types of transactions.

[0041] O sistema descrito no presente documento tem um projeto muito flexível e pode ser implantado de várias formas, porém relacionadas. Ilustra-se sua flexibilidade detalhando-se duas modalidades possíveis de seu projeto geral. A partir desse, aqueles versados na técnica também podem observar como derivar todos os tipos de outras implantações.[0041] The system described in this document has a very flexible design and can be implemented in several ways, however related. Its flexibility is illustrated by detailing two possible modalities of its general project. From there, those skilled in the art can also observe how to derive all types of other deployments.

[0042] Para facilitar o entendimento da invenção, e permitir a referência cruzada interna de suas várias partes, organizou-se sua apresentação em seções numeradas e intituladas. As primeiras seções são comuns para ambas as modalidades detalhadas. 1 INTRODUÇÃO[0042] To facilitate the understanding of the invention, and to allow the internal cross-reference of its various parts, its presentation was organized in numbered and titled sections. The first sections are common for both detailed modalities. 1. INTRODUCTION

[0043] O dinheiro tem se tornado crescentemente virtual. Estimou-se que cerca de 80% dos dólares nos Estados Unidos atualmente existem apenas como registros contabilísticos. Outros instrumentos financeiros são os seguintes processo.[0043] Money has become increasingly virtual. It has been estimated that about 80% of dollars in the United States currently exist only as accounting records. Other financial instruments are the following process.

[0044] Em um mundo ideal, no qual pode-se contar com uma entidade central universalmente confiada, imune a todos os possíveis ataques cibernéticos, o dinheiro e outras transações financeiras podem ser somente eletrônicos. Infelizmente, não vivemos em tal mundo. Consequentemente, criptomoedas descentralizadas, como Bitcoin, e sistemas de “contrato inteligente”, como Ethereum, foram propostos. No coração desses sistemas está uma razão compartilhada que confiavelmente registra uma sequência de transações, tão variada quanto há pagamentos e contratos, de uma maneira à prova de adulteração. A tecnologia de escolha para garantir tal qualidade à prova de adulteração é a cadeia de blocos. As cadeias de blocos estão por trás de aplicações como criptomoedas, aplicações financeiras e a Internet das Coisas. Diversas técnicas para gerenciar razões com base em cadeia de blocos foram propostas: prova de trabalho, prova de participação, tolerância a falha Bizantina prática, ou alguma combinação dos mesmos.[0044] In an ideal world, in which you can count on a central entity that is universally trusted, immune to all possible cyber attacks, money and other financial transactions can only be electronic. Unfortunately, we don't live in such a world. Consequently, decentralized cryptocurrencies, like Bitcoin, and “smart contract” systems, like Ethereum, have been proposed. At the heart of these systems is a shared reason that reliably records a sequence of transactions, as varied as there are payments and contracts, in a tamper-proof manner. The technology of choice to guarantee such tamper-proof quality is the block chain. Block chains are behind applications like cryptocurrencies, financial applications and the Internet of Things. Several techniques for managing reasons based on the chain of blocks have been proposed: proof of work, proof of participation, tolerance to practical Byzantine failure, or some combination of them.

[0045] Atualmente, no entanto, as razões podem ser ineficazes para o gerenciamento. Por exemplo, a abordagem de prova de trabalho da Bitcoin exige uma vasta quantidade de computação, isso é supérfluo e escalona insuficientemente. Além disso, isso de fato concentra o poder em algumas mãos.[0045] Currently, however, the reasons may be ineffective for management. For example, Bitcoin's proof of work approach requires a vast amount of computing, this is superfluous and insufficiently scalable. Furthermore, it does concentrate power in some hands.

[0046] Portanto, deseja-se apresentar um novo método para implantar uma razão pública que oferece a conveniência e a eficácia de um sistema centralizado executado por uma autoridade confiada e inviolável, sem as ineficácias e fraquezas de implantações descentralizadas atuais. Chama-se essa abordagem de Algorand, devido ao fato de se usar aleatoriedade algorítmica para selecionar, com base na razão construída até o momento, um conjunto de verificadores que são encarregados de construir o próximo bloco de transações válidas. Naturalmente, garante-se que tais seleções sejam provavelmente imunes a manipulações e imprevisíveis até o último minuto, mas também que as mesmas sejam, por fim, universalmente claras.[0046] Therefore, we want to present a new method for implementing a public reason that offers the convenience and effectiveness of a centralized system executed by a trusted and inviolable authority, without the inefficiencies and weaknesses of current decentralized deployments. This approach is called Algorand, due to the fact that algorithmic randomness is used to select, based on the reason constructed so far, a set of verifiers that are in charge of building the next block of valid transactions. Naturally, it is guaranteed that such selections are likely to be immune to manipulation and unpredictable until the last minute, but also that they are ultimately universally clear.

[0047] A abordagem da Algorand é muito democrática, no sentido de que nem em princípio nem de fato a mesma cria classes diferentes de usuários (como “minerados” e “usuários comuns” na Bitcoin). Na Algorand “todo o poder reside no conjunto de todos os usuários”.[0047] Algorand's approach is very democratic, in the sense that neither in principle nor in fact it creates different classes of users (such as “mined” and “ordinary users” in Bitcoin). At Algorand, “all power resides in all users”.

[0048] Uma propriedade notável da Algorand é que seu histórico de transações pode se bifurcar apenas com uma probabilidade muito pequena (por exemplo, uma em um trilhão, isto é, ou mesmo 10-18). A[0048] A notable feature of Algorand is that its transaction history can branch out only with a very small probability (for example, one in a trillion, that is, or even 10-18). THE

Algorand também pode abordar alguns problemas legais e políticos.Algorand can also address some legal and political issues.

[0049] A abordagem da Algorand se aplica a cadeias de blocos e, de modo mais geral, a qualquer método para gerar uma sequência de blocos à prova de adulteração. Apresenta-se, realmente, um novo método — alternativo, e mais eficaz que, as cadeias de blocos— que pode ser de interesse independente.[0049] Algorand's approach applies to block chains and, more generally, to any method for generating a tamper-proof block sequence. A new method is actually presented - alternative, and more effective than, block chains - that may be of independent interest.

1.1 SUPOSIÇÃO DE BITCOIN E PROBLEMAS DA TÉCNICA1.1 BITCOIN ASSUMPTION AND PROBLEMS OF THE TECHNIQUE

[0050] Bitcoin é um sistema muito engenhoso e inspirou uma grande quantidade de pesquisas subsequentes. Porém é também problemático. Resumindo-se sua suposição e problemas da técnica subjacentes —que são, de fato, compartilhados por essencialmente todas as criptomoedas que, como Bitcoin, tem como base prova de trabalho.[0050] Bitcoin is a very ingenious system and has inspired a lot of subsequent research. However, it is also problematic. Summing up its assumption and underlying technical problems - which are, in fact, shared by essentially all cryptocurrencies that, like Bitcoin, are based on proof of work.

[0051] Para esse resumo, é suficiente relembrar que, em Bitcoin, um usuário pode possuir múltiplas chaves públicas de um esquema de assinatura digital, que dinheiro é associada às chaves públicas, e que um pagamento é uma assinatura digital que transfere parte da quantidade de dinheiro de uma chave pública para outra. Essencialmente, Bitcoin organiza todos os pagamentos processados em uma cadeia de blocos, B1, B2, . . . , em que cada um consiste em múltiplos pagamentos, de modo que, todos os pagamentos de B1, considerados em uma ordem, seguidos por aqueles de B2, em qualquer ordem, etc., constituam uma sequência de pagamentos válidos. Cada bloco é gerado, em média, a cada 10 minutos.[0051] For this summary, it is sufficient to remember that, in Bitcoin, a user can have multiple public keys of a digital signature scheme, that money is associated with public keys, and that a payment is a digital signature that transfers part of the amount of money from one public key to another. Essentially, Bitcoin organizes all payments processed into a block chain, B1, B2,. . . , where each consists of multiple payments, so that all payments from B1, considered in one order, followed by those from B2, in any order, etc., constitute a sequence of valid payments. Each block is generated, on average, every 10 minutes.

[0052] Essa sequência de blocos é uma cadeia, devido ao fato de ser estruturada de modo a garantir que qualquer alteração, mesmo em um único bloco, penetra em todos os blocos subsequentes, tornando mais fácil de localizar qualquer alteração do histórico de pagamentos. (Como será observado, isso é obtido incluindo-se em cada bloco um hash criptográfico do anterior.) Tal estrutura em blocos é denominada cadeia de blocos.[0052] This sequence of blocks is a chain, due to the fact that it is structured in order to guarantee that any change, even in a single block, penetrates all subsequent blocks, making it easier to locate any change in the payment history. (As will be noted, this is achieved by including a cryptographic hash of the previous one in each block.) Such a block structure is called a block chain.

[0053] Suposição: A Maior Parte Honesta de Potência[0053] Assumption: Most Honest Power

Computacional Bitcon supõe que nenhuma entidade maliciosa (nem uma coalizão de entidades maliciosas coordenadas) controla a maior parte da potência computacional destinada para a geração de bloco. Tal entidade, de fato, teria a capacidade para modificar a cadeia de blocos e, desse modo, reescrever o histórico de pagamentos, como desejar. Em particular, poderia realizar um pagamento ℘, obter os benefícios pagos, e, então, “apagar” qualquer traço de ℘.Computational Bitcon assumes that no malicious entity (nor a coalition of coordinated malicious entities) controls most of the computational power destined for block generation. Such an entity, in fact, would have the ability to modify the block chain and thereby rewrite the payment history as desired. In particular, you could make a payment ℘, get the benefits paid, and then “erase” any trace of ℘.

[0054] Problema da Técnica 1: Resíduo Computacional A abordagem de prova de trabalho da Bitcoin para geração de bloco exige uma quantidade extraordinária de computação. Atualmente, com apenas algumas centenas de milhares de chaves públicas no sistema, os 500 supercomputadores mais poderosos podem apenas reunir apenas 12,8% por cento da potência computacional total exigida pelos participantes de Bitcoin. Essa quantidade de computação seria amplamente aumentada, caso significativamente mais usuários aderissem ao sistema.[0054] Technique Problem 1: Computational Residue Bitcoin's proof of work approach to block generation requires an extraordinary amount of computation. Currently, with only a few hundred thousand public keys in the system, the 500 most powerful supercomputers can only gather just 12.8% per cent of the total computing power required by Bitcoin participants. This amount of computing would be greatly increased if significantly more users joined the system.

[0055] Problema da Técnica 2: Concentração de Poder Atualmente, devido à quantidade de computação exorbitante exigida, um usuário, que tenta gerar um novo bloco com o uso de um computador do tipo desktop comum (tampouco um telefone celular), espera perder dinheiro. De fato, para computar um novo bloco com um computador comum, os custos esperados da eletricidade necessária para alimentar a computação excedem a recompensa esperada. Apenas com o uso de agrupamentos de computadores especialmente montados (que não fazem nada além de “minerar novos blocos”), uma pessoa espera ter lucro gerando-se novos blocos. Consequentemente, hoje em dia há, de fato, duas classes distintas de usuários: usuários comuns, que realizam apenas pagamentos, e agrupamentos de mineração especializada, que apenas buscam por novos blocos.[0055] Problem of Technique 2: Concentration of Power Currently, due to the amount of exorbitant computing required, a user, who tries to generate a new block using an ordinary desktop computer (not even a cell phone), expects to lose money . In fact, to compute a new block with an ordinary computer, the expected costs of electricity needed to power the computation exceed the expected reward. Only by using clusters of specially assembled computers (which do nothing but "mine new blocks"), does a person expect to make a profit by generating new blocks. Consequently, today there are, in fact, two distinct classes of users: ordinary users, who make only payments, and specialized mining clusters, which only look for new blocks.

[0056] Não deve, portanto, ser uma surpresa que,[0056] It should therefore not be a surprise that,

recentemente, a potência de computação total para geração de bloco está em apenas cinco agrupamentos. Em tais condições, a suposição de que uma maior parte da potência computacional é honesta se torna menos verossímil.recently, the total computing power for block generation is in just five clusters. In such conditions, the assumption that most of the computational power is honest becomes less credible.

[0057] Problema da Técnica 3: Ambiguidade Em Bitcoin, a cadeia de blocos não é necessariamente única. De fato, sua última porção frequentemente se bifurca: a cadeia de blocos pode ser —por exemplo— B1, . . . , Bk, B'k+1, B'k +2, de acordo com um usuário, e B1, . . . , Bk, B"k+1, B"k+2, B"k+3 de acordo com outro usuário. Apenas após diversos blocos terem sido adicionados à cadeia, uma pessoa pode ter garantira razoável de que o primeiro k + 3 blocos será o mesmo para todos os usuários. Desse modo, uma pessoa não pode transferir imediatamente nos pagamentos contidos no último bloco da cadeia. É mais prudente esperar e observar a possibilidade de o bloco se tornar suficientemente profundo na cadeia de blocos e, desse modo, suficientemente estável.[0057] Problem of Technique 3: Ambiguity In Bitcoin, the block chain is not necessarily unique. In fact, its last portion often forks: the chain of blocks can be —for example— B1,. . . , Bk, B'k + 1, B'k +2, according to a user, and B1,. . . , Bk, B "k + 1, B" k + 2, B "k + 3 according to another user. Only after several blocks have been added to the chain, can a person have reasonable assurance that the first k + 3 blocks will be the same for all users, so a person cannot immediately transfer payments in the last block of the chain. It is more prudent to wait and observe the possibility that the block will become deep enough in the block chain and thus stable enough.

[0058] Separadamente, preocupações de aplicação de lei e política monetária também surgiram quanto a Bitcoin.1[0058] Separately, law enforcement and monetary policy concerns have also emerged regarding Bitcoin.1

1.2 ALGORAND, EM SÍNTESE1.2 ALGORAND, IN SUMMARY

[0059] Configuração Algorand trabalha em uma configuração muito rígida. Resumidamente,[0059] Configuration Algorand works in a very rigid configuration. Briefly,

[0060] (a) Ambiente sem Permissão e com Permissão. A Algorand trabalha eficaz e seguramente mesmo em um ambiente totalmente sem permissão, em que se permite que arbitrariamente muitos usuários se juntem ao sistema a qualquer momento, sem qualquer verificação ou permissão de qualquer tipo. Evidentemente, a Algorand trabalha ainda 1O (pseudo) anonimato oferecido pelos pagamentos com Bitcoin pode ser usado indevidamente para lavagem de dinheiro e/ou para o financiamento de indivíduos criminosos ou organizações terroristas. As notas bancárias ou barras de ouro tradicionais, que, em princípio, oferecem anonimato perfeito, devem representar o mesmo desafio, mas a fisicalidade dessas moedas desacelera substancialmente as transferências dinheiro, de modo a permitir em algum grau o monitoramento por agências de aplicação de lei agencies. A capacidade para “imprimir dinheiro” é um dentre os poderes básicos de um estado-nação. Em princípio, portanto, a adoção em massa de uma moeda independentemente flutuante pode velar esse poder. Atualmente, no entanto, Bitcoin está longe de ser uma ameaça às políticas monetárias governamentais, e, devido a seus problemas escalonáveis, pode nunca ser.[0060] (a) Environment without permission and with permission. Algorand works effectively and securely even in an environment totally without permission, where arbitrarily many users are allowed to join the system at any time, without any verification or permission of any kind. Evidently, Algorand still works 1O (pseudo) anonymity offered by payments with Bitcoin can be used improperly for money laundering and / or for the financing of criminal individuals or terrorist organizations. Traditional banknotes or gold bars, which in principle offer perfect anonymity, should pose the same challenge, but the physicality of these currencies substantially slows down money transfers in order to allow monitoring to some degree by law enforcement agencies agencies. The ability to “print money” is one of the basic powers of a nation-state. In principle, therefore, the mass adoption of an independently floating currency can hide this power. Currently, however, Bitcoin is far from being a threat to government monetary policies, and due to its scalable problems, it may never be.

melhor em um ambiente com permissão.best in an environment with permission.

[0061] (b) Ambientes Muito Adversários. A Algorand suporta um Adversário muito poderoso, que pode[0061] (b) Very Adversary Environments. Algorand supports a very powerful Opponent, who can

[0062] (1) corromper instantaneamente qualquer usuário que desejar, a qualquer momento que desejar, contanto que, em um ambiente sem permissão, 2/3 do dinheiro no sistema pertençam ato usuário honesto. (Em um ambiente com permissão, independentemente do dinheiro, é suficiente que 2/3 dos usuários sejam honestos.)[0062] (1) instantly corrupt any user you want, anytime you want, as long as, in an environment without permission, 2/3 of the money in the system belongs to an honest user. (In an environment with permission, regardless of money, it is enough that 2/3 of users are honest.)

[0063] (2) controlar totalmente e coordenar perfeitamente todos os usuários corrompidos; e[0063] (2) to fully control and perfectly coordinate all corrupted users; and

[0064] (3) programar a entrega de todas as mensagens, contanto que cada mensagem m enviada por um usuário honesto chegue a todos (ou suficientemente muitos dentre) os usuários honestos em um tempo λm, que depende unicamente do tamanho de m. Propriedades Principais Independentemente da presença do adversário poderoso, na Algorand[0064] (3) schedule the delivery of all messages, provided that each message sent by an honest user reaches all (or sufficiently many among) honest users in a time λm, which depends solely on the size of m. Main Properties Regardless of the presence of the powerful opponent, at Algorand

[0065] ● A quantidade de computação exigida é mínima. Essencialmente, não importa quantos usuários estão presentes no sistema, cada um dos mil e quinhentos usuários deve realizar no máximo alguns segundos de computação.[0065] ● The amount of computing required is minimal. Essentially, no matter how many users are present in the system, each of the fifteen hundred users must perform at most a few seconds of computation.

[0066] ● Um novo bloco é gerado rapidamente e nunca deixará de fato a cadeia de blocos. Ou seja, a cadeia de blocos da Algorand pode se bifurcar apenas com probabilidade insignificante (isto é, menos que um em um trilhão ou 10-18). Desse modo, os usuários podem transferir nos pagamentos contidos em um novo bloco assim que o bloco aparecer.[0066] ● A new block is generated quickly and will never actually leave the block chain. That is, Algorand's chain of blocks can branch out with only insignificant probability (that is, less than one in a trillion or 10-18). In this way, users can transfer payments contained in a new block as soon as the block appears.

[0067] ● Todo poder reside nos próprios usuários. A Algorand é um sistema realmente distribuído. Em particular, não há entidades exógenas (como os “mineradores” em Bitcoin), que podem controlar quais transações são reconhecidas.[0067] ● All power resides in the users themselves. Algorand is a truly distributed system. In particular, there are no exogenous entities (such as “miners” in Bitcoin), who can control which transactions are recognized.

Técnicas Da Algorand.Algorand Techniques.

[0068] 1. UM NOVO E RÁPIDO PROTOCOLO DE ACORDO BIZANTINO. A Algorand gera um novo bloco por meio de um protocolo de acordo Bizantino (BA) binário de passagem de mensagem e criptográfico inventivo, 𝐵𝐴∗ . O protocolo de 𝐵𝐴∗ não apenas satisfaz algumas propriedades adicionais (que serão logo discutidas), mas também é muito rápido. Resumidamente, sua versão de entrada binária consiste em um laço de 3 etapas, no qual um participante i envia uma única mensagem mi para todos os outros participantes. Executados em uma rede completa e sincronizada, em que mais de 2/3 dos participantes são honestos, com probabilidade de > 1/3, após cada ciclo o protocolo termina em acordo. (Destaca-se que o protocolo de 𝐵𝐴∗ satisfaz a definição original de acordo Bizantino, sem quaisquer enfraquecimentos.)[0068] 1. A NEW AND FAST PROTOCOL OF BYZANTINE AGREEMENT. Algorand generates a new block using a Byzantine (BA) binary message passing and inventive cryptographic protocol, 𝐵𝐴 ∗. The 𝐵𝐴 ∗ protocol not only satisfies some additional properties (which will be discussed shortly), but it is also very fast. Briefly, its binary input version consists of a 3-step loop, in which one participant i sends a single message mi to all other participants. Executed in a complete and synchronized network, in which more than 2/3 of the participants are honest, with a probability of> 1/3, after each cycle the protocol ends in agreement. (It should be noted that the 𝐵𝐴 ∗ protocol meets the original definition of the Byzantine agreement, without any weakening.)

[0069] A Algorand potencializa seu protocolo de BA binário para obter o acordo, em seu modelo de comunicação diferente, em cada novo bloco. O bloco acordado é, então, certificado, por meio de um número prescrito de assinatura digital dos verificadores adequados, e propagado através da rede.[0069] Algorand leverages its binary BA protocol to obtain the agreement, in its different communication model, in each new block. The agreed block is then certified, using a prescribed digital signature number from the appropriate verifiers, and propagated through the network.

[0070] 2. ELEIÇÃO CRIPTOGRÁFICA SECRETA. Embora seja muito rápido, o protocolo de 𝐵𝐴∗ seria beneficiado por velocidade adicional quando executado por milhões de usuários. Consequentemente, a Algorand escolhe os participantes de 𝐵𝐴∗ como um subconjunto muito menor do conjunto de todos os usuários. Para evitar um tipo diferente de problema de concentração de poder, cada novo bloco Br será construído e acordado, por meio de uma nova execução de 𝐵𝐴∗ , por um conjunto separado de verificadores selecionados, SVr. Em princípio, selecionar tal conjunto pode ser tão difícil quanto selecionar Br diretamente. Analisa-se esse problema potencial por uma abordagem inovadora que é chamada eleição criptográfica secreta. A eleição é a prática de selecionar oficiais aleatoriamente a partir de um conjunto grande de indivíduos elegíveis. (Eleição foi praticada ao longo de séculos: por exemplo, pelas repúblicas de Atenas, Florença e Veneza. Em sistemas judiciais modernos, uma seleção aleatória é normalmente usada para escolher júris. A amostragem aleatória também foi recomendada para eleições.) Em um sistema descentralizado, evidentemente, escolher as moedas aleatórias necessárias para aleatoriamente selecionar os membros de cada conjunto de verificador SVr é problemático. Desse modo, recorre-se a criptografia a fim de selecionar cada conjunto de verificador, a partir da população de todos os usuários, de forma que seja garantido que seja automático (isto é, que não exige nenhuma troca de mensagens) e aleatória. De maneira semelhante, seleciona-se um usuário, o líder, encarregado de propor o novo bloco Br, e o conjunto de verificador SVr, encarregado de obter o acordo sobre o bloco proposto pelo líder. O sistema inventivo potencializa algumas informações, Qr-1, que são deduzíveis a partir do conteúdo do bloco anterior e é não manipulável mesmo na presença de um adversário muito forte.[0070] 2. SECRET CRYPTOGRAPHIC ELECTION. Although it is very fast, the ∗ ∗ protocol would benefit from additional speed when run by millions of users. Consequently, Algorand chooses the participants of 𝐵𝐴 ∗ as a much smaller subset of the set of all users. In order to avoid a different type of power concentration problem, each new Br block will be built and agreed upon, through a new execution of 𝐵𝐴 ∗, by a separate set of selected verifiers, SVr. In principle, selecting such a set can be as difficult as selecting Br directly. This potential problem is analyzed through an innovative approach that is called secret cryptographic election. Election is the practice of selecting officers at random from a large set of eligible individuals. (Election has been practiced for centuries: for example, by the republics of Athens, Florence and Venice. In modern judicial systems, random selection is normally used to choose juries. Random sampling has also been recommended for elections.) In a decentralized system Of course, choosing the random coins needed to randomly select the members of each SVr checker set is problematic. In this way, cryptography is used in order to select each set of verifiers, from the population of all users, so that it is guaranteed to be automatic (that is, that does not require any message exchange) and random. Similarly, a user is selected, the leader, in charge of proposing the new Br block, and the SVr verifier set, in charge of obtaining agreement on the block proposed by the leader. The inventive system enhances some information, Qr-1, which is deductible from the contents of the previous block and is non-manipulable even in the presence of a very strong opponent.

[0071] 3. A QUANTIDADE (SEMENTE) Qr. Usa-se o último bloco Br-1 na cadeia de blocos a fim de automaticamente determinar o próximo conjunto de verificador e líder encarregado de construir o novo bloco Br. O desafio com essa abordagem é que, escolhendo-se um pagamento ligeiramente diferente no ciclo anterior, o Adversário poderoso ganha um controle enorme sobre o próximo líder. Mesmo se apenas controlou 1/1.000 dos participantes/dinheiro no sistema, o mesmo pode garantir que todos os líderes são maliciosos. (Consultar a Seção de Intuição 4.1.) Esse desafio é central para todas as abordagens de prova de comprovação, e, de acordo com nosso conhecimento, não foi, até agora, satisfatoriamente solucionado.[0071] 3. THE QUANTITY (SEED) Qr. The last Br-1 block in the block chain is used to automatically determine the next set of verifier and leader in charge of building the new Br block. The challenge with this approach is that by choosing a slightly different payment in the cycle previous, the powerful Opponent gains enormous control over the next leader. Even if you only controlled 1 / 1,000 of the participants / money in the system, it can guarantee that all leaders are malicious. (See Intuition Section 4.1.) This challenge is central to all evidence-based approaches, and to the best of our knowledge, it has not, so far, been satisfactorily solved.

[0072] Para cumprir esse desafio, construiu-se propositalmente, e atualiza-se continuamente, uma quantidade separada e cuidadosamente definida, Qr, que provavelmente é, não apenas imprevisível,[0072] To meet this challenge, a separate and carefully defined quantity, Qr, was purposely built, and is continually updated, which is probably not just unpredictable,

mas também não influenciável, pelo Adversário poderoso. Pode-se referir à Qr como a r-ésima semente, como a partir de Qr que Algorand seleciona, por meio de eleição criptográfica secreta, todos os usuários que desempenharão um papel especial na geração do r-ésimo bloco. A semente Qr será deduzível a partir do bloco Br-1.but also not influenced by the powerful adversary. Qr can be referred to as the r-th seed, as from Qr that Algorand selects, through secret cryptographic election, all users who will play a special role in the generation of the r-th block. The Qr seed will be deductible from the Br-1 block.

[0073] 4. CREDENCIAIS SECRETAS. O uso aleatório e não ambíguo do último bloco atual, Br-1, a fim de escolher o conjunto de verificador e o líder encarregado de construir o novo bloco, Br, não é suficiente. Visto que Br-1 deve ser conhecido antes de gerar Br, a última quantidade não influenciável Qr-1 deduzível de Br-1 também deve ser conhecida. Consequentemente, também devem os verificadores e o líder encarregados de computar o bloco Br. Desse modo, o Adversário poderoso pode imediatamente corromper todos esses, antes dos mesmos entrarem em qualquer discussão acerca de Br, de modo a obter controle completo sobre o bloco que os esses certificam.[0073] 4. SECRET CREDENTIALS. The random and unambiguous use of the current current block, Br-1, in order to choose the verifier set and the leader in charge of building the new block, Br, is not enough. Since Br-1 must be known before generating Br, the last non-influenced Qr-1 deductible amount of Br-1 must also be known. Consequently, so should the verifiers and the leader in charge of computing the Br block. In this way, the powerful Adversary can immediately corrupt all of these, before they enter into any discussion about Br, in order to gain complete control over the block that the those certify.

[0074] Para impedir esse problema, líderes (e verificadores de fato também) secretamente aprendem seus papeis, mas podem computar uma credencial adequada, com a capacidade para provar para todos que de fato tem tal papel. Quando um usuário perceber confidencialmente que é o líder para o próximo bloco, primeiro se monta secretamente seu próprio novo bloco proposto, e, então, dissemina o mesmo (de modo que possa ser certificado) em conjunto com sua própria credencial. Dessa forma, embora o Adversário perceba imediatamente quem é o líder do próximo bloco, e embora possa corromper o mesmo imediatamente, será muito tarde para o Adversário influenciar a escolha de um novo bloco. De fato, ele não pode “retornar” a mensagem do líder, assim como um governo poderoso não pode conter uma mensagem disseminada de modo viral pelo WikiLeaks.[0074] To prevent this problem, leaders (and fact checkers too) secretly learn their roles, but they can compute an appropriate credential, with the ability to prove to everyone that they do indeed have such a role. When a user confidently realizes that he is the leader for the next block, he first secretly assembles his own proposed new block, and then disseminates the same (so that it can be certified) together with his own credential. Thus, although the Adversary immediately realizes who the leader of the next block is, and although it may corrupt it immediately, it will be too late for the Opponent to influence the choice of a new block. In fact, it cannot “return” the leader's message, just as a powerful government cannot contain a message spread virally through WikiLeaks.

[0075] Como será observado, não se pode garantir a singularidade do líder, nem que todos saberão quem é o líder, incluindo o próprio líder! Mas, na Algorand, o progresso não ambíguo será garantido.[0075] As will be noted, the uniqueness of the leader cannot be guaranteed, nor that everyone will know who the leader is, including the leader himself! But at Algorand, unambiguous progress will be guaranteed.

[0076] 5. SUBSTITUIÇÃO DE PARTICIPANTE. Após esse propor um novo bloco, o líder pode também “morrer” (ou ser corrompido pelo Adversário), devido ao seu trabalho estar concluído. Mas, para os verificadores em SVr, as coisas são menos simples. De fato, estar encargo de certificar o novo bloco Br com a quantidade suficiente de assinaturas, os mesmos devem primeiro executar o acordo Bizantino no bloco proposto pelo líder. O problema é que, não importa o quanto eficaz seja, 𝐵𝐴∗ exige múltiplas etapas e a honestidade de > 2/3 de seus participantes. Esse é um problema, devido ao fato de, por motivos de eficácia, o conjunto de participantes de 𝐵𝐴∗ consistir no menor conjunto de SVr aleatoriamente selecionado dentre o conjunto de todos os usuários. Desse modo, o Adversário poderoso, embora incapaz de corromper 1/3 de todos os usuários, pode certamente corromper todos os membros de SVr![0076] 5. SUBSTITUTION OF PARTICIPANT. After proposing a new block, the leader may also “die” (or be corrupted by the opponent), due to the fact that his work is complete. But for SVr checkers, things are less simple. In fact, to be in charge of certifying the new Br block with a sufficient number of signatures, they must first execute the Byzantine agreement in the block proposed by the leader. The problem is that, no matter how effective it is, ∗ ∗ requires multiple steps and the honesty of> 2/3 of its participants. This is a problem, due to the fact that, for reasons of efficiency, the set of participants of 𝐵𝐴 ∗ consists of the smallest set of SVr randomly selected from the set of all users. In this way, the powerful Opponent, while unable to corrupt 1/3 of all users, can certainly corrupt all members of SVr!

[0077] Felizmente será provado que o protocolo de 𝐵𝐴∗ , executado propagando-se mensagens de maneira ponto a ponto, é substituinte de participante. Essa exigência inovadora significa que o protocolo obtém correta e eficazmente o consenso mesmo se cada uma de suas etapas for executada por um conjunto de participantes totalmente novo e aleatória e independentemente selecionado. Desse modo, com milhões de usuários, cada conjunto de participantes pequeno associado a uma etapa de 𝐵𝐴∗ mais provavelmente tem interseção vazia com o próximo conjunto.[0077] Fortunately it will be proved that the 𝐵𝐴 ∗ protocol, executed by propagating messages in a point-to-point manner, is a participant substitute. This innovative requirement means that the protocol correctly and effectively obtains consensus even if each of its stages is carried out by an entirely new and randomly selected and independently selected set of participants. Thus, with millions of users, each small set of participants associated with a 𝐵𝐴 ∗ step is more likely to have an empty intersection with the next set.

[0078] Além disso, os conjuntos de participantes de etapas diferentes de 𝐵𝐴∗ provavelmente terão cardinalidades totalmente diferentes. Adicionalmente, os membros de cada conjunto não sabem qual será o próximo conjunto de participantes, e não passam secretamente qualquer estado interno.[0078] In addition, sets of participants from different stages of 𝐵𝐴 ∗ are likely to have totally different cardinalities. Additionally, the members of each set do not know what the next set of participants will be, and do not secretly pass any internal state.

[0079] A propriedade de participante substituível é, de fato, crucial para derrotar o Adversário dinâmico e muito poderoso que é contemplado. Acredita-se que protocolos de participante substituível se mostrarão cruciais em diversos contextos e aplicações. Em particular, os mesmos serão cruciais para executar seguramente pequenos subprotocolos incorporados em um universo maior de participantes com um adversário dinâmico, que, tendo a capacidade para corromper até mesmo uma pequena fração dos participantes totais, não tem dificuldade em corromper todos os participantes no subprotocolo menor.[0079] Replaceable participant ownership is, in fact, crucial to defeating the dynamic and very powerful opponent that is contemplated. It is believed that replaceable participant protocols will prove crucial in different contexts and applications. In particular, they will be crucial to safely execute small sub-protocols incorporated in a larger universe of participants with a dynamic opponent, who, having the ability to corrupt even a small fraction of the total participants, has no difficulty in corrupting all participants in the sub-protocol. smaller.

[0080] Uma Propriedade/Técnica Adicional: Honestidade Indolente Um usuário honesto segue suas instruções prescritas, que inclui estar online e executar o protocolo. Visto que a Algorand tem apenas exigência de computação e comunicação modesta, estar online e executar o protocolo “no fundo” não é um sacrifício grande. Evidentemente, algumas “ausências” entre os participantes honestos, como aquelas devido a uma perda súbita de conectividade ou à necessidade de reiniciar, são automaticamente toleradas (devido ao fato de sempre poder considerar tais alguns participantes como temporariamente maliciosos). Destaca-se, no entanto, que a Algorand pode ser simplesmente adaptada de modo a trabalhar em um novo modelo, no qual os usuários honestos devem estar offline na maior parte do tempo. Nosso novo modelo pode ser informalmente introduzido como a seguir.[0080] An Additional Property / Technique: Indolent Honesty An honest user follows their prescribed instructions, which includes being online and executing the protocol. Since Algorand has only modest computing and communication requirements, being online and executing the protocol “in the background” is not a big sacrifice. Of course, some “absences” among honest participants, such as those due to a sudden loss of connectivity or the need to restart, are automatically tolerated (due to the fact that some participants can always be considered to be temporarily malicious). It should be noted, however, that Algorand can simply be adapted to work on a new model, in which honest users must be offline most of the time. Our new model can be informally introduced as follows.

[0081] Honestidade Indolente. Resumidamente, um usuário i é indolente, porém honesto se (1) segue todas as suas instruções prescritas, quando o mesmo é solicitado para participar para o protocolo, e (2) é solicitado participar para o protocolo apenas raramente, e com uma notificação prévia adequada.[0081] Indolent honesty. In short, a user i is indolent, but honest if (1) he follows all of his prescribed instructions, when he is asked to participate for the protocol, and (2) he is asked to participate for the protocol only rarely, and with prior notice proper.

[0082] Com tal noção relaxada de honestidade, pode-se ser ainda mais confiante de que pessoas honestas estarão à disposição quando for necessário, e a Algorand garante que, quando for o caso,[0082] With such a relaxed notion of honesty, one can be even more confident that honest people will be on hand when needed, and Algorand guarantees that, when appropriate,

[0083] O sistema opera seguramente mesmo se, em um determinado ponto no tempo, a maior parte dos participantes que participam forem maliciosos. 2 PRELIMINARES[0083] The system operates safely even if, at a certain point in time, most of the participating participants are malicious. 2 PRELIMINARY

2.1 Criptografia Primitiva2.1 Primitive Cryptography

[0084] Hashing Ideal. Deve-se transferir em uma função hash criptográfica eficazmente computacional, H, que mapeia arbitrariamente linhas longas para linhas binárias de comprimento fixo. Seguindo uma tradição antiga, modela-se H como um oráculo aleatório, essencialmente uma função que mapeia cada linha s possível para uma linha binária aleatória e independentemente selecionada (e, então, fixada), H(s), do comprimento escolhido.[0084] Ideal Hashing. An efficient computational cryptographic hash function, H, must be transferred, which arbitrarily maps long lines to fixed-length binary lines. Following an ancient tradition, H is modeled as a random oracle, essentially a function that maps each possible s line to a random and independently selected (and then fixed) binary line, H (s), of the chosen length.

[0085] Em nossas modalidades descritas, H tem saídas de 256-bits de comprimento. De fato, tal comprimento é curto o suficiente para tornar o sistema eficaz e longo o suficiente para tornar o sistema seguro. Por exemplo, deseja-se que H seja resiliente à colisão. Ou seja, deve ser difícil encontrar duas linhas diferentes x e y de modo que H(x) = H(y). Quando H é um oráculo aleatório com saídas de 256-bits de comprimento, encontrar qualquer tal par de linhas é de fato difícil. (Tentar aleatoriamente, e transferir no paradoxo do aniversário exigiria 2256/2 = 2128 testes.)[0085] In our described modalities, H has outputs of 256-bits in length. In fact, such a length is short enough to make the system effective and long enough to make the system safe. For example, H is wanted to be resilient to collision. That is, it must be difficult to find two different lines x and y so that H (x) = H (y). When H is a random oracle with 256-bit long outputs, finding any such pair of lines is indeed difficult. (To try randomly, and to transfer in the birthday paradox would require 2256/2 = 2128 tests.)

[0086] Assinatura Digital. As assinaturas digitais permitem que usuários autentiquem informações uns para os outros sem compartilhar quaisquer chaves secretas. Um esquema de assinatura digital consiste em três algoritmos rápidos: um gerador de chave probabilística G, um algoritmo de sinalização S e um algoritmo de verificação V.[0086] Digital Signature. Digital signatures allow users to authenticate information to each other without sharing any secret keys. A digital signature scheme consists of three fast algorithms: a probabilistic key generator G, a signaling algorithm S and a verification algorithm V.

[0087] Dado um parâmetro de segurança k, um número inteiro suficientemente alto, um usuário i usa G para produzir um par de chaves de k-bits (isto é, linhas): uma chave “pública” pki e uma chave de sinalização "secreta" compatível ski. De modo crucial, uma chave pública não “trai” sua chave secreta correspondente. Ou seja, mesmo dado o conhecimento de pki,[0087] Given a security parameter k, a sufficiently high integer, a user i uses G to produce a pair of k-bit keys (ie lines): a "public" key pki and a signaling key " secret "compatible ski. Crucially, a public key does not "betray" its corresponding secret key. That is, even given the knowledge of pki,

nenhum outro além de i tem a capacidade para computar ski em menos que o tempo astronômico.none other than i has the capacity to compute ski in less than astronomical time.

[0088] O usuário i usa ski para assinar digitalmente mensagens. Para cada mensagem possível (linha binária) m, i primeiro mistura m e, então, executa o algoritmo S nas entradas H(m) e ski de modo a produzir a linha de k-bits 𝑠𝑖𝑔𝑝𝑘𝑖 (𝑚) ≜ 𝑆(𝐻 (𝑚), 𝑠𝑘𝑖 ).2[0088] User i uses ski to digitally sign messages. For each possible message (binary line) m, i first mixes m, then executes the S algorithm on the H (m) and ski inputs to produce the k-bit line 𝑠𝑖𝑔𝑝𝑘𝑖 (𝑚) ≜ 𝑆 (𝐻 (𝑚) , 𝑠𝑘𝑖) .2

[0089] A linha binária sigpki (m) é denominada assinatura digital de i de m (com relação a pki), e pode ser mais simplesmente denotada por sigi(m), quando a chave pública pki estiver clara a partir do contexto.[0089] The binary line sigpki (m) is called digital signature of i of m (with respect to pki), and can be more simply denoted by sigi (m), when the public key pki is clear from the context.

[0090] Todos que conhecem pki podem usar o mesmo para verificar as assinaturas digitais produzidas por i. Especificamente, em entradas (a) a chave pública pki de um participante i, (b) uma mensagem m, e (c) uma linha s, isto é, suposta assinatura digital de i da mensagem m, o algoritmo de verificação V emite SIM ou NÃO.[0090] Anyone who knows pki can use it to check the digital signatures produced by i. Specifically, in entries (a) the public key pki of a participant i, (b) a message m, and (c) a line s, that is, supposed digital signature of i of message m, the verification algorithm V emits YES or not.

[0091] As propriedades exigidas de um esquema de assinatura digital são:[0091] The required properties of a digital signature scheme are:

[0092] 1. Assinaturas legítimas são sempre verificadas: Se s = sigi(m), então, V(pki, m, s) = SIM; e[0092] 1. Legitimate signatures are always verified: If s = sigi (m), then V (pki, m, s) = YES; and

[0093] 2. Assinaturas digitais são difíceis de serem falsificadas: Sem conhecimento de ski o tempo para encontrar uma linha s de modo que V(pki, m, s) = SIM, para uma mensagem m nunca assinada por i, é astronomicamente grande.[0093] 2. Digital signatures are difficult to falsify: Without knowledge of ski the time to find a line s so that V (pki, m, s) = YES, for a message m never signed by i, is astronomically large .

[0094] (Seguindo exigências de segurança fortes, isso é verdadeira mesmo se uma pessoa puder obter a assinatura de qualquer outra mensagem.)[0094] (Following strong security requirements, this is true even if a person can obtain the signature of any other message.)

[0095] Consequentemente, para impedir que qualquer outra 2 Visto que H é resiliente à colisão é praticamente impossível que, assinando-se m uma pessoa “acidentalmente assine” uma mensagem m’ diferente.[0095] Consequently, to prevent any other 2 Since H is resilient to collision, it is practically impossible that by signing m a person "accidentally signs" a different m 'message.

pessoa assine mensagens em seu nome, um participante i deve manter sua chave de assinatura ski secreta (dessa forma, o termo “chave secreta”), e para permitir que qualquer pessoa verifique as mensagens que o mesmo assinou, i tem um interesse em publicar sua chave pki (dessa forma, o termo “chave pública”).person signs messages on his behalf, a participant i must keep his ski subscription key secret (thus the term “secret key”), and to allow anyone to check the messages he signed, i have an interest in publishing your pki key (thus the term “public key”).

[0096] Assinaturas com Capacidade para Recuperar Mensagem Em geral, uma mensagem m não é recuperável a partir de sua assinatura sigi(m). A fim de lidar virtualmente com assinaturas digitais que satisfazem a propriedade de "recuperabilidade de mensagem" conceitualmente conveniente (isto é, para garantir que o signatário e a mensagem sejam facilmente computáveis a partir de uma assinatura, define- se 𝑆𝐼𝐺𝑝𝑘𝑖 (𝑚) = (𝑖, 𝑚, 𝑠𝑖𝑔𝑝𝑘𝑖 (𝑚)) e 𝑆𝐼𝐺𝑖 (𝑚) = (𝑖, 𝑚, 𝑠𝑖𝑔𝑖 (𝑚)), se pki estiver claro.[0096] Signatures with Ability to Retrieve Message In general, a message m is not recoverable from its sigi (m) signature. In order to virtually deal with digital signatures that satisfy the conceptually convenient "message recoverability" property (that is, to ensure that the signer and the message are easily computable from a signature, 𝑆𝐼𝐺𝑝𝑘𝑖 (𝑚) = ( 𝑖, 𝑚, 𝑠𝑖𝑔𝑝𝑘𝑖 (𝑚)) and 𝑆𝐼𝐺𝑖 (𝑚) = (𝑖, 𝑚, 𝑠𝑖𝑔𝑖 (𝑚)), if pki is clear.

[0097] Assinatura Digital Única. Considera-se também esquemas de assinatura digital (G, S, V) que satisfazem a seguinte propriedade adicional.[0097] Unique Digital Signature. Digital signature schemes (G, S, V) that satisfy the following additional property are also considered.

[0098] 3. Singularidade. É difícil encontrar linhas pk', m, s, e s' de modo que s ≠ s' e V(pk', m, s) = V(pk', m, s') = 1.[0098] 3. Singularity. It is difficult to find lines pk ', m, s, and s' so that s ≠ s 'and V (pk', m, s) = V (pk ', m, s') = 1.

[0099] (Observa-se que a propriedade de singularidade também mantém linhas pk' que não são chaves públicas legitimamente geradas. Em particular, no entanto, a propriedade de singularidade implica que, se uma pessoa usou o gerador de chave específica G para computar uma chave pública pk em conjunto com uma chave secreta compatível sk, e, desse modo, conhecia sk, seria essencialmente impossível também para ele encontrar duas assinaturas digitais diferentes de uma mesma mensagem com relação a pk.) Observações[0099] (Note that the singularity property also maintains pk 'lines that are not legitimately generated public keys. In particular, however, the singularity property implies that if a person used the specific key generator G to compute a public key pk in conjunction with a secret key compatible with sk, and thus knew sk, it would be essentially impossible for him to find two different digital signatures of the same message with respect to pk.)

[00100] ● A PARTIR DE ASSINATURAS ÚNICAS PARA FUNÇÕES VERIFICÁVEIS E ALEATÓRIAS. Com relação a um esquema de assinatura digital com a propriedade de singularidade, o mapeamento m → H(sigi(m)) associa a cada linha possível m, uma linha de 256-bits aleatoriamente selecionada e única, e a exatidão desse mapeamento pode ser fornecida dada a assinatura sigi(m).[00100] ● FROM UNIQUE SIGNATURES FOR VERIFIABLE AND RANDOM FUNCTIONS. With respect to a digital signature scheme with the singularity property, the mapping m → H (sigi (m)) associates with each possible line m, a randomly selected and unique 256-bit line, and the accuracy of this mapping can be provided given the sigi (m) signature.

[00101] Ou seja, o hashing ideal e o esquema de assinatura digital que satisfazem a propriedade de singularidade essencialmente fornecem uma implantação elementar de uma função aleatória verificável (VRF).[00101] That is, the ideal hashing and digital signature scheme that satisfy the singularity property essentially provide an elementary implementation of a verifiable random function (VRF).

[00102] Uma VRF é um tipo especial de assinatura digital. Pode-se escrever VRFi(m) para indicar tal assinatura especial de i de uma mensagem m. Além de satisfazer a propriedade de singularidade, as funções aleatórias verificáveis produzem saídas que são garantidas de serem suficientemente aleatórias. Ou seja, VRFi(m) é essencialmente aleatória, e imprevisível até ser produzida. Por outro lado, SIGi(m) não precisa ser suficientemente aleatório. Por exemplo, o usuário i pode escolher sua chave pública de modo que SIGi(m) sempre seja uma linha de k-bits que é (lexicograficamente) pequena (isto é, cujos primeiros bits podem ser sempre 0s). Observa-se, no entanto, que, visto que H é uma função de hash ideal, H(SIGi(m)) sempre será uma linha de 256-bits aleatória. Nas modalidades preferidas, usa-se extensivamente assinaturas digitais de hashing que satisfazem a propriedade de singularidade precisamente por terem a capacidade para associarem a cada mensagem m e cada usuário i um número aleatório único. Caso uma pessoa implante Algorand com VRFs, pode-se substituir H(SIGi(m)) por VRFi(m). Em particular, um usuário i não precisa primeiro computar SIGi(m), então, H(SIGi(m)) (a fim de, —por exemplo— comparar H(SIGi(m)) com um número p). O mesmo pode diretamente computar VRFi(m). Em resumo, deve-se entender que[00102] A VRF is a special type of digital signature. VRFi (m) can be written to indicate such a special signature of i in a message m. In addition to satisfying the singularity property, the verifiable random functions produce outputs that are guaranteed to be sufficiently random. That is, VRFi (m) is essentially random, and unpredictable until it is produced. On the other hand, SIGi (m) does not have to be sufficiently random. For example, user i can choose his public key so that SIGi (m) is always a line of k-bits that is (lexicographically) small (that is, whose first bits can always be 0s). It is observed, however, that, since H is an ideal hash function, H (SIGi (m)) will always be a random 256-bit line. In the preferred modalities, digital hashing signatures are used extensively that satisfy the singularity property precisely because they have the ability to associate each message m and each user i with a unique random number. If a person implants Algorand with VRFs, one can replace H (SIGi (m)) with VRFi (m). In particular, a user i does not need to first compute SIGi (m), then H (SIGi (m)) (in order, for example, to compare H (SIGi (m)) with a number p). It can directly compute VRFi (m). In summary, it must be understood that

H(SIGi(m)) pode ser interpretado como VRFi(m), ou como um número suficientemente aleatório, facilmente computado por participante i, mas imprevisível para qualquer outra pessoa, associado de modo não ambíguo a i e m.H (SIGi (m)) can be interpreted as VRFi (m), or as a sufficiently random number, easily computed by participant i, but unpredictable for anyone else, unambiguously associated with i and m.

[00103] ● TRÊS NECESSIDADES DIFERENTES PARA ASSINATURAS DIGITAIS. Na Algorand, um usuário i depende de assinaturas digitais para[00103] ● THREE DIFFERENT NEEDS FOR DIGITAL SIGNATURES. At Algorand, a user i relies on digital signatures to

[00104] (1) Autenticar os próprios pagamentos de i. Nesse relatório descritivo, as chaves podem ser de “longo prazo” (isto é, usadas para assinar muitas mensagens ao longo de um período de tempo longo) e resultarem de um esquema de assinatura comum.[00104] (1) Authenticate i's own payments. In this descriptive report, the keys can be “long-term” (that is, used to sign many messages over a long period of time) and result from a common signature scheme.

[00105] (2) Gerar credenciais que provam que i é autorizado a atuar em alguma etapa s de um ciclo r. Aqui, as chaves podem ser de longo prazo, mas devem resultar de um esquema que satisfaz a propriedade de singularidade.[00105] (2) Generate credentials that prove that i is authorized to act in some stages of a cycle r. Here, the keys may be long-term, but they must result from a scheme that satisfies the uniqueness property.

[00106] (3) Autenticar a mensagem i enviada em cada etapa nas quais o mesmo atua. Aqui, as chaves devem ser efêmeras (isto é, destruídas após oi seu primeiro uso), mas podem resultar de um esquema de assinatura comum.[00106] (3) Authenticate the message i sent at each stage in which it operates. Here, the keys must be ephemeral (that is, destroyed after their first use), but they may result from a common signature scheme.

[00107] ● UMA SIMPLIFICAÇÃO DE BAIXO CUSTO. Para simplicidade, deseja-se que cada usuário i tenha uma única chave de longo prazo. Consequentemente, tal chave deve resultar de um esquema de assinatura com a propriedade de singularidade. Tal simplicidade tem um pequeno custo computacional. Tipicamente, de fato, assinaturas digitais únicas são ligeiramente mais dispendiosas para produzir e verificar que assinaturas comuns.[00107] ● A LOW COST SIMPLIFICATION. For simplicity, it is desired that each user i has a single long-term key. Consequently, such a key must result from a signature scheme with the property of uniqueness. Such simplicity has a small computational cost. Typically, in fact, unique digital signatures are slightly more expensive to produce and verify than ordinary signatures.

2.2 O Registro Público Idealizado2.2 The Idealized Public Registry

[00108] A Algorand tenta imitar o seguinte sistema de pagamento, com base em um registro público idealizado.[00108] Algorand tries to imitate the following payment system, based on an idealized public record.

[00109] 1. O Estado Inicial. O dinheiro é associado a chaves públicas individuais (confidencialmente gerado e pertencente a usuários). Seja pk1, . . . ,pkj como as chaves públicas iniciais e a1, . . . , aj suas respectivas quantidades iniciais de unidades de dinheiro, então, o estado inicial é S0 = (pk1, a1), . . . , (pkj, aj),[00109] 1. The Initial State. The money is associated with individual public keys (privately generated and owned by users). Be pk1,. . . , pkj as the initial public keys and a1,. . . , aj their respective initial quantities of money units, then, the initial state is S0 = (pk1, a1),. . . , (pkj, aj),

[00110] que é presumido como de conhecimento comum no sistema.[00110] which is assumed to be common knowledge in the system.

[00111] 2. Pagamentos. Seja pk uma chave pública que atualmente tem a ≥ 0 unidades de dinheiro, pk’ como outra chave pública, e a' como um número não negativo não maior que a. Então, um pagamento (válido) ℘ é uma assinatura digital, com relação a pk, que especifica a transferência de unidades monetárias a' de pk para pk', em conjunto com algumas informações adicionais. Em símbolos, ℘ = 𝑆𝐼𝐺𝑝𝑘 (𝑝𝑘, 𝑝𝑘 ′ , 𝑎′ , 𝐼, 𝐻 (𝔗)),[00111] 2. Payments. Let pk be a public key that currently has ≥ 0 units of money, pk ’as another public key, and a 'as a non-negative number not greater than a. So, a (valid) payment ℘ is a digital signature, with respect to pk, which specifies the transfer of currency units to 'from pk to pk', together with some additional information. In symbols, ℘ = 𝑆𝐼𝐺𝑝𝑘 (𝑝𝑘, 𝑝𝑘 ′, 𝑎 ′, 𝐼, 𝐻 (𝔗)),

[00112] Em que I representa quaisquer informações adicionais consideradas como úteis, mas não sensíveis (por exemplo, informações de tempo e um identificador de pagamento), e 𝔗 quaisquer informações adicionais consideradas sensíveis (por exemplo, o motivo para o pagamento, possivelmente as identidades dos proprietários de pk e o pk', e assim por diante).[00112] Where I represents any additional information deemed useful but not sensitive (for example, time information and a payment identifier), and 𝔗 any additional information deemed sensitive (for example, the reason for payment, possibly the identities of the owners of the pk and the pk ', and so on).

[00113] Referindo-se a pk (ou seu proprietário) como o contribuinte, para cada pk' (ou seu proprietário) como um beneficiário, e a a' como a quantidade do pagamento ℘.[00113] Referring to pk (or its owner) as the taxpayer, for each pk '(or its owner) as a beneficiary, and to a' as the payment amount ℘.

[00114] Adesão Gratuita Por Meio de Pagamentos. Observa- se que usuários podem aderir ao sistema sempre que desejarem gerando seus próprios pares de chave pública/chave secreta. Consequentemente, a chave pública pk' que aparece no pagamento ℘ acima pode ser uma chave pública recentemente gerada que nunca “possuiu” qualquer dinheiro antes.[00114] Free Membership Through Payments. It is observed that users can join the system whenever they want, generating their own public key / secret key pairs. Consequently, the public key pk 'that appears in the payment ℘ above may be a newly generated public key that has never “owned” any money before.

[00115] 3. O Registro Mágico. No Sistema Idealizado, todos os pagamentos são válidos e aparecem em uma lista à prova de adulteração L de conjuntos de pagamentos “postados no topo” para todos observarem: L = PAY1, PAY2, . . . ,[00115] 3. The Magic Record. In the Idealized System, all payments are valid and appear in an L tamper-proof list of payment sets “posted at the top” for everyone to observe: L = PAY1, PAY2,. . . ,

[00116] Cada bloco PAYr+1 consiste em o conjunto de todos os pagamentos realizados desde o aparecimento do bloco PAYr. No sistema ideal, um novo bloco aparece após uma quantidade de tempo fixa (ou finita). Discussão[00116] Each PAYr + 1 block consists of all payments made since the appearance of the PAYr block. In the ideal system, a new block appears after a fixed (or finite) amount of time. Discussion

[00117] ● Pagamentos Mais Gerais e Saída de Transação Não Gasta. De modo mais geral, se a chave pública pk possuir uma quantidade a, então, um pagamento válido ℘ de pk pode transferir as quantidades a'1, a'2, . . . , respectivamente para as chaves pk'1, pk'2, . . . , contanto que ∑𝑗 𝑎′𝑗 ≤ 𝑎.[00117] ● More General Payments and Outgoing Transaction Not Spent. More generally, if the public key pk has a quantity a, then a valid payment ℘ of pk can transfer the quantities a'1, a'2,. . . , respectively for the keys pk'1, pk'2,. . . , as long as ∑𝑗 𝑎′𝑗 ≤ 𝑎.

[00118] Em Bitcoin e sistemas semelhantes, o dinheiro possuído por uma chave pública pk é segregado em quantidades separadas, e um pagamento p realizado por pk deve transferir tal quantidade segregada a em sua totalidade. Se pk desejar transferir apenas uma fração a' < a de a para outra chave, então, também deve transferir o saldo, a saída de transação não gasta, para outra chave, possivelmente pk por si só.[00118] In Bitcoin and similar systems, money owned by a public key pk is segregated in separate amounts, and a payment p made per pk must transfer such segregated amount to in its entirety. If pk wishes to transfer only a fraction a '<a de a to another key, then it must also transfer the balance, the transaction output does not spend, to another key, possibly pk by itself.

[00119] Algorand também trabalha com chaves que têm quantidades segregadas. No entanto, a fim de focar nos aspectos inovadores da Algorand, é conceitualmente mais simples manter as formas mais simples de pagamentos e chaves que têm uma quantidade única associada aos mesmos.[00119] Algorand also works with keys that have segregated quantities. However, in order to focus on the innovative aspects of Algorand, it is conceptually simpler to maintain the simplest forms of payments and keys that have a unique amount associated with them.

[00120] ● Estado Atual. O Esquema Idealizado não fornece diretamente informações sobre o estado atual do sistema (isto é, sobre quantas unidades de dinheiro cada chave pública tem). Essas informações são deduzíveis a partir do Registro Mágico.[00120] ● Current State. The Idealized Scheme does not directly provide information about the current state of the system (that is, how many units of money each public key has). This information is deductible from the Magic Record.

[00121] No sistema ideal, um usuário ativo armazena e atualiza continuamente as informações de estado mais recentes, ou teria que, de outra forma, reconstruir as mesmas, do zero ou a partir da última vez em que computou as mesmas. (Ainda, posteriormente será mostrado como aumentar Algorand de modo a permitir que seus usuários reconstruam o estado atual de maneira eficaz.)[00121] In the ideal system, an active user continuously stores and updates the most recent state information, or would otherwise have to reconstruct it, from scratch or from the last time he computed it. (Also, later on it will be shown how to augment Algorand to allow its users to reconstruct the current state effectively.)

[00122] ● Segurança e “Privacidade”. As assinaturas digitais garantem que nenhuma pessoa pode falsificar um pagamento de outro usuário. Em um pagamento ℘, as chaves públicas e a quantidade não são ocultadas, mas as informações sensíveis 𝔗 são. De fato, apenas 𝐻 (𝔗) aparece em ℘, e visto que H é uma função de hash ideal, 𝐻 (𝔗)é um valor de 256-bits aleatório, e, desse modo, não há como saber qual 𝔗 foi melhor simplesmente por adivinhação. Ainda, para provar qual foi o 𝔗 (por exemplo, para provar o motivo para o pagamento) o contribuinte pode apenas revelar 𝔗. A exatidão do 𝔗 revelado pode ser verificada computando-se 𝐻 (𝔗) e comparando-se o valor resultante com o último item de ℘. De fato, visto que H é resiliente à colisão, é difícil encontrar um segundo valor 𝔗′ de modo que 𝐻 (𝔗) = 𝐻 (𝔗′).[00122] ● Security and “Privacy”. Digital signatures ensure that no person can falsify another user's payment. In a payment ℘, public keys and quantity are not hidden, but sensitive information 𝔗 is. In fact, only 𝐻 (𝔗) appears in ℘, and since H is an ideal hash function, 𝐻 (𝔗) is a random 256-bit value, so there is no way to know which 𝔗 was better simply by guesswork. Also, to prove what the 𝔗 was (for example, to prove the reason for payment) the taxpayer can only reveal 𝔗. The accuracy of the revealed 𝔗 can be verified by computing 𝐻 (𝔗) and comparing the resulting value with the last item of ℘. In fact, since H is resilient to collision, it is difficult to find a second value 𝔗 ′ so that 𝐻 (𝔗) = 𝐻 (𝔗 ′).

2.3 Noções E Notações Básicas2.3 Basic notions and notations

[00123] Chaves, Usuários e Proprietários Salvo caso especificado de outra forma, cada chave pública (abreviadamente “chave”) é de longo prazo e relacionado a um esquema de assinatura digital com a propriedade de singularidade. Uma chave pública i adere ao sistema quando outra chave pública j já no sistema realiza um pagamento para i.[00123] Keys, Users and Owners Unless otherwise specified, each public key ("key" for short) is long-term and related to a digital signature scheme with the property of uniqueness. A public key i joins the system when another public key j already in the system makes a payment to i.

[00124] Quanto a cor, personifica-se chaves. Refere-se a uma chave i como “ele”, considera-se que i é honesto, que i envia e recebe mensagens, etc. O usuário é um sinônimo para chave. Quando deseja-se distinguir uma chave da pessoa a quem a mesma pertence, se usa respectivamente o termo “chave digital” e “proprietário”.[00124] As for the color, keys are personified. A key i is referred to as "he", i is considered to be honest, i sends and receives messages, etc. The user is a synonym for key. When it is desired to distinguish a key from the person to whom it belongs, the term “digital key” and “owner” are used respectively.

[00125] Sistemas Sem Permissão e Com Permissão. Um sistema é sem permissão, se uma chave digital estiver livre para adesão a qualquer momento e um proprietário pode possuir múltiplas chaves digitais; e, de outra forma, tem permissão.[00125] Systems Without Permission and With Permission. A system is without permission, if a digital key is free to join at any time and an owner can have multiple digital keys; and otherwise, you have permission.

[00126] Representação Única Cada objeto na Algorand tem uma representação única. Em particular, cada conjunto {(x, y, z, . . .) : x ∈ X, y ∈ Y, z ∈ Z, . . .} é ordenado de uma maneira pré-específica: por exemplo, primeiro lexicograficamente em x, então, em y, etc.[00126] Unique Representation Each object in Algorand has a unique representation. In particular, each set {(x, y, z,...): X ∈ X, y ∈ Y, z ∈ Z,. . .} is ordered in a pre-specific way: for example, first lexicographically in x, then in y, etc.

[00127] Relógios de Mesma Velocidade Não há relógio global: em vez disso, cada usuário tem seu próprio relógio. Os relógios de usuário não precisam ser sincronizados de qualquer forma. Presumindo-se, no entanto, que os mesmos têm a mesma velocidade.[00127] Same Speed Watches There is no global clock: instead, each user has their own clock. User clocks do not need to be synchronized in any way. Assuming, however, that they have the same speed.

[00128] Por exemplo, quando for 24 h, de acordo com o relógio de um usuário i, pode ser 14h30 de acordo com o relógio de outro usuário j, mas quando for 24h01, de acordo com o relógio de i, será 14h31 de acordo com relógio de j. Ou seja, “um minuto é o mesmo (suficiente, essencialmente o mesmo) para todos os usuários”.[00128] For example, when it is 24 h, according to the clock of a user i, it may be 2:30 pm according to the clock of another user j, but when it is 24h01, according to the clock i, it will be 2:31 pm according to j clock. In other words, “one minute is the same (sufficient, essentially the same) for all users”.

[00129] Ciclos A Algorand é organizada em unidades lógicas, r = 0, 1, . . . , chamadas ciclos.[00129] Cycles Algorand is organized in logical units, r = 0, 1,. . . , called cycles.

[00130] Usa-se consistentemente sobrescritos para indicar ciclos. Para indicar que uma quantidade não numérica Q (por exemplo, uma linha, uma chave pública, um conjunto, uma assinatura digital, etc.) se refere a um ciclo r, escreve-se simplesmente Qr. Apenas quando Q for um número real (em oposição a uma linha binária interpretável como um número), escreve-se Q(r), de modo que o símbolo r não possa ser interpretado como o exponente de Q.[00130] Superscripts are consistently used to indicate cycles. To indicate that a non-numeric quantity Q (for example, a line, a public key, a set, a digital signature, etc.) refers to a cycle r, simply write Qr. Only when Q is a real number (as opposed to a binary line interpretable as a number), is Q (r) written, so that the symbol r cannot be interpreted as the exponent of Q.

[00131] No (início de um) ciclo r > 0, o conjunto de todas as chaves públicas é PKr, e o estado de sistema é (𝑟) 𝑆 𝑟 = {(𝑖, 𝑎𝑖 , … ) ∶ 𝑖 ∈ 𝑃𝐾 𝑟 }, (𝑟)[00131] In the (beginning of a) cycle r> 0, the set of all public keys is PKr, and the system state is (𝑟) 𝑆 𝑟 = {(𝑖, 𝑎𝑖,…) ∶ 𝑖 ∈ 𝑃𝐾 𝑟} , (𝑟)

[00132] em que 𝑎𝑖 é a quantidade de dinheiro disponível para a chave pública i. Observa-se que PKr é deduzível de Sr, e que Sr pode também especificar outros componentes para cada chave pública i.[00132] where 𝑎𝑖 is the amount of money available for public key i. It is observed that PKr is deductible from Sr, and that Sr can also specify other components for each public key i.

[00133] Para ciclo 0, PK0 é o conjunto de chaves públicas iniciais, e S0 é o estado inicial. Tanto PK0 quanto S0 são presumidos como de conhecimento comum no sistema. Para simplicidade, no início do ciclo r, também são PK1, . . . , PKr e S1, . . . , Sr.[00133] For cycle 0, PK0 is the set of initial public keys, and S0 is the initial state. Both PK0 and S0 are assumed to be common knowledge in the system. For simplicity, at the beginning of cycle r, they are also PK1,. . . , PKr and S1,. . . , Sir

[00134] Em um ciclo r, o estado de sistema transita de Sr para Sr+1: simbolicamente, Ciclo r: Sr → Sr+1.[00134] In a cycle r, the system state changes from Sr to Sr + 1: symbolically, Cycle r: Sr → Sr + 1.

[00135] Pagamentos Na Algorand, os usuários realizam pagamentos continuamente (e disseminam os mesmos na forma descrita na subseção 2.7). Um pagamento ℘ de um usuário i ∈ PKr tem o mesmo formato e semântica que no Sistema Ideal. A saber, ℘ = 𝑆𝐼𝐺𝑖 (𝑖, 𝑖 ′ , 𝑎, 𝐼, 𝐻 (𝔗))[00135] Payments At Algorand, users make payments continuously (and disseminate them in the manner described in subsection 2.7). A payment ℘ from a user i ∈ PKr has the same format and semantics as in the Ideal System. Namely, ℘ = 𝑆𝐼𝐺𝑖 (𝑖, 𝑖 ′, 𝑎, 𝐼, 𝐻 (𝔗))

[00136] O pagamento ℘ é individualmente válido em um ciclo r (é um pagamento de ciclo-r, abreviadamente) se (1) sua quantidade a for (𝑟) menor ou igual a 𝑎𝑖 e (2) não aparecer em qualquer conjunto de pagamentos oficial PAYr' para r' < r. (Como explicado abaixo, a segunda condição significa que ℘ ainda não se tornou eficaz.[00136] Payment ℘ is individually valid in a cycle r (it is a payment in cycle r for short) if (1) its quantity is (𝑟) less than or equal to 𝑎𝑖 and (2) does not appear in any set of PAYr 'official payments to r' <r. (As explained below, the second condition means that ℘ has not yet become effective.

[00137] Um conjunto de pagamentos de ciclo-r de i é (𝑟) coletivamente válido se a soma de suas quantidades estiver no máximo 𝑎𝑖 .[00137] A set of payments of cycle-r of i is (𝑟) collectively valid if the sum of its quantities is at most 𝑎𝑖.

[00138] Conjuntos de Pagamentos Um conjunto de pagamentos de ciclo-r Ƥ é um conjunto de pagamentos de ciclo-r de modo que, para cada usuário i, os pagamentos de i em Ƥ (possivelmente nenhum) sejam coletivamente válidos. O conjunto de todos os conjuntos de pagamentos de ciclo-r é ℙ𝔸𝕐(𝑟). Um conjunto de pagamentos de ciclo-r Ƥ é máximo se nenhum superconjunto de Ƥ for um conjunto de pagamentos de ciclo-r.[00138] Payment Sets A set of payments of cycle r is a set of payments of cycle r so that, for each user i, payments of i in Ƥ (possibly none) are collectively valid. The set of all r-cycle payment sets is ℙ𝔸𝕐 (𝑟). A set of r-cycle payments Ƥ is maximum if no superset of Ƥ is a set of r-cycle payments.

[00139] Sugere-se, na realidade, que um pagamento ℘ também especifique um ciclo 𝜌, ℘ = 𝑆𝐼𝐺𝑖 (𝜌, 𝑖, 𝑖 ′ , 𝑎, 𝐼, 𝐻 (𝔗)) e não possa ser válido em qualquer ciclo fora de [ρ, ρ + k], para algum número inteiro não negativo fixo k.3[00139] It is actually suggested that a payment ℘ also specify a cycle 𝜌, ℘ = 𝑆𝐼𝐺𝑖 (𝜌, 𝑖, 𝑖 ′, 𝑎, 𝐼, 𝐻 (𝔗)) and cannot be valid on any cycle outside [ρ, ρ + k], for some fixed non-negative integer k.3

[00140] Conjuntos de Pagamentos Oficiais Para cada ciclo r, Algorand seleciona publicamente (de uma maneira descrita posteriormente) um único conjunto de pagamentos (possivelmente vazio), PAYr, o conjunto de pagamentos oficial do ciclo. (Essencialmente, PAYr representa os pagamentos de ciclo-r que “realmente” ocorreram.)[00140] Official Payment Sets For each cycle r, Algorand publicly selects (in a manner described later) a single set of payments (possibly empty), PAYr, the official payment set for the cycle. (Essentially, PAYr represents the cycle payments that “really” occurred.)

[00141] Como no Sistema Ideal (e Bitcoin), (1) a única forma de um novo usuário j entrar no sistema é ser o destinatário de um pagamento que pertence ao conjunto de pagamentos oficial PAYr de um determinado ciclo r; e (2) PAYr determina o estado do próximo ciclo, Sr+1, a partir daquele do ciclo atual, Sr. Simbolicamente, PAYr : Sr → Sr+1.[00141] As in the Ideal System (and Bitcoin), (1) the only way for a new user to enter the system is to be the recipient of a payment that belongs to the official PAYr payment set of a given cycle r; and (2) PAYr determines the state of the next cycle, Sr + 1, from that of the current cycle, Mr. Symbolically, PAYr: Sr → Sr + 1.

[00142] Especificamente,[00142] Specifically,

[00143] 1. o conjunto de chaves públicas do ciclo r + 1, PKr+1, consiste na união de PKr e do conjunto de todas as chaves de beneficiário que aparecem, pela primeira vez, nos pagamentos de PAYr; e[00143] 1. the set of public keys of cycle r + 1, PKr + 1, consists of the union of PKr and the set of all beneficiary keys that appear, for the first time, in PAYr payments; and

[00144] 2. A quantidade de dinheiro ai(r+1) que um usuário i possui no ciclo r + 1 é a soma de ai(r) —isto é, a quantidade de dinheiro i possuída no ciclo anterior (0 se i ∉ PKr)— e a soma de quantidades pagas a i, de acordo com os pagamentos de PAYr .[00144] 2. The amount of money ai (r + 1) that a user i has in cycle r + 1 is the sum of ai (r) —that is, the amount of money i owned in the previous cycle (0 if i ∉ PKr) - and the sum of amounts paid there, according to PAYr payments.

[00145] Em resumo, como no Sistema Ideal, cada estado Sr+1 é deduzível a partir do histórico de pagamentos anterior: PAY0, . . . , PAYr.[00145] In summary, as in the Ideal System, each Sr + 1 state is deductible from the previous payment history: PAY0,. . . , PAYr.

2.4 Blocos E Blocos Provados 3 Isso simplifica a verificação da possibilidade de p ter se tornado “eficaz” (isto é, simplifica a determinação da possibilidade de algum conjunto de pagamentos PAYr conter ℘. Quando k = 0, se ℘ = 𝑆𝐼𝐺𝑖 (𝑟, 𝑖, 𝑖 ′ , 𝑎, 𝐼, 𝐻(𝔗)) e ℘ ∉ PAYr, então, i deve novamente submeter ℘.2.4 Proven Blocks And Blocks 3 This simplifies the verification of the possibility that p has become “effective” (that is, it simplifies the determination of the possibility of some PAYr payment set containing ℘. When k = 0, if ℘ = 𝑆𝐼𝐺𝑖 (𝑟, 𝑖, 𝑖 ′, 𝑎, 𝐼, 𝐻 (𝔗)) and ℘ ∉ PAYr, then i must again submit ℘.

[00146] Na Algorand0, o bloco Br que corresponde a um ciclo r especifica: r por si só; o conjunto de pagamentos do ciclo r, PAYr; uma quantidade 𝑆𝐼𝐺ℓ𝑟 (𝑄 𝑟−1 ), a ser explicada e o hash do bloco anterior, H(Br-1). Desse modo, começando a partir de algum bloco fixo B0, tem-se uma cadeia de blocos tradicional: 𝐵1 = (1, 𝑃𝐴𝑌1 , 𝑆𝐼𝐺ℓ1 (𝑄0 ), 𝐻 (𝐵0 )), 𝐵2 = (2, 𝑃𝐴𝑌 2 , 𝑆𝐼𝐺ℓ2 (𝑄1 ), 𝐻 (𝐵1 )), . . .[00146] In Algorand0, the Br block that corresponds to a cycle r specifies: r by itself; the set of payments in cycle r, PAYr; an amount 𝑆𝐼𝐺ℓ𝑟 (𝑄 𝑟 − 1), to be explained and the hash of the previous block, H (Br-1). Thus, starting from some fixed block B0, we have a traditional block chain: 𝐵1 = (1, 𝑃𝐴𝑌1, 𝑆𝐼𝐺ℓ1 (𝑄0), 𝐻 (𝐵0)), 𝐵2 = (2, 𝑃𝐴𝑌 2, 𝑆𝐼𝐺ℓ2 (𝑄1 ), 𝐻 (𝐵1)),. . .

[00147] Na Algorand, a autenticidade de um bloco é realmente comprovada por uma parte separada de informações, um “bloco certificado” CERTr, que transforma Br em um bloco provado, ̅̅ 𝐵̅̅𝑟 . O Registro Mágico, portanto, é implantado pela sequência dos blocos provados, ̅̅̅1̅, 𝐵 𝐵 ̅̅̅̅2 , …[00147] At Algorand, the authenticity of a block is really proven by a separate piece of information, a “certified block” CERTr, which turns Br into a proven block, ̅̅ 𝐵̅̅𝑟. The Magic Record, therefore, is implemented by the sequence of the proven blocks, ̅̅̅1̅, 𝐵 𝐵 ̅̅̅̅2,…

[00148] Discussão Como será observado, CERTr consiste em um conjunto de assinaturas digitais para H(Br), aquelas de uma maior parte dos membros de SVr, em conjunto com uma prova de que cada um dentre tais membros, de fato, pertence a SVr. Pode-se, evidentemente, incluir os certificados CERTr nos próprios blocos, mas constata-se que é conceitualmente mais claro manter os mesmos separados.)[00148] Discussion As will be noted, CERTr consists of a set of digital signatures for H (Br), those of most SVr members, together with proof that each of such members, in fact, belongs to SVr. You can, of course, include CERTr certificates in the blocks themselves, but it turns out that it is conceptually clearer to keep them separate.)

[00149] Em Bitcoin cada bloco deve satisfazer uma propriedade especial, isto é, deve “conter uma solução de um cripto-enigma”, que torna a geração de bloco computacionalmente intensiva e bifurca tanto de modo inevitável como comum. Por outro lado, a cadeia de blocos da Algorand tem duas vantagens principais: são geradas com computação mínima, e não se bifurcarão com probabilidade excessivamente alta. Cada bloco Bi é seguramente final assim que o mesmo entra na cadeia de blocos.[00149] In Bitcoin each block must satisfy a special property, that is, it must “contain a crypto-enigma solution”, which makes the block generation computationally intensive and forks both inevitably and in common. On the other hand, Algorand's block chain has two main advantages: they are generated with minimal computation, and will not branch out with excessively high probability. Each Bi block is surely final as soon as it enters the block chain.

2.5 Probabilidade De Falha Aceitável2.5 Acceptable Probability of Failure

[00150] Para analisar a segurança da Algorand especifica-se a probabilidade, F, com a qual se está disposto a aceitar que alguma coisa pode estar errada (por exemplo, que um conjunto de verificador SVr não tem uma maior parte honesta). Como no caso do comprimento de saída da função hash criptográfica H, também F é um parâmetro. Mas, como em tal caso, considera-se útil configurar F em um valor concreto, de modo a obter uma compreensão mais intuitiva do fato de que é, de fato, possível, na Algorand, desfrutar simultaneamente de segurança suficiente e eficácia suficiente. Para enfatizar que F é o parâmetro que pode ser o conjunto, conforme desejado, na primeira e na segunda modalidades configura-se respectivamente F = 10-12 e F = 10-18.[00150] To analyze Algorand's security, specify the probability, F, with which one is willing to accept that something may be wrong (for example, that an SVr verifier set does not have an honest part). As in the case of the output length of the cryptographic hash function H, also F is a parameter. But, as in such a case, it is considered useful to set F to a concrete value, in order to obtain a more intuitive understanding of the fact that it is, in fact, possible, at Algorand, to enjoy sufficient security and sufficient efficiency simultaneously. To emphasize that F is the parameter that can be the set, as desired, in the first and second modalities, respectively, F = 10-12 and F = 10-18 are configured.

[00151] Discussão Observa-se que 10-12 é, de fato, menos que um em um trilhão, e acredita-se que tal escolha de F seja adequada em nosso pedido. Enfatiza-se que 10-12 não é a probabilidade com a qual o Adversário pode falsificar os pagamentos de um usuário honesto. Todos os pagamentos são digitalmente assinados, e, desse modo, se as assinaturas digitais adequadas forem usadas, a probabilidade de falsificar um pagamento é muito inferior que 10-12, e é, de fato, essencialmente 0. O evento desfavorável que se está disposto a tolerar com a probabilidade F é que a cadeia de blocos da Algorand se bifurque. Observa-se que, com a configuração de F e ciclos com duração de um minuto, espera-se que uma bifurcação ocorra em cadeia de blocos da Algorand tão não infrequentemente quanto (aproximadamente) uma vez a cada 1,9 milhão de anos. Por outro lado, em Bitcoin, uma bifurcação ocorre frequentemente.[00151] Discussion It is noted that 10-12 is, in fact, less than one in a trillion, and it is believed that such a choice of F is appropriate in our order. It is emphasized that 10-12 is not the probability that the Adversary can falsify an honest user's payments. All payments are digitally signed, so if the proper digital signatures are used, the likelihood of falsifying a payment is much less than 10-12, and it is, in fact, essentially 0. The unfavorable event that is set to tolerate with probability F is that the Algorand block chain forks. It is observed that, with the configuration of F and cycles lasting one minute, it is expected that a bifurcation will occur in Algorand's block chain as infrequently as (approximately) once every 1.9 million years. On the other hand, in Bitcoin, a fork often occurs.

[00152] Uma pessoa mais exigente pode configurar F em um valor inferior. Para essa finalidade, na segunda modalidade considera-se o estabelecimento de F a 10-18. Observa-se que, presumindo que um bloco é gerado a cada segundo, 1018 é o número estimado de segundos tomado pelo Universo até o momento: do Big Bang ao tempo presente. Desse modo, com F = 10-18, se um bloco é gerado em um segundo, deve-se esperar pela idade do Universo para observar a bifurcação.[00152] A more demanding person can set F to a lower value. For this purpose, in the second modality, the establishment of F to 10-18 is considered. It is observed that, assuming that a block is generated every second, 1018 is the estimated number of seconds taken by the Universe so far: from the Big Bang to the present time. Thus, with F = 10-18, if a block is generated in one second, one must wait for the age of the Universe to observe the bifurcation.

2.6 O Modelo Adversário2.6 The Opponent Model

[00153] A Algorand é projetada para ser segura em um modelo muito adversário. Expliquemos.[00153] Algorand is designed to be safe in a very adversarial model. Let’s explain.

[00154] Usuários Honestos e Maliciosos Um usuário é honesto se o mesmo segue todas as suas instruções de protocolo, e tem perfeitamente a capacidade para enviar e receber mensagens. Um usuário é malicioso (isto é, Bizantino, na linguagem de computação distribuída) se o mesmo pode se desviar arbitrariamente de suas instruções prescritas.[00154] Honest and Malicious Users A user is honest if he follows all his protocol instructions, and is perfectly capable of sending and receiving messages. A user is malicious (that is, Byzantine, in the language of distributed computing) if he can deviate arbitrarily from his prescribed instructions.

[00155] O Adversário O Adversário é um algoritmo eficaz (tecnicamente tempo polinomial), personificado por cor, que pode imediatamente tornar malicioso qualquer usuário que desejar, a qualquer momento que desejar (submetido apenas a um limite superior para o número dos usuários que o mesmo pode corromper).[00155] The Adversary The Adversary is an effective algorithm (technically polynomial time), personified by color, that can immediately make malicious any user you want, at any time you want (subject only to an upper limit for the number of users that can even corrupt).

[00156] O Adversário controla totalmente e coordena perfeitamente todos os usuários maliciosos. O mesmo realiza todas as ações em seus nomes, incluindo receber e enviar todas as suas mensagens, e pode permitir que os mesmos se desviem de suas instruções prescritas de formas arbitrárias. Ou pode simplesmente isolar um usuário corrompido que envia e recebe mensagens. Esclarece-se que mais ninguém aprende automaticamente que um usuário i é malicioso, embora a malícia de i possa transpirar pelas ações que o Adversário fez com o que esse realizasse.[00156] Adversary fully controls and perfectly coordinates all malicious users. It performs all actions on their behalf, including receiving and sending all their messages, and may allow them to deviate from their prescribed instructions in arbitrary ways. Or it can simply isolate a corrupted user who sends and receives messages. It is clarified that no one else automatically learns that a user i is malicious, although the malice of i can transpire through the actions that the Opponent did with what he did.

[00157] Esse adversário poderoso, no entanto,[00157] This powerful opponent, however,

[00158] ● Não tem potência computacional ilimitada e não pode falsificar com sucesso a assinatura digital de um usuário honesto, exceto com probabilidade insignificante; e[00158] ● It does not have unlimited computational power and cannot successfully falsify the digital signature of an honest user, except with insignificant probability; and

[00159] ● Não pode interferir de qualquer forma com as trocas de mensagens entre usuários honestos.[00159] ● It cannot interfere in any way with the exchange of messages between honest users.

[00160] Adicionalmente, essa habilidade de atacar usuários honestos é limitada por uma dentre as seguintes suposições.[00160] Additionally, this ability to attack honest users is limited by one of the following assumptions.

[00161] Maior Parte de Honestidade de Dinheiro Considera-[00161] Most Honesty of Money Considered

se que uma continuação de suposições de Maior Parte Honesta de Dinheiro (HMM): a saber, para cada número inteiro não negativo k e real h > 1/2,a continuation of the Most Honest Money (HMM) assumptions: namely, for each non-negative integer number k and real h> 1/2,

[00162] HHMk > h: os usuários honestos em cada ciclo r possuíram uma fração maior que h de todo o dinheiro no sistema no ciclo r — k.[00162] HHMk> h: honest users in each cycle r had a fraction greater than h of all the money in the system in cycle r - k.

[00163] Discussão. Presumindo-se que todos os usuários maliciosos coordenam perfeitamente suas ações (como se controlados por uma única entidade, o Adversário) é uma hipótese muito pessimista. A coordenação perfeita entre muitos indivíduos é difícil de ser obtida. Talvez a coordenação apenas ocorra em grupos separados de participantes maliciosos. Mas, visto que não se pode ter certeza sobre o nível de coordenação que os usuários maliciosos podem desfrutar, é melhor estar seguro.[00163] Discussion. Assuming that all malicious users coordinate their actions perfectly (as if controlled by a single entity, the Adversary) is a very pessimistic hypothesis. Perfect coordination between many individuals is difficult to achieve. Perhaps coordination only takes place in separate groups of malicious participants. But, since you can't be sure about the level of coordination that malicious users can enjoy, it's best to be safe.

[00164] Presumindo-se que o Adversário pode secreta, dinâmica e imediatamente corromper os usuários também é pessimista. Afinal, realisticamente, tomar o controle completo das operações de um usuário deve ser demorado.[00164] Assuming that the Adversary can secretly, dynamically and immediately corrupt users is also pessimistic. After all, realistically, taking complete control of a user's operations should take time.

[00165] A suposição de HMMk > h implica, por exemplo, que, se um ciclo (em média) é implantado em um minuto, então, a maior parte do dinheiro em um determinado ciclo permanecerá em mãos honestas por pelo menos duas horas, se k = 120, e pelo menos uma semana, se k = 10.000.[00165] The assumption of HMMk> h implies, for example, that if a cycle (on average) is deployed in one minute, then most of the money in a given cycle will remain in honest hands for at least two hours, if k = 120, and at least one week, if k = 10,000.

[00166] Observa-se que as suposições de HMM e as suposições de Maior Parte Honesta de Potência Computacional anteriores são relacionadas no sentido de que, visto que a potência de computação pode ser levada com dinheiro, se usuários maliciosos possuírem a maior parte do dinheiro, então, os mesmos podem obter a maior parte da potência de computação.[00166] It is observed that the previous HMM assumptions and the Most Honest Part of Computational Power assumptions are related in the sense that, since the computing power can be taken with money, if malicious users have most of the money , then, they can obtain most of the computing power.

2.7 O Modelo De Comunicação2.7 The Communication Model

[00167] Deseja-se que a propagação de mensagem — isto é,[00167] It is desired that the message propagation - that is,

“rumor de ponto a ponto”4— seja o único meio de comunicação, e presume- se que todas as mensagens propagadas alcancem quase todos os usuários honestos de maneira imediata. Presumindo-se essencialmente que cada mensagem m propagada pelo usuário honesto alcance, em uma determinada quantidade de tempo que depende do comprimento de m, todos os usuários honestos. (É, na verdade, suficiente que m alcance uma porcentagem suficientemente alta dos usuários honestos.) 3 O Protocolo De 𝑩𝑨∗ Em Uma Configuração Tradicional“Point-to-point rumor” 4— is the only means of communication, and it is assumed that all messages propagated will reach almost all honest users immediately. Assuming essentially that each message propagated by the honest user reaches, in a certain amount of time depending on the length of the message, all honest users. (It is actually sufficient that it reaches a sufficiently high percentage of honest users.) 3 The 𝑩𝑨 ∗ Protocol In A Traditional Configuration

[00168] Como já enfatizado, o acordo Bizantino é um ingrediente-chave da Algorand. De fato, é através do uso de tal protocolo de BA que Algorand não é afetada por bifurcações. No entanto, para ser seguro contra o Adversário poderoso, Algorand deve transferir em um protocolo de BA que satisfaz a nova restrição de substituição de participante. Além disso, para Algorand ser eficaz, tal protocolo de BA deve ser muito eficaz.[00168] As already emphasized, the Byzantine agreement is a key ingredient of Algorand. In fact, it is through the use of such a BA protocol that Algorand is not affected by bifurcations. However, to be safe against the powerful Opponent, Algorand must transfer on a BA protocol that satisfies the new participant substitution constraint. In addition, for Algorand to be effective, such a BA protocol must be very effective.

[00169] Os protocolos de BA foram primeiro definido para um modelo de comunicação idealizado, redes completas sincronizadas (redes SC). Tal modelo permite um projeto mais simples e análise de protocolos de BA. Consequentemente, nessa seção, é introduzido um novo protocolo de BA, 𝑩𝑨∗ , para redes SC e que ignora o problema de substituição de participante como um todo. O protocolo de 𝑩𝑨∗ é uma contribuição de valor separado. De fato, é o protocolo de BA criptográfico mais eficaz para redes SC conhecido até o momento.[00169] BA protocols were first defined for an idealized communication model, complete synchronized networks (SC networks). Such a model allows for a simpler design and analysis of BA protocols. Consequently, in this section, a new BA protocol, 𝑩𝑨 ∗, is introduced for SC networks that ignores the problem of substitution of participant as a whole. The 𝑩𝑨 ∗ protocol is a separate value contribution. In fact, it is the most effective cryptographic BA protocol for SC networks known to date.

[00170] Para usar o mesmo no protocolo da Algorand, modificou-se 𝑩𝑨∗ um pouco, de modo a considerar o modelo de comunicação e o contexto diferentes.[00170] To use the same in the Algorand protocol, 𝑩𝑨 ∗ was modified a little, in order to consider the different communication model and context.

[00171] Começou-se relembrando o modelo no qual 𝑩𝑨∗ opera 4Essencialmente, como em Bitcoin, quando um usuário propaga uma mensagem m, todos os usuários ativos i que recebem m pela primeira vez, aleatória e independentemente selecionem um número adequadamente pequeno de usuários ativos, seus “vizinhos”, a quem o mesmo encaminha m, possivelmente até receber um reconhecimento dos mesmos. A propagação de m termina quando nenhum usuário recebe m pela primeira vez.[00171] We started by remembering the model in which 𝑩𝑨 ∗ operates 4Essentially, as in Bitcoin, when a user propagates a message m, all active users i who receive m for the first time, randomly and independently select a suitably small number of users assets, their “neighbors”, to whom they refer m, possibly even receiving recognition from them. The propagation of m ends when no user receives m for the first time.

e a noção de um acordo Bizantino.and the notion of a Byzantine agreement.

3.1 Redes Completas Sincronizadas E Adversários Compatíveis3.1 Complete Synchronized Networks And Compatible Opponents

[00172] Em uma rede SC, há um relógio comum, funcionando a cada tempo de número inteiro r = 1, 2, . . .[00172] In an SC network, there is a common clock, functioning at each time of integer r = 1, 2,. . .

[00173] A cada mesmo clique de tempo r, cada participante i 𝑟 instantânea e simultaneamente envia uma única mensagem 𝑚𝑖,𝑗 (possivelmente a mensagem vazia) para cada participante j, inclui a si 𝑟 mesmo. Cada 𝑚𝑖,𝑗 é corretamente recebida no clique do tempo r + 1 pelo participante j, em conjunto com a identidade do remetente i.[00173] Every time click r, each participant i 𝑟 instantly and simultaneously sends a single message 𝑚𝑖, 𝑗 (possibly the empty message) to each participant j, includes himself 𝑟. Each 𝑚𝑖, 𝑗 is correctly received at the click of time r + 1 by participant j, together with the identity of sender i.

[00174] Novamente, em um protocolo de comunicação, um participante é honesto se o mesmo segue todas as instruções prescritas, e, de outra forma, malicioso. Todos os participantes maliciosos são totalmente controlados e perfeitamente coordenados pelo Adversário, que, em particular, imediatamente recebe todas as mensagens endereçadas aos participantes maliciosos, e escolhe as mensagens que os mesmos enviam.[00174] Again, in a communication protocol, a participant is honest if he follows all the prescribed instructions, and, otherwise, malicious. All malicious participants are fully controlled and perfectly coordinated by the Adversary, who, in particular, immediately receives all messages addressed to the malicious participants, and chooses the messages they send.

[00175] O Adversário pode tornar imediatamente qualquer usuário honesto em malicioso que o mesmo desejar a qualquer clique do tempo ímpar que o mesmo desejar, submetido apenas a um limite superior possível t para o número de participantes maliciosos. Ou seja, o Adversário “não pode interferir com as mensagens já enviadas por um usuário honesto i”, que será entregue como normalmente é.[00175] The Adversary can immediately make any honest user malicious as he wishes at any odd-time click he wishes, subject only to a possible upper limit t for the number of malicious participants. In other words, the Opponent "cannot interfere with messages already sent by an honest user i", which will be delivered as it normally is.

[00176] O Adversário também tem a habilidade adicional de observar instantaneamente, a cada mesmo ciclo, as mensagens que os participantes honestos atualmente enviam, e instantaneamente usar essas informações para escolher as mensagens que os participantes maliciosos enviam no mesmo momento.[00176] The Adversary also has the additional ability to instantly observe, at each same cycle, the messages that honest participants currently send, and instantly use that information to choose the messages that malicious participants send at the same time.

3.2 A Noção De Um Acordo Bizantino3.2 The Concept of a Byzantine Agreement

[00177] A noção de acordo Bizantino pode ter sido primeiro introduzida para o caso binário, isto é, quando todos os valores iniciais consistem em um bit. No entanto, o mesmo foi rapidamente estendido para valores iniciais arbitrário. Por um protocolo de BA, deseja-se significar um valor arbitrário um.[00177] The notion of Byzantine agreement may have been first introduced for the binary case, that is, when all initial values consist of a bit. However, it was quickly extended to arbitrary initial values. By a BA protocol, it is intended to mean an arbitrary value one.

[00178] Definição 3.1. Em uma rede sincronizada, seja Ƥ um protocolo de n-participantes, cujo conjunto de participantes é de conhecimento comum entre os participantes, t um número inteiro positivo de modo que n ≥ 2t + 1. Considera-se que Ƥ é um valor arbitrário (respectivamente, binário; (n, t)-protocolo de acordo bizantino com integridade σ ∈ (0, 1) se, para cada conjunto de valores V que não contém o símbolo especial ⊥ (respectivamente, para V = {0, 1}), em uma execução na qual no máximo t dos participantes são maliciosos e na qual cada participante i começa com um valor inicial νi ∈ V, todos os participantes honestos j são interrompidos com probabilidade 1, emitindo-se um valor outi ∈ V ∪ {⊥} de modo a satisfazer, com probabilidade pelo menos σ, as seguintes duas condições:[00178] Definition 3.1. In a synchronized network, either Ƥ a protocol of n-participants, whose set of participants is common knowledge among the participants, t is a positive integer so that n ≥ 2t + 1. Ƥ is considered to be an arbitrary value ( respectively, binary; (n, t) - Byzantine agreement protocol with integrity σ ∈ (0, 1) if, for each set of V values that do not contain the special symbol ⊥ (respectively, for V = {0, 1}) , in an execution in which at most t the participants are malicious and in which each participant i starts with an initial value νi ∈ V, all honest participants j are interrupted with probability 1, emitting an value outi ∈ V ∪ {⊥ } in order to satisfy, with probability at least σ, the following two conditions:

[00179] 1. Acordo: Existe out ∈ V ∪ {⊥} de modo que outi = out para todos os participantes honestos i.[00179] 1. Agreement: There is out ∈ V ∪ {⊥} so that outi = out for all honest participants i.

[00180] 2. Consistência: se, para algum valor v ∈ V, νi = v para todos os participantes i, então, out = v.[00180] 2. Consistency: if, for some value v ∈ V, νi = v for all participants i, then out = v.

[00181] Referindo-se a out como saída de Ƥ, e a cada outi como saída de participante i.[00181] Referring to out as a departure from Ƥ, and each outi as a departure from participant i.

[00182] 3.3 O nº de Notação de BA[00182] 3.3 The BA Notation No.

[00183] Nos protocolos de BA, é exigido que um participante conte quantos participantes o enviaram uma determinada mensagem em uma determinada etapa. Consequentemente, para cada valor possível v que pode ser enviado, 𝑛º𝑖𝑠 (𝑣 )[00183] In BA protocols, a participant is required to count how many participants sent him a certain message at a certain stage. Consequently, for each possible value v that can be sent, 𝑛º𝑖𝑠 (𝑣)

[00184] (ou apenas nºi(v) quando s está claro) é o número de participantes j a partir do qual i recebeu v na etapa s.[00184] (or just nºi (v) when s is clear) is the number of participants j from which i received v in step s.

[00185] Relembrando-se que um participante i recebe exatamente uma mensagem de cada participante j, se o número de participantes for n, então, para todos os i e s, ∑𝑣 𝑛º𝑖𝑠 ( 𝑣 ) = 𝑛.[00185] Remembering that a participant i receives exactly one message from each participant j, if the number of participants is n, then, for all i and s, ∑𝑣 𝑛º𝑖𝑠 (𝑣) = 𝑛.

3.4 O Novo Protocolo De Ba Binário 𝑩𝑩𝑨∗3.4 The New Binary Protocol 𝑩𝑩𝑨 ∗

[00186] Nessa seção apresenta-se um novo protocolo de BA binário, 𝑩𝑩𝑨∗ , que depende da honestidade de mais que dois terços dos participantes e é muito rápido: independentemente do que os participantes maliciosos possam realizar, cada execução de seu laço principal não é apenas trivialmente executado, mas também faz com que os participantes entrem em acordo com o 1/3 de probabilidade.[00186] This section presents a new binary BA protocol, 𝑩𝑩𝑨 ∗, which depends on the honesty of more than two thirds of the participants and is very fast: regardless of what the malicious participants may accomplish, each execution of their main loop does not it is only trivially executed, but it also makes participants agree on 1/3 probability.

[00187] Em 𝑩𝑩𝑨∗ , cada participante tem sua própria chave pública de um esquema de assinatura digital que satisfaz a propriedade de assinatura única. Visto que esse protocolo se destina a ser executado em rede completa sincronizada, não há necessidade de um participante i assinar cada uma de suas mensagens.[00187] In 𝑩𝑩𝑨 ∗, each participant has their own public key of a digital signature scheme that satisfies the unique signature property. Since this protocol is intended to run on a complete synchronized network, there is no need for a participant to sign each of their messages.

[00188] As assinaturas digitais são usadas para gerar um bit aleatório suficientemente comum na Etapa 3. (Na Algorand, as assinaturas digitais são usadas para autenticar todas as outras mensagens também.)[00188] Digital signatures are used to generate a random bit common enough in Step 3. (In Algorand, digital signatures are used to authenticate all other messages as well.)

[00189] O protocolo exige uma configuração mínima: uma linha aleatória comum r, independentemente das chaves dos participantes. (Na Algorand, r é realmente substituído pela quantidade Qr.)[00189] The protocol requires a minimum configuration: a common random line r, regardless of the participants' keys. (In Algorand, r is actually replaced by the quantity Qr.)

[00190] O Protocolo 𝑩𝑩𝑨∗ é um laço de 3 etapas, em que os participantes repetidamente trocam valores booleanos, e participantes diferentes podem sair desse laço em tempos diferentes. Um participante i sai desse laço propagando-se, em alguma etapa, um valor especial 0✱ ou um valor especial 1✱, dessa forma, instruindo-se todos os participantes a “fingir” que os mesmos respectivamente recebem 0 e 1 de i em todas as etapas futuras. (Dito de outro modo: presume-se que a última mensagem recebida por um participante j de outro participante i foi um bit b. Então, em qualquer etapa na qual o mesmo não recebe qualquer mensagem de i, j atua como se i tivesse enviado o bit b.)[00190] The 𝑩𝑩𝑨 ∗ Protocol is a 3-step loop, in which participants repeatedly exchange Boolean values, and different participants can leave this loop at different times. A participant i leaves this loop by propagating, at some stage, a special value 0✱ or a special value 1✱, thus instructing all participants to “pretend” that they respectively receive 0 and 1 from i in all future steps. (Put another way: it is assumed that the last message received by a participant j from another participant i was a bit b. So, at any stage in which he does not receive any message from i, j acts as if i had sent bit b.)

[00191] O protocolo usa um contador ϒ, que representa quantas vezes seu laço de 3 etapas foi executado. No início de 𝑩𝑩𝑨∗ , ϒ = 0. (Pode-se pensar ϒ como um contador global, mas na verdade o mesmo é aumentado a cada participante individual todas as vezes que o laço é executado.)[00191] The protocol uses a ϒ counter, which represents how many times its 3-step loop has been executed. At the beginning of 𝑩𝑩𝑨 ∗, ϒ = 0. (One can think of ϒ as a global counter, but in fact the same is increased for each individual participant each time the loop is executed.)

[00192] Há n ≥ 3t + 1, em que t é o número máximo possível de participantes maliciosos. Uma linha binária x é identificada com o número inteiro cuja representação binária (com resultados possíveis 0s) é x; e lsb(x) denota o bit menos significativo de x. PROTOCOLO 𝑩𝑩𝑨∗ (COMUNICAÇÃO) ETAPA 1. [Etapa Moeda-Fixa-Em-0] Cada participante i envia bi.[00192] There are n ≥ 3t + 1, where t is the maximum possible number of malicious participants. A binary line x is identified with the integer whose binary representation (with possible results 0s) is x; and lsb (x) denotes the least significant bit of x. PROTOCOL 𝑩𝑩𝑨 ∗ (COMMUNICATION) STEP 1. [Stage Currency-Fixed-In-0] Each participant i sends bi.

1.1 𝑆𝑒 𝑛º1𝑖 (0) ≥ 2𝑡 + 1, então, i configura bi = 0, envia 0✱, emite outi = 0, e PARA.1.1 𝑆𝑒 𝑛º1𝑖 (0) ≥ 2𝑡 + 1, so i sets bi = 0, sends 0✱, issues outi = 0, and PARA.

1.2 𝑆𝑒 𝑛º1𝑖 (1) ≥ 2𝑡 + 1, então, i configura bi = 1.1.2 𝑆𝑒 𝑛º1𝑖 (1) ≥ 2𝑡 + 1, so i sets bi = 1.

1.3 De outro modo, i configura bi = 0. (COMUNICAÇÃO) ETAPA 2. [Etapa Moeda-Fixa-Em-1] Cada participante i envia bi.1.3 Otherwise, i sets bi = 0. (COMMUNICATION) STEP 2. [Step Currency-Fixed-In-1] Each participant i sends bi.

2.1 𝑆𝑒 𝑛º2𝑖 (1) ≥ 2𝑡 + 1, então, i configura bi = 1, envia 1✱, emite outi = 1, e PARA.2.1 𝑆𝑒 𝑛º2𝑖 (1) ≥ 2𝑡 + 1, so i sets bi = 1, sends 1✱, issues outi = 1, and PARA.

2.2 𝑆𝑒 𝑛º2𝑖 (0) ≥ 2𝑡 + 1, então, i configura bi = 0.2.2 𝑆𝑒 𝑛º2𝑖 (0) ≥ 2𝑡 + 1, so i sets bi = 0.

2.3 De outro modo, i configura bi = 1. (COMUNICAÇÃO) ETAPA 3. [Etapa Moeda-Genuinamente- Lançada] Cada participante i envia bi e 𝑆𝐼𝐺𝑖 (𝑟, ϒ).2.3 Otherwise, i sets bi = 1. (COMMUNICATION) STEP 3. [Coin-Genuinely-Launched Step] Each participant i sends bi and 𝑆𝐼𝐺𝑖 (𝑟, ϒ).

3.1 𝑆𝑒 𝑛º3𝑖 (0) ≥ 2𝑡 + 1, então, i configura bi = 0.3.1 𝑆𝑒 𝑛º3𝑖 (0) ≥ 2𝑡 + 1, so i sets bi = 0.

3.2 𝑆𝑒 𝑛º3𝑖 (1) ≥ 2𝑡 + 1, então, i configura bi = 1.3.2 𝑆𝑒 𝑛º3𝑖 (1) ≥ 2𝑡 + 1, so i sets bi = 1.

3.3 De outro modo, seja Si = {j ∈ N que enviou a i uma mensagem adequada nessa etapa 3}, i configura 𝑏𝑖 = 𝑐 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑚𝑗∈𝑆𝑖 𝐻(𝑆𝐼𝐺𝑖 (𝑟, ϒ))); aumenta ϒi em 1; e volta para a Etapa 1.3.3 Otherwise, let Si = {j ∈ N send i an appropriate message in this step 3}, i configure 𝑏𝑖 = 𝑐 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑚𝑗∈𝑆𝑖 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, ϒ))); increases ϒi by 1; and go back to Step 1.

[00193] Teorema 3.1. Sempre que n ≥ 3t + 1, 𝑩𝑩𝑨∗ é um protocolo binário de (n, t)-BA com integridade 1.[00193] Theorem 3.1. Whenever n ≥ 3t + 1, 𝑩𝑩𝑨 ∗ is a binary (n, t) -BA protocol with integrity 1.

[00194] Uma prova de Teorema 3.1 pode ser encontrada em https://people.csail.mit.edu/silvio/SelectedScien- tificPapers/DistributedComputation/BYZANTINEAGREEMENTMADETRIVIA L.15pdf.[00194] A proof of Theorem 3.1 can be found at https://people.csail.mit.edu/silvio/SelectedScientificPapers / DistributedComputation / BYZANTINEAGREEMENTMADETRIVIA L.15pdf.

3.5 CONSENSO GRADUADO E O PROTOCOLO GC3.5 GRADUATED CONSENSUS AND THE GC PROTOCOL

[00195] Relembrando-se, para valores arbitrários, de uma noção de consenso muito mais fraca que o acordo Bizantino.[00195] Recalling, for arbitrary values, a notion of consensus much weaker than the Byzantine agreement.

[00196] Definição 3.2. Seja Ƥ um protocolo no qual o conjunto de todos os participantes é de conhecimento comum, e cada participante i confidencialmente conhece um valor inicial arbitrário v’1.[00196] Definition 3.2. Let Ƥ be a protocol in which the set of all participants is common knowledge, and each participant i confidentially knows an arbitrary initial value v'1.

[00197] Considera-se que Ƥ é um protocolo de consenso (n, t)- graduado se, em todas as execuções com n participantes, no máximo t dos quais forem maliciosos, todo participante honesto i interrompe a emissão de um par valor-grau (vi, gi), em que gi ∈ {0, 1, 2}, de modo a satisfazer as seguintes três condições:[00197] Ƥ is considered to be a consensus protocol (n, t) - graduated if, in all executions with n participants, at most t of which are malicious, every honest participant i interrupts the emission of a value-pair degree (vi, gi), where gi ∈ {0, 1, 2}, in order to satisfy the following three conditions:

1. Para todos os participantes honestos i e j, |gi - gj| ≤ 1.1. For all honest participants i and j, | gi - gj | ≤ 1.

2. Para todos os participantes honestos i e j, gi, gj > 0 ⇒ vi = vj.2. For all honest participants i and j, gi, gj> 0 ⇒ vi = vj.

3. Se v’1 = ... = v’n = v para algum valor v, então, vi = v e gi = 2 para todos os participantes honestos i.3. If v’1 = ... = v’n = v for some value v, then vi = v and gi = 2 for all honest participants i.

[00198] O seguinte protocolo GC de duas etapas é um protocolo de consenso graduado na literatura. Para compatibilizar as etapas de protocolo Algorand'1 da seção 4.1, nomeia-se respectivamente 2 e 3 as etapas de GC. (De fato, a primeira etapa da Algorand'1 se refere a outra coisa: a saber, propor um novo bloco.)[00198] The following two-step GC protocol is a graduated consensus protocol in the literature. To make the Algorand'1 protocol steps in section 4.1 compatible, GC steps 2 and 3 are respectively named. (In fact, the first stage of Algorand'1 refers to something else: namely, to propose a new block.)

PROTOCOLO GCGC PROTOCOL

[00199] ETAPA 2. Cada participante i envia v'i para todos os participantes.[00199] STEP 2. Each participant i sends v'i to all participants.

[00200] ETAPA 3. Cada participante i envia para todos os participantes a linha x se e apenas se 𝑛º2𝑖 (𝑥) ≥ 2𝑡 + 1.[00200] STEP 3. Each participant i sends line x to all participants if and only if 𝑛º2𝑖 (𝑥) ≥ 2𝑡 + 1.

[00201] DETERMINAÇÃO DE SAÍDA. Cada participante i emite o par (vi, gi) computado como o seguinte: ● Se, para algum x, 𝑛º3𝑖 (𝑥) ≥ 2𝑡 + 1, então, vi = x e gi = 2. ● Se, para algum x, 𝑛º3𝑖 (𝑥) ≥ 𝑡 + 1, então, νi = x e gi = 1. ● De outro modo, νi = ⊥ e gi = 0.[00201] DETERMINATION OF OUTPUT. Each participant i issues the pair (vi, gi) computed as the following: ● If, for some x, 𝑛º3𝑖 (𝑥) ≥ 2𝑡 + 1, then vi = x and gi = 2. ● If, for some x, 𝑛º3𝑖 ( 𝑥) ≥ 𝑡 + 1, then νi = x and gi = 1. ● Otherwise, νi = ⊥ and gi = 0.

[00202] Visto que protocolo GC é um protocolo na literatura, sabe-se ao que o seguinte teorema se refere.[00202] Since the GC protocol is a protocol in the literature, it is known what the following theorem refers to.

[00203] Teorema 3.2. Se n ≥ 3t + 1, então, GC é um protocolo de difusão (n, t)-graduado.[00203] Theorem 3.2. If n ≥ 3t + 1, then GC is a graduate (n, t) -diffusion protocol.

3.6 O PROTOCOLO 𝑩𝑨∗3.6 THE PROTOCOL 𝑩𝑨 ∗

[00204] Descreve-se agora o protocolo de BA de 𝑩𝑨∗ de valor arbitrário por meio do protocolo de BA binário 𝑩𝑩𝑨∗ e do protocolo de consenso graduado GC. Abaixo, o valor inicial de cada participante i é v'i. PROTOCOLO 𝑩𝑨∗ ETAPAS 1 E 2. Cada participante i executa GC, na entrada v'i, de modo a computar um par (νi, gi). ETAPA 3, . . . Cada participante i executa 𝑩𝑩𝑨∗ — com entrada inicial 0, se gi = 2, e 1, de outra forma — de modo a computar o bit outi. DETERMINAÇÃO DE SAÍDA. Cada participante i emite νi se outi = 0, e ⊥, de outro modo.[00204] The BA protocol of BA ∗ of arbitrary value is now described by means of the binary BA protocol 𝑩𝑩𝑨 ∗ and the graduated GC consensus protocol. Below, the initial value of each participant i is v'i. PROTOCOL 𝑩𝑨 ∗ STEPS 1 AND 2. Each participant i performs GC, at entry v'i, in order to compute a pair (νi, gi). STEP 3,. . . Each participant i executes 𝑩𝑩𝑨 ∗ - with initial input 0, if gi = 2, and 1, otherwise - in order to compute the outi bit. DETERMINATION OF OUTPUT. Each participant i issues νi if outi = 0, and ⊥, otherwise.

[00205] Teorema 3.3. Sempre que n ≥ 3t + 1, 𝑩𝑨∗ é um protocolo de (n, t)-BA com integridade 1.[00205] Theorem 3.3. Whenever n ≥ 3t + 1, 𝑩𝑨 ∗ is a (n, t) -BA protocol with integrity 1.

[00206] Prova. Primeiro prova-se a Consistência, e, então, o Acordo.[00206] Proof. Consistency is first tested, and then the Agreement.

[00207] PROVA DE CONSISTÊNCIA. Presumindo-se que, para algum valor v ∈ V, v'i = v. Então, pela propriedade 3 de consenso graduado, após a execução de GC, todos os participantes honestos emitem (v, 2). Consequentemente, 0 é o bit inicial de todos os participantes honestos no fim da execução de 𝑩𝑩𝑨∗ . Desse modo, pela propriedade de Acordo de acordo Bizantino binário, no fim da execução de 𝑩𝑨∗ , outi = 0 para todos os participantes honestos. Isso implica que a saída de cada participante honesto i em 𝑩𝑨∗ é = v. ⬜[00207] PROOF OF CONSISTENCY. Assuming that, for some value v ∈ V, v'i = v. Then, by the graduated consensus property 3, after the execution of the KM, all honest participants issue (v, 2). Consequently, 0 is the starting bit for all honest participants at the end of the execution of ∗ ∗. Thus, by the ownership of the Binary Byzantine Agreement Agreement, at the end of the execution of 𝑩𝑨 ∗, outi = 0 for all honest participants. This implies that the exit of each honest participant i in 𝑩𝑨 ∗ is = v. ⬜

[00208] PROVA DE ACORDO. Visto que 𝑩𝑩𝑨∗ é um protocolo de BA binário, ou (A) outi = 1 para todo participante honesto i, ou (B) outi = 0 para todo participante honesto i.[00208] PROOF OF AGREEMENT. Since 𝑩𝑩𝑨 ∗ is a binary BA protocol, or (A) outi = 1 for every honest participant i, or (B) outi = 0 for every honest participant i.

[00209] No caso A, todos os participantes honestos emitem ⊥ em 𝑩𝑨∗ e, desse modo, o Acordo se mantém. Considera-se agora o caso B. Nesse caso, na execução de 𝑩𝑩𝑨∗ , o bit inicial de pelo menos um participante honesto i é 0. (De fato, se bit inicial de todos os participantes honestos for 1, então, pela propriedade de Consistência de 𝑩𝑩𝑨∗ , teria-se outj = 1 para todos os honestos j.) Consequentemente, após a execução de GC, i emite o par (v, 2) para algum valor v. Desse modo, pela propriedade 1 de consenso graduado, gj > 0 para todos os participantes honestos j. Consequentemente, pela propriedade 2 de consenso graduado, vj = v para todos os participantes honestos j. Isso implica que, no fim de 𝑩𝑨∗ , todos os participantes honestos j emitem v. Desse modo, o Acordo se mantém também no caso B. ⬜[00209] In case A, all honest participants issue ⊥ in 𝑩𝑨 ∗ and, thus, the Agreement remains. Case B is now considered. In this case, in the execution of 𝑩𝑩𝑨 ∗, the starting bit of at least one honest participant i is 0. (In fact, if the starting bit of all honest participants is 1, then, by the property of Consistency of 𝑩𝑩𝑨 ∗, would have outj = 1 for all honest j.) Consequently, after the execution of GC, i issues the pair (v, 2) for some value v. Thus, by graduated consensus property 1, gj> 0 for all honest participants j. Consequently, by graduated consensus property 2, vj = v for all honest participants j. This implies that, at the end of 𝑩𝑨 ∗, all honest participants already issue v. Thus, the Agreement also remains in case B. ⬜

[00210] Visto que tanto a Consistência quanto o Acordo se mantêm, 𝑩𝑨∗ é um protocolo de BA de valor arbitrário. ⬛[00210] Since both Consistency and the Agreement remain, 𝑩𝑨 ∗ is a BA protocol of arbitrary value. ⬛

[00211] O Protocolo de 𝑩𝑨∗ também trabalha em redes de rumores, e, de fato, satisfaz a propriedade de substituição de participante que é crucial para Algorand ser segura no modelo muito adversário destinado.[00211] The 𝑩𝑨 ∗ Protocol also works on rumored networks, and, in fact, satisfies the participant substitution property that is crucial for Algorand to be safe in the very adversary model intended.

[00212] A Substituição de Participante de 𝑩𝑩𝑨∗ e 𝑩𝑨∗ . Fornece-se agora alguma intuição do motivo dos protocolos de 𝑩𝑨∗ e 𝑩𝑩𝑨∗ pode ser adaptado para ser executado em uma rede em que a comunicação é realizada por meio de rumor de ponto a ponto, satisfaz a substituição de participante. Para concretude, presume-se que a rede tem 10M usuários e que cada etapa x de 𝑩𝑩𝑨∗ (ou 𝑩𝑨∗ ) é executada por um comitê de 10.000 participantes, que foram aleatoriamente selecionados por meio de eleição criptográfica secreta, e, desse modo, possuem credenciais que provam que são autorizados a enviar mensagens na etapa x. Presumindo-se que cada mensagem enviada em uma determinada etapa especifica o número da etapa, é digitalmente assinada por seu remetente, e inclui a credencial que prova que seu remetente está autorizado a falar em tal etapa.[00212] The Participant Replacement of 𝑩𝑩𝑨 ∗ and 𝑩𝑨 𝑩𝑨. Some intuition is now provided as to why the 𝑩𝑨 ∗ and 𝑩𝑩𝑨 ∗ protocols can be adapted to run on a network in which communication is carried out through point-to-point rumor, satisfying participant substitution. For concreteness, it is assumed that the network has 10M users and that each step x of 𝑩𝑩𝑨 ∗ (or 𝑩𝑨 ∗) is performed by a committee of 10,000 participants, who were randomly selected through secret cryptographic election, and thus have credentials that prove they are authorized to send messages in step x. Assuming that each message sent at a particular stage specifies the stage number, it is digitally signed by its sender, and includes the credential that proves that its sender is authorized to speak at that stage.

[00213] Antes de tudo, se a porcentagem h de participantes honestos for suficientemente maior que 2/3 (por exemplo, 75%), então, com probabilidade imensa, o comitê selecionado a cada etapa tem os 2/3 de maior parte honesta exigidos.[00213] First of all, if the percentage h of honest participants is sufficiently greater than 2/3 (for example, 75%), then, with immense probability, the committee selected at each stage has the 2/3 of most honest required.

[00214] Além disso, o fato de que o comitê aleatoriamente selecionado de 10.000 é alterado a cada etapa não impede o trabalho correto de 𝑩𝑩𝑨∗ ou 𝑩𝑨∗ . De fato, em qualquer protocolo, um participante i na etapa s apenas reage à multiplicidade com a qual, na Etapa s — 1, o mesmo recebeu uma determinada mensagem m. Visto que se está em uma rede de rumores, todas as mensagens enviadas na Etapa s — 1 chegarão (imediatamente, para o propósito dessa intuição) a todos os usuários, incluindo aqueles selecionados para participar na etapa s. Devido adicionalmente a todas as mensagens enviadas na etapa s — 1 especificarem o número da etapa e incluírem a credencial que o remetente foi, de fato, autorizado a falar na etapa s — 1. Consequentemente, a possibilidade de o mesmo ter sido selecionado também na etapa s — 1 ou não, um usuário i selecionado para participar na etapa s tem perfeitamente a capacidade para contar corretamente a multiplicidade com a qual o mesmo recebeu uma mensagem de etapa correta s — 1. Não importa qual a possibilidade de o mesmo ter participado em todas as etapas até o momento ou não. Todos os usuários estão “no mesmo barco” e, desse modo, podem ser facilmente substituídos por outros usuários. 4 Duas Modalidades Da Algorand[00214] Furthermore, the fact that the randomly selected committee of 10,000 is changed at each stage does not prevent the correct work of 𝑩𝑩𝑨 ∗ or 𝑩𝑨 ∗. In fact, in any protocol, a participant i in step s only reacts to the multiplicity with which, in Step s - 1, he received a certain message m. Since you are on a rumored network, all messages sent in Step s - 1 will arrive (immediately, for the purpose of this intuition) to all users, including those selected to participate in step s. Due in addition to all messages sent in step s - 1 specifying the step number and including the credential that the sender was, in fact, authorized to speak in step s - 1. Consequently, the possibility that it was also selected in step s - 1 or not, a user i selected to participate in step s is perfectly capable of correctly counting the multiplicity with which he has received a message of correct step s - 1. No matter what the possibility of having participated at all stages so far or not. All users are “in the same boat” and can therefore be easily replaced by other users. 4 Two Algorand Modalities

[00215] Como discutido, em um nível muito alto, um ciclo da Algorand prossegue idealmente conforme a seguir. Primeiro, um usuário aleatoriamente selecionado, o líder, propõe e circula um novo bloco. (Esse processo inclui inicialmente selecionar alguns líderes em potencial e, então, garantir que, pelo menos uma boa fração do tempo, um único líder comum surja.) Em segundo lugar, um comitê de usuários aleatoriamente selecionados é selecionado, e obtém o acordo Bizantino no bloco proposto pelo líder. (Esse processo inclui que cada etapa do protocolo de BA é executada por um comitê separadamente selecionado.) O bloco acordado é, então, digitalmente assinado por um determinado limite (TH) de membros de comitê. Essas assinaturas digitais são propagadas de modo que todos sejam assegurados de qual é o novo bloco. (Isso inclui circular a credencial dos signatários, e autenticar apenas o hash do novo bloco, garantindo que todos sejam garantidos de aprender o bloco, uma vez que seu hash esteja claro.)[00215] As discussed, at a very high level, an Algorand cycle proceeds ideally as follows. First, a randomly selected user, the leader, proposes and circulates a new block. (This process includes initially selecting a few potential leaders and then ensuring that, at least a good fraction of the time, a single common leader will emerge.) Second, a committee of randomly selected users is selected, and obtains the Byzantine agreement in the block proposed by the leader. (This process includes that each step of the BA protocol is performed by a separately selected committee.) The agreed block is then digitally signed by a certain limit (TH) of committee members. These digital signatures are propagated so that everyone is assured of what the new block is. (This includes circulating the signers' credentials, and authenticating only the hash of the new block, ensuring that everyone is guaranteed to learn the block, once their hash is clear.)

[00216] Nas próximas duas seções, apresenta-se duas modalidades do projeto básico da Algorand, Algorand'1 e Algorand'2, que respectivamente trabalham sob uma suposição de maior de usuários honestos adequada. Na Seção 7 mostrou-se como adotar essas modalidades para trabalhar sob uma suposição de maior parte honesta de dinheiro.[00216] In the next two sections, two modalities of the basic design of Algorand are presented, Algorand'1 and Algorand'2, which respectively work under an assumption of a larger adequate of honest users. Section 7 showed how to adopt these modalities to work under an assumption of an honest majority of money.

[00217] Algorand'1 apenas prevê que > 2/3 dos membros de comitê são honestos. Além disso, na Algorand'1, o número de etapas para obter o acordo Bizantino é tampado por um número adequadamente alto, de modo que seja garantido que o acordo seja alcançado com probabilidade imensa em um número fixo de etapas (mas que exige potencialmente tempo maior que as etapas da Algorand'2). No caso remoto em que o acordo não é alcançado pela última etapa, o comitê concorda no bloco vazio, que é sempre válido.[00217] Algorand'1 only predicts that> 2/3 of the committee members are honest. In addition, at Algorand'1, the number of steps to obtain the Byzantine agreement is capped by a suitably high number, so that the agreement is guaranteed to be reached with immense probability in a fixed number of steps (but potentially requiring time) greater than the steps of Algorand'2). In the remote case where the agreement is not reached by the last step, the committee agrees on the empty block, which is always valid.

[00218] Algorand'2 prevê que o número de membros honestos em um comitê é sempre maior que ou igual a um limite fixo tH (que garante que, com probabilidade imensa, pelo menos 2/3 dos membros de comitê são honestos). Além disso, Algorand'2 permite que o acordo Bizantino seja alcançado em um número arbitrário de etapas (mas potencialmente em um tempo mais curto que Algorand'1).[00218] Algorand'2 predicts that the number of honest members on a committee is always greater than or equal to a fixed limit tH (which guarantees that, with immense probability, at least 2/3 of the committee members are honest). In addition, Algorand'2 allows the Byzantine agreement to be reached in an arbitrary number of steps (but potentially in a shorter time than Algorand'1).

[00219] Aqueles versados na técnica perceberão que muitas variantes dessas modalidades básicas podem ser derivadas. Em particular, é fácil, dado Algorand'2, modificar Algorand'1 de modo a permitir alcançar o acordo Bizantino em um número arbitrário de etapas.[00219] Those skilled in the art will realize that many variants of these basic modalities can be derived. In particular, it is easy, given Algorand'2, to modify Algorand'1 to allow reaching the Byzantine agreement in an arbitrary number of steps.

[00220] Ambas as modalidades compartilham os seguintes núcleo, as notações, noções e os parâmetros.[00220] Both modalities share the following core, notations, notions and parameters.

4.1 Um Núcleo Comum4.1 A Common Core

[00221] Objetivos Idealmente, para cada ciclo r, Algorand deve satisfazer as seguintes propriedades:[00221] Objectives Ideally, for each cycle r, Algorand should satisfy the following properties:

[00222] 1. Exatidão Perfeita. Todos os usuários honestos concordam com o mesmo bloco Br.[00222] 1. Perfect Accuracy. All honest users agree with the same Br block.

[00223] 2. Completude 1. Com a probabilidade 1, o bloco Br foi escolhido por um usuário honesto.[00223] 2. Completeness 1. With probability 1, block Br was chosen by an honest user.

[00224] (De fato um usuário malicioso pode sempre escolher um bloco cujo conjunto de pagamentos contém os pagamentos de apenas seus “amigos”.)[00224] (In fact, a malicious user can always choose a block whose payment set contains payments from only his "friends".)

[00225] Evidentemente, garantir a exatidão perfeita por si só é trivial: todos sempre escolhem o conjunto de pagamentos oficial PAYr para ser vazio. Mas nesse caso, o sistema teria completude 0. Infelizmente, garantir tanto a exatidão perfeita quanto a completude 1 não é fácil na presença de usuários maliciosos. Algorand, desse modo, adota um objetivo mais realista. Informalmente, permitindo-se que h denote a porcentagem de usuários que são honestos, h > 2/3, o objetivo da Algorand é[00225] Of course, ensuring perfect accuracy in itself is trivial: everyone always chooses the official PAYr payment set to be empty. But in this case, the system would have completeness 0. Unfortunately, ensuring both perfect accuracy and completeness 1 is not easy in the presence of malicious users. Algorand, therefore, adopts a more realistic objective. Informally, by allowing h to denote the percentage of users who are honest, h> 2/3, Algorand's goal is to

[00226] Garantir, com a probabilidade imensa, a exatidão perfeita e a completude próxima de h.[00226] Guarantee, with immense probability, perfect accuracy and completeness close to h.

[00227] Priorizar a exatidão sobre a completude parece uma escolha razoável: pagamentos não processados em um ciclo podem ser processados no próximo, mas deve-se evitar bifurcações, se possível.[00227] Prioritizing accuracy over completeness seems like a reasonable choice: payments not processed in one cycle can be processed in the next, but one should avoid forks, if possible.

[00228] Acordo Bizantino Resultante Desconsiderando-se tempo e comunicação excessivo por um momento, Exatidão perfeita pode ser garantida conforme a seguir. No início do ciclo r, cada usuário i propõe seu próprio bloco candidato 𝐵𝑖𝑟 . Então, todos os usuários chegam ao acordo Bizantino em apenas um dentre os blocos candidatos. Conforme a introdução, o protocolo de BA empregado exige uma maior parte honesta de 2/3 e é substituível de participante. Cada uma de suas etapas pode ser executada por um conjunto pequeno e aleatoriamente selecionado de verificadores, que não compartilha quaisquer variáveis internas.[00228] Resulting Byzantine Agreement Disregarding time and excessive communication for a moment, Perfect accuracy can be guaranteed as follows. At the beginning of cycle r, each user i proposes his own candidate block 𝐵𝑖𝑟. Then, all users reach the Byzantine agreement in only one of the candidate blocks. As per the introduction, the BA protocol employed requires an honest majority of 2/3 and is participant replaceable. Each of its steps can be performed by a small, randomly selected set of verifiers, which does not share any internal variables.

[00229] Infelizmente, essa abordagem não funciona bem. Isso se deve ao fato de os blocos candidatos propostos pelos usuários honestos serem provavelmente diferentes de modo total um do outro. De fato, cada usuário honesto observa pagamentos diferentes. Desse modo, embora os conjuntos de pagamentos observados por usuários honestos diferentes possam ter muito para sobrepor, é improvável que todos os usuários honestos construirão uma proposta para o mesmo bloco. Consequentemente, a consistência, acordo do protocolo de BA, nunca é limitante, apenas o acordo um é, e, desse modo, o acordo pode sempre ser alcançado em ⊥ em vez de em um bloco bom.[00229] Unfortunately, this approach does not work well. This is due to the fact that the candidate blocks proposed by honest users are likely to be completely different from each other. In fact, every honest user sees different payments. Thus, while the payment sets observed by different honest users can have a lot to overlap, it is unlikely that all honest users will build a proposal for the same block. Consequently, consistency, according to the BA protocol, is never limiting, only agreement one is, and thus the agreement can always be reached in ⊥ instead of in a good block.

[00230] Algorand' evita esse problema conforme a seguir. Primeiro, um líder para o ciclo r, ℓr, é selecionado. Então, ℓr propaga seu próprio bloco candidato, 𝐵ℓ𝑟𝑟 . Finalmente, os usuários alcançam o acordo no bloco que os mesmos realmente receberam de ℓr. Devido a, sempre que ℓr for honesto, Exatidão Perfeita e a Completude 1 se manterem, Algorand' garante que ℓr é honesto com probabilidade próxima de h.[00230] Algorand 'avoids this problem as follows. First, a leader for cycle r, ℓr, is selected. Then, ℓr propagates its own candidate block, 𝐵ℓ𝑟𝑟. Finally, users reach the agreement on the block that they actually received from ℓr. Because, whenever ℓr is honest, Perfect Accuracy and Completeness 1 remain, Algorand 'guarantees that ℓr is honest with probability close to h.

[00231] Seleção de Líder Em Algorand’s, o r-ésimo bloco é da forma Br = (r, PAYr, SIGℓr(Qr-1), H(Br-1).[00231] Leader Selection In Algorand’s, the rth block is of the form Br = (r, PAYr, SIGℓr (Qr-1), H (Br-1).

[00232] Como já mencionado na introdução, a quantidade Qr-1 é cuidadosamente construída de modo a ser essencialmente não manipulável pelo Adversário muito poderoso. (Posteriormente nessa seção, será fornecida alguma intuição sobre o motivo de esse ser o caso.) No início de um ciclo r, todos os usuários conhecem a cadeia de blocos até o momento, B0, . . . , Br-1, a partir do qual os mesmos deduzem o conjunto de usuários de cada ciclo anterior: isto é, PK1, . . . , PKr-1. Um líder potencial do ciclo r é um usuário i de modo que .H (SIGi (r, 1, Qr-1)) ≤ p.[00232] As already mentioned in the introduction, the Qr-1 quantity is carefully constructed so as to be essentially unmanageable by the very powerful Adversary. (Later in this section, some intuition will be provided as to why this is the case.) At the beginning of a cycle r, all users know the block chain so far, B0,. . . , Br-1, from which they deduce the set of users from each previous cycle: that is, PK1,. . . , PKr-1. A potential leader of cycle r is a user i so that .H (SIGi (r, 1, Qr-1)) ≤ p.

[00233] Expliquemos. Observa-se que, visto que a quantidade Qr-1 é deduzível de bloco Br-1, devido à propriedade de capacidade de recuperação de mensagem do esquema de assinatura digital subjacente. Adicionalmente, o esquema de assinatura subjacente satisfaz a propriedade de singularidade. Desse modo, SIGi (r, 1, Qr-1) é uma linha binária unicamente associada a i e r. Consequentemente, visto que H é um oráculo aleatório, H (SIGi (r, 1, Qr-1)) é uma linha longa de 256-bits aleatória unicamente associada a i e r. O símbolo "." na frente de H ( SIGi (r, 1 , Qr-1)) é o ponto decimal (no caso, binário), de modo que 𝑟𝑖 ≜. 𝐻(𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄 𝑟−1 )) seja a expansão binária de um número de 256-bits aleatório entre 0 e 1 unicamente associado a i e r. Desse modo, a probabilidade que ri é menor que ou igual a p é essencialmente p.[00233] Let us explain. It is observed that, since the quantity Qr-1 is deductible from the Br-1 block, due to the message recovery capacity property of the underlying digital signature scheme. Additionally, the underlying signature scheme satisfies the uniqueness property. Thus, SIGi (r, 1, Qr-1) is a binary line uniquely associated with i and r. Consequently, since H is a random oracle, H (SIGi (r, 1, Qr-1)) is a random 256-bit long line uniquely associated with i and r. The symbol "." in front of H (SIGi (r, 1, Qr-1)) is the decimal point (in this case, binary), so that 𝑟𝑖 ≜. 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄 𝑟 − 1)) is the binary expansion of a random 256-bit number between 0 and 1 uniquely associated with i and r. Thus, the probability that ri is less than or equal to p is essentially p.

[00234] A probabilidade p é escolhida de modo que, com probabilidade imensa (isto é, 1 — F), pelo menos um verificador potencial seja honesto. (Se for o fato, p é escolhido como a menor tal probabilidade.)[00234] The probability p is chosen so that, with immense probability (that is, 1 - F), at least one potential tester is honest. (If so, p is chosen as the least such probability.)

[00235] Observa-se que, visto que i é o único com a capacidade para computar suas próprias assinaturas, o mesmo por si só pode determinar a possibilidade de o mesmo ser um verificador potencial do ciclo 1. No entanto, revelando-se sua própria credencial, 𝜎𝑖𝑟 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄𝑟−1 ), i pode provar para qualquer um que é um verificador potencial do ciclo r.[00235] It is observed that, since i is the only one with the capacity to compute his own signatures, he alone can determine the possibility of him being a potential verifier of cycle 1. However, revealing his credential itself, 𝜎𝑖𝑟 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄𝑟 − 1), i can prove to anyone that it is a potential verifier of cycle r.

[00236] O líder ℓr é definido como o líder potencial cuja credencial com hash é menor que a credencial com hash de todos os outros líderes potenciais j: isto é, 𝐻(𝜎ℓ𝑟,𝑠 𝑟,𝑠 𝑟 ) ≤ 𝐻(𝜎𝑗 ).[00236] The leader ℓr is defined as the potential leader whose hashed credential is less than the hashed credential of all other potential leaders j: that is, 𝐻 (𝜎ℓ𝑟, 𝑠 𝑟, 𝑠 𝑟) ≤ 𝐻 (𝜎𝑗).

[00237] Observa-se que, visto que um ℓr malicioso pode não revelar sua credencial, o líder correto do ciclo r pode nunca ser conhecido, e que, impedindo relações improváveis, ℓr é, de fato, o único líder do ciclo r.[00237] It is observed that, since a malicious ℓr may not reveal his credential, the correct leader of cycle r may never be known, and that, preventing unlikely relationships, ℓr is, in fact, the only leader of cycle r.

[00238] Finalmente, será mostrado um último, mas importante detalhe: um usuário i pode ser um líder potencial (e, desse modo, o líder) de um ciclo r apenas se o mesmo pertencer ao sistema por pelo menos k ciclos. Isso garante a não capacidade para manipulação de Qr e todas as quantidades Q futuras. De fato, um dentre os líderes potenciais realmente determinará Qr.[00238] Finally, a last but important detail will be shown: a user i can be a potential leader (and, therefore, the leader) of a cycle r only if it belongs to the system for at least k cycles. This guarantees the inability to handle Qr and all future Q quantities. In fact, one of the potential leaders will actually determine Qr.

[00239] Seleção de Verificador Cada etapa s > 1 do ciclo r é executada por um conjunto pequeno de verificadores, SVr,s. Novamente, cada verificador i ∈ SVr,s é aleatoriamente selecionado dentre os usuários já nos ciclos k de sistema antes de r, e novamente por meio da quantidade especial Qr-1. Especificamente, i ∈ PKr-k é um verificador em SVr,s, se .H (SIGi (r, s, Qr-1)) ≤ p'.[00239] Verifier Selection Each step s> 1 of cycle r is performed by a small set of verifiers, SVr, s. Again, each verifier i ∈ SVr, s is randomly selected from the users already in the system cycles k before r, and again through the special quantity Qr-1. Specifically, i ∈ PKr-k is a verifier on SVr, s, if .H (SIGi (r, s, Qr-1)) ≤ p '.

[00240] Mais uma vez, apenas i conhece a possibilidade de o mesmo pertencer a SVr,s, mas, se esse for o caso, o mesmo pode provar isso exibindo sua credencial 𝜎𝑖𝑟,𝑠 ≜ 𝐻(𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 )). Um verificador i ∈ SVr,s envia uma mensagem 𝑚𝑖𝑟,𝑠 , na etapa s do ciclo r, e essa mensagem inclui sua credencial 𝜎𝑖𝑟,𝑠 , de modo a permitir que os verificadores f na próxima etapa reconheçam que 𝑚𝑖𝑟,𝑠 é uma mensagem de etapa-s legítima.[00240] Again, only i know the possibility that it belongs to SVr, s, but, if this is the case, it can prove it by displaying its encial, 𝑠 ≜ 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟 −1)). A verifier i ∈ SVr, s sends a message 𝑚𝑖𝑟, 𝑠, in step s of cycle r, and that message includes its credential 𝜎𝑖𝑟, 𝑠, in order to allow verifiers f in the next step to recognize that 𝑚𝑖𝑟, 𝑠 is a message of legitimate step-s.

[00241] A probabilidade p' é escolhida de modo a garantir que, em SVr,s, permitindo-se que o nº bom seja o número de usuários honestos e nº mau seja o número de usuários maliciosos, com probabilidade imensa das seguintes duas condições se manterem.[00241] The p 'probability is chosen to ensure that, in SVr, s, allowing the good number to be the number of honest users and bad number to be the number of malicious users, with immense probability of the following two conditions to stay.

[00242] Para a modalidade Algorand'1: (1) nº bom > 2 · nº mau e (2) nº bom + 4 · nº mau < 2 n, em que n é a cardinalidade esperada de SVr,s.[00242] For the Algorand'1 modality: (1) good number> 2 · bad number and (2) good number + 4 · bad number <2 n, where n is the expected cardinality of SVr, s.

[00243] Para a modalidade Algorand'2: (1) nº bom > tH e (2) nº bom + 2nº mau < 2tH, em que tH é um tempo especificado.[00243] For the Algorand'2 mode: (1) good number> tH and (2) good number + 2 bad number <2tH, where tH is a specified time.

[00244] Essas condições implicam que, com probabilidade suficientemente alta, (a) na última etapa do protocolo de BA, haverá pelo menos um determinado número de participantes honestos para assinar digitalmente o novo bloco Br, (b) apenas um bloco por ciclo pode ter o número necessário de assinaturas, e (c) o protocolo de BA usado tem (em cada etapa) a maior parte honesta de 2/3 exigida.[00244] These conditions imply that, with sufficiently high probability, (a) in the last stage of the BA protocol, there will be at least a certain number of honest participants to digitally sign the new Br block, (b) only one block per cycle can have the required number of signatures, and (c) the BA protocol used has (at each stage) the most honest 2/3 required.

[00245] Geração de Bloco de Esclarecimento Se o líder de ciclo-r ℓr for honesto, então, o bloco correspondente é da forma 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟 , 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 )),[00245] Generation of Clarification Block If the leader of cycle-r ℓr is honest, then the corresponding block is of the form 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟, 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1)),

[00246] em que o conjunto de pagamentos PAYr é máximo, (relembrar que todos os conjuntos de pagamento são, por definição, coletivamente válidos.) De outro modo (isto é, se ℓr for malicioso), Br tem uma dentre as seguintes duas formas possíveis: 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟 , 𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 )) e 𝐵𝑟 = 𝐵𝜀𝑟 ≜ (𝑟, ∅, 𝑄𝑟−1 , 𝐻 (𝐵𝑟−1 )).[00246] where the PAYr payment set is maximum, (remember that all payment sets are, by definition, collectively valid.) Otherwise (that is, if ℓr is malicious), Br has one of the following two Possible forms: 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟, 𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1)) and 𝐵𝑟 = 𝐵𝜀𝑟 ≜ (𝑟, ∅, 𝑄𝑟 − 1, 𝐻 (𝐵𝑟 − 1)).

[00247] Na primeira forma, PAYr é um conjunto de pagamentos (não necessariamente máximo) e pode ser 𝑃𝐴𝑌 𝑟 = ∅; e i é um líder potencial do ciclo r. (No entanto, i pode não ser o líder ℓr. Isso pode, de fato, ocorrer se ℓr mantiver o segredo de sua credencial e não revelar a si próprio.)[00247] In the first form, PAYr is a set of payments (not necessarily maximum) and can be 𝑃𝐴𝑌 𝑟 = ∅; and i is a potential leader of cycle r. (However, i may not be the ℓr leader. This may, in fact, occur if ℓr keeps his credential secret and does not reveal himself.)

[00248] A segunda forma surge quando, na execução de ciclo- r do protocolo de BA, todos os participantes honestos emitirem o valor padrão, que é o bloco vazio 𝐵𝜀𝑟 no pedido. (Por definição, as saídas possíveis de um protocolo de BA incluem um valor padrão, genericamente denotado por ⊥. Consultar a seção 3.2.)[00248] The second form appears when, in the execution of the BA protocol cycle, all honest participants issue the default value, which is the empty block 𝐵𝜀𝑟 in the order. (By definition, the possible outputs of a BA protocol include a default value, generically denoted by ⊥. See section 3.2.)

[00249] Observa-se que, embora os conjuntos de pagamento estejam vazios em ambos os casos, 𝐵𝑟 = (𝑟, ∅, 𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 )) e são blocos sintaticamente diferentes e surgem em duas situações diferentes: respectivamente, “tudo aconteceu de forma fácil o suficiente na execução do protocolo de BA”, e “alguma coisa aconteceu de errado no protocolo de BA, e o valor padrão foi emitido”.[00249] It is observed that, although payment sets are empty in both cases, 𝐵𝑟 = (𝑟, ∅, 𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1)) and are syntactically different blocks and appear in two different situations: respectively, “everything happened easily enough in the execution of the BA protocol”, and “something went wrong in the BA protocol, and the default value was issued”.

[00250] Descreve-se agora intuitivamente como a geração do bloco Br prossegue no ciclo r da Algorand'. Na primeira etapa, cada participante elegível, isto é, cada participante i ∈ PKr-k, verifica a possibilidade de o mesmo ser um líder potencial. Se esse for o caso, então, solicita-se que i, com o uso de todos os pagamentos que o mesmo observou até o momento e da cadeia de blocos atual, B0, . . . , Br-1, prepare secretamente um conjunto de pagamentos máximos, 𝑃𝐴𝑌𝑖𝑟 , e junte secretamente seu bloco candidato, 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟 , 𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 )). Ou seja, não apenas o mesmo inclui 𝐵𝑖𝑟 , como seu segundo componente, o conjunto de pagamentos recém preparado, mas também, como seu terceiro componente, sua própria assinatura de Qr-1, o terceiro componente do último bloco, Br-1. Finalmente, o mesmo propaga sua mensagem de etapa-1 de ciclo-r, 𝑚𝑖𝑟,1 , que inclui (a) seu bloco candidato 𝐵𝑖𝑟 , (b) sua assinatura adequada de seu bloco candidato (isto é, sua assinatura do hash de 𝐵𝑖𝑟 ) e (c) sua própria credencial 𝜎𝑖𝑟,1 , que prova que o mesmo é, de fato, um verificador potencial do ciclo r.[00250] It is now intuitively described how the generation of the Br block continues in the Algorand 'cycle r. In the first stage, each eligible participant, that is, each participant i ∈ PKr-k, checks the possibility that he is a potential leader. If this is the case, then i is asked to use all the payments it has observed to date and the current block chain, B0,. . . , Br-1, secretly prepare a set of maximum payments, 𝑃𝐴𝑌𝑖𝑟, and secretly join your candidate block, 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟, 𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1)). That is, not only does it include 𝐵𝑖𝑟, as its second component, the set of payments just prepared, but also, as its third component, its own signature of Qr-1, the third component of the last block, Br-1. Finally, it propagates its cycle-r step-1 message, 𝑚𝑖𝑟, 1, which includes (a) its candidate block 𝐵𝑖𝑟, (b) its proper signature from its candidate block (ie, its signature from the hash of 𝐵𝑖𝑟 ) and (c) his own credential 𝜎𝑖𝑟, 1, which proves that he is, in fact, a potential verifier of cycle r.

[00251] (Observa-se que, até um i honesto produzir sua mensagem 𝑚𝑖𝑟,1 , o Adversário não tem ideia de que i é um verificador potencial. Caso o mesmo deseje corromper os líderes potenciais honestos, o Adversário pode também corromper participantes honestos aleatórios. No entanto, uma vez que o mesmo observa 𝑚𝑖𝑟,1 , visto que contém a credencial de i, o Adversário conhece e pode corromper i, mas não pode impedir que 𝑚𝑖𝑟,1 , que é propagada de modo viral, alcance todos os usuários no sistema.)[00251] (Note that until an honest i produces his message 𝑚𝑖𝑟, 1, the Opponent has no idea that i is a potential verifier. If he wants to corrupt potential honest leaders, the Opponent can also corrupt honest participants However, since it observes 𝑚𝑖𝑟, 1, since it contains the credential of i, the Opponent knows and can corrupt i, but cannot prevent 𝑚𝑖𝑟, 1, which is viral propagated, from reaching all users on the system.)

[00252] Na segunda etapa, cada verificador selecionado j ∈ SVr,2 tenta identificar o líder do ciclo. Especificamente, j adota as credenciais de etapa-1, 𝜎𝑖𝑟,1 1 , … , 𝜎𝑖𝑟,1 𝑛 , contidas na mensagem de etapa-1 adequada 𝑚𝑖𝑟,1 que o mesmo recebeu; realiza hash em todas elas, isto é, computa 𝐻(𝜎𝑖𝑟,1 1 ), … , 𝐻(𝜎𝑖𝑟,1 𝑛 ); encontra a credencial 𝜎ℓ𝑟,1 𝑗 , cujo hash é lexicograficamente mínimo; e considera ℓ𝑗𝑟 como o líder do ciclo r.[00252] In the second step, each verifier selected j ∈ SVr, 2 tries to identify the leader of the cycle. Specifically, it already adopts the credentials of step-1, 𝜎𝑖𝑟, 1 1,…, 𝜎𝑖𝑟, 1 𝑛, contained in the appropriate message of step-1 𝑚𝑖𝑟, 1 that it received; hashes all of them, that is, computes 𝐻 (𝜎𝑖𝑟, 1 1),…, 𝐻 (𝜎𝑖𝑟, 1 𝑛); finds the credential 𝜎ℓ𝑟, 1 𝑗, whose hash is lexicographically minimal; and considers ℓ𝑗𝑟 as the leader of cycle r.

[00253] Relembrando-se que cada credencial considerada é uma assinatura digital de Qr-1, que SIGi (r, 1, Qr-1) é unicamente determinado por i e Qr-1, que H é o oráculo aleatório e, desse modo, que cada H(SIGi (r, 1, Qr-1) é uma linha longa de 256-bits aleatória única para cada líder potencial i do ciclo r.[00253] Recalling that each credential considered is a digital signature of Qr-1, that SIGi (r, 1, Qr-1) is uniquely determined by ie Qr-1, that H is the random oracle and, thus, that each H (SIGi (r, 1, Qr-1) is a single random 256-bit long line for each potential leader i of cycle r.

[00254] A partir disso pode-se concluir que, se a linha de 256- bits Qr-1 fosse por si só aleatória e independentemente selecionada, então também seriam as credenciais com hash de todos os líderes potenciais do ciclo r. De fato, todos os líderes potenciais são bem definidos, e também são suas credenciais (independentemente da possibilidade ou não de serem realmente computadas). Ademais, o conjunto de líderes potenciais do ciclo r é um subconjunto aleatório dos usuários do ciclo r — k, e um líder potencial honesto i sempre constrói e propaga adequadamente sua mensagem 𝑚𝑖𝑟 , que contém a credencial de i. Desse modo, visto que a porcentagem de usuários honestos é h, independentemente do que os líderes potenciais maliciosos possam fazer (por exemplo, revelar ou esconder suas próprias credenciais), a credencial de líder potencial com hash mínimo pertence a um usuário honesto, que é necessariamente identificado por todos como o líder ℓr do ciclo r. Consequentemente, se a linha de 256-bits Qr-1 fosse por si só aleatória e independentemente selecionada, com probabilidade exatamente h (a) o líder ℓr é honesto e (b) ℓj = ℓr para todos os verificadores j de etapa-2 honestos.[00254] From this it can be concluded that, if the 256-bit Qr-1 line was itself random and independently selected, then it would also be the hashed credentials of all potential leaders of cycle r. In fact, all potential leaders are well defined, and so are their credentials (regardless of whether or not they are actually counted). Furthermore, the set of potential leaders in cycle r is a random subset of users in cycle r - k, and an honest potential leader i always adequately builds and propagates his message 𝑚𝑖𝑟, which contains the credential of i. Thus, since the percentage of honest users is h, regardless of what potential malicious leaders may do (for example, revealing or hiding their own credentials), the potential leader credential with minimal hash belongs to an honest user, who is necessarily identified by everyone as the leader ℓr of cycle r. Consequently, if the 256-bit Qr-1 line were randomly selected and independently selected, with probability exactly h (a) the leader ℓr is honest and (b) ℓj = ℓr for all honest step-2 j verifiers .

[00255] De fato, as credenciais com hash são, sim, aleatoriamente selecionadas, mas dependem de Qr-1, que não é aleatória e independentemente selecionado. Uma análise cuidadosa, no entanto, garante que Qr-1 seja suficientemente não manipulável para garantir que o líder de um ciclo seja honesto com probabilidade h' suficientemente próxima de h: a saber, h' > h2(1 + h — h2). Por exemplo, se h = 80%, então, h' > 0,7424.[00255] In fact, hashed credentials are, yes, randomly selected, but depend on Qr-1, which is not random and independently selected. Careful analysis, however, ensures that Qr-1 is sufficiently non-manipulable to ensure that the leader of a cycle is honest with probability h 'close enough to h: namely, h'> h2 (1 + h - h2). For example, if h = 80%, then h '> 0.7424.

[00256] Identificando-se o líder do ciclo (o que os mesmos fazem corretamente quando o líder ℓr é honesto), a tarefa dos verificadores da etapa-2 é começar a executar 𝐵𝐴∗ com o uso de valores iniciais que os mesmos acreditam ser o bloco do líder. De fato, a fim de minimizar a quantidade de comunicação exigida, um verificador j ∈ SVr,2 não usa, como valor de entrada v'j para o protocolo Bizantino, o bloco Bj que o mesmo de fato recebeu de ℓj (o usuário j acredita ser o líder), mas o líder, mas o hash de tal bloco, isto é, v'j = H(Bi). Desse modo, mediante o término do protocolo de BA, os verificadores da última etapa não computam o bloco Br do ciclo-r desejado, mas computam (autenticam e propagam) H(Br). Consequentemente, visto que H(Br) é digitalmente assinado por verificadores o suficiente da última etapa do protocolo de BA, os usuários no sistema perceberão que H(Br) é o hash do novo bloco. No entanto, os mesmos também precisam recuperar (ou esperar por, visto que a execução é bem assíncrona) o bloco Br por si só, cujo protocolo garante que está, de fato, disponível, independentemente do que o Adversário possa realizar.[00256] Identifying the leader of the cycle (what they do correctly when the leader ℓr is honest), the task of the verifiers in step-2 is to start executing 𝐵𝐴 ∗ using initial values that they believe to be the leader block. In fact, in order to minimize the amount of communication required, a verifier j ∈ SVr, 2 does not use, as input value v'j for the Byzantine protocol, the Bj block that it actually received from ℓj (user j believes to be the leader), but the leader, but the hash of such a block, that is, v'j = H (Bi). Thus, upon completion of the BA protocol, the verifiers of the last stage do not compute the Br block of the desired r-cycle, but compute (authenticate and propagate) H (Br). Consequently, since H (Br) is digitally signed by enough verifiers from the last step of the BA protocol, users in the system will realize that H (Br) is the hash of the new block. However, they also need to recover (or wait for, since the execution is quite asynchronous) the Br block by itself, whose protocol guarantees that it is, in fact, available, regardless of what the Opponent may accomplish.

[00257] Assincronia e Temporização Algorand'1 e Algorand'2 têm um grau significativo de assincronia. Isso se deve ao fato de que o Adversário tem uma latitude grande na programação da entrega das mensagens que são propagadas. Além disso, independentemente de o número total de etapas em um ciclo ser limitado ou não, há a contribuição de variância pelo número de etapas realmente realizadas.[00257] Asynchrony and Timing Algorand'1 and Algorand'2 have a significant degree of asynchrony. This is due to the fact that the Opponent has a large latitude in the delivery schedule of the messages that are propagated. In addition, regardless of whether the total number of steps in a cycle is limited or not, there is a contribution of variance by the number of steps actually performed.

[00258] Assim que o mesmo aprende os certificados de B0, . . . , Br-1, um usuário i computa Qr-1 e começa a trabalhar no ciclo r, verificando a possibilidade de o mesmo ser um líder potencial, ou um verificador em alguma etapa s do ciclo r.[00258] As soon as he learns the B0 certificates,. . . , Br-1, a user i computes Qr-1 and begins to work in cycle r, checking the possibility that he is a potential leader, or a verifier in some stages s of cycle r.

[00259] Presumindo-se que i deve atuar na etapa s, em vista da assincronia discutida, i depende de várias estratégias para garantir que o mesmo tenha informações suficientes antes de agir.[00259] Assuming that i must act in step s, in view of the discussed asynchrony, i depends on several strategies to ensure that he has enough information before acting.

[00260] Por exemplo, o mesmo pode esperar por receber pelo menos um determinado número de mensagens dos verificadores da etapa anterior (como na Algorand'1), ou esperar por tempo suficiente para garantir que o mesmo recebe as mensagens de verificadores o suficiente da etapa anterior (como na Algorand'2).[00260] For example, it can expect to receive at least a certain number of messages from the verifiers in the previous step (as in Algorand'1), or wait long enough to ensure that it receives enough messages from verifiers from previous step (as in Algorand'2).

[00261] A Semente Qr e o Parâmetro de Olhar para Trás k Relembrando-se que, idealmente, as quantidades Qr devem ser aleatórias e independentes, embora seja suficiente que as mesmas sejam suficientemente não manipuláveis pelo Adversário.[00261] The Seed Qr and the Look Back Parameter k Recalling that, ideally, the quantities Qr should be random and independent, although it is sufficient that they are sufficiently not manipulable by the Opponent.

[00262] À primeira vista, pode-se escolher Qr-1 para coincidir com H (PAYr-1). Uma análise elementar revela, no entanto, que usuários maliciosos podem tirar vantagem desse mecanismo de seleção.5 Um esforço adicional mostra que uma diversidade de outras alternativas, com base em quantidades de bloco tradicionais são facilmente exploráveis pelo Adversário para garantir que líderes maliciosos sejam muito frequentes. Define-se específica e indutivamente, em vez disso, nossa nova quantidade Qr de modo a ter a capacidade para provar que essa é não manipulável pelo Adversário. A saber, 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ), 𝑟), se Br não for o bloco vazio, e 𝑄𝑟 ≜ 𝐻 (𝑄𝑟−1 , 𝑟), de outra forma.[00262] At first glance, one can choose Qr-1 to match H (PAYr-1). An elementary analysis reveals, however, that malicious users can take advantage of this selection mechanism.5 An additional effort shows that a diversity of other alternatives, based on traditional block quantities, are easily exploitable by the Adversary to ensure that malicious leaders are very frequently asked questions. Our new Qr quantity is specifically and inductively defined instead so as to have the ability to prove that it is not manipulable by the Adversary. Namely, 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1), 𝑟), if Br is not the empty block, and 𝑄𝑟 ≜ 𝐻 (𝑄𝑟 − 1, 𝑟), otherwise.

[00263] A intuição do motivo dessa construção de Qr trabalhar é conforme a seguir. Presumindo-se por um momento que Qr-1 é realmente aleatório e independentemente selecionado. Então, também será Qr? Quando ℓr for honesto a resposta é (em termos gerais) sim. E isso é devido a 5 Se está no início do ciclo r — 1. Desse modo, Qr-2 = PAYr-2 é publicamente conhecido, e o Adversário confidencialmente sabe quem são os líderes potenciais que o mesmo controla. Presumindo-se que o Adversário controle 10% dos usuários, e que, com probabilidade muito alta, um usuário malicioso w é o líder potencial do ciclo r — 1. Ou seja, presume-se que H (SIGw (r - 2, 1, Qr-2)) é tão pequeno que é altamente improvável que um líder potencial honesto será realmente o líder do ciclo r — 1. (Relembrando-se que, visto que se escolhe líderes potenciais por meio de um mecanismo de eleição criptográfica secreta, o Adversário não sabe quem são os líderes potenciais honestos.) O Adversário, portanto, está na posição inviável de escolher o conjunto de pagamentos PAY' que o mesmo deseja, e fazer com que esse se torne o conjunto de pagamentos oficial do ciclo r — 1. No entanto, o mesmo pode fazer mais. O mesmo também pode garantir que, com probabilidade alta, (*) um de seus usuários maliciosos seja o líder também do ciclo r, de modo que o mesmo possa livremente selecionar qual PAYr será. (E assim por diante. Pelo menos por um longo tempo, isto é, enquanto esses eventos de alta probabilidade realmente ocorrerem.) Para garantir (*), o Adversário atua conforme a seguir. Seja PAY' o conjunto de pagamentos que o Adversário prefere para o ciclo r — 1. Então, o mesmo computa H(PAY') e verifica a possibilidade de, para algum participante já malicioso z, SIGz(r, 1, H(PAY')) ser particularmente pequeno, isto é, pequeno o suficiente para que, com probabilidade muito alta, z seja o líder do ciclo r. Se esse for o caso, então, o mesmo instrui w a escolher seu bloco candidato para ser 𝐵𝑖𝑟−1 = (𝑟 − 1, 𝑃𝐴𝑌 ′ , 𝐻(𝐵𝑟−2 )). De outro modo, o mesmo tem dois outros usuários maliciosos x e y para continuar a geração de um novo pagamento ℘', de um para o outro, até, para algum usuário malicioso z (ou mesmo para algum usuário fixo z) H ( SIGZ (PAY' U {℘})) ser também particularmente pequeno. Esse experimento parará bem rapidamente. E quando acontecer o Adversário solicita w a propor o bloco candidato 𝐵𝑖𝑟−1 = (𝑟 − 1, 𝑃𝐴𝑌 ′ ,∪ {℘}, 𝐻(𝐵𝑟−2 )).[00263] The intuition of the reason for this construction of Qr to work is as follows. Assuming for a moment that Qr-1 is actually random and independently selected. So, is it also Qr? When ℓr is honest the answer is (in general terms) yes. This is due to 5 If it is at the beginning of the r - 1 cycle. Thus, Qr-2 = PAYr-2 is publicly known, and the Opponent confidentially knows who the potential leaders are controlling. Assuming that the Adversary controls 10% of users, and that, with very high probability, a malicious user w is the potential leader of the r - 1 cycle. That is, it is assumed that H (SIGw (r - 2, 1 , Qr-2)) is so small that it is highly unlikely that a potential honest leader will actually be the leader of the r - 1 cycle. (Recalling that, since potential leaders are chosen through a secret cryptographic election mechanism, the Opponent does not know who the potential honest leaders are.) The Opponent, therefore, is in an unfeasible position to choose the PAY 'set of payments that he wants, and to make it become the official set of payments in cycle r - 1. However, the same can do more. It can also guarantee that, with high probability, (*) one of its malicious users is also the leader of cycle r, so that it can freely select which PAYr it will be. (And so on. At least for a long time, that is, as long as these high probability events actually occur.) To be sure (*), the Opponent acts as follows. Let PAY 'be the set of payments that the Adversary prefers for cycle r - 1. Then, it computes H (PAY') and checks the possibility of, for some already malicious participant z, SIGz (r, 1, H (PAY ')) be particularly small, that is, small enough that, with very high probability, z is the leader of cycle r. If this is the case, then it instructs w to choose its candidate block to be 𝐵𝑖𝑟 − 1 = (𝑟 - 1, 𝑃𝐴𝑌 ′, 𝐻 (𝐵𝑟 − 2)). Otherwise, it has two other malicious users x and y to continue generating a new payment ℘ ', from one to the other, even to some malicious user z (or even some fixed user z) H (SIGZ (PAY 'U {℘})) is also particularly small. This experiment will stop very quickly. And when it happens, the Opponent asks w to propose the candidate block 𝐵𝑖𝑟 − 1 = (𝑟 - 1, 𝑃𝐴𝑌 ′, ∪ {℘}, 𝐻 (𝐵𝑟 − 2)).

𝐻 (𝑆𝐼𝐺ℓ𝑟 (∙), 𝑟) ∶ {0,1}256 → {0,1}256𝐻 (𝑆𝐼𝐺ℓ𝑟 (∙), 𝑟) ∶ {0.1} 256 → {0.1} 256

[00264] ser uma função aleatória. Quando ℓr for malicioso, no entanto, Qr não é mais inequivocamente definido a partir de Qr-1 e ℓr. Há pelo menos dois valores separados para Qr. Um continua a ser 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ), 𝑟), e o outro é H(Qr-1, r). Argumenta-se primeiro que, embora a segunda escolha seja de alguma forma arbitrária, uma segunda escolha é absolutamente obrigatória. O motivo para isso é que um ℓr malicioso pode sempre fazer com que blocos candidatos totalmente diferentes sejam recebidos pelos verificadores honestos da segunda etapa.6 Uma vez que esse seja o caso, é fácil garantir que o bloco finalmente acordado por meio do protocolo de BA do ciclo r será aquele padrão, e, desse modo, não conterá a assinatura digital de qualquer pessoa de Qr-1. Mas o sistema deve continuar, e para isso, precisa de um líder para o ciclo r. Se esse líder for automática e abertamente selecionado, então, o Adversário o corromperá trivialmente. Se for selecionado pela Qr-1 anterior por meio do mesmo processo, então ℓr será novamente o líder no ciclo r + 1. Propõe-se especificamente usar o mesmo mecanismo de eleição criptográfica secreta, mas aplicado a uma nova quantidade Q: a saber, H(Qr-1, r). Com essa quantidade como a saída de H garante-se que a saída seja aleatória, e incluindo-se r como a segunda entrada de H, enquanto todos os outros usos de H foram uma entrada única ou pelo menos três entradas, “garante” que tal uma Qr é independentemente selecionada. Novamente, a escolha específica de Qr alternativa não importa, o que importa é que ℓr tem duas escolhas para Qr, e, desse modo, pode dobrar suas chances de ter outro usuário malicioso como o próximo líder.[00264] be a random function. When ℓr is malicious, however, Qr is no longer unambiguously defined from Qr-1 and ℓr. There are at least two separate values for Qr. One remains 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1), 𝑟), and the other is H (Qr-1, r). It is first argued that, although the second choice is somewhat arbitrary, a second choice is absolutely mandatory. The reason for this is that a malicious ℓr can always cause completely different candidate blocks to be received by honest second-stage verifiers.6 Once this is the case, it is easy to ensure that the block finally agreed through the BA protocol of cycle r will be that standard, and thus will not contain the digital signature of any person in Qr-1. But the system must continue, and for that, it needs a leader for cycle r. If that leader is automatically and openly selected, then the Opponent will trivially corrupt him. If selected by the previous Qr-1 through the same process, then ℓr will again be the leader in the r + 1 cycle. It is specifically proposed to use the same secret cryptographic election mechanism, but applied to a new quantity Q: namely, H (Qr-1, r). With this quantity as the output of H, the output is guaranteed to be random, and by including r as the second input of H, while all other uses of H were a single input or at least three inputs, “guarantee” that such a Qr is independently selected. Again, the specific choice of alternative Qr does not matter, what matters is that ℓr has two choices for Qr, and thus can double his chances of having another malicious user as the next leader.

[00265] A opções para Qr podem até mesmo ser mais 6 Por exemplo, para simplificar (mas de modo extremo), “quando o tempo da segunda etapa estiver prestes a expirar”, ℓr pode diretamente enviar um e-mail para um bloco candidato Bi diferente para cada usuário i. Dessa forma, quem quer que os verificadores da etapa-2 possam ser, os mesmos terão recebido blocos totalmente diferentes.[00265] The options for Qr can even be more 6 For example, to simplify (but in an extreme way), “when the time of the second stage is about to expire”, ℓr can directly send an email to a candidate block Bi different for each user i. In this way, whoever the verifiers in step-2 may be, they will have received totally different blocks.

numerosas para o Adversário que controla um ℓr malicioso. Por exemplo, seja x, y e z três líderes maliciosos potenciais do ciclo r de modo que 𝐻(𝜎𝑥𝑟,1 ) < 𝐻(𝜎𝑦𝑟,1 ) < 𝐻(𝜎𝑧𝑟,1 )numerous for the Adversary who controls a malicious ℓr. For example, let x, y and z be three potential malicious leaders of cycle r so that 𝐻 (𝜎𝑥𝑟, 1) <𝐻 (𝜎𝑦𝑟, 1) <𝐻 (𝜎𝑧𝑟, 1)

[00266] e 𝐻(𝜎𝑧𝑟,1 ) é particularmente pequeno. Ou seja, tão pequeno que há uma boa chance de que 𝐻(𝜎𝑧𝑟,1 ) seja menor do que a credencial com hash de cada líder potencial honesto. Então, solicitando-se que x esconda sua credencial, o Adversário tem uma boa chance de fazer com que y se torne o líder do ciclo r - 1. Isso implica que o mesmo tem outra opção para Qr: a saber, H (SIGy (Qr-1),r). De modo semelhante, o Adversário pode solicitar que tanto x quanto y retenham suas credenciais, de modo a fazer com que z se torne o líder do ciclo r - 1 e ganhe outra opção para Qr: a saber, H (SIGZ (Qr-1),r).[00266] and 𝐻 (𝜎𝑧𝑟, 1) is particularly small. That is, so small that there is a good chance that 𝐻 (𝜎𝑧𝑟, 1) is less than the hashed credential of each potential honest leader. Then, by asking x to hide its credential, the Opponent has a good chance of making y become the leader of cycle r - 1. This implies that he has another option for Qr: namely, H (SIGy ( Qr-1), r). Similarly, the Opponent may request that both x and y retain their credentials, so that z becomes the leader of the r - 1 cycle and gains another option for Qr: namely, H (SIGZ (Qr-1 ), r).

[00267] Evidentemente, no entanto, cada uma dessas e outras opções tem uma chance não zero de falhar, devido ao Adversário não poder prever o hash das assinaturas digitais dos usuários potenciais honestos.[00267] Of course, however, each of these and other options has a non-zero chance of failing, due to the Adversary being unable to predict the hash of the digital signatures of honest potential users.

[00268] Uma análise semelhante a cadeia Markov cuidadosa mostra que, independentemente de quais opções o Adversário escolha realizar no ciclo r - 1, contanto que o mesmo não possa injetar novos usuários no sistema, o mesmo não pode diminuir a probabilidade de um usuário honesto ser o líder do ciclo r + 40 muito abaixo de h. Esse é o motivo pelo qual exige-se que os líderes potenciais do ciclo r sejam usuários já existentes no ciclo r - k. É uma forma de garantir que, no ciclo r - k, o Adversário não possa alterar em muito a probabilidade de que um usuário honesto se torne o líder do ciclo r. De fato, independentemente de quais usuários o mesmo pode adicionar ao sistema em ciclos r - k a r, os mesmos são inelegíveis de se tornarem líderes potenciais (e, a fortiori, o líder) do ciclo r. Desse modo, o parâmetro de olhar para trás k por fim é um parâmetro de segurança. (Embora, como será visto na seção ??, também possa ser um tipo de “parâmetro de conveniência”.)[00268] A careful analysis similar to the careful Markov chain shows that, regardless of what options the Opponent chooses to perform in the r - 1 cycle, as long as he cannot inject new users into the system, he cannot decrease the probability of an honest user be the leader of the r + 40 cycle far below h. This is why potential leaders in cycle r are required to be existing users in cycle r - k. It is a way of ensuring that, in the r - k cycle, the Opponent cannot change the probability that an honest user will become the leader of the r cycle. In fact, regardless of which users it can add to the system in cycles r - k to r, they are ineligible to become potential leaders (and, a fortiori, the leader) of cycle r. Thus, the look back parameter k is ultimately a safety parameter. (Although, as will be seen in the section ??, it can also be a type of “convenience parameter”.)

[00269] Chaves Efêmeras Embora a execução do protocolo não possa gerar uma bifurcação, exceto com probabilidade insignificante, o Adversário pode gerar uma bifurcação, no r-ésimo bloco, após o bloco legítimo r ter sido gerado.[00269] Ephemeral Keys Although the execution of the protocol cannot generate a bifurcation, except with insignificant probability, the Opponent can generate a bifurcation, in the r-th block, after the legitimate r block has been generated.

[00270] De modo geral, uma vez que Br tenha sido gerado, o Adversário aprendeu quem são os verificadores de cada etapa do ciclo r. Desse modo, o mesmo pode, portanto, corromper todos dentre esses e ̃𝑟 . Visto que esse bloco falso obrigar os mesmos a certificar um novo bloco 𝐵 pode ser propagado apenas após aquele legítimo, em que os usuários que ̃𝑟 seria prestaram atenção para não serem enganados.7 Não obstante, 𝐵 sintaticamente correto e deseja-se impedir que seja fabricado.[00270] In general, once Br has been generated, the Adversary has learned who the verifiers of each stage of cycle r are. Thus, it can therefore corrupt all of these and ̃𝑟. Since this fake block obliges them to certify a new block 𝐵 it can be propagated only after the legitimate one, in which the users who ̃𝑟 would have paid attention not to be deceived.7 Nevertheless, it is syntactically correct and it is desired to prevent it from being manufactured.

[00271] Isso é feito por meio de uma nova regra. Essencialmente, os membros do conjunto de verificador SVr,s de uma etapa s do ciclo r usam chaves públicas efêmeras 𝑝𝑘𝑖𝑟,𝑠 para assinar digitalmente suas mensagens. Essas chaves são de uso único apenas e suas chaves secretas correspondentes 𝑝𝑘𝑖𝑟,𝑠 são destruídas uma vez usadas. Dessa forma, se um verificador for corrompido posteriormente, o Adversário não pode força o mesmo a assinar qualquer coisa que o mesmo não assinou originalmente.[00271] This is done through a new rule. Essentially, members of the SVr, one-step verifier set of cycle r use ephemeral public keys 𝑝𝑘𝑖𝑟, 𝑠 to digitally sign their messages. These keys are for single use only and their corresponding secret keys 𝑝𝑘𝑖𝑟, 𝑠 are destroyed once used. Thus, if a checker is later corrupted, the Opponent cannot force him to sign anything that he did not originally sign.

[00272] Naturalmente, deve-se garantir que seja impossível para o Adversário computar uma nova chave 𝑝̃ 𝑟,𝑠 𝑖 e convencer um usuário honesto de que essa é a chave efêmera correta do verificador i ∈ SVr,s para usar na etapa s.[00272] Naturally, it must be ensured that it is impossible for the Opponent to compute a new key 𝑝̃ 𝑟, 𝑠 𝑖 and convince an honest user that this is the correct ephemeral key of the i ∈ SVr, s verifier to use in step s.

4.2 Sumário Comum De Notações, Noções E Parâmetros Notações4.2 Common Summary of Notations, Notions, and Notations Parameters

[00273] ● r ≥ 0: o número de ciclo atual.[00273] ● r ≥ 0: the current cycle number.

[00274] ● s ≥ 1: o número atual da etapa no ciclo r.[00274] ● s ≥ 1: the current step number in cycle r.

7 Considera-se corromper o âncora de notícias de uma rede de TV grande, e produzir e difundir um noticiário que mostra a secretária Clinton ganhando a última eleição presidencial. A maior parte de nós reconheceria que isso é uma farsa. Mas alguém que estivesse acordando de um coma poderia ser enganado.7 It is considered to corrupt the news anchor of a large TV network, and to produce and broadcast a news program that shows Secretary Clinton winning the last presidential election. Most of us would recognize that this is a scam. But someone who was waking up from a coma could be tricked.

[00275] ● Br: o bloco gerado no ciclo r.[00275] ● Br: the block generated in cycle r.

[00276] ● PKr: o conjunto de chaves públicas ao fim do ciclo r - 1 e no início do ciclo r.[00276] ● PKr: the set of public keys at the end of cycle r - 1 and at the beginning of cycle r.

[00277] ● Sr: o estado de sistema ao fim do ciclo r - 1 e no início do ciclo r.8[00277] ● Sr: the system status at the end of cycle r - 1 and at the beginning of cycle r.8

[00278] ● PAYr: o conjunto de pagamentos contido em Br.[00278] ● PAYr: the set of payments contained in Br.

[00279] ● ℓr: líder de ciclo-r. ℓr escolhe o conjunto de pagamentos PAYr do ciclo r (e determina a próxima Qr).[00279] ● ℓr: r-cycle leader. escolher chooses the PAYr payment set of cycle r (and determines the next Qr).

[00280] ● Qr: a semente do ciclo r, uma quantidade (isto é, linha binária) que é gerada no fim do ciclo r e é usada para escolher verificadores para o ciclo r + 1. Qr é independente dos conjuntos de pagamento nos blocos e não pode ser manipulada por ℓr.[00280] ● Qr: the seed of cycle r, a quantity (ie, binary line) that is generated at the end of cycle r and is used to choose verifiers for cycle r + 1. Qr is independent of the payment sets in the blocks and cannot be manipulated by ℓr.

[00281] ● SVr,s: o conjunto de verificadores escolhidos para a etapa s do ciclo r.[00281] ● SVr, s: the set of verifiers chosen for step s of cycle r.

[00282] ● SVr: o conjunto de verificadores escolhido para o ciclo r, SVr = Us≥1SVr,s.[00282] ● SVr: the set of verifiers chosen for cycle r, SVr = Us≥1SVr, s.

[00283] ● M SVr,s e H SVr,s: respectivamente, o conjunto de verificadores maliciosos e o conjunto de verificadores honestos em SVr’s. MSVr’s ∪ HSVr’s = SVr’s e MSVr’s ∩ HSVr’s = Ø[00283] ● M SVr, s and H SVr, s: respectively the set of malicious scanners and the set of honest scanners in SVr’s. MSVr’s ∪ HSVr’s = SVr’s and MSVr’s ∩ HSVr’s = Ø

[00284] ● 𝑛1 ∈ ℤ+ e 𝑛 ∈ ℤ+ : respectivamente, os números esperados de líderes potenciais em cada SVr,1, e os números esperados de verificadores em cada SVr,s, para s > 1.[00284] ● 𝑛1 ∈ ℤ + and 𝑛 ∈ ℤ +: respectively, the expected numbers of potential leaders in each SVr, 1, and the expected numbers of verifiers in each SVr, s, for s> 1.

[00285] Observa-se que n1 << n, visto que se precisa pelo menos de um membro honesto em SVr,1, mas pelo menos uma maior parte dos membros honestos em cada SVr,s para s > 1.[00285] Note that n1 << n, since it requires at least one honest member in SVr, 1, but at least a majority of the honest members in each SVr, s for s> 1.

[00286] ● h ∈ (0, 1): uma constante maior que 2/3. h é a razão de honestidade no sistema. Ou seja, a fração de usuários honestos ou 8 Em um sistema que não é sincronizado, a notação de “o fim do ciclo r – 1” e “o começo do ciclo r” precisa ser cuidadosamente definida. Matematicamente PKr e Sr são computados a partir do estado inicial S0 e os blocos B1, . . ., Br-1.[00286] ● h ∈ (0, 1): a constant greater than 2/3. h is the reason for honesty in the system. That is, the fraction of honest users or 8 In a system that is not synchronized, the notation of “the end of cycle r - 1” and “the beginning of cycle r” needs to be carefully defined. Mathematically PKr and Sr are computed from the initial state S0 and blocks B1,. . ., Br-1.

dinheiro honesto, dependendo da suposição usada, em cada PKr é de pelo menos h.honest money, depending on the assumption used, in each PKr is at least h.

[00287] ● H: uma função hash criptográfica, modelada como um oráculo aleatório.[00287] ● H: a cryptographic hash function, modeled as a random oracle.

[00288] ● ⊥: Uma linha especial do mesmo comprimento como a saída de H.[00288] ● ⊥: A special line of the same length as the H output.

[00289] ● F ∈ (0, 1): o parâmetro que especifica a probabilidade de erro permitida. Uma probabilidade ≤ F é considerada “insignificante”, e uma probabilidade ≥ 1 - F é considerada “imensa”.[00289] ● F ∈ (0, 1): the parameter that specifies the permitted error probability. A probability ≤ F is considered “insignificant”, and a probability ≥ 1 - F is considered “immense”.

[00290] ● 𝑝ℎ ∈ (0,1): a probabilidade de que o líder de um ciclo r, ℓr, é honesto. Idealmente 𝑝ℎ = ℎ. Com a existência do Adversário, o valor de 𝑝ℎ será determinado na análise.[00290] ● 𝑝ℎ ∈ (0.1): the probability that the leader of a cycle r, ℓr, is honest. Ideally 𝑝ℎ = ℎ. With the Opponent's existence, the value of 𝑝ℎ will be determined in the analysis.

[00291] ● k ∈ ℤ+: o parâmetro de olhar para trás. Ou seja, ciclo r - k é onde os verificadores para ciclo r são escolhidos a partir de — a saber, SVr ⊆ PKr-k.9[00291] ● k ∈ ℤ +: the look back parameter. That is, cycle r - k is where the checkers for cycle r are chosen from - namely, SVr ⊆ PKr-k.9

[00292] ● 𝑝1 ∈ (0,1): para a primeira etapa do ciclo r, um usuário no ciclo r - k é escolhido para estar em SVr,1 com probabilidade 𝑝1 ≜ 𝑛1 . |𝑃𝐾𝑟−𝑘 |[00292] ● 𝑝1 ∈ (0.1): for the first stage of cycle r, a user in cycle r - k is chosen to be in SVr, 1 with probability 𝑝1 ≜ 𝑛1. | 𝑃𝐾𝑟 − 𝑘 |

[00293] ● 𝑝 ∈ (0,1): para cada etapa s > 1 do ciclo r, um usuário 𝑛 no ciclo r - k é escolhido para estar em SVr,s com probabilidade 𝑝 ≜ . |𝑃𝐾𝑟−𝑘 |[00293] ● 𝑝 ∈ (0,1): for each step s> 1 of cycle r, a user 𝑛 in cycle r - k is chosen to be in SVr, s with probability 𝑝 ≜. | 𝑃𝐾𝑟 − 𝑘 |

[00294] ● CERTr: o certificado para Br. É um conjunto de assinaturas tH de H(Br) dos verificadores adequados no ciclo r.[00294] ● CERTr: the certificate for Br. It is a set of tH signatures of H (Br) of the appropriate verifiers in cycle r.

[00295] ● ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ 𝐵𝑟 ≜ (𝐵𝑟 , 𝐶𝐸𝑅𝑇 𝑟 ) é um bloco provado.[00295] ● ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ 𝐵𝑟 ≜ (𝐵𝑟, 𝐶𝐸𝑅𝑇 𝑟) is a proven block.

[00296] Um usuário i conhece Br se o mesmo possui (e verifica com sucesso) ambas as partes do bloco provado. Observa-se que o CERTr observado pelos usuários diferentes pode ser diferente.[00296] A user i knows Br if he has (and successfully checks) both parts of the tested block. It is noted that the CERTr observed by different users may be different.

[00297] ● 𝒯𝑖 𝑟 : a hora (local) na qual um usuário i conhece Br. No 9 Estritamente falando, “r – k” deve ser “max{0, r – k}”.[00297] ● 𝒯𝑖 𝑟: the time (local) at which a user i meets Br. No 9 Strictly speaking, “r - k” must be “max {0, r - k}”.

protocolo da Algorand cada usuário tem seu próprio relógio. Relógios de usuários diferentes não precisam ser sincronizados, mas devem ter a mesma velocidade. Apenas para fins da análise, considera-se um relógio de referência e medição dos horários relacionados dos participantes com relação a esse.Algorand protocol each user has his own clock. Watches from different users do not need to be synchronized, but they must have the same speed. For analysis purposes only, it is considered a reference clock and measurement of the participants' related times in relation to it.

[00298] ● 𝛼𝑖𝑟,𝑠 e 𝛽𝑖𝑟,𝑠 : respectivamente o horário (local) que um usuário i começa e termina sua execução de Etapa s do ciclo r.[00298] ● 𝛼𝑖𝑟, 𝑠 and 𝛽𝑖𝑟, 𝑠: respectively (local) time that a user i starts and ends his execution of Step s of cycle r.

[00299] ● Λ e λ: essencialmente, os limites superiores para, respectivamente, o horário necessário para executar a Etapa 1 e o horário necessário para qualquer outra etapa do protocolo da Algorand.[00299] ● Λ and λ: essentially, the upper limits for, respectively, the time required to perform Step 1 and the time required for any other step of the Algorand protocol.

[00300] O parâmetro Λ limita de modo superior o horário para propagar um único bloco de 1 MB.[00300] The parameter Λ limits the time to propagate a single block of 1 MB in a superior way.

[00301] O parâmetro λ limita de modo superior o horário para propagar uma mensagem pequena por verificador em uma Etapa s > 1.[00301] The parameter λ limits the time to propagate a small message per verifier in a step s> 1.

[00302] Presume-se que Λ ≤ 4λ. Notações[00302] It is assumed that Λ ≤ 4λ. Notations

[00303] ● Seleção de verificador.[00303] ● Selection of verifier.

[00304] Para cada ciclo r e etapa s > 1, 𝑆𝑉 𝑟,𝑠 ≜ {𝑖 ∈ 𝑃𝐾 𝑟−𝑘 ∶ . 𝐻(𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 )) ≤ 𝑝}. Cada usuário i ∈ PKr-k computa confidencialmente sua assinatura com o uso de sua chave de longo prazo e decide a possibilidade ou não de i ∈ SVr,s. Se i ∈ SVr,s, então, SIGi(r, s, Qr-1) é a credencial (r, s) de i, resumidamente denotada por 𝜎𝑖𝑟,𝑠 .[00304] For each cycle r and step s> 1, 𝑆𝑉 𝑟, 𝑠 ≜ {𝑖 ∈ 𝑃𝐾 𝑟 − 𝑘 ∶. 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟 − 1)) ≤ 𝑝}. Each i ∈ PKr-k user computes his signature confidentially using his long-term key and decides whether or not i ∈ SVr, s. If i ∈ SVr, s, then SIGi (r, s, Qr-1) is the credential (r, s) of i, briefly denoted by 𝜎𝑖𝑟, 𝑠.

[00305] Para a primeira etapa do ciclo r, SVr,1 e 𝜎𝑖𝑟,1 são muito similarmente definidos, em que p é substituído por p1.[00305] For the first stage of the cycle r, SVr, 1 and 𝜎𝑖𝑟, 1 are very similarly defined, where p is replaced by p1.

[00306] Os verificadores em SVr’1 são líderes potenciais.[00306] Verifiers in SVr’1 are potential leaders.

[00307] ● Seleção de líder.[00307] ● Selection of leader.

[00308] O usuário i ∈ SVr,1 é o líder do ciclo r, denotado por ℓr, se 𝐻(𝜎𝑖𝑟,1 ) ≤ 𝐻(𝜎𝑗𝑟,1 ) para todos os líderes potenciais j ∈ SVr,1. Sempre que os hashes de duas credenciais dos participantes forem comparados, no evento improvável de relações, o protocolo sempre rompe relações lexicograficamente de acordo com os (chaves públicas de longo prazo dos) líderes potenciais.[00308] User i ∈ SVr, 1 is the leader of cycle r, denoted by ℓr, if 𝐻 (𝜎𝑖𝑟, 1) ≤ 𝐻 (𝜎𝑗𝑟, 1) for all potential leaders j ∈ SVr, 1. Whenever the hashes of two participants 'credentials are compared, in the unlikely event of relationships, the protocol always breaks relationships lexicographically according to the potential leaders' long-term public keys.

[00309] Por definição, o valor hash da credencial de participante ℓr também é o menor dentre todos os usuários em PKr-k. Observa- se que um líder potencial não pode confidencialmente decidir quanto a possibilidade de o mesmo ser o líder ou não, sem observar as outras credenciais de líderes potenciais.[00309] By definition, the hash value of the ℓr participant credential is also the lowest of all users in PKr-k. It is observed that a potential leader cannot confidently decide whether he is the leader or not, without observing the other credentials of potential leaders.

[00310] Visto que os valores hash são uniformes de modo aleatório, quando SVr,1 for não vazio, ℓr sempre existe e é honesto com probabilidade de pelo menos h. O parâmetro n1 é grande o suficiente de modo a garantir que cada SVr,1 seja não vazio com probabilidade imensa.[00310] Since hash values are uniform at random, when SVr, 1 is non-empty, ℓr always exists and is honest with probability of at least h. Parameter n1 is large enough to ensure that each SVr, 1 is non-empty with immense probability.

[00311] ● Estrutura em blocos.[00311] ● Structure in blocks.

[00312] Um bloco não vazio é da forma 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟 , 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 ), e um bloco vazio é da forma 𝐵𝜀𝑟 = (𝑟, ∅, 𝑄𝑟−1 , 𝐻 (𝐵𝑟−1 )).[00312] A non-empty block is of the form 𝐵𝑟 = (𝑟, 𝑃𝐴𝑌 𝑟, 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1), and an empty block is of the form 𝐵𝜀𝑟 = (𝑟, ∅, 𝑄𝑟 − 1, 𝐻 (𝐵𝑟 − 1)).

[00313] Observa-se que um bloco não vazio pode ainda conter um conjunto de pagamentos vazio PAYr, se nenhum pagamento ocorrer nesse ciclo ou se o líder for malicioso. No entanto, um bloco não vazio implica que a identidade de ℓr, sua credencial 𝜎ℓ𝑟,1 𝑟 e 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ) foram todas prontamente reveladas. O protocolo garante que, se o líder for honesto, então, o bloco será não vazio com probabilidade imensa.[00313] It is noted that a non-empty block may still contain an empty PAYr payment set, if no payments occur in that cycle or if the leader is malicious. However, a non-empty block implies that identidader's identity, his credential 𝜎ℓ𝑟, 1 𝑟 and 𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1) were all promptly revealed. The protocol guarantees that, if the leader is honest, then the block will be non-empty with immense probability.

[00314] ● Semente Qr.[00314] ● Qr seed.

[00315] Se Br não está vazio, então, 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟−1 ), 𝑟), de outra forma, 𝑄𝑟 ≜ 𝐻 (𝑄𝑟−1 , 𝑟). Parâmetros[00315] If Br is not empty, then 𝑄𝑟 ≜ 𝐻 (𝑆𝐼𝐺ℓ𝑟 (𝑄𝑟 − 1), 𝑟), otherwise, 𝑄𝑟 ≜ 𝐻 (𝑄𝑟 − 1, 𝑟). Parameters

[00316] ● Relações entre vários parâmetros.[00316] ● Relationships between several parameters.

[00317] — Os verificadores e líderes potenciais do ciclo r são selecionados a partir dos usuários em PKr-k, em k é escolhido de modo que o Adversário não possa prever Qr-1 no ciclo r - k - 1 com probabilidade melhor que F : de outra forma, o mesmo terá a capacidade para introduzir usuários maliciosos para ciclo r - k, em que todos serão líderes potenciais/verificadores no ciclo r, que obtém sucesso em ter um líder malicioso ou uma maior parte maliciosa em SVr,s para algumas etapas s desejadas para o mesmo.[00317] - Verifiers and potential leaders of cycle r are selected from users in PKr-k, in k it is chosen so that the Opponent cannot predict Qr-1 in cycle r - k - 1 with a better probability than F : otherwise, it will have the ability to introduce malicious users to cycle r - k, where everyone will be potential leaders / verifiers in cycle r, who are successful in having a malicious leader or most malicious in SVr, s to some steps are desired for the same.

[00318] — Para a Etapa 1 de cada ciclo r, n1 é escolhido de modo que com probabilidade imensa, 𝑆𝑉 𝑟,1 ≠ ∅.[00318] - For Step 1 of each cycle r, n1 is chosen so that with immense probability, 𝑆𝑉 𝑟, 1 ≠ ∅.

[00319] ● Escolhas exemplificativas de parâmetros importantes.[00319] ● Exemplary choices of important parameters.

[00320] — As saídas de H têm 256-bits de comprimento.[00320] - H outputs are 256 bits long.

[00321] — h = 80%, n1 = 35.[00321] - h = 80%, n1 = 35.

[00322] — Λ = 1 minuto e λ = 15 segundos.[00322] - Λ = 1 minute and λ = 15 seconds.

[00323] ● Inicialização do protocolo.[00323] ● Initialization of the protocol.

[00324] O protocolo começa no momento 0 com r = 0. Visto que não há “B-1” ou “CERT-1”, sintaticamente B-1 é um parâmetro público com seu terceiro componente que especifica Q-1, e todos os usuários conhecem B-1 no momento 0. 5 Algorand'1[00324] The protocol starts at moment 0 with r = 0. Since there is no “B-1” or “CERT-1”, syntactically B-1 is a public parameter with its third component that specifies Q-1, and all Users know B-1 at the moment 0. 5 Algorand'1

[00325] Nessa seção, é construída uma versão da Algorand' que trabalha sob a seguinte suposição.[00325] In this section, a version of Algorand 'is built that works under the following assumption.

[00326] SUPOSIÇÃO DE MAIOR PARTE HONESTA DE USUÁRIOS: Mais que 2/3 dos usuários em cada PKr são honestos.[00326] ASSUMPTION OF A HONEST PART OF USERS: More than 2/3 of users in each PKr are honest.

[00327] Na Seção 7, mostra-se como substituir a suposição acima pela suposição de Maior Parte Honesta de Dinheiro desejada.[00327] Section 7 shows how to replace the above assumption with the desired Most Honest Part of Money assumption.

5.1 Notações E Parâmetros Adicionais Notações5.1 Notations And Additional Parameters Notations

[00328] ● m ∈ ℤ+: o número máximo de etapas no protocolo de BA binário, um múltiplo de 3.[00328] ● m ∈ ℤ +: the maximum number of steps in the binary BA protocol, a multiple of 3.

[00329] ● Lr ≤ m/ 3: uma variável aleatória que representa o número de testes de Bernoulli necessário para observar um 1, quando cada 𝑝ℎ teste é 1 com probabilidade e há no máximo m/3 testes. Se todos os testes 2 falharem, então, 𝐿𝑟 ≜ 𝑚⁄3. 𝐿𝑟 será usado para limitar de modo superior o tempo necessário para gerar bloco Br. 2𝑛[00329] ● Lr ≤ m / 3: a random variable that represents the number of Bernoulli tests necessary to observe a 1, when each 𝑝ℎ test is probable and there is a maximum of m / 3 tests. If all tests 2 fail, then 𝐿𝑟 ≜ 𝑚⁄3. 𝐿𝑟 will be used to limit the time needed to generate Br block 2.

[00330] ● 𝑡𝐻 = + 1: o número de assinaturas necessárias 3 nas condições finais do protocolo.[00330] ● 𝑡𝐻 = + 1: the number of signatures required 3 in the final conditions of the protocol.

[00331] ● CERTr: o certificado para Br. É um conjunto de assinaturas tH de H(Br) dos verificadores adequados no ciclo r. Parâmetros[00331] ● CERTr: the certificate for Br. It is a set of tH signatures of H (Br) of the appropriate verifiers in cycle r. Parameters

[00332] ● Relações entre vários parâmetros.[00332] ● Relationships between several parameters.

[00333] — Para cada etapa s > 1 do ciclo r, n é escolhido de modo que, com probabilidade imensa, |HSVr,s| > 2|MSVr,s| e |HSVr,s| + 4|MSVr,s| < 2n.[00333] - For each step s> 1 of cycle r, n is chosen so that, with immense probability, | HSVr, s | > 2 | MSVr, s | e | HSVr, s | + 4 | MSVr, s | <2n.

[00334] Quanto mais próximo de 1 for o valor de h, menor n precisa ser. Em particular, usa-se (variantes de) limites Chernoff para garantir que as condições desejadas se mantenham com probabilidade imensa.[00334] The closer to 1 the h value is, the smaller n needs to be. In particular, Chernoff limits (variants of) are used to ensure that the desired conditions remain with immense probability.

[00335] — m é escolhido de modo que Lr < m/3 com probabilidade imensa.[00335] - m is chosen so that Lr <m / 3 with immense probability.

[00336] ● Escolhas exemplificativas de parâmetros importantes.[00336] ● Exemplary choices of important parameters.

[00337] — F = 10-12.[00337] - F = 10-12.

[00338] — n ≈ 1.500, k = 40 e m = 180.[00338] - n ≈ 1,500, k = 40 and m = 180.

5.2 Implementação De Chaves Efêmeras Em Algorand'15.2 Implementation of Ephemeral Keys in Algorand'1

[00339] Como já mencionado, deseja-se que um verificador i ∈ SVr,s assine digitalmente sua mensagem 𝑚𝑖𝑟,𝑠 da etapa s no ciclo r, com relação a uma chave pública efêmera 𝑝𝑘𝑖𝑟,𝑠 com o uso de uma chave secreta efêmera 𝑠𝑘𝑖𝑟,𝑠 que o mesmo prontamente destrói após o uso. Precisa-se,[00339] As already mentioned, it is desired that a verifier i ∈ SVr, s digitally sign his message 𝑚𝑖𝑟, 𝑠 of step s in cycle r, in relation to an ephemeral public key 𝑝𝑘𝑖𝑟, 𝑠 with the use of an ephemeral secret key 𝑠𝑘𝑖𝑟, 𝑠 which it readily destroys after use. It is needed,

desse modo, de um método eficaz para garantir que cada usuário possa verificar que 𝑝𝑘𝑖𝑟,𝑠 é, de fato, a chave que se usa para verificar a assinatura de i de 𝑚𝑖𝑟,𝑠 . Isso é feito por (no melhor do nosso conhecimento) um novo uso de esquemas de assinatura com base em identidade.thus, an effective method to ensure that each user can verify that 𝑝𝑘𝑖𝑟, 𝑠 is, in fact, the key that is used to verify the signature of i of 𝑚𝑖𝑟, 𝑠. This is done by (to the best of our knowledge) a new use of identity-based subscription schemes.

[00340] Em um alto nível, em tal esquema, uma autoridade central A gera uma chave mestre pública, PMK, e uma chave mestre secreta correspondente, SMK. Dada a identidade, U, de um participante U, A computa, por meio de SMK, uma chave de assinatura secreta skU com relação à chave pública U, e confidencialmente gera skU para U. (De fato, em um esquema de assinatura digital com base em identidade, a chave pública de um usuário U é U por si só!) Dessa forma, se A destrói SMK após computar as chaves secretas dos usuários que o mesmo deseja permitir para produzir assinaturas digitais, e não manter qualquer chave secreta computada, então, U é a única que pode digitalmente assinar mensagens com relação à chave pública U. Desse modo, qualquer um que conheça “nome de U”, automaticamente conhece a chave pública de U, e, desse modo, pode verificar as assinaturas de U (possivelmente com o uso também da chave mestre pública PMK).[00340] At a high level, in such a scheme, a central authority A generates a public master key, PMK, and a corresponding secret master key, SMK. Given the identity, U, of a U participant, A computes, via SMK, a secret signature key skU with respect to the public key U, and confidentially generates skU for U. (In fact, in a digital signature scheme with based on identity, a user's public key is U by itself!) Thus, if A destroys SMK after computing the secret keys of the users he wants to allow to produce digital signatures, and not keep any secret keys computed, so U is the only one who can digitally sign messages with respect to public key U. Thus, anyone who knows “U's name” automatically knows U's public key, and thus can verify U's signatures. (possibly also using the PMK public master key).

[00341] Nessa aplicação, a autoridade A é o usuário i, e o conjunto de todos os usuários possíveis U coincide com o par ciclo-etapa (r, s) em — diga-se— S = {i} x {r', . . . , r' + 106} x {1, . . . , m + 3}, em que r’ é um determinado ciclo, e m + 3 o limite superior para o número de etapas que podem ocorrer em um ciclo. Dessa forma, 𝑝𝑘𝑖𝑟,𝑠 ≜ (𝑖, 𝑟, 𝑠), de modo que todos 𝑟,𝑠 𝑟,𝑠 que observam a assinatura de i 𝑆𝐼𝐺𝑝𝑘 𝑟,𝑠 (𝑚𝑖 ) possam, com probabilidade 𝑖 imensa, imediatamente verifica-la quanto aos primeiros milhões de ciclos r após r'.[00341] In this application, authority A is user i, and the set of all possible users U coincides with the cycle-step pair (r, s) in - say— S = {i} x {r ' ,. . . , r '+ 106} x {1,. . . , m + 3}, where r ’is a given cycle, and m + 3 is the upper limit for the number of steps that can occur in a cycle. Thus, 𝑝𝑘𝑖𝑟, 𝑠 ≜ (𝑖, 𝑟, 𝑠), so that all todos, 𝑠 𝑟, 𝑠 who observe the signature of i 𝑆𝐼𝐺𝑝𝑘 𝑟, 𝑠 (𝑚𝑖) can, with immense probability 𝑖, immediately verify it when to the first million cycles r after r '.

[00342] Em outras palavras, i primeiro gera PMK e SMK. Então, o mesmo publica que PMK é a chave pública mestre de i para qualquer ciclo r ∈ [r', r' + 106], e usa SMK para confidencialmente produzir e armazenar a chave secreta 𝑠𝑘𝑖𝑟,𝑠 para cada trio (i, r, s) ∈ S. Isso sendo realizado, o mesmo destrói SMK. Se o mesmo determinar que não faz parte de SVr,s, então, i pode deixar 𝑠𝑘𝑖𝑟,𝑠 sozinho (visto que o protocolo não exige que o mesmo autentique qualquer mensagem na Etapa s do ciclo r). De outro modo, i primeiro usa 𝑠𝑘𝑖𝑟,𝑠 para assinar digitalmente sua mensagem 𝑚𝑖𝑟,𝑠 e, então, destrói 𝑠𝑘𝑖𝑟,𝑠 .[00342] In other words, i first generates PMK and SMK. Then, it publishes that PMK is the master public key of i for any cycle r ∈ [r ', r' + 106], and uses SMK to confidentially produce and store the secret key 𝑠𝑘𝑖𝑟, 𝑠 for each trio (i, r , s) ∈ S. This being accomplished, it destroys SMK. If it determines that it is not part of SVr, s, then i can leave 𝑠𝑘𝑖𝑟, 𝑠 alone (since the protocol does not require it to authenticate any message in Step s of cycle r). Otherwise, i first uses 𝑠𝑘𝑖𝑟, 𝑠 to digitally sign your message 𝑚𝑖𝑟, 𝑠 and then destroys 𝑠𝑘𝑖𝑟, 𝑠.

[00343] Observa-se que i pode publicar sua primeira chave mestre pública quando entre pela primeira vez no sistema. Ou seja, o mesmo pagamento p que leva i para o sistema (em um ciclo r' ou em um ciclo próximo de r'), também pode especificar, a pedido de i, que a chave mestre pública de i para qualquer ciclo r ∈ [r', r' + 106] seja PMK —por exemplo, incluindo um par da forma (PMK, [r', r' + 106]).[00343] It is noted that i can publish its first public master key when it first enters the system. That is, the same payment p that takes i to the system (in a cycle r 'or in a cycle close to r'), can also specify, at the request of i, that the public master key of i for any cycle r ∈ [r ', r' + 106] is PMK —for example, including a shape pair (PMK, [r ', r' + 106]).

[00344] Observa-se também que, visto que m + 3 é o número máximo de etapas em um ciclo, presume-se que um ciclo leva um minuto, em que o depósito de chaves efêmeras assim produzido durará i por quase dois anos. Ao mesmo tempo, essas chaves secretas efêmeras não demorarão muito tempo para serem produzidas. Com o uso de um sistema com base em curva elíptica com chaves de 32B, cada chave secreta é computada em alguns microssegundos. Desse modo, se m + 3 = 180, então, todas as chaves secretas de 180 M podem ser computadas em menos de uma hora.[00344] It is also observed that, since m + 3 is the maximum number of steps in a cycle, it is assumed that a cycle takes one minute, in which the deposit of ephemeral keys thus produced will last i for almost two years. At the same time, these ephemeral secret keys will not take long to be produced. Using an elliptical curve based system with 32B keys, each secret key is computed in a few microseconds. Thus, if m + 3 = 180, then all 180 M secret keys can be computed in less than an hour.

[00345] Quando o ciclo atual estiver próximo de r' + 106, para manusear o próximo milhão de ciclos, i gera um novo par (PMK', SMK'), e informa qual é seu próximo depósito de chaves efêmeras — por exemplo — fazendo com que SIGi(PMK', [r' + 106 + 1, r' + 2 · 106 + 1]) entre em um novo bloco, com uma “transação” separada ou como algumas informações adicionais que fazem parte de um pagamento. Realizando-se isso, i informa a todos que o mesmo deve usar PMK' para verificar as assinaturas efêmeras de i no próximo milhão de ciclos. E assim por diante.[00345] When the current cycle is close to r '+ 106, to handle the next million cycles, i generates a new pair (PMK', SMK '), and informs you of your next ephemeral key deposit - for example - causing SIGi (PMK ', [r' + 106 + 1, r '+ 2 · 106 + 1]) to enter a new block, with a separate “transaction” or as some additional information that is part of a payment. When this is done, i informs everyone that he should use PMK 'to check i's ephemeral signatures over the next million cycles. And so on.

[00346] (Observa-se que, seguindo essa abordagem básica, outras formas para implantar chaves efêmeras sem usar assinaturas com base em identidade são certamente possíveis. Por exemplo, por meio de árvores de Merkle.10) Outras formas para implantar chaves efêmeras são certamente possíveis —por exemplo, por meio de árvores de Merkle.[00346] (It is noted that, following this basic approach, other ways to deploy ephemeral keys without using identity-based signatures are certainly possible. For example, through Merkle trees.10) Other ways to deploy ephemeral keys are certainly possible - for example, through Merkle trees.

5.3 Compatibilizar As Etapas Da Algorand'1 Com Aquelas De 𝑩𝑨∗5.3 Match the steps of Algorand'1 with those of 𝑩𝑨 ∗

[00347] Como dito, um ciclo na Algorand'1 tem no máximo m + 3 etapas.[00347] As stated, a cycle in Algorand'1 has a maximum of m + 3 steps.

[00348] ETAPA 1. Nessa etapa, cada líder potencial i computa e propaga seu bloco candidato 𝐵𝑖𝑟 , em conjunto com sua própria credencial, 𝜎𝑖𝑟,1 .[00348] STEP 1. In this step, each potential leader i computes and propagates his candidate block 𝐵𝑖𝑟, together with his own credential, 𝜎𝑖𝑟, 1.

[00349] Relembra-se que essa credencial explicitamente identifica i. Isso se deve a 𝜎𝑖𝑟,1 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄𝑟−1 ).[00349] Remember that this credential explicitly identifies i. This is due to 𝜎𝑖𝑟, 1 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 1, 𝑄𝑟 − 1).

[00350] O verificador potencial i também propaga, como parte de sua mensagem, sua assinatura digital adequada 𝐻 (𝐵𝑖𝑟 ). Sem lidar com um pagamento ou uma credencial, essa assinatura de i tem relação a sua chave pública efêmera 𝑝𝑘𝑖𝑟,1 : ou seja, o mesmo propaga 𝑠𝑖𝑔𝑝𝑘𝑟,1 (𝐻 (𝐵𝑖𝑟 )). 𝑖[00350] The potential verifier i also propagates, as part of its message, its appropriate digital signature 𝐻 (𝐵𝑖𝑟). Without dealing with a payment or a credential, this signature of i has to do with its ephemeral public key 𝑝𝑘𝑖𝑟, 1: that is, it propagates 𝑠𝑖𝑔𝑝𝑘𝑟, 1 (𝐻 (𝐵𝑖𝑟)). 𝑖

[00351] Dadas as convenções, em vez de propagar 𝐵𝑖𝑟 e 𝑠𝑖𝑔𝑝𝑘𝑟,1 (𝐻 (𝐵𝑖𝑟 )), o mesmo poderia ter propagado 𝑆𝐼𝐺𝑝𝑘 𝑟,1 (𝐻 (𝐵𝑖𝑟 )). No 𝑖 𝑖 entanto, na análise precisa-se ter acesso explícito a 𝑠𝑖𝑔𝑝𝑘𝑟,1 (𝐻(𝐵𝑖𝑟 )). 𝑖[00351] Given the conventions, instead of propagating 𝐵𝑖𝑟 and 𝑠𝑖𝑔𝑝𝑘𝑟, 1 (𝐻 (𝐵𝑖𝑟)), it could have propagated 𝑆𝐼𝐺𝑝𝑘 𝑟, 1 (𝐻 (𝐵𝑖𝑟)). However, in the analysis, it is necessary to have explicit access to 𝑠𝑖𝑔𝑝𝑘𝑟, 1 (𝐻 (𝐵𝑖𝑟)). 𝑖

[00352] ETAPAS 2. Nessa etapa, cada verificador i configura ℓ𝑟𝑖 como o líder potencial cuja credencial com hash é a menor, e 𝐵𝑖𝑟 como o bloco proposto por ℓ𝑟𝑖 . Visto que, para fins de eficácia, deseja-se concordar 10Nesse método, i gera um par de chaves secretas públicas (𝑝𝑘𝑖𝑟,𝑠 , 𝑠𝑘𝑖𝑟,𝑠 ) para cada par de etapas de ciclo (r,s) em – diga-se – {r’, ..., r’ + 106} x {1, ..., m+3} . Então, o mesmo ordena essas chaves públicas de uma maneira cônica, armazena a j-ésima chave pública na j-ésima folha de uma árvore de Merkle e computa o valor da raiz Ri, que o mesmo publica. Quando o mesmo deseja assinar uma mensagem com relação à chave 𝑝𝑘𝑖𝑟,𝑠 , i não só fornece uma assinatura real, mas também o caminho de autenticação para 𝑝𝑘𝑖𝑟,𝑠 com relação a Ri. Nota-se que esse caminho de autenticação também prova que 𝑝𝑘𝑖𝑟,𝑠 é armazenado na j-ésima folha. Formando-se essa ideia, o restante dos detalhes pode ser facilmente preenchido.[00352] STEPS 2. In this step, each verifier i configures ℓ𝑟𝑖 as the potential leader whose hashed credential is the smallest, and 𝐵𝑖𝑟 as the block proposed by ℓ𝑟𝑖. Since, for efficiency purposes, you want to agree 10In this method, i generates a pair of public secret keys (𝑝𝑘𝑖𝑟, 𝑠, 𝑠𝑘𝑖𝑟, 𝑠) for each pair of cycle steps (r, s) in - say - {r ', ..., r' + 106} x {1, ..., m + 3}. Then, it sorts these public keys in a conical way, stores the j-th public key on the j-th leaf of a Merkle tree and computes the value of the root Ri, which it publishes. When he wants to sign a message with respect to the key 𝑝𝑘𝑖𝑟, 𝑠, i not only provides an actual signature, but also the authentication path for 𝑝𝑘𝑖𝑟, 𝑠 with respect to Ri. Note that this authentication path also proves that 𝑝𝑘𝑖𝑟, 𝑠 is stored on the j-th sheet. By forming this idea, the rest of the details can be easily completed.

com H(Br), em vez de diretamente com Br, i propaga a mensagem que o mesmo teria propagado na primeira etapa de 𝐵𝐴∗ com valor inicial 𝑣′𝑖 = 𝐻 (𝐵𝑖𝑟 ). Ou seja, o mesmo propaga ν'i, após assinar de modo efêmero a mesma, evidentemente. (A saber, após assinar a mesma com relação à chave pública efêmera certa, que nesse caso é 𝑝𝑘𝑖𝑟,2 . Também evidentemente, i também transmite sua própria credencial.with H (Br), instead of directly with Br, i propagates the message that it would have propagated in the first stage of 𝐵𝐴 ∗ with initial value 𝑣′𝑖 = 𝐻 (𝐵𝑖𝑟). That is, the same propagates ν'i, after ephemerally signing the same, evidently. (Namely, after signing it with respect to the right ephemeral public key, which in this case is 𝑝𝑘𝑖𝑟, 2. Also of course, i also transmits its own credential.

[00353] Visto que a primeira etapa de 𝐵𝐴∗ consiste na primeira etapa do protocolo de consenso graduado GC, a Etapa 2 da Algorand’ corresponde à primeira etapa de GC.[00353] Since the first stage of 𝐵𝐴 ∗ consists of the first stage of the graduated GC consensus protocol, Stage 2 of Algorand 'corresponds to the first stage of GC.

[00354] ETAPAS 3. Nessa etapa, cada verificador i ∈ SVr,2 executa a segunda etapa de 𝐵𝐴∗ . Ou seja, o mesmo envia a mesma mensagem que teria enviado na segunda etapa de GC. Novamente, a mensagem de i é assinada de modo efêmero e acompanhada por credencial de i. (A partir de agora, será omitido dizer que um verificador assina de modo efêmero sua mensagem e também propaga sua credencial.)[00354] STEPS 3. In this step, each verifier i ∈ SVr, 2 performs the second step of 𝐵𝐴 ∗. That is, it sends the same message that it would have sent in the second stage of KM. Again, i's message is ephemerally signed and accompanied by i's credential. (From now on, it will be omitted to say that a verifier ephemerally signs your message and also propagates your credential.)

[00355] ETAPA 4. Nessa etapa, cada verificador i ∈ SVr,4 computa a saída de GC, (vi,gi), e assina de modo efêmero e envia a mesma mensagem que teria enviado na terceira etapa de 𝐵𝐴∗ , isto é, na primeira etapa de 𝐵𝐵𝐴∗ , com bit inicial 0 se gi = 2, e 1, de outra forma.[00355] STEP 4. In this step, each verifier i ∈ SVr, 4 computes the GC output, (vi, gi), and ephemerally signs and sends the same message that it would have sent in the third step of 𝐵𝐴 ∗, that is , in the first step of 𝐵𝐵𝐴 ∗, with initial bit 0 if gi = 2, and 1, otherwise.

[00356] ETAPA s = 5, . . . , m + 2. Tal etapa, se for alcançada, corresponde à etapa s - 1 de 𝐵𝐴∗ e, desse modo, à etapa s - 3 de 𝐵𝐵𝐴∗ .[00356] STEP s = 5,. . . , m + 2. Such a step, if reached, corresponds to step s - 1 of 𝐵𝐴 ∗ and thus step s - 3 of 𝐵𝐵𝐴 ∗.

[00357] Visto que o modelo de propagação é suficientemente assíncrono, deve-se considerar a possibilidade de que, no meio de tal etapa s, um verificador i ∈ SVr,s seja alcançado pelas informações que provam para o mesmo que o bloco Br já foi escolhido. Nesse caso, i para sua própria execução de ciclo r da Algorand', e começa a executar suas instruções de ciclo-(r + 1).[00357] Since the propagation model is sufficiently asynchronous, one should consider the possibility that, in the middle of such step s, a verifier i ∈ SVr, s will be reached by the information that prove for the same as the Br block already was chose. In this case, i stops its own Algorand 'cycle execution r, and starts executing its cycle instructions- (r + 1).

[00358] Consequentemente, as instruções de um verificador i ∈ SVr,s, além das instruções correspondentes à Etapa s - 3 de 𝐵𝐵𝐴∗ , incluem verificar a possibilidade da execução de 𝐵𝐵𝐴∗ ter sido parada em uma Etapa s’ anterior. Visto que 𝐵𝐵𝐴∗ pode apenas parar em uma Etapa Moeda-Fixa- em-0 ou em uma etapa Moeda-Fixa-em-1, as instruções distinguem a possibilidade de[00358] Consequently, the instructions of a verifier i ∈ SVr, s, in addition to the instructions corresponding to Step s - 3 of 𝐵𝐵𝐴 ∗, include verifying the possibility that the execution of 𝐵𝐵𝐴 ∗ may have been stopped in a previous step s'. Since 𝐵𝐵𝐴 ∗ can only stop at a Currency-Fixed-at-0 or a Currency-Fixed-at-1 step, the instructions distinguish the possibility of

[00359] A (Condição Final 0): s' - 2 ≡ 0 mod 3, ou[00359] A (Final Condition 0): s' - 2 ≡ 0 mod 3, or

[00360] B (Condição Final 1): s' - 2 ≡ 1 mod 3.[00360] B (Final Condition 1): s' - 2 ≡ 1 mod 3.

[00361] De fato, no caso A, o bloco Br não está vazio, e, desse modo, instruções adicionais são necessárias para garantir que i reconstrua adequadamente Br, em conjunto com seu certificado adequado CERTr. No caso B, o bloco Br está vazio e, desse modo, i é instruído a configurar 𝐵𝑟 = 𝐵𝜀𝑟 = (𝑟, ∅, 𝑄𝑟−1 , 𝐻 (𝐵𝑟−1 )) e computar CERTr.[00361] In fact, in case A, the Br block is not empty, so additional instructions are needed to ensure that i properly rebuild Br, together with its appropriate CERTr certificate. In case B, the Br block is empty and, thus, i is instructed to configure 𝐵𝑟 = 𝐵𝜀𝑟 = (𝑟, ∅, 𝑄𝑟 − 1, 𝐻 (𝐵𝑟 − 1)) and compute CERTr.

[00362] Se, durante sua execução de etapa s, i não observar qualquer evidência de que o bloco Br já foi gerado, então, o mesmo envia a mesma mensagem que teria enviado na etapa s - 3 de 𝐵𝐵𝐴∗ .[00362] If, during the execution of step s, i does not observe any evidence that block Br has already been generated, then it sends the same message that it would have sent in step s - 3 of 𝐵𝐵𝐴 ∗.

[00363] ETAPA m + 3. Se, durante etapa m + 3, i ∈ SVr,m+3 observar que o bloco Br já foi gerado em uma etapa s’ anterior, então, o mesmo prossegue conforme explicado acima.[00363] STEP m + 3. If, during step m + 3, i ∈ SVr, m + 3 observes that the Br block has already been generated in a previous step s', then it continues as explained above.

[00364] De outro modo, em vez de enviar a mesma mensagem que o mesmo teria enviado na etapa m de 𝐵𝐵𝐴∗ , i é instruído, com base nas informações em sua posse, a computar Br e seu certificado correspondente CERTr.[00364] Otherwise, instead of sending the same message that he would have sent in step m of 𝐵𝐵𝐴 ∗, i is instructed, based on the information in his possession, to compute Br and its corresponding CERTr certificate.

[00365] Relembra-se, de fato, que se limita de modo superior em m + 3 o número total de etapas de um ciclo.[00365] It is recalled, in fact, that the total number of steps in a cycle is limited to m + 3.

5.4 O Protocolo Real5.4 The Royal Protocol

[00366] Relembra-se que, em cada etapa s de um ciclo r, um verificador i ∈ SVr,s usa seu par de chaves pública-secreta de longo prazo para produzir sua credencial, 𝜎𝑖𝑟,𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 ), bem como SIGi (Qr-1) no caso s = 1. O verificador i usa sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 para assinar sua mensagem (r, s) 𝑚𝑖𝑟,𝑠 . Por simplicidade, quando r e s forem claros,[00366] Remember that at each stage s of a cycle r, a verifier i ∈ SVr, s uses its long-term public-secret key pair to produce its credential, 𝜎𝑖𝑟, 𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟 − 1), as well as GIS (Qr-1) in the case s = 1. Verifier i uses his secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 to sign his message (r, s) 𝑚𝑖𝑟, 𝑠. For simplicity, when r and s are clear,

escreve-se 𝑒𝑠𝑖𝑔𝑖 (𝑥) em vez de 𝑠𝑖𝑔𝑝𝑘 𝑟,𝑠 (𝑥) para denotar a assinatura efêmera 𝑖 adequada de i de um valor x na etapa s do ciclo r, e escreve-se 𝐸𝑆𝐼𝐺𝑖 (𝑥) em vez de 𝑆𝐼𝐺𝑝𝑘𝑟,𝑠 (𝑥) para denotar (𝑖, 𝑥, 𝑒𝑠𝑖𝑔𝑖 (𝑥)). 𝑖 Etapa 1: Proposta De Blocowrite 𝑒𝑠𝑖𝑔𝑖 (𝑥) instead of 𝑠𝑖𝑔𝑝𝑘 𝑟, 𝑠 (𝑥) to denote the appropriate ephemeral signature i of i of a value x in step s of cycle r, and write 𝐸𝑆𝐼𝐺𝑖 (𝑥) instead of 𝑆𝐼𝐺𝑝𝑘𝑟, 𝑠 (𝑥) to denote (𝑖, 𝑥, 𝑒𝑠𝑖𝑔𝑖 (𝑥)). 𝑖 Step 1: Block Proposal

[00367] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 1 do ciclo r assim que conhece Br-1.[00367] Instructions for each user i ∈ PKr-k: User i starts his own Step 1 of cycle r as soon as he meets Br-1.

[00368] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,1.[00368] ● User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, 1.

[00369] ● Se i ∉ SVr,1, então, i para sua própria execução de Etapa 1 imediatamente.[00369] ● If i ∉ SVr, 1, then i for its own execution of Step 1 immediately.

[00370] ● Se i ∈ SVr,1, isto é, se i é um líder potencial, então, o mesmo coleta os pagamentos de ciclo-r que que foram propagados para o mesmo até o momento e computa um conjunto de pagamentos máximo 𝑃𝐴𝑌𝑖𝑟 a partir dos mesmos.[00370] ● If i ∈ SVr, 1, that is, if i is a potential leader, then it collects the r-cycle payments that have been propagated to it so far and computes a maximum payment set 𝑃𝐴𝑌𝑖𝑟 from them.

[00371] Em seguida, o mesmo computa seu “bloco candidato” 𝐵𝑖𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟 , 𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝐻 (𝐵𝑟−1 )). Finalmente, o mesmo computa a mensagem 𝑚𝑖𝑟,1 = (𝐵𝑖𝑟 , 𝑒𝑠𝑖𝑔𝑖 (𝐻(𝐵𝑖𝑟 )), 𝜎𝑖𝑟,1 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,1 e, então, propaga 𝑚𝑖𝑟,1 .[00371] Then, it computes its “candidate block” 𝐵𝑖𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟, 𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝐻 (𝐵𝑟 − 1)). Finally, it computes the message 𝑚𝑖𝑟, 1 = (𝐵𝑖𝑟, 𝑒𝑠𝑖𝑔𝑖 (𝐻 (𝐵𝑖𝑟)), 𝜎𝑖𝑟, 1), destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 1 and then propagates 𝑚𝑖𝑟, 1.

[00372] Observação. Na prática, para encurtar a execução global de Etapa 1, é importante que as mensagens (r,1) sejam seletivamente propagadas. Ou seja, para cada usuário i no sistema, para a primeira mensagem (r,1) que o mesmo recebe e verifica com sucesso,11 participante i propaga a mesa como normal. Para todas as outras mensagens (r,1) que o participante i recebe e verifica com sucesso, o mesmo propaga essas apenas se o valor hash da credencial dessas contiver o menor dentro os valores hash das credenciais contidas em todas mensagens (r,1) que o mesmo recebeu e 11Ou seja, todas as assinaturas são corretas e tanto o bloco como seu hash são válidos – embora i não verifique se o conjunto de pagamentos incluídos é ou não máximo para seu proponente.[00372] Observation. In practice, to shorten the overall execution of Step 1, it is important that messages (r, 1) are selectively propagated. That is, for each user i in the system, for the first message (r, 1) that the user successfully receives and verifies, 11 participant i propagates the table as normal. For all other messages (r, 1) that participant i successfully receives and verifies, it propagates these only if the hash value of those credentials contains the smallest within the hash values of the credentials contained in all messages (r, 1) that he has received and 11 That is, all signatures are correct and both the block and its hash are valid - although i do not check whether the set of payments included is maximum or not for its bidder.

verificou com sucesso até o momento. Adicionalmente, como sugerido por Georgios Vlachos, é útil que cada líder potencial i também propague sua credencial 𝜎𝑖𝑟,1 separadamente: aquelas mensagens pequenas percorrem mais rápido que os blocos, garantem a propagação imediata das 𝑚𝑖𝑟,1 em que as credenciais contidas tiverem valores hash pequenos, enquanto faz com que aquelas com valores hash grandes desapareçam rapidamente. Etapa 2: A Primeira Etapa Do Protocolo De Consenso Graduado GChas successfully verified so far. Additionally, as suggested by Georgios Vlachos, it is useful that each potential leader i also propagate his sua, 1 credential separately: those small messages travel faster than the blocks, guarantee the immediate propagation of 𝑚𝑖𝑟, 1 in which the contained credentials have hash values while making those with large hash values disappear quickly. Step 2: The First Step of the GC Graduate Consensus Protocol

[00373] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 2 do ciclo r assim que conhece Br-1.[00373] Instructions for each user i ∈ PKr-k: User i starts his own Step 2 of cycle r as soon as he meets Br-1.

[00374] • O usuário i computa Qr-1 do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr’2.[00374] • User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr’2.

[00375] ● Se i ∉ SVr,2, então, i para sua própria execução de Etapa 2 imediatamente.[00375] ● If i ∉ SVr, 2, then i for its own execution of Step 2 immediately.

[00376] ● Se i ∈ SVr'2, então, após esperar uma quantidade de tempo 𝑡2 ≜ λ + Λ, i atua conforme a seguir.[00376] ● If i ∈ SVr'2, then, after waiting for an amount of time 𝑡2 ≜ λ + Λ, i acts as follows.

[00377] 1. O mesmo encontra o usuário ℓ de modo que 𝐻(𝜎ℓ𝑟,1 ) ≤ 𝐻(𝜎j𝑟,1 ) para todas as credenciais 𝜎j𝑟,1 que fazem parte das mensagens verificadas com sucesso (r,1) que o mesmo recebeu até o momento.12[00377] 1. It finds the user ℓ so that 𝐻 (𝜎ℓ𝑟, 1) ≤ 𝐻 (𝜎j𝑟, 1) for all credentials 𝜎j𝑟, 1 that are part of the messages successfully verified (r, 1) as the same received so far.12

[00378] 2. Se o mesmo tiver recebido de ℓ uma mensagem válida 𝑚ℓ𝑟,1 = (𝐵ℓ𝑟 , 𝑒𝑠𝑖𝑔ℓ (𝐻 (𝐵ℓ𝑟 )), 𝜎ℓ𝑟,1 ),13 então, i configura 𝑣′𝑖 ≜ 𝐻 (𝐵ℓ𝑟 ); de outro modo, i configura 𝑣′𝑖 ≜⊥.[00378] 2. If he received from ℓ a valid message 𝑚ℓ𝑟, 1 = (𝐵ℓ𝑟, 𝑒𝑠𝑖𝑔ℓ (𝐻 (𝐵ℓ𝑟)), 𝜎ℓ𝑟, 1), 13 then, i configures 𝑣′𝑖 ≜ 𝐻 (𝐵ℓ𝑟); otherwise, i configures 𝑣′𝑖 ≜⊥.

[00379] 3. i computa a mensagem 𝑚𝑖𝑟,2 ≜ Essencialmente, o usuário i decide privadamente que o líder do ciclo r é o usuário ℓ. 12 Novamente, as assinaturas ℓ de participanete e os hashes são todos verificados com sucesso, e 13 𝑃𝐴𝑌ℓ𝑟 em 𝐵ℓ𝑟 é um conjunto de pagamentos válido para o ciclo r – embora i não verifique se 𝑃𝐴𝑌ℓ𝑟 é ou não máximo para ℓ.[00379] 3. i computes message 𝑚𝑖𝑟, 2 ≜ Essentially, user i privately decides that the leader of cycle r is user ℓ. 12 Again, participant ℓ signatures and hashes are all successfully verified, and 13 𝑃𝐴𝑌ℓ𝑟 in 𝐵ℓ𝑟 is a valid set of payments for cycle r - although i does not check whether 𝑃𝐴𝑌ℓ𝑟 is maximum for ℓ or not.

(𝐸𝑆𝐼𝐺𝑖 (𝑣′𝑖 ), 𝜎𝑖𝑟,2 ),14 destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,2 e, então, propaga 𝑚𝑖𝑟,2 . Etapa 3: A Segunda Etapa De GC(𝐸𝑆𝐼𝐺𝑖 (𝑣′𝑖), 𝜎𝑖𝑟, 2), 14 destroys your ephemeral secret key 𝑠𝑘𝑖𝑟, 2 and then propagates 𝑚𝑖𝑟, 2. Step 3: The Second GC Step

[00380] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 3 do ciclo r assim que conhece Br-1.[00380] Instructions for each user i ∈ PKr-k: User i starts his own Step 3 of cycle r as soon as he meets Br-1.

[00381] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,3.[00381] ● User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, 3.

[00382] ● Se i ∉ SVr,3, então, i para sua própria execução de Etapa 3 imediatamente.[00382] ● If i ∉ SVr, 3, then i stops its own execution of Step 3 immediately.

[00383] ● Se i ∈ SVr,3, então, após esperar uma quantidade de tempo 𝑡3 ≜ 𝑡2 + 2𝜆 = 3𝜆 + Λ, i atua conforme a seguir.[00383] ● If i ∈ SVr, 3, then, after waiting for an amount of time 𝑡3 ≜ 𝑡2 + 2𝜆 = 3𝜆 + Λ, i acts as follows.

[00384] 1. Se existir um valor v' ≠ ⊥ de modo que, dentre todas as mensagens válidas 𝑚𝑗𝑟,2 que o mesmo recebeu, mais que 2/3 das mesmas estejam na forma (𝐸𝑆𝐼𝐺𝑗 (𝑣′), 𝜎𝑗𝑟,2 ), sem qualquer contradição,15 então, o mesmo computa a mensagem 𝑚𝑖𝑟,3 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣′), 𝜎𝑖𝑟,3 ). De outra forma, o mesmo computa 𝑚𝑖𝑟,3 ≜ (𝐸𝑆𝐼𝐺𝑖 (⊥), 𝜎𝑖𝑟,3 ).[00384] 1. If there is a value v '≠ ⊥ so that, of all the valid messages 𝑚𝑗𝑟, 2 that he received, more than 2/3 of them are in the form (𝐸𝑆𝐼𝐺𝑗 (𝑣 ′), 𝜎𝑗𝑟, 2 ), without any contradiction, 15 then, it computes the message 𝑚𝑖𝑟, 3 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣 ′), 𝜎𝑖𝑟, 3). Otherwise, it computes 𝑚𝑖𝑟, 3 ≜ (𝐸𝑆𝐼𝐺𝑖 (⊥), 𝜎𝑖𝑟, 3).

[00385] 2. i destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,3 e, então, propaga 𝑚𝑖𝑟,3 . Etapa 4: Saída De GC E A Primeira Etapa De 𝑩𝑩𝑨∗[00385] 2. i destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 3 and then propagates 𝑚𝑖𝑟, 3. Step 4: Exit From GC And The First Step From 𝑩𝑩𝑨 ∗

[00386] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 4 do ciclo r assim que conhece Br-1.[00386] Instructions for each user i ∈ PKr-k: User i starts his own Step 4 of cycle r as soon as he meets Br-1.

[00387] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,4.[00387] ● User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, 4.

𝑟,2 14 A mensagem 𝑚𝑖 sinaliza que o participante i considera v’1 como o hash do próximo bloco ou considera o próximo bloco como vazio. 15 Ou seja, o mesmo não recebeu duas mensagens válidas contendo 𝐸𝑆𝐼𝐺 (𝑣′) e um 𝐸𝑆𝐼𝐺 (𝑣′′) 𝑗 𝑗 diferente, respectivamente, a partir de um participante j. Aqui e a seguir, excetos nas Condições Finais definidas posteriormente, sempre que um participante honesto desejar mensagens de uma determinada forma, as mensagens que contradizem umas às outras nunca são contadas ou consideradas válidas.𝑟, 2 14 The message 𝑚𝑖 signals that the participant i considers v'1 as the hash of the next block or considers the next block as empty. That is, he did not receive two valid messages containing 𝐸𝑆𝐼𝐺 (𝑣 ′) and one different 𝐸𝑆𝐼𝐺 (𝑣 ′ ′) 𝑗 𝑗, respectively, from participant j. Here and below, except in the Final Conditions defined later, whenever an honest participant wants messages in a certain way, messages that contradict each other are never counted or considered valid.

[00388] ● Se i ∉ SVr,4, então, i para sua própria execução de Etapa 4 imediatamente.[00388] ● If i ∉ SVr, 4, then i stops its own execution of Step 4 immediately.

[00389] ● Se i ∈ SVr,4, então, após esperar uma quantidade de tempo 𝑡4 ≜ 𝑡3 + 2𝜆 = 5𝜆 + Λ, i atua conforme a seguir.[00389] ● If i ∈ SVr, 4, then, after waiting for an amount of time 𝑡4 ≜ 𝑡3 + 2𝜆 = 5𝜆 + Λ, i acts as follows.

[00390] 1. O mesmo computa vi e gi, uma saída de GC, conforme a seguir.[00390] 1. The same computes vi and gi, a GC output, as follows.

[00391] (a) Se existe um valor v' ≠ ⊥ de modo que, dentre todas as mensagens válidas 𝑚𝑗𝑟,3 que o mesmo recebeu, mais que 2/3 das mesmas estejam na forma (𝐸𝑆𝐼𝐺𝑗 (𝑣′), 𝜎𝑗𝑟,3 ), então, o mesmo configura 𝑣𝑖 ≜ 𝑣′ e 𝑔𝑖 ≜ 2.[00391] (a) If there is a value v '≠ ⊥ so that, of all the valid messages 𝑚𝑗𝑟, 3 that it received, more than 2/3 of them are in the form (𝐸𝑆𝐼𝐺𝑗 (𝑣 ′), 𝜎𝑗𝑟, 3), then, it configures 𝑣𝑖 ≜ 𝑣 ′ and 𝑔𝑖 ≜ 2.

[00392] (b) De outra forma, se existe um valor v' ≠ ⊥ de modo que, dentre todas as mensagens válidas 𝑚𝑗𝑟,3 que o mesmo recebeu, mais que 1/3 das mesmas estejam na forma (𝐸𝑆𝐼𝐺𝑗 (𝑣′), 𝜎𝑗𝑟,3 ), então, o mesmo configura 𝑣𝑖 ≜ 𝑣′ e 𝑔𝑖 ≜ 1.16[00392] (b) Otherwise, if there is a value v '≠ ⊥ so that, of all the valid messages 𝑚𝑗𝑟, 3 that he received, more than 1/3 of them are in the form (𝐸𝑆𝐼𝐺𝑗 (𝑣 ′ ), 𝜎𝑗𝑟, 3), then it configures 𝑣𝑖 ≜ 𝑣 ′ and 𝑔𝑖 ≜ 1.16

[00393] (c) De outro modo, o mesmo configura 𝑣𝑖 ≜ 𝐻 (𝐵𝜀𝑅 ) e 𝑔𝑖 ≜ 0.[00393] (c) Otherwise, it configures 𝑣𝑖 ≜ 𝐻 (𝐵𝜀𝑅) and 𝑔𝑖 ≜ 0.

[00394] 2. O mesmo computa bi, a entrada de 𝐵𝐵𝐴∗ , conforme o seguinte:[00394] 2. The same computes bi, the entry of 𝐵𝐵𝐴 ∗, as follows:

[00395] 𝑏𝑖 ≜ 0 se 𝑔𝑖 = 2, e 𝑏𝑖 ≜ 1 de outra forma.[00395] 𝑏𝑖 ≜ 0 if 𝑔𝑖 = 2, and 𝑏𝑖 ≜ 1 otherwise.

[00396] 3. O mesmo computa a mensagem 𝑚𝑖𝑟,4 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,4 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,4 e, então, propaga 𝑚𝑖𝑟,4 .[00396] 3. It computes the message 𝑚𝑖𝑟, 4 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 4), destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 4 and then propagates 𝑚𝑖𝑟, 4.

[00397] Etapa s, 5 ≤ s ≤ m + 2, s - 2 ≡ 0 mod 3: Uma Etapa Moeda-Fixa-Em-0 de 𝐵𝐵𝐴∗[00397] Step s, 5 ≤ s ≤ m + 2, s - 2 mod 0 mod 3: One Coin-Fixed-In-0 Step of 0 ∗

[00398] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa s do ciclo r assim que conhece Br-1.[00398] Instructions for each user i ∈ PKr-k: User i starts his own Step s of cycle r as soon as he meets Br-1.

16 Pode-se provar que o v’ no caso (b), se existir, deve ser exclusivo. 𝑟,2 𝑚𝑖 sinaliza que o participante i considera v’1 como o hash do próximo bloco ou considera o próximo bloco como vazio.16 It can be proved that the v 'in case (b), if any, must be exclusive. 𝑟, 2 𝑚𝑖 signals that participant i considers v’1 as the hash of the next block or considers the next block as empty.

[00399] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade de i ∈ SVr,s.[00399] ● User i computes Qr-1 from the third component of Br-1 and checks the possibility of i ∈ SVr, s.

[00400] ● Se i ∉ SVr,s, então, i para sua própria execução de Etapa s imediatamente.[00400] ● If i ∉ SVr, s, then i for its own execution of Step s immediately.

[00401] ● Se i ∈ SVr,s, então, o mesmo atua conforme a seguir.[00401] ● If i ∈ SVr, s, then it acts as follows.

[00402] - O mesmo espera até que uma quantidade de tempo 𝑡𝑠 ≜ 𝑡𝑠−1 + 2𝜆 = (2𝑠 − 3)𝜆 + Λ tenha decorrido.[00402] - The same waits until an amount of time 𝑡𝑠 ≜ 𝑡𝑠 − 1 + 2𝜆 = (2𝑠 - 3) 𝜆 + Λ has elapsed.

[00403] - Condição Final 0: Se, durante tal espera e a qualquer ponto no tempo, existir uma linha v ≠ ⊥ e uma etapa s' de modo que[00403] - Final Condition 0: If, during such a wait and at any point in time, there is a line v ≠ ⊥ and a step s' so that

[00404] (a) 5 ≤ s' ≤ s, s' - 2 ≡ 0 mod 3 - isto é, Etapa s' seja uma etapa de Moeda-Fixa-Em-0, 2𝑛[00404] (a) 5 ≤ s' ≤ s, s' - 2 ≡ 0 mod 3 - that is, Step s' is a Fixed-Currency-In-0, 2𝑛 step

[00405] (b) i recebeu pelo menos 𝑡𝐻 = + 1 mensagens 3 ′ −1 ′ −1 válidas 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣 ), 𝜎𝑗𝑟,𝑠 ),17 e[00405] (b) i received at least 𝑡𝐻 = + 1 valid 3 ′ −1 ′ −1 messages 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣), 𝜎𝑗𝑟, 𝑠), 17 and

[00406] (c) i recebeu uma mensagem válida 𝑚𝑗𝑟,1 = (𝐵𝑗𝑟 , 𝑒𝑠𝑖𝑔𝑗 (𝐻(𝐵𝑗𝑟 )) , 𝜎𝑗𝑟,1 ) com 𝑣 = 𝐻(𝐵𝑗𝑟 ), então, i para sua própria execução de Etapa s (e, de fato, do ciclo r) imediatamente sem propagar qualquer coisa; configura 𝐵𝑟 = 𝐵𝑗𝑟 ; e configura seu próprio CERTr como o conjunto de ′ −1 mensagens 𝑚𝑗𝑟,𝑠 da subetapa (b).18[00406] (c) i received a valid message 𝑚𝑗𝑟, 1 = (𝐵𝑗𝑟, 𝑒𝑠𝑖𝑔𝑗 (𝐻 (𝐵𝑗𝑟)), 𝜎𝑗𝑟, 1) with 𝑣 = 𝐻 (𝐵𝑗𝑟), then i for its own execution of Step s (e , in fact, cycle r) immediately without propagating anything; sets 𝐵𝑟 = 𝐵𝑗𝑟; and configure your own CERTr as the set of ′ −1 messages 𝑚𝑗𝑟, 𝑠 of substep (b) .18

[00407] - Condição Final 1: Se, durante tal espera e a qualquer ponto no tempo, existir uma etapa s' de modo que[00407] - Final Condition 1: If, during such a wait and at any point in time, there is a step s' so that

[00408] (a’) 6 ≤ s' ≤ s, s' - 2 ≡ 1 mod 3 - isto é, Etapa s' é etapa 17 Tal mensagem do participante j é contada mesmo se o participante i também tiver recebido uma mensagem de j que assina para 1. Coisas semelhantes para Condição Final 1. Como mostrado na análise, isso é realizado para garantir que todos os usuários honestos conheçam B r no tempo λ uns dos outros. 18 O usuário i agora conhece Br e seu próprio ciclo r termina. O mesmo ainda ajuda a propagar mensagens como um usuário genérico, mas não inicia qualquer propagação como um verificador (r, s). Em particular, o mesmo ajudou a propagar todas as mensagens nesse CERTr, que é suficiente par nosso protocolo. Observa-se que o mesmo também deve configurar 𝑏𝑖 ≜ 0 para o protocolo de BA binário, mas bi não é necessário nesse caso de qualquer forma. Coisas semelhantes para todas as instruções futuras.[00408] (a ') 6 ≤ s' ≤ s, s '- 2 ≡ 1 mod 3 - that is, Step s' is step 17 Such message from participant j is counted even if participant i has also received a message from j that signs for 1. Things similar to Final Condition 1. As shown in the review, this is done to ensure that all honest users know B r in time λ from each other. 18 User i now knows Br and his own cycle r ends. It still helps to propagate messages as a generic user, but does not initiate any propagation as a verifier (r, s). In particular, it helped to propagate all messages in that CERTr, which is sufficient for our protocol. Note that it must also set deve ≜ 0 for the binary BA protocol, but bi is not necessary in this case anyway. Similar things for all future instructions.

de Moeda-Fixa-Em-1, eFixed-Currency-In-1, and

[00409] (b’) i recebeu pelo menos tH mensagens válidas ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠 ),19[00409] (b ’) i received at least tH valid messages ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠), 19

[00410] então, i para sua própria execução de Etapa s (e, de fato, do ciclo r) imediatamente sem propagar qualquer coisa; configura 𝐵𝑟 = ′ −1 𝐵𝜀𝑟 e configura seu próprio CERTr como o conjunto de mensagens 𝑚𝑗𝑟,𝑠 de subetapa (b’).[00410] then, i for its own execution of Step s (and, in fact, of cycle r) immediately without propagating anything; configures 𝐵𝑟 = ′ −1 𝐵𝜀𝑟 and configures its own CERTr as the set of messages 𝑚𝑗𝑟, 𝑠 substep (b ').

[00411] - De outra forma, no fim da espera, o usuário i realiza o seguinte.[00411] - Otherwise, at the end of the wait, user i performs the following.

[00412] O mesmo configura νi como o voto da maior parte dos vj's nos segundos componentes de todas as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu.[00412] It configures νi as the vote of most vj's in the second components of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received.

[00413] O mesmo computa bi conforme o seguinte.[00413] The same computes bi as the following.

[00414] Se mais que 2/3 de todas 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 0.[00414] If more than 2/3 of all 𝑚𝑗𝑟, 𝑠 − 1 valid that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the same configures 𝑏𝑖 ≜ 0 .

[00415] De outro modo, se mais que 2/3 de todos as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 1.[00415] Otherwise, if more than 2/3 of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the even sets 𝑏𝑖 ≜ 1.

[00416] De outro modo, o mesmo configura 𝑏𝑖 ≜ 0.[00416] Otherwise, it configures 𝑏𝑖 ≜ 0.

[00417] O mesmo computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 .[00417] It computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagates 𝑚𝑖𝑟, 𝑠.

[00418] Etapa s, 6 ≤ s ≤ m + 2, s — 2 ≡ 1 mod 3: Uma Etapa Moeda-Fixa-Em-1 de 𝐵𝐵𝐴∗[00418] Step s, 6 ≤ s ≤ m + 2, s - 2 ≡ 1 mod 3: One Coin-Fixed-In-1 Step of 𝐵𝐵𝐴 ∗

[00419] Instruções para cada usuário i ∈ PKr-k: O usuário i 19 Nesse caso, não importa quais são os vj’s.[00419] Instructions for each user i ∈ PKr-k: User i 19 In this case, it doesn't matter which vj's are.

começa sua própria Etapa s do ciclo r assim que conhece Br-1.begins its own Stage s of cycle r as soon as it meets Br-1.

[00420] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,s.[00420] ● User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, s.

[00421] ● Se i ∉ SVr,s, então, i para sua própria execução de Etapa s imediatamente.[00421] ● If i ∉ SVr, s, then i for its own execution of Step s immediately.

[00422] ● Se i ∈ SVr,s então, o mesmo realiza o seguinte.[00422] ● If i ∈ SVr, s then it does the following.

[00423] - O mesmo espera até que uma quantidade de tempo 𝑡𝑠 ≜ (2𝑠 − 3)𝜆 + Λ tenha decorrido.[00423] - The same waits until an amount of time 𝑡𝑠 ≜ (2𝑠 - 3) 𝜆 + Λ has elapsed.

[00424] - Condição Final 0: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00424] - Final Condition 0: The same instructions as for the Fixed-Currency-In-0 steps.

[00425] - Condição Final 1: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00425] - Final Condition 1: The same instructions as for the Fixed-Currency-In-0 steps.

[00426] - De outra forma, no fim da espera, o usuário i realiza o seguinte.[00426] - Otherwise, at the end of the wait, user i performs the following.

[00427] O mesmo configura νi como o voto da maior parte dos vj's nos segundos componentes de todas as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu.[00427] The same configures νi as the vote of most vj's in the second components of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received.

[00428] O mesmo computa bi conforme o seguinte.[00428] The same computes bi as the following.

[00429] Se mais que 2/3 de todas as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 0.[00429] If more than 2/3 of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the same configures 𝑏𝑖 ≜ 0.

[00430] De outro modo, se mais que 2/3 de todos as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 1.[00430] Otherwise, if more than 2/3 of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the even sets 𝑏𝑖 ≜ 1.

[00431] De outro modo, o mesmo configura 𝑏𝑖 ≜ 1.[00431] Otherwise, it configures 𝑏𝑖 ≜ 1.

[00432] O mesmo computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 .[00432] It computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagates 𝑚𝑖𝑟, 𝑠.

Etapa s, 7 ≤ s ≤ m + 2, s - 2 ≡ 2 mod 3: Uma Etapa de Moeda- Genuinamente-Lançada de 𝐵𝐵𝐴∗Step s, 7 ≤ s ≤ m + 2, s - 2 mod 2 mod 3: One Currency Step - Genuinely-Launched from 𝐵𝐵𝐴 ∗

[00433] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa s do ciclo r assim que conhece Br-1.[00433] Instructions for each user i ∈ PKr-k: User i starts his own Step s of cycle r as soon as he meets Br-1.

[00434] ● O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,s.[00434] ● User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, s.

[00435] ● Se i ∉ SVr,s, então, i para sua própria execução de Etapa s imediatamente.[00435] ● If i ∉ SVr, s, then i for its own execution of Step s immediately.

[00436] ● Se i ∈ SVr,s então, o mesmo realiza o seguinte.[00436] ● If i ∈ SVr, s then it does the following.

[00437] - O mesmo espera até que uma quantidade de tempo 𝑡𝑠 ≜ (2𝑠 − 3)𝜆 + Λ tenha decorrido.[00437] - The same waits until an amount of time 𝑡𝑠 ≜ (2𝑠 - 3) 𝜆 + Λ has elapsed.

[00438] - Condição Final 0: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00438] - Final Condition 0: The same instructions as for the Fixed Currency-In-0 steps.

[00439] - Condição Final 1: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00439] - Final Condition 1: The same instructions as for the Fixed-Currency-In-0 steps.

[00440] - De outra forma, no fim da espera, o usuário i realiza o seguinte.[00440] - Otherwise, at the end of the wait, user i performs the following.

[00441] O mesmo configura νi como o voto da maior parte dos vj's nos segundos componentes de todas as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu.[00441] The same configures νi as the vote of most vj's in the second components of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received.

[00442] O mesmo computa bi conforme o seguinte.[00442] The same computes bi as the following.

[00443] Se mais que 2/3 de todos as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 0.[00443] If more than 2/3 of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the same configures 𝑏𝑖 ≜ 0.

[00444] De outro modo, se mais que 2/3 de todas as 𝑚𝑗𝑟,𝑠−1 válidas que o mesmo recebeu forem da forma (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo configura 𝑏𝑖 ≜ 1.[00444] Otherwise, if more than 2/3 of all valid 𝑚𝑗𝑟, 𝑠 − 1 that he received are of the form (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the even sets 𝑏𝑖 ≜ 1.

[00445] De outro modo, seja 𝑆𝑉𝑖𝑟,𝑠−1 o conjunto de verificadores[00445] Otherwise, let 𝑆𝑉𝑖𝑟, 𝑠 − 1 be the set of verifiers

(r, s - 1) a partir do qual o mesmo recebeu uma mensagem válida 𝑚𝑗𝑟,𝑠−1 . O mesmo configura 𝑏𝑖 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟,𝑠−1 𝐻(𝜎𝑗𝑟,𝑠−1 )). 𝑖(r, s - 1) from which he received a valid message 𝑚𝑗𝑟, 𝑠 − 1. It configures 𝑏𝑖 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟, 𝑠 − 1 𝐻 (𝜎𝑗𝑟, 𝑠 − 1)). 𝑖

[00446] O mesmo computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 . Etapa m + 3: A Última Etapa de 𝐵𝐵𝐴∗ 20[00446] It computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagates 𝑚𝑖𝑟, 𝑠. Stage m + 3: The Last Stage of 𝐵𝐵𝐴 ∗ 20

[00447] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa m + 3 do ciclo r assim que conhece Br-1.[00447] Instructions for each user i ∈ PKr-k: User i starts his own Stage m + 3 of cycle r as soon as he meets Br-1.

[00448] • O usuário i computa Qr-1 a partir do terceiro componente de Br-1 e verifica a possibilidade ou não de i ∈ SVr,m+3.[00448] • User i computes Qr-1 from the third component of Br-1 and checks whether or not i ∈ SVr, m + 3.

[00449] ● Se i ∉ SVr,m+3, então, i para sua própria execução de Etapa m + 3 imediatamente.[00449] ● If i ∉ SVr, m + 3, then i stops its own execution of Step m + 3 immediately.

[00450] ● Se i ∈ SVr,m+3, então, o mesmo realiza o seguinte.[00450] ● If i ∈ SVr, m + 3, then it does the following.

[00451] - O mesmo espera até que uma quantidade de tempo 𝑡𝑚+3 ≜ 𝑡𝑚+2 + 2𝜆 = (2𝑚 + 3)𝜆 + Λ tenha decorrido.[00451] - It waits until an amount of time 𝑡𝑚 + 3 ≜ 𝑡𝑚 + 2 + 2𝜆 = (2𝑚 + 3) 𝜆 + Λ has elapsed.

[00452] - Condição Final 0: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00452] - Final Condition 0: The same instructions as for the Fixed Currency-In-0 steps.

[00453] - Condição Final 1: As mesmas instruções que para as etapas de Moeda-Fixa-Em-0.[00453] - Final Condition 1: The same instructions as for the Fixed-Currency-In-0 steps.

[00454] - De outra forma, no fim da espera, o usuário i realiza o seguinte.[00454] - Otherwise, at the end of the wait, user i performs the following.

[00455] O mesmo configura 𝑜𝑢𝑡𝑖 ≜ 1 e 𝐵𝑟 ≜ 𝐵𝜀𝑟 .[00455] It configures 𝑜𝑢𝑡𝑖 ≜ 1 and 𝐵𝑟 ≜ 𝐵𝜀𝑟.

[00456] O mesmo computa a mensagem 𝑚𝑖𝑟,𝑚+3 = (𝐸𝑆𝐼𝐺𝑖 (𝑜𝑢𝑡𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝐻 (𝐵𝑟 )), 𝜎𝑖𝑟,𝑚+3 ), destrói sua chave efêmera secreta 20 Com probabilidade imensa de 𝐵𝐵𝐴∗ ter terminado antes dessa etapa, e especifica-se essa etapa para completude.[00456] The same computes the message 𝑚𝑖𝑟, 𝑚 + 3 = (𝐸𝑆𝐼𝐺𝑖 (𝑜𝑢𝑡𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝐻 (𝐵𝑟)), 𝜎𝑖𝑟, 𝑚 + 3), destroys your secret ephemeral key 20 With an immense probability that 𝐵𝐵𝐴 ∗ ended before this stage, and that stage is specified for completeness.

𝑠𝑘𝑖𝑟,𝑚+3 e, então, propaga 𝑚𝑖𝑟,𝑚+3 para certificar Br.21𝑠𝑘𝑖𝑟, 𝑚 + 3 and then propagate 𝑚𝑖𝑟, 𝑚 + 3 to certify Br.21

[00457] Reconstrução do Bloco de Ciclo-r por Não Verificadores[00457] Reconstruction of the R-Cycle Block by Non-Verifiers

[00458] Instruções para cada usuário i no sistema: O usuário i começa seu próprio ciclo r assim que conhece Br-1, e espera por informações de bloco conforme o seguinte.[00458] Instructions for each user i in the system: User i starts his own cycle r as soon as he knows Br-1, and waits for block information as follows.

[00459] - Se, durante tal espera e a qualquer ponto no tempo, existir uma linha v e uma etapa s' de modo que[00459] - If, during such a wait and at any point in time, there is a line v and a step s' so that

[00460] (a) 5 ≤ s' ≤ m + 3 com s' - 2 ≡ 0 mod 3,[00460] (a) 5 ≤ s '≤ m + 3 with s' - 2 ≡ 0 mod 3,

[00461] (b) i recebeu pelo menos tH mensagens válidas ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣 ), 𝜎𝑗𝑟,𝑠 ), e r,1[00461] (b) i received at least tH valid messages ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣), 𝜎𝑗𝑟, 𝑠), and r, 1

[00462] (c) i recebeu uma mensagem válida 𝑚𝑗𝑟,1 = (𝐵𝑗𝑟 , 𝑒𝑠𝑖𝑔𝑗 (𝐻(𝐵𝑗𝑟 )) , 𝜎𝑗𝑟,1 ) com 𝑣 = 𝐻𝐵𝑗𝑟 , então, i para sua própria execução de ciclo r imediatamente; configura 𝐵𝑟 = 𝐵𝑗𝑟 ; e configura seu próprio CERTr ′ −1 como o conjunto de mensagens 𝑚𝑗𝑟,𝑠 de subetapa (b).[00462] (c) i received a valid message 𝑚𝑗𝑟, 1 = (𝐵𝑗𝑟, 𝑒𝑠𝑖𝑔𝑗 (𝐻 (𝐵𝑗𝑟)), 𝜎𝑗𝑟, 1) with 𝑣 = 𝐻𝐵𝑗𝑟, then i for its own execution of cycle r immediately; sets 𝐵𝑟 = 𝐵𝑗𝑟; and configure your own CERTr ′ −1 as the set of messages 𝑚𝑗𝑟, 𝑠 of substep (b).

[00463] - Se, durante tal espera e a qualquer ponto no tempo, existir uma etapa s' de modo que[00463] - If, during such a wait and at any point in time, there is a step s' so that

[00464] (a’) 6 ≤ s' ≤ m + 3 com s' - 2 ≡ 1 mod 3, e[00464] (a ’) 6 ≤ s '≤ m + 3 with s' - 2 ≡ 1 mod 3, and

[00465] (b’) i recebeu pelo menos tH mensagens válidas ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠 ), então, i para sua própria execução de ciclo r imediatamente; configura 𝐵𝑟 = 𝐵𝜀𝑟 ; e configura seu próprio CERTr ′ −1 como o conjunto de mensagens 𝑚𝑗𝑟,𝑠 de subetapa (b’).[00465] (b ') i received at least tH valid messages ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠), then i for its own execution of cycle r immediately; sets 𝐵𝑟 = 𝐵𝜀𝑟; and configure your own CERTr ′ −1 as the set of messages 𝑚𝑗𝑟, 𝑠 substep (b ').

[00466] - Se, durante tal espera e a qualquer ponto no tempo, i recebeu pelo menos tH mensagens válidas 𝑚𝑗𝑟,𝑚+3 = 21 Um certificado da Etapa m + 3 não precisa incluir ESIG i(outi). Inclui-se essa para fins de uniformidade apenas: os certificados agora têm um formato uniforme independentemente de em qual etapa os mesmos foram gerados.[00466] - If, during such a wait and at any point in time, i received at least tH valid messages 𝑚𝑗𝑟, 𝑚 + 3 = 21 A certificate from Step m + 3 does not need to include ESIG i (outi). This is included for the purpose of uniformity only: certificates now have a uniform format regardless of which stage they were generated.

(𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝐻 (𝐵𝜀𝑟 )), 𝜎𝑗𝑟,𝑚+3 ), então, i para sua própria execução de ciclo r imediatamente, configura 𝐵𝑟 = 𝐵𝜀𝑟 e configura seu próprio CERTr como o conjunto de mensagens 𝑚𝑗𝑟,𝑚+3 para 1 e 𝐻 (𝐵𝜀𝑟 ). 6 Algorand'2(𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝐻 (𝐵𝜀𝑟)), 𝜎𝑗𝑟, 𝑚 + 3), then, i for its own execution of cycle r immediately, sets 𝐵𝑟 = 𝐵𝜀𝑟 and sets its own CERTr as the set of messages 𝑚𝑗𝑟, 𝑚 +3 to 1 and 𝐻 (𝐵𝜀𝑟). 6 Algorand'2

[00467] Nessa seção, é construída uma versão da Algorand' que trabalha sob a seguinte suposição.[00467] In this section, a version of Algorand 'is built that works under the following assumption.

[00468] SUPOSIÇÃO DE MAIOR PARTE HONESTA DE USUÁRIOS: Mais que 2/3 dos usuários em cada PKr são honestos.[00468] ASSUMPTION OF A HONEST PART OF USERS: More than 2/3 of users in each PKr are honest.

[00469] Na Seção 7, mostra-se como substituir a suposição acima pela suposição de Maior Parte Honesta de Dinheiro desejada.[00469] Section 7 shows how to replace the above assumption with the desired Most Honest Part of Money assumption.

6.1 Notações E Parâmetros Adicionais Para Algorand'2 Notações6.1 Notations and Additional Parameters for Algorand'2 Notations

[00470] ● μ ∈ ℤ+: um limite superior pragmático para o número de etapas que, com probabilidade imensa, serão realmente realizadas em um ciclo. (Como será observado, o parâmetro μ controla quantas chaves efêmeras um usuário prepara antecipadamente para cada ciclo.)[00470] ● μ ∈ ℤ +: a pragmatic upper limit for the number of steps that, with immense probability, will actually be performed in one cycle. (As will be noted, the μ parameter controls how many ephemeral keys a user prepares in advance for each cycle.)

[00471] ● Lr: uma variável aleatória que representa o número de testes de Bernoulli necessários para observar um 1, quando cada ensaio 𝑝ℎ é 1 com probabilidade . Lr será usado para limitar de modo superior o tempo 2 necessário para gerar o bloco Br.[00471] ● Lr: a random variable that represents the number of Bernoulli tests needed to observe a 1, when each test 𝑝ℎ is 1 with probability. Lr will be used to limit the time required to generate the Br block in a superior way.

[00472] ● tH: um limite inferior para o número de verificadores honestos em uma etapa s > 1 do ciclo r, de modo que com a probabilidade imensa (dado n e p), haja > tH verificadores honestos em SVr,s. Parâmetros[00472] ● tH: a lower limit for the number of honest verifiers in a step s> 1 of cycle r, so that with the immense probability (given n and p), there are> tH honest verifiers in SVr, s. Parameters

[00473] ● Relações entre vários parâmetros.[00473] ● Relationships between several parameters.

[00474] — Para cada etapa s > 1 do ciclo r, n é escolhido de modo que, com probabilidade imensa, |HSVr,s| > tH e |HSVr,s| + 2|MSVr,s| < 2tH.[00474] - For each step s> 1 of cycle r, n is chosen so that, with immense probability, | HSVr, s | > tH and | HSVr, s | + 2 | MSVr, s | <2tH.

[00475] Observa-se que as duas inequidades acima em conjunto implicam |HSVr,s| > 2|MSVr,s|: isto é, há uma maior parte honesta de 2/3 dentre os verificadores selecionados.[00475] It is observed that the two inequalities above together imply | HSVr, s | > 2 | MSVr, s |: that is, there is an honest majority of 2/3 among the selected verifiers.

[00476] Quanto mais próximo de 1 for o valor de h, menor n precisa ser. Em particular, usa-se (variantes de) limites Chernoff para garantir que as condições desejadas se mantenham com probabilidade imensa.[00476] The closer to 1 the h value is, the smaller n needs to be. In particular, Chernoff limits (variants of) are used to ensure that the desired conditions remain with immense probability.

[00477] ● Escolhas específicas de parâmetros importantes.[00477] ● Specific choices of important parameters.

[00478] — F = 10-18.[00478] - F = 10-18.

[00479] — n ≈ 4.000, tH ≈ 0,69n, k = 70.[00479] - n ≈ 4,000, tH ≈ 0.69n, k = 70.

6.2 Implementação De Chaves Efêmeras Em Algorand'26.2 Implementation of Ephemeral Keys in Algorand'2

[00480] Relembrando-se que um verificador i ∈ SVr,s assina digitalmente sua mensagem 𝑚𝑖𝑟,𝑠 de etapa s no ciclo r, com relação a uma chave pública efêmera 𝑝𝑘𝑖𝑟,𝑠 , com o uso de uma chave secreta efêmera 𝑠𝑘𝑖𝑟,𝑠 que o mesmo imediatamente destrói após o uso. Quando o número de etapas possíveis que um ciclo pode realizar é tampado por um determinado número inteiro μ, já foi observado como manusear praticamente chaves efêmeras. Por exemplo, como foi explicado na Algorand'1 (em que μ = m + 3), para manusear todas as suas chaves efêmeras possíveis, de um ciclo r' para um ciclo r' + 106, i gera um par (PMK, SMK), em que PMK é chave mestre pública de um esquema de assinatura com base em identidade, e SMK é sua chave mestre secreta correspondente. O usuário i publica PMK e usa SMK para gerar a chave secreta de cada chave pública efêmera possível (e destrói SMK após ter feito isso). O conjunto de chaves públicas efêmeras de i para os ciclos relevantes é S = {i} x {r' , . . . , r' + 106} x {1, . . . , μ}. (Como discutido, conforme o ciclo r' + 106 se aproxima, i “atualiza” seu par (PMK, SMK).)[00480] Recalling that a verifier i ∈ SVr, s digitally signs his message 𝑚𝑖𝑟, 𝑠 of steps s in cycle r, with respect to an ephemeral public key 𝑝𝑘𝑖𝑟, 𝑠, with the use of an ephemeral secret key 𝑠𝑘𝑖𝑟, 𝑠 that it immediately destroys after use. When the number of possible steps that a cycle can perform is capped by a given integer μ, it has already been observed how to handle practically ephemeral keys. For example, as explained in Algorand'1 (where μ = m + 3), to handle all of your possible ephemeral keys, from a cycle r 'to a cycle r' + 106, i generates a pair (PMK, SMK ), where PMK is the public master key of an identity-based subscription scheme, and SMK is its corresponding secret master key. User i publishes PMK and uses SMK to generate the secret key for each possible ephemeral public key (and destroys SMK after doing so). The set of ephemeral public keys of i for the relevant cycles is S = {i} x {r ',. . . , r '+ 106} x {1,. . . , μ}. (As discussed, as cycle r '+ 106 approaches, i “updates” its pair (PMK, SMK).)

[00481] Na prática, se μ for grande o suficiente, um ciclo da Algorand'2 não terá mais que μ etapas. Em princípio, no entanto, há a possibilidade remota de que, para algum ciclo r o número de etapas realmente realizada excederá μ. Quando isso acontecer, i não teria a capacidade para assinar sua mensagem 𝑚𝑖𝑟,𝑠 para qualquer etapa s > μ, devido ao mesmo ter preparado antecipadamente apenas μ chaves secretas para o ciclo r. Além disso, o mesmo não pode preparar e publicar novo depósito de chaves efêmeras, como discutido anteriormente. De fato, para realizar isso, o mesmo precisaria inserir uma nova chave mestre pública PMK' em um novo bloco. Mas, caso o ciclo r realiza mais e mais etapas, nenhum novo bloco seria gerado.[00481] In practice, if μ is large enough, an Algorand'2 cycle will have no more than μ steps. In principle, however, there is a remote possibility that for some cycle r the number of steps actually performed will exceed μ. When this happens, i would not be able to sign your message 𝑚𝑖𝑟, 𝑠 for any step s> μ, due to the fact that it had prepared in advance only μ secret keys for cycle r. In addition, it cannot prepare and publish a new ephemeral key deposit, as previously discussed. In fact, to do this, it would need to insert a new public master key PMK 'in a new block. But, if cycle r performs more and more steps, no new blocks would be generated.

[00482] No entanto, existem soluções. Por exemplo, i pode 𝑟,𝜇 usar a última chave efêmera do ciclo r, 𝑝𝑘𝑖 , conforme o seguinte. O mesmo gera outro depósito de pares de chaves para o ciclo r - por exemplo, (1) gerar 𝑃𝑀𝐾 , ̅̅̅̅̅̅ outro par de chaves mestre (̅̅̅̅̅̅̅ 𝑆𝑀𝐾 ); (2) usar esse par para gerar outro, 6 ̅̅̅ 𝑟,𝜇+1 , … , 𝑠𝑘 diga-se, 106 chaves efêmeras 𝑠𝑘 ̅̅̅ 𝑟,𝜇+10 , correspondentes às 𝑖 𝑖 𝑟,𝜇 etapas μ + 1, ..., μ + 106 do ciclo r; (3) usar 𝑠𝑘𝑖 para assinar digitalmente ̅̅̅̅̅̅̅ 𝑟,𝜇 𝑃𝑀𝐾 (e qualquer mensagem (r, μ) se i ∈ SVr,μ), com relação a 𝑝𝑘𝑖 ; e (4) 𝑟,𝜇 apagar ̅̅̅̅̅̅ 𝑆𝑀𝐾 e 𝑠𝑘𝑖 . Caso i se torne um verificador em uma etapa μ + s com 𝑟,𝜇+𝑠 s ∈ {1, . . . , 106}, então, i assina digitalmente sua mensagem (r, μ + s) 𝑚𝑖 com relação a sua nova chave ̅̅ 𝑝𝑘̅̅ 𝑟,𝜇+𝑠 = (𝑖, 𝑟, 𝜇 + 𝑠). Evidentemente, para 𝑖 verificar essa assinatura de i, outros precisam estar certos de que essa chave ̅̅̅̅̅̅̅ . Desse modo, pública corresponde à nova chave mestre pública de i 𝑃𝑀𝐾 ̅̅̅̅̅̅̅ com relação além dessa assinatura, i transmite sua assinatura digital de 𝑃𝑀𝐾 𝑟,𝜇 a 𝑝𝑘𝑖 .[00482] However, there are solutions. For example, i can 𝑟, 𝜇 use the last ephemeral key of cycle r, 𝑝𝑘𝑖, as follows. It generates another deposit of key pairs for cycle r - for example, (1) generate 𝑃𝑀𝐾, ̅̅̅̅̅̅ another master key pair (̅̅̅̅̅̅̅ 𝑆𝑀𝐾); (2) use this pair to generate another, 6 ̅̅̅ ̅̅̅, 𝜇 + 1,…, 𝑠𝑘 say, 106 ephemeral keys 𝑠𝑘 ̅̅̅ ̅̅̅, 𝜇 + 10, corresponding to 𝑖 𝑖 𝑟, 𝜇 steps μ + 1, .. ., μ + 106 of cycle r; (3) use 𝑠𝑘𝑖 to digitally sign ̅̅̅̅̅̅̅ 𝑟, 𝜇 𝑃𝑀𝐾 (and any message (r, μ) if i ∈ SVr, μ), with respect to 𝑝𝑘𝑖; and (4) 𝑟, 𝜇 delete ̅̅̅̅̅̅ 𝑆𝑀𝐾 and 𝑠𝑘𝑖. If i becomes a verifier in a step μ + s with 𝑟, 𝜇 + 𝑠 s ∈ {1,. . . , 106}, then, i digitally signs your message (r, μ + s) 𝑚𝑖 with respect to your new key ̅̅ 𝑝𝑘̅̅ 𝑟, 𝜇 + 𝑠 = (𝑖, 𝑟, 𝜇 + 𝑠). Of course, in order to 𝑖 verify this signature from i, others need to be certain that this key ̅̅̅̅̅̅̅. Thus, public corresponds to the new public master key of i 𝑃𝑀𝐾 ̅̅̅̅̅̅̅ with respect to this signature, i transmits its digital signature from 𝑃𝑀𝐾 𝑟, 𝜇 to 𝑝𝑘𝑖.

[00483] Evidentemente, essa abordagem pode ser repetida, quantas vezes forem necessárias, caso o ciclo r continue por mais e mais etapas! A última chave efêmera secreta é usada para autenticar uma nova chave pública mestre, e, desse modo, outro depósito de chaves efêmeras para o ciclo r. E assim por diante.[00483] Of course, this approach can be repeated, as many times as necessary, if cycle r continues for more and more stages! The last secret ephemeral key is used to authenticate a new master public key, and thus another ephemeral key store for cycle r. And so on.

6.3 O Protocolo Real Da Algorand'26.3 The Royal Algorand'2 Protocol

[00484] Relembra-se novamente que, em cada etapa s de um ciclo r, um verificador i ∈ SVr,s usa seu par de chaves pública-secreta de longo prazo para produzir sua credencial, 𝜎𝑖𝑟,𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 ), bem como SIGi(Qr- 1 ) no caso s = 1. O verificador i usa seu par de chaves efêmeras, (𝑝𝑘𝑖𝑟,𝑠 , 𝑠𝑘𝑖𝑟,𝑠 ), para assinar qualquer outra mensagem m que possa ser exigida. Para simplicidade, escreve-se esigi(m), em vez de 𝑠𝑖𝑔𝑝𝑘𝑟,𝑠 (𝑚), para denotar 𝑖 assinatura efêmera adequada de i de m nessa etapa, e escreve-se ESIGi(m) em vez de 𝑠𝑖𝑔𝑝𝑘𝑟,𝑠 (𝑚) ≜ (𝑖, 𝑚, 𝑒𝑠𝑖𝑔𝑖 (𝑚)). 𝑖 Etapa 1: Proposta de Bloco[00484] Remember again that, at each step s of a cycle r, a verifier i ∈ SVr, s uses its long-term public-secret key pair to produce its credential, 𝜎𝑖𝑟, 𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠 , 𝑄𝑟 − 1), as well as GIS (Qr-1) in the case s = 1. Verifier i uses its ephemeral key pair, (𝑝𝑘𝑖𝑟, 𝑠, 𝑠𝑘𝑖𝑟, 𝑠), to sign any other message m that may be required . For simplicity, esigi (m) is written instead of 𝑠𝑖𝑔𝑝𝑘𝑟, 𝑠 (𝑚), to denote adequada appropriate ephemeral signature of i de m at this stage, and ESIGi (m) is written instead of 𝑠𝑖𝑔𝑝𝑘𝑟, 𝑠 (𝑚 ) ≜ (𝑖, 𝑚, 𝑒𝑠𝑖𝑔𝑖 (𝑚)). 𝑖 Stage 1: Block Proposal

[00485] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 1 do ciclo r assim que o mesmo tem CERTr-1, que permite que i compute de modo não ambíguo H(Br-1) e Qr-1.[00485] Instructions for each user i ∈ PKr-k: User i starts his own Step 1 of cycle r as soon as he has CERTr-1, which allows i to compute unambiguously H (Br-1) and Qr -1.

[00486] ● O usuário i usa Qr-1 para verificar a possibilidade ou não de i ∈ SVr,1. Se i ∉ SVr,1, o mesmo não faz nada para a Etapa 1.[00486] ● User i uses Qr-1 to check whether or not i ∈ SVr, 1. If i ∉ SVr, 1, it does nothing for Step 1.

[00487] ● Se i ∈ SVr,1, isto é, se i for um líder potencial, então, o mesmo realiza o seguinte.[00487] ● If i ∈ SVr, 1, that is, if i is a potential leader, then he does the following.

[00488] (a) Se i tiver observado B0, . . . , Br-1 por si mesmos 𝑗 (qualquer 𝐵 𝑗 = 𝐵𝜀 pode ser facilmente derivado de seu valor hash em CERTj e é, desse modo, presumido como “observado”), então, coleta os pagamentos de ciclo-r que foram propagados para o mesmo até o momento e computa um conjunto de pagamentos máximo 𝑃𝐴𝑌𝑖𝑟 a partir do mesmo.[00488] (a) If i have observed B0,. . . , Br-1 by themselves 𝑗 (any 𝐵 𝑗 = 𝐵𝜀 can easily be derived from its hash value in CERTj and is thus assumed to be “observed”), then collects the r-cycle payments that have been propagated to the same so far and computes a set of maximum payments 𝑃𝐴𝑌𝑖𝑟 from it.

[00489] (b) Se i não tiver observado todos os B0, . . . , Br-1 ainda, então, o mesmo configura 𝑃𝐴𝑌𝑖𝑟 = 𝜙.[00489] (b) If i has not observed all B0,. . . , Br-1 still, then, it sets 𝑃𝐴𝑌𝑖𝑟 = 𝜙.

[00490] (c) Em seguida, i computa seu “bloco candidato” 𝐵𝑖𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟 , 𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝐻𝐵𝑟−1 ).[00490] (c) Next, i computes its “candidate block” 𝐵𝑖𝑟 = (𝑟, 𝑃𝐴𝑌𝑖𝑟, 𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝐻𝐵𝑟 − 1).

[00491] (c) Finalmente, i computa a mensagem 𝑚𝑖𝑟,1 = (𝐵𝑖𝑟 , 𝑒𝑠𝑖𝑔𝑖 (𝐻(𝐵𝑖𝑟 )), 𝜎𝑖𝑟,1 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,1 e, então, propaga duas mensagens, 𝑚𝑖𝑟,1 e (𝑆𝐼𝐺𝑖 (𝑄𝑟−1 ), 𝜎𝑖𝑟,1 ), separada, mas simultaneamente.22 Propagação Seletiva[00491] (c) Finally, i computes the message 𝑚𝑖𝑟, 1 = (𝐵𝑖𝑟, 𝑒𝑠𝑖𝑔𝑖 (𝐻 (𝐵𝑖𝑟)), 𝜎𝑖𝑟, 1), destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 1 and then propagates two messages, 𝑚𝑖𝑟, 1 and (𝑆𝐼𝐺𝑖 (𝑄𝑟 − 1), 𝜎𝑖𝑟, 1), separately, but simultaneously.22 Selective Propagation

[00492] Para encurtar a execução global de Etapa 1 e o ciclo completo, é importante que as mensagens (r,1) sejam seletivamente propagadas. Ou seja, para cada usuário j no sistema,[00492] To shorten the overall execution of Step 1 and the complete cycle, it is important that the messages (r, 1) are selectively propagated. That is, for each user already in the system,

[00493] ● Para a primeira mensagem (r, 1) que o mesmo recebeu e verificou com sucesso,23 a possibilidade de a mesma conter um bloco ou ser apenas uma credencial e uma assinatura de Qr-1, o participante j propaga a mesma como normal.[00493] ● For the first message (r, 1) that it received and successfully verified, 23 the possibility of it containing a block or being just a credential and a Qr-1 signature, the participant already propagates the same as normal.

[00494] ● Para todas as outras mensagens (r,1) que o participante j recebe e verifica com sucesso, o mesmo propaga essas apenas se o valor hash da credencial dessas contiver o menor dentro os valores hash das credenciais contidas em todas mensagens (r,1) que o mesmo recebeu e verificou com sucesso até o momento.[00494] ● For all other messages (r, 1) that the participant already receives and verifies successfully, he propagates these only if the hash value of his credential contains the smallest within the hash values of the credentials contained in all messages ( r, 1) that it has successfully received and verified so far.

[00495] ● No entanto, se j recebe duas mensagens diferentes da forma 𝑚𝑖𝑟,1 do mesmo participante i,24 o mesmo descarta a segunda independentemente de qual é o valor hash de credencial de i.[00495] ● However, if j receives two different messages of the form 𝑚𝑖𝑟, 1 from the same participant i, 24 the same discards the second regardless of what is the credential hash value of i.

[00496] Observa-se que, sob a propagação seletiva é útil que cada líder potencial i propague sua credencial 𝜎𝑖𝑟,1 separadamente de 𝑚𝑖𝑟,1 :25 aquelas mensagens pequenas que percorrem mais rápido que os blocos, garantem a propagação imediata das 𝑚𝑖𝑟,1 em que as credenciais contidas têm valores hash pequenos, enquanto faz com que aquelas com valores hash grandes desapareçam rapidamente. Etapa 2: A Primeira Etapa Do Protocolo De Consenso Graduado 22 Quando i for o líder, SIGi(Qr-1) permite que outros computem Qr = H(SIGi(Qr-1),r). 23 Ou seja, todas as assinaturas são corrigidas e, se for da forma 𝑚𝑖𝑟,1 , tanto o bloco quanto seu hash são válidos - embora i não verifique a possibilidade de o conjunto de pagamentos incluído ser máximo para seu proponente ou não. 24 Que significa que i é malicioso. 25 Agradecimentos a Georgios Vlachos por sugerir isso.[00496] It is observed that, under selective propagation it is useful for each potential leader i to propagate his credential 𝜎𝑖𝑟, 1 separately from 𝑚𝑖𝑟, 1: 25 those small messages that travel faster than the blocks, guarantee the immediate propagation of 𝑚𝑖𝑟, 1 where the credentials contained have small hash values, while causing those with large hash values to disappear quickly. Step 2: The First Step of the Graduate Consensus Protocol 22 When i is the leader, GIS (Qr-1) allows others to compute Qr = H (GIS (Qr-1), r). In other words, all signatures are corrected and, if it is of the form 𝑚𝑖𝑟, 1, both the block and its hash are valid - although i does not verify the possibility of the included set of payments being maximum for its bidder or not. 24 Which means that i is malicious. 25 Thanks to Georgios Vlachos for suggesting this.

GCGC

[00497] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 2 do ciclo r assim que o mesmo tem CERTr-1.[00497] Instructions for each user i ∈ PKr-k: User i starts his own Step 2 of cycle r as soon as he has CERTr-1.

[00498] ● O usuário i espera uma quantidade de tempo máxima 𝑡2 ≜ 𝜆 + Λ. Enquanto espera, i age conforme a seguir.[00498] ● User i expects a maximum amount of time 𝑡2 ≜ 𝜆 + Λ. While waiting, i act as follows.

[00499] 1. Após esperar pelo tempo 2λ, o mesmo encontra o usuário ℓ de modo que 𝐻(𝜎ℓ𝑟,1 ) ≤ 𝐻(𝜎𝑗𝑟,1 ) para todas as credenciais 𝜎𝑗𝑟,1 que fazem parte das mensagens verificadas com sucesso (r,1) que o mesmo recebeu até o momento.26[00499] 1. After waiting for time 2λ, he finds the user ℓ so that 𝐻 (𝜎ℓ𝑟, 1) ≤ 𝐻 (𝜎𝑗𝑟, 1) for all credentials 𝜎𝑗𝑟, 1 that are part of the messages successfully verified (r , 1) that it has received so far.26

[00500] 2. Se o mesmo recebeu um bloco Br-1, que é compatível com o valor hash H(Br-1) contido em CERTr-1,27 e se o mesmo recebeu de ℓ uma mensagem válida 𝑚 𝑟,1 𝑟 𝑟 𝑟,1 28 ℓ = (𝐵ℓ , 𝑒𝑠𝑖𝑔ℓ (𝐻 (𝐵ℓ )), 𝜎ℓ ), então, i para de esperar e configura 𝑣′1 ≜ (𝐻 (𝐵ℓ𝑟 ), ℓ).[00500] 2. If it received a Br-1 block, which is compatible with the hash value H (Br-1) contained in CERTr-1.27 and if it received from mensagem a valid message 𝑚 𝑟, 1 𝑟 𝑟 𝑟, 1 28 ℓ = (𝐵ℓ, 𝑒𝑠𝑖𝑔ℓ (𝐻 (𝐵ℓ)), 𝜎ℓ), then i stops waiting and sets 𝑣′1 ≜ (𝐻 (𝐵ℓ𝑟), ℓ).

[00501] 3. De outra forma, quando o tempo t2 se esgotar, i configura 𝑣′1 ≜⊥.[00501] 3. Otherwise, when time t2 runs out, i sets 𝑣′1 ≜⊥.

[00502] 4. Quando o valor de v'i tiver sido estabelecido, i computa Qr-1 a partir de CERTr-1 e verifica a possibilidade ou não de i ∈ SVr,2.[00502] 4. When the value of v'i has been established, i computes Qr-1 from CERTr-1 and checks whether or not i ∈ SVr, 2.

[00503] 5. Se i ∈ SVr,2, i computa a mensagem 𝑚𝑖𝑟,2 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣 ′ 𝑖 ), 𝜎𝑖𝑟,2 ),29 destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,2 e, então, propaga 𝑚𝑖𝑟,2 . De outra forma, i para sem propagar qualquer coisa. Etapa 3: A Segunda Etapa de GC 26 Essencialmente, o usuário i confidencialmente decide que o líder do ciclo r é o usuário ℓ. 27 Evidentemente, se CERTr-1 indicar que 𝐵𝑟−1 = 𝐵𝜀𝑟−1 , então, i provavelmente já “recebeu” Br- 1 no momento em que tem CERTr-1. 28 Novamente, as assinaturas de participante ℓ e os hashes são todos verificados com sucesso, e 𝑃𝐴𝑌ℓ𝑟 em 𝐵ℓ𝑟 é um conjunto de pagamentos válido para o ciclo r — embora i não verifique a possibilidade ou não de 𝑃𝐴𝑌ℓ𝑟 ser máximo para ℓ. Se 𝐵ℓ𝑟 contiver um conjunto de pagamentos vazio, então, não há realmente necessidade de i observar Br-1 antes de verificar a possibilidade de 𝐵ℓ𝑟 ser válido ou não. 29 A mensagem 𝑚𝑖𝑟,2 sinaliza que o participante i considera o primeiro componente de v'i como o hash do próximo bloco, ou considera o próximo bloco como vazio.[00503] 5. If i ∈ SVr, 2, i computes the message 𝑚𝑖𝑟, 2 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣 ′ 𝑖), 𝜎𝑖𝑟, 2), 29 destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 2 and then propagates 𝑚𝑖𝑟, 2 . Otherwise, I stop without propagating anything. Step 3: The Second GC Step 26 Essentially, user i confidentially decides that the leader of cycle r is user ℓ. 27 Evidently, if CERTr-1 indicates that 𝐵𝑟 − 1 = 𝐵𝜀𝑟 − 1, then i probably already “received” Br- 1 by the time it has CERTr-1. 28 Again, participant signatures ℓ and hashes are all successfully verified, and 𝑃𝐴𝑌ℓ𝑟 at 𝐵ℓ𝑟 is a set of payments valid for cycle r - although i does not check whether or not 𝑃𝐴𝑌ℓ𝑟 be maximum for ℓ. If 𝐵ℓ𝑟 contains an empty payment set, then there is really no need to i observe Br-1 before checking whether 𝐵ℓ𝑟 is valid or not. 29 The message 𝑚𝑖𝑟, 2 signals that the participant i considers the first component of v'i as the hash of the next block, or considers the next block as empty.

[00504] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 3 do ciclo r assim que o mesmo tem CERTr-1.[00504] Instructions for each user i ∈ PKr-k: User i starts his own Step 3 of cycle r as soon as he has CERTr-1.

[00505] ● O usuário i espera uma quantidade de tempo máxima 𝑡3 ≜ 𝑡2 + 2𝜆 = 3𝜆 + Λ. Enquanto espera, i age conforme a seguir.[00505] ● User i expects a maximum amount of time 𝑡3 ≜ 𝑡2 + 2𝜆 = 3𝜆 + Λ. While waiting, i act as follows.

[00506] 1. Se existe um valor v, de modo que o mesmo tenha recebido pelo menos tH mensagens válidas 𝑚𝑗𝑟,2 da forma (𝐸𝑆𝐼𝐺𝑖 (𝑣 ), 𝜎𝑗𝑟,2 ), sem qualquer contradição,30 então, o mesmo para de esperar e configura v' = v.[00506] 1. If there is a value v, so that it has received at least tH valid messages 𝑚𝑗𝑟, 2 of the form (𝐸𝑆𝐼𝐺𝑖 (𝑣), 𝜎𝑗𝑟, 2), without any contradiction, 30 then the same for de wait and set v '= v.

[00507] 2. De outra forma, quando o tempo t3 se esgotar, o mesmo configura v' = ⊥.[00507] 2. Otherwise, when time t3 runs out, it sets v '= ⊥.

[00508] 3. Quando o valor de v' tiver sido estabelecido, i computa Qr-1 a partir de CERTr-1 e verifica a possibilidade ou não de i ∈ SVr,3.[00508] 3. When the value of v 'has been established, i computes Qr-1 from CERTr-1 and checks whether or not i ∈ SVr, 3.

[00509] 4. Se i ∈ SVr,3, então, i computa a mensagem 𝑚𝑖𝑟,3 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣′), 𝜎𝑖𝑟,3 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,3 e, então, propaga 𝑚𝑖𝑟,3 . De outra forma, i para sem propagar qualquer coisa. Etapa 4: Saída de GC e A Primeira Etapa de 𝐵𝐵𝐴∗[00509] 4. If i ∈ SVr, 3, then i computes the message 𝑚𝑖𝑟, 3 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑣 ′), 𝜎𝑖𝑟, 3), destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 3 and then propagates 𝑚𝑖𝑟, 3 . Otherwise, I stop without propagating anything. Step 4: GC Output and The First de ∗ Step

[00510] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa 4 do ciclo r assim que oi mesmo termina sua própria Etapa 3.[00510] Instructions for each user i ∈ PKr-k: User i starts his own Step 4 of cycle r as soon as i finishes his own Step 3.

[00511] ● O usuário i espera uma quantidade máxima de tempo 2λ.31 Enquanto espera, i age conforme a seguir.[00511] ● User i waits a maximum amount of time 2λ.31 While waiting, i acts as follows.

[00512] 1. O mesmo computa vi e gi, a saída de GC, conforme o seguinte.[00512] 1. The same computes vi and gi, the GC output, as follows.

30 Ou seja, o mesmo não recebeu duas mensagens válidas que contém ESIGj(v) e um 𝐸𝑆𝐼𝐺1 (𝑣̂) diferente, respectivamente, de um participante j. Aqui e a partir daqui, exceto nas Condições Finais definidas anteriormente, sempre que um participante honesto desejar mensagens de uma determinada forma, as mensagens que contradizem umas às outras nunca são contadas ou consideradas como válidas.That is, he did not receive two valid messages containing ESIGj (v) and a different 𝐸𝑆𝐼𝐺1 (𝑣̂), respectively, from participant j. Here and from here, except in the Final Conditions defined above, whenever an honest participant wants messages in a certain way, messages that contradict each other are never counted or considered to be valid.

31 Desse modo, a quantidade total máxima de tempo visto que i começa sua Etapa 1 do ciclo r pode ser 𝑡4 ≜ 𝑡3 + 2𝜆 + 5𝜆 + Λ.31 Thus, the maximum total amount of time since i starts your Step 1 of cycle r can be 𝑡4 ≜ 𝑡3 + 2𝜆 + 5𝜆 + Λ.

[00513] (a) Se existe um valor v' ≠ ⊥ de modo que o mesmo tenha recebido pelo menos tH mensagens válidas 𝑚𝑙𝑟,3 = (𝐸𝑆𝐼𝐺𝑗 (𝑣′), 𝜎𝑗𝑟,3 ), então, o mesmo para de esperar e configura 𝑣𝑖 ≜ 𝑣′ e 𝑔1 ≜ 2.[00513] (a) If there is a value v '≠ ⊥ so that it has received at least tH valid messages 𝑚𝑙𝑟, 3 = (𝐸𝑆𝐼𝐺𝑗 (𝑣 ′), 𝜎𝑗𝑟, 3), then it stops waiting and sets 𝑣𝑖 ≜ 𝑣 ′ and 𝑔1 ≜ 2.

[00514] (b) Se o mesmo recebeu pelo menos tH mensagens válidas 𝑚𝑗𝑟,3 = (𝐸𝑆𝐼𝐺𝑗 (⊥), 𝜎𝑗𝑟,3 ), então, o mesmo para de esperar e configura 𝑣𝑖 ≜⊥ e 𝑔1 ≜ 0.32[00514] (b) If it has received at least tH valid messages 𝑚𝑗𝑟, 3 = (𝐸𝑆𝐼𝐺𝑗 (⊥), 𝜎𝑗𝑟, 3), then it stops waiting and configures 𝑣𝑖 ≜⊥ and 𝑔1 ≜ 0.32

[00515] (c) De outra forma, quando o tempo 2λ se esgotar, se 𝑡 existe um valor v' ≠ ⊥ de modo que o mesmo tenha recebido pelo menos ⌈ 𝐻 ⌉ 2 𝑟,𝑗 mensagens válidas 𝑚𝑗 = (𝐸𝑆𝐼𝐺𝑗 (𝑣′), 𝜎𝑗𝑟,3 ), então, o mesmo configura 𝑣1 ≜ 𝑣 ′ e 𝑔𝑖 ≜ 1.33[00515] (c) Otherwise, when the 2λ time runs out, if 𝑡 there is a value v '≠ ⊥ so that it has received at least ⌈ 𝐻 ⌉ 2 𝑟, 𝑗 valid messages 𝑚𝑗 = (𝐸𝑆𝐼𝐺𝑗 (𝑣 ′), 𝜎𝑗𝑟, 3), then, it configures 𝑣1 ≜ 𝑣 ′ and 𝑔𝑖 ≜ 1.33

[00516] (d) De outro modo, quando o tempo 2λ se esgotar, o mesmo configura 𝑣𝑖 ≜⊥e 𝑔𝑖 ≜ 0.[00516] (d) Otherwise, when the 2λ time runs out, it configures 𝑣𝑖 ≜⊥ and ≜⊥ ≜ 0.

[00517] 2. Quando os valores vi e gi tiverem sido estabelecidos, i computa bi, a entrada de 𝐵𝐵𝐴∗ , conforme o seguinte: 𝑏𝑖 ≜ 0, se 𝑔𝑖 = 2, e 𝑏𝑖 ≜ 1, de outro modo.[00517] 2. When the values vi and gi have been established, i computes bi, the entry of 𝐵𝐵𝐴 ∗, as follows: 𝑏𝑖 ≜ 0, if 𝑔𝑖 = 2, and 𝑏𝑖 ≜ 1, otherwise.

[00518] 3. i computa Qr-1 a partir de CERTr-1 e verifica a possibilidade ou não de i ∈ SVr,4.[00518] 3. i computes Qr-1 from CERTr-1 and checks whether or not i ∈ SVr, 4.

[00519] 4. Se i ∈ SVr,4, o mesmo computa a mensagem 𝑚𝑖𝑟,4 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,4 ), destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,4 e propaga 𝑚𝑖𝑟,4 . De outra forma, i para sem propagar qualquer coisa. Etapa s, 5 ≤ s ≤ m + 2, s - 2 ≡ 0 mod 3: Uma Etapa Moeda-Fixa-Em-0 de 𝐵𝐵𝐴∗[00519] 4. If i ∈ SVr, 4, it computes the message 𝑚𝑖𝑟, 4 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 4), destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 4 and propagates 𝑚𝑖𝑟, 4 . Otherwise, I stop without propagating anything. Step s, 5 ≤ s ≤ m + 2, s - 2 mod 0 mod 3: One Coin-Fixed-In-0 Step of 0 ∗

[00520] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa s do ciclo r assim que o mesmo termina sua 32 Independentemente de a Etapa (b) estar no protocolo ou não afeta sua exatidão. No entanto, a presença da Etapa (b) permite que a Etapa 4 termine em menos de 2λ tempo se verificadores da Etapa-3 o suficiente tiverem “assinado ⊥”. 33 Pode ser provado que o v' nesse caso, se existir, deve ser único.[00520] Instructions for each user i ∈ PKr-k: User i starts his own Step s of cycle r as soon as he finishes his 32 Regardless of whether Step (b) is in the protocol or does not affect its accuracy. However, the presence of Step (b) allows Step 4 to finish in less than 2λ time if enough Step-3 verifiers have “signed ⊥”. 33 It can be proved that the v 'in that case, if any, must be unique.

própria Etapa s - 1.Step s - 1 itself.

[00521] ● Usuário i espera uma quantidade máxima de tempo 2λ.34 Enquanto espera, i age conforme a seguir.[00521] ● User i waits a maximum amount of time 2λ.34 While waiting, i acts as follows.

[00522] - Condição Final 0: Se a qualquer ponto existir uma linha v ≠ ⊥ e uma etapa s' de modo que[00522] - Final Condition 0: If at any point there is a line v ≠ ⊥ and a step s' so that

[00523] (a) 5 ≤ s' ≤ s, s' - 2 ≡ 0 mod 3 — isto é, Etapa s' é uma etapa de Moeda-Fixa-Em-0,[00523] (a) 5 ≤ s' ≤ s, s' - 2 ≡ 0 mod 3 - that is, Step s' is a Coin-Fixed-In-0 step,

[00524] (b) i recebeu pelo menos tH mensagens válidas ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣 ), 𝜎𝑗𝑟,𝑠 ),35 e[00524] (b) i received at least tH valid messages ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣), 𝜎𝑗𝑟, 𝑠), 35 and

[00525] (c) i recebeu uma mensagem válida (𝑆𝐼𝐺𝑗 (𝑄𝑟−1 ), 𝜎𝑗𝑟,1 ) com j sendo o segundo componente de v,[00525] (c) i received a valid message (𝑆𝐼𝐺𝑗 (𝑄𝑟 − 1), 𝜎𝑗𝑟, 1) with j being the second component of v,

[00526] então, i para de esperar e termina sua própria execução de Etapa s (e, de fato, do ciclo r) imediatamente sem propagar qualquer coisa como um verificador (r, s); configura H(Br) como o primeiro componente de v; e configura seu próprio CERTr como o conjunto de ′ −1 mensagens 𝑚𝑗𝑟,𝑠 da etapa (b) em conjunto com (𝑆𝐼𝐺𝑗 (𝑄𝑟−1 ), 𝜎𝑗𝑟,1 ).36[00526] then, i stops waiting and ends its own execution of Step s (and, in fact, of cycle r) immediately without propagating anything like a checker (r, s); sets H (Br) as the first component of v; and configure your own CERTr as the set of ′ −1 messages 𝑚𝑗𝑟, 𝑠 from step (b) in conjunction with (𝑆𝐼𝐺𝑗 (𝑄𝑟 − 1), 𝜎𝑗𝑟, 1) .36

[00527] - Condição Final 1: Se a qualquer ponto existir uma etapa s' de modo que[00527] - Final Condition 1: If at any point there is a step s' so that

[00528] (a’) 6 ≤ s' ≤ s, s' - 2 ≡ 1 mod 3 — isto é, Etapa s' é etapa 34 Desse modo, a quantidade total máxima de tempo visto que i começa sua Etapa 1 do ciclo r pode ser 𝑡𝑠 ≜ 𝑡𝑠−1 + 2𝜆 = (2𝑠 − 3)𝜆 + Λ. 35 Tal mensagem do participante j é contada mesmo se o participante i também tiver recebido uma mensagem de j que assina para 1. Coisas semelhantes para Condição Final 1. Como mostrado na análise, isso é realizado para garantir que todos os usuários honestos conheçam CERTr no tempo λ uns dos outros. 36 O usuário i agora conhece H(Br) e seu próprio ciclo r termina. O mesmo precisa apenas esperar até que o bloco realmente Br seja propagado para o mesmo, que pode demorar um tempo adicional. O mesmo ainda ajuda a propagar mensagens como um usuário genérico, mas não inicia qualquer propagação como um verificador (r, s). Em particular, o mesmo ajudou a propagar todas as mensagens nesse CERTr, que é suficiente para nosso protocolo. Observa-se que o mesmo também deve configurar 𝑏𝑖 ≜ 0 para o protocolo de BA binário, mas bi não é necessário nesse caso de qualquer forma. Coisas semelhantes para todas as instruções futuras.[00528] (a ') 6 ≤ s' ≤ s, s '- 2 mod 1 mod 3 - that is, Step s' is step 34 Thus, the maximum total amount of time since i starts its Step 1 of the cycle r can be 𝑡𝑠 ≜ 𝑡𝑠 − 1 + 2𝜆 = (2𝑠 - 3) 𝜆 + Λ. 35 Such a message from participant j is counted even if participant i has also received a message from j that signs for 1. Things similar to Final Condition 1. As shown in the analysis, this is done to ensure that all honest users know CERTr on time λ from each other. 36 User i now knows H (Br) and his own cycle r ends. It just needs to wait until the really Br block is propagated to it, which can take an additional time. It still helps to propagate messages as a generic user, but does not initiate any propagation as a verifier (r, s). In particular, it helped to propagate all messages in that CERTr, which is sufficient for our protocol. Note that it must also set deve ≜ 0 for the binary BA protocol, but bi is not necessary in this case anyway. Similar things for all future instructions.

de Moeda-Fixa-Em-1, eFixed-Currency-In-1, and

[00529] (b’) i recebeu pelo menos tH mensagens válidas ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 = (𝐸𝑆𝐼𝐺𝑖 (1), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠 ),37[00529] (b ’) i received at least tH valid messages ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 = (𝐸𝑆𝐼𝐺𝑖 (1), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠), 37

[00530] então, i para de esperar e termina sua própria execução de Etapa s (e, de fato, do ciclo r) imediatamente sem propagar qualquer coisa como um verificador (r,s); configura 𝐵𝑟 = 𝐵𝜀𝑟 ; e configura seu ′ −1 próprio CERTr como o conjunto de mensagens 𝑚𝑗𝑟,𝑠 de subetapa (b’).[00530] then, i stops waiting and ends its own execution of Step s (and, in fact, of cycle r) immediately without propagating anything like a checker (r, s); sets 𝐵𝑟 = 𝐵𝜀𝑟; and configures its own ′ −1 CERTr as the message set 𝑚𝑗𝑟, 𝑠 substep (b ').

[00531] - Se a qualquer ponto o mesmo recebeu pelo menos tH ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 válidas da forma (𝐸𝑆𝐼𝐺𝑖 (1), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠 ), então, o mesmo para de esperar e configura 𝑏1 ≜ 1.[00531] - If at any point it received at least tH ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 valid in the form (𝐸𝑆𝐼𝐺𝑖 (1), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠), then the same stops waiting and sets 𝑏1 ≜ 1.

[00532] - Se a qualquer ponto o mesmo recebeu pelo menos tH ′ −1 ′ −1 𝑚𝑗𝑟,𝑠 válidas da forma (𝐸𝑆𝐼𝐺𝑖 (0), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠 ), mas os mesmos não concordam quanto ao mesmo v, então, o mesmo para de esperar e configura 𝑏𝑖 ≜ 0.[00532] - If at any point it received at least tH ′ −1 ′ −1 𝑚𝑗𝑟, 𝑠 valid in the form (𝐸𝑆𝐼𝐺𝑖 (0), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠), but they do not agree on the same v then stops waiting and sets 𝑏𝑖 ≜ 0.

[00533] - De outra forma, quando o tempo 2λ se esgotar, i configura 𝑏𝑖 ≜ 0.[00533] - Otherwise, when the time 2λ runs out, i sets 𝑏𝑖 ≜ 0.

[00534] - Quando o valor bi tiver sido estabelecido, i computa Qr-1 a partir de CERTr-1 e verifica a possibilidade de i ∈ SVr,s.[00534] - When the bi value has been established, i computes Qr-1 from CERTr-1 and checks the possibility of i ∈ SVr, s.

[00535] - Se i ∈ SVr,s, i computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), em que vi é o valor que foi computado na Etapa 4, destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 . De outra forma, i para sem propagar qualquer coisa.[00535] - If i ∈ SVr, s, i computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), where vi is the value that was computed in Step 4, destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagate 𝑚𝑖𝑟, 𝑠. Otherwise, I stop without propagating anything.

[00536] Etapa s, 6 ≤ s ≤ m + 2, s - 2 ≡ 1 mod 3: Uma Etapa Moeda-Fixa-Em-1 de 𝐵𝐵𝐴∗[00536] Stage s, 6 ≤ s ≤ m + 2, s - 2 ≡ 1 mod 3: One-∗ Coin-Fixed-In-1 Stage

[00537] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa s do ciclo r assim que o mesmo termina sua 37 Nesse caso, não importa quais são os vj’s.[00537] Instructions for each user i ∈ PKr-k: User i starts his own Step s of cycle r as soon as he finishes his 37 In this case, it doesn't matter which vj's are.

própria Etapa s - 1.Step s - 1 itself.

[00538] ● Usuário i espera uma quantidade máxima de tempo 2λ. Enquanto espera, i age conforme a seguir.[00538] ● User i expects a maximum amount of time 2λ. While waiting, i act as follows.

[00539] - Condição Final 0: As mesmas instruções que em uma etapa de Moeda-Fixa-Em-0.[00539] - Final Condition 0: The same instructions as in a fixed-currency-in-0 stage.

[00540] - Condição Final 1: As mesmas instruções que em uma etapa de Moeda-Fixa-Em-0.[00540] - Final Condition 1: The same instructions as in a fixed-currency-in-0 stage.

[00541] - Se a qualquer ponto o mesmo recebeu pelo menos tH 𝑚𝑗𝑟,𝑠−1 válidas da forma (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo para de esperar e configura 𝑏𝑖 ≜ 0.38[00541] - If at any point it received at least tH 𝑚𝑗𝑟, 𝑠 − 1 valid in the form (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then it stops waiting and configures 𝑏𝑖 ≜ 0.38

[00542] - De outra forma, quando o tempo 2λ se esgotar, i configura 𝑏𝑖 ≜ 1.[00542] - Otherwise, when time 2λ runs out, i configures 𝑏𝑖 ≜ 1.

[00543] - Quando o valor de bi tiver sido estabelecido, i computa Qr-1 a partir de CERTr-1 e verifica a possibilidade de i ∈ SVr,s.[00543] - When the value of bi has been established, i computes Qr-1 from CERTr-1 and checks the possibility of i ∈ SVr, s.

[00544] — Se i ∈ SVr,s, i computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), em que vi é o valor que foi computado na Etapa 4, destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 . De outra forma, i para sem propagar qualquer coisa.[00544] - If i ∈ SVr, s, i computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), where vi is the value that was computed in Step 4, destroys your secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagate 𝑚𝑖𝑟, 𝑠. Otherwise, I stop without propagating anything.

[00545] Etapa s, 7 ≤ s ≤ m + 2, s - 2 ≡ 2 mod 3: Uma Etapa de Moeda-Genuinamente-Lançada de 𝐵𝐵𝐴∗[00545] Step s, 7 ≤ s ≤ m + 2, s - 2 mod 2 mod 3: One Etapa ∗ Coin-Genuinely-Launched Step

[00546] Instruções para cada usuário i ∈ PKr-k: O usuário i começa sua própria Etapa s do ciclo r assim que o mesmo termina sua própria etapa s - 1.[00546] Instructions for each user i ∈ PKr-k: User i starts his own Step s of cycle r as soon as he finishes his own step s - 1.

[00547] ● Usuário i espera uma quantidade máxima de tempo 2λ. Enquanto espera, i age conforme a seguir.[00547] ● User i expects a maximum amount of time 2λ. While waiting, i act as follows.

[00548] - Condição Final 0: As mesmas instruções que em uma 38 Observa-se que receber t mensagens (r, s - 1) válidas que assinam para 1 significaria a[00548] - Final Condition 0: The same instructions as in a 38 It is observed that receiving t valid messages (r, s - 1) that sign for 1 would mean the

H Condição Final 1.H Final Condition 1.

etapa de Moeda-Fixa-Em-0.Fixed-Currency-In-0 stage.

[00549] - Condição Final 1: As mesmas instruções que em uma etapa de Moeda-Fixa-Em-0.[00549] - Final Condition 1: The same instructions as in a fixed-currency-in-0 stage.

[00550] - Se a qualquer ponto o mesmo recebeu pelo menos tH 𝑚𝑗𝑟,𝑠−1 válida da forma (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo para de esperar e configura 𝑏𝑖 ≜ 0.[00550] - If at any point it received at least tH 𝑚𝑗𝑟, 𝑠 − 1 valid in the form (𝐸𝑆𝐼𝐺𝑗 (0), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then it stops waiting and configures 𝑏𝑖 ≜ 0.

[00551] - Se a qualquer ponto o mesmo recebeu pelo menos tH 𝑚𝑗𝑟,𝑠−1 válidas da forma (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗 ), 𝜎𝑗𝑟,𝑠−1 ), então, o mesmo para de esperar e configura 𝑏𝑖 ≜ 1.[00551] - If at any point it received at least tH 𝑚𝑗𝑟, 𝑠 − 1 valid in the form (𝐸𝑆𝐼𝐺𝑗 (1), 𝐸𝑆𝐼𝐺𝑗 (𝑣𝑗), 𝜎𝑗𝑟, 𝑠 − 1), then the same stops waiting and configures 𝑏𝑖 ≜ 1.

[00552] - De outra forma, quando o tempo 2λ se esgotar, seja 𝑆𝑉𝑖𝑟,𝑠−1 o conjunto de verificadores (r, s - 1) a partir dos quais o mesmo recebeu uma mensagem válida 𝑚𝑗𝑟,𝑠−1 , i configura 𝑏𝑖 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟,𝑠−1 𝐻(𝜎𝑗𝑟,𝑠−1 )). 𝑖[00552] - Otherwise, when time 2λ runs out, let 𝑆𝑉𝑖𝑟, 𝑠 − 1 be the set of verifiers (r, s - 1) from which it has received a valid message 𝑚𝑗𝑟, 𝑠 − 1, i configures 𝑏𝑖 ≜ 𝑙𝑠𝑏 (𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟, 𝑠 − 1 𝐻 (𝜎𝑗𝑟, 𝑠 − 1)). 𝑖

[00553] - Quando o valor tiver sido estabelecido, i computa Qr- 1 a partir de CERTr-1 e verifica a possibilidade de i ∈ SVr,s.[00553] - When the value has been established, i computes Qr-1 from CERTr-1 and checks the possibility of i ∈ SVr, s.

[00554] - Se i ∈ SVr,s, i computa a mensagem 𝑚𝑖𝑟,𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖 ), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖 ), 𝜎𝑖𝑟,𝑠 ), em que vi é o valor que foi computado na Etapa 4, destrói sua chave efêmera secreta 𝑠𝑘𝑖𝑟,𝑠 e, então, propaga 𝑚𝑖𝑟,𝑠 . De outra forma, i para sem propagar qualquer coisa.[00554] - If i ∈ SVr, s, i computes the message 𝑚𝑖𝑟, 𝑠 ≜ (𝐸𝑆𝐼𝐺𝑖 (𝑏𝑖), 𝐸𝑆𝐼𝐺𝑖 (𝑣𝑖), 𝜎𝑖𝑟, 𝑠), where vi is the value that was computed in Step 4, destroys its secret ephemeral key 𝑠𝑘𝑖𝑟, 𝑠 and then propagate 𝑚𝑖𝑟, 𝑠. Otherwise, I stop without propagating anything.

[00555] Observação. Em princípio, como considerado na subseção 6.2, o protocolo pode realizar arbitrariamente muitas etapas no mesmo ciclo. Caso isso aconteça, como discutido, um usuário i ∈ SVr,s com s > μ esgotou seu depósito de chaves efêmeras pré-geradas e precisa autenticar sua mensagem (r,s) 𝑚𝑖𝑟,𝑠 por uma “cascata” de chaves efêmeras. Desse modo, a mensagem de i se torna um pouco maior e a transmissão dessas mensagens mais longas será um pouco mais demorada. Consequentemente, após tantas etapas de um determinado ciclo, o valor de o parâmetro λ será automaticamente aumentado ligeiramente. (Mas isso é revertido para o λ original uma vez que um novo bloco é produzido e um novo ciclo começa.) Reconstrução Do Bloco De Ciclo-R Por Não Verificadores[00555] Observation. In principle, as considered in subsection 6.2, the protocol can arbitrarily perform many steps in the same cycle. If this happens, as discussed, a user i ∈ SVr, s with s> μ has exhausted his deposit of pre-generated ephemeral keys and needs to authenticate his message (r, s) 𝑚𝑖𝑟, 𝑠 by a “cascade” of ephemeral keys. In this way, the message from i becomes a little longer and the transmission of these longer messages will take a little longer. Consequently, after so many steps in a given cycle, the value of the parameter λ will automatically be increased slightly. (But this is reverted to the original λ once a new block is produced and a new cycle begins.) Reconstruction of the R-Cycle Block by Non-Verifiers

[00556] Instruções para cada usuário i no sistema: O usuário i começa seu próprio ciclo r assim que o mesmo tem CERTr-1.[00556] Instructions for each user i in the system: User i starts his own cycle r as soon as he has CERTr-1.

[00557] ● i segue as instruções de cada etapa do protocolo, participa da propagação de todas as mensagens, mas não inicia qualquer propagação em uma etapa se o mesmo não tiver um verificador nele.[00557] ● i follows the instructions for each step of the protocol, participates in the propagation of all messages, but does not start any propagation in one step if it does not have a verifier in it.

[00558] ● i termina seu próprio ciclo r entrando na Condição Final 0 ou na Condição Final 1 em alguma etapa, com o CERTr correspondente.[00558] ● i ends its own cycle r by entering Final Condition 0 or Final Condition 1 at some stage, with the corresponding CERTr.

[00559] ● A partir disso, o mesmo começa seu ciclo r+1 enquanto espera receber o bloco real Br (salvo caso o mesmo já tenha recebido esse), cujo hash H(Br) foi vinculado pelo CERTr. Novamente, se CERTr indica que 𝐵 𝑟 = 𝐵𝜀𝑟 , o i conhece Br no momento em que o mesmo tem CERTr. 7 Protocolo Da Algorand' Com Maior Parte Honesta De Dinheiro[00559] ● From there, it starts its r + 1 cycle while waiting to receive the real block Br (unless it has already received this one), whose hash H (Br) was linked by CERTr. Again, if CERTr indicates that 𝐵 𝑟 = 𝐵𝜀𝑟, i knows Br the moment it has CERTr. 7 Algorand 'Protocol With Most Honest Money

[00560] Agora, finalmente, será mostrado como substituir a suposição de Maior Parte Honesta de Usuários com a suposição muito mais significativa Maior Parte Honesta de Dinheiro. A ideia básica é (de uma maneira de prova de comprovação) “para selecionar um usuário i ∈ PKr-k para pertencer a SVr,s com um peso (isto é, poder de decisão) proporcional à quantidade de dinheiro possuído por i”.39[00560] Now, finally, it will be shown how to replace the Most Honest Share of Users assumption with the much more significant Most Honest Share of Money assumption. The basic idea is (in a way of proof of proof) "to select a user i ∈ PKr-k to belong to SVr, s with a weight (that is, decision-making power) proportional to the amount of money owned by i". 39

[00561] Pela suposição de HMM, pode-se escolher a possibilidade de que a quantidade deve pertencer ao ciclo r - k ou no (início 39 Deve-se dizer pKr-k-2.000 de modo a substituir a participação contínua. Para simplicidade, visto que uma pessoa pode desejar exigir a participação contínua de qualquer forma, usa-se PKr-k como antes, de modo a realizar um parâmetro a menos.[00561] By the assumption of HMM, one can choose the possibility that the quantity must belong to the cycle r - k or no (beginning 39 It must be said pKr-k-2.000 in order to replace the continuous participation. For simplicity, since a person may wish to require continuous participation in any way, PKr-k is used as before, in order to perform one less parameter.

do) ciclo r. Presumindo-se que participação contínua não incomoda, opta-se pela última escolha. (Para remover a participação contínua, deve-se optar pela outra escolha. Mais bem dito, para a quantidade de dinheiro possuído no ciclo r - k - 2.000.)do) cycle r. Assuming that continuous participation does not bother, the last choice is chosen. (To remove continuous participation, one must choose the other choice. Better said, for the amount of money owned in the cycle r - k - 2,000.)

[00562] Há muitas formas de implantar essa ideia. A forma mais simples seria fazer com que cada chave retivesse no máximo 1 unidade de dinheiro e, então, selecionar n usuários i aleatoriamente de PKr-k de modo (𝑟) que 𝑎𝑖 = 1. A Implantação Mais Simples[00562] There are many ways to implement this idea. The simplest way would be to have each key retain a maximum of 1 unit of money and then select n users i randomly from PKr-k so (𝑟) that 𝑎𝑖 = 1. The Simplest Deployment

[00563] A próxima implantação mais simples pode ser exigir que cada chave pública tenha uma quantidade máxima de dinheiro M, para algum M fixo. O valor M é pequeno o suficiente em comparação à quantidade de dinheiro total no sistema, de modo que a probabilidade de uma chave pertencer ao conjunto de verificadores de mais de uma etapa em - diga-se - k ciclos seja insignificante. Então, uma chave i ∈ PKr-k, que tem uma (𝑟) quantidade de dinheiro 𝑎𝑖 no ciclo r, é escolhida para pertencer a SVr,s se (𝑟) 𝑟−1 ) 𝑎𝑖 . 𝐻(𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄 ) ≤ 𝑝. .[00563] The next simplest deployment may be to require that each public key has a maximum amount of M money, for some fixed M. The M value is small enough compared to the total amount of money in the system, so that the probability that a key belongs to the set of verifiers of more than one step in - say - k cycles is insignificant. Then, a key i ∈ PKr-k, which has a (𝑟) amount of money 𝑎𝑖 in cycle r, is chosen to belong to SVr, s if (𝑟) 𝑟 − 1) 𝑎𝑖. 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄) ≤ 𝑝..

𝑀𝑀

[00564] E tudo ocorre como antes. Uma Implantação Mais Complexo[00564] And everything happens as before. A More Complex Deployment

[00565] A última implantação “forçou um participante rico no sistema a ter muitas chaves”.[00565] The last deployment “forced a rich participant in the system to have many keys”.

[00566] Uma implantação alternativa, descrita abaixo, generaliza a noção de estado e considera que cada usuário i consiste em K + 1 cópias (i, v), cada uma dessas é independentemente selecionada como 𝑟,𝑠 𝑟,𝑠 um verificador, e terá sua própria chave efêmera (𝑝𝑘𝑖,𝑣 , 𝑠𝑘𝑖,𝑣 ) em uma etapa (𝑟) s de um ciclo r. O valor K depende da quantidade de dinheiro 𝑎𝑖 que i tem no ciclo r.[00566] An alternative deployment, described below, generalizes the notion of state and considers that each user i consists of K + 1 copies (i, v), each of which is independently selected as 𝑟, 𝑠 𝑟, 𝑠 a verifier, and will have its own ephemeral key (𝑝𝑘𝑖, 𝑣, 𝑠𝑘𝑖, 𝑣) in one step (𝑟) s of a cycle r. The K value depends on the amount of money 𝑎𝑖 that i has in cycle r.

[00567] Observa-se agora como tal sistema trabalha em mais detalhes.[00567] It is now observed how such a system works in more detail.

[00568] Número de Cópias Seja n a cardinalidade esperada alvo de cada conjunto de verificador, e seja a quantidade de dinheiro possuído por um usuário i no ciclo r. Seja Ar a quantidade total de dinheiro possuído pelos usuários em PKr-k no ciclo r, isto é, (𝑟) 𝐴𝑟 = ∑ 𝑎𝑖 . 𝑖∈𝑃𝐾𝑟−𝑘[00568] Number of Copies Let n be the expected target cardinality of each verifier set, and let the amount of money be owned by a user i in cycle r. Let Ar be the total amount of money owned by users in PKr-k in cycle r, that is, (𝑟) 𝐴𝑟 = ∑ 𝑎𝑖. 𝑖∈𝑃𝐾𝑟 − 𝑘

[00569] Se i for um usuário em PKr-k, então, cópias de i são (i, 1), . . . , (i, K + 1), em que (𝑟) 𝑛.𝑎𝑖 𝐾=⌊ ⌋. 𝐴𝑟 (𝑟)[00569] If i is a PKr-k user, then copies of i are (i, 1),. . . , (i, K + 1), where (𝑟) 𝑛.𝑎𝑖 𝐾 = ⌊ ⌋. 𝐴𝑟 (𝑟)

[00570] EXEMPLO Permite-se que n = 1.000, Ar = 109 e 𝑎𝑖 = 3,7 milhões. Então, 103 .(3,7 .106 ) 𝐾=⌊ ⌋ = ⌊3,7⌋ = 3. 109[00570] EXAMPLE n = 1,000, Ar = 109 and 𝑎𝑖 = 3.7 million are allowed. So, 103. (3.7 .106) 𝐾 = ⌊ ⌋ = ⌊3.7⌋ = 3. 109

[00571] Verificadores e Credenciais Permite-se que i seja um usuário em PKr-k com K + 1 cópias.[00571] Verifiers and Credentials i is allowed to be a PKr-k user with K + 1 copies.

[00572] Para cada v = 1, . . . , K, cópia (i, v) pertence a SVr,s 𝑟,𝑠 automaticamente. Ou seja, a credencial de i é 𝜎𝑖,𝑣 ≜ 𝑆𝐼𝐺𝑖 ((𝑖, 𝑣 ), 𝑟, 𝑠, 𝑄𝑟−1 ), 𝑟,𝑠 mas a condição correspondente se torna . 𝐻(𝜎𝑖,𝑣 ) ≤ 1, que é sempre verdadeira.[00572] For each v = 1,. . . , K, copy (i, v) belongs to SVr, s 𝑟, 𝑠 automatically. That is, the credential of i is 𝜎𝑖, 𝑣 ≜ 𝑆𝐼𝐺𝑖 ((𝑖, 𝑣), 𝑟, 𝑠, 𝑄𝑟 − 1), 𝑟, 𝑠 but the corresponding condition becomes. 𝐻 (𝜎𝑖, 𝑣) ≤ 1, which is always true.

[00573] Para cópia (i, K + 1), para cada Etapa s do ciclo r, i verifica a possibilidade de (𝑟) 𝑛 . 𝐻 (𝑆𝐼𝐺𝑖 ((𝑖, 𝐾 + 1), 𝑟, 𝑠, 𝑄𝑟−1 )) ≤ 𝑎𝑖 − 𝐾. 𝐴𝑟[00573] For copying (i, K + 1), for each Step s of cycle r, i checks the possibility of (𝑟) 𝑛. 𝐻 (𝑆𝐼𝐺𝑖 ((𝑖, 𝐾 + 1), 𝑟, 𝑠, 𝑄𝑟 − 1)) ≤ 𝑎𝑖 - 𝐾. 𝐴𝑟

[00574] Se for, a cópia (i, K + 1) pertence a SVr,s. Para provar isso, i propaga a credencial 𝑟,1 𝜎𝑖,𝐾+1 = 𝑆𝐼𝐺𝑖 ((𝑖, 𝐾 + 1), 𝑟, 𝑠, 𝑄𝑟−1 ). (𝑟)[00574] If so, the copy (i, K + 1) belongs to SVr, s. To prove this, i propagates the credential 𝑟, 1 𝜎𝑖, 𝐾 + 1 = 𝑆𝐼𝐺𝑖 ((𝑖, 𝐾 + 1), 𝑟, 𝑠, 𝑄𝑟 − 1). (𝑟)

[00575] EXEMPLO Como no exemplo anterior, seja n = 1K, 𝑎𝑖 = 3,7 M, Ar = 1B, e i tenha 4 cópias: (i, 1), . . . , (i, 4). Então, as primeiras 3 cópias pertencem a SVr,s automaticamente. Para a 4ª, conceitualmente, Algorand' lança independentemente uma moeda tendenciosa, cuja probabilidade de Cara é 0,7. A cópia (i, 4) é seleciona se e apenas se a moeda der Cara.[00575] EXAMPLE As in the previous example, let n = 1K, 𝑎𝑖 = 3.7 M, Ar = 1B, and i have 4 copies: (i, 1),. . . , (i, 4). Then, the first 3 copies belong to SVr, s automatically. For the 4th, conceptually, Algorand 'independently launches a biased currency, whose probability for Cara is 0.7. The copy (i, 4) is selected if and only if the currency gives Cara.

[00576] (Evidentemente, esse lançamento de moeda tendenciosa é implantado por hash, assinatura e comparação — como foi feito ao longo de todo esse pedido — de modo a permitir i a provar seu resultado.)[00576] (Of course, this biased coin launch is implemented by hashing, signing and comparing - as was done throughout this order - in order to allow i to prove its result.)

[00577] Negócios como de Costume Explicando-se como os verificadores são selecionados e como suas credenciais são computados em cada etapa de um ciclo r, a execução de um ciclo é semelhante àquela já explicada. 8 Algorand Com A Suposição De Nenhuma Partição De Rede[00577] Business as usual Explaining how verifiers are selected and how their credentials are computed at each stage of a cycle r, the execution of a cycle is similar to the one already explained. 8 Algorand With The Assumption Of No Network Partition

[00578] Essencialmente, na Algorand, os blocos são gerados em ciclos. Em um ciclo r,[00578] Essentially, at Algorand, the blocks are generated in cycles. In an r cycle,

[00579] (1) Um líder adequadamente credenciado propõe um novo bloco e, então,[00579] (1) A suitably accredited leader proposes a new bloc and then

[00580] (2) Usuários adequadamente credenciados executam, ao longo de diversas etapas, um protocolo de acordo Bizantino (BA) adequado no bloco proposto.[00580] (2) Properly accredited users execute, through several stages, an appropriate Byzantine agreement (BA) protocol in the proposed block.

[00581] O protocolo de BA preferido é 𝐵𝐴∗ . A etapa de proposta de bloco pode ser considerada a etapa 1, de modo que as etapas de 𝐵𝐴∗ sejam 2, 3,...[00581] The preferred BA protocol is 𝐵𝐴 ∗. The proposal block stage can be considered as step 1, so that the steps of 𝐵𝐴 ∗ are 2, 3, ...

[00582] Apenas um usuário adequado i, aleatoriamente selecionado dentre os usuários no sistema, é autorizado a enviar uma mensagem 𝑚𝑖𝑟,𝑠 na etapa s do ciclo r. Algorand é muito rápida e segura devido a tal usuário i verificar a possibilidade de o mesmo ser autorizado a falar. Se esse for o caso, o usuário i realmente obtém uma prova, uma credencial. Se for sua vez de falar na etapa s do ciclo r, i propaga na rede tanto sua credencial, 𝜎𝑖𝑟,𝑠 quanto sua mensagem digitalmente assinada 𝑚𝑖𝑟,𝑠 . A credencial prova para outros usuários que os mesmos devem levar em consideração a mensagem 𝑚𝑖𝑟,𝑠 .[00582] Only one suitable user i, randomly selected from among the users in the system, is authorized to send a message 𝑚𝑖𝑟, 𝑠 in step s of cycle r. Algorand is very fast and secure due to such a user i check the possibility of him being allowed to speak. If that is the case, user i actually obtains a proof, a credential. If it is your turn to speak in step s of cycle r, i propagates both your credential, 𝜎𝑖𝑟, 𝑠 and your digitally signed message 𝑚𝑖𝑟, na on the network. The credential proves to other users that they must take the message 𝑚𝑖𝑟, 𝑠 into account.

[00583] Uma condição necessária para o usuário i a ser autorizado a falar na etapa s do ciclo r é que o mesmo já estivesse no sistema a alguns ciclos atrás. Especificamente, k ciclos antes do ciclo r, em que k é um parâmetro chamado parâmetro “olhe para trás”. Ou seja, para ser elegível a falar no ciclo r, i deve pertencer a PKr-k, o conjunto de todas as chaves públicas/usuários já no sistema no ciclo r - k. (Os usuários podem ser identificados com suas chaves públicas.) Essa condição é fácil de ser verificada no sentido de que é derivável da cadeia de blocos.[00583] A necessary condition for user i to be authorized to speak in step s of cycle r is that it was already in the system a few cycles ago. Specifically, k cycles before cycle r, where k is a parameter called the “look back” parameter. That is, to be eligible to speak in cycle r, i must belong to PKr-k, the set of all public keys / users already in the system in cycle r - k. (Users can be identified with their public keys.) This condition is easy to verify in the sense that it is derivable from the block chain.

[00584] A outra condição é que 𝐻(𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 )) < 𝑝[00584] The other condition is that 𝐻 (𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟 − 1)) <𝑝

[00585] em que p é uma determinada probabilidade que controla o número esperado de verificadores em SVr,s, isto é, o conjunto de usuários autorizados a falar na etapa s do ciclo r. Se essa condição for satisfeita, então, a credencial de i é definida como 𝜎𝑖𝑟,𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟−1 ).[00585] where p is a certain probability that controls the expected number of verifiers in SVr, s, that is, the set of users authorized to speak in step s of cycle r. If this condition is met, then i's credential is defined as 𝜎𝑖𝑟, 𝑠 ≜ 𝑆𝐼𝐺𝑖 (𝑟, 𝑠, 𝑄𝑟 − 1).

[00586] Evidentemente, apenas i pode constatar a possibilidade de o mesmo pertencer a SVr,s. Todos os outros usuários, que carecem de conhecimento sobre a chave de assinatura secreta de i, não tem ideia sobre isso. No entanto, se i ∈ SVr,s, então, i pode demonstrar que esse é o caso para qualquer um propagando-se sua credencial 𝜎𝑖𝑟,𝑠 dada a cadeia de blocos até o momento. Relembrando-se, de fato, que (1) Qr-1 é facilmente computável a partir do bloco anterior, Br-1, embora essencialmente imprevisível muitos blocos o suficiente antes, e (2) qualquer pessoa pode verificar as assinaturas digitais de i (com relação a sua chave de longo prazo no sistema).[00586] Of course, only i can verify the possibility that it belongs to SVr, s. All other users, who lack knowledge about i's secret signature key, have no idea about that. However, if i ∈ SVr, s, then i can demonstrate that this is the case for anyone propagating their credential 𝜎𝑖𝑟, 𝑠 given the chain of blocks so far. Recalling, in fact, that (1) Qr-1 is easily computable from the previous block, Br-1, although essentially enough blocks are unpredictable enough before, and (2) anyone can check the digital signatures of i ( regarding your long-term key in the system).

[00587] Relembrando-se que, nas versões da Algorand até o momento, novos blocos são propostos apenas uma vez em um ciclo r, — isto é, na etapa 1. O protocolo de BA faz com que os usuários cheguem a um consenso sobre um desses (ou o bloco vazio), e não proponham adicionalmente novos blocos ou proponham novamente blocos que já foram propostos para o ciclo r. Quando a rede não é particionada e os limites superiores para o tempo para propagar mensagens são cumpridos, os usuários alcançam o consenso eficaz e seguramente. 9 Algorand Resistente Contra Partição De Rede[00587] Bearing in mind that, in Algorand versions so far, new blocks are proposed only once in a cycle r, - that is, in step 1. The BA protocol allows users to reach a consensus on one of these (or the empty block), and do not additionally propose new blocks or again propose blocks that have already been proposed for cycle r. When the network is not partitioned and the upper limits for the time to propagate messages are met, users reach consensus effectively and safely. 9 Algorand Resistant Against Network Partition

[00588] Descreve-se agora uma nova modalidade da Algorand, Algorand2, que dispensa a suposição de nenhuma partição de rede. Apresenta-se o novo protocolo sob a suposição de Maior Parte Honesta de Usuários (HMU). Com o uso da mesma abordagem que na Seção 7, a suposição de HMU pode ser substituída pela suposição Maior Parte Honesta de Dinheiro (HMM).[00588] A new Algorand modality is now described, Algorand2, which dispenses with the assumption of any network partitions. The new protocol is presented under the assumption of Most Honest Users (HMU). Using the same approach as in Section 7, the HMU assumption can be replaced by the Most Honest Money (HMM) assumption.

9.1 Modelo De Comunicação9.1 Communication Model

[00589] Quando a rede não é particionada, as mensagens pequenas levam o tempo λ para se propagaram para todos os usuários honestos, e os blocos levam o tempo Λ para se propagaram para todos os usuários honestos, como antes. Quando a rede é particionada em mais de um grupo de usuários, o adversário determina se uma mensagem m propagada por um usuário a partir de um grupo será entregue para os usuários em outros grupos, quem em outros grupos receberá m e quando os mesmos receberão m. Uma partição de rede pode ser resolvida em um tempo indefinido no futuro e as mensagens propagadas durante a partição são entregues para todos os usuários após a partição ser resolvida. Para simplicidade, porém sem limitação desejada, descreve-se a nova modalidade presumindo-se que as mensagens propagadas durante uma partição de rede sejam entregues para todos os usuários imediatamente após a partição ser resolvida. Por exemplo, se uma partição de rede dura do tempo t1 para o tempo t2, e seja M o conjunto de mensagens propagadas durante a partição, então, todos os usuários recebem mensagens em M pelo tempo t2. Aqueles versados na técnica perceberão que o sistema descrito no presente documento pode lidar com outras situações em que mensagens em M levam determinada quantidade de tempo para chegar a todos os usuários ou são propagadas novamente pelos usuários que recebem as mesmas.[00589] When the network is not partitioned, small messages take time λ to propagate to all honest users, and blocks take time λ to propagate to all honest users, as before. When the network is partitioned into more than one group of users, the opponent determines whether a message m propagated by a user from one group will be delivered to users in other groups, who in other groups will receive m and when they will receive m. A network partition can be resolved at an indefinite time in the future and messages propagated during the partition are delivered to all users after the partition is resolved. For simplicity, but without any desired limitation, the new modality is described assuming that messages propagated during a network partition are delivered to all users immediately after the partition is resolved. For example, if a network partition lasts from time t1 to time t2, and M is the set of messages propagated during the partition, then all users receive messages in M for time t2. Those skilled in the art will realize that the system described in this document can handle other situations in which messages in M take a certain amount of time to reach all users or are propagated again by the users who receive them.

9.2 Escolhas De Parâmetros9.2 Parameter Choices

[00590] O tamanho de comitê esperado n e o limite tH são escolhidos de acordo com as seguintes condições. Seja PK o conjunto de usuários, HPK e MPK respectivamente o conjunto de usuários honestos e maliciosos. Seja HPK1 um subconjunto arbitrário de HPK com metade do tamanho. Quando cada usuário i ∈ PK for selecionado independente e 𝑛 aleatoriamente com probabilidade 𝑝 = |𝑃𝐾|, sejam HSV1 e MSV, respectivamente, o conjunto daqueles selecionados dentre HPK1 e MPK. Então, com probabilidade imensa, |HSV1| + |MSV| < tH.[00590] The expected committee size n and the tH limit are chosen according to the following conditions. Let PK be the set of users, HPK and MPK respectively the set of honest and malicious users. Let HPK1 be an arbitrary subset of HPK half the size. When each user i ∈ PK is selected independently and 𝑛 randomly with probability 𝑝 = | 𝑃𝐾 |, be HSV1 and MSV, respectively, the set of those selected from HPK1 and MPK. So, with immense probability, | HSV1 | + | MSV | <tH.

[00591] Além disso, seja HSV o conjunto daqueles selecionados dentre HPK. Então, com probabilidade imensa, |HSV| ≥ tH.[00591] Furthermore, let HSV be the group of those selected from among HPK. So, with immense probability, | HSV | ≥ tH.

[00592] Observa-se que as duas condições acima implicam |HSV| > 2|MSV|.[00592] It is observed that the two conditions above imply | HSV | > 2 | MSV |.

[00593] Por exemplo, quando h = 80% e PK é grande o suficiente, pode-se escolher n = 3.500 e tH = 2.625.[00593] For example, when h = 80% and PK is large enough, one can choose n = 3,500 and tH = 2,625.

9.3 Estrutura Geral9.3 General Structure

[00594] Ciclos. O protocolo gera um bloco a cada ciclo. Um ciclo consiste em períodos 1, 2, ... e um período consiste em etapas 1, 2, .... A qualquer momento no tempo, cada usuário i está trabalhando em exatamente um par de ciclo-período. Em particular, usa-se r.p para se referir ao período p do ciclo r.[00594] Cycles. The protocol generates a block at each cycle. A cycle consists of periods 1, 2, ... and a period consists of steps 1, 2, .... At any point in time, each user i is working on exactly one cycle-period pair. In particular, r.p is used to refer to period p of cycle r.

[00595] Na etapa 1 do período 1, os usuários propõem novos blocos. Na etapa 1 dos seguintes períodos, os usuários propõem novos blocos ou propõem novamente blocos que já foram propostos em períodos anteriores.[00595] In step 1 of period 1, users propose new blocks. In step 1 of the following periods, users propose new blocks or resubmit blocks that have already been proposed in previous periods.

[00596] Comitês. Cada etapa s do período r.p tem um comitê escolhido por autosseleção criptográfica, denotada por SVr,p,s. Usa-se o mesmo parâmetro de olhar para trás que na Seção 4.1, denotado por k. Por exemplo, k = 70. Um usuário i é elegível a ser selecionado nos comitês de ciclo-r se i ∈ PKr-k. O comitê para a Etapa 1 de cada período tem tamanho esperado n1 (por exemplo, 35) e todos os outros comitês têm tamanho esperado n. Os membros de comitê para a Etapa 1 são denominados líderes potenciais.[00596] Committees. Each step s of the r.p period has a committee chosen by cryptographic self-selection, denoted by SVr, p, s. The same look-back parameter is used as in Section 4.1, denoted by k. For example, k = 70. A user i is eligible to be selected on the cycle-r committees if i ∈ PKr-k. The committee for Step 1 of each period has an expected size n1 (for example, 35) and all other committees have an expected size n. The committee members for Step 1 are called potential leaders.

[00597] Observa-se que para simplicidade, porém sem limitação desejada, descreve-se a nova modalidade no presente documento com o mesmo tamanho de comitê esperado n para todas as etapas diferentes da etapa 1 de cada período. Aqueles versados na técnica perceberão que comitês diferentes podem ter tamanhos diferentes e podem observar como derivar todos os tipos de outras implantações também.[00597] It is noted that for simplicity, but without the desired limitation, the new modality is described in this document with the same committee size expected n for all the different stages of step 1 of each period. Those skilled in the art will realize that different committees can be of different sizes and can observe how to derive all types of other deployments as well.

[00598] Chaves. Todas as credenciais para autosseleção criptográfica são assinadas com chaves de longo prazo dos usuários para um esquema de assinatura digital com assinaturas únicas, assim também são as sementes aleatórias Qr especificadas nos blocos. Todas as outras mensagens são assinadas com o uso de chaves efêmeras de etapas correspondentes. Em geral, será usado SIGi(m) para denotar a assinatura de usuário i para a mensagem m, sem especificar as chaves.[00598] Keys. All credentials for cryptographic self-selection are signed with long-term user keys for a digital signature scheme with unique signatures, so are the random Qr seeds specified in the blocks. All other messages are signed using ephemeral keys from corresponding steps. In general, SIGi (m) will be used to denote the signature of user i for message m, without specifying the keys.

[00599] Observa-se que, para simplicidade, porém sem limitação desejada, descreve-se a nova modalidade no presente documento com chaves efêmeras. Aqueles versados na técnica podem observar como derivar outras implantações com cadeias de blocos de mensagem credenciada, incluindo usar técnicas introduzidas em versões existentes da Algorand.[00599] It is noted that, for simplicity, but without the desired limitation, the new modality is described in this document with ephemeral keys. Those skilled in the art can observe how to derive other deployments with accredited message block chains, including using techniques introduced in existing versions of Algorand.

[00600] Definição 9.1. Credencial: A credencial de usuário de 𝑟,𝑝,𝑠 i 𝜎𝑖 para um ciclo r, o período p e a etapa s é SIGi(Qr-1, r, p, s).[00600] Definition 9.1. Credential: The user credential of 𝑟, 𝑝, 𝑠 i 𝜎𝑖 for a cycle r, period p and step s is SIGi (Qr-1, r, p, s).

[00601] Um membro de comitê para uma etapa sempre propaga sua credencial correspondente em conjunto com sua mensagem para tal etapa, e a propagação de credenciais não será explicitamente mencionada.[00601] A committee member for a stage will always propagate his corresponding credential together with his message for that stage, and the propagation of credentials will not be explicitly mentioned.

[00602] Definição 9.2. Líder: O líder ℓr.p para o período r.p é o 𝑟,𝑝,1 usuário arg 𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟,𝑝,1 𝐻(𝜎𝑖 ).[00602] Definition 9.2. Leader: The leader ℓr.p for the period r.p is 𝑟, 𝑝, 1 user arg 𝑚𝑖𝑛𝑗∈𝑆𝑉 𝑟, 𝑝, 1 𝐻 (𝜎𝑖).

[00603] Quando um usuário i identifica seu próprio líder para o 𝑟,𝑝,1 período r.p, ℓi,r.p, i configura ℓi,r.p, como o usuário arg 𝑚𝑖𝑛𝑗∈𝑆𝑖 𝐻(𝜎𝑗 ), em que Si é o conjunto de líderes potenciais a partir dos quais i recebeu credenciais válidas.[00603] When a user i identifies his own leader for the 𝑟, 𝑝, 1 period rp, ℓi, rp, i configures ℓi, rp, as the user arg 𝑚𝑖𝑛𝑗∈𝑆𝑖 𝐻 (𝜎𝑗), where Si is the set of potential leaders from which i received valid credentials.

[00604] Definição 9.3. Bloco válido: Chama-se um bloco proposto durante o ciclo r válido se e apenas se todas as suas transações são válidas com relação aos blocos B0, B1, · · ·, Br-1 e a semente Qr especificada por isso segue as regras do protocolo.[00604] Definition 9.3. Valid block: It is called a proposed block during cycle r valid if and only if all its transactions are valid with respect to blocks B0, B1, · · ·, Br-1 and the specified Qr seed so it follows the rules of protocol.

[00605] Mensagens de Voto. Os membros de comitê geram três tipos de mensagens de voto.[00605] Voting messages. Committee members generate three types of vote messages.

[00606] Definição 9.4. Cert-vote: O cert-vote de usuário i para um valor v para o período r.p é a assinatura SIGi(v, “cert”, r.p).[00606] Definition 9.4. Cert-vote: The cert-vote of user i for a value v for the period r.p is the SIGi signature (v, “cert”, r.p).

[00607] Diz-se que um usuário i realiza cert-vote para um valor v para o período r.p quando o mesmo propaga SIGi(v, “cert”, r.p).[00607] It is said that a user i cert-votes for a value v for the period r.p when it propagates SIGi (v, "cert", r.p).

[00608] Definição 9.5. Soft-vote: O soft-vote de usuário i para um valor v para o período r.p é a assinatura SIGi(v, “soft”, r.p).[00608] Definition 9.5. Soft-vote: The soft-vote of user i for a value v for the period r.p is the SIGi signature (v, “soft”, r.p).

[00609] Diz-se que um usuário i realiza soft-vote para um valor v para o período p quando o mesmo propaga SIGi(v, “soft”, r.p).[00609] It is said that a user i soft-vote for a value v for period p when it propagates SIGi (v, “soft”, r.p).

[00610] Definição 9.6. Next-vote: O next-vote de usuário i para um valor v para o período r.p e etapa s é a assinatura SIGi(v, “next”, r.p.s).[00610] Definition 9.6. Next-vote: The next-vote of user i for a value v for the period r.p and step s is the SIGi signature (v, “next”, r.p.s).

[00611] Diz-se que um usuário i realiza next-votes um valor v quando o mesmo propaga SIGi(v, “next” , r.p.s).40[00611] It is said that a user i performs next-votes a value v when it propagates SIGi (v, “next”, r.p.s) .40

[00612] Os valores v que serão votados são valores na faixa da função hash H ou um símbolo especial ⊥ do mesmo comprimento, mas fora da faixa de H.41[00612] The v values that will be voted on are values in the range of the H hash function or a special symbol ⊥ of the same length, but outside the range of H.41

[00613] Temporizadores. Cada usuário i mantém um relógioi de temporizador, que o mesmo reconfigura para 0 todas as vezes que o mesmo começa um novo período. Contanto que i permaneça no mesmo período, o relógioi mantém a contagem. Os temporizadores individuais de usuários não precisam ser sincronizados ou quase sincronizados. A única exigência é que os mesmos tenham a mesma velocidade.[00613] Timers. Each user i keeps a timer clock, which it resets to 0 every time it starts a new period. As long as i stays in the same period, the clock keeps counting. Individual user timers do not need to be synchronized or nearly synchronized. The only requirement is that they have the same speed.

9.4 O Protocolo Real Da Algorand29.4 The Royal Algorand2 Protocol

[00614] No protocolo abaixo, blocos e credenciais de líderes potenciais de períodos diferentes são propagados de modo seletivo como na Seção 5. Ciclo r, Período 1[00614] In the protocol below, blocks and credentials of potential leaders from different periods are selectively propagated as in Section 5. Cycle r, Period 1

[00615] As seguintes são instruções de período 1 para um usuário genérico i. Se o usuário i não estiver no comitê de uma etapa específica, o mesmo ainda computa seu voto em tal etapa, mas não propaga o mesmo.[00615] The following are period 1 instructions for a generic user i. If user i is not on the committee for a specific stage, he still computes his vote for that stage, but does not propagate the same.

[00616] No momento em que o usuário i começa seu próprio 40 Em cada período, os soft-votes são gerados apenas em uma etapa, e da mesma forma são os cert-votes. Desse modo, os mesmos não precisam especificar a etapa correspondente. Os next-votes podem ser gerados em múltiplas etapas e precisam especificar os números de etapa. 41 A estrutura em blocos nesse manuscrito é a mesma que em versões existentes da Algorand, com o cabeçalho de um bloco B, Cabeçalho(B), que contém tudo em B exceto o conjunto de pagamentos atual. Como no protocolo original, pode-se solicitar que os líderes potenciais propaguem os cabeçalhos de seus blocos propostos em conjunto com os hashes, para permitir que os usuários comecem um ciclo r+1 antes de observar o bloco real Br. Nesse caso, v e ⊥ são do mesmo comprimento que os pares de hash-cabeçalho possíveis. Os cabeçalhos serão ignorados na descrição de protocolo abaixo.[00616] At the moment when user i starts his own 40 In each period, soft-votes are generated only in one step, and in the same way are cert-votes. Thus, they do not need to specify the corresponding stage. Next-votes can be generated in multiple steps and need to specify the step numbers. 41 The block structure in this manuscript is the same as in existing versions of Algorand, with the header of a block B, Header (B), which contains everything in B except the current set of payments. As in the original protocol, potential leaders can be asked to propagate the headers of their proposed blocks together with the hashes, to allow users to start an r + 1 cycle before observing the real Br block. In this case, see ⊥ are the same length as possible hash-header pairs. Headers will be ignored in the protocol description below.

ciclo-r, o mesmo começa Período 1 e reconfigura o relógioi para 0.cycle-r, it starts Period 1 and resets the clock to 0.

[00617] ETAPA 1: [Proposta de Bloco] O usuário i realiza o seguinte quando relógioi = 0.[00617] STEP 1: [Block Proposal] User i performs the following when clock = 0.

[00618] ● Se i for um líder potencial, então, o mesmo prepara seu bloco proposto 𝐵𝑖𝑟,1 , que contém sua assinatura SIGi(Qr-1, r) para definir sua semente proposta 𝑄𝑖𝑟 .42 O mesmo propaga 𝐻(𝐵𝑖𝑟,1 ), e logo em seguida também propaga o bloco por si só.[00618] ● If i is a potential leader, then he prepares his proposed block 𝐵𝑖𝑟, 1, which contains his signature SIGi (Qr-1, r) to define his proposed seed 𝑄𝑖𝑟 .42 The same propagates 𝐻 (𝐵𝑖𝑟, 1), and immediately afterwards it also propagates the block by itself.

[00619] ETAPA 2: [A Etapa de Filtragem] O usuário i realiza o seguinte quando relógioi = 2λ.[00619] STEP 2: [The Filtering Step] User i performs the following when clock = 2λ.

[00620] ● O mesmo identifica seu líder ℓi,r.p e realiza soft-votes em seu hash de bloco proposto de líder.43[00620] ● He identifies his leader ℓi, r.p and soft-votes on his proposed leader block hash.43

[00621] ETAPA 3: [A Etapa de Certificação] Seja 𝑇 ≜ Λ + 𝜆. O usuário i realiza o seguinte quando relógioi ∈ (2λ, T).[00621] STEP 3: [The Certification Stage] Be 𝑇 ≜ Λ + 𝜆. User i does the following when I watch ∈ (2λ, T).

[00622] ● Se i observa um bloco válido B, em conjunto com tH soft-votes para H(B), então, i cert-votes H(B).[00622] ● If i observes a valid block B, together with tH soft-votes for H (B), then i cert-votes H (B).

[00623] ETAPA 4: [A Primeira Etapa de Finalização] O usuário i realiza o seguinte quando relógioi = T.[00623] STEP 4: [The First Finalization Stage] User i performs the following when clocking = T.

[00624] ● Se i realizou cert-vote em algum valor v na Etapa 3,44 então, o mesmo realiza next-votes v;[00624] ● If i made a cert-vote on some value v in Step 3.44 then it performs next-votes v;

[00625] ● De outro modo, o mesmo realiza next-votes ⊥.[00625] ● Otherwise, it performs next-votes ⊥.

[00626] ETAPA 5: [A Segunda Etapa de Finalização] O usuário i realiza o seguinte quando relógioi ∈ [T, T + L), em que L é igual a, diga-se, 50 Λ.45 42 Ou seja, 𝑄𝑖𝑟 = 𝐻(𝑆𝐼𝐺𝑖 (𝑄 𝑟−1 , 𝑟)). 43 Não se exige que i tenha observado o bloco real antes de realizar soft-vote. 44 Se i não está em SVr,1,3, o mesmo pode ainda realizar cert-vote em algum v “por si só”, sem propagar seu voto. 45 Se o Adversário não puder corromper os usuários dinamicamente, então, é suficiente fazer com que a Etapa 5 dure até o tempo ∞ e nenhuma etapa adicional, como na versão com permissão do[00626] STEP 5: [The Second Finalization Stage] User i performs the following when I watch ∈ [T, T + L), where L is equal to, say, 50 Λ.45 42 That is, 𝑄𝑖𝑟 = 𝐻 (𝑆𝐼𝐺𝑖 (𝑄 𝑟 − 1, 𝑟)). 43 i is not required to have observed the real block before soft-voting. 44 If i is not in SVr, 1.3, he can still make a cert-vote in some v “by himself”, without propagating his vote. 45 If the Opponent cannot dynamically corrupt users, then it is sufficient to make Step 5 last until time ∞ and no additional steps, as in the version with permission from

[00627] ● Se i observar um bloco válido B, em conjunto com tH soft-votes para H(B), então, i realiza next-votes H(B).[00627] ● If i observe a valid block B, together with tH soft-votes for H (B), then i performs next-votes H (B).

[00628] ETAPAS s ≥ 6: [Etapas de Finalização Consecutivas][00628] STEPS s ≥ 6: [Consecutive Finalization Steps]

[00629] ● Se s for par, então, i segue a mesma instrução de voto que na Etapa 4 quando relógioi = T + (s - 4)L/2.[00629] ● If s is even, then i follows the same voting instruction as in Step 4 when clocked = T + (s - 4) L / 2.

[00630] ● De outro modo (isto é, s é ímpar), i segue a mesma instrução de voto que na Etapa 5 quando relógioi ∈ [T + (s - 5)L/2, T + (s - 3)L/2). Ciclo r, Período p ≥ 2[00630] ● Otherwise (that is, s is odd), i follows the same voting instruction as in Step 5 when I watched ∈ [T + (s - 5) L / 2, T + (s - 3) L /two). Cycle r, Period p ≥ 2

[00631] As seguintes são instruções de período-p para um usuário genérico i. Novamente, se o usuário i não estiver no comitê de uma etapa específica, o mesmo ainda computa seu voto na etapa, mas não propaga o mesmo.[00631] The following are p-period instructions for a generic user i. Again, if user i is not on the committee for a specific stage, he still computes his vote for the stage, but does not propagate the same.

[00632] O usuário i começa o período p no momento em que o mesmo recebe tH next-votes para algum valor v (que pode ser igual a ⊥) para a mesma etapa s do período p - 1, e apenas se o mesmo não tiver ainda começado um período p' > p. O usuário i configura seu valor de partida para 𝑝 o período p, 𝑠𝑡𝑖 , para v. No momento em que i começa o período p, o mesmo termina todos os períodos anteriores e reconfigura relógioi em 0.[00632] User i starts period p at the moment when he receives tH next-votes for some value v (which can be equal to ⊥) for the same step s of period p - 1, and only if he does not period p '> p. User i sets his starting value for 𝑝 the period p, 𝑠𝑡𝑖, for v. The moment i starts the period p, it ends all previous periods and resets clocki to 0.

[00633] ETAPA 1: [Proposta de Bloco] Se usuário i é um líder potencial, então, o mesmo realiza o seguinte quando relógioi = 0.[00633] STEP 1: [Block Proposal] If user i is a potential leader, then he performs the following when clock = 0.

[00634] ● Se i observou tH next-votes para ⊥ para a mesma protocolo. Etapas adicionais são usadas para garantir que o protocolo se recupere após uma partição ser resolvida, mesmo se o Adversário tiver embolsado todas as mensagens da Etapa 4 e Etapa 5 e corrompido todos os membros de comitê da Etapa 4 e Etapa 5, de modo que os mesmos não possam reenviar suas mensagens após a partição. Um L menor ajuda a acelerar a resolução de partição no pior caso, enquanto um L maior reduz a quantidade de mensagens que precisam ser propagadas novamente uma vez que a partição seja resolvida.[00634] ● If i observed tH next-votes for ⊥ for the same protocol. Additional steps are used to ensure that the protocol recovers after a partition is resolved, even if the Opponent has pocketed all messages from Step 4 and Step 5 and corrupted all committee members in Step 4 and Step 5, so that they cannot resend their messages after the partition. A smaller L helps to speed up partition resolution in the worst case, while a larger L reduces the amount of messages that need to be re-propagated once the partition is resolved.

𝑟,𝑝 etapa s do período p — 1,46 então, i propõe um novo bloco 𝐵𝑖 , que define 𝑟,𝑝 sua semente proposta 𝑄𝑖𝑟 como H(Qr-1, r).47 O mesmo propaga 𝐻(𝐵𝑖 ), e logo em seguida também propaga o bloco por si só;𝑟, 𝑝 step s of the period p - 1.46 then, i proposes a new block 𝐵𝑖, which defines 𝑟, 𝑝 its proposed seed 𝑄𝑖𝑟 as H (Qr-1, r) .47 The same propagates 𝐻 (𝐵𝑖), and soon afterwards it also propagates the block by itself;

[00635] ● De outro modo (isto é, i recebeu apenas tH next-votes 𝑝 para algum v ≠ ⊥ para o mesmo período s do período p - 1, e 𝑠𝑡𝑖 = 𝑣), i 𝑝 propõe 𝑠𝑡𝑖 propagando-se o mesmo;48[00635] ● Otherwise (that is, i received only tH next-votes 𝑝 for some v ≠ ⊥ for the same period s of the period p - 1, and 𝑠𝑡𝑖 = 𝑣), i 𝑝 proposes ando propagating the same ; 48

[00636] ETAPA 2: [A Etapa de Filtragem] O usuário i realiza o seguinte quando relógioi = 2λ.[00636] STEP 2: [The Filtering Step] User i performs the following when clock = 2λ.

[00637] ● Se i tiver enviado tH next-votes para ⊥ para a mesma etapa s do período p - 1,49 então, i identifica seu líder ℓi,p para o período p e realiza soft-votes para o valor v proposto por ℓi,p;[00637] ● If i sent tH next-votes to ⊥ for the same step s of period p - 1.49 then i identifies its leader ℓi, p for period p and soft-votes to the value v proposed by ℓi ,P;

[00638] ● De outro modo (isto é, i recebeu apenas tH next-votes 𝑝 para v ≠ ⊥ para a mesma etapa s do período p - 1, e 𝑠𝑡𝑖 = 𝑣), i realiza soft- 𝑝 votes 𝑠𝑡𝑖 .[00638] ● Otherwise (that is, i received only tH next-votes 𝑝 for v ≠ ⊥ for the same step s of the period p - 1, and 𝑠𝑡𝑖 = 𝑣), i performs soft- 𝑝 votes 𝑠𝑡𝑖.

[00639] ETAPA 3: [A Etapa de Certificação] O usuário i realiza o seguinte quando relógioi ∈ (2λ, T), T = Λ + λ.[00639] STEP 3: [The Certification Stage] User i performs the following when I watch ∈ (2λ, T), T = Λ + λ.

[00640] ● Se i observa um bloco válido B, em conjunto com tH soft-votes para H(B), então, i cert-votes H(B).[00640] ● If i observes a valid block B, together with tH soft-votes for H (B), then i cert-votes H (B).

[00641] ETAPA 4: [A Primeira Etapa de Finalização] O usuário i realiza o seguinte quando relógioi = T.[00641] STEP 4: [The First Finalization Stage] User i performs the following when clocking = T.

46 Em casos extremos, um usuário i pode simultaneamente observar t next-votes para ⊥ e t46 In extreme cases, a user i can simultaneously observe t next-votes for ⊥ and t

H H next-votes para algum v ≠ ⊥ para o período p — 1. O mesmo está livre para configura seu valor de partida para ⊥ ou v nesse caso, mas a etapa de Proposta de Bloco sempre prioriza ⊥. 47 Ou seja, um bloco recentemente proposto para um período p ≥ 2 é como se não houvesse líder para esse, e a semente correspondente Qr é definida da mesma forma que no protocolo original da Algorand quando Br é o bloco vazio. 48 Nesse caso, usuários honestos o suficiente observaram um bloco válido B de modo que v = H(B), e não é exigido que i por si só tenha observado B. 49 Observa-se que esses votos podem chegar a i durante seu tempo (0, 2λ], desse modo, o valor de partida de i não é necessariamente ⊥.H H next-votes for some v ≠ ⊥ for period p - 1. It is free to set its starting value to ⊥ or v in this case, but the Block Proposal step always prioritizes ⊥. 47 In other words, a recently proposed block for a period p ≥ 2 is as if there was no leader for this one, and the corresponding seed Qr is defined in the same way as in the original Algorand protocol when Br is the empty block. 48 In this case, honest enough users have observed a valid block B so that v = H (B), and it is not required that i by itself have observed B. 49 It is noted that these votes can reach there during their time ( 0, 2λ], so the starting value of i is not necessarily ⊥.

[00642] ● Se i realizou cert-vote em algum valor v na Etapa 3, então, o mesmo realiza next-votes v;[00642] ● If i cert-voted for some value v in Step 3, then it performs next-votes v;

[00643] ● De outro modo, se i tiver observado tH next-votes para ⊥ para a mesma etapa s do período p - 1, o mesmo realiza next-vote para ⊥. 𝑝[00643] ● Otherwise, if i has observed tH next-votes for ⊥ for the same step s of period p - 1, it performs next-vote for ⊥. 𝑝

[00644] ● De outro modo, o mesmo realiza next-vote 𝑠𝑡𝑖 .[00644] ● Otherwise, it performs next-vote 𝑠𝑡𝑖.

[00645] ETAPA 5.1: [A Segunda Etapa de Finalização] O usuário i realiza o seguinte quando relógioi ∈ [T, T + L).[00645] STEP 5.1: [The Second Stage of Finalization] User i performs the following when clocking ∈ [T, T + L).

[00646] ● Se i observar um bloco válido B, em conjunto com tH soft-votes para H(B), então, i realiza next-votes H(B).[00646] ● If i observe a valid block B, together with tH soft-votes for H (B), then i performs next-votes H (B).

[00647] ETAPA 5.2: [A Segunda Etapa de Finalização] O usuário i realiza o seguinte quando relógioi ∈ [T, T + L).50[00647] STEP 5.2: [The Second Finalization Stage] User i performs the following when I watch ∈ [T, T + L) .50

[00648] ● Se i não tiver realizado cert-vote na Etapa 3 e o mesmo observar tH next-votes para T para a mesma etapa s do período p - 1, então, i realiza next-vote ⊥.[00648] ● If i did not cert-vote in Step 3 and the same observes tH next-votes for T for the same step s of period p - 1, then i performs next-vote ⊥.

[00649] ETAPAS S ≥ 6: [Etapas de Finalização Consecutivas][00649] STEPS S ≥ 6: [Consecutive Finalization Steps]

[00650] ● Se s for par, então, i segue a mesma instrução de voto que na Etapa 4 quando relógioi = T + (s — 4)L/2.[00650] ● If s is even, then i follows the same voting instruction as in Step 4 when clocked = T + (s - 4) L / 2.

[00651] ● De outro modo (isto é, s é ímpar), i segue as mesmas instruções de voto que nas Etapas 5.1 e 5.2 em paralelo quando relógioi ∈ [T + (s - 5)L/2, T + (s - 3)L/2). Ciclos De Alteração[00651] ● Otherwise (that is, s is odd), i follows the same voting instructions as in Steps 5.1 and 5.2 in parallel when I watched ∈ [T + (s - 5) L / 2, T + (s - 3) L / 2). Change Cycles

[00652] Instruções para cada usuário i ∈ PK:[00652] Instructions for each user i ∈ PK:

[00653] ● A qualquer ponto enquanto i está trabalhando em um ciclo r, se i observa uma linha v ≠ ⊥ e um período r'.p com r' ≥ r de modo que[00653] ● At any point while i is working on a cycle r, if i observe a line v ≠ ⊥ and a period r'.p with r '≥ r so that

[00654] - i recebeu pelo menos tH cert-votes para v para o 50 As Etapas 5.1 e 5.2 são tornadas em etapas diferentes de modo que as mesmas tenham comitês diferentes.[00654] - i received at least tH cert-votes for v for 50 Steps 5.1 and 5.2 are made into different stages so that they have different committees.

período r'.p,51 eperiod r'.p, 51 and

[00655] - i recebeu o cabeçalho de bloco correspondente a v,52[00655] - i received the block header corresponding to v, 52

[00656] então, i realiza cert-vote v para o período r'.p,53 configura seu próprio CERTr’ como o conjunto de cert-vote para v e começa o ciclo r' + 1.[00656] then, i performs cert-vote v for the period r'.p, 53 configures his own CERTr ’as the set of cert-vote for v and cycle r '+ 1 begins.

[00657] Referindo-se à Figura 6, um diagrama 20’ mostra uma primeira pluralidade de estações de trabalho de computação 22a a 22c conectadas a uma primeira porção 24’ de uma rede de dados, como a Internet, e uma segunda pluralidade de estações de trabalho de computação 22a’ a 22c’ conectadas a uma segunda porção 24” da rede de dados. As estações de trabalho 22a a 22c se comunicam entre si por meio da primeira porção 24’ da rede e as estações de trabalho 22a’ a 22c’ se comunicam entre si por meio da segunda porção 24” da rede. No entanto, diferente do diagrama 20 da Figura 1, as estações de trabalho 22a a 22c não se comunicam com as estações de trabalho 22a’ a 22c’ devido à rede ter sido particionada na primeira parte 24’ e na segunda parte 24” por um mecanismo de partição 26. O mecanismo de partição 26 pode ser qualquer mecanismo que suprime a comunicação entre as partes 24’, 24” da rede. Observa-se que o mecanismo de partição 26 pode ser inserido propositalmente na rede por um adversário ou pode ocorrer devido a uma interrupção de rede não antecipada causada por fenômenos naturais ou feitos pelo homem, como uma falta de energia ou um erro de comutação de rede. No sistema descrito no presente documento, cada uma dentre as estações de trabalho 22a a 22c, 22a’ a 22c’ realiza as etapas estabelecidas acima, mas a primeira pluralidade de estações de trabalho 22a a 22c não se comunica com a segunda 51 Um cert-vote de um participante j é contado mesmo se o participante i também tiver recebido uma mensagem de j realizando cert-vote para um valor diferente para o mesmo período. Como mostrado na análise, isso é realizado para garantir que todos os usuários honestos conheçam CERT no tempo λ uns dos outros. 52 O cabeçalho define a semente Q r’ e, como mencionado anteriormente, a rigor, o cabeçalho faz parte de v por si só. 53 Para a análise teórica não é necessário que i propague seu voto, devido ao fato de o mesmo já ter ajudado a propagar os tH cert-votes que o mesmo recebeu. No entanto, fazer com que i propague seu voto quando i ∈ SVr',p,3 ajuda os outros usuários a observarem um certificado mais rápido na realidade.[00657] Referring to Figure 6, a diagram 20 'shows a first plurality of computing workstations 22a to 22c connected to a first portion 24' of a data network, such as the Internet, and a second plurality of stations computing jobs 22a 'to 22c' connected to a second 24 ”portion of the data network. Workstations 22a to 22c communicate with each other via the first 24 'portion of the network and workstations 22a' to 22c 'communicate with each other via the second 24' portion of the network. However, unlike diagram 20 in Figure 1, workstations 22a to 22c do not communicate with workstations 22a 'to 22c' due to the network being partitioned in the first part 24 'and the second part 24 ”by a partition mechanism 26. Partition mechanism 26 can be any mechanism that suppresses communication between parts 24 ', 24 ”of the network. It is observed that the partition mechanism 26 can be purposely inserted into the network by an adversary or it can occur due to an unanticipated network interruption caused by natural or man-made phenomena, such as a power failure or a network switching error . In the system described in this document, each of the workstations 22a to 22c, 22a 'to 22c' performs the steps set out above, but the first plurality of workstations 22a to 22c does not communicate with the second 51 A certificate vote from participant j is counted even if participant i also received a message from j by cert-voting for a different amount for the same period. As shown in the analysis, this is done to ensure that all honest users know each other's CERT in time λ. 52 The header defines the seed Q r 'and, as mentioned earlier, strictly speaking, the header is part of v by itself. 53 For the theoretical analysis it is not necessary that i propagate his vote, due to the fact that he has already helped to propagate the tH cert-votes that he received. However, having i propagate your vote when i ∈ SVr ', p, 3 helps other users to observe a certificate faster in reality.

pluralidade de estações de trabalho 22a’ a 22c’. Ou seja, cada um dentre as entidades 22a a 22c gerencia um sistema de transação localmente na parte 24’ enquanto cada uma das entidades 22a’ a 22c’ gerencia um sistema de transação localmente na parte 24”. Apenas uma das partes 24’, 24”, no máximo, tem usuários (entidades) o suficiente para gerar blocos certificados. Após o mecanismo de partição 26 ser removido e as partes 24’, 24” convergirem para uma rede única (como a rede 24, discutida acima em conexão com a Figura 1), todas as estações de trabalho 22a a 22c, 22a’ a 22c’ se comunicam entre si e têm a capacidade para continuarem a operação no mesmo ponto (bloco) da cadeia. Após o mecanismo de partição 26 ser removido, cada uma dentre as entidades 22a a 22c, 22a’ a 22c’ gerencia um sistema de transação único na rede em que todas as entidades 22a a 22c, 22a’ a 22c’ se comunicam entre si.plurality of workstations 22a 'to 22c'. That is, each of entities 22a to 22c manages a transaction system locally in part 24 ’while each of entities 22a’ to 22c ’manages a transaction system locally in part 24’. Only one of the parties 24 ’, 24”, at most, has enough users (entities) to generate certified blocks. After partition mechanism 26 is removed and parts 24 ', 24 ”converge to a single network (such as network 24, discussed above in connection with Figure 1), all workstations 22a to 22c, 22a' to 22c 'communicate with each other and have the ability to continue operation at the same point (block) in the chain. After the partition mechanism 26 is removed, each of the entities 22a to 22c, 22a 'to 22c' manages a unique transaction system on the network in which all the entities 22a to 22c, 22a 'to 22c' communicate with each other.

[00658] Análise: Mesmo quando a rede é particionada, a nova modalidade permanece segura — isto é, no máximo um bloco é certificado para cada ciclo r. Em um alto nível, isso é devido a usuários honestos realizarem cert-vote no máximo uma vez em cada período do ciclo r, e as escolhas do tamanho de comitê n e o limite tH garantirem que em cada período r.p, no máximo um valor hash H(B) de um bloco válido B pode obter um certificado. Para observar isso a partir de uma direção diferente, presume-se que um período r.p gerou tH cert-votes para um bloco válido B e tH cert-votes para outro bloco válido B' com relação a B0, . . . , Br-1, então, as condições para como n e tH são escolhidos implicam que pelo menos um usuário honesto realizou cert-vote para os valores hash tanto de B quanto de B', o que contradiz o fato de que um usuário honesto realizou cert-vote no máximo uma vez no período r.p.[00658] Analysis: Even when the network is partitioned, the new modality remains safe - that is, at most one block is certified for each cycle r. At a high level, this is due to honest users cert-voting at most once in each period of cycle r, and the choice of committee size at the limit tH ensure that in each period rp, at most one hash value H ( B) from a valid block B can obtain a certificate. To observe this from a different direction, it is assumed that a period r.p generated tH cert-votes for a valid block B and tH cert-votes for another valid block B 'with respect to B0,. . . , Br-1, then, the conditions for how n and tH are chosen imply that at least one honest user has made cert-vote for the hash values of both B and B ', which contradicts the fact that an honest user has made cert -vote at most once in the rp period

[00659] Se em algum período r.p, um bloco válido B obteve um certificado —isto é, pelo menos tH cert-votes para seu valor hash H(B), então, em todos os períodos futuros p' > p (se os mesmos forem algum dia alcançados), B será o único bloco que pode obter um certificado no período r.p'. De fato, um usuário honesto não realiza next-vote para ⊥ no período r.p se o mesmo realizou cert-vote para H(B) em r.p. Desse modo, pelas mesmas escolhas de n e tH, em nenhuma etapa s ≥ 4 do período r.p haverá tH next- votes para ⊥ ou para qualquer outro valor v ≠ H(B). Desse modo, um usuário honesto se move para o período r.(p + 1) apenas se o mesmo recebeu pelo menos tH next-votes para H(B). Consequentemente, H(B) será o único valor que é proposto (novamente) na etapa 1 do período r.(p + 1), o único valor que usuários honestos realizarão soft-vote na etapa 2 do período r.(p + 1), e consequentemente o único valor que os mesmos realizarão cert-vote na etapa 3 e next-vote na etapa s ≥ 4 do período r.(p + 1). Por um argumento indutivo, o mesmo é verdadeiro para todos os períodos consecutivos.[00659] If in any period rp, a valid block B obtained a certificate - that is, at least tH cert-votes for its hash value H (B), then, in all future periods p '> p (if the same are ever achieved), B will be the only block that can obtain a certificate in the period r.p '. In fact, an honest user does not next-vote for ⊥ in the r.p period if he / she has done a cert-vote for H (B) in r.p. Thus, by the same choices of n and tH, at no stage s ≥ 4 of the period r.p will there be tH next-votes for ⊥ or for any other value v ≠ H (B). Thus, an honest user moves to period R. (p + 1) only if he has received at least tH next-votes for H (B). Consequently, H (B) will be the only value that is proposed (again) in step 1 of period R. (p + 1), the only value that honest users will soft-vote in step 2 of period R. (p + 1 ), and consequently the only value that they will make cert-vote in step 3 and next-vote in step s ≥ 4 of period r (p + 1). By an inductive argument, the same is true for all consecutive periods.

[00660] Observa-se que, quando a rede é particionada, B que obteve um certificado em um período r.p não significa que os usuários honestos receberão o certificado. De fato, durante uma partição de rede um adversário controla como as mensagens são entregues no sistema. O mesmo pode, por exemplo, permitir que todas as mensagens sejam entregues adequadamente exceto as com cert-vote, em que o mesmo não permite que cert-votes de um grupo de usuários sejam entregues para outros grupos. Não obstante, B que obteve um certificado implica que usuários honestos o suficiente realizaram cert-vote para o mesmo e não realizarão next-vote para qualquer outro, o que impede que qualquer outro bloco seja certificado no período r.p e qualquer período futuro.[00660] It is observed that, when the network is partitioned, B that obtained a certificate in an period r.p does not mean that honest users will receive the certificate. In fact, during a network partition an adversary controls how messages are delivered to the system. It can, for example, allow all messages to be delivered properly except those with cert-vote, where it does not allow cert-votes from one group of users to be delivered to other groups. Nevertheless, B who obtained a certificate implies that users who are honest enough have made a cert-vote for the same and will not make a next-vote for any other, which prevents any other block from being certified in the r.p period and any future period.

[00661] A eficácia da nova modalidade resulta de duas partes. Primeiro, quando a rede não é particionada, o consenso sobre o r-ésimo bloco é obtido rapidamente. De fato, se o líder da etapa 1 do período r.1 é honesto, então, todos os usuários honestos imediatamente realizam cert- vote para seu bloco proposto B, B obteve um certificado após a etapa 3 do período r.p, e todos os usuários honestos terminam o ciclo r após isso.[00661] The effectiveness of the new modality results from two parts. First, when the network is not partitioned, consensus on the r-th block is obtained quickly. In fact, if the leader of step 1 of period r.1 is honest, then all honest users immediately cert-vote for their proposed block B, B obtained a certificate after step 3 of the rp period, and all users honest people end cycle r after that.

[00662] De modo semelhante, se ciclo r tiver alcançado um período p ≥ 2 e o líder ℓ para o período p for honesto, então, o bloco recentemente proposto ou proposto novamente por ℓ é certificado na etapa 3 e todos os usuários honestos terminam o ciclo r após isso. Isso é devido ao fato de, se ℓ tiver observado tH next-votes para ⊥ de período p - 1 e proposto um novo bloco, então, aqueles next-votes alcançarão todos os usuários honestos no tempo λ e os mesmos realizarão soft-vote para proposta de ℓ. De outra forma, ℓ observou apenas tH next-votes para o hash H(B) de um bloco válido B do período p - 1 e propôs novamente (B). Todos os valores de partida de usuários honestos do período p são ⊥ ou H(B), e não importa qual é o caso, os mesmos realizam soft-vote para H(B ) — devido ao fato de os mesmos seguirem a proposta do líder no caso anterior, e devido ao fato de os mesmos votarem para seus próprios valores de partida no último caso.[00662] Similarly, if cycle r has reached a period p ≥ 2 and the leader ℓ for period p is honest, then the block recently proposed or proposed again by ℓ is certified in step 3 and all honest users terminate cycle r after that. This is due to the fact that, if ℓ has observed tH next-votes for period ⊥ p - 1 and proposed a new block, then those next-votes will reach all honest users in time λ and they will soft-vote for de proposal. Otherwise, ℓ observed only tH next-votes for the H (B) hash of a valid block B of the period p - 1 and proposed again (B). All starting values of honest users of the period p are ⊥ or H (B), and no matter what the case, they soft-vote for H (B) - due to the fact that they follow the leader's proposal in the previous case, and due to the fact that they vote for their own starting values in the last case.

[00663] Além disso, se um certificado para algum bloco válido B for gerado em um período r.p, então, todos os usuários honestos terminam o ciclo r logo após isso. Isso é devido ao fato de que, se pelo menos tH cert- votes para B resultarem de usuários honestos, então, todos os usuários honestos receberão os mesmos no tempo λ e terminarão o ciclo r em que B é o r-ésimo bloco. Se qualquer conjunto de tH cert-votes para B contiver pelo menos um usuário malicioso, os usuários maliciosos podem escolher não enviar seus cert-votes e os usuários honestos não recebem um certificado para B imediatamente. No entanto, as escolhas de n e tH garantem que um certificado para B contém pelo menos um usuário honesto i, e i recebeu tH soft-votes para B antes de o mesmo realizar cert-vote. Visto que i propagou esses soft- votes e a rede não é particionada, todos os usuários honestos receberão os mesmos no tempo λ e realizarão next-vote para H(B) na etapa[00663] In addition, if a certificate for any valid B block is generated in an r.p period, then, all honest users end cycle r shortly thereafter. This is due to the fact that if at least tH cert-votes for B result from honest users, then all honest users will receive the same ones in time λ and end cycle r in which B is the r-th block. If any set of tH cert-votes for B contains at least one malicious user, malicious users can choose not to submit their cert-votes and honest users do not receive a certificate for B immediately. However, the choices of n and tH ensure that a certificate for B contains at least one honest user i, and i received tH soft-votes for B before he made a cert-vote. Since i propagated these soft votes and the network is not partitioned, all honest users will receive them in time λ and will next-vote for H (B) in step

5.1. Consequentemente, todos os usuários honestos começam o período r.(p + 1) com valor de partida H(B) e realizarão soft-vote para o mesmo na etapa 2 do período r.(p + 1), independentemente de o líder do período r.(p + 1) ser honesto ou não. Como resultado, usuários honestos realizarão cert-vote para H(B) na etapa 3, B agora tem um certificado dos usuários honestos, e todos os usuários honestos receberão os mesmos e terminarão o ciclo r no tempo λ.5.1. Consequently, all honest users start the period r. (P + 1) with a starting value H (B) and will soft-vote for it in step 2 of the period r. (P + 1), regardless of the leader of the period A. (p + 1) to be honest or not. As a result, honest users will cert-vote for H (B) in step 3, B now has a certificate for honest users, and all honest users will receive the same and end cycle r in time λ.

[00664] As escolhas das sementes Qr e a eleição criptográfica usada na nova modalidade garante que cada período p do ciclo r tem um honesto líder com probabilidade alta, como no protocolo original da Algorand, e a análise detalhada ausente sobre a eficácia da nova modalidade quando não há partição de rede se segue a partir disso.[00664] The choices of Qr seeds and the cryptographic election used in the new modality ensures that each period p of cycle r has an honest leader with high probability, as in the original Algorand protocol, and the detailed analysis missing on the effectiveness of the new modality when there is no network partition it follows from that.

[00665] Em segundo lugar, após a partição de rede ser resolvida, o protocolo se recuperará e alcançará consenso rapidamente. De fato, se alguns usuários honestos tiverem recebido um certificado para um bloco B no ciclo r durante a partição e se movido para o ciclo r + 1, então, uma vez que a partição seja resolvida todos os usuários honestos receberão tal certificado para B e se moverão para o ciclo r + 1. Além disso, seja p o período mais distante no ciclo r + 1 em que um usuário honesto i alcançou durante a partição. Então, todos os next-votes que permitiram que i se movesse para o período (r + 1).p alcançarão outros usuários honestos após a partição ser resolvida, e os mesmos também se moverão para o período (r + 1).p. O protocolo, então, continuará a partir disso como de costume, seguindo a mesma análise que quando não há partição de rede. Se nenhum usuário honesto for movido do ciclo r para o ciclo r + 1 durante a partição, então, todos os usuários honestos estão no mesmo ciclo, mas talvez em períodos diferentes. Nesse caso, seja p o período mais distante no ciclo r em que um usuário honesto i alcançou durante a partição. De modo semelhante, após a partição ser resolvida, todos os next-votes que permitiram que i se movesse para o período r.p chegarão a outros usuários honestos e os mesmos também se moverão para o período r.p. Novamente, o protocolo continuará a partir disso como de costume.[00665] Second, after the network partition is resolved, the protocol will recover and reach consensus quickly. In fact, if some honest users received a certificate for a B block in cycle r during the partition and moved to cycle r + 1, then, once the partition is resolved, all honest users will receive such certificate for B and will move to cycle r + 1. Also, be the most distant period in cycle r + 1 that an honest user i reached during the partition. Then, all next-votes that allowed i to move to the period (r + 1) .p will reach other honest users after the partition is resolved, and they will also move to the period (r + 1) .p. The protocol will then continue from there as usual, following the same analysis as when there is no network partition. If no honest user is moved from cycle r to cycle r + 1 during the partition, then all honest users are in the same cycle, but perhaps at different times. In this case, let p be the furthest period in cycle r that an honest user i reached during the partition. Similarly, after the partition is resolved, all next-votes that allowed i to move to the r.p period will reach other honest users and they will also move to the r.p. Again, the protocol will continue from there as usual.

[00666] Em resumo, a nova modalidade é segura e não sofre soft-fork mesmo quando a rede é particionada. A mesma gera bloco de modo eficiente quando a rede não é particionada, e se recupera rapidamente após uma partição de rede ser resolvida. 10 Escopo[00666] In summary, the new modality is safe and does not suffer a soft fork even when the network is partitioned. It generates blocks efficiently when the network is not partitioned, and recover quickly after a network partition is resolved. 10 Scope

[00667] Observa-se que o mecanismo descrito no presente documento é aplicável a outros sistemas de cadeia de blocos em que é desejável impedir que mais de um bloco seja certificado durante uma partição de rede e restaurar a transmissão ao vivo rapidamente após a partição ser resolvida. Desse modo, o sistema descrito no presente documento pode ser adaptado para outros esquemas de cadeia de blocos, até mesmo esquemas que não se relacionam diretamente a câmbio.[00667] It is noted that the mechanism described in this document is applicable to other block chain systems in which it is desirable to prevent more than one block from being certified during a network partition and to restore live transmission quickly after the partition is resolved. In this way, the system described in this document can be adapted for other block chain schemes, even schemes that are not directly related to exchange.

[00668] O sistema descrito no presente documento pode ser adaptado para ser aplicado a e combinado com mecanismos estabelecidos em qualquer um ou todos dentre os documentos nº PCT/US2017/031037, depositado em 4 de maio de 2017, 15/551.678 depositado em 17 de agosto de 2017, 16/096.107 depositado em 24 de outubro de 2018, PCT/US2018/053360 depositado em 28 de setembro de 2018, PCT/US2018/054311 depositado em 4 de outubro de 2018, 62/632.944 depositado em 20 de fevereiro de 2018, 62/643.331 depositado em 15 de março de 2018, 62/777.410 depositado em 10 de dezembro de 2018 e 62/778.482 depositado em 12 de dezembro de 2018, cujos conteúdos são incorporados a título de referência ao presente documento.[00668] The system described in this document can be adapted to be applied to and combined with mechanisms established in any or all of the documents nº PCT / US2017 / 031037, deposited on May 4, 2017, 15 / 551,678 deposited on 17 August 2017, 16 / 096,107 deposited on October 24, 2018, PCT / US2018 / 053360 deposited on September 28, 2018, PCT / US2018 / 054311 deposited on October 4, 2018, 62 / 632,944 deposited on February 20, 2018, 62 / 643,331 deposited on March 15, 2018, 62 / 777,410 deposited on December 10, 2018 and 62 / 778,482 deposited on December 12, 2018, the contents of which are incorporated by reference to this document.

[00669] As implantações de software do sistema descrito no presente documento podem incluir o código executável que é armazenado em um meio legível por computador e executados por um ou mais processadores. O meio legível por computador pode ser não transitório e inclui um disco rígido de computador, ROM, RAM, memória flash, mídia de armazenamento em computador portátil como um CD-ROM, um DVD-ROM,[00669] The software deployments of the system described in this document may include executable code that is stored in a computer-readable medium and executed by one or more processors. The computer-readable medium may be non-transitory and includes a computer hard drive, ROM, RAM, flash memory, portable computer storage media such as a CD-ROM, a DVD-ROM,

uma unidade flash, um cartão SD e/ou outra unidade com, por exemplo, uma interface de barramento em série universal (USB), e/ou qualquer outro meio legível por computador tangível ou não transitório adequado ou memória de computador na qual o código executável pode ser armazenado e executado por um processador. O sistema descrito no presente documento pode ser usado em conexão com qualquer sistema operacional adequado.a flash drive, an SD card and / or another drive with, for example, a universal serial bus (USB) interface, and / or any other tangible or non-transitory computer readable medium or suitable computer memory on which the code executable can be stored and run by a processor. The system described in this document can be used in connection with any suitable operating system.

[00670] Outras modalidades da invenção serão evidentes às pessoas versadas na técnica a partir de uma consideração do relatório descritivo ou da prática da invenção revelada no presente documento. Pretende-se que o relatório descritivo e os exemplos sejam considerados como exemplificadores apenas, sendo que o escopo e espirito verdadeiro da invenção são indicados pelas reivindicações a seguir.[00670] Other embodiments of the invention will be apparent to persons skilled in the art from a consideration of the specification or practice of the invention disclosed in this document. It is intended that the descriptive report and the examples are considered as exemplifiers only, and the scope and true spirit of the invention are indicated by the following claims.

Claims (20)

REIVINDICAÇÕES 1. Método para que uma entidade gerencie um sistema de transação no qual as transações são organizadas em uma sequência de blocos que são certificados por assinaturas digitais de um número suficiente de verificadores, sendo que o método é caracterizado pelo fato de que compreende: a entidade propor um hash de um bloco B’ que inclui novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1 se nenhum r-ésimo bloco Br tiver sido certificado; e a entidade propor um hash do bloco Br se o r-ésimo bloco Br tiver sido verificado por um número suficiente de outras entidades.1. Method for an entity to manage a transaction system in which transactions are organized in a sequence of blocks that are certified by digital signatures from a sufficient number of verifiers, the method being characterized by the fact that it comprises: the entity propose a hash of a B 'block that includes new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1 if no r-th block Br has been certified; and the entity proposes a hash of the Br block if the rth block Br has been verified by a sufficient number of other entities. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um bloco é certificado pela entidade apenas em resposta à confirmação de transações para o bloco e à confirmação de que o bloco foi construído e propagado por uma entidade encarregada de construir e propagar o bloco.2. Method, according to claim 1, characterized by the fact that a block is certified by the entity only in response to the confirmation of transactions for the block and the confirmation that the block was built and propagated by an entity in charge of building and propagate the block. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a entidade propõe um valor hash assinando-se digitalmente o valor hash para fornecer uma versão assinada digitalmente do valor hash e em que a entidade propaga a versão assinada digitalmente do valor hash a uma rede que inclui outras entidades.3. Method, according to claim 1, characterized by the fact that the entity proposes a hash value by digitally signing the hash value to provide a digitally signed version of the hash value and in which the entity propagates the digitally signed version of the value hash to a network that includes other entities. 4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que, se nenhum r-ésimo bloco Br tiver sido certificado, a entidade também assina digitalmente e propaga o bloco B’.4. Method, according to claim 3, characterized by the fact that, if no rth block Br has been certified, the entity also digitally signs and propagates block B '. 5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a entidade determina uma quantidade Q a partir dos blocos anteriores e usa uma chave secreta a fim de computar uma linha S unicamente associada à Q e computa, a partir de S, uma quantidade T que é pelo menos um dentre: S por si só, uma função de S e valor hash de S e em que a entidade determina a possibilidade de propor um valor hash determinando-se a possibilidade de T possuir uma determinada propriedade.5. Method, according to claim 1, characterized by the fact that the entity determines a quantity Q from the previous blocks and uses a secret key in order to compute a line S solely associated with Q and computes, from S , a quantity T that is at least one of: S by itself, a function of S and hash value of S and in which the entity determines the possibility of proposing a hash value determining the possibility of T having a certain property. 6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que S é uma assinatura de Q sob uma chave secreta da entidade, T é um hash de S e T possui a determinada propriedade se T for menor que um determinado limite.6. Method, according to claim 5, characterized by the fact that S is a signature of Q under a secret key of the entity, T is a hash of S and T has a certain property if T is less than a certain limit. 7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a entidade faz parte de uma rede de entidades e em que uma entidade específica dentre as entidades constrói e propaga o bloco Br.7. Method, according to claim 1, characterized by the fact that the entity is part of a network of entities and in which a specific entity among the entities builds and propagates the Br block. 8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o r-ésimo bloco Br é determinado como certificado pela entidade se a entidade receber uma indicação de que pelo menos um número predeterminado das entidades certifica individualmente um valor hash que corresponde ao r-ésimo bloco Br.8. Method, according to claim 7, characterized by the fact that the rth block Br is determined as certified by the entity if the entity receives an indication that at least a predetermined number of entities individually certifies a hash value that corresponds to the r-th block Br. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que, em resposta à entidade receber a indicação de que um número predeterminado das entidades certificou individualmente o r-ésimo bloco Br, a entidade incrementa r para começar a adicionar blocos adicionais à sequência de blocos.9. Method, according to claim 8, characterized by the fact that, in response to the entity receiving the indication that a predetermined number of entities individually certified the rth block Br, the entity increments r to start adding additional blocks to the block sequence. 10. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a entidade específica dentre as entidades é individualmente escolhida por um número predeterminado das entidades como uma líder.10. Method, according to claim 7, characterized by the fact that the specific entity among the entities is individually chosen by a predetermined number of entities as a leader. 11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o r-ésimo bloco Br é determinado como certificável pela entidade se a entidade receber uma indicação de que pelo menos um número predeterminado das entidades verifica individualmente o recebimento de uma indicação de que a entidade específica dentre as entidades forneceu um valor hash correspondente ao r-ésimo bloco Br para cada uma dentre o número predeterminado das entidades.11. Method, according to claim 10, characterized by the fact that the rth block Br is determined as certifiable by the entity if the entity receives an indication that at least a predetermined number of entities verifies the receipt of an indication that the specific entity among the entities provided a hash value corresponding to the rth block Br for each of the predetermined number of entities. 12. Método para que uma entidade gerencie um sistema de transação no qual as transações são organizadas em uma sequência de blocos certificados, sendo que o método é caracterizado pelo fato de que compreende: a entidade receber um valor hash de um bloco Br a partir de uma outra entidade que gerou o bloco com base em novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1; a entidade certificar o bloco Br em resposta a um número suficiente de outras entidades ter indicado o recebimento do valor hash do bloco Br a partir da outra entidade e ao valor hash ser válido para o bloco Br; a entidade gerar um novo bloco B’ com base em novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1 em resposta a um número insuficiente das outras entidades indicar o recebimento do valor hash do bloco Br a partir da outra entidade, em que B’ é diferente de Br; e a entidade incrementar r para começar a adicionar blocos adicionais à sequência de blocos em resposta à entidade receber a indicação de que um número predeterminado das entidades certificou individualmente o r-ésimo bloco Br ou um número predeterminado das entidades certificou individualmente o novo bloco B’.12. Method for an entity to manage a transaction system in which transactions are organized in a sequence of certified blocks, the method being characterized by the fact that it comprises: the entity receives a hash value from a Br block from another entity that generated the block based on new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1; the entity certifies the Br block in response to a sufficient number of other entities having indicated that it has received the hash value of the Br block from the other entity and the hash value is valid for the Br block; the entity generates a new B 'block based on new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1 in response to an insufficient number of other entities indicating the receipt of the hash value of block Br from the other entity, where B 'is different from Br; and the entity increments r to begin adding additional blocks to the block sequence in response to the entity receiving the indication that a predetermined number of entities individually certified the rth block Br or a predetermined number of entities individually certified the new block B ' . 13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que os blocos são certificados por assinaturas digitais.13. Method, according to claim 12, characterized by the fact that the blocks are certified by digital signatures. 14. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que novos blocos são propostos por entidades diferentes dentre as entidades até receberem a indicação de que um número predeterminado das entidades certificou individualmente um bloco proposto anteriormente.14. Method, according to claim 12, characterized by the fact that new blocks are proposed by different entities among the entities until they receive the indication that a predetermined number of entities individually certified a previously proposed block. 15. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a entidade fornece uma indicação de que um novo bloco deve ser gerado em resposta ao valor hash não ser válido para o bloco Br.15. Method, according to claim 12, characterized by the fact that the entity provides an indication that a new block must be generated in response to the hash value not being valid for the Br block. 16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que a entidade gera um novo bloco B’ com base em novas transações válidas com relação a uma sequência de blocos certificados B0, . . . , Br-1 em resposta a um número suficiente das outras entidades fornecer uma indicação de que um novo bloco deve ser gerado.16. Method, according to claim 15, characterized by the fact that the entity generates a new B 'block based on new valid transactions with respect to a sequence of B0 certified blocks,. . . , Br-1 in response to a sufficient number of other entities to provide an indication that a new block should be generated. 17. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a entidade fornece uma indicação de que o valor hash do bloco Br deve ser propagado em resposta a um número suficiente das outras entidades ter indicado o recebimento do valor hash do bloco Br a partir da outra entidade e ao valor hash ser válido para o bloco Br.17. Method, according to claim 12, characterized by the fact that the entity provides an indication that the hash value of the Br block must be propagated in response to a sufficient number of the other entities having indicated the receipt of the hash value of the block Br from the other entity and the hash value is valid for the Br block. 18. Método para que uma entidade verifique um valor hash proposto de um novo bloco Br de transações com relação a uma determinada sequência de blocos, B0, . . . , Br-1, sem acesso ao novo bloco Br em um sistema de transação no qual as transações são organizadas em blocos e os blocos são certificados por um conjunto de assinaturas digitais, sendo que o método é caracterizado pelo fato de que compreende: fazer com que a entidade determine uma quantidade Q a partir dos blocos anteriores; fazer com que a entidade compute uma assinatura digital S de Q; fazer com que a entidade compute, a partir de S, uma quantidade T que é pelo menos um dentre: S por si só, uma função de S e valor hash de S; fazer com que a entidade determine a possibilidade de T possuir uma determinada propriedade; e se T possuir a determinada propriedade, fazer com que a entidade verifique o valor hash proposto do novo bloco Br independentemente da confirmação de que o valor hash proposto corresponde ao novo bloco Br.18. Method for an entity to verify a proposed hash value of a new Br block of transactions with respect to a given sequence of blocks, B0,. . . , Br-1, without access to the new Br block in a transaction system in which transactions are organized in blocks and the blocks are certified by a set of digital signatures, the method being characterized by the fact that it comprises: making that the entity determines a quantity Q from the previous blocks; cause the entity to compute a digital signature S of Q; make the entity compute, from S, a quantity T that is at least one of: S by itself, a function of S and hash value of S; make the entity determine the possibility of T having a certain property; and if T has a certain property, have the entity check the proposed hash value of the new Br block regardless of confirmation that the proposed hash value corresponds to the new Br block. 19. Método, de acordo com a reivindicação 18, caracterizado pelo fato de que a entidade propaga o valor hash proposto do novo bloco Br antes de receber o novo bloco Br.19. Method, according to claim 18, characterized by the fact that the entity propagates the proposed hash value of the new Br block before receiving the new Br block. 20. Software de computador, fornecido em um meio legível por computador não transitório, caracterizado pelo fato de que compreende: código executável que implementa o método, de acordo com qualquer uma das reivindicações 1 a 19.20. Computer software, provided in a non-transitory, computer-readable medium, characterized by the fact that it comprises: executable code that implements the method, according to any one of claims 1 to 19.
BR112020012449-4A 2017-12-19 2018-12-19 fast and resilient block chains to partition BR112020012449A2 (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201762607558P 2017-12-19 2017-12-19
US62/607,558 2017-12-19
US201862632944P 2018-02-20 2018-02-20
US62/632,944 2018-02-20
US201862643331P 2018-03-15 2018-03-15
US62/643,331 2018-03-15
US201862777410P 2018-12-10 2018-12-10
US62/777,410 2018-12-10
US201862778482P 2018-12-12 2018-12-12
US62/778,482 2018-12-12
PCT/US2018/066481 WO2019126311A1 (en) 2017-12-19 2018-12-19 Fast and partition-resilient blockchains

Publications (1)

Publication Number Publication Date
BR112020012449A2 true BR112020012449A2 (en) 2020-11-24

Family

ID=66995114

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020012449-4A BR112020012449A2 (en) 2017-12-19 2018-12-19 fast and resilient block chains to partition

Country Status (12)

Country Link
EP (1) EP3729351A4 (en)
JP (1) JP2021507629A (en)
KR (1) KR20200102460A (en)
CN (1) CN111566681A (en)
AU (1) AU2018392471A1 (en)
BR (1) BR112020012449A2 (en)
CA (1) CA3086361A1 (en)
IL (1) IL275211A (en)
MX (1) MX2020006642A (en)
RU (1) RU2020119312A (en)
SG (1) SG11202005400QA (en)
WO (1) WO2019126311A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11762842B2 (en) * 2019-03-18 2023-09-19 Jio Platforms Limited Systems and methods for asynchronous delayed updates in virtual distributed ledger networks
CN111292082B (en) * 2020-01-13 2022-12-20 蚂蚁区块链科技(上海)有限公司 Public key management method, device and equipment in block chain type account book

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490065B1 (en) * 1999-10-18 2009-02-10 Stamps.Com Cryptographic module for secure processing of value-bearing items
WO2002088874A2 (en) * 2001-04-27 2002-11-07 Massachusetts Institute Of Technology Method and system for micropayment transactions
US7797457B2 (en) * 2006-03-10 2010-09-14 Microsoft Corporation Leaderless byzantine consensus
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20160379212A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
KR20220088507A (en) * 2016-05-04 2022-06-27 실비오 미칼리 Distributed transaction propagation and verification system
CN106548349B (en) * 2016-11-02 2020-09-29 江苏通付盾科技有限公司 Transaction information verification method and system
CN106971302A (en) * 2017-04-17 2017-07-21 北京工商大学 A kind of threedimensional model based on block chain technology is really weighed and method of commerce

Also Published As

Publication number Publication date
EP3729351A4 (en) 2021-10-20
CN111566681A (en) 2020-08-21
RU2020119312A (en) 2022-01-20
IL275211A (en) 2020-07-30
EP3729351A1 (en) 2020-10-28
SG11202005400QA (en) 2020-07-29
JP2021507629A (en) 2021-02-22
AU2018392471A1 (en) 2020-06-25
MX2020006642A (en) 2020-12-07
WO2019126311A1 (en) 2019-06-27
CA3086361A1 (en) 2019-06-27
KR20200102460A (en) 2020-08-31

Similar Documents

Publication Publication Date Title
EP3896638A1 (en) Distributed transaction propagation and verification system
Chen et al. Algorand
JP7289298B2 (en) Computer-implemented system and method for authorizing blockchain transactions using low-entropy passwords
Judmayer et al. Blocks and chains: introduction to bitcoin, cryptocurrencies, and their consensus mechanisms
US20240064007A1 (en) Methods and systems for blockchain-implemented event-lock encryption
US20200396059A1 (en) Fast and partition-resilient blockchains
US11496300B2 (en) Computer-implemented system and method for time release encryption over a blockchain network
US20200219097A1 (en) Random number generation in a blockchain
Ruffing et al. Liar, liar, coins on fire! Penalizing equivocation by loss of bitcoins
Lenstra et al. A random zoo: sloth, unicorn, and trx
US20200304314A1 (en) Message-credentialed blockchains
KR20200096241A (en) Blockchain implementation security system and method for selecting blind results
Šimunić et al. Verifiable computing applications in blockchain
BR112020012449A2 (en) fast and resilient block chains to partition
Masood et al. Consensus algorithms in distributed ledger technology for open environment
Kokoris Kogias Secure, confidential blockchains providing high throughput and low latency
Kumar Hyperledger Fabric In-Depth: Learn, Build and Deploy Blockchain Applications Using Hyperledger Fabric
Kiayias et al. State of the Art of Cryptographic Ledgers
Fillinger Two-Prover Bit-Commitments: Classical, Quantum and Non-Signaling
Ren Efficient and egalitarian consensus

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]