BR112020006407A2 - message-accredited blockchains - Google Patents

message-accredited blockchains Download PDF

Info

Publication number
BR112020006407A2
BR112020006407A2 BR112020006407-6A BR112020006407A BR112020006407A2 BR 112020006407 A2 BR112020006407 A2 BR 112020006407A2 BR 112020006407 A BR112020006407 A BR 112020006407A BR 112020006407 A2 BR112020006407 A2 BR 112020006407A2
Authority
BR
Brazil
Prior art keywords
users
block
fact
round
user
Prior art date
Application number
BR112020006407-6A
Other languages
Portuguese (pt)
Inventor
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 BR112020006407A2 publication Critical patent/BR112020006407A2/en

Links

Classifications

    • 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/3247Cryptographic 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 involving digital 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/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
    • 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/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
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Em um sistema de transação em que transações são organizadas em blocos, um novo bloco Br de transações válidas é construído, em relação a uma sequência de blocos anteriores B0, B1,..., Br~1, ao fazer uma entidade determinar uma quantidade Q dos blocos anteriores, fazer uma entidade usar uma chave secreta a fim de computar uma série S exclusivamente associada a Q e à entidade, fazer a entidade computar a partir de S uma quantidade T que é a própria S, uma função de S e/ou valor de hash de S, fazer a entidade determinar se T possui uma dada propriedade, e, se T possuir a dada propriedade, fazer a entidade sinalizar digitalmente Br e disponibilizar S e uma versão digitalmente sinalizada de Br, em que a entidade é selecionada com base em um valor aleatório que varia de acordo com uma assinatura digital de Br.In a transaction system in which transactions are organized into blocks, a new Br block of valid transactions is constructed, in relation to a sequence of previous blocks B0, B1, ..., Br ~ 1, by making an entity determine a quantity Q from the previous blocks, make an entity use a secret key in order to compute an S series exclusively associated with Q and the entity, make the entity compute from S an amount T which is S itself, a function of S and / or hash value of S, have the entity determine whether T has a given property, and, if T has the given property, have the entity digitally sign Br and make available S and a digitally signified version of Br, where the entity is selected based on a random value that varies according to a digital signature of Br.

Description

“BLOCKCHAINS CREDENCIADAS POR MENSAGEM”"BLOCKCHAINS ACCREDITED BY MESSAGE" CAMPO DA TÉCNICATECHNICAL FIELD

[0001] Este pedido refere-se ao campo de transações eletrônicas e, mais particularmente, ao campo de segurança do conteúdo de sequências de blocos de transação para transações eletrônicas.[0001] This order relates to the field of electronic transactions and, more particularly, to the security field of the content of transaction block strings for electronic transactions.

ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION

[0002] Um blockchain consiste em uma sequência aumentável de blocos: 1, 2,..., em que cada bloco consiste em diversas transações, o hash do bloco anterior e outros dados, por exemplo, o número do bloco, informações sobre tempo, etc. As propriedades úteis de um blockchain são que cada usuário no sistema eventualmente conhece o conteúdo de cada bloco, ninguém pode alterar o conteúdo ou a ordem dos blocos e qualquer transação válida eventualmente entrará em um bloco na cadeia.[0002] A blockchain consists of an expandable sequence of blocks: 1, 2, ..., where each block consists of several transactions, the hash of the previous block and other data, for example, the block number, time information , etc. The useful properties of a blockchain are that each user in the system eventually knows the content of each block, no one can change the content or order of the blocks and any valid transaction will eventually enter a block in the chain.

[0003] Os usuários podem assinar digitalmente e, assim, cada usuário possui pelo menos uma chave pública e uma chave secreta correspondente. Em um blockchain, em geral, conhece-se as chaves públicas, mas não necessariamente o usuário que a possui. Consequentemente, pode-se identificar uma chave pública com seu proprietário.[0003] Users can digitally sign and, thus, each user has at least one public key and a corresponding secret key. In a blockchain, in general, public keys are known, but not necessarily the user who owns it. Consequently, a public key can be identified with its owner.

[0004] Um blockchain funciona propagando mensagens (por exemplo, blocos, transações, etc.). Tipicamente, mas não exclusivamente, as mensagens são propagadas transmitindo-se as mesmas de uma forma par a par ou através de retransmissões.[0004] A blockchain works by propagating messages (for example, blocks, transactions, etc.). Typically, but not exclusively, messages are propagated by transmitting them in a peer-to-peer manner or via retransmissions.

[0005] Diversos sistemas de blockchain exibem que um bloco seja certificado por assinaturas digitais de um número suficiente de usuários no sistema. Em alguns sistemas, tais usuários certificados pertencem a um conjunto fixo de usuários. Em alguns outros sistemas, os mesmos pertencem a um conjunto dinamicamente alterado. Isso é preferencial devido ao dato de que um adversário teria dificuldade de corromper um conjunto dinamicamente alterado, particularmente se o conjunto não for apenas dinâmico, mas imprevisível também.[0005] Several blockchain systems show that a block is certified by digital signatures of a sufficient number of users on the system. On some systems, such certified users belong to a fixed set of users. In some other systems, they belong to a dynamically altered set. This is preferable due to the fact that an opponent would find it difficult to corrupt a dynamically altered set, particularly if the set is not only dynamic, but unpredictable as well.

[0006] Uma forma particularmente eficaz de selecionar um conjunto de usuários de uma forma variável, mas imprevisível, é o sorteio criptográfico empregado pela Algorand. Aqui, um usuário i pertence a um conjunto de usuários com poder para atuar em algumas etapas s durante a produção do número de blocos r com base no resultado de uma computação que i realizada através de uma chave secreta sua, com o uso das entradas s e r, e possivelmente outras entradas e outros dados (por exemplo, o fato de que o usuário ingressou no sistema pelo menos k blocos antes do bloco r, para algum dado número inteiro k). Por exemplo, a computação de i pode envolver a assinatura digital de i , de tais entradas, hash de e verificação de se o hash é menor que um dado alvo t. (De fato, como qualquer outra série, um valor verificado por hash pode ser interpretado de alguma outra forma padrão como um número.) Se esse for o caso, então, é definido como sendo a credencial de i para a etapa 5 sobre o bloco r. Tal credencial prova a qualquer um que i te, de fato, o direito de produzir uma mensagem (de preferência, assinada) sia mensagem para a etapa s na rodada r, ou seja, no processo que visou produzir o bloco r. De fato, as assinaturas digitais de i podem ser verificadas por qualquer um, e qualquer um pode verificar por hash um dado valor e, então, verificar se o resultado é, de fato, menor que (ou igual a) um dado número. Consequentemente, i pode propagar ambos e em Algorand, a credencial é computada em relação a uma chave a longo prazo, enquanto a assinatura é computada com o uso de uma chave temporária, que i usa apenas para autenticar uma mensagem: sua mensagem .[0006] A particularly effective way of selecting a set of users in a variable but unpredictable way is the cryptographic draw used by Algorand. Here, a user i belongs to a set of users with power to act in some steps s during the production of the number of blocks r based on the result of a computation that i performed through a secret key of his, using the entries be , and possibly other entries and other data (for example, the fact that the user has entered the system at least k blocks before block r, for some given integer k). For example, the computation of i may involve the digital signature of i, from such entries, hashing of and checking whether the hash is less than a given target t. (In fact, like any other series, a hashed value can be interpreted in some other standard way as a number.) If this is the case, then it is defined as the credential of i for step 5 on the block r. This credential proves to anyone that i, in fact, has the right to produce a message (preferably signed) as the message for step s in round r, that is, in the process that aimed to produce block r. In fact, i's digital signatures can be verified by anyone, and anyone can hash a given value and then verify that the result is, in fact, less than (or equal to) a given number. Consequently, i can propagate both and in Algorand, the credential is computed against a long-term key, while the signature is computed using a temporary key, which i uses only to authenticate a message: your message.

[0007] De fato, um i honesto apaga tal chave secreta temporária assim que usa a mesma para sinalizar[0007] In fact, an honest i erases such a temporary secret key as soon as he uses it to signal

[0008] Usar chaves temporárias que são apagadas após o uso impede que um adversário que corrompa i, após propagar force i a sinalizar uma mensagem diferente sobre a etapa s da rodada r. O sistema, entretanto, se baseia em um procedimento adequado para garantir a outros que é uma chave temporária de i devotada a autenticar sua mensagem para a etapa s da rodada r. Tal garantia pode exigir que dados adicionais sejam armazenados e/ou transmitidos. Seria, portanto, bom diminuir essa necessidade. Particularmente, para certificar os blocos de um blockchain.[0008] Using temporary keys that are erased after use prevents an opponent from corrupting i, after propagating forces i to signal a different message about step s of round r. The system, however, is based on an appropriate procedure to assure others that it is a temporary key of i devoted to authenticating your message for step s of round r. Such a guarantee may require that additional data be stored and / or transmitted. It would therefore be a good thing to lessen this need. Particularly, to certify the blocks of a blockchain.

[0009] É, assim, desejável fornecer registros públicos e sistemas de dinheiro eletrônico que não precisem confiar em uma autoridade central e não sofram a ineficiência e falta de segurança de abordagens decentralizadas conhecidas.[0009] It is therefore desirable to provide public records and electronic money systems that do not need to rely on a central authority and do not suffer from the inefficiency and insecurity of known decentralized approaches.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[0010] De acordo com o sistema descrito no presente documento, em um sistema de transação em que as transações são organizadas em blocos, um novo bloco Br de transações válidas é construído, em relação a uma sequência de blocos anteriores B0, B1, . . . , Br-1, ao fazer uma entidade determinar uma quantidade Q dos blocos anteriores, fazer uma entidade usar uma chave secreta a fim de computar uma série S exclusivamente associada a Q e à entidade, fazer a entidade computar a partir de S uma quantidade T que é a própria S, uma função de S e/ou valor de hash de S, fazer a entidade determinar se T possui uma dada propriedade, e, se T possuir a dada propriedade, fazer a entidade sinalizar digitalmente Br e disponibilizar S e uma versão digitalmente sinalizada de Br, em que a entidade é selecionada com base em um valor aleatório que varia de acordo com uma assinatura digital de Br. A chave secreta pode ser uma chave de sinalização secreta correspondente a uma chave pública da entidade e S é uma assinatura digital de Q pela entidade. T pode ser um número e satisfaz a propriedade se T for menor que um dado número p. S pode ser disponibilizado tornando-se S deduzível a partir de Br. Cada usuário pode ter um balanço no sistema de transação e p pode variar para cada usuário de acordo com o balanço de cada usuário. O valor aleatório pode ser um hash da assinatura digital da entidade. A entidade pode ser selecionada se o valor aleatório estiver abaixo de um limite que é escolhido para fazer com que um número mínimo de entidades do sistema de transação possa sinalizar digitalmente Br.[0010] 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, in relation to a sequence of previous blocks B0, B1,. . . , Br-1, when making an entity determine a quantity Q of the previous blocks, make an entity use a secret key in order to compute an S series exclusively associated with Q and the entity, make the entity compute from S a quantity T which is S itself, a function of S and / or hash value of S, make the entity determine whether T has a given property, and, if T has the given property, make the entity digitally signal Br and make available S and a digitally signed version of Br, where the entity is selected based on a random value that varies according to a digital signature of Br. The secret key can be a secret signaling key corresponding to a public key of the entity and S is a digital signature of Q by the entity. T can be a number and satisfy the property if T is less than a given number p. S can be made available by making S deductible from Br. Each user can have a balance in the transaction system and p can vary for each user according to each user's balance. The random value can be a hash of the entity's digital signature. The entity can be selected if the random value is below a threshold that is chosen to make a minimum number of entities in the transaction system able to digitally signal Br.

[0011] Ainda de acordo com o sistema descrito no presente documento, selecionar um subconjunto de usuários em um sistema de blockchain para verificar um novo bloco Br em relação a uma sequência de blocos anteriores B0, B1, . . . , Br-x, inclui fazer com que pelo menos um dos usuários sinalize digitalmente o novo bloco Br juntamente com outras informações para produzir uma assinatura digital, fazer com que pelo menos algum dos usuários determine um valor de hash da assinatura digital, fazer com que pelo menos algum dos usuário compare o valor de hash a um limite predeterminado e fazer com que o subconjunto dos usuários disponibilize a assinatura digital para verificar o novo bloco Br em resposta ao valor de hash estar abaixo de um limite predeterminado para cada um do subconjunto dos usuários. Um usuário particular dentre os usuários pode sinalizar digitalmente o novo bloco Br apenas se o usuário particular dentre os usuários verificar as informações fornecidas no novo bloco Br. O valor predeterminado pode ser escolhido para fazer com que o subconjunto dos usuários contenha um número mínimo dos usuários. O sistema de blockchain pode ser usado em um sistema de transações em que as transações são organizadas em blocos.[0011] Also according to the system described in this document, select a subset of users in a blockchain system to check a new Br block in relation to a sequence of previous blocks B0, B1,. . . , Br-x, includes making at least one of the users digitally sign the new Br block together with other information to produce a digital signature, having at least one of the users determine a hash value of the digital signature, making at least some of the users compare the hash value to a predetermined limit and have the subset of users make the digital signature available to verify the new Br block in response to the hash value being below a predetermined limit for each of the subset of the users. A private user among users can digitally signal the new Br block only if the private user among users verifies the information provided in the new Br block. The default value can be chosen to make the subset of users contain a minimum number of users . The blockchain system can be used in a transaction system where transactions are organized in blocks.

[0012] De acordo, ainda, com o sistema descrito no presente documento, um blockchain pode realizar a certificação de pelo menos uma série de dados m fazendo um conjunto S de usuário verificar se m possui pelo menos uma dada propriedade, fazendo usuários sinalizarem digitalmente m, em resposta à verificação de m pelos usuários e fazendo os usuários disponibilizarem as assinaturas digitais de m que são assinaturas credenciadas de m. A assinatura digital de m pode ser credenciada se a assinatura digital satisfizer uma dada propriedade adicional. A assinatura digital de m pode satisfazer a dada propriedade adicional se um hash da assinatura digital for menor que um dado número alvo. A série de dados m pode ser certificada por pelo menos um dado número de assinaturas credenciadas de m.[0012] According to the system described in this document, a blockchain can perform the certification of at least one series of data m making a set S of user verify that m has at least one given property, making users digitally signal m, in response to the verification of m by users and making users make available digital signatures of m which are accredited signatures of m. The digital signature of m can be accredited if the digital signature satisfies a given additional property. The digital signature of m can satisfy a given additional property if a hash of the digital signature is less than a given target number. The data series m can be certified by at least a given number of accredited signatures of m.

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

[0014] A presente invenção dispensa chaves temporárias para certificar blocos. Tipicamente, um novo bloco é primeiramente preparado (por exemplo, proposto e/ou acordado por pelo menos alguns usuários) e, então, é certificado. Não se tem certeza de como um bloco B é preparado: o mesmo pode ser preparado em uma ou múltiplas etapas, mesmo com o uso de chaves temporárias. Entretanto, deseja-se certificar o mesmo sem se basear em chaves temporárias. A certificação de um bloco B garante que certas propriedades valiosas se apliquem ao bloco. Uma propriedade principal típica é possibilitar que um usuário, mesmo um usuário que não participou ou observou a preparação de um bloco B, verifique que B foi adicionado ao blockchain ou mesmo que B é o r-ésimo bloco no blockchain. Outra propriedade valiosa (frequentemente denominada finalização) garante que B não desaparecerá do blockchain, devido a um softfork, mesmo na presença de uma partição da rede de comunicação em que o protocolo de blockchain é executado.[0014] The present invention does not require temporary keys to certify blocks. Typically, a new block is first prepared (for example, proposed and / or agreed upon by at least some users) and then certified. It is not certain how a B block is prepared: it can be prepared in one or multiple steps, even with the use of temporary keys. However, you want to certify it without relying on temporary keys. The certification of a block B ensures that certain valuable properties apply to the block. A typical primary property is to enable a user, even a user who has not participated or observed the preparation of a B block, to verify that B has been added to the blockchain or even that B is the r-th block in the blockchain. Another valuable property (often called termination) ensures that B will not disappear from the blockchain, due to a softfork, even in the presence of a partition of the communication network on which the blockchain protocol is executed.

[0015] Assume-se que um bloco B foi preparado, de qualquer forma 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 dado número de assinaturas digitais de usuários com credenciais válidas. Tal certificado de B comprova que os usuários que produziram tais assinaturas participaram ou observaram a preparação de B. Pelo menos, comprova que, se uma das assinaturas digitais do certificado tiver sido produzida por um usuário honesto, então, esse usuário verificou que B foi preparado adequadamente.[0015] It is assumed that a block B was prepared, in any form and in any number of stages. Realizing that a block has been properly prepared requires time and effort and the verification of various evidences. A B certificate consists of a given number of digital signatures from users with valid credentials. Such a certificate from B proves that the users who produced such signatures participated in or observed the preparation of B. At least, it proves that if one of the digital signatures on the certificate was produced by an honest user, then that user verified that B was prepared properly.

[0016] No sistema da invenção, múltiplos usuários i (até mesmo todos os usuários), que viram evidência de que B foi adequadamente preparado, sinalizam digitalmente B.1 Essas assinaturas podem estar relacionadas a chaves a longo prazo (em oposição a temporárias). Tais assinaturas, entretanto, contam para a certificação de B se satisfizerem uma dada propriedade P. Na modalidade preferencial, uma assinatura digital de i de B, , SIGi(B), possui a dada propriedade se (a) seu hash (interpretado como um número) for menor que um dado alvo t, e, de preferência, se i tiver ingressado no blockchain pelo menos k blocos antes de B. Observa-se que qualquer um pode verificar a assinatura digital de i de B, computar seu hash e verificar que o resultado não é, de fato, maior que t. Adicionalmente, qualquer um pode verificar quando i ingressou no blockchain e, assim, que ingressou no blockchain pelo menos k blocos antes. Tal SIG i(B) pode ser considerado uma credencial especializada de i para B assim como um assinatura credenciada. Assim, no sistema da invenção, as credenciais estão ligadas a um bloco específico, em vez de a uma dada etapa s na produção 1 Sinalizar digitalmente uma quantidade Q inclui sinalizar digitalmente uma versão verificada por hash de Q, sinalizar digitalmente Q com outros dados. No presente documento, assume-se que a assinatura digital é tal que, para cada mensagem m, cada usuário tem uma única assinatura de m, sem importar como a chave pública pode ser escolhida.[0016] In the system of the invention, multiple users i (even all users), who saw evidence that B was properly prepared, digitally signal B.1 These signatures may be related to long-term (as opposed to temporary) keys . Such signatures, however, count towards the certification of B if they satisfy a given property P. In the preferred modality, a digital signature of i of B,, SIGi (B), has the given property if (a) its hash (interpreted as a number) is less than a given target t, and preferably if i joined the blockchain at least k blocks before B. It is noted that anyone can verify the digital signature of i from B, compute its hash and verify that the result is not, in fact, greater than t. Additionally, anyone can verify when i joined the blockchain and thus that he joined the blockchain at least k blocks before. Such GIS i (B) can be considered a specialized credential from i to B as well as an accredited signature. Thus, in the system of the invention, the credentials are linked to a specific block, rather than to a given step in production 1 Digitally signaling a quantity Q includes digitally signaling a hashed verified version of Q, digitally signaling Q with other data. In this document, it is assumed that the digital signature is such that, for each message m, each user has a single signature m, regardless of how the public key can be chosen.

do r-ésimo bloco. Consequentemente, um usuário i pode ter uma credencial para um dado bloco B, mas não para outro bloco B'. Em contrapartida, por exemplo, em Algorand, um usuário com uma credencial adequada para a etapa s na rodada r poderia sinalizar o que desejasse nessa etapa e rodada. Um certificado de bloco, portanto, consiste em um dado número n de assinaturas credenciadas para B. Observa-se que um bloco B pode ter mais de um certificado, se houver mais de n assinaturas credenciadas de B.of the r-th block. Consequently, a user i can have a credential for a given block B, but not for another block B '. On the other hand, for example, in Algorand, a user with an appropriate credential for stage s in round r could signal whatever he wanted in that stage and round. A block certificate, therefore, consists of a given number of n signatures accredited to B. It is noted that a block B can have more than one certificate, if there are more than n accredited signatures of B.

[0017] A eficiência do sistema da invenção deriva do fato de que um SIGi(B) adequado prova que tanto i certifica B quanto que i tem direito de certificar B. Em um sistema tradicional, i poderia ter que primeiramente obter uma credencial para a etapa s da rodada r em que consente em certificar B e, então, certificar B por uma assinatura separada. Assim, pelo menos duas assinaturas, em vez de uma, são necessárias e podem precisar ser armazenadas e/ou transmitidas como parte de um certificado de B. Adicionalmente, se a assinatura de i de B for temporária, poderia também ser necessária alguma prova de que a chave temporária usada era, de fato, a chave que i precisava usar apenas para a etapa s e a rodada r.[0017] The efficiency of the system of the invention derives from the fact that a suitable GIS (B) proves that both i certifies B and that i has the right to certify B. In a traditional system, i might have to first obtain a credential for the step s of round r in which you consent to certify B and then certify B by a separate signature. Thus, at least two signatures, instead of one, are required and may need to be stored and / or transmitted as part of a B certificate. Additionally, if B's signature i is temporary, some proof of that the temporary key used was, in fact, the key that i needed to use only for step s and round r.

[0018] A segurança do sistema é derivada de uma escolha adequada do alvo t e do número n de assinaturas suficientes para certificar um bloco. Por exemplo, p é a porcentagem máxima de usuários maliciosos no sistema. Tipicamente, os usuários maliciosos são minoria — por exemplo, p < 1/3. Então, t e n podem ser escolhidos de modo que, com probabilidade suficientemente alta, (a) para qualquer valor de bloco possível B', haja n ou mais assinaturas credenciadas de usuários honestos para formar um certificado para B' e (b) em qualquer certificado de B', pelo menos um assinatura credenciada pertence a um usuário honesto.[0018] The security of the system is derived from an adequate choice of target t and the number n of signatures sufficient to certify a block. For example, p is the maximum percentage of malicious users on the system. Typically, malicious users are in the minority - for example, p <1/3. So ten can be chosen so that, with sufficiently high probability, (a) for any possible block value B ', there are n or more accredited signatures from honest users to form a certificate for B' and (b) on any certificate of B ', at least one accredited subscription belongs to an honest user.

[0019] Além disso, o conjunto de usuários honestos que são credenciados para certificar um bloco B é suficientemente aleatório para que um adversário não possa prever que são e corromper os mesmos antes que certifiquem o bloco. Por outro lado, após um usuário honesto i certificar um bloco B e propagar SIGi(B), o adversário não tem vantagem em corromper i. De fato, SIGi(B) já está sendo viralmente propagado por toda a rede, e o adversário não pode interromper esse processo de propagação. Em segundo lugar, se, após corromper i, o adversário forçar i a sinalizar digitalmente um bloco B’ diferente, então, SIGi(B') pode não ter um hash que é menor que t e ter uma probabilidade justa de encontrar n assinaturas digitais de B', o adversário poderia ter que corromper mais de uma fração p dos usuários.[0019] In addition, the set of honest users who are accredited to certify a B block is sufficiently random that an opponent cannot predict who they are and corrupt them before they certify the block. On the other hand, after an honest user i certifies a B block and propagates SIGi (B), the opponent has no advantage in corrupting i. In fact, SIGi (B) is already being virally propagated throughout the network, and the adversary cannot interrupt this propagation process. Secondly, if, after corrupting i, the opponent forces you to digitally signal a different B 'block, then SIGi (B') may not have a hash that is less than having a fair probability of finding n digital signatures of B ', the opponent could have to corrupt more than a fraction of the users.

[0020] Como parte do sistema da invenção, um usuário i pode não ter uma credencial única para B (ou nenhuma), mas também uma credencial com um peso (essencialmente uma credencial associada a diversos votos). De fato, o peso das credenciais de i para B pode depender de quanto dinheiro i tem no sistema. De fato, em vez de ter um único t para todos os usuários, cada usuário i pode ter seu próprio alvo ti que é mais alto que a mais alto quanto mais alta a quantidade de dinheiro de i. E o peso da credencial de i para B pode depender de quão pequeno é o hash de SIGi(B) em relação a ti. Para simplificar, mas sem limitação, o presente sistema continuará a ser descrito tratando um usuário i com uma credencial de peso m para B como m usuários, em que cada um tem uma credencial (peso 1) para B.[0020] As part of the system of the invention, a user i may not have a unique credential for B (or none), but also a credential with a weight (essentially a credential associated with several votes). In fact, the weight of credentials from i to B may depend on how much money i has in the system. In fact, instead of having a single t for all users, each user i can have his own target ti which is higher than the highest the higher the amount of money i. And the weight of the credential from i to B may depend on how small the SIGi hash (B) is in relation to you. For simplicity, but without limitation, the present system will continue to be described by treating a user i with a credential of weight m to B as m users, in which each has a credential (weight 1) for B.

[0021] Até o momento, foi discutida a certificação de um bloco B através de um número suficiente de assinaturas credenciadas de B. De modo mais genérico, entretanto, o sistema da invenção se aplica a blockchains em que pelo menos uma dada mensagem m é certificada por um número suficiente de assinaturas digitais credenciadas de m. Tal mensagem m pode não ser um bloco, mas uma série de dados mais geral. Consequentemente, tal certificação de m pode garantir que diferentes propriedades de apliquem a m em relação àquelas aplicáveis ou desejáveis para blocos. Por exemplo, porém sem qualquer limitação, a propriedade de que m foi aprovado por uma fração suficiente de um conjunto S de usuários no sistema ou por pelo menos um usuário honesto em S. De fato, os usuários em S que têm uma assinatura credenciada de m podem formar uma amostra selecionada de modo suficientemente aleatório dos usuários em S. Assim, o fato de que um número suficiente de assinaturas credenciadas de m foi produzido indica que, com probabilidade suficientemente alta, uma dada fração de usuários em S ou pelo menos um usuário honesto em S aprova m.[0021] So far, certification of a B block has been discussed through a sufficient number of B-accredited signatures. More generally, however, the system of the invention applies to blockchains where at least one given message m is certified by a sufficient number of digital signatures accredited by m. Such a message may not be a block, but a more general data series. Consequently, such hand certification can guarantee that different properties of hand apply in relation to those applicable or desirable for blocks. For example, but without any limitation, the property that m has been approved by a sufficient fraction of a set of users in the system or by at least one honest user in S. In fact, users in S who have an accredited subscription to m can form a sample selected at random enough from users in S. Thus, the fact that a sufficient number of accredited signatures of m has been produced indicates that, with sufficiently high probability, a given fraction of users in S or at least one honest user on S approves m.

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

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0023] As modalidades do sistema descrito no presente documento são explicadas em mais detalhes em conformidade com as figuras dos desenhos, que são brevemente descritas conforme segue.[0023] The modalities of the system described in this document are explained in more detail in accordance with the figures in the drawings, which are briefly described as follows.

[0024] 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.[0024] Figure 1 is a schematic representation of a network and computing stations according to a system modality described in this document.

[0025] A Figura 2 é um esquema e um resumo conceitual da primeira etapa do sistema de Algorand, em que um novo bloco de transações é proposto.[0025] 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.

[0026] A Figura 3 é um esquema e um resumo conceitual do acordo e certificação de um novo bloco no sistema de Algorand.[0026] Figure 3 is a schematic and conceptual summary of the agreement and certification for a new block in the Algorand system.

[0027] 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.[0027] Figure 4 is a schematic diagram that illustrates a Merkle tree and an authentication path for a value contained in one of its nodes.

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

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

[0029] O sistema descrito no presente documento fornece um mecanismo 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 das entidades participantes compartilha os cálculos que são realizados para propagar transação de uma maneira verificável e confiável.[0029] The system described in this document provides a mechanism 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 the calculations that are performed to propagate the transaction in a verifiable and reliable manner.

[0030] Em referência à Figura 1, um diagrama mostra uma pluralidade de estações de trabalho de computação 22a a 22c conectadas a uma rede de dados 24, tal como a Internet. As estações de trabalho 22a a 22c se comunicam entre si através da rede 24 para fornecer propagação e verificação de transação distribuída, conforme descrito em mais detalhes em outra parte no presente documento. O sistema pode acomodar qualquer número de estações de trabalho com capacidade para fornecer a funcionalidade descrita no presente documento, contanto que as estações de trabalho 22a a 22c possam se comunicar umas com as outras. Cada uma das estações de trabalho 22a a 22c pode realizar independentemente processamento para propagar transações a todas as outras estações de trabalho no sistema e verificar transações, conforme descrito em mais detalhes em outra parte no presente documento.[0030] Referring to Figure 1, a diagram shows a plurality of computing workstations 22a to 22c connected to a data network 24, such as the Internet. Workstations 22a through 22c communicate with each other over network 24 to provide distributed transaction propagation and verification, as described in more detail elsewhere in this document. The system can accommodate any number of workstations capable of providing the functionality described in this document, as long as workstations 22a to 22c can communicate with each other. Each of the workstations 22a to 22c can independently perform processing to propagate transactions to all other workstations in the system and verify transactions, as described in more detail elsewhere in this document.

[0031] A Figura 2 resume de modo diagramático e conceitual a primeira etapa de uma rodada r no sistema de Algorand, em que cada um dentre alguns usuários selecionados propõe seu próprio candidato ao r- ésimo bloco. Especificamente, a etapa começa com os usuários no sistema, a, ... , z, individualmente passando pelo processo de sorteio criptográfico secreto, 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 tem direito a produzir um bloco. No exemplo da Figura 2, apenas os usuários b, d e h são selecionados para propor um bloco, e suas credenciais, respectivamente, computadas são e . Cada usuário selecionado i monta seu próprio bloco proposto, , sinaliza temporariamente o mesmo (isto é, sinaliza digitalmente o mesmo com uma chave temporária, conforme explicado posteriormente) e propaga para rede juntamente com sua própria credencial. O líder da rodada é o usuário selecionado cuja credencial tem o menor hash. A figura indica o líder como sendo usuário d. Assim, seu bloco proposto, , é aquele a ser dado como entrada ao protocolo de acordo Binário.[0031] Figure 2 summarizes diagrammatically and conceptually the first stage of a round r in the Algorand system, in which each of some selected users proposes their own candidate for the tenth block. Specifically, the step begins with the users in the system, a, ..., z, individually going through the secret cryptographic draw 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 entitled to produce a block. In the example in Figure 2, only users b, d and h are selected to propose a block, and their credentials, respectively, are e. Each selected user i assembles his own proposed block,, temporarily signals the same (that is, digitally signals the same with a temporary key, as explained later) and propagates to the network together with his own credential. The leader of the round is the selected user whose credential has the lowest hash. The figure indicates the leader as a user d. Thus, your proposed block,, is the one to be given as input to the Binary agreement protocol.

[0032] A Figura 3 resume diagramática e conceitualmente o processo de Algorand para atingir acordo e certificação de um bloco proposto como o r-ésimo bloco oficial, Br. Visto que a primeira etapa de Algorand consiste em propor um novo bloco, esse processo começa com a segunda etapa. Essa etapa atualmente coincide com a primeira etapa do protocolo de acordo Bizantino preferencial de Algorand, BA*. Cada etapa desse protocolo é executada por um “comitê” diferente de jogadores, selecionado aleatoriamente por sorteio criptográfico secreto (não mostrado nessa figura). Consequentemente, os usuários selecionados para realizar cada etapa podem ser totalmente diferentes. O número de Etapas de BA* pode variar. A Figura 3 representa uma execução de BA* envolvendo 7 etapas: da etapa 2 de Algorand a etapa 8 de Algorand. No exemplo da Figura 3, os usuários selecionados para realizar a etapa 2 são a, e e q. Cada usuário i ∈ {a, e, q} propaga à rede sua credencial , que prova que i tem, de fato, direito de enviar uma mensagem na etapa 2 da rodada r de Algorand, e sua mensagem adequada dessa etapa, , temporariamente sinalizada. As 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 que atingiram acordo sobre Br como o bloco oficiam de rodada r propagam suas próprias assinaturas temporárias de bloco Br (juntamente, essas assinaturas certificam Br) e suas próprias credenciais, provando que têm o direito de atuar na etapa 8.[0032] Figure 3 summarizes diagrammatically and conceptually the Algorand process to reach agreement and certification of 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 stage currently coincides with the first stage of Algorand, BA * preferred Byzantine agreement protocol. Each step of this protocol is performed by a different “committee” of players, selected at random by secret cryptographic draw (not shown in this figure). Consequently, the users selected to perform each step can be totally different. The number of BA * Steps may vary. Figure 3 represents a BA * execution involving 7 steps: from step 2 of Algorand to step 8 of Algorand. In the example in Figure 3, the users selected to perform step 2 are a, e and q. Each user i ∈ {a, e, q} propagates his credential to the network, which proves that i has, in fact, the right to send a message in step 2 of round r of Algorand, and his appropriate message from that step, temporarily signaled . Steps 3 through 7 are not shown. In the last step 8, the figure shows that the selected users corresponding b, f and x who reached agreement on Br as the block officiate round r propagate their own temporary signatures of Br block (together, these signatures certify Br) and their own credentials, proving who have the right to act in step 8.

[0033] A Figura 4 ilustra esquematicamente uma árvore de Merkle e uma de suas trajetórias de autenticação. Especificamente, a Figura[0033] 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 série binária de comprimento ≤ 3, armazena um valor vx. Se x tiver comprimento ≤ 2, então, vx = H(vx0, vx1). Para a árvore de Merkle da Figura 4.a, a Figura 4.B ilustra a trajetória de autenticação do valor v010.4.A illustrates a complete Merkle tree of depth 3. Each node x, where x is denoted by a binary series of length ≤ 3, stores a value vx. If x is ≤ 2 in length, then vx = H (vx0, vx1). For the Merkle tree in Figure 4.a, Figure 4.B illustrates the authentication path of the v010 value.

[0034] A Figura 5 ilustra esquematicamente as árvores de Merkle, correspondente aos primeiros 8 blocos construídos em uma árvore de blocos, construída dentro de uma árvore binária completa de profundidade[0034] Figure 5 schematically illustrates the Merkle trees, corresponding to the first 8 blocks built in a block tree, built within a complete binary tree of depth

3. Na Figura 5.i, os nós marcados por um número inteiro pertencem à árvore de Merkle Ti. O conteúdo dos nós marcados por i (respectivamente, por i) é temporário (respectivamente, permanentes).3. In Figure 5.i, the nodes marked by an integer belong to the Merkle Ti tree. The content of the nodes marked by i (respectively, by i) is temporary (respectively, permanent).

[0035] A descrição no presente documento foca em transações que são pagamentos e na descrição do sistema no presente documento como uma plataforma de dinheiro. Aqueles versados na técnica perceberão que o sistema descrito no presente documento pode lidar com todos os tipos de transações também.[0035] 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 handle all types of transactions as well.

[0036] O sistema descrito no presente documento tem um projeto muito flexível e pode ser implantado de formas diversas, mas relacionadas. Sua flexibilidade é ilustrada detalhando-se duas modalidades possíveis de seu projeto geral. A partir das mesmas, aqueles versados na técnica podem perceber como derivar todos os tipos de outras implantações também.[0036] The system described in this document has a very flexible design and can be implemented in different but related ways. Its flexibility is illustrated by detailing two possible modalities of its overall project. From them, those skilled in the art can understand how to derive all kinds of other deployments as well.

[0037] 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 a ambas as modalidades detalhadas.[0037] In order to facilitate the understanding of the invention and allow the internal cross-reference of its various parts, its presentation was organized in numbered and titled sections. The first sections are common to both detailed modalities.

1 INTRODUÇÃO1. INTRODUCTION

[0038] O dinheiro está se tornando crescentemente virtual. Foi estimado que cerca de 80% dos dólares americanos de hoje apenas existem como entradas de registro. Outros instrumentos financeiros estão seguindo o exemplo.[0038] Money is becoming increasingly virtual. It has been estimated that about 80% of US dollars today exist only as registry entries. Other financial instruments are following suit.

[0039] Em um mundo ideal, em que poderia se contar com uma entidade central universalmente confiável, imune a todos os ataques cibernéticos possíveis, dinheiro e outras transações financeiras poderiam ser apenas eletrônicas. Infelizmente, não se vive em tal mundo. Consequentemente, criptomoedas decentralizadas, tal como Bitcoin, e sistemas de “contrato inteligente”, tal como Ethereum, foram propostos. No centro desses sistemas está um registro compartilhado que registra confiavelmente uma sequência de transações, tão variadas como pagamentos e contratos, de uma forma inviolável. A tecnologia de escolha para garantir tal inviolabilidade é o blockchain. Os blockchains estão por trás de aplicações, tais como as criptomoedas, aplicações financeiras e a Internet das Coisas. Diversas técnicas para gerenciar registros baseados em blockchain foram propostos: prova de trabalho, prova de participação, tolerância a falha bizantina prática ou alguma combinação.[0039] In an ideal world, in which one could count on a universally trusted central entity, immune to all possible cyber attacks, money and other financial transactions could be just electronic. Unfortunately, you don't live in such a world. Consequently, decentralized cryptocurrencies, such as Bitcoin, and “smart contract” systems, such as Ethereum, have been proposed. At the heart of these systems is a shared record that reliably records a sequence of transactions, as varied as payments and contracts, in an inviolable way. The technology of choice to guarantee such inviolability is blockchain. Blockchains are behind applications, such as cryptocurrencies, financial applications and the Internet of Things. Several techniques for managing blockchain-based records have been proposed: proof of work, proof of participation, practical Byzantine fault tolerance or some combination.

[0040] Atualmente, entretanto, os registros podem ser ineficientes para gerenciamento. Por exemplo, a abordagem de prova de trabalho da Bitcoin exige uma vasta quantidade de computação, é dispendiosa e ruim de escalonas. Adicionalmente, a mesma, de fato, concentra poder nas mãos de poucos.[0040] Currently, however, records can be inefficient for management. For example, Bitcoin's proof-of-work approach requires a vast amount of computing, is costly, and bad at scale. Additionally, it, in fact, concentrates power in the hands of a few.

[0041] Deseja-se, portanto, apresentar um novo método para implantar um registro público que oferece a conveniência e a eficiência de um sistema centralizado executado por uma autoridade confiável e inviolável, sem as ineficiências e fraquezas das implantações decentralizadas atuais. A presente abordagem é chamada de Algorand, devido ao fato de que é usada aleatoriedade algorítmica para selecionar, com base no registro construído até o momento, um conjunto de verificadores que são responsáveis por construir o bloco seguintes de transações válidas. Naturalmente, garante-se que tais seleções são provavelmente imunes a manipulações e imprevisíveis até o último minuto, mas também que são por fim universalmente claras.[0041] It is intended, therefore, to present a new method for implementing a public registry that offers the convenience and efficiency of a centralized system executed by a reliable and inviolable authority, without the inefficiencies and weaknesses of current decentralized deployments. The present approach is called Algorand, due to the fact that algorithmic randomness is used to select, based on the record built so far, a set of verifiers that are responsible for building the next block of valid transactions. Naturally, it is guaranteed that such selections are probably immune to manipulation and unpredictable until the last minute, but also that they are ultimately universally clear.

[0042] A abordagem de Algorand é bastante democrática, no sentido de que nem a princípio nem fato cria diferentes classes de usuários (como “mineradores” e “usuários comuns” em Bitcoin). Em Algorand, “todo poder reside no conjunto de todos os usuários”.[0042] Algorand's approach is quite democratic, in the sense that neither in principle nor in fact creates different classes of users (such as “miners” and “ordinary users” in Bitcoin). In Algorand, "all power resides in all users".

[0043] Uma propriedade notável de Algorand é que seu histórico de transação pode bifurcar-se apenas com probabilidade muito baixa (por exemplo, uma em um trilhão, ou seja, até mesmo 10-18). Algorand pode também solucionar algumas preocupações legais e políticas.[0043] A notable feature of Algorand is that its transaction history can branch out only with very low probability (for example, one in a trillion, that is, even 10-18). Algorand can also address some legal and political concerns.

[0044] A abordagem de Algorand se aplica a blockchains e, de modo mais genérico, a qualquer método para gerar uma sequência inviolável de blocos. Apresenta-se, realmente, um novo método — alternativo a e mais eficiente que blockchains — que pode ser de interesse independente.[0044] Algorand's approach applies to blockchains and, more generally, to any method for generating an inviolable sequence of blocks. A new method is presented - alternative to and more efficient than blockchains - that can be of independent interest.

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

[0045] Bitcoin é um sistema muito engenhoso e tem inspirado uma grande quantidade de pesquisa subsequente. No entanto, é também problemático. Serão resumidas sua suposição subjacente e problemas técnicos — que são realmente compartilhados por essencialmente todas as criptomoedas que, como a Bitcoin, são baseadas em prova de trabalho.[0045] Bitcoin is a very ingenious system and has inspired a great deal of subsequent research. However, it is also problematic. Its underlying assumption and technical problems will be summarized - which are actually shared by essentially all cryptocurrencies that, like Bitcoin, are based on proof of work.

[0046] Para esse resumo, é suficiente lembrar que, na Bitcoin, um usuário pode possuir múltiplas chaves públicas de um esquema de assinatura digital, que o dinheiro está associado a chaves públicas e que um pagamento é uma assinatura digital que transfere alguma quantidade de dinheiro de uma chave pública para outra. Essencialmente, a Bitcoin organiza todos os pagamentos processados em uma cadeia de blocos, Β1, Β2, . . ., em que cada um consiste em múltiplos pagamentos, de modo que todos os pagamentos de B1, considerados em qualquer 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.[0046] For this summary, it is enough 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 some amount of money from one public key to another. Essentially, Bitcoin organizes all payments processed in a block chain, Β1, Β2,. . ., each consisting of multiple payments, so that all payments from B1, considered in any 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.

[0047] Essa sequência de blocos é uma cadeia, devido ao fato de que é estruturada de modo a garantir que qualquer alteração, mesmo em um único bloco, se difunda em todos os blocos subsequentes, tornando mais fácil observar qualquer alteração do histórico de pagamento. (Conforme pode ser visto, isso é atingido incluindo-se em cada bloco um hash criptográfico do bloco anterior.) Tal estrutura de bloco é denominada um blockchain.[0047] 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, diffuses in all subsequent blocks, making it easier to observe any change in the payment history . (As can be seen, this is achieved by including a cryptographic hash of the previous block in each block.) Such a block structure is called a blockchain.

[0048] Suposição: Maioria Honesta de Potência Computacional A Bitcoin supõe que nenhuma entidade maliciosa (nem uma coalizão de entidades maliciosas coordenadas) controla a maior parte da potência computacional devotada à geração de bloco. Tal entidade, de fato, poderia ter capacidade de modificar o blockchain e, assim, reescrever o histórico de pagamento, conforme desejar. Em particular, poderia realizar um pagamento obter os benefícios pagos e, então, “apagar” qualquer traço de .[0048] Assumption: Honest Majority of Computational Power Bitcoin assumes that no malicious entity (nor a coalition of coordinated malicious entities) controls most of the computational power devoted to block generation. Such an entity, in fact, could have the ability to modify the blockchain and thus rewrite the payment history as desired. In particular, you could make a payment to get the benefits paid and then “erase” any trace of it.

[0049] 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 chaves públicas no sistema, os 500 supercomputadores mais potentes podem apenas exibir meros 12,8% por cento da potência computacional total necessária pelos jogadores de Bitcoin. Essa quantidade de computação poderia aumentar grandemente, significativamente mais usuários poderiam ingressar no sistema.[0049] 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 public keys in the system, the 500 most powerful supercomputers can only display a mere 12.8% percent of the total computational power required by Bitcoin players. This amount of computing could increase greatly, significantly more users could join the system.

[0050] Problema da Técnica 2: Concentração de Potência Hoje, devido à quantidade exorbitante de computação necessária, espera-se que um usuário, tentando gerar um novo bloco com o uso de um computador do tipo desktop comum (sobretudo um telefone celular), perca dinheiro. De fato, para computar um novo bloco com um computador comum, o custo esperado da eletricidade necessária para alimentar a computação excede a recompensa esperada. Apenas usando grupos de computadores especialmente construídos (que não fazem nada além de “minar novos blocos”), seria esperado produzir um lucro gerando-se novos blocos. Consequentemente, atualmente há, de fato, duas classes separados de usuários: usuários comuns, que realizam apenas pagamentos, e grupos de mineração especializados, que apenas buscam novos blocos.[0050] Problem of Technique 2: Power Concentration Today, due to the exorbitant amount of computing required, it is expected that a user, trying to generate a new block using a common desktop computer (especially a cell phone), lose money. In fact, to compute a new block with an ordinary computer, the expected cost of electricity needed to power the computation exceeds the expected reward. Only by using specially constructed groups of computers (which do nothing but "undermine new blocks") would it be expected to produce a profit by generating new blocks. As a result, there are actually two separate classes of users today: ordinary users, who make only payments, and specialized mining groups, who only look for new blocks.

[0051] Não deve surpreender que, recentemente, a potência de computação total para geração de bloco se encontra dentro de apenas cinco grupos. Em tais condições, a suposição de que a maior parte da potência computacional é honesta se torna menos crível.[0051] It should not be surprising that, recently, the total computing power for block generation is found within only five groups. Under such conditions, the assumption that most computing power is honest becomes less credible.

[0052] Problema da Técnica 3: Ambiguidade Em Bitcoin, o blockchain não é necessariamente exclusivo. De fato, sua última porção frequentemente se bifurca: o blockchain pode ser — por exemplo — de acordo com um usuário e de acordo com outro usuário. Apenas após diversos blocos terem sido adicionados à cadeia, pode-se ter razoavelmente certeza de que os primeiros blocos de serão iguais para todos os usuários. Assim, não se pode contar imediatamente com os pagamentos contidos no último bloco da cadeia. É mais prudente esperar e observar se o bloco se torna suficientemente profundo no blockchain e, assim, suficientemente estável.[0052] Problem of Technique 3: Ambiguity In Bitcoin, blockchain is not necessarily exclusive. In fact, its last portion often forks: the blockchain can be - for example - according to one user and according to another user. Only after several blocks have been added to the chain can you be reasonably sure that the first blocks will be the same for all users. Thus, the payments contained in the last block of the chain cannot be counted on immediately. It is more prudent to wait and observe whether the block becomes deep enough in the blockchain and thus stable enough.

[0053] Separadamente, preocupações quanto à aplicação da lei e política monetária também surgiram sobre a Bitcoin.2 2 O (pseudo) anonimato oferecido por pagamentos com Bitcoin pode ser mal utilizado para lavagem de dinheiro e/ou o financiamento de criminosos ou organizações terroristas. As cédulas ou barras de ouro tradicionais, que a princípio[0053] Separately, concerns about law enforcement and monetary policy have also arisen over Bitcoin.2 2 The (pseudo) anonymity offered by Bitcoin payments can be misused for money laundering and / or the financing of criminals or terrorist organizations . Traditional banknotes or gold bars, which at first

1.2 ALGORAND, EM UM RESUMO1.2 ALGORAND, IN A SUMMARY

[0054] O ambiente Algorand funciona em um ambiente muito difícil. Em resumo,[0054] The Algorand environment works in a very difficult environment. In short,

[0055] (a) Ambientes Sem Permissão e Com Permissão. Algorand funciona de modo eficiente e seguro em um ambiente totalmente sem permissão, em que é permitido arbitrariamente que muitos usuários ingressem no sistema a qualquer momento, sem qualquer veto ou permissão de qualquer tipo. Obviamente, Algorand funciona ainda melhor em um ambiente com permissão.[0055] (a) Environments Without Permission and With Permission. Algorand works efficiently and securely in an environment without permission, in which many users are allowed arbitrarily to enter the system at any time, without any veto or permission of any kind. Obviously, Algorand works even better in an environment with permission.

[0056] (b) Ambientes Muito Adversos. Algorand resiste a um adversário muito forte, que pode[0056] (b) Very Adverse Environments. Algorand resists a very strong opponent, who can

[0057] (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ça a um usuário honesto. (Em um ambiente com permissão, independente de dinheiro, é suficiente que 2/3 dos usuários sejam honestos.)[0057] (1) instantly corrupt any user you want, any time 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.)

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

[0059] (3) programar a entrega de todas as mensagens, contanto que cada mensagem m enviada por um usuário honesto atinja todos (ou suficientemente muitos dos) os usuários honestos dentro de um tempo λm, que depende apenas do tamanho de m.[0059] (3) schedule the delivery of all messages, provided that each message sent by an honest user reaches all (or sufficiently many of) the honest users within a time λm, which depends only on the size of m.

[0060] Propriedades Principais a Despeito da presença de oferecem anonimato perfeito, podem impor algum desafio, porém a fisicalidade dessas moedas retarda substancialmente as transferências de dinheiro, de modo a permitir algum grau de monitoramento por agências de aplicação da lei. A capacidade de "imprimir dinheiro” é um dos poderes mais básicos de uma nação. A princípio, portanto, a adoção massiva de uma moeda independentemente flutuante pode restringir esse poder. Atualmente, entretanto, a Bitcoin está longe de ser uma ameaça às políticas monetárias governamentais em devido a seus problemas de escalabilidade, podem nunca ser.[0060] Main Properties Despite the presence of offering perfect anonymity, they can impose some challenge, however the physicality of these currencies substantially delays money transfers, in order to allow some degree of monitoring by law enforcement agencies. The ability to "print money" is one of the most basic powers of a nation. In principle, therefore, the massive adoption of an independently floating currency may restrict that power. Currently, however, Bitcoin is far from being a threat to monetary policies. due to their scalability problems, they may never be.

adversário forte, em Algorandstrong opponent in Algorand

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

[0062] • Um novo bloco é gerado rapidamente e, de fato, nunca deixará o blockchain. Ou seja, o blockchain de Algorand pode se bifurcar apenas com probabilidade desprezível (isto é, menos de um em um trilhão ou 10-18). Assim, os usuários podem retransmitir os pagamentos contidos em um novo bloco assim que o bloco aparecer.[0062] • A new block is generated quickly and, in fact, will never leave the blockchain. That is, Algorand's blockchain can branch out only with negligible probability (i.e. less than one in a trillion or 10-18). Thus, users can relay payments contained in a new block as soon as the block appears.

[0063] • Todo poder está com os próprios usuários. Algorand é um sistema realmente distribuído.[0063] • All power is with the users themselves. Algorand is a really distributed system.

[0064] Em particular, não há entidades exógenas (como os “mineradores” em Bitcoin), que podem controlar quais transações são reconhecidas. TÉCNICAS DE ALGORAND.[0064] In particular, there are no exogenous entities (such as “miners” in Bitcoin), which can control which transactions are recognized. ALGORAND TECHNIQUES.

[0065] 1. UM PROTOCOLO DE ACORDO BIZANTINO NOVO E RÁPIDO. Algorand gera um novo bloco através de um protocolo de acordo bizantino (ΒΑ) binário, de passagem de mensagem, criptográfico da invenção, BA*. O protocolo BA* não apenas satisfaz algumas propriedades adicionais (que serão discutidas logo), mas é também muito rápido. De modo geral, sua versão de entrada binária consiste em um circuito de 3 etapas, em que um jogador i envia uma única mensagem mi a todos os outros jogadores. Executado em uma rede completa e sincronizada, com mais de 2/3 dos jogadores sendo honestos, com probabilidade > 1/3, após cada circuito do protocolo terminar em acordo. (Enfatiza-se que o protocolo BA* satisfaz a definição original de acordo bizantino, sem quaisquer enfraquecimentos.)[0065] 1. A NEW AND QUICK BYZANTINE AGREEMENT PROTOCOL. Algorand generates a new block using a binary, message passing, cryptographic bypass protocol, BA *. The BA * protocol not only satisfies some additional properties (which will be discussed shortly), but it is also very fast. In general, its binary input version consists of a 3-step circuit, in which one player i sends a single message mi to all other players. Executed in a complete and synchronized network, with more than 2/3 of the players being honest, with probability> 1/3, after each protocol circuit ends in agreement. (It is emphasized that the BA * protocol satisfies the original definition of the Byzantine agreement, without any weakening.)

[0066] Algorand alavanca esse protocolo BA binário para atingir acordo, no presente modelo de comunicação diferente, em cada novo bloco. O acordo sobre o bloco é, então, certificado, através de um número prescrito de assinatura digital dos verificadores adequados e propagado através da rede.[0066] Algorand leverages this binary BA protocol to reach agreement, in the present different communication model, on each new block. The agreement on the block is then certified through a prescribed digital signature number from the appropriate verifiers and propagated through the network.

[0067] 2. SORTEIO CRIPTOGRÁFICO SECRETO. Embora muito rápido, o protocolo BA* poderia se beneficiar de velocidade adicional quando executado por milhões de usuários. Consequentemente, Algorand escolhe jogadores de BA* para serem um subconjunto muito menor do conjunto de todos os usuários. Para evitar um tipo diferente de problema de concentração de potência, cada novo bloco Br será construído e acordado, através de uma nova execução de BA*, por um conjunto separado de verificadores selecionados, SVr. A princípio, selecionar tal conjunto pode ser tão difícil quanto selecionar Br diretamente. Esse problema é solucionado por uma abordagem inovadora chamada sorteio criptográfico secreto. O sorteio na prática de selecionar oficiais aleatoriamente dentre um conjunto grande de indivíduos elegíveis. (O sorteio foi praticado por séculos: por exemplo, pelas repúblicas de Atena, Florença e Veneza. Nos sistemas judiciais modernos, a seleção aleatória é frequentemente usada para escolher juris. A amostragem aleatória também tem sido defendida para eleições.) Em um sistema decentralizado, obviamente, escolher as moedas aleatórias para selecionar aleatoriamente os membros de cada conjunto de verificadores SVr é problemático. Recorre-se, assim, à criptografia a fim de selecionar cada conjunto de verificadores, dentre a população de todos os usuários, de uma forma que seja automática de modo garantido (isto é, sem exigir troca de mensagens) e aleatória. De uma forma similar, seleciona-se um usuário, o líder, responsável por propor o novo bloco Br, e o conjunto de verificadores SVr, responsável por atingir o acordo no bloco proposto pelo líder. O sistema da invenção alavanca algumas informações, Qr-1, que são deduzíveis a partir do conteúdo do bloco anterior e são não manipuláveis mesmo na presença de um adversário muito forte.[0067] 2. SECRET CRYPTOGRAPHIC DRAWING. Although very fast, the BA * protocol could benefit from additional speed when run by millions of users. Consequently, Algorand chooses BA players * to be a much smaller subset of all users. To avoid a different type of power concentration problem, each new Br block will be built and agreed, through a new execution of BA *, by a separate set of selected verifiers, SVr. At first, selecting such a set can be as difficult as selecting Br directly. This problem is solved by an innovative approach called secret cryptographic draw. The draw in the practice of selecting officers at random from a large set of eligible individuals. (The draw has been practiced for centuries: for example, by the republics of Athena, Florence and Venice. In modern judicial systems, random selection is often used to choose juris. Random sampling has also been advocated for elections.) In a decentralized system Obviously, choosing random currencies to randomly select the members of each set of SVr verifiers is problematic. Thus, cryptography is used in order to select each set of verifiers, among the population of all users, in a way that is guaranteed in an automatic way (that is, without requiring message exchange) and random. In a similar way, a user is selected, the leader, responsible for proposing the new Br block, and the SVr set of verifiers, responsible for reaching the agreement in the block proposed by the leader. The system of the invention leverages some information, Qr-1, which are deductible from the contents of the previous block and are not manipulable even in the presence of a very strong opponent.

[0068] 3. A QUANTIDADE (SEMENTE) Qr. Usa-se o último bloco Br-1 no blockchain a fim de determinar automaticamente o conjunto de verificadores seguinte e líder responsável por construir o novo bloco Br. O desafio dessa abordagem é que, apenas escolher um pagamento ligeiramente diferente da rodada anterior, o adversário forte ganha um controle enorme sobre o líder seguinte. Mesmo se tiver controlado apenas 1/1.000 dos jogadores/dinheiro no sistema, poderia garantir que todos os líderes fossem maliciosos. (Consultar a Seção de Intuição 4.1.) Esse desafio é central a todas as abordagens de prova de participação e, até onde se sabe, o mesmo não foi, até agora, satisfatoriamente solucionado.[0068] 3. THE QUANTITY (SEED) Qr. The last Br-1 block in the blockchain is used in order to automatically determine the next set of verifiers and leader responsible for building the new Br block. The challenge of this approach is that, just choosing a payment slightly different from the previous round, the opponent strongman gains enormous control over the next leader. Even if you controlled only 1 / 1,000 of the players / money in the system, you could guarantee that all the leaders were malicious. (See Intuition Section 4.1.) This challenge is central to all evidence-based approaches to participation and, as far as is known, has not, to date, been satisfactorily solved.

[0069] Para atender esse desafio, foi propositadamente construída e continuamente atualizada uma quantidade cuidadosamente definida, Qr, que provavelmente não é apenas imprevisível, mas também não é influenciável, pelo adversário forte. Qr pode ser denominado a r-ésima semente, já que é a partir de Qr que Algorand seleciona, através de um sorteio criptográfico secreto, todos os usuários que exercem um papel especial na geração do r-ésimo bloco. A semente Qr será deduzível a partir do bloco Br-1.[0069] To meet this challenge, a carefully defined quantity, Qr, was purposely built and continuously updated, which is probably not only unpredictable, but also not influenced by the strong opponent. Qr can be called the r-th seed, since it is from Qr that Algorand selects, through a secret cryptographic draw, all users who have a special role in the generation of the r-th block. The Qr seed will be deductible from the Br-1 block.

[0070] 4. CREDENCIAIS SECRETAS. Usar de modo aleatório e não ambíguo o último bloco atual, Br-1, a fim de escolher o conjunto de verificadores e o líder responsável por construir o novo bloco, Br, não é suficiente. Visto que Br-1 precisa ser conhecido antes de gerar Br, a última quantidade não influenciável Qr-1 deduzível de Br-1 também precisa ser conhecida. Consequentemente, também o são os verificadores e o líder responsável por computar o bloco Br. Assim, o adversário forte pode corromper imediatamente todos os mesmos, antes de entrar em qualquer discussão sobre Br, de modo a obter controle completo sobre o bloco que certificam.[0070] 4. SECRET CREDENTIALS. Using the last current block, Br-1, at random and unambiguously, in order to choose the set of verifiers and the leader responsible for building the new block, Br, is not enough. Since Br-1 needs to be known before generating Br, the last non-liable amount of deductible Br-1 Qr-1 must also be known. Consequently, so are the verifiers and the leader responsible for computing the Br block. Thus, the strong opponent can immediately corrupt all of them, before entering into any discussion about Br, in order to obtain complete control over the block they certify.

[0071] Para evitar esse problema, líderes (e na realidade verificadores também) aprendem secretamente seu papel, mas podem computar uma credencial adequada, que pode fornecer todos que, de fato, têm esse papel. Quando um usuário privadamente percebe que é o líder para o bloco seguinte, em primeiro lugar, monta secretamente seu próprio novo bloco proposto e, então, dissemina o mesmo (de modo que possa ser certificado) juntamente com sua própria credencial. Dessa forma, embora o adversário perceba imediatamente quem é o líder do bloco seguinte e embora possa corromper o mesmo imediatamente, será também tarde demais para o adversário influenciar a escolha de um novo bloco. De fato, o mesmo não pode “recuperar” a mensagem do líder tanto quanto um governo forte pode colocar de volta na garrafa uma mensagem viralmente espalhada pelo WikiLeaks.[0071] To avoid this problem, leaders (and in fact verifiers too) secretly learn their role, but can compute an appropriate credential, which can provide everyone who, in fact, has that role. When a user privately realizes that he is the leader for the next block, he secretly assembles his own proposed new block and then disseminates it (so that he can be certified) along with his own credential. Thus, although the opponent immediately realizes who is the leader of the next block and although it may corrupt it immediately, it will also be too late for the opponent to influence the choice of a new block. In fact, it cannot “retrieve” the leader's message as much as a strong government can put a message virally spread by WikiLeaks back into the bottle.

[0072] Como pode ser visto, não se pode garantir a exclusividade do líder, nem que ninguém com certeza sabe quem é o líder, incluindo o próprio líder! Mas, em Algorand, o progresso não ambíguo será garantido.[0072] As can be seen, the exclusivity of the leader cannot be guaranteed, nor that anyone with certainty knows who the leader is, including the leader himself! But in Algorand, unambiguous progress will be guaranteed.

[0073] 5. SUBSTITUIBILIDADE DO JOGADOR. Após propor um novo bloco, o líder pode também “morrer” (ou ser corrompido pelo adversário), devido ao fato de que seu trabalho foi concluído. Mas, para os verificadores em SVr, é menos simples. De fato, sendo responsável por certificar o novo bloco Br com assinaturas suficientes, os mesmos precisam primeiramente executar o acordo bizantino no bloco proposto pelo líder. O problema é que, não importa quão eficiente seja, BA* exige múltiplas etapas e a honestidade de > 2/3 de seus jogadores. Isso é um problema devido ao fato de que, por razões de eficiência, o conjunto de jogadores de BA* consiste no pequeno conjunto SVr aleatoriamente selecionado dentre o conjunto de todos os usuários. Assim, o adversário forte, embora incapaz de corromper 1/3 de todos os usuários, pode certamente corromper todos os membros de SVr.[0073] 5. SUBSTITUIBILITY OF THE PLAYER. After proposing a new block, the leader may also “die” (or be corrupted by the opponent), due to the fact that his work has been completed. But for SVr checkers, it is less simple. In fact, being responsible for certifying the new Br block with sufficient signatures, they must first execute the Byzantine agreement in the block proposed by the leader. The problem is that, no matter how efficient it is, BA * requires multiple steps and the honesty of> 2/3 of its players. This is a problem due to the fact that, for efficiency reasons, the BA * player set consists of the small SVr set randomly selected from the set of all users. Thus, the strong opponent, while unable to corrupt 1/3 of all users, can certainly corrupt all members of SVr.

[0074] Felizmente, será provado que o protocolo BA*, executado propagando-se mensagens de uma forma par a par, é substituível por jogador. Esse requisito inovador significa que o protocolo atinge correta e eficientemente consenso mesmo se cada uma de suas etapas for executada por um conjunto de jogadores totalmente novo, selecionado de modo aleatório e independente. Assim, com milhões de usuários, cada pequeno conjunto de jogadores associados a uma etapa de BA* mais provavelmente tem intersecção vazia com o conjunto seguinte.[0074] Fortunately, it will be proved that the BA * protocol, executed by propagating messages in a peer-to-peer manner, is replaceable by player. This innovative requirement means that the protocol correctly and efficiently reaches consensus even if each of its steps is performed by a completely new set of players, selected at random and independently. Thus, with millions of users, each small set of players associated with a BA * stage is more likely to have an empty intersection with the next set.

[0075] Adicionalmente, as etapas de jogadores de etapas diferentes de BA* terão provavelmente cardinalidade totalmente diferente. Além disso, os membros de cada conjunto não sabem qual será o conjunto seguinte de jogadores e não passam secretamente qualquer estado interno.[0075] Additionally, the stages of players of different stages of BA * will probably have a totally different cardinality. In addition, the members of each set do not know what the next set of players will be and do not secretly pass any internal state.

[0076] A propriedade de jogador substituível é realmente essencial para derrotar o adversário dinâmico e muito forte enfrentado. Acredita-se que protocolos de jogador substituível serão provados essenciais em muitos dos contextos e aplicações. Em particular, os mesmos serão essenciais para executar com segurança pequenos subprotocolos incorporados em um universo maior com um adversário dinâmico, que, sendo capaz de corromper mesmo uma pequena fração dos jogadores totais, não tem dificuldade de corromper todos os jogadores no subprotocolo menor.[0076] Replaceable player ownership is really essential to defeat the dynamic and very strong opponent faced. Replaceable player protocols are believed to be essential in many contexts and applications. In particular, they will be essential to safely execute small sub-protocols embedded in a larger universe with a dynamic opponent, who, being able to corrupt even a small fraction of the total players, has no difficulty in corrupting all players in the smaller sub-protocol.

[0077] Uma Propriedade/Técnica Adicional: Honestidade Preguiçosa Um usuário honesto segue suas instruções prescritas, que incluem estar online e executar o protocolo. Visto que Algorand tem requisito de comunicação e computação apenas modesta, estar online e executar o protocolo “no plano de fundo” não é um grande sacrifício. Obviamente, algumas “ausências” entre jogadores honestos, como aqueles devido à perda repentina de conectividade e a necessidade de reiniciar, são automaticamente toleradas (devido ao fato de que se pode sempre considerar tal alguns jogadores como sendo temporariamente maliciosos).[0077] An Additional Property / Technique: Lazy Honesty An honest user follows their prescribed instructions, which include 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. Obviously, some "absences" between honest players, such as those due to the sudden loss of connectivity and the need to restart, are automatically tolerated (due to the fact that some players can always be considered to be temporarily malicious).

Destaca-se, entretanto, que Algorand pode ser simplesmente adaptado de modo a funcionar em um novo modelo, em que usuários honestos estão offline a maior parte do tempo. Outro novo modelo pode ser informalmente introduzido conforme segue.It is noteworthy, however, that Algorand can simply be adapted to work on a new model, in which honest users are offline most of the time. Another new model can be informally introduced as follows.

[0078] Honestidade Preguiçosa. De modo geral, um usuário i é preguiçoso mais honesto se (1) seguir todas suas instruções prescritas, quando é solicitado que participe do protocolo, e (2) for solicitado que participe do protocolo apenas raramente, com um aviso antecipado adequado.[0078] Lazy Honesty. Generally speaking, a user i is more honest lazy if (1) he follows all of his prescribed instructions when asked to participate in the protocol, and (2) he is asked to participate in the protocol only rarely, with adequate advance notice.

[0079] Com tal noção relaxada de honestidade, pode-se ter ainda mais confiança de que pessoas honestas estarão disponíveis quando necessário, e Algorand garante que, quando esse for o caso,[0079] With such a relaxed notion of honesty, you can be even more confident that honest people will be available when needed, and Algorand guarantees that, when that is the case,

[0080] O sistema opera com segurança mesmo se, em um dado ponto no tempo, a maior parte dos jogadores participantes é maliciosa. 2 PRELIMINARES[0080] The system operates safely even if, at a given point in time, most of the participating players are malicious. 2 PRELIMINARY

2.1 PRIMITIVAS CRIPTOGRÁFICAS2.1 CRYPTOGRAPHIC PRIMITIVES

[0081] Verificação por Hash Ideal. Baseia-se em uma função de hash criptográfico computável eficientemente, H, que mapeia arbitrariamente longas séries a séries binárias de comprimento fixo. Seguindo uma longa tradição, modela-se H como um oráculo aleatório, essencialmente uma função que mapeia cada série possível s a uma série binária selecionada aleatória e independentemente (e, então, fixa), H(s), do comprimento escolhido.[0081] Verification by Ideal Hash. It is based on an efficiently computable cryptographic hash function, H, which maps arbitrarily long series to fixed-length binary series. Following a long tradition, H is modeled as a random oracle, essentially a function that maps each possible series s to a randomly selected (and then fixed) binary series, H (s), of the chosen length.

[0082] Nas presentes modalidades descritas, H tem saídas de 256 bits de comprimento. De fato, tal comprimento é curto o suficiente para tornar o sistema eficiente e longo o suficiente para tornar o sistema seguro. Por exemplo, deseja-se que H seja resistente à colisão. Ou seja, pode ser difícil encontrar duas séries 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,[0082] In the present described modalities, H has outputs of 256 bits in length. In fact, such a length is short enough to make the system efficient and long enough to make the system safe. For example, H is intended to be resistant to collision. That is, it can be difficult to find two different series x and y, so that H (x) = H (y). When H is a random oracle with outputs 256 bits long,

encontrar qualquer tal par de séries é, de fato, difícil. (Tentar aleatoriamente e se basear no paradoxo de aniversário, poderia exigir 2256/2 = 2128 testes.)finding any such pair of series is, in fact, difficult. (Trying at random and based on the birthday paradox, could require 2256/2 = 2128 tests.)

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

[0084] 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 é, séries): uma chave “pública” pki e uma chave de sinalização “secreta” correlacionada ski. Essencialmente, uma chave pública não “trai” sua chave secreta correspondente. Ou seja, mesmo dado conhecimento de pki, ninguém além de i pode computar ski em menos que um tempo astronômico.[0084] Given a security parameter k, a sufficiently high integer, a user i uses G to produce a pair of k bit keys (ie series): a “public” pki key and a “secret” signaling key ”Correlated ski. Essentially, a public key does not “betray” its corresponding secret key. That is, even given knowledge of pki, no one but i can compute ski in less than an astronomical time.

[0085] O usuário i usa ski para sinalizar digitalmente as mensagens. Para cada mensagem possível (série binária) m, i primeiramente verifica por hash m e, então, executa o algoritmo S nas saídas H(m) e ski de modo a produzir a série de k bits.[0085] User i uses ski to digitally signal messages. For each possible message (binary series) m, i first checks by hash m and then executes the S algorithm on outputs H (m) and ski in order to produce the series of k bits.

33

[0086] A série binária é denominada assinatura digital de i de m (em relação a pki) e pode ser mais simplesmente denotada por sigi(m), quando a chave pública pki está clara a partir do contexto.[0086] The binary series is called digital signature of i of m (in relation to pki) and can be more simply denoted by sigi (m), when the public key pki is clear from the context.

[0087] Todos que conhecem pki podem usar o mesmo para verificar as assinaturas digitais produzidas por i. Especificamente, nas saídas (a) a chave pública pki de um jogador i, (b) uma mensagem m e (c) uma série s, ou seja, a suposta assinatura digital de i da mensagem m, o algoritmo de 3 Visto que H é resiliente à colisão, é praticamente impossível que, assinando-se m, "assine-se acidentalmente" uma mensagem diferente verificação V emite SIM ou NÃO.[0087] Anyone who knows pki can use it to check the digital signatures produced by i. Specifically, in outputs (a) the public key pki of a player i, (b) a message m (c) a series s, that is, the supposed digital signature of i of message m, the algorithm of 3 Since H is resilient to the collision, it is practically impossible that by signing m, "accidentally signing" a different message verification V emits YES or NO.

[0088] As propriedades necessárias a partir de um esquema de assinatura digital são:[0088] The necessary properties from a digital signature scheme are:

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

[0090] 2. As assinaturas digitais são difíceis de forjar: Sem conhecimento de ski, o tempo para encontrar uma série s, de modo que V(pki, m, s) = SIM, para uma mensagem m nunca assinada por i, é astronomicamente longo.[0090] 2. Digital signatures are difficult to forge: Without knowledge of ski, the time to find a series s, so that V (pki, m, s) = YES, for a message m never signed by i, is astronomically long.

[0091] (Seguindo fortes requisitos de segurança, isso é verdadeiro mesmo se alguém puder obter a assinatura de qualquer outra mensagem.)[0091] (Following strong security requirements, this is true even if someone can get a signature on any other message.)

[0092] Consequentemente, para impedir que qualquer outro sinalize as mensagens a seu favor, um jogador i precisa manter sua chave de sinalização secreta (portanto, o termo “chave secreta”) e possibilitar que qualquer um verifique as mensagens que assina, i tem um interesse em tornar pública sua chave pki (portanto, o termo “chave pública”).[0092] Consequently, to prevent anyone else from signaling messages in their favor, a player i needs to keep his signaling key secret (hence the term "secret key") and allow anyone to check the messages he signs, i have an interest in making your pki key public (hence the term “public key”).

[0093] Assinaturas com Recuperabilidade de Mensagem Em geral, uma mensagem m não é recuperável a partir de sua assinatura sigi(m). A fim de lidar virtualmente com as assinaturas digitais que satisfazem a propriedade de “recuperabilidade de mensagem” conceitualmente conveniente (isto é, garantir que o assinante e a mensagem são facilmente computáveis a partir de uma assinatura, define-se[0093] Signatures with Message Recoverability In general, a m message 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 subscriber and the message are easily computable from a signature, it is defined

[0094] Sinalização Digital Exclusiva. Considera-se também esquemas de assinatura digital (G, S, V) que satisfazem a propriedade adicional a seguir.[0094] Exclusive Digital Signage. Digital signature schemes (G, S, V) that satisfy the additional property below are also considered.

[0095] 3. Exclusividade. É difícil encontrar séries pk', m, s e s', de modo que[0095] 3. Exclusivity. It is difficult to find pk ', m, s and s' series, so that

[0096] (Observa-se que a propriedade de exclusividade se mantém também para as séries pk' que não são chaves públicas legitimamente geradas. Em particular, entretanto, a propriedade de exclusividade implica que, se alguém usou o gerador de chave específico G para computar um chave pública pk juntamente com uma chave secreta correlacionada sk e, assim, sabia sk, poderia ser essencialmente impossível também para ele encontrar duas assinaturas digitais diferentes de uma mesma mensagem em relação a pk.)[0096] (Note that the exclusive property is also maintained for the pk 'series that are not legitimately generated public keys. In particular, however, the exclusive property implies that if someone used the specific key generator G for compute a public key pk together with a secret key correlated sk and, thus, knew sk, it could be essentially impossible for him to find two different digital signatures of the same message in relation to pk.)

OBSERVAÇÕESCOMMENTS

[0097] • DE ASSINATURAS EXCLUSIVAS A FUNÇÕES ALEATÓRIAS VERIFICÁVEIS. Em relação a um esquema de assinatura digital com a propriedade de exclusividade, o mapeamento m → H(sigi(m)) associa a cada série possível m uma série de 256 bits, aleatoriamente selecionada, exclusiva e a exatidão desse mapeamento pode ser provada dada a assinatura sigi(m).[0097] • FROM EXCLUSIVE SIGNATURES TO VERIFIABLE RANDOM FUNCTIONS. In relation to a digital signature scheme with the exclusive property, the mapping m → H (sigi (m)) associates to each possible series m a series of 256 bits, randomly selected, exclusive and the accuracy of this mapping can be proven given the sigi (m) signature.

[0098] Ou seja, a verificação por hash ideal e o esquema de assinatura digital que satisfazem a propriedade de exclusividade fornecem uma implantação elementar de uma função aleatória verificável (VRF).[0098] That is, the ideal hash check and the digital signature scheme that satisfy the exclusivity property provide an elementary implementation of a verifiable random function (VRF).

[0099] Uma VRF é um tipo especial de assinatura digital. Pode-se escrever VRFi(m) para indicar tal assinatura especial de i de uma mensagem m. Adicionalmente a satisfazer a propriedade de exclusividade, as funções aleatórias verificáveis produzem saídas que são garantidas como sendo suficientemente aleatórias. Ou seja, o VRFi(m) é essencialmente aleatório e imprevisível até ser produzido. Em contrapartida, 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 série de k bits que é (lexicograficamente) pequena (isto é, cujos primeiros poucos bits poderiam ser sempre 0s). Nota-se, no entanto, que, visto que H é uma função de hash ideal, H(SIGi(m)) será sempre uma série de 256 bits aleatória. Nas modalidades preferenciais, faz-se uso extensivo de assinaturas digitais de verificação por hash que satisfazem a propriedade de exclusividade precisamente para poder associada a cada mensagem m e cada usuário i um número aleatório exclusivo. Se for implantado Algorand com VRFs, pode- se substituir H(SIGi(m)) por VRFi(m). Em particular, um usuário i não precisa computar primeiramente SIGi(m), então, H(SIGi(m)) (afim, — por exemplo — de comparar H(SIGi(m)) com um número p). Pode-se computar diretamente VRFi(m). Em suma, deve-se compreender que H(SIGi(m)) pode ser interpretado como VRFi(m) ou como um número suficientemente aleatório, facilmente computado pelo jogador i, mas imprevisível para outros, associado de modo não ambíguo a i e m.[0099] 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 exclusivity property, the verifiable random functions produce outputs that are guaranteed to be sufficiently random. In other words, VRFi (m) is essentially random and unpredictable until it is produced. In contrast, 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 series of k bits that is (lexicographically) small (that is, whose first few bits could always be 0s). Note, however, that since H is an ideal hash function, H (SIGi (m)) will always be a random 256-bit series. In the preferred modalities, extensive use of hash verification digital signatures is made, which satisfy the exclusivity property precisely so that each message m and each user i is assigned a unique random number. If Algorand is deployed with VRFs, H (SIGi (m)) can be replaced by VRFi (m). In particular, a user i does not need to compute SIGi (m) first, then H (SIGi (m)) (in order, for example, to compare H (SIGi (m)) with a number p). VRFi (m) can be directly computed. In short, it must be understood that H (SIGi (m)) can be interpreted as VRFi (m) or as a sufficiently random number, easily computed by player i, but unpredictable by others, unambiguously associated with i and m.

[00100] • TRÊS NECESSIDADES DIFERENTES PARA ASSINATURAS DIGITAIS. Em Algorand, um usuário i baseia-se em assinaturas digitais para[00100] • THREE DIFFERENT NEEDS FOR DIGITAL SIGNATURES. In Algorand, a user i relies on digital signatures to

[00101] (1) Autenticar pagamentos próprios de i. Nessa aplicação, as chaves podem ser “a longo prazo” (isto é, usadas para sinalizar muitas mensagens durante um período de tempo) e se originam de um esquema de assinatura comum.[00101] (1) Authenticate i own payments. In this application, the keys can be “long-term” (that is, used to signal many messages over a period of time) and originate from a common signature scheme.

[00102] (2) Gerar credenciais que provam que i tem o direito de atuar em alguma etapa s de uma rodada r. Aqui, as chaves podem ser a longo prazo, mas precisam ser originadas de um esquema que satisfaz a propriedade de exclusividade.[00102] (2) Generate credentials that prove that i has the right to act in some stages of a round r. Here, the keys may be long-term, but they must originate from a scheme that satisfies the exclusive property.

[00103] (3) Autenticar a mensagem i enviada em cada etapa em que atua. Aqui, as chaves precisam ser temporárias (isto é, destruídas após seu primeiro uso), mas podem se originar em um esquema de assinatura comum.[00103] (3) Authenticate the message i sent at each stage in which it operates. Here, the keys need to be temporary (that is, destroyed after their first use), but they can originate from a common signature scheme.

[00104] • UMA SIMPLIFICAÇÃO DE CUSTO PEQUENO. Por uma questão de simplicidade, prevê-se que cada usuário i tenha uma chave a longo prazo única. Consequentemente, tal chave precisa se originar de um esquema de assinatura com a propriedade de exclusividade. Tal simplicidade tem um custo computacional pequeno. Tipicamente, de fato, as assinaturas digitais exclusivas são ligeiramente mais dispendiosas de produzir e verificar do que assinaturas comuns.[00104] • A SMALL COST SIMPLIFICATION. For the sake of simplicity, each user i is expected to have a unique long-term key. Consequently, such a key must originate from a signature scheme with the exclusive property. 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 REGISTRATION

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

[00106] 1. O Estado Inicial. O dinheiro está associado a chaves públicas individuais (privadamente geradas e pertencentes aos usuários). pk1, . . . ,pkj são as chaves públicas iniciais e a1, . . . , aj, suas respectivas quantidades iniciais de unidades monetárias, então, o estado inicial é[00106] 1. The Initial State. The money is associated with individual public keys (privately generated and owned by users). pk1,. . . , pkj are the initial public keys and a1,. . . , aj, their respective initial amounts of currency units, then the initial state is

[00107] que é assumido como sendo conhecimento comum no sistema.[00107] which is assumed to be common knowledge in the system.

[00108] 2. Pagamentos. pk é uma chave pública que tem atualmente α ≥ 0 unidades monetárias, pk' outra chave pública e a' um número não negativo não maior que a. Então, um pagamento (válido) é uma assinatura digital, relacionada a pk, que especifica a transferência de a' unidades monetárias de pk para pk', juntamente com algumas informações adicionais. Nos símbolos,[00108] 2. Payments. pk is a public key that currently has α ≥ 0 currency units, pk 'another public key and a' non-negative number not greater than a. So, a (valid) payment is a digital signature, related to pk, which specifies the transfer of a 'currency units from pk to pk', along with some additional information. In the symbols,

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

[00110] Denomina-se pk (ou seu proprietário) o pagador, cada pk' (ou seu proprietário) um beneficiário e a' como a quantidade do pagamento[00110] The payer is named pk (or its owner), each pk '(or its owner) a beneficiary and a' as the payment amount

[00111] Ingresso Livre Através de Pagamentos. Observa-se que os usuários podem ingressar no sistema sempre que quiserem gerando seus próprios pares de chave pública/secreta. Consequentemente, a chave pública pk' que aparece no pagamento acima pode ser uma chave pública recém-gerada que nunca “possuiu” qualquer dinheiro antes.[00111] Free Admission Through Payments. It is observed that users can enter the system whenever they want, generating their own public / 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.

[00112] 3. O Registro Mágico. No Sistema Idealizado, todos os pagamentos são válidos e aparecem em uma lista inviolável L de conjuntos de pagamentos “postados no céu” para todos verem:[00112] 3. The Magic Record. In the Idealized System, all payments are valid and appear in an inviolable list L of payment sets “posted in the sky” for all to see:

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

[00114] Discussão.[00114] Discussion.

[00115] ● Pagamentos Mais Gerais e Saída de Transação Não Gasta. De modo mais genérico, se uma chave pública pk possui uma quantidade a, então, um pagamento válido de pk pode transferir as quantidades respectivamente para as chaves contanto que[00115] ● More General Payments and Outgoing Transaction Not Spent. More generally, if a public key pk has a quantity a, then a valid payment of pk can transfer the quantities respectively to the keys as long as

[00116] Em Bitcoin e sistemas similares, o dinheiro possuído por uma chave pública pk é segregado em quantidades separadas, e um pagamento realizado por pk precisa 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, precisa também transferir o balanço, a saída de transação não gasta, para outra chave, possivelmente o próprio pk.[00116] In Bitcoin and similar systems, money owned by a public key pk is segregated in separate quantities, and a payment made per pk needs to transfer such segregated amount to in its entirety. If pk wishes to transfer only a fraction a '<a of a to another key, then it must also transfer the balance, the transaction output does not spend, to another key, possibly the pk itself.

[00117] Algorand também funciona com chaves que têm quantidades segregadas. Entretanto, a fim de focar nos aspectos inovadores de Algorand, é conceitualmente mais simples aderir às presentes formas mais simples de pagamentos e chaves que têm uma quantidade única associada às mesmas.[00117] 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 adhere to the present simpler forms of payments and keys that have a unique amount associated with them.

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

[00119] No sistema ideal, um usuário ativo continuamente armazena e atualiza as últimas informações de estado ou teria que reconstruir de outro modo as mesmas, a partir do zero ou a partir da última vez que computou as mesmas. (Ademais, adiante mostra-se como aumentar Algorand de modo a possibilitar que seus usuários reconstruam o estado atual de uma maneira eficiente.)[00119] In the ideal system, an active user continuously stores and updates the latest state information or would otherwise have to reconstruct it, either from scratch or from the last time he computed it. (In addition, below we show how to increase Algorand in order to enable its users to reconstruct the current state in an efficient manner.)

[00120] ● Segurança e “Privacidade”. As assinaturas digitais garantem que ninguém possa forjar um pagamento de outro usuário. Em um pagamento as chaves públicas e a quantidade não estão ocultas, mas as informações sensíveis I estão. De fato, apenas H(I) aparece em e, visto que H é uma função de hash ideal, H(I) é um valor de 256 bits aleatório e, assim, não há como imaginar o que I era, além de simplesmente imaginar. Além disso, para provar o que I era (por exemplo, para provar a razão do pagamento), o pagador pode apenas revelar I. A exatidão do I revelado pode ser verificada computando-se H(I) 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 I' de modo que H(I) = H(I').[00120] ● Security and “Privacy”. Digital signatures ensure that no one can forge a payment from another user. In a payment, public keys and quantity are not hidden, but sensitive information is. In fact, only H (I) appears in e, since H is an ideal hash function, H (I) is a random 256-bit value, so there is no way to imagine what I was, other than simply imagining . In addition, to prove what I was (for example, to prove the reason for payment), the payer can only reveal I. The accuracy of the revealed I can be verified by computing H (I) and comparing the resulting value with the last item from. In fact, since H is resilient to collision, it is difficult to find a second I 'value so that H (I) = H (I').

2.3 NOÇÕES E NOTAÇÕES BÁSICAS2.3 BASIC NOTIONS AND NOTES

[00121] Chaves, Usuários e Proprietários A não ser que especificado de outro modo, cada chave pública (“chave” para abreviação) é a longo prazo e relativo a um esquema de assinatura digital com a propriedade de exclusividade. Uma chave pública i ingressa no sistema quando outra chave pública j já no sistema realiza um pagamento para i.[00121] Keys, Users and Owners Unless otherwise specified, each public key ("key" for abbreviation) is long-term and pertains to a digital signature scheme with exclusive property. A public key i enters the system when another public key j already in the system makes a payment to i.

[00122] Para cor, personifica-se chaves. Refere-se a uma chave i no masculino, diz que i é honesto, que i envia e recebe mensagens, etc. Usuário é um sinônimo para chave. Quando se deseja distinguir uma chave da pessoa a quem a mesma pertence, usa-se, respectivamente, os termos “chave digital” e ''proprietário''.[00122] For color, keys are personified. It refers to a key i in the masculine, says that i is honest, that i sends and receives messages, etc. User is a synonym for key. When you want to distinguish a key from the person to whom it belongs, the terms “digital key” and “owner” are used, respectively.

[00123] Sistemas Sem Permissão e Com Permissão. Um sistema é sem permissão, se uma chave digital estiver livre para integração a qualquer momento e um proprietário pode possuir múltiplas chaves digitais; e é com permissão de outro modo.[00123] Systems without permission and with permission. A system is without permission, if a digital key is free for integration at any time and an owner can have multiple digital keys; and with permission otherwise.

[00124] Representação Exclusiva Cada objeto em Algorand tem uma representação exclusiva. Em particular, cada conjunto é ordenado de uma maneira pré-especificada: por exemplo, primeiro lexicograficamente em x, então, em y, etc.[00124] Exclusive Representation Each object in Algorand has an exclusive representation. In particular, each set is ordered in a pre-specified manner: for example, first lexicographically at x, then at y, etc.

[00125] Relógios de Mesma Velocidade Não há um relógio global: em vez disso, cada usuário tem seu próprio relógio. Os relógios do usuário não precisam estar sincronizados de qualquer forma. Assume-se, entretanto, que todos têm a mesma velocidade.[00125] Same Speed Watches There is no global clock: instead, each user has their own clock. The user's clocks need not be synchronized in any way. However, it is assumed that everyone has the same speed.

[00126] Por exemplo, quando são 12pm de acordo com o relógio de um usuário i, podem ser 2:30pm de acordo com o relógio de outro usuário j, mas quanto forem 12:01 de acordo com o relógio de i, serão 2:31 de acordo com o relógio de j. Ou seja, “um minuto é igual (suficiente, essencialmente igual) para cada usuário”.[00126] For example, when it is 12pm according to the clock of one user i, it can be 2:30 pm according to the clock of another user j, but when it is 12:01 according to the clock of i, there will be 2 : 31 according to the clock of j. In other words, “one minute is the same (sufficient, essentially the same) for each user”.

[00127] Rodadas Algorand é organizado em unidades lógicas, r — 0, 1, . . ., chamadas rodadas.[00127] Algorand rounds is organized in logical units, r - 0, 1,. . ., round calls.

[00128] São consistentemente usados sobrescritos para indicar as rodadas. Para indicar que uma quantidade não numérica Q (por exemplo, uma série, uma chave pública, um conjunto, uma assinatura digital,[00128] Superscripts are consistently used to indicate rounds. To indicate that a non-numeric quantity Q (e.g., a series, a public key, a set, a digital signature,

etc.) denomina uma rodada r, simplesmente se escreve Qr. Apenas quando Q é um número genuíno (em oposição a uma série 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.etc.) calls a round r, simply write Qr. Only when Q is a genuine number (as opposed to a binary series interpretable as a number), is Q (r) written, so that the symbol r cannot be interpreted as the exponent of Q.

[00129] Em uma (no início de uma) rodada r > 0, o conjunto de todas as chaves públicas é , e o estado do sistema é[00129] In a (at the beginning of a) round r> 0, the set of all public keys is, and the state of the system is

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

[00131] Para a rodada 0, PK0 é o conjunto de chaves públicas iniciais, e S0 é o estado inicial. Assume-se que tanto PK0 quando S0 são de conhecimento comum no sistema. Por uma questão de simplicidade, no início da rodada r, também são PK1, . . . , PKr e S1, .. . , Sr.[00131] For round 0, PK0 is the set of initial public keys, and S0 is the initial state. It is assumed that both PK0 and S0 are common knowledge in the system. For the sake of simplicity, at the beginning of round r, they are also PK1,. . . , PKr and S1, ... , Sir

[00132] Em uma rodada r, o estado do sistema transita de Sr para Sr+1: simbolicamente, Rodada r: Sr → Sr+1.[00132] In a round r, the state of the system changes from Sr to Sr + 1: symbolically, Round r: Sr → Sr + 1.

[00133] Pagamentos Em Algorand, os usuários realizam continuamente pagamentos (e disseminam os mesmos da 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,[00133] Payments In Algorand, users continuously make payments (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. To know,

[00134] O pagamento é individualmente válido em uma rodada r (é um pagamento de rodada r, para abreviação), se (1), sua quantidade a é menor ou igual a e (2) a mesma não aparece em qualquer conjunto de pagamentos oficial PAYr' para r' < r. (Conforme explicado abaixo,[00134] The payment is individually valid in a round r (it is a round r payment, for short), if (1), its quantity a is less than or equal to e (2) it does not appear in any official payment set PAYr 'to r' <r. (As explained below,

a segunda condição significa que não foi ainda efetivado.the second condition means that it has not yet been effective.

[00135] Um conjunto de pagamentos de rodada r de i é coletivamente válido se a soma de suas quantidades for no máximo .[00135] A set of payments for round r of i is collectively valid if the sum of their quantities is at most.

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

[00137] Sugere-se na verdade que um pagamento também especifique uma rodada e não pode ser válido em qualquer rodada externa [ρ, ρ + k] , para algum número inteiro não negativo fixo k.4[00137] It is actually suggested that a payment also specifies a round and cannot be valid in any external round [ρ, ρ + k], for some fixed non-negative integer k.4

[00138] Conjuntos de Pagamentos Oficiais Para cada rodada r, Algorand seleciona publicamente (de uma maneira descrita posteriormente) um único (possivelmente vazio) conjunto de pagamentos, PAYr, o conjunto de pagamentos oficial da rodada. (Essencialmente, PAYr representa os pagamentos de rodada r que aconteceram “realmente”.)[00138] Official Payment Sets For each round r, Algorand publicly selects (in a manner described later) a single (possibly empty) set of payments, PAYr, the official set of payments for the round. (Essentially, PAYr represents round payouts r that “actually” took place.)

[00139] Como no Sistema Ideal (e Bitcoin), (1) a única forma de um novo usuário j entrar no sistema é ser o recebedor de um pagamento que pertencem ao conjunto de pagamentos oficinal PAYr de uma dada rodada r; e (2) PAYr determina o estado da rodada seguinte, Sr+1, a partir daquele da rodada atual, Sr. Simbolicamente, PAYr : Sr → Sr+1.[00139] 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 belonging to the official PAYr payment set for a given round r; and (2) PAYr determines the status of the next round, Sr + 1, from that of the current round, Mr. Symbolically, PAYr: Sr → Sr + 1.

Isso simplifica a verificação de se ρ se tornou "efetivo" (isto é, simplifica a 4 determinação de se algum conjunto de pagamentos PAY r contém . Quando k = 0, se e, então, i precisa reapresentar ρ.This simplifies the verification of whether ρ has become "effective" (that is, it simplifies the determination of whether any set of PAY payments r contains. When k = 0, if and then i needs to resubmit ρ.

[00140] Especificamente,[00140] Specifically,

[00141] 1. o conjunto de chaves públicas da rodada r + 1, PKr+1, consiste na união de PKr e o conjunto de todas as chaves de beneficiário que aparecem, pela primeira vez, nos pagamentos de PAYr; e[00141] 1. the set of public keys of round 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

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

[00143] Em suma, como no Sistema Ideal, cada estado Sr+1 é deduzível a partir do histórico de pagamentos anteriores:[00143] In short, as in the Ideal System, each Sr + 1 state is deductible from the history of previous payments:

2.4 BLOCOS E BLOCOS COMPROVADOS2.4 BLOCKS AND PROVEN BLOCKS

[00144] Em Algorand0, o bloco Br correspondente a uma rodada r especifica: o próprio r; o conjunto de pagamentos da rodada r, PAYr; uma quantidade a ser explicada, e o hash do bloco anterior, H(Br- 1 ). Assim, iniciando-se a partir de algum bloco fixo B0, tem-se um blockchain tradicional:[00144] In Algorand0, the Br block corresponding to a round r specifies: r itself; the payout set for round r, PAYr; an amount to be explained, and the hash of the previous block, H (Br-1). Thus, starting from some fixed block B0, we have a traditional blockchain:

[00145] Em Algorand, a autenticidade de um bloco é realmente comprovada por informação separada, um “certificado de bloco” CERTr, que torna Br um bloco comprovado, . O Registro Mágico, portanto, é implantado pela sequência dos blocos comprovados,[00145] In Algorand, the authenticity of a block is really proven by separate information, a CERTr “block certificate”, which makes Br a proven block,. The Magic Record, therefore, is implemented by the sequence of the proven blocks,

[00146] Discussão Conforme pode ser visto, CERTr consiste em um conjunto de assinaturas digitais para H(Br), aqueles de uma maior parte dos membros de SVr, juntamente com uma prova de que cada um desses membros de fato pertence a SVr. Pode-se, obviamente, incluir os certificados CERT nos próprios blocos, mas é conceitualmente mais limpo mantê-los separado.)[00146] Discussion As can be seen, CERTr consists of a set of digital signatures for H (Br), those of most SVr members, together with proof that each of these members does in fact belong to SVr. You can, of course, include CERT certificates in the blocks themselves, but it is conceptually cleaner to keep them separate.)

[00147] Em Bitcoin, cada bloco precisa satisfazer uma propriedade especial, ou seja, precisa “conter uma solução de um quebra- cabeças criptográfico”, que torna a geração de bloco computacionalmente intensiva e bifurcações tanto inevitáveis quanto não raras. Em contrapartida, o blockchain de Algorand tem duas vantagens principais: é gerado com computação mínima e não bifurcará com probabilidade esmagadoramente alta. Cada bloco Bi é seguramente final assim que entra no blockchain.[00147] In Bitcoin, each block needs to satisfy a special property, that is, it needs to “contain a cryptographic puzzle solution”, which makes the block generation computationally intensive and forks both inevitable and not rare. In contrast, Algorand's blockchain has two main advantages: it is generated with minimal computation and will not fork with overwhelmingly high probability. Each Bi block is surely final as soon as it enters the blockchain.

2.5 PROBABILIDADE DE FALHA ACEITÁVEL2.5 ACCEPTABLE FAILURE PROBABILITY

[00148] Para analisar a segurança de Algorand, é especificada a probabilidade, F, aceitável de que algo dê errado (por exemplo, que um conjunto de verificadores SV não tenha uma maioria honesta). Como no caso do comprimento de saída da função de hash criptográfico H, também F é um parâmetro. Mas, como nesse caso, é útil definir F como um valor concreto, de modo a obter uma compreensão mais intuitiva do fato de que é, de fato, possível, em Algorand, obter eficiência simultaneamente segurança suficiente e eficiência suficiente. Para enfatizar que F é o parâmetro que pode ser definido conforme desejado, na primeira e na segunda modalidades, definiu-se, respectivamente, F = 10-12 e = 10-18.[00148] To analyze Algorand security, the acceptable probability, F, is specified that something goes wrong (for example, that a set of SV verifiers does not have an honest majority). As in the case of the output length of the cryptographic hash function H, also F is a parameter. But, as in this case, it is useful to define F as a concrete value, in order to obtain a more intuitive understanding of the fact that it is, in fact, possible, in Algorand, to obtain efficiency both sufficient security and sufficient efficiency. To emphasize that F is the parameter that can be defined as desired, in the first and second modes, F = 10-12 and = 10-18, respectively.

[00149] Discussão Observa-se que 10-12 é realmente menor que um em um trilhão, e acredita-se que tal escolha de F seja adequada na presente aplicação. Enfatiza-se que 10-12 não é a probabilidade com a qual o adversário pode forjar os pagamentos de um usuário honesto. Todos os pagamentos são sinalizados digitalmente e, assim, se as assinaturas digitais adequadas forem usadas, a probabilidade de forjar um pagamento está muito abaixo de 10-12 e é, de fato, essencialmente 0. O evento ruim que se pode tolerar com probabilidade F é que o blockchain de Algorand bifurque.[00149] Discussion It is observed that 10-12 is actually less than one in a trillion, and it is believed that such choice of F is appropriate in the present application. It is emphasized that 10-12 is not the probability with which the opponent can forge payments from an honest user. All payments are digitally flagged, so if the proper digital signatures are used, the probability of forging a payment is well below 10-12 and is, in fact, essentially 0. The bad event that can be tolerated with probability F is that Algorand's blockchain forks.

Observa-se que, com o presente ambiente de F e rodadas de um minuto de duração, espera-se que uma bifurcação ocorra em blockchain de Algorand tão raramente quanto (aproximadamente) uma vez em 1,9 milhão de anos. Em contrapartida, em Bitcoin, uma bifurcação ocorre bastante frequentemente.It is observed that, with the present environment of F and one-minute rounds, a fork in the Algorand blockchain is expected to occur as rarely as (approximately) once in 1.9 million years. In contrast, in Bitcoin, a fork occurs quite frequently.

[00150] Uma pessoa mais exigente pode definir F em um valor mais baixo. Para esse fim, na segunda modalidade, considera-se definir F em 10-18. Observa-se que, assumindo-se que um bloco é gerado a cada segundo, 1018 é o número estimado de segundos transcorridos pelo Universo até então: do Big Bang até o presente momento. Assim, com F = 10 -18, se um bloco for gerado em um segundo, seria esperado pela idade do Universo ver uma bifurcação.[00150] A more demanding person can define F in a lower value. For this purpose, in the second modality, it is considered to define F in 10-18. It can be observed that, assuming that a block is generated every second, 1018 is the estimated number of seconds that have elapsed by the Universe so far: from the Big Bang to the present moment. Thus, with F = 10 -18, if a block is generated in one second, it would be expected by the age of the Universe to see a bifurcation.

2.6 O MODELO ADVERSO2.6 THE ADVERSE MODEL

[00151] Algorand é projetado para ser seguro em um modelo muito adverso. Explica-se.[00151] Algorand is designed to be safe on a very adverse model. Explains yourself.

[00152] Usuários Honestos e Maliciosos Um usuário é honesto se seguir suas instruções de protocolo e for perfeitamente capaz de enviar e receber mensagens. Um usuário é malicioso (isto é, Bizantino, na linguagem de computação distribuída) se desviar arbitrariamente de suas instruções prescritas.[00152] Honest and Malicious Users A user is honest if he follows 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) to deviate arbitrarily from his prescribed instructions.

[00153] O Adversário O Adversário é um algoritmo eficiente (tecnicamente tempo polinomial), personificado por cor, que pode imediatamente tornar malicioso qualquer usuário que desejar, em qualquer momento que desejar (submetido apenas a um limite superior ao número de usuários que pode corromper).[00153] The Adversary The Adversary is an efficient algorithm (technically polynomial time), personified by color, which can immediately make malicious any user you want, at any time you want (subject only to a limit higher than the number of users that can corrupt ).

[00154] O adversário controla totalmente e coordena perfeitamente todos os usuários maliciosos. Ele atua em seu benefício, incluindo receber e enviar todas suas mensagens e pode deixar que desviem de suas instruções prescritas de formas arbitrárias. Ou pode simplesmente isolar um usuário corrompido enviando e recebendo mensagens. Esclarece- se que ninguém mais automaticamente tem conhecimento de que um usuário i é malicioso, embora a malícia de i possa transparecer pelas ações que o adversário faz com que tome.[00154] The opponent fully controls and perfectly coordinates all malicious users. He acts on your behalf, including receiving and sending all your messages and may allow you to deviate from your prescribed instructions in arbitrary ways. Or you can simply isolate a corrupted user by sending and receiving messages. It is clarified that no one else automatically knows that a user i is malicious, although the malice of i can be seen in the actions that the opponent causes him to take.

[00155] Esse adversário forte, entretanto,[00155] This strong opponent, however,

[00156] • Não tem potência computacional ilimitada e não pode forjar com sucesso a assinatura digital de um usuário honesto, exceto com probabilidade desprezível; e[00156] • It does not have unlimited computing power and cannot successfully forge the digital signature of an honest user, except with negligible probability; and

[00157] • Não pode interferir de qualquer forma nas trocas de mensagem entre usuários honestos.[00157] • It cannot interfere in any way with the exchange of messages between honest users.

[00158] Além disso, sua habilidade de atacar usuários honestos é limitada por uma das seguintes suposições.[00158] In addition, your ability to attack honest users is limited by one of the following assumptions.

[00159] Maioria Honesta de Dinheiro Considera-se um contínuo de suposições de Maioria Honesta de Dinheiro (HMM): a saber, para cada número inteiro não negativo k e h real > 1/2,[00159] Honest Majority of Money A continuum of Honest Majority (HMM) assumptions is considered: namely, for each non-negative integer k and h real> 1/2,

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

[00161] Discussão. Assumir que todos os usuários maliciosos coordenam perfeitamente suas ações (como se controladas por uma única entidade, o adversário) é uma hipótese bastante pessimista. A coordenação perfeita dentre muitos indivíduos é difícil de atingir. Talvez a coordenação apenas ocorra dentro de grupos separados de jogadores maliciosos. Mas, visto que não se pode ter certeza sobre o nível de coordenação que os usuários maliciosos podem possuir, é melhor a prevenção.[00161] 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 among many individuals is difficult to achieve. Perhaps coordination only takes place within separate groups of malicious players. But since you can't be sure about the level of coordination that malicious users can have, prevention is better.

[00162] Assumir que o adversário pode corromper de modo secreto, dinâmico e imediato usuários é também pessimista. Afinal, realisticamente, obter controle completo das operações de um usuário poderia levar algum tempo.[00162] Assuming that the opponent can corrupt secretly, dynamically and immediately users is also pessimistic. After all, realistically, gaining complete control of a user's operations could take some time.

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

10.000.10,000.

[00164] Observa-se que as suposições de HMM e as suposições de Maioria Honesta de Potência de Computação anteriores estão relacionadas no sentido de que, visto que a potência de computação pode ser comprada 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.[00164] It is noted that the previous HMM assumptions and the Honest Majority of Computing Power assumptions are related in the sense that, since the computing power can be purchased 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

[00165] Prevê-se que a propagação de mensagens — isto é, “transmissão par a par”5 — seja o único meio de comunicação e assume-se que cada mensagem propagada atinja quase todos os usuários honestos de uma forma oportuna. Assume-se essencialmente que cada mensagem m propagada por um usuário honesto atinja, dentro de uma dada quantidade de tempo que depende do comprimento de m, todos os usuários honestos. (É realmente suficiente que m atinja uma porcentagem suficientemente alta dos usuários honestos.) 3 O PROTOCOLO BA* EM UM AMBIENTE TRADICIONAL[00165] The propagation of messages - that is, “transmission by pair” 5 - is expected to be the only means of communication and it is assumed that each message propagated reaches almost all honest users in a timely manner. It is essentially assumed that each message m propagated by an honest user reaches, within a given amount of time depending on the length of m, all honest users. (It is really enough that m reaches a high enough percentage of honest users.) 3 THE BA * PROTOCOL IN A TRADITIONAL ENVIRONMENT

[00166] Conforme já enfatizado, o acordo bizantino é um ingrediente chave de Algorand. De fato, é através do uso de tal protocolo BA que Algorand não é afetado por bifurcações. Entretanto, para estar seguro contra o adversário forte, Algorand precisa se basear em um protocolo BA 5 Essencialmente, como em Bitcoin, quando um usuário propaga uma mensagem m, cada usuário ativo i que recebe m pela primeira vez, seleciona de modo aleatório e independente um número adequadamente pequeno de usuários ativos, seus "vizinhos", a quem encaminha m, possivelmente até receber um reconhecimento dos mesmos. A propagação de m termina quando nenhum usuário recebe m pela primeira vez.[00166] 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 a strong opponent, Algorand needs to rely on a BA 5 protocol. Essentially, as in Bitcoin, when a user propagates a message m, each active user i who receives m for the first time, selects randomly and independently a suitably small number of active users, 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.

que satisfaz a nova restrição de substituibilidade do jogador. Adicionalmente, para Algorand ser eficiente, tal protocolo BA precisa ser muito eficiente.that satisfies the new player substitutability constraint. Additionally, for Algorand to be efficient, such a BA protocol needs to be very efficient.

[00167] Os protocolos BA foram primeiramente definidos para um modelo de comunicação idealizado, redes completas sincronizadas (redes SC). Tal modelo permite um projeto mais simples e análise de protocolos BA. Consequentemente, nessa seção, é introduzido um novo protocolo BA, BA*, para redes SC e ignorando o problema de substituibilidade do jogador totalmente. O protocolo BA* é uma contribuição de valor separado. De fato, esse é o protocolo BA criptográfico mais eficiente para redes SC conhecidas até o momento.[00167] 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 protocol BA, BA *, is introduced for SC networks and completely ignoring the player substitutability problem. The BA * protocol is a separate value contribution. In fact, this is the most efficient cryptographic BA protocol for SC networks known to date.

[00168] Para usar o mesmo dentro do presente protocolo Algorand, modificou-se BA* um pouco, de modo a representar os presentes modelo e contexto de comunicação diferentes.[00168] To use the same within the present Algorand protocol, BA * was modified a little, in order to represent the present model and different communication context.

[00169] Começa-se recordando o modelo em que BA* opera e a noção de acordo bizantino.[00169] We begin by recalling the model in which BA * operates and the notion of Byzantine agreement.

3.1 REDES COMPLETAS SINCRONIZADAS E3.1 COMPLETE SYNCHRONIZED NETWORKS AND

ADVERSÁRIOS CORRELACIONADOSCORRELATED ADVERSARIES

[00170] Em uma rede SC, há um relógio comum, marcando a cada momento integral r = 1, 2, . . .[00170] In a SC network, there is a common clock, indicating at each integral moment r = 1, 2,. . .

[00171] Em cada clique de tempo par r, cada jogador i envia instantânea e simultaneamente uma única mensagem (possivelmente a mensagem vazia) a cada jogador j, incluindo ele mesmo. Cada é corretamente recebido no clique de tempo r + 1 pelo jogador j, juntamente com a identidade do emissor i.[00171] At each click of time even, each player i instantly and simultaneously sends a single message (possibly the empty message) to each player j, including himself. Each is correctly received at time click r + 1 by player j, together with the identity of issuer i.

[00172] Novamente, em um protocolo de comunicação, um jogador é honesto se seguir suas instruções prescritas e malicioso de outro modo. Todos os jogadores maliciosos são totalmente controlados e perfeitamente coordenados pelo adversário, que, em particular, recebe imediatamente todas as mensagens endereçadas a jogadores maliciosos e escolhem as mensagens que enviam.[00172] Again, in a communication protocol, a player is honest if he follows his prescribed instructions and is otherwise malicious. All malicious players are fully controlled and perfectly coordinated by the opponent, who, in particular, immediately receives all messages addressed to malicious players and choose the messages they send.

[00173] O adversário pode tornar imediatamente malicioso qualquer usuário honesto que queira em qualquer clique de tempo ímpar que quiser, submetido apenas a um limite superior possível t ao número de jogadores maliciosos. Ou seja, o adversário “não pode interferir nas mensagens já enviadas por um usuário honesto i”, que serão enviadas normalmente.[00173] The opponent can immediately make malicious any honest user who wants to in any odd time click he wants, subject only to a possible upper limit t to the number of malicious players. In other words, the opponent "cannot interfere with messages already sent by an honest user i", which will be sent normally.

[00174] O adversário também tem a capacidade adicional de ver instantaneamente, em cada rodada par, as mensagens que os jogadores atualmente honestos enviam, e usar instantaneamente essas informações para escolher as mensagens que jogadores maliciosos enviar na mesma marcação de tempo.[00174] The opponent also has the additional ability to instantly see, in each even round, the messages that currently honest players send, and instantly use that information to choose the messages that malicious players send at the same time stamp.

3.2 A NOÇÃO DE UM ACORDO BIZANTINO3.2 THE NOTION OF A BYZANTINE AGREEMENT

[00175] A noção de acordo bizantino pode ter sido primeiramente introduzida para o caso binário, ou seja, quando cada valor inicial consiste em um bit. Entretanto, o mesmo foi rapidamente estendido a valores iniciais arbitrários. Um protocolo BA significa um de valor arbitrário.[00175] The notion of Byzantine agreement may have been first introduced for the binary case, that is, when each initial value consists of a bit. However, it was quickly extended to arbitrary initial values. A BA protocol means one of arbitrary value.

[00176] Definição 3.1. Em uma rede sincronizada, P é um protocolo de n jogadores, cujo conjunto de jogadores é de conhecimento comum entre os jogadores, t um número inteiro positivo, de modo que n ≥ 2t + 1. Diz-se que P é um protocolo de acordo bizantino (n, t) de valor arbitrário (respectivamente, binário) com solidez σ ∈ (0, 1) se, para cada conjunto de valores, V não contiver o símbolo especial (respectivamente, para V = {0, 1} ), em uma execução em que no máximo t dos jogadores são maliciosos e em que cada jogador i começa com um valor inicial vi ∈ V, cada jogador honesto j para com probabilidade 1 de emitir um valor outi de modo a satisfazer, com probabilidade pelo menos σ, as seguintes duas condições:[00176] Definition 3.1. In a synchronized network, P is a protocol of n players, whose set of players is common knowledge among players, t is a positive integer, so that n ≥ 2t + 1. P is said to be a protocol according Byzantine (n, t) of arbitrary value (respectively, binary) with strength σ idez (0, 1) if, for each set of values, V does not contain the special symbol (respectively, for V = {0, 1}), in an execution where at most t the players are malicious and where each player i starts with an initial value vi ∈ V, each honest player j stops with probability 1 to issue an outi value in order to satisfy, with probability at least σ , the following two conditions:

[00177] 1. Acordo: Existe saída de modo que a outi = out para todos os jogadores honestos i.[00177] 1. Agreement: There is a way out so that outi = out for all honest players i.

[00178] 2. Consistência: se, para algum valor para todos os jogadores i, então out = v.[00178] 2. Consistency: if, for some value for all players i, then out = v.

[00179] Denomina-se saída como a saída de P, e a cada outi como saída do jogador i.[00179] Output is called the output of P, and each output is output of player i.

3.3 A NOTAÇÃO DE BA #3.3 THE NOTATION OF BA #

[00180] Nos presentes protocolos BA, um jogador é necessário para contar quantos jogadores enviam uma dada mensagem em uma dada etapa. Consequentemente, para cada valor possível v que pode ser enviado,[00180] In the present BA protocols, a player is needed to count how many players send a given message at a given stage. Consequently, for every possible value v that can be sent,

[00181] (ou apenas #i(v) quando s está claro) é o número de jogadores j de cada i que recebeu v na etapa s.[00181] (or just #i (v) when s is clear) is the number of players j from each i who received v in step s.

[00182] Recordando que um jogador i recebe exatamente uma mensagem de cada jogador j, se o número de jogadores é n, então, para todos i e s,[00182] Recalling that a player i receives exactly one message from each player j, if the number of players is n, then, for all i and s,

3.4 O NOVO PROTOCOLO BINÁRIO BA BBA*3.4 THE NEW BA BBA BINARY PROTOCOL *

[00183] Nessa seção, apresenta-se um novo protocolo binário BA, BBA*, que se baseia na honestidade de mais de dois terços dos jogadores e é muito rápido: não importando o que os jogadores maliciosos possam fazer, cada execução desse circuito principal não é apenas trivialmente executado, mas coloca os jogadores em acordo com probabilidade 1/3.[00183] In this section, we present a new binary protocol BA, BBA *, which is based on the honesty of more than two thirds of the players and is very fast: no matter what the malicious players may do, each execution of this main circuit it is not just trivially executed, but it puts players in agreement with 1/3 probability.

[00184] Em BBA*, cada jogador tem sua própria chave pública de um esquema de assinatura digital que satisfaça a propriedade de assinatura exclusiva. Visto que esse protocolo se destina a ser executado em rede completa sincronizada, não há necessidade de um jogador i sinalizar cada uma de suas mensagens.[00184] In BBA *, each player has his own public key of a digital signature scheme that satisfies the exclusive signature property. Since this protocol is intended to run on a complete synchronized network, there is no need for a player to signal each of their messages.

[00185] As assinaturas digitais são usadas para gerar um bit aleatório suficientemente comum na etapa 3. (Em Algorand, as assinaturas digitais são usadas para autenticar todas as outras mensagens também.)[00185] 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.)

[00186] O protocolo exige uma configuração mínima: uma série aleatória comum r; independente das chaves dos jogadores. (Em Algorand, r é na realidade substituído pela quantidade Qr.)[00186] The protocol requires a minimum configuration: a common random series r; regardless of player keys. (In Algorand, r is actually replaced by the quantity Qr.)

[00187] O protocolo BBA* é um circuito em 3 etapas, em que os jogadores trocam repetidamente valores booleanos, e diferentes jogadores podem sair desse circuito em tempos diferentes. Um jogador i sai desse circuito por propagação, em alguma etapa, de um valor especial 0* ou um valor especial 1*, instruindo-se, assim, todos os jogadores a “simular” que, respectivamente, receberam 0 e 1 de i em todas as etapas futuras. (Alternativamente: assume-se que a última mensagem recebida por um jogador j de outro jogador i foi um bit b. Então, em qualquer etapa em que não recebe qualquer mensagem de i, j atua como se i tivesse enviado o bit b.)[00187] The BBA * protocol is a 3-step circuit, in which players repeatedly exchange Boolean values, and different players can leave this circuit at different times. A player i leaves this circuit by propagating, at some stage, a special value of 0 * or a special value of 1 *, thus instructing all players to “simulate” that, respectively, they received 0 and 1 of i in all future steps. (Alternatively: it is assumed that the last message received by a player j from another player i was a bit b. So, at any stage where he receives no message from i, j acts as if i had sent bit b.)

[00188] O protocolo usa um contador que representa quantas vezes seu circuito em 3 etapas foi executado. No início da BBA*, (Pode pensar em γ como um contador global, mas é na realidade aumentado por cada jogador individual a cada momento que o circuito é executado.)[00188] The protocol uses a counter that represents how many times its 3-step circuit has been executed. At the beginning of BBA *, (You can think of γ as a global counter, but it is actually increased by each individual player at each moment that the circuit is run.)

[00189] Há n ≥ 3t + 1, em que t é o número máximo possível de jogadores maliciosos. Uma série binária x é identificada com o número inteiro cuja representação binária (com lideranças possíveis 0s) é x; e lsb(x) denota o bit menos significativo de x. PROTOCOLO BBA*[00189] There are n ≥ 3t + 1, where t is the maximum possible number of malicious players. A binary series x is identified with the integer whose binary representation (with possible leaders 0s) is x; and lsb (x) denotes the least significant bit of x. BBA PROTOCOL *

[00190] (COMUNICAÇÃO) ETAPA 1. [Etapa Moeda Fixa em 0] Cada jogador i envia bi.[00190] (COMMUNICATION) STEP 1. [Fixed Currency Step at 0] Each player i sends bi.

1.1 Se então i define bi = 0, envia 0*, emite outi = 0 e HALTS.1.1 If i then define bi = 0, send 0 *, issue outi = 0 and HALTS.

1.2 Se então, i define bi = 1.1.2 If so, i defines bi = 1.

1.3 De outro modo, i define bi = 0.1.3 Otherwise, i defines bi = 0.

[00191] (COMUNICAÇÃO) ETAPA 2. [Etapa Moeda Fixa em 1] Cada jogador i envia bi.[00191] (COMMUNICATION) STEP 2. [Fixed Currency Step at 1] Each player i sends bi.

2.1 Se então, i define bi = 1, envia 1*m emite outi =1, e HALTS.2.1 If so, i defines bi = 1, sends 1 * m and emits outi = 1, and HALTS.

2.2 Se então, i define bi = 0.2.2 If so, i defines bi = 0.

2.3 De outro modo, i define bi = 1.2.3 Otherwise, i defines bi = 1.

[00192] (COMUNICAÇÃO) ETAPA 3. [Etapa Moeda Genuinamente Lançada] Cada jogador i envia bi e[00192] (COMMUNICATION) STEP 3. [Coin Step Genuinely Launched] Each player i sends bi e

3.1 Se então, i define bi = 0.3.1 If so, i defines bi = 0.

3.2 Se então, i define bi = 1.3.2 If so, i defines bi = 1.

3.3 De outro modo, sendo Si = {j ϵ N, que envia a i uma mensagem adequada nessa etapa 3}, i define aumenta em 1; e retorna à Etapa 1.3.3 Otherwise, if Si = {j ϵ N, which sends i an appropriate message in this step 3}, i define increases by 1; and returns to Step 1.

[00193] Teorema 3.1. Sempre que n ≥ 3t + 1, BBA* é um protocolo binário (n,t)-BA com solidez 1.[00193] Theorem 3.1. Whenever n ≥ 3t + 1, BBA * is a binary (n, t) -BA protocol with solidity 1.

[00194] Um prova do Teorema 3.1 pode ser encontrada em https://people.csail.mit.edu/silvio/ Selected- ScientificPapers/DistributedComputation/BYZANTINEAGREEMENTMADET RIVIAL.15 pdf.[00194] A proof of Theorem 3.1 can be found at https://people.csail.mit.edu/silvio/ Selected- ScientificPapers / DistributedComputation / BYZANTINEAGREEMENTMADET RIVIAL.15 pdf.

3.5 CONSENSO CLASSIFICADO E O PROTOCOLO GC3.5 CLASSIFIED CONSENSUS AND THE GC PROTOCOL

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

[00196] Definição 3.2. P é um protocolo em que o conjunto de todos os jogadores é de conhecimento comum, e cada jogador i privadamente conhece um valor inicial arbitrário[00196] Definition 3.2. P is a protocol in which the set of all players is common knowledge, and each player i privately knows an arbitrary initial value

[00197] Diz-se que P é um protocolo de consenso classificado por (n, t) se, em cada execução com n jogadores, no máximo t dos quais são maliciosos, cada jogador honesto i para de emitir um par valor-classe (vi, gi), em que gi ∈ {0, 1, 2}, de modo a satisfazer as seguinte três condições:[00197] It is said that P is a consensus protocol classified by (n, t) if, in each execution with n players, at most t of which are malicious, each honest player i stops issuing a value-class pair ( vi, gi), where gi ∈ {0, 1, 2}, in order to satisfy the following three conditions:

1. Para todos os jogadores honestos i e j,1. For all honest players i and j,

2. Para todos os jogadores honestos i e j,2. For all honest players i and j,

3. Se para algum valor v, então, e para todos os jogadores honestos i.3. If for some value v, then, and for all honest players i.

[00198] O protocolo em duas etapas a seguir GC é um protocolo de consenso classificado na literatura. Para corresponder às etapas do protocolo da seção 4.1, as etapas foram nomeadas, respectivamente 2 e 3, de GC. (De fato, a primeira etapa de Algorand’1 refere- se a outra coisa: a saber, propor um novo bloco.)[00198] The two-step protocol following GC is a consensus protocol classified in the literature. To correspond to the steps in the protocol in section 4.1, the steps were named, respectively 2 and 3, as GC. (In fact, the first stage of Algorand'1 refers to something else: namely, proposing a new block.)

PROTOCOLO GCGC PROTOCOL

[00199] ETAPA 2. Cada jogador i envia a todos os jogadores.[00199] STEP 2. Each player i sends to all players.

[00200] ETAPA 3. Cada jogador i envia a todos os jogadores a série x se e apenas se[00200] STEP 3. Each player i sends all players the series x if and only if

[00201] DETERMINAÇÃO DE SAÍDA. Cada jogador i emite o par (vi, gi) computado conforme segue: • Se, para algum x, então, e . • Se, para algum x, então, e • De outro modo, e[00201] DETERMINATION OF OUTPUT. Each player i issues the pair (vi, gi) computed as follows: • If, for some x, then e. • If, for some x, then, and • Otherwise, and

[00202] Visto que o protocolo GC é um protocolo na literatura, sabe-se que o teorema a seguir se mantém.[00202] Since the GC protocol is a protocol in the literature, it is known that the following theorem remains.

[00203] Teorema 3.2. Se então GC é um protocolo de difusão classificado por (n, t).[00203] Theorem 3.2. If then GC is a diffusion protocol classified by (n, t).

3.6 O PROTOCOLO BA*3.6 THE BA PROTOCOL *

[00204] Será descrito agora o protocolo de BA de valor arbitrário BA* por meio do protocolo de BA binário BBA* e do protocolo de consenso classificado GC. Abaixo, o valor inicial de cada jogador i é PROTOCOLO BA*[00204] The BA protocol of arbitrary value BA * will now be described by means of the binary BA protocol BBA * and the consensus protocol classified GC. Below, the starting value of each player i is PROTOCOL BA *

[00205] ETAPAS 1 E 2. Cada jogador i executa GC, na entrada de modo a computar um par (vi,gi).[00205] STEPS 1 AND 2. Each player i performs GC, at the entrance in order to compute a pair (vi, gi).

[00206] ETAPA 3, . . . Cada jogador i executa BBA* — com entrada inicial 0, se gi = 2, e 1 de outro modo — de modo a computar a saídai de bit.[00206] STEP 3,. . . Each player i executes BBA * - with initial input 0, if gi = 2, and 1 otherwise - in order to compute the bit output.

[00207] DETERMINAÇÃO DE SAÍDA. Cada jogador i emite vi, se a saídai = 0, e de outro modo.[00207] DETERMINATION OF OUTPUT. Each player i issues vi, if outputi = 0, and otherwise.

[00208] Teorema 3.3. Sempre que n ≥ 3t + 1, BA* é um protocolo (n, t)-BA com solidez 1.[00208] Theorem 3.3. Whenever n ≥ 3t + 1, BA * is a protocol (n, t) -BA with solidity 1.

[00209] Prova. Foi primeiramente provada a Consistência e, então, o Acordo.[00209] Proof. Consistency was first proven and then the Agreement.

[00210] PROVA DE CONSISTÊNCIA. Supõe-se que, para algum valor, v . Então, pela propriedade 3 do consenso classificado, após a execução de GC, todos os jogadores honestos emitem (v,2). Consequentemente, 0 é o bit inicial de todos os jogadores honestos no final da execução do BBA*. Assim, pela propriedade de Acordo do acordo Bizantino binário, no final da execução do BA*, outi = 0 para todos os jogadores honestos. Isso implica que a saída de cada jogador honesto i no[00210] PROOF OF CONSISTENCY. It is assumed that, for some value, v. Then, by property 3 of the classified consensus, after the execution of the GC, all honest players issue (v, 2). Consequently, 0 is the starting bit for all honest players at the end of the BBA * execution. Thus, by the Binary Byzantine Agreement Agreement property, at the end of the BA * execution, outi = 0 for all honest players. This implies that the exit of each honest player i in the

BA* é vi = v.BA * is vi = v.

[00211] PROVA DE ACORDO. Já que BBA* é um protocolo de BA binário, ou[00211] PROOF OF AGREEMENT. Since BBA * is a binary BA protocol, or

[00212] (A) outi = 1 para todo jogador honesto i, ou[00212] (A) outi = 1 for every honest player i, or

[00213] (B) outi = 0 para todo jogador honesto i.[00213] (B) outi = 0 for every honest player i.

[00214] No caso A, todos os jogadores honestos emitem no BA*, e, assim, o Acordo se mantém. Considere agora o caso B. Nesse caso, na execução do BBA*, o bit inicial de pelo menos um jogador honesto i é 0. (De fato, se o bit inicial de todos os jogadores honestos for 1, então, pela propriedade de Consistência do BBA*, ter-se-ia outj = 1 para todo j honesto.) Consequentemente, após a execução de GC, i emite o par (v, 2) para algum valor v. Assim, pela propriedade 1 do consenso classificado, gj > 0 para todos os jogadores honestos j. Consequentemente, pela propriedade 2 do consenso classificado, vj = v para todos os jogadores honestos j. Isso implica que, no final do BA*, cada jogador honesto j emite v.[00214] In case A, all honest players issue at BA *, and thus the Agreement remains. Now consider case B. In this case, in the execution of BBA *, the starting bit of at least one honest player i is 0. (In fact, if the starting bit of all honest players is 1, then, for the Consistency property from BBA *, we would have outj = 1 for every honest j.) Consequently, after the execution of GC, i issues the pair (v, 2) for some value v. Thus, by property 1 of the classified consensus, gj> 0 for all honest players j. Consequently, by property 2 of the classified consensus, vj = v for all honest players j. This implies that, at the end of the BA *, each honest player already issues v.

Assim, o Acordo se mantém também no caso B.Thus, the Agreement also remains in case B.

[00215] Já que tanto a Consistência quanto o Acordo se mantêm, BA* é um protocolo de BA de valor arbitrário. ■[00215] Since both Consistency and the Agreement remain, BA * is a BA protocol of arbitrary value. ■

[00216] O Protocolo BA* funciona também em redes de transmissão e, de fato, satisfaz a jogador capacidade de substituição que é crucial para Algorand seja seguro no modelo bastante contraditório previsto.[00216] The BA * Protocol also works in transmission networks and, in fact, satisfies the player's capacity for substitution, which is crucial for Algorand to be safe in the very contradictory model provided.

[00217] A Capacidade de Substituição do Jogador do BBA* e BA* permite agora o fornecimento de alguma intuição do motivo de os protocolos BA* e BBA* poderem ser adaptados para serem executados em uma rede em que a comunicação é por meio de transmissão de ponto a ponto, satisfazendo a capacidade de substituição do jogador. Para concretude, supõe-se que a rede tem 10M de usuários e que cada etapa x do BBA* (ou BA*) é executada por um comitê de 10.000 jogadores, que foram aleatoriamente selecionados por meio de sorteio criptográfico secreto e têm, assim, credenciais provando serem qualificados para enviar mensagens na etapa x. Supõe-se que cada mensagem enviada em uma determinada etapa especifica o número de etapa, é digitalmente assinada por seu remetente e inclui a credencial provando que seu remetente é qualificado para falar nessa etapa.[00217] The Substitution Capacity of the BBA * and BA * Player now allows the provision of some intuition as to why the BA * and BBA * protocols can be adapted to run on a network where communication is through transmission point to point, satisfying the player's substitution ability. For concreteness, it is assumed that the network has 10M of users and that each stage x of BBA * (or BA *) is performed by a committee of 10,000 players, who were randomly selected through secret cryptographic draw and thus have credentials proving to be qualified to send messages in step x. It is assumed that each message sent at a certain stage specifies the stage number, is digitally signed by its sender and includes the credential proving that its sender is qualified to speak at that stage.

[00218] Primeiramente, se a porcentagem h de jogadores honestos for suficientemente maior do que 2/3 (por exemplo, 75%), então, com grande probabilidade, o comitê selecionado em cada etapa tem a maioria honesta de 2/3 exigida.[00218] Firstly, if the percentage h of honest players is sufficiently greater than 2/3 (for example, 75%), then, most likely, the committee selected at each stage has an honest 2/3 majority required.

[00219] Adicionalmente, o fato de que o comitê aleatoriamente selecionado forte de 10.000 muda em cada etapa não impede o funcionamento correto do BBA* ou BA*. De fato, em cada protocolo, um jogador i na etapa s reage apenas à multiplicidade com a qual, na etapa s — 1, ele recebeu uma determinada mensagem m. Já que se está em uma rede de transmissão, todas as mensagens enviadas na etapa s — 1 alcançarão (imediatamente, para o propósito dessa intuição) todos os usuários, incluindo aqueles selecionados para jogar na etapa s. Ademais, devido ao fato de que todas as mensagens enviadas na etapa s — 1 especificam o número de etapa e incluem a credencial de que o remetente era, de fato, autorizado a falar na etapa s — 1. Consequentemente, se ele tiver sido selecionado também na etapa s — 1 ou não, um usuário i selecionado para jogar na etapa s é perfeitamente capaz de contar corretamente a multiplicidade com a qual ele recebeu uma mensagem da etapa s — 1 correta. Não importa, de modo algum, se ele estava jogando em todas as etapas até o momento ou não. Todos os usuários estão “no mesmo barco” e, assim, podem ser substituídos facilmente por outros usuários. 4 DUAS MODALIDADES DE ALGORAND[00219] Additionally, the fact that the 10,000 randomly selected strong committee changes at each stage does not prevent the BBA * or BA * from functioning correctly. In fact, in each protocol, a player i in step s reacts only to the multiplicity with which, in step s - 1, he received a certain message m. Since you are on a transmission network, all messages sent in step s - 1 will reach (immediately, for the purpose of this intuition) all users, including those selected to play in step s. Furthermore, due to the fact that all messages sent in step s - 1 specify the step number and include the credential that the sender was, in fact, authorized to speak in step s - 1. Consequently, if he was selected also in step s - 1 or not, a user i selected to play in step s is perfectly capable of correctly counting the multiplicity with which he received a message from the correct step s - 1. It doesn't matter, at all, whether he was playing 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

[00220] Conforme discutido, em um nível muito alto, uma rodada de Algorand procede idealmente conforme segue. Primeiro, um usuário aleatoriamente selecionado, o líder, propõe e circula um novo bloco. (Esse processo inclui selecionar inicialmente alguns líderes potenciais e, então, garantir que, pelo menos uma boa fração do tempo, um único líder comum emerja). Segundo, um comitê aleatoriamente selecionado de usuários é selecionado e alcança 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) dos membros do comitê. Essas assinaturas digitais são propagadas de modo que todos tenham certeza de qual é o novo bloco. (Isso inclui circular a credencial dos assinantes e autenticar apenas o hash do novo bloco, assegurando que todos tenham a garantia de aprender o bloco, uma vez que o hash é tornado claro).[00220] As discussed, at a very high level, an Algorand round 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 emerges). Second, a randomly selected committee of users is selected and reaches 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 the committee members. These digital signatures are propagated so that everyone is sure what the new block is. (This includes circulating subscribers' credentials and authenticating only the hash of the new block, ensuring that everyone is guaranteed to learn the block, once the hash is made clear).

[00221] Nas duas seções seguintes, são apresentadas duas modalidades do projeto de Algorand básico, e que funcionam respectivamente sob uma suposição de maioria de usuários honestos apropriada. Na Seção ??, mostra-se como adotar essas modalidades para funcionarem sob uma suposição de maioria honesta de dinheiro.[00221] In the following two sections, two modalities of the basic Algorand project are presented, which work respectively under the assumption of an appropriate majority of honest users. Section ?? shows how to adopt these modalities to work under the assumption of an honest majority of money.

[00222] prevê apenas que > 2/3 dos membros do comitê são honestos. Adicionalmente, em , o número de etapas para alcançar o acordo Bizantino é limitado por um número adequadamente alto, de modo que seja garantido que o acordo seja alcançado com grande probabilidade dentro de um número fixo de etapas (mas exigindo potencialmente tempo mais longo do que as etapas de No caso remoto em que o acordo não é ainda alcançado na última etapa, o comitê concorda com o bloco vazio, que é sempre válido.[00222] provides only that> 2/3 of the committee members are honest. Additionally, in, the number of steps to reach the Byzantine agreement is limited by a suitably high number, so that it is guaranteed that the agreement is most likely to be reached within a fixed number of steps (but potentially requiring longer time than the steps of In the remote case where the agreement is not yet reached in the last step, the committee agrees with the empty block, which is always valid.

[00223] Prevê que o número de membros honestos em um comitê é sempre maior ou igual a um limite fixo tH (que garante que, com grande probabilidade, pelo menos 2/3 dos membros do comitê são honestos). Adicionalmente, permite que o acordo Bizantino seja alcançado em um número arbitrário de etapas (mas potencialmente em um tempo mais curto do que[00223] It provides that the number of honest members in a committee is always greater than or equal to a fixed limit tH (which guarantees that, in great probability, at least 2/3 of the members of the committee are honest). Additionally, it allows the Byzantine agreement to be reached in an arbitrary number of steps (but potentially in a shorter time than

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

[00225] Ambas as modalidades compartilham o seguinte núcleo comum, notações, noções e parâmetros.[00225] Both modalities share the following common core, notations, notions and parameters.

4.1 UM NÚCLEO COMUM4.1 A COMMON CORE

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

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

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

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

[00230] Certamente, garantir a exatidão perfeita sozinha é trivial: todos sempre escolhem o conjunto de pagamentos oficial PAYr para ser vazio. Mas, nesse caso, o sistema teria completeza 0. Infelizmente, garantir tanto a exatidão perfeita quanto a completeza 1 não é fácil na presença de usuários maliciosos. Algorand adota, assim, um objetivo mais realista. Informalmente, deixando h denotar a porcentagem de usuários que são honestos, h > 2/3, o objetivo de Algorand é[00230] Certainly, ensuring perfect accuracy alone 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. Thus, Algorand adopts a more realistic objective. Informally, letting h denote the percentage of users who are honest, h> 2/3, Algorand's goal is

[00231] Garantindo, com grande probabilidade, exatidão perfeita e completeza próximas a h.[00231] Ensuring, with great probability, perfect accuracy and completeness close to h.

[00232] Privilegiar a exatidão em vez da completeza parece ser uma escolha razoável: os pagamentos não processados em uma rodada podem ser processados no próximo, mas deve-se evitar bifurcações, se possível.[00232] Privileging accuracy over completeness seems to be a reasonable choice: payments not processed in one round can be processed in the next, but forks should be avoided if possible.

[00233] Acordo Bizantino Conduzido Desconsiderando o tempo e comunicação excessivos por um momento, a Exatidão perfeita poderia ser garantida conforme segue. No início da rodada r, cada usuário i propõe seu próprio bloco candidato . Então, todos os usuários alcançam o acordo Bizantino em apenas um dos blocos candidatos. De acordo com a introdução, o protocolo de BA empregado exigem uma maioria honesta de 2/3 e é passível de substituição de jogador. Cada uma de suas etapas pode ser executada por um pequeno conjunto aleatoriamente selecionado de verificadores, que não compartilham quaisquer variáveis internas.[00233] Byzantine Agreement Conducted Disregarding excessive time and communication for a moment, perfect Accuracy could be guaranteed as follows. At the beginning of round r, each user i proposes his own candidate block. Then, all users reach the Byzantine agreement in only one of the candidate blocks. According to the introduction, the BA protocol employed requires an honest 2/3 majority and is eligible for player substitution. Each of its steps can be performed by a small randomly selected set of verifiers, which do not share any internal variables.

[00234] Infelizmente, essa abordagem não funciona bem. Isto é, devido ao fato de que os blocos candidatos propostos pelos usuários honestos são, mais provavelmente, totalmente diferentes um do outro. De fato, cada usuário honesto vê pagamentos diferentes. Assim, embora os conjuntos de pagamentos vistos por diferentes usuários honestos possam ter muitas sobreposições, é improvável que todos os usuários honestos construam de propósito o mesmo bloco. Consequentemente, o acordo de consistência do protocolo de BA nunca é vinculado, apenas o acordo um é, e, assim, o acordo pode sempre ser alcançado em em vez de em um bom bloco.[00234] Unfortunately, this approach does not work well. This is due to the fact that the candidate blocks proposed by honest users are, most likely, totally different from each other. In fact, every honest user sees different payments. Thus, while payment sets seen by different honest users can have many overlaps, it is unlikely that all honest users will purposely build the same block. Consequently, the BA protocol consistency agreement is never linked, only agreement one is, and thus the agreement can always be reached in rather than in a good block.

[00235] evita esse problema conforme segue. Primeiro, um líder para a rodada é selecionado. Então, propaga seu próprio bloco candidato, Finalmente, os usuários alcançam acordo sobre o bloco que eles realmente recebem de Devido ao fato de que, sempre que é honesto, tanto a Exatidão Perfeita quanto a Completeza 1 se mantêm, garante que seja honesto com probabilidade próxima a h.[00235] avoids this problem as follows. First, a leader for the round is selected. Then, propagate your own candidate block. Finally, users reach agreement on the block they actually receive from. Due to the fact that, whenever it is honest, both Perfect Accuracy and Completeness 1 remain, it ensures that you are honest with probability. close to h.

[00236] Seleção de Líder Em Algorand, o r-ésimo bloco é da forma[00236] Leader Selection In Algorand, the r-th block is of the form

[00237] Conforme já mencionado na introdução, a quantidade Qr-1 é cuidadosamente construída de modo a ser essencialmente não manipulável pelo adversário bastante forte. (Posteriormente nessa seção, será fornecida alguma intuição sobre o motivo de isso ser o caso). No início de uma rodada r, todos os usuários conhecem o blockchain até o momento, B0, . . . , Br-1, a partir da qual eles deduzem o conjunto de usuários de cada rodada anterior: isto é, . Um líder potencial da rodada r é um usuário i de modo que[00237] As already mentioned in the introduction, the Qr-1 quantity is carefully constructed so as to be essentially unmanageable by the very strong opponent. (Later in this section, some intuition will be provided as to why this is the case). At the start of a round r, all users know the blockchain so far, B0,. . . , Br-1, from which they deduce the set of users from each previous round: that is,. A potential leader of round r is a user i so that

[00238] Explica-se. Note que, já que a quantidade Qr-1 é deduzível a partir do bloco Br-1, por causa da propriedade de recuperabilidade de mensagem do esquema de assinatura digital subjacente. Ademais, o esquema de assinatura subjacente satisfaz a propriedade de exclusividade.[00238] Explain yourself. Note that, since the quantity Qr-1 is deductible from the Br-1 block, because of the message recoverability property of the underlying digital signature scheme. In addition, the underlying subscription scheme satisfies the exclusivity property.

Assim, é uma cadeia binária exclusivamente associada a i e r.Thus, it is a binary chain exclusively associated with i and r.

Consequentemente, já que H é um oráculo aleatório, é uma cadeia de 256 bits de comprimento aleatória exclusivamente associada a i e r. O símbolo “.” na frente de é o ponto decimal (no caso, binário), de modo que seja a expansão binária de um número de 256 bits aleatório entre 0 e 1 exclusivamente associado a i e r. Assim, a probabilidade de que ri seja menor ou igual a p é, essencialmente,Consequently, since H is a random oracle, it is a 256-bit string of random length exclusively associated with i and r. The symbol "." in front of is the decimal point (in this case, binary), so that it is the binary expansion of a random 256-bit number between 0 and 1 exclusively associated with i and r. Thus, the probability that ri is less than or equal to p is essentially

p.P.

[00239] A probabilidade p é escolhida de modo que, com grande (isto é, 1 — F) probabilidade, pelo menos um verificador potencial seja honesto. (De fato, p é escolhido para ser a menor tal probabilidade). Note que, já que i é o único com a capacidade para computar suas próprias assinaturas, ele sozinho pode determinar se ele é um verificador potencial da rodada 1. Entretanto, revelando sua própria credencial ,i pode provar para qualquer um que é um verificador potencial da rodada r.[00239] The probability p is chosen so that, with a high (ie, 1 - F) probability, at least one potential verifier is honest. (In fact, p is chosen to be the least such probability). Note that since i is the only one with the ability to compute his own signatures, he alone can determine if he is a potential verifier in round 1. However, by revealing his own credential, i can prove to anyone that he is a potential verifier of the round r.

[00240] O líder é definido como sendo o líder potencial cuja credencial verificada por hash é menor do que a credencial verificada por hash de outro líder potencial j: isto é,[00240] The leader is defined as being the potential leader whose hash verified credential is less than the hash verified credential of another potential leader j: that is,

[00241] Note que, já que um malicioso pode não revelar sua credencial, o líder correto da rodada r pode nunca ser conhecido, e que, impedindo vínculos improváveis, é, de fato, o único líder da rodada r.[00241] Note that since a malicious person may not reveal his credential, the correct leader of round r may never be known, and that, preventing improbable ties, he is, in fact, the only leader of round r.

[00242] É finalmente apresentado um último, mas importante, detalhe: um usuário i pode ser um líder potencial (e, assim, o líder) de uma rodada r apenas se ele pertencer ao sistema por pelo menos k rodadas. Isso garante a não manipulabilidade de Qr e todas as futuras quantidades Q. De fato, um dos líderes potenciais realmente determinarão Qr.[00242] Finally, a final but important detail is presented: a user i can be a potential leader (and thus the leader) of a round r only if he belongs to the system for at least k rounds. This guarantees the non-manipulability of Qr and all future Q quantities. In fact, one of the potential leaders will actually determine Qr.

[00243] Seleção de Verificador Cada etapa s > 1 da rodada r é executada por um pequeno conjunto de verificadores, . Novamente, cada verificador é aleatoriamente selecionado dentre os usuários já no sistema k rodadas antes de r, e novamente por meio da quantidade especial Qr-1. Especificamente, é um verificador em se[00243] Verifier Selection Each step s> 1 of round r is performed by a small set of verifiers,. Again, each tester is randomly selected from among users already in the k system before r, and again using the special quantity Qr-1. Specifically, it is a checker on whether

[00244] Mais uma vez, apenas i sabe se ele pertence a SVr,s, mas, se esse for o caso, ele poderia provar isso exibindo sua credencial[00244] Again, only i know if he belongs to SVr, s, but if that is the case, he could prove it by displaying his credential

. Um verificador i ∈ envia uma mensagem, na etapa s da rodada r, e essa mensagem inclui sua credencial de modo a permitir que os verificadores f na próxima etapa reconheçam que é uma mensagem da etapa s legítima.. A verifier i ∈ sends a message, in step s of round r, and that message includes your credential to allow verifiers f in the next step to recognize that it is a legitimate message from step s.

[00245] A probabilidade p' é escolhida de modo a garantir que, em SVr,s, #bom seja o número de usuários honestos e #mau seja o número de usuários maliciosos, com grande probabilidade de que as duas condições a seguir se mantenham.[00245] The probability p 'is chosen to ensure that, in SVr, s, #bom is the number of honest users and #mau is the number of malicious users, with a high probability that the following two conditions will remain .

[00246] Para a modalidade[00246] For the modality

[00247] (1) #bom > 2 · #mau e[00247] (1) #bom> 2 · # bad and

[00248] (2) #bom + 4 · #mau < 2n, em que n é a cardinalidade esperada de SVr,s.[00248] (2) #bom + 4 · #mau <2n, where n is the expected cardinality of SVr, s.

[00249] Para a modalidade Algorand'2:[00249] For the Algorand'2 modality:

[00250] (1) #bom > tH e[00250] (1) #bom> tH e

[00251] (2) #bom + 2#mau < 2tH, em que tH é um limite especificado.[00251] (2) #bom + 2 # bad <2tH, where tH is a specified limit.

[00252] 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 jogadores honestos para assinar digitalmente o novo bloco Br, (b) apenas um bloco por rodada pode ter o número necessário de assinaturas, e (c) o protocolo de BA usado tem (em cada etapa) a maioria honesta de 2/3 exigida.[00252] 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 players to digitally sign the new Br block, (b) only one block per round can have the required number of signatures, and (c) the BA protocol used has (at each stage) the honest 2/3 majority required.

[00253] Geração de Bloco de Esclarecimento Se o líder da rodada r for honesto, então, o bloco correspondente está na forma[00253] Generation of Clarification Block If the leader of round r is honest, then the corresponding block is in the form

[00254] em que o conjunto de pagamentos PAYr é máximo, (lembrar que todos os conjuntos de pagamentos são, por definição,[00254] where the PAYr payment set is maximum, (remember that all payment sets are, by definition,

coletivamente válidos).collectively valid).

[00255] De outro modo (isto é, se for malicioso), Br tem uma das duas seguintes formas possíveis:[00255] In another way (that is, if it is malicious), Br has one of the following two possible forms:

[00256] Na primeira forma, é um conjunto de pagamentos (não necessariamente máximo) e pode ser e i é um líder potencial da rodada r. (Entretanto, i pode não ser o líder Isso pode de fato acontecer se mantiver secreta sua credencial e não se revelar).[00256] In the first form, it is a set of payments (not necessarily maximum) and can be e i is a potential leader of round r. (However, i may not be the leader. This may in fact happen if you keep your credential secret and don't reveal yourself).

[00257] A segunda forma surge quando, na execução da rodada r do protocolo de BA, todos os jogadores honestos emitirem o valor padrão, que é o bloco vazio neste pedido. (Por definição, as possíveis saídas de um protocolo de BA incluem um valor padrão, genericamente denotado por Consulte a seção 3.2.)[00257] The second form appears when, in the execution of round r of the BA protocol, all honest players issue the default value, which is the empty block in this order. (By definition, possible outputs from a BA protocol include a default value, generally denoted by See section 3.2.)

[00258] Note que, embora os conjuntos de pagamentos estejam vazios em ambos os casos, e são blocos sintaticamente diferentes e surgem em duas situações diferentes: respectivamente, “tudo ocorreu bem o suficiente na execução do protocolo de BA” e “algo deu errado no protocolo de BA, e o valor padrão foi emitido”.[00258] Note that, although payment sets are empty in both cases, and are syntactically different blocks and arise in two different situations: respectively, "everything went well enough in the execution of the BA protocol" and "something went wrong in the BA protocol, and the default value was issued ”.

[00259] Descreve-se agora intuitivamente como a geração do bloco Br procede na rodada r de Na primeira etapa, cada jogador elegível, isto é, cada jogador verifica se ele é um líder potencial. Se esse for o caso, então, solicita-se que i, com o uso de todos os pagamentos que ele viu até o momento, e o blockchain atual, prepare secretamente um conjunto de pagamentos máximo, e monte secretamente seu bloco candidato, Br = . Isto é, ele não apenas inclui em como seu segundo componente, o recém preparado conjunto de pagamentos, mas também, como seu terceiro componente, sua própria assinatura de Qr-1, o terceiro componente do último bloco, . Finalmente, ele propaga sua mensagem da etapa 1 da rodada r, que inclui (a) seu bloco candidato (b) sua assinatura apropriada de seu bloco candidato (isto é, sua assinatura do hash de e (c) sua própria credencial que prova que ele é, de fato, um verificador potencial da rodada r.[00259] It is now intuitively described how the generation of the Br block proceeds in round r of In the first stage, each eligible player, that is, each player verifies whether he is a potential leader. If this is the case, then i, with the use of all the payments he has seen so far, and the current blockchain, are asked to secretly prepare a maximum payment set, and secretly assemble his candidate block, Br = . That is, it not only includes as its second component, the newly prepared set of payments, but also, as its third component, its own signature of Qr-1, the third component of the last block,. Finally, it propagates its message from step 1 of round r, which includes (a) its candidate block (b) its appropriate signature from its candidate block (that is, its signature from the hash of and (c) its own credential that proves that he is, in fact, a potential tester for round r.

[00260] (Note que, até um i honesto produzir sua mensagem o Adversário não tem ideia de que i é um verificador potencial. Se ele desejar corromper líderes potenciais honestos, o Adversário pode também corromper jogadores honestos aleatórios. Entretanto, uma vez que ele vê já que o mesmo contém a credencial de i, o adversário sabe e poderia corromper i, mas não pode impedir o que é viralmente propagado de alcançar todos os usuários no sistema).[00260] (Note that until an honest i produces his message the Opponent has no idea that i is a potential tester. If he wants to corrupt potential honest leaders, the Opponent can also corrupt random honest players. However, since he see that it already contains the credential of i, the opponent knows and could corrupt i, but cannot prevent what is virally propagated from reaching all users in the system).

[00261] Na segunda etapa, cada verificador selecionado j ∈ tenta identificar o líder da rodada. Especificamente, j toma as credenciais da etapa 1 , contidas na mensagem da etapa 1 apropriada que ele recebeu; verifica por hash todas as mesmas, isto é, computa encontra o credencial , cujo hash é lexicograficamente mínimo; e considera como o líder da rodada .[00261] In the second step, each selected verifier already tries to identify the leader of the round. Specifically, it already takes the credentials from step 1, contained in the appropriate step 1 message it received; hash checks all the same, that is, computes finds the credential, whose hash is lexicographically minimal; and considers as the leader of the round.

[00262] Lembre-se que cada credencial considerada é uma assinatura digital de Qr-1, que é exclusivamente determinado por ie que H é o oráculo aleatório, e, assim, que cada é uma cadeia de 256 bits de comprimento aleatória exclusiva para cada líder potencial i da rodada r.[00262] Remember that each credential considered is a digital signature of Qr-1, which is uniquely determined by ie that H is the random oracle, and thus that each is a 256-bit string of random length unique to each potential leader i of round r.

[00263] A partir disso, pode-se concluir que, se a própria cadeia de 256 bits Qr-1 for aleatória e independentemente selecionada, essas seriam as credenciais verificadas por hash de todos os líderes potenciais da rodada r. De fato, todos os líderes potenciais são bem definidas e, assim, também são suas credenciais (realmente computadas ou não). Ademais, o conjunto de líderes potenciais da rodada r é um subconjunto aleatório dos usuários da rodada r — k, e um líder potencial honesto i sempre constrói e propaga apropriadamente sua mensagem que contém a credencial de i. Assim, já que a porcentagem de usuários honestos é h, não importa o que os líderes potenciais maliciosos possam fazer (por exemplo, revelar ou ocultar suas próprias credenciais), a credencial do líder potencial verificada por hash mínima pertence a um usuário honesto, que é necessariamente identificado por todos como sendo o líder da rodada r. Consequentemente, se a própria cadeia de 256 bits Qr-1 for aleatória e independentemente selecionada, com probabilidade exatamente h (a) o líder é honesto e (b) para todos os verificadores da etapa 2 honestos j.[00263] From this, it can be concluded that, if the 256-bit Qr-1 chain itself is random and independently selected, these would be the hash-verified credentials of all potential leaders of round r. In fact, all potential leaders are well defined, and so are their credentials (actually computed or not). Furthermore, the set of potential leaders in round r is a random subset of users in round r - k, and an honest potential leader i always builds and propagates his message appropriately containing the credential of i. So, since the percentage of honest users is h, no matter what potential malicious leaders may do (for example, reveal or hide their own credentials), the potential leader's credential verified by minimal hash belongs to an honest user, who is necessarily identified by everyone as the leader of round r. Consequently, if the 256-bit string Qr-1 itself is random and independently selected, with probability exactly h (a) the leader is honest and (b) for all verifiers in step 2 honest j.

[00264] Na realidade, as credenciais verificadas por são, sim, aleatoriamente selecionadas, mas dependem de que não é aleatória e independentemente selecionado. Uma análise cuidadosa, entretanto, garante que é suficientemente não manipulável para garantir que o líder de uma rodada seja honesto com probabilidade suficientemente próxima a h: a saber,[00264] In reality, the credentials verified by are, yes, randomly selected, but depend on that it is not randomly and independently selected. Careful analysis, however, ensures that it is sufficiently unmanageable to ensure that the leader of a round is honest with a probability close enough to h: namely,

[00265] Por exemplo, se h = 80%, então, 0,7424.[00265] For example, if h = 80%, then 0.7424.

[00266] Tendo identificado o líder da rodada (o que eles fazem corretamente quando o líder é honesto), a tarefa dos verificadores da etapa 2 é iniciar a execução de BA* usando como valores iniciais o que eles acreditam ser o bloco do líder. Na realidade, a fim de minimizar a quantidade de comunicação exigida, um verificador j ∈ não usa, como sua entrada , o valor para o protocolo Bizantino, o bloco que ele realmente recebeu de (o usuário j acredita ser o líder), mas o líder, mas o hash desse bloco, isto é, . Assim, mediante a terminação do protocolo de BA, os verificadores da última etapa não computam o bloco Br da rodada r, mas computam (autenticam e propagam) H(Br). Consequentemente, já que H(Br) é digitalmente assinado por suficientemente muitos verificadores da última etapa do protocolo de BA, os usuários no sistema perceberão que H(Br) é o hash do novo bloco. Entretanto, eles devem também recuperar o (ou esperar pelo, já que a execução é bastante assíncrona) próprio bloco Br, o que o protocolo garante que esteja de fato disponível, não importa o que o adversário possa fazer.[00266] Having identified the leader of the round (which they do correctly when the leader is honest), the task of the verifiers in step 2 is to start the execution of BA * using as initial values what they believe to be the leader block. In reality, in order to minimize the amount of communication required, a verifier no longer uses, as its input, the value for the Byzantine protocol, the block it actually received from (the user already believes to be the leader), but the leader, but the hash of that block, that is,. Thus, upon the termination of the BA protocol, the verifiers of the last stage do not compute the Br block of round r, but compute (authenticate and propagate) H (Br). Consequently, since H (Br) is digitally signed by sufficiently many verifiers from the last stage of the BA protocol, users in the system will realize that H (Br) is the hash of the new block. However, they must also recover (or wait for, since the execution is quite asynchronous) the Br block itself, which the protocol guarantees is actually available, no matter what the opponent may do.

[00267] Assincronia e Temporização e têm um grau significativo de assincronia. Isso é devido ao fato de que o adversário tem grande latitude na programação da entrega das mensagens sendo propagadas. Adicionalmente, se o número total de etapas em uma rodada for limitado ou não, há a contribuição da variância pelo número de etapas realmente tomadas.[00267] Asynchrony and Timing and have a significant degree of asynchrony. This is due to the fact that the opponent has great latitude in the delivery schedule of the messages being propagated. Additionally, whether the total number of steps in a round is limited or not, there is a contribution of variance by the number of steps actually taken.

[00268] Assim que ele aprende os certificados de B0, . . . , Br-1, um usuário i computa Qr-1 e começa a trabalhar na rodada r, verificando se ele é um líder potencial ou um verificador em alguma etapa s da rodada r.[00268] As soon as he learns the B0 certificates,. . . , Br-1, a user i computes Qr-1 and starts to work in round r, checking if he is a potential leader or a verifier in some stages s of round r.

[00269] Supondo que i deve atuar na etapa s, em luz da assincronia discutida, i depende de várias estratégias para garantir que ele tenha informações suficientes antes de ele agir.[00269] Assuming that i must act in step s, in light of the discussed asynchrony, i depends on several strategies to ensure that he has enough information before he acts.

[00270] Por exemplo, ele pode esperar receber pelo menos um determinado número de mensagens dos verificadores da etapa anterior (como em ou esperar por um tempo suficiente para garantir que ele receba as mensagens de suficientemente muitos verificadores da etapa anterior (como em[00270] For example, he can expect to receive at least a certain number of messages from the verifiers in the previous step (as in, or wait long enough to ensure that he receives messages from sufficiently many verifiers in the previous step (as in

[00271] A Semente Qr e o Parâmetro de Retrospectiva k Lembre que, idealmente, as quantidades Qr devem ser aleatórias e independentes, embora baste que as mesmas sejam suficientemente não manipuláveis pelo adversário.[00271] The Seed Qr and the Retrospective Parameter k Remember that, ideally, the quantities Qr should be random and independent, although it is sufficient that they are sufficiently not manipulable by the opponent.

[00272] À primeira vista, poder-se-ia escolher Qr-1 para coincidir com H (PAYr-1). Uma análise elementar revela, entretanto, que usuários maliciosos podem se aproveitar desse mecanismo de seleção. 6 Algum esforço adicional mostra que inúmeras outras alternativas, com base nas quantidades de bloco tradicionais, são facilmente exploráveis pelo Encontra-se no início da rodada r — 1. Assim, Qr-2 = PAYr-2 é publicamente 6 conhecido, e o Adversário sabe privadamente quem são os líderes potenciais que ele controla. Supõe-se que o adversário controla 10% dos usuários, e que, com uma probabilidade bastante alta, um usuário malicioso w é o líder potencial da rodada r — 1. Isto é, supõe-se que H (SIGw (r — 2, 1, Qr-2)) é tão pequeno que é altamente improvável que um líder potencial honesto seja realmente o líder da rodada r — 1. (Lembre-se que, já que foram escolhidos líderes potenciais por meio de um mecanismo de sorteio criptográfico secreto, o Adversário não sabe quem são os líderes potenciais honestos). O adversário, portanto, está na posição invejável de escolher o conjunto de pagamentos PAY' que ele quer tornar o mesmo o conjunto de pagamentos oficial da rodada r - 1. Entretanto, ele pode fazer mais. Ele pode também garantir que, com alta probabilidade, (*) um de seus usuários maliciosos sejam o líder também da rodada r, de modo que ele possa selecionar livremente qual será o PAYr. (E assim por diante. Pelo menos por um longo tempo, isto é, enquanto esses eventos de alta probabilidade realmente ocorrem). Para garantir (*), o Adversário age conforme segue. Deixar que PAY' seja o conjunto de pagamentos que o Adversário prefere para a rodada r - 1. Então, ele computa H(PAY') e verifica se, para algum jogador já malicioso z, SIG z(r, 1, H(PAY')) é particularmente pequeno, isto é, pequeno o suficiente para que, com probabilidade bastante alta z, seja o líder da rodada r. Se esse for o caso, então, ele instrui w a escolher seu bloco candidato para ser . De outro modo, ele tem dois outros usuários maliciosos x e y para continuar gerando um novo pagamento um a partir do outro, até, para algum usuário malicioso z (ou até mesmo para algum usuário fixo z), ser particularmente pequeno também. Esse experimento parará bem rapidamente. E quando o mesmo para, o Adversário solicita que w proponha o bloco candidato[00272] At first glance, one could choose Qr-1 to match H (PAYr-1). An elementary analysis reveals, however, that malicious users can take advantage of this selection mechanism. 6 Some additional effort shows that countless other alternatives, based on traditional block quantities, are easily exploitable by being found at the beginning of round r - 1. Thus, Qr-2 = PAYr-2 is publicly known, 6 and the Opponent privately knows who the potential leaders he controls are. It is assumed that the opponent controls 10% of the users, and that, with a very high probability, a malicious user w is the potential leader of the round r - 1. That is, it is assumed that H (SIGw (r - 2, 1, Qr-2)) is so small that it is highly unlikely that an honest potential leader will actually be the leader of the r - 1 round. (Remember that since potential leaders were chosen through a secret cryptographic draw mechanism , the Adversary doesn't know who the potential honest leaders are). The opponent, therefore, is in the enviable position of choosing the PAY payout set that he wants to make the official payout set for round r - 1 the same. However, he can do more. He can also ensure that, with high probability, (*) one of his malicious users is also the leader of round r, so that he can freely select which PAYr will be. (And so on. At least for a long time, that is, as long as these high probability events actually occur). To guarantee (*), the Opponent acts as follows. Let PAY 'be the set of payouts that the Opponent prefers for round r - 1. Then, he computes H (PAY') and checks whether, for any already malicious player z, SIG z (r, 1, H (PAY ')) is particularly small, that is, small enough that, with a fairly high probability z, is the leader of round r. If this is the case, then he instructs w to choose his candidate block to be. Otherwise, he has two other malicious users x and y to continue generating a new payment from each other, until, for some malicious user z (or even for some fixed user z), he is particularly small as well. This experiment will stop very quickly. And when it stops, the Opponent asks w to propose the candidate block

Adversário para garantir que líderes maliciosos sejam bastante frequentes. Em vez disso, define-se específica e indutivamente a nova quantidade Qr de modo a ter a capacidade de provar que a mesma é não manipulável pelo Adversário. A saber, se Br não for o bloco vazio, e de outro modo.Opponent to ensure that malicious leaders are frequent. Instead, the new quantity Qr is specifically and inductively defined in order to have the ability to prove that it is not manipulable by the Adversary. Namely, if Br is not the empty block, and otherwise.

[00273] A intuição do motivo de essa construção de Qr funcionar é conforme segue. Suponha por um momento que Qr-1 é verdadeiramente aleatória e independentemente selecionado. Então, será também Qr? Quando é honesto, a resposta é (a grosso modo) sim. Isso é assim devido ao fato de que[00273] The intuition of why this construction of Qr works is as follows. Suppose for a moment that Qr-1 is truly random and independently selected. So, is it also Qr? When you are honest, the answer is (roughly) yes. This is because of the fact that

[00274] é uma função aleatória. Quando é malicioso, entretanto, Qr não é mais univocamente definido a partir de Qr-1 e Há pelo menos dois valores separados para Qr. Um continua a ser e o outro é H(Qr-1,r). Primeiramente, argumenta-se que, embora a segunda escolha seja arbitrária de algum modo, uma segunda escolha é absolutamente mandatória. A razão para isso é que um malicioso pode sempre fazer com que blocos candidatos totalmente diferentes sejam recebidos pelos verificadores honestos da segunda etapa.7 Uma vez que isso for o caso, pode ser fácil garantir que o bloco ultimamente acordado por meio do BA da rodada r será o bloco padrão e, assim, não conterá a assinatura digital de ninguém de Qr-1. Mas o sistema deve continuar e, para isso, precisa de um líder para a rodada r. Se esse líder for automática e abertamente 7 Por exemplo, para manter isso simples (mas extremo), "quando o tempo da segunda etapa está quase expirando", poderia enviar diretamente por e-mail um bloco candidato diferente Bi a cada usuário i. Desse modo, quem quer que sejam os verificadores da etapa 2, eles receberão blocos totalmente diferentes.[00274] is a random function. When it is malicious, however, Qr is no longer uniquely defined from Qr-1 and there are at least two separate values for Qr. One remains and the other is H (Qr-1, r). First, it is argued that, although the second choice is somewhat arbitrary, a second choice is absolutely mandatory. The reason for this is that a malicious one can always cause completely different candidate blocks to be received by honest second-stage verifiers.7 Once this is the case, it can be easy to ensure that the block recently agreed through the round's BA r will be the standard block and thus will not contain anyone's digital signature of Qr-1. But the system must continue and, for that, it needs a leader for round r. If that leader is automatically and openly 7 For example, to keep it simple (but extreme), "when the time for the second stage is almost expiring", you could directly email a different candidate block Bi to each user i. In this way, whoever the verifiers in step 2 are, they will receive totally different blocks.

selecionado, então, o Adversário o corromperá trivialmente. Se for selecionado pela Qr-1 anterior por meio do mesmo processo, então, será novamente o líder na rodada r + 1. Propõe-se especificamente usar o mesmo mecanismo de sorteio criptográfico secreto, mas aplicado a uma nova quantidade Q: a saber, H(Qr-1,r). Ter essa quantidade como a saída de H garante que a saída seja aleatória, e incluir r como a segunda entrada de H, enquanto todos os outros usos de H têm ou uma única entrada ou pelo menos três entrada, “garante” que tal Qr é independentemente selecionada. Novamente, a escolha específica de Qr alternativa não importa, o que importa é que tem duas escolhas para Qr, e, assim, ele pode duplicar suas chances de ter outro usuário malicioso como o próximo líder.selected, then the Opponent will trivially corrupt you. If selected by the previous Qr-1 through the same process, then you will again be the leader in round r + 1. It is specifically proposed to use the same secret cryptographic draw mechanism, but applied to a new quantity Q: namely, H (Qr-1, r). Having this quantity as the output of H ensures that the output is random, and including r as the second input of H, while all other uses of H have either a single input or at least three inputs, “guarantee” that such Qr is independently selected. Again, the specific choice of alternative Qr does not matter, what matters is that he has two choices for Qr, and thus he can double his chances of having another malicious user as the next leader.

[00275] As opções para Qr podem ser ainda mais numerosas para o adversário que controla um malicioso. Por exemplo, deixar x, y e z serem três líderes potenciais maliciosos da rodada r[00275] The options for Qr can be even more numerous for the opponent who controls a malicious one. For example, letting x, y, and z be three potential malicious leaders of round r

[00276] de modo que[00276] so that

[00277] e seja particularmente pequeno. Isto é, tão pequeno que haja uma boa chance de que seja menor do que a credencial verificada por hash de cada líder potencial honesto. Então, solicitando-se que x oculte sua credencial, o adversário tem uma boa chance de y se tornar o líder da rodada r — 1. Isso implica que ele tem outra opção para Qr: a saber, . Similarmente, o Adversário pode solicitar que tanto x quanto y retenham suas credenciais, de modo que z se torne o líder da rodada r — 1, ganhando outra opção para Qr: a saber,[00277] and be particularly small. That is, so small that there is a good chance that it is less than the hash verified credential of each potential honest leader. Then, by asking x to hide his credential, the opponent has a good chance of y becoming the leader of round r - 1. This implies that he has another option for Qr: namely,. Similarly, the Opponent may request that both x and y retain their credentials, so that z becomes the leader of the round r - 1, gaining another option for Qr: namely,

[00278] Certamente, entretanto, cada uma dessas e outras opções tem uma chance não zero de falhar, devido ao fato de que o adversário não pode prever o hash das assinaturas digitais dos usuários potenciais honestos.[00278] Certainly, however, each of these and other options has a non-zero chance of failing, due to the fact that the adversary cannot predict the hash of the digital signatures of potential honest users.

[00279] Uma análise do tipo cadeia de Markov cuidadosa mostra que, não importa quais opções o adversário escolhe fazer na rodada r — 1, contanto que ele não possa injetar novos usuários no sistema, ele não pode diminuir a probabilidade de um usuário honesto ser o líder da rodada r + 40 muito abaixo de h. Essa é a razão pela qual é exigido que os líderes potenciais da rodada r sejam usuários já existentes na rodada r — k. É um modo de garantir que, na rodada r — k, o adversário não possa alterar em muito a probabilidade de que um usuário honesto se torne o líder da rodada r. De fato, não importa quais usuários ele possa adicionar ao sistema nas rodadas r — k a r, eles são inelegíveis para se tornarem líderes potenciais (e, a fortiori, o líder) da rodada r. Assim, o parâmetro de retrospectiva k é, ultimamente, um parâmetro de segurança. (Embora, como pode se ver na seção ??, o mesmo possa também ser um tipo de “parâmetro de conveniência”).[00279] A careful Markov chain analysis shows that, no matter what options the opponent chooses to make in round r - 1, as long as he cannot inject new users into the system, he cannot decrease the likelihood of an honest user being the leader of the round r + 40 far below h. This is the reason why potential leaders in round r are required to be existing users in round r - k. It is a way of ensuring that, in round r - k, the opponent cannot change the probability that an honest user will become the leader of round r. In fact, no matter what users he may add to the system in rounds r - k through r, they are ineligible to become potential leaders (and, a fortiori, the leader) of round r. Thus, the retrospective parameter k is ultimately a safety parameter. (Although, as you can see in the ?? section, it can also be a type of "convenience parameter").

[00280] Chaves Temporária Embora a execução do protocolo não possa gerar uma bifurcação, exceto com probabilidade insignificante, o adversário poderia gerar uma bifurcação, no r-ésimo bloco, após o bloco legítimo r ter sido gerado.[00280] Temporary Keys Although the execution of the protocol cannot generate a bifurcation, except with insignificant probability, the opponent could generate a bifurcation, in the r-th block, after the legitimate r block has been generated.

[00281] Aproximadamente, uma vez que Br foi gerado, o Adversário aprendeu quem são os verificadores de cada etapa da rodada r. Assim, ele poderia, portanto, corromper todos eles e obrigá-los a certificar um novo bloco . Já que esse bloco falso pode ser propagado apenas após o legítimo, os usuários que têm prestado atenção não seriam enganados.8 No entanto, seria sintaticamente correto, e é desejado que seja impedido 8 Considere corromper o âncora de notícias de uma grande rede de TV e produzir e transmitir hoje um noticiário que mostra a secretária Clinton ganhando a última eleição presidencial. A maioria reconheceria isso como uma farsa. Mas alguém saindo de um coma pode ser enganada.[00281] Approximately, once Br has been generated, the Opponent has learned who the verifiers of each stage of round r are. Thus, it could therefore corrupt all of them and compel them to certify a new block. Since this fake block can only be propagated after the legitimate one, users who have been paying attention would not be deceived.8 However, it would be syntactically correct, and it is desired to be prevented 8 Consider corrupting the news anchor of a major TV network and produce and broadcast today a newscast that shows Secretary Clinton winning the last presidential election. Most would recognize this as a scam. But someone coming out of a coma can be tricked.

de ser fabricado.to be manufactured.

[00282] Faz-se isso por meio de uma nova regra. Essencialmente, os membros do conjunto de verificador SVr,s de uma etapa s da rodada r usam chaves públicas temporárias para assinar digitalmente suas mensagens. Essas chaves são de uso único apenas e suas chaves secretas correspondentes são destruídas uma vez que usadas. Desse modo, se um verificador for corrompido posteriormente, o Adversário não pode forçá-lo a assinar qualquer outra coisa que ele não tenha assinado originalmente.[00282] This is done by means of a new rule. Essentially, members of the SVr, one-step verifier set of round r use temporary 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 verifier is subsequently corrupted, the Opponent cannot force him to sign anything else that he did not originally sign.

[00283] Naturalmente, deve-se garantir que seja impossível para o Adversário computar uma nova chave e convencer um usuário honesto de que a mesma é a chave temporária certa do verificador i ∈ SVr,s para uso na etapa s.[00283] Of course, it must be ensured that it is impossible for the Opponent to compute a new key and convince an honest user that it is the right temporary key for the i ∈ SVr, s verifier for use in step s.

4.2 SUMÁRIO COMUM DE NOTAÇÕES, NOÇÕES E4.2 COMMON SUMMARY OF NOTES, NOTIONS AND

PARÂMETROSPARAMETERS

[00284] Notações[00284] Notations

[00285] • r ≥ 0: o número de rodada atual.[00285] • r ≥ 0: the current round number.

[00286] • s ≥ 1: o número de etapa atual na rodada r.[00286] • s ≥ 1: the current stage number in round r.

[00287] • Br: o bloco gerado na rodada r.[00287] • Br: the block generated in round r.

[00288] • PKr: o conjunto de chaves públicas ao final da rodada r — 1 e no início da rodada r.[00288] • PKr: the set of public keys at the end of round r - 1 and at the beginning of round r.

[00289] • Sr: a situação do sistema ao final da rodada r — 1 e no início da rodada r.9[00289] • Sr: the system situation at the end of round r - 1 and at the beginning of round r.9

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

[00291] • líder da rodada r. escolhe o conjunto de Em um sistema que não é síncrono, a noção do "final da rodada r — 1" e 9 "início da rodada r" precisa ser cuidadosamente definida. Matematicamente, PK r e Sr são computados a partir da situação inicial S0 e dos blocos B1, . . . , Br-1.[00291] • leader of the round r. choose the set of In a system that is not synchronous, the notion of "end of round r - 1" and 9 "beginning of round r" needs to be carefully defined. Mathematically, PK r and Sr are computed from the initial situation S0 and blocks B1,. . . , Br-1.

pagamentos PAYr da rodada r (e determina a próxima Qr).PAYr payments of round r (and determines the next Qr).

[00292] • Qr: a semente da rodada r, uma quantidade (isto é, cadeia binária) que é gerada no final da rodada r e é usada para escolher os verificadores para a rodada r + 1. Qr é independente dos conjuntos de pagamentos nos blocos e não pode ser manipulado por[00292] • Qr: the seed of round r, a quantity (ie, binary chain) that is generated at the end of round r, is used to choose the verifiers for round r + 1. Qr is independent of the sets of payments in blocks and cannot be manipulated by

[00293] • SVr,s: o conjunto de verificadores escolhido para a etapa s da rodada r.[00293] • SVr, s: the set of verifiers chosen for step s of round r.

[00294] • SVr: o conjunto de verificadores escolhido para a rodada r,[00294] • SVr: the set of verifiers chosen for round r,

[00295] • MSVr,s e HSVr,s: respectivamente, o conjunto de verificadores maliciosos e o conjunto de verificadores honestos em SVr,s.[00295] • MSVr, s and HSVr, s: respectively the set of malicious scanners and the set of honest scanners in SVr, s.

eand

[00296] • 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.[00296] • 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.

[00297] Note que n1 << n, já que se precisa de pelo menos um membro honesto em SVr,1, mas pelo menos uma maioria de membros honestos em cada SVr,s para s > 1.[00297] Note that n1 << n, since you need at least one honest member in SVr, 1, but at least a majority of honest members in each SVr, s for s> 1.

[00298] • h ∈ (0, 1): uma constante maior do que 2/3. H é a razão de honestidade no sistema. Isto é, a fração de usuários honestos ou dinheiro honesto, dependendo da suposição usada, em cada Pkrr é pelo menos h.[00298] • 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 honest money, depending on the assumption used, in each Pkrr is at least h.

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

[00300] • : Uma cadeia especial do mesmo comprimento que a saída de H.[00300] •: A special chain of the same length as the H outlet.

[00301] • F ∈ (0, 1): o parâmetro que especifica a probabilidade de erro permitida. Uma probabilidade ≤ F é considerada “insignificante”, e uma probabilidade ≥ 1 — F é considerada “grande”.[00301] • F ∈ (0, 1): the parameter that specifies the allowed error probability. A probability ≤ F is considered "insignificant", and a probability ≥ 1 - F is considered "large".

[00302] • ph ∈ (0, 1): a probabilidade de que o líder de uma rodada r, é honesto. Idealmente, ph — h. Com a existência do Adversário, o valor de ph será determinado na análise.[00302] • ph ∈ (0, 1): the probability that the leader of a round r, is honest. Ideally, ph - h. With the Opponent's existence, the ph value will be determined in the analysis.

[00303] • o parâmetro de retrospectiva. Isto é, a rodada r — k é quando os verificadores para a rodada r são escolhidos dentre — a 10 saber,[00303] • the retrospective parameter. That is, round r - k is when the checkers for round r are chosen from - to 10,

[00304] • p1 ∈ (0, 1): para a primeira etapa da rodada r, um usuário na rodada r — k é escolhido para estar em SVr,1 com probabilidade[00304] • p1 ∈ (0, 1): for the first stage of round r, a user in round r - k is chosen to be in SVr, 1 with probability

[00305] • p ∈ (0, 1): para cada s > 1 da rodada r, um usuário na rodada r — k é escolhido para estar em SVr,s com probabilidade[00305] • p ∈ (0, 1): for each s> 1 of round r, a user in round r - k is chosen to be in SVr, s with probability

[00306] • CERTr: o certificado para Br. O mesmo é um conjunto de assinaturas tH de H(Br) de verificadores apropriados na rodada r.[00306] • CERTr: the certificate for Br. The same is a set of tH signatures of H (Br) of appropriate verifiers in round r.

[00307] • é um bloco provado.[00307] • is a proven block.

[00308] Um usuário i conhece Br se ele possuir (e verificar de modo bem-sucedido) ambas as partes do bloco provado. Note que o CERTr visto por diferentes usuários pode ser diferente.[00308] A user i knows Br if he has (and successfully checks) both parts of the proven block. Note that the CERTr seen by different users may be different.

[00309] • o tempo (local) em que um usuário i conhece Br. No protocolo de Algorand, cada usuário tem seu próprio relógio. Os relógios de diferentes usuários não precisam estar sincronizados, mas devem ter a mesma velocidade. Apenas para o propósito da análise, considera-se um relógio de referência e se mede os tempos relacionados dos jogadores em relação ao mesmo.[00309] • the time (local) in which a user i knows Br. In the Algorand protocol, each user has his own clock. The clocks of different users do not need to be synchronized, but they must have the same speed. For the purpose of analysis only, a reference clock is considered and the players' related times are measured in relation to it.

[00310] • e , respectivamente, o tempo (local) em que 10 Falando-se estritamente, "r — k" deve ser "max{0,r — k}”.[00310] • and, respectively, the time (local) in which 10 Strictly speaking, "r - k" must be "max {0, r - k}”.

um usuário i inicia e termina sua execução da etapa s da rodada r.a user i starts and ends his execution of step s of round r.

[00311] • Λ e λ: essencialmente, limites superiores para, respectivamente, o tempo necessário para executar a etapa 1 e o tempo necessário para qualquer outra etapa do protocolo de Algorand.[00311] • Λ and λ: essentially, upper limits for, respectively, the time required to perform step 1 and the time required for any other step of the Algorand protocol.

[00312] O parâmetro Λ define o limite superior do tempo para propagar um único bloco de 1 MB.[00312] The parameter Λ defines the upper time limit for propagating a single block of 1 MB.

[00313] O parâmetro λ define o limite superior do tempo para propagar uma pequena mensagem por verificador em uma Etapa s > 1.[00313] The parameter λ defines the upper time limit for propagating a small message per verifier in a Step s> 1.

[00314] Supõe-se que Λ ≤ 4λ.[00314] It is assumed that Λ ≤ 4λ.

[00315] Noções[00315] Notions

[00316] • Seleção de verificador.[00316] • Selection of verifier.

[00317] Para cada rodada r e etapa Cada usuário i ∈ PKr-k computa privadamente sua assinatura com o uso de sua chave de longo prazo e decide se i ∈ SVr,s ou não. Se i ∈ SVr,s, então, é a credencial (r, s) de i, compactamente denotada por[00317] For each round r and stage Each user i ∈ PKr-k privately computes his signature using his long-term key and decides whether i ∈ SVr, s or not. If i ∈ SVr, s, then, is the credential (r, s) of i, compactly denoted by

[00318] Para a primeira etapa da rodada r, SVr,1 e são similarmente definidos, com p substituído por p1. Os verificadores em SVr,1 são líderes potenciais.[00318] For the first stage of the round r, SVr, 1 and are similarly defined, with p replaced by p1. Verifiers in SVr, 1 are potential leaders.

[00319] • Seleção de líder.[00319] • Selection of leader.

[00320] O usuário i ∈ SVr,1 é o líder da rodada r, denotado por para todos os líderes potenciais j ∈ SVr,1. Sempre que os hashes de duas credenciais de jogadores são comparados, no evento improvável de vínculos, o protocolo sempre quebra os vínculos lexicograficamente de acordo com (as chaves públicas de longo prazo dos) líderes potenciais.[00320] User i ∈ SVr, 1 is the leader of round r, denoted by for all potential leaders j ∈ SVr, 1. Whenever the hashes of two player credentials are compared, in the unlikely event of links, the protocol always breaks the links lexicographically according to (the long-term public keys of) potential leaders.

[00321] Por definição, o valor de hash da credencial do jogador é também o menor dentre todos os usuários em PKr-k. Note que um líder potencial não pode decidir privadamente se ele é o líder ou não, sem ver as credenciais dos outros líderes potenciais.[00321] By definition, the hash value of the player's credential is also the lowest of all users in PKr-k. Note that a potential leader cannot privately decide whether he is the leader or not, without seeing the credentials of other potential leaders.

[00322] Já que os valores de hash são uniformes aleatoriamente, quando SVr,1 não é vazio, sempre existe e é honesto com probabilidade de pelo menos h. O parâmetro n1 é grande o suficiente para garantir que cada SVr,1 não seja vazio com grande probabilidade.[00322] Since the hash values are uniformly random, when SVr, 1 is not empty, it always exists and is honest with probability of at least h. Parameter n1 is large enough to ensure that each SVr, 1 is not likely to be empty.

[00323] • Estrutura de bloco.[00323] • Block structure.

[00324] Um bloco não vazio é da forma e um bloco vazio é da forma[00324] A non-empty block is of the form and an empty block is of the form

[00325] Note que um bloco não vazio pode ainda conter um conjunto de pagamentos vazio PAYr, se nenhum pagamento ocorrer nessa rodada ou se o líder for malicioso. Entretanto, um bloco não vazio implica que a identidade de sua credencial e foram todos revelados com o tempo. O protocolo garante que, se o líder for honesto, então, o bloco não será vazio com grande probabilidade.[00325] Note that a non-empty block may still contain an empty PAYr payment set, if no payments occur in that round or if the leader is malicious. However, a non-empty pad implies that your identity and credential have all been revealed over time. The protocol guarantees that, if the leader is honest, then the block is not likely to be empty.

[00326] • Semente Qr.[00326] • Qr seed.

[00327] Se Br não for vazio, então, , de outro modo,[00327] If Br is not empty, then, otherwise,

[00328] Parâmetros[00328] Parameters

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

[00330] — Os verificadores e líderes potenciais da rodada r são selecionados dentre os usuários em PKr-k, em que k é escolhido de modo que o adversário não possa prever Qr-1 de volta à rodada r — k - 1 com probabilidade melhor do que F: de outro modo, ele será capaz de introduzir usuários maliciosos para a rodada r — k, todos os quais serão líderes potenciais/verificadores na rodada r, sucedendo em ter um líder malicioso ou uma maioria maliciosa em SVr,s para algumas etapas s desejadas por ele.[00330] - Checkers and potential leaders of round r are selected from users in PKr-k, where k is chosen so that the opponent cannot predict Qr-1 back to round r - k - 1 with better probability than F: otherwise, he will be able to introduce malicious users to round r - k, all of whom will be potential leaders / verifiers in round r, succeeding in having a malicious leader or a malicious majority in SVr, s for some steps are desired by him.

[00331] — Para a etapa 1 de cada rodada r, n1 é escolhido de modo que, com grande probabilidade,[00331] - For step 1 of each round r, n1 is chosen so that, with great probability,

[00332] • Escolhas exemplificativas de parâmetros importantes.[00332] • Exemplary choices of important parameters.

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

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

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

[00336] • Inicialização do protocolo.[00336] • Initialization of the protocol.

[00337] O protocolo começa no tempo 0 com r = 0. Já que não existe “B-1” ou “CERT-1”, sintaticamente, B-1 é um parâmetro público com seu terceiro componente especificando Q-1, e todos os usuários conhecem B-1 no tempo 0. 5 ALGORAND’1[00337] The protocol starts at time 0 with r = 0. Since there is no “B-1” or “CERT-1”, syntactically, B-1 is a public parameter with its third component specifying Q-1, and all users know B-1 at time 0. 5 ALGORAND'1

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

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

[00340] Na seção ??, é mostrado como substituir a suposição acima pela suposição de Maioria Honesta de Dinheiro.[00340] In the ?? section, it is shown how to replace the above assumption with the honest majority majority assumption.

5.1 NOTAÇÕES E PARÂMETROS ADICIONAIS5.1 ADDITIONAL NOTES AND PARAMETERS

[00341] Notações[00341] Notations

[00342] • o número máximo de etapas no protocolo de BA binário, um múltiplo de 3.[00342] • the maximum number of steps in the binary BA protocol, a multiple of 3.

[00343] • uma variável aleatória que representa o número de testes de Bernoulli necessários para ver um 1, quando cada teste é 1 com probabilidade e há, no máximo m/3 testes.[00343] • a random variable that represents the number of Bernoulli tests needed to see a 1, when each test is 1 with probability and there are at most m / 3 tests.

[00344] Se todos os testes falharem, então, . Lr será usado para definir o limite superior do tempo necessário para gerar o bloco[00344] If all tests fail, then. Lr will be used to define the upper limit of the time required to generate the block

Br.Br.

[00345] • o número de assinaturas necessárias nas condições finais do protocolo.[00345] • the number of signatures required in the final terms of the protocol.

[00346] • CERTr: o certificado para Br. O mesmo é um conjunto de assinaturas tH de H(Br) de verificadores apropriados na rodada r.[00346] • CERTr: the certificate for Br. The same is a set of tH signatures of H (Br) of appropriate verifiers in round r.

[00347] Parâmetros[00347] Parameters

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

[00349] — Para cada etapa s > 1 da rodada r, n é escolhido de modo que, com grande probabilidade, e[00349] - For each stage s> 1 of round r, n is chosen so that, with great probability, and

[00350] Quando mais próximo de 1 o valor de h está, menor n precisa ser. Em particular, usa-se (variantes de) limites de Chernoff para garantir que as condições desejadas se mantenham com grande probabilidade.[00350] 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 are very likely to remain.

[00351] — m é escolhido de modo que Lr < m/3 com grande probabilidade.[00351] - m is chosen so that Lr <m / 3 is very likely.

[00352] • Escolhas exemplificativas de parâmetros importantes.[00352] • Exemplary choices of important parameters.

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

[00354] — n ≈ 1500, k = 40 e m = 180.[00354] - n ≈ 1500, k = 40 and m = 180.

5.2 IMPLANTAÇÃO DE CHAVES TEMPORÁRIAS EM ALGORAND’15.2 IMPLEMENTATION OF TEMPORARY KEYS IN ALGORAND'1

[00355] Conforme já mencionado, deseja-se que um verificador i ∈ SVr,s assine digitalmente sua mensagem da etapa s na rodada r, em relação a uma chave pública temporária com o uso de uma chave secreta temporária que ele destrói prontamente após o uso. Assim, é necessário um método eficiente para garantir que cada usuário possa verificar que é, de fato, a chave para verificar a assinatura de i de .[00355] As already mentioned, it is desired that a verifier i ∈ SVr, s digitally sign his message of step s in round r, in relation to a temporary public key with the use of a temporary secret key which he destroys promptly after the use. Thus, an efficient method is needed to ensure that each user can verify that it is, in fact, the key to verify i de's signature.

Isso é feito por um (ao melhor entendimento) novo uso de esquemas de assinatura baseada em identidade.This is done by a (to the best understanding) new use of identity-based subscription schemes.

[00356] A 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 jogador U, A computa, por meio da SMK, uma chave de assinatura secreta skU em relação à chave pública U1, e fornece privadamente skU a U. (De fato, em um esquema de assinatura digital baseada em identidade, a chave pública de um usuário U é o próprio U!) Desse modo, se A destruir a SMK após computar as chaves secretas dos usuários que ele deseja habilitar a produzir assinaturas digitais e não manter qualquer chave secreta computada, então, U é o único que pode assinar digitalmente as mensagens em relação à chave pública U. Assim, qualquer um que saiba “o nome de U” sabe automaticamente a chave pública de U e pode, assim, verificar as assinaturas de U (usando possivelmente também a chave mestre pública PMK).[00356] 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 player, A computes, via SMK, a secret signature key skU in relation to the public key U1, and privately provides skU to U. (In fact, in a digital signature scheme based on in identity, a U user's public key is U itself!) So, if A destroys the SMK after computing the secret keys of the users he wants to enable to produce digital signatures and not keep any secret keys computed, then U is the only one who can digitally sign messages in relation to public key U. Thus, anyone who knows “the name of U” automatically knows U's public key and can thus verify U's signatures (possibly also using the public master key PMK).

[00357] Neste pedido, a autoridade A é o usuário i, e o conjunto de todos os usuários possíveis U coincide com o par de rodada-etapa (r, s) em — por exemplo — em que r' é uma determinada rodada, e m + 3 o limite superior para o número de etapas que podem ocorrer dentro de uma rodada. Desse modo, de modo que todos que veem a assinatura de i possam, com grande probabilidade, verificar imediatamente o mesmo para o primeiro milhão de rodadas r após r'.[00357] In this order, authority A is user i, and the set of all possible users U coincides with the round-step pair (r, s) in - for example - where r 'is a given round, at + 3 the upper limit for the number of steps that can occur within a round. In this way, so that everyone who sees the signature of i can, with great probability, immediately verify the same for the first million rounds r after r '.

[00358] Em outras palavras, i gera primeiro PMK e SMK. Então, ele publica que PMK é a chave pública mestre de i para qualquer rodada r e usa SMK para produzir e privadamente armazenar a chave secreta para cada triplo (i, r, s) ∈ S. Com isso feito, ele destrói a SMK.[00358] In other words, i first generates PMK and SMK. He then publishes that PMK is the master public key of i for any round r and uses SMK to produce and privately store the secret key for each triple (i, r, s) ∈ S. With that done, he destroys the SMK.

Se ele determinar que ele não é parte de SVr,s, então, i pode deixar sozinho (na medida que o protocolo não exige que ele autentique qualquer mensagem na etapa s da rodada r). De outro modo, i usa primeiramente para assinar digitalmente sua mensagem e, então, destróiIf it determines that it is not part of SVr, s, then i can leave it alone (as the protocol does not require it to authenticate any message in step s of round r). Otherwise, i first uses it to digitally sign your message and then destroys

[00359] Note que i pode publicar sua primeira chave mestre pública quando ele entra pela primeira vez no sistema. Isto é, o mesmo pagamento que leva i ao sistema (em uma rodada r' ou em uma rodada próxima a r') pode também especificar, na solicitação de i, que a chave mestre pública de i para qualquer rodada seja PMK —por exemplo, incluindo um par da forma[00359] Note that i can publish his first public master key when he first enters the system. That is, the same payment that takes i to the system (in a round r 'or in a round close to r') can also specify, in the request for i, that the public master key of i for any round is PMK —for example , including a pair of the shape

[00360] Note também que, já que m+3 é o número máximo de etapas em uma rodada, supondo que uma rodada leva um minuto, o stash das chaves temporárias assim produzidas durará para i por quase dois anos. Ao mesmo tempo, essas chaves secretas temporárias não demorarão muito para serem produzidas por i. Com o uso de um sistema baseado em curva elíptica com 32B chaves, cada chave secreta é computada em alguns microssegundos. Assim, se m + 3 = 180, então, todas as 180M chaves secretas podem ser computadas em menos do que uma hora.[00360] Also note that, since m + 3 is the maximum number of steps in a round, assuming that a round takes one minute, the stash of temporary keys thus produced will last for i for almost two years. At the same time, these temporary secret keys will not take long to be produced by i. Using an elliptical curve-based system with 32B keys, each secret key is computed in a few microseconds. So, if m + 3 = 180, then all 180M secret keys can be computed in less than an hour.

[00361] Quando a rodada atual está se aproximando de para manipular o próximo milhão de rodadas, i gera um novo par de e informa qual é o seu próximo stash de chaves temporárias fazendo-se com que —por exemplo— insira um novo bloco, ou como uma “transação” separada ou como algumas informações adicionais que são parte de um pagamento. Fazendo-se isso, i informa todos de que ele/ela deve usar PMK' para verificar as assinaturas temporárias de i no próximo milhão de rodadas. E assim por diante.[00361] When the current round is approaching to handle the next million rounds, i generates a new pair of and informs you of your next temporary key stash by having - for example - insert a new block, either as a separate “transaction” or as some additional information that is part of a payment. In doing so, i informs everyone that he / she should use PMK 'to check i's temporary signatures for the next million rounds. And so on.

[00362] (Note que, após essa abordagem básica, outros modos para implantar as chaves temporárias sem usar assinaturas baseadas em identidade são certamente possíveis. Por exemplo, por meio de árvores de Merkle.11)[00362] (Note that, after this basic approach, other ways to deploy temporary keys without using identity-based signatures are certainly possible. For example, through Merkle trees.11)

[00363] Outros modos para implantar as chaves temporárias são certamente possíveis — por exemplo, por meio de árvores de Merkle.[00363] Other ways to deploy temporary keys are certainly possible - for example, through Merkle trees.

5.3 CORRESPONDÊNCIA DAS ETAPAS DE ALGORAND’1 COM AQUELAS DE BA*5.3 CORRESPONDENCE OF THE STEPS OF ALGORAND'1 WITH THOSE OF BA *

[00364] Conforme foi dito, uma rodada em tem no máximo m + 3 etapas.[00364] As stated, a round in has a maximum of m + 3 stages.

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

[00366] Lembre-se que essa credencial identifica explicitamente i. Isso é assim devido ao fato de que[00366] Remember that this credential explicitly identifies i. This is because of the fact that

[00367] O verificador potencial i também propaga, como parte de sua mensagem, sua assinatura digital apropriada de . Não lidando com um pagamento ou uma credencial, essa assinatura de i é relacionada a sua chave pública temporária , isto é, ele propaga[00367] The potential verifier i also propagates, as part of its message, its appropriate digital signature of. Not dealing with a payment or a credential, this i signature is related to your temporary public key, that is, it propagates

[00368] Dadas as convenções, em vez de propagar e ele poderia ter propagado Entretanto, na análise, 11 Nesse método, i gera um par de chaves secreta-pública para cada par de rodada-etapa (r,s) em — por exemplo — Então, ele ordena essas chaves públicas de um modo canônico, armazena a j-ésima chave pública na j-ésima folha de uma árvore de Merkle e computa o valor raiz Ri, que ele publica. Quando ele quer assinar uma mensagem relacionada à chave i não apenas fornece a assinatura real, mas também a trajetória de autenticação para em relação a Ri. Note que essa trajetória de autenticação também prova que é armazenada na j-ésima folha. A partir dessa ideia, o resto dos detalhes pode ser facilmente preenchido.[00368] Given the conventions, instead of propagating and it could have propagated However, in the analysis, 11 In this method, i generates a pair of public-secret keys for each round-step pair (r, s) in - for example - Then, he orders these public keys in a canonical way, stores the j-th public key on the j-th leaf of a Merkle tree and computes the root value Ri, which he publishes. When he wants to sign a message related to the key i not only provides the actual signature, but also the authentication path for in relation to Ri. Note that this authentication path also proves that it is stored on the j-th sheet. From that idea, the rest of the details can be easily completed.

precisa-se ter acesso explícito ayou need to have explicit access to

[00369] ETAPAS 2. Nessa etapa, cada verificador i define para ser o líder potencial cuja credencial verificada por hash é a menor e para ser o bloco proposto por . Já que, visando a eficiência, se deseja concordar com H(Br), em vez de diretamente com Br, i propaga a mensagem que ele teria propagado na primeira etapa de BA* com valor inicial Isto é, ele propaga após assinar temporariamente o mesmo, obviamente. (A saber, após assinar o mesmo em relação à chave pública temporária certa, que nesse caso é Obviamente também, i também transmite sua própria credencial.[00369] STEPS 2. In this step, each verifier i defines to be the potential leader whose hash verified credential is the lowest and to be the block proposed by. Since, for efficiency, if you want to agree with H (Br), instead of directly with Br, i propagate the message that he would have propagated in the first stage of BA * with initial value That is, he propagates after temporarily signing the same , obviously. (Namely, after signing the same in relation to the right temporary public key, which in this case is Obviously also, i also transmits its own credential.

[00370] Já que a primeira etapa de BA* consiste na primeira etapa do protocolo consenso classificado GC, a etapa 2 de Algorand' corresponde à primeira etapa do GC.[00370] Since the first stage of BA * consists of the first stage of the consensus protocol classified GC, step 2 of Algorand 'corresponds to the first stage of the GC.

[00371] ETAPAS 3. Nessa etapa, cada verificador i ∈ SVr,2 executa a segunda etapa de BA*. Isto é, ele envia a mesma mensagem que ele teria enviado na segunda etapa do GC. Novamente, a mensagem de i é temporariamente assinada e acompanhada da credencial de i. (De agora em diante, será omitido que um verificador assina temporariamente sua mensagem e também propaga sua credencial).[00371] STEPS 3. In this step, each verifier i ∈ SVr, 2 performs the second stage of BA *. That is, he sends the same message that he would have sent in the second stage of the GC. Again, i's message is temporarily signed and accompanied by i's credential. (From now on, it will be omitted that a verifier temporarily signs your message and also propagates your credential).

[00372] ETAPA 4. Nessa etapa, cada verificador i ∈ SVr,4 computa a saída de GC, (vi, gi) e assina temporariamente e envia a mesma mensagem que ele enviaria na terceira etapa de BA*, isto é, na primeira etapa de BBA*, com o bit inicial 0 se gi= 2, e 1 de outro modo.[00372] STEP 4. In this step, each verifier i ∈ SVr, 4 computes the GC output, (vi, gi) and temporarily signs and sends the same message that he would send in the third stage of BA *, that is, in the first BBA * step, with the initial bit 0 if gi = 2, and 1 otherwise.

[00373] ETAPA s = 5, . . . , m + 2. Tal etapa, se for alcançada, corresponde à etapa s - 1 de BA* e, assim, à etapa s — 3 de BBA*.[00373] STEP s = 5,. . . , m + 2. Such a stage, if reached, corresponds to stage s - 1 of BA * and thus stage s - 3 of BBA *.

[00374] Já 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 é alcançado por informações que provam que o bloco Br já foi escolhido. Nesse caso, i interrompe sua própria execução da rodada r de Algorand' e começa a executar suas instruções da rodada-(r + 1).[00374] 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 is reached by information that prove that the Br block has already been chosen. In this case, i interrupts his own execution of round r of Algorand 'and begins to execute his instructions for round- (r + 1).

[00375] Consequentemente, as instruções de um verificador adicionalmente às instruções que correspondem à etapa s — 3 de BBA*, incluem verificar se a execução de BBA* parou em uma etapa s' anterior. Já que BBA* pode apenas parar em uma etapa Moeda Fixada em 0 ou em uma etapa Moeda Fixada em 1, as instruções distinguem se[00375] Consequently, the instructions of a verifier in addition to the instructions corresponding to step s - 3 of BBA *, include verifying whether the execution of BBA * has stopped in a previous step s'. Since BBA * can only stop at a Currency Set at 0 stage or a Currency Set at 1 stage, the instructions distinguish whether

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

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

[00378] De fato, no caso A, o bloco Br não está vazio, e, assim, instruções adicionais são necessárias para garantir que i reconstrua apropriadamente Br, juntamente com seu certificado apropriado CERTr. No caso B, o bloco Br está vazio, e, assim, i é instruído a definir e computar CERTr.[00378] In fact, in case A, the Br block is not empty, so additional instructions are needed to ensure that i properly reconstructs Br, along with its appropriate CERTr certificate. In case B, block Br is empty, so i is instructed to define and compute CERTr.

[00379] Se, durante sua execução da etapa s, i não vir qualquer evidência de que o bloco Br já foi gerado, então, ele envia a mesma mensagem que ele teria enviado na etapa s — 3 de BBA*.[00379] If, during its execution of step s, i does not see any evidence that the Br block has already been generated, then it sends the same message that it would have sent in step s - 3 of BBA *.

[00380] ETAPA m + 3. Se, durante a etapa vir que o bloco Br já foi gerado em uma etapa s' anterior, então, ele procede assim como explicado acima.[00380] STEP m + 3. If, during the step, you see that the Br block has already been generated in a previous s' step, then it proceeds as explained above.

[00381] De outro modo, em vez de enviar a mesma mensagem que ele poderia ter enviado na etapa m de BBA*, i é instruído, com base nas informações em sua posse, a computar Br e seu certificado correspondente CERTr.[00381] Otherwise, instead of sending the same message that he could have sent in stage m of BBA *, i is instructed, based on the information in his possession, to compute Br and its corresponding CERTr certificate.

[00382] Lembre-se, de fato, que se define o limite superior do número total de etapas de uma rodada por m + 3.[00382] Remember, in fact, that the upper limit of the total number of steps in a round per m + 3 is defined.

5.4 O PROTOCOLO REAL5.4 THE REAL PROTOCOL

[00383] Lembre-se que, em cada s de uma rodada r, um verificador i ∈ SVr,s usa seu par de chaves pública-secreta de longo prazo para produzir sua credencial, assim como no caso s = 1. O verificador i usa sua chave secreta temporária para assinar sua mensagem (r, s) Para simplicidade, quando r e s são claros, escreve-se em vez de para denotar a assinatura temporária apropriada de i de um valor x na etapa s da rodada r e ESIGi(x) em vez de para denotar . Etapa 1: Proposta de Bloco[00383] Remember that in each s of a round r, a verifier i ∈ SVr, s uses its long-term public-secret key pair to produce its credential, just as in the case s = 1. The verifier i use your temporary secret key to sign your message (r, s) For simplicity, when res are clear, write instead of to denote the appropriate temporary signature of i of a value x in step s of the re ESIGi (x) round instead of to denote. Step 1: Block Proposal

[00384] As instruções para cada usuário i ∈ PKr-k: O usuário i inicia sua própria Etapa 1 da rodada r assim que tem conhecimento de Br-1.[00384] Instructions for each user i ∈ PKr-k: User i starts his own Stage 1 of round r as soon as he is aware of Br-1.

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

[00386] • Se então, i interrompe sua própria execução da Etapa 1 imediatamente.[00386] • If so, i interrupts its own execution of Step 1 immediately.

[00387] • Se i ∈ SVr,1, isto é, se i for um líder potencial, então, ele coleta os pagamentos da rodada r que foram propagados a ele até o momento e computa um conjunto de pagamentos máximo a partir dos mesmos. Depois, ele computa seu “bloco candidato” Finalmente, ele computa a mensagem destrói sua chave secreta temporária e, então, propaga[00387] • If i ∈ SVr, 1, that is, if i is a potential leader, then he collects the payments from round r that have been propagated to him so far and computes a set of maximum payments from them. Then, it computes its “candidate block” Finally, it computes the message destroys its temporary secret key and then propagates

[00388] Observação. Na prática, para encurtar a execução global da etapa 1, é importante que as mensagens (r, 1) sejam seletivamente propagadas. Isto é, para cada usuário i no sistema, para a primeira mensagem (r, 1) que ele recebe e verifica com sucesso,12 o jogador i propaga a mesma como de costume. Para todas as outras mensagens (r, 1) que o jogador i recebe e verifica com sucesso, ele propaga essas apenas se o valor de hash da credencial que as mesmas contêm for o menor dentre os valores de hash das credenciais contidas em todas as mensagens (r, 1) que ele recebeu e verificou com sucesso até o momento. Além disso, conforme sugerido por Georgios Vlachos, é útil que cada líder potencial i também propague sua credencial separadamente: essas mensagens pequenas viajam mais rápido que blocos, garantem propagação oportuna dos , em que as credenciais contidas têm valores de hash pequenos, enquanto fazem aqueles com valores de hash grandes desaparecerem rapidamente.[00388] 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 he receives and successfully checks, 12 player i propagates it as usual. For all other messages (r, 1) that player i successfully receives and verifies, he propagates these only if the hash value of the credential they contain is the least of the hash values of the credentials contained in all messages (r, 1) that he has successfully received and verified so far. Furthermore, as suggested by Georgios Vlachos, it is useful that each potential leader i also propagate his credential separately: these small messages travel faster than blocks, guarantee timely propagation of those, where the credentials contained have small hash values, while making those with large hash values disappear quickly.

[00389] Etapa 2: A Primeira Etapa do Protocolo de Consenso Classificado GC[00389] Stage 2: The First Stage of the GC Classified Consensus Protocol

[00390] As instruções para cada usuário i ∈ PKr-k: O usuário i inicia sua própria Etapa 2 da rodada r assim que tem conhecimento de Br-1.[00390] Instructions for each user i ∈ PKr-k: User i starts his own Step 2 of round r as soon as he is aware of Br-1.

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

[00392] • Se então, i interrompe sua própria execução da Etapa 2 imediatamente.[00392] • If so, i interrupts its own execution of Step 2 immediately.

[00393] • Se então após aguardar uma quantidade de tempo i atua conforme segue.[00393] • If then after waiting for a certain amount of time i act as follows.

[00394] 1. Ele encontra o usuário de modo que, para todas as credenciais que são parte das mensagens (r, l) 12 Ou seja, todas as assinaturas estão corretas e tanto o bloco quanto seu hash são válidos — embora i não verifique se o conjunto de pagamentos incluído é máximo para seu propositor ou não.[00394] 1. It finds the user so that, for all credentials that are part of the messages (r, l) 12 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 for your proposer or not.

verificadas com sucesso, ele tenha recebido até o momento.13successfully verified, he has received so far.13

[00395] 2. Se ele tiver recebido de uma mensagem válida 14 , então i define de outro modo i define 15[00395] 2. If he received from a valid message 14, then i define otherwise i define 15

[00396] 3. i computa a mensagem destrói sua chave secreta temporária e, então, propaga[00396] 3. i computes the message destroys your temporary secret key and then propagates

[00397] Etapa 3: A Segunda Etapa de GC[00397] Stage 3: The Second Stage of the GC

[00398] As instruções para cada usuário i ∈ PKr-k: O usuário i inicia sua própria etapa 3 da rodada r assim que tem conhecimento de Br-1.[00398] Instructions for each user i ∈ PKr-k: User i starts his own step 3 of round r as soon as he is aware of Br-1.

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

[00400] • Se então, i interrompe sua própria execução da etapa 3 imediatamente.[00400] • If so, i interrupts its own execution of step 3 immediately.

[00401] • Se i ∈ Svr,3,r,3, então após aguardar uma quantidade de tempo i atua conforme segue.[00401] • If i ∈ Svr, 3, r, 3, then after waiting for an amount of time i acts as follows.

[00402] 1. Se existir um valor de modo que, entre todas as mensagens válidas que ele recebeu, mais de 2/3 das mesmas são da forma sem qualquer contradição,16 então, ele computa a 13 Essencialmente, o usuário i decide privadamente que o líder da rodada r é o usuário l. 14 Novamente, as assinaturas do jogador e os hashes são todos verificados com sucesso, e em é um conjunto de pagamentos válidos para a rodada r — embora i não verifique se é máximo para ou não. 15 A mensagem sinaliza que o jogador i considera como sendo o hash do bloco seguinte ou considera o bloco seguinte como estando vazio. 16 Ou seja, ele não recebeu duas mensagens válidas contendo e um j diferente, respectivamente, de um jogador j. Doravante, exceto nas Condições Finais definidas adiante, sempre que um jogador honesto quiser mensagens de uma dada forma, as mensagens que contradizem umas às outras não são nunca contadas ou consideradas válidas.[00402] 1. If there is a value so that, among all the valid messages he received, more than 2/3 of them are of the form without any contradiction, 16 then he computes the 13 Essentially, the user i decides privately that the leader of round r is user l. 14 Again, the player's signatures and hashes are all successfully verified, and em is a set of payments valid for round r - although i don't check whether it is maximum for or not. 15 The message signals that player i considers the next block hash or considers the next block to be empty. 16 That is, he did not receive two valid messages containing and a different j, respectively, from player j. Henceforth, except in the Final Conditions defined below, whenever an honest player wants messages in a certain way, messages that contradict each other are never counted or considered valid.

mensagem De outro modo, ele computamessage otherwise, it computes

[00403] 2. i destrói sua chave secreta temporária e, então, propaga[00403] 2. i destroys your temporary secret key and then propagates

[00404] Etapa 4: Saída de GC e A Primeira Etapa de BBA*[00404] Step 4: Exit from GC and The First Stage from BBA *

[00405] Instruções para cada usuário O usuário i inicia sua própria etapa 4 da rodada r assim que tem conhecimento de[00405] Instructions for each user User i starts his own step 4 of round r as soon as he is aware of

[00406] • O usuário i computa a partir do terceiro componente de B e verifica se ou não.[00406] • User i computes from the third component of B and checks whether or not.

[00407] • Se então, i interrompe sua própria execução da etapa 4 imediatamente.[00407] • If so, i interrupts its own execution of step 4 immediately.

[00408] • Se então após aguardar uma quantidade de tempo atua conforme segue.[00408] • If, after waiting for a certain amount of time, act as follows.

[00409] 1. Ele computa vi e gi, a saída de GC, conforme segue.[00409] 1. It computes vi and gi, the GC output, as follows.

[00410] (a) Se existir um valor de modo que, dentre todas as mensagens válidas que recebeu, mais de 2/3 das mesmas são da forma , então, ele define e[00410] (a) If there is a value so that, of all the valid messages he received, more than 2/3 of them are of the form, then he defines and

[00411] (b) De outro modo, se existir um valor de modo que, dentre todas as mensagens válidas que recebeu, mais de 1/3 das 17 mesmas são da forma , então, ele define e[00411] (b) Otherwise, if there is a value so that, of all the valid messages he received, more than 1/3 of the 17 messages are of the form, then he defines and

[00412] (c) De outro modo, ele define e[00412] (c) Otherwise, it defines and

[00413] 2. Ele computa bi, a entrada de BBA*, conforme segue:[00413] 2. It computes bi, the entry of BBA *, as follows:

[00414] e de outro modo.[00414] and otherwise.

17 Pode ser provado que o v' no caso (b), se existir, precisa ser exclusivo.17 It can be proved that the v 'in case (b), if any, needs to be exclusive.

[00415] 3. Ele computa a mensagem destrói sua chave secreta temporária e, então, propaga[00415] 3. It computes the message destroys your temporary secret key and then propagates

[00416] A etapa s, 5 ≤ s ≤ m + 2, s - 2 ≡ 0 mod 3: Uma Etapa Moeda Fixada em 0 de BBA*[00416] Stage s, 5 ≤ s ≤ m + 2, s - 2 mod 0 mod 3: One Currency Stage Set at 0 BBA *

[00417] Instruções para cada usuário O usuário i inicia sua própria etapa s da rodada r assim que tem conhecimento de Br-1.[00417] Instructions for each user User i starts his own step s of round r as soon as he is aware of Br-1.

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

[00419] • então, i interrompe sua própria execução da etapa s imediatamente.[00419] • then, i interrupts its own execution of step s immediately.

[00420] • Se i ∈ SVr,s, então, ele atua conforme segue.[00420] • If i ∈ SVr, s, then it acts as follows.

[00421] - Ele aguarda até uma quantidade de tempo ter transcorrido.[00421] - He waits until an amount of time has passed.

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

[00423] (a) mod 3 — ou seja, a etapa s’ é uma etapa Moeda Fixa em 0,[00423] (a) mod 3 - that is, step s' is a Fixed Currency step at 0,

[00424] (b) i recebeu pelo menos mensagens válidas 18 e[00424] (b) i received at least 18 valid messages and

[00425] (c) i recebeu uma mensagem válida com v =[00425] (c) i received a valid message with v =

[00426] então, i interrompe sua própria execução da etapa s (e, de fato, da rodada r) imediatamente sem propagar nada; define e 18 Tal mensagem do jogador j é contada mesmo se o jogador i tiver também recebido uma mensagem de j que sinaliza 1. Coisas similares para a Condição Final[00426] then, i interrupts its own execution of step s (and, in fact, of round r) immediately without propagating anything; define e 18 Such message from player j is counted even if player i has also received a message from j that signals 1. Similar things to the Final Condition

1. Conforme mostrado na análise, isso é realizado para garantir que todos os usuários honestos conheçam Br dentro do tempo λ a partir um do outro.1. As shown in the analysis, this is done to ensure that all honest users know Br within time λ from each other.

define seu próprio CERTr como sendo o conjunto de mensagens da subetapa (b).19define your own CERTr as the set of messages from substep (b) .19

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

[00428] mod 3 — ou seja, a etapa s’ é uma etapa Moeda Fixa em 1, e[00428] mod 3 - that is, step s' is a Fixed Currency step in 1, and

[00429] (b) i recebeu pelo menos tH mensagens válidas 20[00429] (b) i received at least tH 20 valid messages

[00430] então, i interrompe sua própria execução da etapa s (e, de fato, da rodada r) imediatamente sem propagar nada; define e define seu próprio CERTr como sendo o conjunto de mensagens da subetapa (b’).[00430] then, i interrupts its own execution of step s (and, in fact, of round r) immediately without propagating anything; defines and defines its own CERTr as the subset message set (b ').

[00431] - De outro modo, ao final do aguardo, o usuário i realiza o seguinte.[00431] - Otherwise, at the end of the wait, user i performs the following.

[00432] Ele define vi como sendo o voto da maioria do nos segundos componentes de todo válido que recebeu.[00432] He defines vi as the vote of the majority in the second components of all valid that he received.

[00433] Ele computa bi conforme segue.[00433] It computes bi as follows.

[00434] Se mais de 2/3 de todos os válidos que recebeu forem da forma , então, define[00434] If more than 2/3 of all the valid ones you received are of the form, then, define

[00435] De outro modo, se mais de 2/3 de todos os 19 O usuário i agora conhece Br e sua própria rodada r termina. Ele 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, ele ajudou a propagar todas as mensagens em seu CERTr, que é suficiente para o presente protocolo. Observa- se que ele deve também definir para o protocolo de BA binário, mas bi não é necessário nesse caso de qualquer forma. Coisas similares pata todas as instruções futuras. 20 Nesse caso, não importa quais sejam.[00435] Otherwise, if more than 2/3 of all 19 User i now knows Br and his own round r ends. It still helps to propagate messages as a generic user, but does not initiate any propagation as a checker (r, s). In particular, it helped to propagate all messages in its CERTr, which is sufficient for this protocol. It is noted that it must also define for the binary BA protocol, but bi is not necessary in this case anyway. Similar things for all future instructions. 20 In that case, it doesn't matter what they are.

válidos que recebeu forem da forma , então, definethat you received are of the form, then define

[00436] De outro modo, define[00436] Otherwise, it defines

[00437] Ele computa a mensagem destrói sua chave secreta temporária e, então, propaga[00437] It computes the message destroys your temporary secret key and then propagates

[00438] A etapa s, 6 ≤ s ≤ m + 2, s - 2 ≡ 1 mod 3: Uma Etapa Moeda Fixada em 1 de BBA*[00438] Stage s, 6 ≤ s ≤ m + 2, s - 2 mod 1 mod 3: One Currency Stage Set at 1 BBA *

[00439] As instruções para cada usuário i ∈ PKr-k: O usuário i inicia sua própria etapa s da rodada r assim que tem conhecimento de Br-1.[00439] Instructions for each user i ∈ PKr-k: User i starts his own step s of round r as soon as he is aware of Br-1.

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

[00441] • Se i ∉ SVr,s, então, i interrompe sua própria execução da etapa s imediatamente.[00441] • If i ∉ SVr, s, then i stops its own execution of step s immediately.

[00442] • Se i ∈ SVr,s, então, ele realiza o seguinte.[00442] • If i ∈ SVr, s, then it performs the following.

[00443] - Ele aguarda até uma quantidade de tempo ter transcorrido.[00443] - He waits until an amount of time has passed.

[00444] - Condição Final 0: As mesmas instruções que para as etapas Moeda Fixa em 0.[00444] - Final Condition 0: The same instructions as for the Fixed Currency stages at 0.

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

[00446] - De outro modo, ao final do aguardo, o usuário i realiza o seguinte.[00446] - Otherwise, at the end of the wait, user i performs the following.

[00447] Ele define vi como sendo o voto da maioria do nos segundos componentes de todo válido que recebeu.[00447] He defines vi as the vote of the majority in the second components of all valid that he received.

[00448] Ele computa bi conforme segue.[00448] It computes bi as follows.

[00449] Se mais de 2/3 de todos os válidos que recebeu forem da forma , então, define[00449] If more than 2/3 of all the valid ones you received are of the form, then, define

[00450] De outro modo, se mais de 2/3 de todos os válidos que recebeu forem da forma , então, define[00450] Otherwise, if more than 2/3 of all the valid ones you received are of the form, then, define

[00451] De outro modo, define[00451] Otherwise, it defines

[00452] Ele computa a mensagem destrói sua chave secreta temporária e, então, propaga[00452] It computes the message destroys your temporary secret key and then propagates

[00453] A etapa s, 7 ≤ s ≤ m + 2, s - 2 ≡ 2 mod 3: Uma Etapa Moeda Genuinamente Lançada de BBA*[00453] Stage s, 7 ≤ s ≤ m + 2, s - 2 mod 2 mod 3: One Genuine Launched BBA Stage *

[00454] Instruções para cada usuário i e PKr-k: O usuário i inicia sua própria etapa s da rodada r assim que tem conhecimento de Br-1.[00454] Instructions for each user i and PKr-k: User i starts his own step s of round r as soon as he is aware of Br-1.

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

[00456] • Se então, i interrompe sua própria execução da etapa s imediatamente.[00456] • If so, i interrupts its own execution of step s immediately.

[00457] • Se , então, ele realiza o seguinte.[00457] • If, then, he performs the following.

[00458] - Ele aguarda até uma quantidade de tempo ter transcorrido.[00458] - He waits until an amount of time has passed.

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

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

[00461] - De outro modo, ao final do aguardo, o usuário i realiza o seguinte.[00461] - Otherwise, at the end of the wait, user i performs the following.

[00462] Ele define vi como sendo o voto da maioria do nos segundos componentes de todo válido que recebeu.[00462] He defines vi as the vote of the majority of the second components of all valid that he received.

[00463] Ele computa bi conforme segue.[00463] It computes bi as follows.

[00464] Se mais de 2/3 de todos os válidos que recebeu forem da forma , então, define[00464] If more than 2/3 of all the valid ones you received are of the form, then, define

[00465] De outro modo, se mais de 2/3 de todos os válidos que recebeu forem da forma , então, define[00465] Otherwise, if more than 2/3 of all the valid ones you received are of the form, then, define

[00466] De outro modo, é o conjunto de verificadores (r, s - 1) de quem ele recebeu uma mensagem válida Ele define[00466] Otherwise, it is the set of verifiers (r, s - 1) from whom he received a valid message He defines

[00467] Ele computa a mensagem destrói sua chave secreta temporária e, então, propaga[00467] It computes the message destroys your temporary secret key and then propagates

[00468] Etapa m + 3: A Última Etapa de BBA* 21[00468] Stage m + 3: The Last Stage of BBA * 21

[00469] Instruções para cada usuário O usuário i inicia sua própria etapa m + 3 da rodada r assim que tem conhecimento de Br-1.[00469] Instructions for each user User i starts his own stage m + 3 of round r as soon as he is aware of Br-1.

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

[00471] • Se então, i interrompe sua própria execução da etapa m + 3 imediatamente.[00471] • If so, i interrupts its own execution of step m + 3 immediately.

[00472] • Se , então, ele realiza o seguinte.[00472] • If, then, he performs the following.

[00473] - Ele aguarda até uma quantidade de tempo ter transcorrido.[00473] - He waits until an amount of time has passed.

21 Com probabilidade enorme, BBA* terminou antes dessa etapa, e especifica-se essa etapa para completeza.21 With enormous probability, BBA * ended before this stage, and this stage is specified for completeness.

[00474] - Condição Final 0: As mesmas instruções que para as etapas Moeda Fixa em 0.[00474] - Final Condition 0: The same instructions as for the Fixed Currency stages at 0.

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

[00476] - De outro modo, ao final do aguardo, o usuário i realiza o seguinte.[00476] - Otherwise, at the end of the wait, user i performs the following.

[00477] Ele define[00477] It defines

[00478] Ele computa a mensagem destróis sua chave secreta temporária e, então, propaga para certificar Br. 22[00478] It computes the message destroy your temporary secret key and then propagate to certify Br. 22

[00479] Reconstrução do Bloco de Rodada r por Não Verificadores[00479] Reconstruction of Round Block r by Non-Verifiers

[00480] Instruções para cada usuário i no sistema: O usuário i inicia sua própria rodada r assim que tem conhecimento de Br-1 e aguarda pelas informações do bloco conforme segue.[00480] Instructions for each user i in the system: User i starts his own round r as soon as he is aware of Br-1 and waits for the block information as follows.

[00481] Se, durante tal aguardo e em qualquer ponto no tempo, existir uma série v e uma etapa s' de modo que[00481] If, during such a wait and at any point in time, there exists a series v and a step s' so that

[00482] (a) mod 3,[00482] (a) mod 3,

[00483] (b) i recebeu pelo menos tH mensagens válidas e[00483] (b) i received at least tH valid messages and

[00484] (c) i recebeu uma mensagem válida[00484] (c) i received a valid message

[00485] então, i interrompe sua própria execução da rodada imediatamente; define e define seu próprio CERTr como sendo o 22 Um certificado da etapa m + 3 não tem que incluir ESIG i(outi). Inclui-se isso para uniformidade apenas: os certificados agora têm um formato uniforme, não importando em que etapa são gerados.[00485] then, i stops its own execution of the round immediately; define and define your own CERTr as 22 A certificate from step m + 3 does not have to include ESIG i (outi). This is included for uniformity only: certificates now have a uniform format, no matter what stage they are generated.

conjunto de mensagens da subetapa (b).set of messages from substep (b).

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

[00487] (a) mod 3, e[00487] (a) mod 3, and

[00488] (b’) i recebeu pelo menos tH mensagens válidas[00488] (b ’) i received at least tH valid messages

[00489] então, i interrompe sua própria execução da rodada imediatamente; define e define seu próprio CERTr como sendo o conjunto de mensagens da subetapa (b’).[00489] then, i interrupts its own execution of the round immediately; defines and defines its own CERTr as the subset message set (b ').

[00490] - Se, durante tal aguardo e em qualquer ponto no tempo, i tiver recebido pelo menos tH mensagens válidas então, i interrompe sua própria execução da rodada r imediatamente, define e define seu próprio CERTr como sendo o conjunto de mensagens para 1 e 6 ALGORAND COM CHAVES TEMPORÁRIAS[00490] - If, during such a wait and at any point in time, i has received at least tH valid messages then i interrupts his own execution of round r immediately, defines and defines his own CERTr as the set of messages for 1 and 6 ALGORAND WITH TEMPORARY KEYS

[00491] Essencialmente, em Algorand, os blocos são gerados em rodadas. Em uma rodada r[00491] Essentially, in Algorand, the blocks are generated in rounds. In a round r

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

[00493] (2) Os usuários adequadamente credenciados executam, em diversas etapas, um protocolo de acordo bizantino adequado (BA) no bloco proposto.[00493] (2) Properly accredited users execute, in several stages, an appropriate Byzantine agreement (BA) protocol in the proposed block.

[00494] O protocolo de BA preferencial é BA*. A etapa de proposta do bloco pode ser considerada a etapa 1, de modo que as etapas de BA* sejam 2,3,...[00494] The preferred BA protocol is BA *. The proposal stage of the block can be considered stage 1, so that the BA * stages are 2.3, ...

[00495] Apenas um usuário adequado i, selecionado aleatoriamente de acordo entre os usuários no sistema, tem o direito de enviar uma mensagem na etapa s da rodada r. Algorand é muito rápido e seguro devido ao fato de que tal usuário i verifica se ele tem direito de falar. Se esse for o caso, o usuário i obtém na realidade uma prova, uma credencial. Se for sua vez de falar na etapa s da rodada r, i propaga na rede tanto sua credencial e quanto mensagem digitalmente sinalizada. A credencial prova a outros usuários que eles devem considerar a mensagem[00495] Only one suitable user i, selected randomly according to the users in the system, has the right to send a message in step s of round r. Algorand is very fast and secure due to the fact that such a user i verifies that he has the right to speak. If this is the case, user i actually obtains a proof, a credential. If it is your turn to speak in step s of round r, i propagates both your credential and digitally signed message on the network. The credential proves to other users that they should consider the message

[00496] Uma condição necessária para o usuário i ter o direito de falar na etapa s da rodada r é que ele já estava no sistema algumas rodadas atrás. Especificamente, k rodas antes da rodada r, em que k é um parâmetro denominado o parâmetro de “retrospectiva”. Ou seja, para ser elegível para falar na rodada r, i precisa pertencer ao PKr-k, o conjunto de todas as chaves públicas/usuários já no sistema na rodada r - k. (Os usuários podem ser identificados com suas chaves públicas.) Essa condição é fácil de verificar no sentido de que é uma forma derivável do blockchain.[00496] A necessary condition for user i to have the right to speak in step s of round r is that he was already in the system a few rounds ago. Specifically, k wheels before round r, where k is a parameter called the “retrospective” parameter. That is, to be eligible to speak in round r, i must belong to PKr-k, the set of all public keys / users already in the system in round r - k. (Users can be identified with their public keys.) This condition is easy to verify in the sense that it is a derivable form of blockchain.

[00497] A outra condição é que[00497] The other condition is that

[00498] em que p é uma dada probabilidade que controla o número esperado de verificadores em SVr,s, ou seja, o conjunto de usuários com direito de falar na etapa s da rodada r. Se essa condição for satisfeita, então, a credencial de i é definida como sendo[00498] where p is a given probability that controls the expected number of verifiers in SVr, s, that is, the set of users with the right to speak in step s of round r. If this condition is met, then i's credential is defined as being

[00499] Obviamente, apenas i pode descobrir se pertence a SVr,s, todos os outros usuários, que não têm conhecimento da chave de sinalização secreta de i, não têm ideia da mesma. Entretanto, se i ∈ SVr,s, então, i pode demonstrar que esse é o caso para qualquer um por propagação de sua credencial dado o blockchain até o momento.[00499] Obviously, only i can find out if it belongs to SVr, s, all other users, who are unaware of i's secret signaling key, have no idea of it. However, if i ∈ SVr, s, then i can demonstrate that this is the case for anyone by spreading their credentials given the blockchain so far.

Recorda-se o fato de que (1) Qr-1 é facilmente computável a partir do bloco anterior, Br-1, embora suficientemente muitos blocos essencialmente imprevisíveis antes, e (2) qualquer um pode verificar assinaturas digitais de i (em relação a sua chave a longo prazo no sistema).It is recalled the fact that (1) Qr-1 is easily computable from the previous block, Br-1, although sufficiently many blocks essentially unpredictable before, and (2) anyone can verify digital signatures of i (in relation to your long-term key in the system).

[00500] Recorda-se também que, nas versões de Algorand até o momento, um verificador i ∈ SVr,s sinaliza digitalmente suam mensagem de etapa-s-rodada-r em relação a uma chave pública temporária que qualquer um pode, dado o blockchain, perceber genuinamente que corresponde a i e etapa s da rodada r. Essa “assinatura temporária” é denotada por que está usando letras minúsculas de modo a diferenciar a mesma das assinaturas de i com sua chave “a longo prazo”, que são denotadas por letras maiúsculas.[00500] It is also recalled that, in the Algorand versions so far, a verifier i ∈ SVr, s digitally signals your step-s-round-r message in relation to a temporary public key that anyone can, given the blockchain, genuinely realizing that it corresponds to step i of round r. This “temporary signature” is denoted because it is using lowercase letters in order to differentiate it from the signatures of i with its “long term” key, which is denoted by capital letters.

[00501] Em suma, um usuário em SVr,s propaga duas mensagens separadas na etapa s da rodada r: (a) essa credencial e (b) sua mensagem de etapa-s-rodada-r sinalizada digitalmente (de modo temporário) , Após fazê-lo, i deleta sua chave temporária secreta correspondente a[00501] In short, a user in SVr, s propagates two separate messages in step s of round r: (a) this credential and (b) his step-s-round-r message digitally signed (temporarily), After doing so, i deletes his secret temporary key corresponding to

[00502] Esse uso de chaves temporárias impede que um adversário que corrompe suficientemente muitos verificadores de rodada r após o bloco Br ter sido produzido pode gerar um bloco de rodada r diferente.[00502] This use of temporary keys prevents an opponent who sufficiently corrupts many round checkers r after the Br block has been produced can generate a different round r block.

[00503] Recorda-se que, de fato, os verificadores da etapa 1 são os líderes potenciais e que suas mensagens de etapa-1-rodada-r são os blocos que propõe. (O líder de rodada r é definido como sendo o líder potencial cuja credencial verificada por hash é menor. No caso de empates improváveis, pode-se escolher o líder potencial que é lexicograficamente o primeiro.) Para qualquer etapa s > 1, a mensagem é sua “mensagem de controle”, ou seja, sua mensagem no protocolo de BA BA*.[00503] It is recalled that, in fact, the verifiers of step 1 are the potential leaders and that their messages of step-1-round-r are the blocks he proposes. (The leader of the round r is defined as the potential leader whose hash verified credential is less. In the case of unlikely ties, you can choose the potential leader who is lexicographically the first.) For any step s> 1, the message it is your “control message”, that is, your message in the BA BA * protocol.

[00504] Separar uma credencial de i verificador dessa mensagem (digitalmente sinalizada) tem duas vantagens principais:[00504] Separating a verification credential from that message (digitally signed) has two main advantages:

[00505] A1 Garante que, na primeira etapa, em que diversos líderes potenciais propagam sua novos blocos propostos, os usuários podem identificar rapidamente o líder de rodada quando ele é honesto. De fato, todas as credenciais, e em particular as credenciais para a etapa 1, são muito pequenas, enquanto os blocos propostos podem ser grandes. (O bloco real proposto por pode ser identificado pouco depois.)[00505] A1 Ensures that, in the first stage, in which several potential leaders propagate their proposed new blocks, users can quickly identify the leader of the round when he is honest. In fact, all credentials, and in particular the credentials for step 1, are very small, while the proposed blocks can be large. (The actual block proposed by can be identified shortly afterwards.)

[00506] A2 Possibilita a implantação de honestidade preguiçosa. Ou seja, possibilita que um usuário i perceba secretamente em antecipação em quais rodadas e etapas precisam atuar. 7 ALGORAND COM BLOCKCHAINS CREDENCIADOS POR[00506] A2 Enables the implementation of lazy honesty. That is, it allows a user i to secretly perceive in anticipation of which rounds and stages they need to act. 7 ALGORAND WITH BLOCKCHAINS ACCREDITED BY

MENSAGEMMESSAGE

[00507] Descreve-se primeiramente uma nova modalidade de Algorand que dispensa o uso de chaves temporárias para certificar por fim um bloco, mas usa chaves temporárias para todas as outras etapas.[00507] A new Algorand modality is described first, which eliminates the use of temporary keys to finally certify a block, but uses temporary keys for all other steps.

[00508] Então, será descrito agora como se livrar de chaves temporárias em Algorand em todas as etapas, mas a primeira etapa de proposta de bloco.[00508] Then, it will be described now how to get rid of temporary keys in Algorand in all stages, but the first stage of block proposal.

[00509] Proposta de Bloco A nova modalidade usa a mesma etapa 1 que a anterior. Assim, um líder potencial i da rodada r sinaliza seu bloco proposto em relação a sua chave temporária correspondente; apaga a chave temporária secreta correspondente; e, então, propaga sua própria credencial e assinatura de[00509] Block Proposal The new modality uses the same step 1 as the previous one. Thus, a potential leader i of round r signals his proposed block in relation to his corresponding temporary key; erases the corresponding secret temporary key; and then propagate your own credential and signature

[00510] Acordo Bizantino Em uma rodada r, cada etapa s do protocolo de BA* permanece a mesma que a anterior. Assim, em particular, um verificador propaga sua credencial e sua própria mensagem de etapa-s-rodada-r sinalizada digitalmente em relação à sua chave pública temporária r-s e apaga a chave temporária secreta correspondente. Entretanto, a alteração seguinte é aplicada à condição final da primeira etapa moeda fixada em 1 e todas as etapas subsequentes de BBA*.[00510] Byzantine Agreement In round r, each step s of the BA * protocol remains the same as the previous one. Thus, in particular, a verifier propagates its credential and its own digitally signed step-s-round-r message in relation to its temporary public key r-s and deletes the corresponding secret temporary key. However, the following change is applied to the final condition of the first currency stage set at 1 and all subsequent BBA stages *.

[00511] Assume-se que um usuário i, em tal etapa s, atingiu a condição final para o primeiro tempo. Então, esse pode ser o caso em que[00511] It is assumed that a user i, in such step s, reached the final condition for the first time. So, this may be the case where

[00512] • para algum bit b, i recebeu pelo menos tH mensagens válidas com o mesmo e[00512] • for some bit b, i received at least tH valid messages with the same e

[00513] • i recebeu uma mensagem válida com[00513] • i received a valid message with

[00514] Consequentemente, se i for um verificador em SVr,s, então, em modalidades anteriores de Algorand, o mesmo poderia interromper a execução imediatamente e poderia aprender o bloco Br, para o qual ele poderia estar em posse de CERTr. Recorda-se que CERTr consistiu em dado número de assinaturas digitais temporárias. Agora é feita referência a tal CERTr como um “certificado temporário” de Br.[00514] Consequently, if i is a verifier in SVr, s, then, in previous Algorand modalities, he could interrupt the execution immediately and he could learn the Br block, for which he could be in possession of CERTr. It is recalled that CERTr consisted of a number of temporary digital signatures. Reference is now made to such CERTr as a “temporary certificate” from Br.

[00515] Na nova modalidade de Algorand, o usuário i pode ser um usuário arbitrário em em que k é um parâmetro de retrospectiva, em vez de um verificador em SVr,s (que necessariamente pertence a Tal usuário arbitrário agora não interrompe mais i (simulação) sua execução da rodada r. Em vez disso, com o uso de sua chave secreta a longo prazo, ele produz uma assinatura de dados que indica que considera o bloco B como sendo final e que garante que a assinatura tem uma chance adequada de ser considerada adequadamente. Por exemplo, sem qualquer limitação pretendida, i computa[00515] In the new Algorand modality, user i can be an arbitrary user in which k is a retrospective parameter, instead of a checker in SVr, s (which necessarily belongs to Such an arbitrary user now no longer interrupts i ( simulation) its execution of the round A. Instead, using its long-term secret key, it produces a data signature that indicates that it considers block B to be final and that it ensures that the signature has an adequate chance of For example, without any intended limitation, i computes

[00516] em que B é o último bloco recém-constituído no blockchain. Se H(si) < p, então, i propaga Sj, e denomina-se s como uma assinatura de certificação credenciada. (Aqui, p é um dado parâmetro em [0, 1].)[00516] where B is the last newly constituted block on the blockchain. If H (si) <p, then i propagates Sj, and is called s as an accredited certification signature. (Here, p is a given parameter in [0, 1].)

[00517] Um dado limite T de tais assinaturas constitui um certificado não temporário para B.[00517] A given limit T of such signatures constitutes a non-temporary certificate for B.

[00518] Agora, apenas certificados não temporário realmente importam. Os certificados temporários podem ser considerados apenas uma “trampolim” em direção aos certificados não temporários reais.[00518] Now, only non-temporary certificates really matter. Temporary certificates can be considered just a “stepping stone” towards real non-temporary certificates.

[00519] Um usuário honesto, que vê um certificado final para um bloco Br, não contribui mais para a geração ou certificação final de um bloco da rodada r.[00519] An honest user, who sees a final certificate for a Br block, no longer contributes to the generation or final certification of a block of round r.

[00520] Análise Ainda que certificados não temporários consistam em assinaturas a longo prazo, a modalidade permanece segura. Essencialmente, isso ocorre devido ao fato de que, para escolhas adequadas de p e T, o adversário não pode viavelmente encontrar qualquer série X para a qual possa produzir T assinaturas Sj da forma[00520] Analysis Although non-temporary certificates consist of long-term signatures, the modality remains secure. Essentially, this is due to the fact that, for proper choices of p and T, the opponent cannot feasibly find any X series for which he can produce T Sj signatures as

[00521] em que todos j são usuários corrompidos e H(sj) ≤ p.[00521] where all j are corrupted users and H (sj) ≤ p.

[00522] (Nessa aplicação, T poderia ser bem pequeno — por exemplo, cerca de 500. Isso ocorre devido ao fato de que é suficiente que pelo menos uma das T assinaturas é de um usuário honesto. De fato, T pode ser muito menor devido ao fato de que é suficiente produzir certificados não temporários muito frequentemente, mas não necessariamente para cada bloco.)[00522] (In this application, T could be quite small - for example, around 500. This is due to the fact that it is sufficient that at least one of the T signatures is from an honest user. In fact, T may be much smaller due to the fact that it is sufficient to produce non-temporary certificates very often, but not necessarily for each block.)

[00523] Observa-se também que, na nova modalidade, o adversário não pode inundar a rede obrigando usuários honestos a propagar “assinaturas de certificação credenciadas arbitrárias” computadas por usuários corrompidos. De fato, embora qualquer j ∈ PKr-k malicioso pudesse encontrar alguma série arbitrária Xj de modo que por um uso adequado de regras de propagação, a assinatura nunca será retransmitida por um usuário honesto. De fato, um usuário u encaminhará uma assinatura não apenas se (1) e (2) , mas também se (3) H (B) for o hash de um bloco B para o qual o próprio u viu um certificado não temporário.[00523] It is also observed that, in the new modality, the adversary cannot flood the network, forcing honest users to propagate “arbitrary accredited certification signatures” computed by corrupted users. In fact, although any malicious J ∈ PKr-k could find some arbitrary series Xj so that by proper use of propagation rules, the signature will never be relayed by an honest user. In fact, a user u will forward a signature not only if (1) and (2), but also if (3) H (B) is the hash of a B block for which u has seen a non-temporary certificate.

[00524] De fato, seria possível substituir a condição 3 acima pela seguinte mais fraca:[00524] In fact, it would be possible to replace condition 3 above with the weaker one:

[00525] 3'. H(B) é o hash de um bloco B para o qual o próprio u viu um subconjunto suficientemente grande de um certificado temporário possível.[00525] 3 '. H (B) is the hash of a B block for which u has itself seen a sufficiently large subset of a possible temporary certificate.

[00526] De fato, quando um usuário honesto i viu um certificado temporário completo para B, então (na ausência de partições), os outros usuários honestos precisam ter visto B aprovado por um grande número de verificadores da etapa adequada. Esse número é realmente suficiente para identificar o único bloco que tem uma chance de ser certificado de modo não temporário.[00526] In fact, when an honest user i saw a full temporary certificate for B, then (in the absence of partitions), the other honest users must have seen B approved by a large number of verifiers from the appropriate step. This number is really sufficient to identify the only block that has a chance of being certified on a non-temporary basis.

[00527] Eliminação de Chaves Temporárias em Outras Etapas A modalidade acima exige um número mínimo de alterações ao protocolo de Algorand original. Explica-se agora como evitar chaves temporárias em cada etapa, exceto a primeira. A ideia é que, para cada etapa s > 1, não há verificadores de etapa-s. Em vez disso, para cada rodada r, cada usuário executa internamente a etapa s como se fosse um verificador em SVr,s, de modo a computar internamente sua mensagem de etapa-s-rodada-r. Nesse ponto, em vez de sinalizar digitalmente com sua chave temporária verifica se tem o direito de propagar a mensagem conforme segue.[00527] Elimination of Temporary Keys in Other Steps The above modality requires a minimum number of changes to the original Algorand protocol. It now explains how to avoid temporary keys at each stage, except the first. The idea is that, for each step s> 1, there are no step-s checkers. Instead, for each round r, each user internally performs step s as if it were a verifier on SVr, s, in order to compute their step-s-round-r message internally. At that point, instead of digitally signaling with your temporary key, you check if you have the right to propagate the message as follows.

Primeiramente, i verifica se ele estava no sistema k rodadas atrás: ou seja, se Se esse for o caso, então, i sinaliza digitalmente com sua chave a longo prazo, juntamente com a quantidade Qr-1; por exemplo, computa e verifica se o hash dessa assinatura é ≤ p, para uma dada probabilidade p. Se esse for o caso, então, i tem o direito de propagar e realmente propaga, Observa-se que dado , qualquer um pode verificar que i tinha o direito de propagar . Na etapa s + 1, os usuários apenas consideram mensagens de etapa-s propagadas pelos usuários com direito.Firstly, i checks if it was in the k system rounds ago: that is, if this is the case, then i digitally signals with its long-term key, together with the quantity Qr-1; for example, computes and verifies that the signature hash is ≤ p, for a given probability p. If that is the case, then i has the right to propagate and actually propagate. It is observed that given, anyone can verify that i had the right to propagate. In step s + 1, users only consider step-s messages propagated by entitled users.

[00528] Um usuário honesto, que tem (pelo menos internamente) a etapa executada s da rodada r, não executa ou participa mais da execução a tal etapa. 8 ESCOPO[00528] An honest user, who has (at least internally) the step executed in round r, does not perform or participate in the execution of that step anymore. 8 SCOPE

[00529] Note que o mecanismo descrito no presente documento é aplicável a outros sistemas de blockchain em que é desejável escolher aleatoriamente um subconjunto de usuários para um propósito particular, tal com verificação, de um modo geralmente verificável. Assim, o sistema descrito no presente documento pode ser adaptado a outros esquemas de blockchain, tais como Ethereum ou Litecoin, ou até mesmo esquemas de blockchain que não se relacionam diretamente à moeda.[00529] Note that the mechanism described in this document is applicable to other blockchain systems in which it is desirable to randomly choose a subset of users for a particular purpose, such as verification, in a generally verifiable manner. Thus, the system described in this document can be adapted to other blockchain schemes, such as Ethereum or Litecoin, or even blockchain schemes that are not directly related to the currency.

[00530] O sistema descrito no presente documento pode ser adaptado para ser aplicado e combinado com mecanismos apresentados em qualquer um ou todos dentre os documentos no PCT/US2017/031037, depositado em 4 de maio de 2017, 15/551.678 depositado em 17 de agosto de 2017, 62/564.670 depositado em 28 de setembro de 2017, 62/567.864 depositado em 4 de outubro de 2017, 62/570.256 depositado em 10 de outubro de 2017, 62/580.757 depositado em 2 de novembro de 2017, 62/607.558 depositado em 19 de dezembro de 2017, 62/632.944 depositado em 20 de fevereiro de 2018 e 62/643.331 depositado em 15 de março de 2018, todos os quais estão incorporados a título de referência ao presente documento.[00530] The system described in this document can be adapted to be applied and combined with mechanisms presented in any or all of the documents in PCT / US2017 / 031037, deposited on May 4, 2017, 15 / 551,678 deposited on 17 August 2017, 62 / 564,670 deposited on September 28, 2017, 62 / 567,864 deposited on October 4, 2017, 62 / 570,256 deposited on October 10, 2017, 62 / 580,757 deposited on November 2, 2017, 62 / 607,558 deposited on December 19, 2017, 62 / 632,944 deposited on February 20, 2018 and 62 / 643,331 deposited on March 15, 2018, all of which are incorporated by reference in this document.

[00531] As implementações de software do sistema descrito no presente documento podem incluir código executável que é armazenado em um meio legível por computador e executado por um ou mais processadores. O meio legível por computador pode ser não temporário e incluir um disco rígido de computador, ROM, RAM, memória flash, mídia de armazenamento de computador portátil, tal como um CD-ROM, um DVD-ROM, um pen drive, um cartão SD e/ou outra unidade com, por exemplo, uma interface de barramento serial universal (USB), e/ou qualquer outra memória de computador ou meio legível por computador não temporário ou tangível apropriado em que 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 apropriado.[00531] The software implementations 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 can be non-temporary and include a computer hard drive, ROM, RAM, flash memory, laptop storage media, such as a CD-ROM, a DVD-ROM, a flash drive, an SD card and / or another unit with, for example, a universal serial bus (USB) interface, and / or any other non-temporary or tangible computer-readable computer or media in which executable code can be stored and executed by a processor . The system described in this document can be used in connection with any appropriate operating system.

[00532] 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 espírito verdadeiro da invenção são indicados pelas reivindicações a seguir.[00532] 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 examples only, and the scope and true spirit of the invention are indicated by the following claims.

Claims (16)

REIVINDICAÇÕES 1. Método para, em um sistema de transação em que transações são organizadas em blocos, uma entidade construir um novo bloco Br de transações válidas, em relação a uma sequência de blocos anteriores B0, B1, . . . , Br-1, em que o método é caracterizado pelo fato de que compreende: fazer a entidade determinar uma quantidade Q dos blocos anteriores; fazer a entidade usar uma chave secreta a fim de computar uma série S exclusivamente associada a Q e a entidade; fazer a entidade computar a partir de S uma quantidade T que é pelo menos um dentre: a própria S, uma função de S e um valor de hash de S; fazer a entidade determinar se T possui uma dada propriedade; e se T possuir a dada propriedade, fazer a entidade sinalizar digitalmente Br e tornar disponível S e uma versão digitalmente sinalizada de Br, em que a entidade é selecionada com base em um valor aleatório que varia de acordo com uma assinatura digital de Br.1. Method for, in a transaction system in which transactions are organized in blocks, an entity to build a new Br block of valid transactions, in relation to a sequence of previous blocks B0, B1,. . . , Br-1, in which the method is characterized by the fact that it comprises: making the entity determine a quantity Q of the previous blocks; make the entity use a secret key to compute an S series exclusively associated with Q and the entity; make the entity compute from S an amount T that is at least one of: S itself, a function of S and a hash value of S; make the entity determine whether T has a given property; and if T has the given property, make the entity digitally sign Br and make available S and a digitally signated version of Br, where the entity is selected based on a random value that varies according to a digital signature of Br. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a chave secreta é uma chave de sinalização secreta correspondente a uma chave pública da entidade e S é uma assinatura digital de Q pela entidade.2. Method, according to claim 1, characterized by the fact that the secret key is a secret signaling key corresponding to an entity's public key and S is a digital signature of Q by the entity. 3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que T é um número e satisfaz a propriedade se T for menor que um dado número p.3. Method, according to claim 1, characterized by the fact that T is a number and satisfies the property if T is less than a given number p. 4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que S é disponibilizado tornando-se S deduzível a partir de Br.4. Method, according to claim 2, characterized by the fact that S is made available making S deductible from Br. 5. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que cada usuário tem um balanço no sistema de transação, e p varia para cada usuário de acordo com o balanço de cada usuário.5. Method, according to claim 2, characterized by the fact that each user has a balance in the transaction system, and p varies for each user according to each user's balance. 6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor aleatório é um hash da assinatura digital da entidade.6. Method, according to claim 1, characterized by the fact that the random value is a hash of the entity's digital signature. 7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que a entidade é selecionada se o valor aleatório estiver abaixo de um limite que é escolhido para fazer com que um número mínimo de entidades do sistema de transação possa sinalizar digitalmente Br.7. Method, according to claim 6, characterized by the fact that the entity is selected if the random value is below a limit that is chosen to cause a minimum number of entities in the transaction system to digitally signal Br. 8. Método para selecionar um subconjunto de usuários em um sistema de blockchain para verificar um novo bloco Br em relação a uma sequência de blocos anteriores B0, B1, . . . , Br-1, em que o método é caracterizado pelo fato de que compreende: fazer com que pelo menos alguns dos usuários sinalizem digitalmente o novo bloco Br juntamente com outras informações para produzir uma assinatura digital; fazer com que pelo menos alguns dos usuários determinem um valor de hash da assinatura digital; fazer com que pelo menos alguns dos usuários comparem o valor de hash a um limite predeterminado; e fazer com que o subconjunto dos usuários disponibilize a assinatura digital para verificar o novo bloco Br em resposta ao valor de hash estar abaixo de um limite predeterminado para cada um dentre o subconjunto dos usuários.8. Method for selecting a subset of users in a blockchain system to verify a new Br block in relation to a sequence of previous blocks B0, B1,. . . , Br-1, in which the method is characterized by the fact that it comprises: making at least some of the users digitally sign the new Br block together with other information to produce a digital signature; having at least some of the users determine a digital signature hash value; make at least some of the users compare the hash value to a predetermined limit; and make the subset of users available the digital signature to verify the new Br block in response to the hash value being below a predetermined limit for each one of the subset of users. 9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que um usuário particular dentre os usuários sinaliza digitalmente o novo bloco Br apenas se o usuário particular dentre os usuários verificar as informações fornecidas no novo bloco Br.9. Method, according to claim 8, characterized by the fact that a private user among the users digitally signals the new Br block only if the private user among the users verifies the information provided in the new Br block. 10. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o valor predeterminado é escolhido para fazer com que o subconjunto dos usuários contenha um número mínimo dos usuários.10. Method, according to claim 8, characterized by the fact that the predetermined value is chosen to make the subset of users contain a minimum number of users. 11. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o sistema de blockchain é usado em um sistema de transação em que as transações são organizadas em blocos.11. Method according to claim 8, characterized by the fact that the blockchain system is used in a transaction system in which transactions are organized in blocks. 12. Método em um blockchain para causar certificação de pelo menos uma série de dados m, em que o método é caracterizado pelo fato de que compreende: fazer um conjunto S de usuários verificar se m possui pelo menos uma dada propriedade; fazer usuários sinalizarem digitalmente m, em resposta à verificação de m pelos usuários; e fazer os usuários disponibilizarem as assinaturas digitais de m que são assinaturas credenciadas de m.12. Method in a blockchain to cause certification of at least a series of data m, in which the method is characterized by the fact that it comprises: making a set S of users verify that m has at least one given property; make users digitally flag m in response to users checking for m; and make users make available digital signatures of m which are accredited signatures of m. 13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a assinatura digital de m é credenciada se a assinatura digital satisfizer uma dada propriedade adicional.13. Method, according to claim 12, characterized by the fact that the digital signature of m is accredited if the digital signature satisfies a given additional property. 14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que a assinatura digital de m satisfaz a dada propriedade adicional se um hash da assinatura digital for menor que um dado número alvo.14. Method, according to claim 13, characterized by the fact that the digital signature of m satisfies the given additional property if a hash of the digital signature is less than a given target number. 15. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que a série de dados m é certificada por pelo menos um dado número de assinaturas credenciadas de m.15. Method, according to claim 12, characterized by the fact that the data series m is certified by at least a given number of accredited signatures of m. 16. 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 implanta o método, de acordo com qualquer uma das reivindicações 1 a 15.16. 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 15.
BR112020006407-6A 2017-09-28 2018-09-28 message-accredited blockchains BR112020006407A2 (en)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201762564670P 2017-09-28 2017-09-28
US62/564,670 2017-09-28
US201762567864P 2017-10-04 2017-10-04
US62/567,864 2017-10-04
US201762570256P 2017-10-10 2017-10-10
US62/570,256 2017-10-10
US201762580757P 2017-11-02 2017-11-02
US62/580,757 2017-11-02
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
PCT/US2018/053360 WO2019067863A1 (en) 2017-09-28 2018-09-28 Message-credentialed blockchains

Publications (1)

Publication Number Publication Date
BR112020006407A2 true BR112020006407A2 (en) 2020-09-24

Family

ID=65903286

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020006407-6A BR112020006407A2 (en) 2017-09-28 2018-09-28 message-accredited blockchains

Country Status (13)

Country Link
US (1) US20200304314A1 (en)
EP (1) EP3688700A4 (en)
JP (1) JP2020536473A (en)
KR (1) KR20200101326A (en)
CN (1) CN111566680A (en)
AU (1) AU2018339067A1 (en)
BR (1) BR112020006407A2 (en)
CA (1) CA3077246A1 (en)
IL (1) IL273623A (en)
MX (1) MX2020004000A (en)
RU (1) RU2020114756A (en)
SG (1) SG11202002846TA (en)
WO (1) WO2019067863A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321732A (en) * 2019-05-23 2019-10-11 深圳壹账通智能科技有限公司 Data grant method, apparatus, storage medium and the electronic equipment of block catenary system
CN110300167B (en) * 2019-06-28 2020-07-31 京东数字科技控股有限公司 Service information processing method and device based on block chain and readable storage medium
CN110535629B (en) * 2019-09-20 2022-06-10 奥科塞尔控股公司 Block-out consensus method under asynchronous network condition
CN110838947B (en) * 2019-11-21 2021-04-23 桂林电子科技大学 Multi-block output common chain consensus mechanism based on H-Algorand
CN111273897A (en) * 2020-01-21 2020-06-12 北京艾鸥科技有限公司 Block chain resource consumption method and device, storage medium and electronic equipment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903882A (en) * 1996-12-13 1999-05-11 Certco, Llc Reliance server for electronic transaction system
US7047416B2 (en) * 1998-11-09 2006-05-16 First Data Corporation Account-based digital signature (ABDS) system
WO2009056048A1 (en) * 2007-10-23 2009-05-07 Yao Andrew C Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US11270298B2 (en) 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
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
JP6355168B2 (en) * 2015-11-09 2018-07-11 日本電信電話株式会社 Block chain generation device, block chain generation method, block chain verification device, block chain verification method and program
CN115660675A (en) * 2016-05-04 2023-01-31 阿尔戈兰德有限责任公司 Method performed by a computer device, corresponding system and storage medium

Also Published As

Publication number Publication date
EP3688700A4 (en) 2021-06-23
KR20200101326A (en) 2020-08-27
RU2020114756A (en) 2021-10-28
WO2019067863A1 (en) 2019-04-04
CN111566680A (en) 2020-08-21
JP2020536473A (en) 2020-12-10
MX2020004000A (en) 2020-10-05
AU2018339067A1 (en) 2020-04-09
CA3077246A1 (en) 2019-04-04
EP3688700A1 (en) 2020-08-05
SG11202002846TA (en) 2020-04-29
IL273623A (en) 2020-05-31
US20200304314A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
JP7181232B2 (en) Blockchain for general computation
JP7289298B2 (en) Computer-implemented system and method for authorizing blockchain transactions using low-entropy passwords
KR102409819B1 (en) Distributed transaction propagation and verification system
TWI784002B (en) Computer-implemented method and system for script-based blockchain interaction and non-transitory computer-readable storage medium
JP7225208B2 (en) Pseudorandom Number Generation in Blockchain
BR112020006407A2 (en) message-accredited blockchains
Leiding et al. Authcoin: validation and authentication in decentralized networks
KR20200059233A (en) Smart contract execution with distributed reconciliation
EP3643000A1 (en) Computer-implemented system and method for time release encryption over a blockchain network
KR20210135495A (en) A method for generating random numbers in blockchain smart contracts
Masood et al. Consensus algorithms in distributed ledger technology for open environment
BR112020012449A2 (en) fast and resilient block chains to partition
Ren Efficient and egalitarian consensus
Chakraborty et al. Blockchain-Based Security Solutions for Big Data and IoT Applications
You et al. A Multi-Party, Multi-Blockchain Atomic Swap Protocol with Universal Adaptor Secret
Kiayias et al. State of the Art of Cryptographic Ledgers
Le Secure and Private Access Control for Systems of Smart Devices
Yue et al. A 2 SHE: An Anonymous Authentication Scheme for Health Emergencies in Public Venues

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 6A ANUIDADE.