BR112019008151A2 - método implementado por computador, meio de armazenamento legível por computador não transitório e sistema - Google Patents

método implementado por computador, meio de armazenamento legível por computador não transitório e sistema Download PDF

Info

Publication number
BR112019008151A2
BR112019008151A2 BR112019008151A BR112019008151A BR112019008151A2 BR 112019008151 A2 BR112019008151 A2 BR 112019008151A2 BR 112019008151 A BR112019008151 A BR 112019008151A BR 112019008151 A BR112019008151 A BR 112019008151A BR 112019008151 A2 BR112019008151 A2 BR 112019008151A2
Authority
BR
Brazil
Prior art keywords
random number
account
transaction
computer
balance
Prior art date
Application number
BR112019008151A
Other languages
English (en)
Inventor
Ma Baoli
Zhang Wenbin
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of BR112019008151A2 publication Critical patent/BR112019008151A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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
    • 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
    • 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
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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

Abstract

as formas de realização da presente invenção incluem receber, através de um nó de consenso de uma primeira conta, uma cópia assinada digitalmente de um valor de comprometimento de um valor de transação, um segundo número aleatório criptografado usando uma chave pública da primeira conta, um terceiro número aleatório criptografado usando uma chave pública da segunda conta, uma ou mais provas de intervalo e um conjunto de valores gerados com base em um ou mais números aleatórios selecionados. o nó de consenso verifica então uma assinatura digital correspondente à cópia assinada digitalmente usando uma chave pública da primeira conta correspondente a uma chave privada usada para gerar a assinatura digital. ele também atualiza o saldo da primeira conta e um saldo da segunda conta com base no valor da transferência de saldo, se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório forem os mesmos.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO LEGÍVEL POR COMPUTADOR E SISTEMA PARA REALIZAR UM MÉTODO”
Campo da Invenção [001] A presente invenção refere-se aos métodos implementados por computador para verificação protegida por privacidade de transações de protocolo de confiança sem confirmação do usuário, interação e revelação de quantias de transação ou saldos de contas.
Antecedentes da Invenção [002] As redes de protocolo de confiança (blockchain), que também podem ser referidas como sistemas de protocolo de confiança, redes de consenso, redes de sistema de contabilidade distribuída ou protocolo de confiança, permitem que as entidades participantes armazenem dados de forma segura e imutável. Um protocolo de confiança pode ser descrito como um sistema de contabilidade de transações e várias cópias do livro-razão são armazenadas através da rede protocolo de confiança. Exemplos de tipos de protocolos de confiança podem incluir protocolos de confiança públicos, protocolos de confiança autorizados e protocolos de confiança privados. Um protocolo de confiança público está aberto para todas as entidades usarem o protocolo de confiança e participarem do processo de consenso. Um protocolo de confiança autorizado é semelhante a um protocolo de confiança público, mas aberto somente para entidades com permissão para participar. Um protocolo de confiança privado é fornecido para uma entidade específica, que controla centralmente as permissões de leitura e gravação.
[003] Os protocolos de confiança são usados em redes de criptomoedas, que permitem aos participantes realizar transações para comprar/ vender mercadorias e/ ou serviços usando uma criptomoeda. Uma criptomoeda comum inclui Bitcoin. Em redes de criptomoedas, os modelos de manutenção de registros são usados para registrar transações entre usuários.
Petição 870190058551, de 25/06/2019, pág. 9/54
2/33
Exemplos de modelos de manutenção de registros incluem o modelo de produto de transação não utilizada (UTXO) e o modelo de saldo de conta. No modelo UTXO, cada transação gasta o produto de transações anteriores e gera novos produtos que podem ser gastos em transações subsequentes. As transações não utilizadas de um usuário são rastreadas e um saldo que o usuário possui é calculado como a soma de todas as transações não utilizadas do usuário. No modelo de saldo de conta, o saldo da conta de cada usuário é rastreado como um estado global. Para cada transação, um saldo de uma conta de despesas é verificado para garantir que seja maior ou igual ao valor da transação. Isso é comparável ao banco tradicional.
[004] Um livro-razão de protocolo de confiança inclui uma série de blocos, cada um dos quais contém uma ou mais transações executadas na rede. Cada bloco pode ser explicado por analogia a uma página do livro-razão, enquanto o protocolo de confiança em si é uma cópia completa do livro-razão. Transações individuais são confirmadas e adicionadas a um bloco, que é adicionado ao protocolo de confiança. Cópias do livro-razão do protocolo de confiança são replicadas nos nós da rede. Desta forma, existe um consenso global sobre o estado do protocolo de confiança. Além disso, o protocolo de confiança está aberto para todos os nós verem, pelo menos no caso de redes públicas. Para proteger a privacidade dos usuários do protocolo de confiança, as tecnologias de criptografia podem ser implementadas.
[005] Sob o modelo de conta, os esquemas de comprometimento podem ser usados para ocultar valores com os quais ambas as partes de uma transação se comprometem. Os esquemas de comprometimento podem surgir da necessidade de as partes se comprometerem com uma escolha ou valor e, posteriormente, comunicar esse valor às outras partes envolvidas. Por exemplo, em um Comprometimento Pedersen interativo, a parte A pode se comprometer com uma quantia de transação t enviando um valor de
Petição 870190058551, de 25/06/2019, pág. 10/54
3/33 comprometimento PC (r, t) que é gerado com base no valor aleatório r. O valor de comprometimento é gerado e a parte B só pode revelar a quantia da transação t obtendo o número aleatório r.
Descrição da Invenção [006] As formas de realização da presente invenção incluem métodos implementados por computador para verificação protegida por privacidade de transações de protocolo de confiança sem confirmação do usuário, interação e revelação de quantias de transação ou saldos de contas. Mais particularmente, as formas de realização da presente invenção destinamse a validar transações entre usuários de protocolo de confiança com base em esquemas de comprometimento e criptografia homomórfica sem revelar a quantia de transação, saldos de conta ou números aleatórios para gerar comprometimentos com outros nós de protocolo de confiança.
[007] Em algumas formas de realização, as ações incluem receber, a partir de uma primeira conta, uma cópia assinada digitalmente de um valor de comprometimento de um valor de transação a ser transferido da primeira conta para uma segunda conta gerada com base em um primeiro número aleatório, um segundo número aleatório criptografado usando uma chave pública da primeira conta, um terceiro número aleatório criptografado usando uma chave pública da segunda conta, uma ou mais provas de intervalo e um conjunto de valores gerados com base em um ou mais números aleatórios selecionados; verificar uma assinatura digital correspondente à cópia assinada digitalmente usando uma chave pública da primeira conta correspondente a uma chave privada usada para gerar a assinatura digital; determinar que a uma ou mais provas de intervalo provam que o valor da transação é maior que zero e menor ou igual a um saldo da primeira conta; determinar se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são os mesmos, com base no conjunto de valores; e
Petição 870190058551, de 25/06/2019, pág. 11/54
4/33 atualizar o saldo da primeira conta e um saldo da segunda conta com base no valor da transferência de saldo, se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório forem os mesmos. Outras formas de realização incluem sistemas, aparelhos e programas de computador correspondentes, configurados para executar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[008] Essas e outras formas de realização podem incluir, opcionalmente, uma ou mais das seguintes características: o valor de comprometimento é gerado utilizando um esquema de comprometimento que é homomórfico; o esquema de comprometimento é um esquema de comprometimento Pedersen; o segundo número aleatório e o terceiro número aleatório são criptografados com base em um esquema de criptografia homomórfico determinista (HE) que tem propriedades lineares de HE (a + b) = HE (a)* HE (b) e HE (ab) = HE (b)a, em que a e b são textos planos usados para HE; os números aleatórios selecionados são representados por r1 e t1 e os números aleatórios selecionados são utilizados para gerar r2 e t2, em que r2 = r1 + xr, t2 = t1 + xt, em que r1 e t1 representam o um ou mais números aleatórios selecionados, r é o primeiro número aleatório, t é o valor da transferência de saldo, x é um valor de Hash; o conjunto de valores é gerado adicionalmente com base em T1, TT e T1”, em que T1 = gr1ht1, TT = HE_A (r1), ΤΓ = HE_B (r1), em que g e h são geradores de uma curva elíptica, e em que HE_A (rl) é gerado com base em HE de r1 usando a chave pública da primeira conta e HE_B (r1) é gerado com base em HE de r1 usando a chave pública da segunda conta, e em que x é gerado com base no hashing T1, TT e T1”; o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são determinados como sendo os mesmos com base nas propriedades do HE determinístico; o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são determinados como sendo os mesmos se g^h12 = TXT1, HE_A (r2) = T'XT1' e HE_B (r2) = T”XT1 ”, em que T = grhf, Τ' = HE_A
Petição 870190058551, de 25/06/2019, pág. 12/54
5/33 (r) e T” = HE_B (r), e em que HE_A (r) e HE_A (r2) são gerados com base em HE de r e r2, respectivamente, usando a chave pública da primeira conta, HE_B (r) e HE_B (r2) são gerados com base em HE de r e r2 usando a chave pública da segunda conta; T, T e T” formam um texto cifrado do valor da transação t; e a atualização do saldo da primeira conta e um saldo da segunda conta é realizada com base em criptografia homomórfica.
[009] A presente invenção também proporciona um ou mais meios de armazenamento legíveis por computador, não-transitórios, acoplados a um ou mais processadores e tendo instruções armazenadas nele que, quando executadas pelo um ou mais processadores, fazem com que o um ou mais processadores executem operações de acordo com formas de realização dos métodos aqui fornecidos.
[010] A presente invenção fornece ainda um sistema para a forma de realização dos métodos aqui fornecidos. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador acoplado ao um ou mais processadores possuindo instruções armazenadas nele que, quando executadas pelo um ou mais processadores, fazem com que o um ou mais processadores executem operações de acordo com formas de realização dos métodos aqui fornecidos.
[011] É apreciado que os métodos de acordo com a presente invenção podem incluir qualquer combinação dos aspectos e características aqui descritos. Isto é, os métodos de acordo com a presente invenção não estão limitados às combinações de aspectos e características especificamente descritos aqui, mas também incluem qualquer combinação dos aspectos e características proporcionados.
[012] Os detalhes de uma ou mais formas de realização da presente invenção são apresentados nas figuras anexas e na descrição abaixo. Outras características e vantagens da presente invenção serão evidentes a partir da
Petição 870190058551, de 25/06/2019, pág. 13/54
6/33 descrição e figuras, e a partir das reivindicações.
Breve Descrição dos Desenhos [013] A Figura 1 representa um exemplo de ambiente que pode ser usado para executar formas de realização da presente invenção.
[014] A Figura 2 representa um exemplo de arquitetura conceituai de acordo com formas de realização da presente invenção.
[015] A Figura 3 representa um exemplo de método de validação protegida por privacidade de uma transação de protocolo de confiança baseada em criptografia homomórfica de acordo com formas de realização da presente invenção.
[016] A Figura 4 representa um exemplo de transação de protocolo de confiança baseada em criptografia homomórfica de acordo com formas de realização da presente invenção.
[017] A Figura 5 representa outro exemplo de método de validação protegida por privacidade de uma transação de protocolo de confiança baseada em criptografia homomórfica de acordo com formas de realização da presente invenção.
[018] A Figura 6 representa outro exemplo de transação de protocolo de confiança baseada em criptografia homomórfica de acordo com formas de realização da presente invenção.
[019] A Figura 7 representa um exemplo de processo que pode ser executado de acordo com formas de realização da presente invenção.
[020] A Figura 8 representa outro exemplo de processo que pode ser executado de acordo com formas de realização da presente invenção.
[021] Símbolos de referência iguais nos vários desenhos indicam elementos iguais.
Descrição de Realizações da Invenção [022] As formas de realização da presente invenção incluem
Petição 870190058551, de 25/06/2019, pág. 14/54
7/33 métodos implementados por computador para verificação protegida por privacidade de transações de protocolo de confiança sem confirmação de usuário, interação e revelação de quantias de transação ou saldos de conta. Mais particularmente, as formas de realização da presente invenção destinamse a validar transações entre usuários de protocolo de confiança com base em esquemas de comprometimento e criptografias homomórfica (HE) sem revelar a quantia de transação, saldos de conta ou números aleatórios para gerar comprometimentos para outros nós de protocolo de confiança.
[023] Para fornecer contexto adicional para formas de realização da presente invenção, e como introduzido acima, redes de protocolo de confiança, que também podem ser referidas como redes de consenso (por exemplo, compostas de nós peer-to-peer), sistema de contabilidade distribuída, ou simplesmente protocolo de confiança, permitem que as entidades participantes conduzam transações e armazenem dados de maneira segura e imutável. Um protocolo de confiança pode ser fornecido como um protocolo de confiança público, um protocolo de confiança privado ou um protocolo de confiança de consórcio. As formas de realização da presente invenção são aqui descritas em mais detalhe com referência a um protocolo de confiança público, que é público entre as entidades participantes. Está contemplado, no entanto, que as formas de realização da presente invenção podem ser realizadas em qualquer tipo apropriado de protocolo de confiança.
[024] Em um protocolo de confiança público, o processo de consenso é controlado por nós da rede de consenso. Por exemplo, centenas, milhares e até milhões de entidades podem participar de um protocolo de confiança público, cada uma das quais opera pelo menos um nó no protocolo de confiança público. Assim, o protocolo de confiança público pode ser considerado uma rede pública em relação às entidades participantes. Em alguns exemplos, a maioria das entidades (nós) deve assinar todos os blocos
Petição 870190058551, de 25/06/2019, pág. 15/54
8/33 para que o bloco seja válido e adicionado ao protocolo de confiança. Um exemplo de protocolo de confiança público inclui o protocolo de confiança usado na rede Bitcoin, que é uma rede de pagamento peer-to-peer (rede de criptomoedas). Embora o termo protocolo de confiança seja comumente referenciado em mãos com a rede Bitcoin, como aqui usado, protocolo de confiança geralmente se refere a livros-razão distribuídos sem referência particular à rede Bitcoin.
[025] Em geral, um protocolo de confiança público suporta transações públicas. Uma transação pública é compartilhada com todos os nós dentro do protocolo de confiança, e o livro-razão de protocolo de confiança é replicado em todos os nós. Ou seja, todos os nós estão em perfeito estado de consenso em relação ao protocolo de confiança. Para chegar a um consenso (por exemplo, acordo para a adição de um bloco a um protocolo de confiança), um protocolo de consenso é implementado dentro da rede de protocolo de confiança. Um exemplo de protocolo de consenso inclui, sem limitação, prova de trabalho (POW) implementada na rede Bitcoin.
[026] As formas de realização da presente invenção são aqui descritas em maior detalhe tendo em vista o contexto acima. Mais particularmente, e como introduzido acima, as formas de realização da presente invenção destinam-se a validar transações entre usuários de protocolo de confiança com base em esquemas de comprometimento e HE sem revelar a quantia da transação, saldos de contas ou números aleatórios para gerar os comprometimentos para outros nós de protocolo de confiança.
[027] De acordo com as formas de realização da presente invenção, as transações de protocolo de confiança podem ser validadas e registradas em um protocolo de confiança (livro-razão) baseado em comprometimento, sem revelar o saldo de conta de transação, a quantia da transação ou o número aleatório utilizado para gerar o comprometimento. Um
Petição 870190058551, de 25/06/2019, pág. 16/54
9/33 esquema de comprometimento, como o comprometimento Pedersen (PC), pode ser usado para gerar um comprometimento de uma quantia de transação usando um número aleatório. A quantia de transação e o número aleatório podem ser criptografados usando HE probabilístico ou determinístico. A quantia de transação e o número aleatório também podem ser usados para gerar um conjunto de valores como provas para validar a transação com base nas propriedades do HE. O comprometimento da transação, a quantia de transação criptografada, o número aleatório criptografado e as provas podem ser usados por um nó de protocolo de confiança para verificar se a transação é válida sem o saldo de conta, a quantia de transação ou o número aleatório sendo revelado.
[028] A Figura 1 representa um exemplo de ambiente (100) que pode ser utilizado para executar formas de realização da presente invenção. Em alguns exemplos, o ambiente de exemplo (100) permite que entidades participem em um protocolo de confiança público (102). O ambiente de exemplo (100) inclui sistemas de computação (106, 108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede de área local (LAN), rede de longa distância (WAN), a Internet ou uma combinação dos mesmos, e conecta web sites, dispositivos de usuário (por exemplo, dispositivos de computação) e sistemas secundários (back-end). Em alguns exemplos, a rede (110) pode ser acessada através de uma conexão de comunicação com fio e/ ou sem fio.
[029] No exemplo descrito, os sistemas de computação (106, 108) podem incluir, cada um, qualquer sistema de computação apropriado que permita a participação como um nó no protocolo de confiança público (102). Exemplos de dispositivos de computação (120) incluem, sem limitação, um servidor, um computador de mesa, um computador laptop, um dispositivo de computação tablet e um telefone inteligente. Em alguns exemplos, os sistemas de computação (106, 108) hospedam um ou mais serviços implementados por
Petição 870190058551, de 25/06/2019, pág. 17/54
10/33 computador para interagir com o protocolo de confiança público (102). Por exemplo, o sistema de computação (106) pode hospedar serviços implementados por computador de uma primeira entidade (por exemplo, usuário A), tal como um sistema de gestão de transações que a primeira entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). O sistema de computação (108) pode hospedar serviços implementados por computador de uma segunda entidade (por exemplo, usuário B), tal como sistema de gestão de transação que a segunda entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). No exemplo da Figura 1, o protocolo de confiança público (102) é representado como uma rede peer-topeer de nós, e os sistemas de computação (106, 108) fornecem nós da primeira entidade e segunda entidade, respectivamente, que participam no protocolo de confiança público (102).
[030] A Figura 2 representa um exemplo de arquitetura conceituai (200) de acordo com formas de realização da presente invenção. A arquitetura conceituai exemplificativa (200) inclui uma camada de entidade (202), uma camada de serviços hospedados (204) e uma camada de protocolo de confiança público (206). No exemplo representado, a camada de entidade (202) inclui três entidades, Entidade_1 (E1), Entidade_2 (E2) e Entidade_3 (E3), cada entidade possuindo um respectivo sistema de gestão de transações (208).
[031] No exemplo representado, a camada de serviços hospedados (204) inclui interfaces de protocolo de confiança (210) para cada sistema de gestão de transação (208). Em alguns exemplos, um sistema de gestão de transação respectivo (208) se comunica com uma respectiva interface de protocolo de confiança (210) através de uma rede (por exemplo, a rede (110) da Figura 1) usando um protocolo de comunicação (por exemplo,
Petição 870190058551, de 25/06/2019, pág. 18/54
11/33 protocolo de transferência de hipertexto seguro (HTTPS)). Em alguns exemplos, cada interface de protocolo de confiança (210) fornece uma conexão de comunicação entre um respectivo sistema de gestão de transação (208) e a camada de protocolo de confiança (206). Mais particularmente, cada interface de protocolo de confiança (210) permite que a respectiva entidade realize transações registradas em uma rede de protocolo de confiança (212) da camada de protocolo de confiança (206). Em alguns exemplos, a comunicação entre uma interface de protocolo de confiança (210), e a camada de protocolo de confiança (206) é conduzida utilizando chamadas de procedimentos remotos (RPCs). Em alguns exemplos, as interfaces de protocolo de confiança (210) “hospedam” nós de protocolo de confiança para os respectivos sistemas de gestão de transações (208). Por exemplo, as interfaces de protocolo de confiança (210) fornecem a interface de programação de aplicativos (API) para acesso à rede de protocolo de confiança (212).
[032] Como descrito aqui, a rede de protocolo de confiança (212) é fornecida como uma rede peer-to-peer incluindo uma pluralidade de nós (214) que gravam informações de maneira imutável em um protocolo de confiança (216). Embora um único protocolo de confiança (216) seja esquematicamente representado, várias cópias do protocolo de confiança (216) são fornecidas, e são mantidas através do protocolo de confiança (212). Por exemplo, cada nó (214) armazena uma cópia do protocolo de confiança (216). Em algumas formas de realização, o protocolo de confiança (216) armazena informação associada a transações que são realizadas entre duas ou mais entidades participantes no protocolo de confiança público.
[033] A Figura 3 representa um exemplo de método (300) de validação protegida por privacidade de uma transação de protocolo de confiança baseada em HE de acordo com formas de realização da presente invenção. Em um nível elevado, o método de exemplo (300) é realizado por um
Petição 870190058551, de 25/06/2019, pág. 19/54
12/33 nó de usuário A (302), um nó de usuário B (não mostrado na Figura 3) e um nó de protocolo de confiança (304), também referido como um nó de consenso. Uma transação, como uma transferência de valor, pode ser feita a partir do nó de usuário A (302) para o nó de usuário B. Para proteger a privacidade da conta, o nó de usuário A (302) pode gerar um comprometimento de uma quantia de transação t usando um esquema de comprometimento, como PC, baseado em um número aleatório r. O comprometimento gerado usando o PC pode ser expresso como PC (r, t). O nó de usuário A (302) também pode criptografar o número aleatório usando HE com base em uma chave pública do nó de usuário B. Isso pode ser expresso como HE (r). Um texto cifrado da quantia de transação t, expresso como (PC (r, t), HE (r)) pode ser transmitido para o nó de usuário B. Depois de receber o texto cifrado, o nó de usuário B pode decifrar o número aleatório r usando uma chave privada. O nó de usuário B pode usar o número aleatório r para decifrar a quantia de transação t. Para provar a validade da transação, o nó de protocolo de confiança (304) pode comparar o número aleatório no comprometimento e o número aleatório criptografado usando HE. Se os números aleatórios coincidirem, a transação é determinada como válida pelo nó de protocolo de confiança (304) com conhecimento zero dos dados de transação. Mais detalhes do método (300) de exemplo são discutidos na seguinte descrição da Figura 3.
[034] Em (306), o nó de usuário A (302) gera um valor de comprometimento de uma quantia de transação com base em um primeiro número aleatório, e criptografa, baseado em HE, um segundo número aleatório usando uma chave pública do nó de usuário A (302) e um terceiro número aleatório usando uma chave pública do nó de usuário B. O primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório podem ser o mesmo número aleatório r usado para gerar um comprometimento de uma quantia de transação t usando um esquema de comprometimento. Em algumas
Petição 870190058551, de 25/06/2019, pág. 20/54
13/33 formas de realização, o esquema de comprometimento pode ter uma forma exponencial dupla, como o PC. Usando o PC como um exemplo não limitative, o valor de comprometimento gerado pelo primeiro número aleatório r pode ser expresso como PC (r, t) = grht, onde g e h podem ser geradores de uma curva elíptica, PC (r, t) é uma multiplicação escalar de pontos de curva, e t é a quantia de transação com a qual está comprometida. Deve ser entendido que outros esquemas de comprometimento baseados em HE, como OkamotoUchiyama (OU) HE, e Boneh-Goh-Nissim HE também podem ser usados para gerar o valor de comprometimento.
[035] A criptografia do segundo número aleatório r criptografada utilizando a chave pública do nó de usuário A (302) pode ser expressa como HE_A (r). A criptografia do terceiro número aleatório r criptografado usando a chave pública do nó de usuário B pode ser expressa como HE_B (r).
[036] Em algumas formas de realização, a criptografia de chave pública HE pode ser um HE determinístico que pode ser obtido a partir de esquemas HE probabilísticos, tais como Paillier HE, Benaloh HE, OU HE, Naccache-Stern HE, Damgard-Jurik HE, ou Boneh-Goh-Nissim HE, definindo o número aleatório para um valor fixo. Em algumas formas de realização, esquemas HE determinísticos que satisfazem as propriedades lineares que HE (a + b) = HE (a) + HE (b) e HE (ab) = HE (b)a, onde a e b são texto não codificado (plaintext) usado para HE, pode ser utilizado para a presente invenção.
[037] Em alguns exemplos, T = PC (r, t), T = HE_A (r) e T” = HE_B (r), e o texto cifrado da quantia de transação pode ser expresso como (T, T e T”). A transação pode ser determinada como válida, se as condições do exemplo forem atendidas. Primeiro, a quantia de transação t é maior ou igual a 0 e menor ou igual a um saldo de conta s_A do nó de usuário A (302). Segundo a transação é assinada digitalmente pela chave privada do nó de usuário A
Petição 870190058551, de 25/06/2019, pág. 21/54
14/33 (302), chave privada para provar que a transação é autorizada pelo nó de usuário A (302). Terceiro, o número aleatório r no comprometimento PC (r, t) é o mesmo que o r criptografado no texto cifrado HE_A (r), e HE_B (r) usando as chaves públicas do nó de usuário A (302) e do nó de usuário B, respectivamente.
[038] Em algumas formas de realização, o texto cifrado também pode ser separado como um texto cifrado de uma quantia enviada (t’), que pode ser expressa como (PC (r’, t’), HE_A (r’)), e um texto cifrado de uma quantia recebida (t”), que pode ser expressa como (PC (r”, t”), HE_B (r”)). Nesses casos, a quantia enviada t’ também precisa ser determinada como igual à quantia recebida t” para validar a transação.
[039] Em (308), o nó de usuário A (302) gera uma ou mais provas de intervalo. Em algumas formas de realização, as provas de intervalo podem incluir uma prova de intervalo RP1 para mostrar que a quantia de transação t é maior ou igual a zero, e uma prova de intervalo RP2 para mostrar que a quantia de transação t é menor ou igual a um saldo de conta do nó de usuário A.
[040] Em (310), o nó de usuário A (302) gera um conjunto de valores usando HE com base em um ou mais números aleatórios selecionados. O conjunto de valores, denotado como Pf, pode incluir provas usadas para provar que o número aleatório r no comprometimento PC (r, t) é o mesmo que o r criptografado no texto cifrado HE_A (r) e HE_B (r) usando as chaves públicas do nó de usuário A (302) e do nó de usuário B, respectivamente. Em algumas formas de realização, dois números aleatórios r1 e t1 podem ser selecionados para calcular outro conjunto de textos cifrados de t1 denotado como (T1, T1 ’, T1 ”), onde T1 = gr1 ht1, TT = HE_A (r1), T1 ” = HE_B (r1). Duas provas adicionais r2 e t2 podem ser calculadas como r2 = r1 + xr, t2 = t1 + xt, onde x é a dispersão de T1, TT e T1”. O conjunto de valores pode ser
Petição 870190058551, de 25/06/2019, pág. 22/54
15/33 denotado como Pf = (T1, T1 T1”, r2, t2).
[041] Em (312), o nó de usuário A (302) usa sua chave privada para assinar digitalmente o texto cifrado (T, Τ’, T”), o texto cifrado (T1, TT, ΤΓ), r2, t2, as provas de intervalo RP1 e RP2, e as chaves públicas do nó de usuário A (302), e o nó de usuário B. A assinatura digital adicionada pelo nó de usuário A (302) pode ser usada para mostrar que a transação é autorizada pelo nó de usuário A (302). A cópia assinada digitalmente é submetida à rede de protocolo de confiança em (314).
[042] Em (316), o nó de protocolo de confiança (304) verifica a assinatura digital usando uma chave pública do nó de usuário A (302). O nó de protocolo de confiança (304) pode ser um nó de consenso que pode provar a validade de transações na rede de protocolo de confiança. Se o nó de protocolo de confiança (304) não puder verificar a assinatura digital do nó de usuário A (302) usando a chave pública, a assinatura digital pode ser determinada como incorreta e a transação pode ser negada. Em algumas formas de realização, o nó de protocolo de confiança (304) também pode incluir um mecanismo anti-gasto duplo. O nó de protocolo de confiança (304) pode verificar se a transação já foi executada ou registrada. Se a transação já foi executada, a transação pode ser rejeitada. Caso contrário, a validação da transação pode continuar.
[043] Em (318), o nó de protocolo de confiança (304) verifica as uma ou mais provas de intervalos. Por exemplo, a prova de intervalo RP1 pode ser usada para provar que a quantia de transação t é maior ou igual a zero, e a prova de intervalo RP2 pode ser usada para provar que a quantia de transação t é menor ou igual a um saldo de conta do nó de usuário A (302).
[044] Em (320), o nó de protocolo de confiança (304) determina que o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são os mesmos com base no conjunto de valores. Em
Petição 870190058551, de 25/06/2019, pág. 23/54
16/33 algumas formas de realização, a determinação inclui determinar se as condições de exemplo gr2ht2 = TxT1, HE_A (r2) = TxTT e HE_B (r2) = T”xT1” são verdadeiras com base nas propriedades do HE determinístico, conforme discutido acima. Se verdadeiras, pode ser indicado que o número aleatório no comprometimento é o mesmo que os números aleatórios criptografados homomorficamente usando as chaves públicas do nó de usuário A (302) e do nó de usuário B, e a transação é válida.
[045] Em (322), o nó de protocolo de confiança (304) atualiza os saldos de conta do nó de usuário A (302), e do nó de usuário B. As atualizações de saldo podem ser realizadas com base nas propriedades de HE sem revelar os saldos de conta do nó de usuário A (302) ou do nó de usuário B. A atualização dos saldos de conta é descrita em mais detalhe aqui com referência à Figura 4.
[046] A Figura 4 representa um exemplo de transação de protocolo de confiança (400) baseada em HE de acordo com formas de realização da presente invenção. Como mostrado no exemplo de transação de protocolo de confiança (400), um nó de usuário A (402) transfere uma quantia de transação t para um nó de usuário B (406). Antes da transação, o nó de usuário A (402) tem um saldo de conta de s_A e o nó de usuário B (406) tem um saldo de conta de s_B.
[047] Usando os esquemas de criptografia e processo de transação descritos aqui com referência à Figura 3 como exemplo, o saldo de conta s_A pode ser criptografado usando um número aleatório r_A baseado em PC e o número aleatório r_A pode ser criptografado com base em HE. O texto cifrado do saldo de conta s_A pode ser expresso como (S_A, S’_A) = (gr_Ahs_A, HE_A (r_A)), onde g e h podem ser geradores de uma curva elíptica para gerar o PC do saldo de conta s_A. Da mesma forma, um saldo de conta s_B do nó de usuário B (406) pode ser criptografado usando um número
Petição 870190058551, de 25/06/2019, pág. 24/54
17/33 aleatório r_B baseado no PC. O texto cifrado do saldo de conta s_B pode ser expresso como (S_B, S’_B) = (gr_Bhs_B, HE_A (r_B)).
[048] Em (404), o nó de usuário A (402) pode adicionar assinatura digital às provas usadas para validar a transação, e enviar a cópia assinada digitalmente para a rede de protocolo de confiança (408). Como descrito acima com referência à Figura 3, as provas podem incluir o texto cifrado da quantia de transação (T, Τ’, T”), a uma ou mais provas de intervalo (RP1, RP2) e outras provas (T1, TT, T1”, r2, t2).
[049] Após a transação, o saldo de conta do nó de usuário A (402) pode ser expresso como s_A -1’, e o saldo de conta do nó de usuário B (406) pode ser expresso como s_B + t”, onde t’ é a quantia enviada pelo nó de usuário A (402) e t” é a quantia recebida pelo nó de usuário B. O texto cifrado do saldo de conta do nó de usuário A (402) após a transação pode ser expresso como (S_A/ T, S’_A/ Τ’) e o texto cifrado do saldo de conta do nó de usuário B (406) após a transação poder ser expresso como (S_B * T, S’_B * T”). Como S_A, S’_A, S_B, S’_B, T, T’ e T” são, cada um, criptografados usando HE com forma exponencial dupla, a adição e a subtração podem ser executadas em sua forma criptografada sem decifrar os valores de texto não codificado.
[050] A Figura 5 representa outro exemplo de método (500) de validação protegida por privacidade de uma transação de protocolo de confiança baseada em HE de acordo com formas de realização da presente invenção. Em um nível elevado, o método de exemplo (500) é realizado por um nó de usuário A (502), um nó de usuário B (não mostrado na Figura 5) e um nó de protocolo de confiança (504), que pode ser referido como um nó de consenso. Uma transação, como uma transferência de valor, pode ser feita a partir do nó de usuário A (502) para o nó de usuário B. Para proteger a privacidade da conta, o nó de usuário A (502) pode gerar um comprometimento
Petição 870190058551, de 25/06/2019, pág. 25/54
18/33 da quantia de transação t usando um esquema de comprometimento, como PC, baseado em um número aleatório r. O comprometimento gerado usando o PC pode ser expresso em PC (r, t). O nó de usuário A (502) também pode criptografar a quantia de transação t e o número aleatório r usando HE que possui uma forma exponencial dupla, como a OU.
[051] Um texto cifrado da quantia de transação t pode ser submetido à rede de protocolo de confiança. Depois de receber o texto cifrado, o nó de protocolo de confiança (504) pode determinar se o número aleatório r oculto no PC corresponde ao número aleatório r criptografado na OU usando as chaves públicas do nó de usuário A (502) e o nó de usuário B, respectivamente. Além disso, o nó de protocolo de confiança (504) pode determinar se a quantia de transação t oculta no PC corresponde à quantia de transação t criptografada na OU usando as chaves públicas do nó de usuário A (502) e do nó de usuário B, respectivamente. Se ambos os números aleatórios e as quantias de transação coincidirem, a transação pode ser determinada como sendo válida pelo nó de protocolo de confiança (504) com conhecimento zero dos dados da transação.
[052] Em (506), o nó de usuário A (502) gera um valor de comprometimento de uma primeira quantia de transação com base em um primeiro número aleatório, e a primeira quantia de transação e o primeiro número aleatório criptografado usando uma chave pública do nó de usuário A (502). Uma segunda quantia de transação e um segundo número aleatório são criptografados usando uma chave pública do nó de usuário B. A primeira quantia de transação e a segunda quantia de transação podem ser a mesma quantia t. O primeiro número aleatório e o segundo número aleatório podem ser o mesmo número aleatório r usado para gerar um comprometimento da quantia de transação t usando um esquema de comprometimento. Em algumas formas de realização, o esquema de comprometimento pode ter uma forma
Petição 870190058551, de 25/06/2019, pág. 26/54
19/33 exponencial dupla, como o PC. Usando o PC como exemplo, o valor de comprometimento gerado pelo primeiro número aleatório r pode ser expresso como PC (r, t) = grht, onde g e h podem ser geradores de uma curva elíptica, PC (r, t) é uma multiplicação escalar de pontos de curva, e t é a quantia de transação que está comprometida. Deve ser entendido que outros esquemas de comprometimento baseados em HE, como OU HE e Boneh-Goh-Nissim HE também podem ser usados para gerar o valor de comprometimento.
[053] O nó de usuário A (502) também pode criptografar o primeiro número aleatório e a primeira quantia de transação usando a chave pública do nó de usuário A (502) e criptografar o segundo número aleatório e a segunda quantia de transação usando a chave pública do nó de usuário B. Em algumas formas de realização, a criptografia dos números aleatórios e das quantias de transação pode ser baseada em HE probabilístico, tal como OU. Usando OU como um exemplo, a criptografia do primeiro número aleatório e da primeira quantia de transação usando a chave pública do nó de usuário A (502) pode ser expressa como OU_A (r) = u1rv1y1 e OU_A (t) = u1tv1y2, respectivamente, em que u1 e v1 são geradores na curva elíptica e y1 e y2 são números aleatórios usados para gerar OU_A (r) e OU_A (t). O segundo número aleatório criptografado e a segunda quantia de transação podem ser expressos como OU_B (r) = u2rv2z1 e OU_B (t) = u2tv2z2, respectivamente, onde u2 e v2 são geradores na curva elíptica e z1 e z2 são números aleatórios usados para gerar OU_B (r) e OU_B (t), respectivamente. OU probabilístico satisfaz a propriedade que OU (a + b) = OU (a) * OU (b), onde a e b são o texto não codificado usado para OU.
[054] O texto cifrado da quantia de transação t pode ser expresso como (PC (r, t), OU_A (r), OU_A (t), OU_B (r), OU_B (t)). A transação pode ser determinada como válida, se as seguintes condições de exemplo forem atendidas. Primeiro, a quantia de transação t é maior ou igual a 0 e menor ou
Petição 870190058551, de 25/06/2019, pág. 27/54
20/33 igual ao saldo de conta s_A do nó de usuário A (502). Segundo a transação é assinada digitalmente usando a chave privada do nó de usuário A (502), chave privada para provar que a transação é autorizada pelo nó de usuário A (502). Terceiro, o número aleatório r no comprometimento PC (r, t) é o mesmo que o r criptografado no texto cifrado OU_A (r) e OU_B (r) usando as chaves públicas do nó de usuário A (502) e do nó de usuário B, respectivamente. Quarto, a quantia de transação t no comprometimento PC (r, t) é igual ao t criptografado no texto cifrado OU_A (t) e OU_B (t) usando as chaves públicas do nó de usuário A (502) e do nó de usuário B, respectivamente.
[055] Em algumas formas de realização, o texto cifrado também pode ser separado como um texto cifrado de uma quantia enviada (t’), que pode ser expressa como (PC (r’, t’), OU_A (r’), OU_A (t’)), e um texto cifrado de uma quantia recebida (t”), que pode ser expressa como (PC (r”, t”), OU_B (r”), OU_B (t”)). Nesses casos, a quantia enviada t’ também precisa ser determinada como igual à quantia recebida t” para validar a transação.
[056] Em (508), o nó de usuário A (502) gera uma ou mais provas de intervalo. Em algumas formas de realização, as provas de intervalo podem incluir uma prova de intervalo RP1 para mostrar que a quantia de transação t é maior ou igual a zero, e uma prova de intervalo RP2 para mostrar que a quantia de transação t é menor ou igual a um saldo de conta do nó de usuário A.
[057] Em (510), o nó de usuário A (502) gera um conjunto de valores usando HE com base em um ou mais números aleatórios selecionados. O conjunto de valores, denotado como Pf, pode incluir provas usadas para provar que o número aleatório r no comprometimento PC (r, t) é o mesmo que o r criptografado no texto cifrado OU_A (r) e OU_B (r) e a quantia de transação t no comprometimento PC (r, t) é a mesma que t criptografado no texto cifrado OU_A (t) e OU_B (t). Em algumas formas de realização, quatro números
Petição 870190058551, de 25/06/2019, pág. 28/54
21/33 aleatórios r*, t*, z1* e z2* podem ser selecionados para calcular outro conjunto de textos cifrados denotados como (C, D, E), onde C = gr*ht*, D = u2r*v2z1* e E = u2t*v2z2*, em que g, h, u2 e v2 são geradores de uma curva elíptica. Quatro provas adicionais a, b, c e d podem ser calculadas como a = r* + xr, b = t* + xt, c = z1 * + xz1 e d = z2* + xz2, onde x é uma função de dispersão de g, h, u2, v2, C, D e E. O conjunto de valores pode então ser denotado como Pf = (C, D, E, a, b, c, d).
[058] Em (512), o nó de usuário A (502) usa sua chave privada para assinar digitalmente o texto cifrado (PC (r, t), OU_A (r), OU_A (t), OU_B (r), OU_B (t)), as provas de intervalo RP1 e RP2, e o conjunto de valores Pf. A assinatura digital adicionada pelo nó de usuário A (502) pode ser usada para mostrar que a transação é autorizada pelo nó de usuário A (502). A cópia assinada digitalmente é submetida à rede de protocolo de confiança em (514).
[059] Em (516), o nó de protocolo de confiança (504) verifica a assinatura digital usando uma chave pública do nó de usuário A (502). O nó de protocolo de confiança (504) pode ser um nó de consenso que pode provar a validade das transações na rede de protocolo de confiança. Se o nó de protocolo de confiança (504) não puder verificar a assinatura digital usando a chave pública do nó de usuário A, a assinatura digital pode ser determinada como incorreta e a transação pode ser negada. Em algumas formas de realização, o nó de protocolo de confiança (504) também pode incluir um mecanismo anti-gasto duplo. O nó de protocolo de confiança (504) pode verificar se a transação já foi executada ou registrada. Se a transação já foi executada, a transação pode ser rejeitada. Caso contrário, a validação da transação pode continuar.
[060] Em (518), o nó de protocolo de confiança (504) verifica a uma ou mais provas de intervalo. Por exemplo, a prova de intervalo RP1 pode ser usada para provar que a quantia de transação t é maior ou igual a zero, e a
Petição 870190058551, de 25/06/2019, pág. 29/54
22/33 prova de intervalo RP2 pode ser usada para provar que a quantia de transação t é menor ou igual a um saldo de conta de nó de usuário A (502).
[061] Em (520), o nó de protocolo de confiança (504) determina se a primeira quantia de transação é a mesma que a segunda quantia de transação, e se o primeiro número aleatório é o mesmo que o segundo número aleatório baseado no conjunto de valores. Em algumas formas de realização, a determinação inclui determinar se gahb = CTx, u2av2c = DZ_B1x e u2bv2d = EZ_B2x, onde T = grht é o valor de comprometimento da primeira quantia de transação t, Z_B1 = u2rv2z1, Z_B2 = u2tv2z2 e em que z1 e z2 são números aleatórios usados para criptografar a segunda quantia de transação e o segundo número aleatório baseado no esquema HE probabilístico. Se verdadeiro, pode ser indicado que o número aleatório e a quantia de transação no comprometimento são, respectivamente, os mesmos números aleatórios e as quantias de transação criptografados homomorficamente usando a chave pública do nó de usuário A (502) e do nó de usuário B, e a transação é válida.
[062] Em (522), o nó de protocolo de confiança (504) atualiza os saldos de conta do nó de usuário A (502) e do nó de usuário B. As atualizações de saldo de conta podem ser realizadas com base nas propriedades de HE sem revelar os saldos de conta do nó de usuário A (502), e/ ou do nó de usuário B.
[063] A Figura 6 representa outro exemplo de transação de protocolo de confiança (600) baseado em HE de acordo com formas de realização da presente invenção. Como mostrado na transação de exemplo (600), um nó de usuário A (602) transfere uma quantia de transação t para um nó de usuário B (606). Antes da transação, o nó de usuário A (602) possui um saldo de conta de s_A e o nó de usuário B (606) possui um saldo de conta s_B.
[064] Em alguns exemplos, o saldo de conta s_A pode ser oculto usando um número aleatório r_A baseado no PC usando os esquemas de
Petição 870190058551, de 25/06/2019, pág. 30/54
23/33 criptografia e o processo de transação descrito aqui com referência à Figura 5. O número aleatório r_A e o saldo de conta podem ser criptografados com base na OU. O texto cifrado do saldo de conta s_A pode ser expresso como (S_A, R_A, Q_A) = (gr_Ahs_A, OU_A (r_A), OU_A (s_A)), onde g e h podem ser geradores de uma curva elíptica para gerar o PC do saldo de conta s_A. Da mesma forma, um saldo de conta s_B do nó de usuário B (606) pode ser criptografado usando um número aleatório r_B baseado no PC. O texto cifrado do saldo de conta s_B pode ser expresso como (S_B, S’_B) = (gr_Bhs_B, OU_B (r_B), OU_B (s_B)).
[065] Em (604), o nó de usuário A (602) pode adicionar uma assinatura digital às provas usadas para validar a transação e enviar a cópia assinada digitalmente à rede de protocolo de confiança (608). Como descrito aqui com referência à Figura 5, as provas podem incluir o texto cifrado da quantia de transação (PC (r, t), OU_A (r), OU_A (t), OU_B (r), OU_B (t)), a uma ou mais provas de intervalo (RP1, RP2) e outras provas (C, D, E, a, b, c, d).
[066] Após a transação, o saldo de conta do nó de usuário A (602) pode ser expresso como s_A -1, e o saldo de conta do nó de usuário B (606) pode ser expresso como s_B + t. O texto cifrado do saldo de conta do nó de usuário A (602) após a transação pode ser expresso como (S_A/ T, R_A/ Y_A1, Q_A/ Y_A2), em que Y_A1 = OU_A (r) e Y_A2 = OU_A (t). O texto cifrado do saldo de conta do nó de usuário B (606) após a transação pode ser expresso como (S_B * T, R_B * Z_B1, Q_B * Z_B2), onde Z_B1 = OU_B (r) e Z_B2 = OU_B (t). Como S_A, S_B, R_A, R_B, Q_A, Q_B, Y_A1, Y_A2, Z_B1, Z_B2 e T são criptografados usando HE com forma exponencial dupla, a adição e a subtração podem ser executadas em sua forma criptografada sem decifrar os valores de texto não codificado.
[067] Figura 7 representa um exemplo de processo (700) que pode ser executado de acordo com formas de realização da presente invenção.
Petição 870190058551, de 25/06/2019, pág. 31/54
24/33
Para clareza de apresentação, a descrição que se segue descreve de modo geral o método (700) no contexto das outras figuras nesta descrição. No entanto, será entendido que o processo de exemplo (700) pode ser realizado, por exemplo, por qualquer sistema, ambiente, software e hardware, ou uma combinação de sistemas, ambientes, software e hardware, conforme apropriado. Em algumas formas de realização, as etapas do processo de exemplo (700) podem ser executadas em paralelo, em combinação, em ciclos ou em qualquer ordem.
[068] Em (702), um nó de consenso recebe, a partir de uma primeira conta, uma cópia assinada digitalmente de um valor de comprometimento de uma quantia de transação a ser transferida da primeira conta para uma segunda conta gerada com base em um primeiro número aleatório. O nó de consenso também pode receber a partir da primeira conta, um segundo número aleatório criptografado usando uma chave pública da primeira conta, um terceiro número aleatório criptografado usando uma chave pública da segunda conta, uma ou mais provas de intervalo e um conjunto de valores gerado usando HE baseado em um ou mais números aleatórios selecionados. Em algumas formas de realização, o valor de comprometimento é gerado usando o esquema de comprometimento baseado em HE. Em algumas formas de realização, o segundo número aleatório e o terceiro número aleatório são criptografados com base no esquema HE determinístico.
[069] Em algumas formas de realização, o conjunto de valores é representado por (T1, TT, T1”, r2, t2), onde r2 = r1 + xr, t2 = t1 + xt, onde r1 e t1 representam o um ou mais números aleatórios selecionados e r representa o primeiro número aleatório, t representa a quantia da transferência de saldo. Em alguns exemplos, T1 = grlhtl, TT = HE_A (r1), ΤΓ = HE_B (r1), onde g e h são geradores de uma curva elíptica, HE_A (r1) é gerado com base em HE de r1 usando a chave pública da primeira conta, e HE_B (r1) é gerado com base
Petição 870190058551, de 25/06/2019, pág. 32/54
25/33 em HE de r1 usando a chave pública da segunda conta. Em alguns exemplos, x é gerado com base na dispersão T1, TT e T1 ”.
[070] Em (704), o nó de consenso verifica uma assinatura digital correspondente à cópia assinada digitalmente usando uma chave pública da primeira conta correspondente a uma chave privada usada para gerar a assinatura digital.
[071] Em (706), o nó de consenso determina se a uma ou mais provas de intervalo provam que a quantia da transferência de saldo é maior que zero e menor ou igual a um saldo da primeira conta.
[072] Em (708), o nó de consenso determina se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são os mesmos com base no conjunto de valores. Em algumas formas de realização, o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são determinados como iguais se gr2ht2 = TxT1, HE_A (r2) = T’xTT e HE_B (r2) = T”xT1”, onde T = grht é o valor de comprometimento da quantia da transferência de saldo, T = HE_A (r) e T”= HE_B (r), HE_A (r) é gerado com base em HE de r usando a chave pública da primeira conta, HE_B (r) é gerado com base em HE de r usando a chave pública da segunda conta, HE_A (r2) é gerado com base em HE de r2 usando a chave pública da primeira conta e HE_B (r2) é gerado com base em HE de r2 usando a chave pública da segunda conta, x é gerado com base em dispersão g, h, T1, TT e T1 ”. Em algumas formas de realização, T, T’ e T” formam o texto cifrado do valor da quantia de transação t.
[073] Em (710), o nó de consenso atualiza o saldo da primeira conta e um saldo da segunda conta com base na quantia de transação, se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório forem os mesmos. Em algumas formas de realização, a atualização do saldo da primeira conta e o saldo da segunda conta é realizada com base
Petição 870190058551, de 25/06/2019, pág. 33/54
26/33 no HE.
[074] A Figura 8 representa outro exemplo de processo (800) que pode ser executado de acordo com formas de realização da presente invenção. Para clareza de apresentação, a descrição que se segue descreve de modo geral o exemplo de processo (800) no contexto das outras figuras nesta descrição. No entanto, será entendido que o exemplo de processo (800) pode ser realizado, por exemplo, por qualquer sistema, ambiente, software e hardware, ou uma combinação de sistemas, ambientes, software e hardware, conforme apropriado. Em algumas formas de realização, as etapas do exemplo de processo (800) podem ser executadas em paralelo, em combinação, em ciclos ou em qualquer ordem.
[075] Em (802), um nó de consenso recebe, a partir de uma primeira conta, uma cópia assinada digitalmente de um valor de comprometimento de uma primeira quantia de transação para uma transferência de uma primeira conta para uma segunda conta. Em alguns exemplos, a cópia assinada digitalmente do valor de comprometimento é gerada com base em um primeiro número aleatório. O nó de consenso também recebe a primeira quantia de transação e o primeiro número aleatório criptografado usando uma chave pública da primeira conta, uma segunda quantia da transferência de saldo e um segundo número aleatório criptografado usando uma chave pública da segunda conta, uma ou mais provas de intervalo e um conjunto de valores gerados usando HE com base em um ou mais números aleatórios selecionados. Em algumas formas de realização, o valor de comprometimento é gerado usando o esquema de PC. Em algumas formas de realização, a primeira quantia da transferência de saldo e o primeiro número aleatório são criptografados usando a chave pública da primeira conta com base em um algoritmo HE probabilístico. Em alguns exemplos, a segunda quantia da transferência de saldo e um segundo número aleatório são
Petição 870190058551, de 25/06/2019, pág. 34/54
27/33 criptografados usando a chave pública da segunda conta com base no algoritmo probabilístico HE. Em algumas formas de realização, o algoritmo probabilístico HE é um algoritmo de Okamoto-Uchiyama HE.
[076] Em algumas formas de realização, o conjunto de valores é representado por (C, D, E, a, b, c, d), onde a = r* + xr, b = t* + xt, c = z1* + xz1 e d = z2* + xz2, onde r*, t*, z1* e z2* representam o um ou mais números aleatórios selecionados, r representa o primeiro número aleatório, t representa a primeira quantia da transferência de saldo, C = gr*ht*, D = u2r*v2z1*, E = u2t*v2z2*, g, h, u2 e v2 são geradores de uma curva elíptica e x é gerado com base na dispersão C, D e E.
[077] Em (804), o nó de consenso verifica uma assinatura digital correspondente à cópia assinada digitalmente usando uma chave pública da primeira conta correspondente a uma chave privada usada para gerar a assinatura digital.
[078] Em (806), o nó de consenso determina se a uma ou mais provas de intervalo provam que a quantia da transferência de saldo é maior que zero e menor ou igual a um saldo da primeira conta.
[079] Em (808), o nó de consenso determina se a primeira quantia é a mesma que a segunda quantia, e se o primeiro número aleatório e o segundo número aleatório são os mesmos com base no conjunto de valores. Em algumas formas de realização, a primeira quantia e a segunda quantia são determinadas como iguais, e o primeiro número aleatório e o segundo número aleatório são determinados como iguais, se gahb = CTx, u2av2c = DZ_B1x e u2bv2d = EZ_B2x, onde T = grht é o valor de comprometimento da quantia da transferência de saldo, Z_B1 = u2rv2z1, Z_B2 = u2tv2z2. Em alguns exemplos, z1 e z2 são números aleatórios usados para criptografar a segunda quantia de transações e o segundo número aleatório baseado no esquema HE probabilístico.
Petição 870190058551, de 25/06/2019, pág. 35/54
28/33 [080] Em (810), o nó de consenso atualiza um saldo da primeira conta e um saldo da segunda conta com base na primeira quantia da transferência de saldo, se a primeira quantia e a segunda quantia forem as mesmas, e o primeiro número aleatório e o segundo número aleatório forem os mesmos. Em algumas formas de realização, a atualização do saldo da primeira conta e o saldo da segunda conta é realizada com base no HE.
[081] As formas de realização da matéria objeto descrita neste relatório descritivo podem ser implementadas de modo a realizar vantagens particulares ou efeitos técnicos. Por exemplo, formas de realização da presente invenção permitem que o saldo de conta e a quantia de transação dos nós de protocolo de confiança sejam privados durante as transações. O recebedor da transferência de fundos não precisa confirmar a transação ou usar um número aleatório para verificar um comprometimento, a validação da transação pode ser não interativa. Um nó de protocolo de confiança pode validar a transação com base nos esquemas HE e de comprometimento para permitir a prova de conhecimento zero.
[082] A metodologia descrita permite a melhoria da segurança de conta/ dados de vários dispositivos de computação móvel. O saldo das contas e as quantias de transações podem ser criptografados com base em HE e ocultados por esquemas de comprometimento. Como tal, um nó de consenso pode atualizar os saldos de conta no livro-razão após a transação com base nas propriedades do HE, sem revelar o saldo de conta real da conta. Como o número aleatório não precisa ser enviado a um recebedor para confirmar a transação, o risco de vazamento de dados pode ser reduzido e menos recursos de computação e memória precisam ser usados para gerenciar o número aleatório.
[083] As formas de realização e as operações descritas neste relatório descritivo podem ser implementadas em circuitos eletrônicos digitais,
Petição 870190058551, de 25/06/2019, pág. 36/54
29/33 ou em software de computador, firmware ou hardware, incluindo as estruturas divulgadas neste relatório descritivo ou em combinações de uma ou mais delas. As operações podem ser implementadas como operações realizadas por um aparelho de processamento de dados em dados armazenados em um ou mais dispositivos de armazenamento legíveis por computador ou recebidos de outras fontes. Um aparelho de processamento de dados, computador ou dispositivo de computação pode englobar aparelhos, dispositivos e máquinas para processamento de dados, incluindo, por exemplo, um processador programável, um computador, um sistema em um chip ou vários, ou combinações, dos precedentes. O aparelho pode incluir circuitos lógicos de propósito especial, por exemplo, uma unidade de processamento central (CPU), uma rede de portas programáveis em campo (FPGA) ou um circuito integrado de aplicação específica (ASIC). O aparelho também pode incluir código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui firmware de processador, uma pilha de protocolos, um sistema de gestão de banco de dados, um sistema operacional (por exemplo, um sistema operacional ou uma combinação de sistemas operacionais), um ambiente de tempo de execução entre plataformas, uma máquina virtual ou uma combinação de um ou mais deles. O aparelho e ambiente de execução podem realizar várias infraestruturas de modelos de computação diferentes, tais como serviços da Web, infraestruturas de computação distribuída e de computação em grade.
[084] Um programa de computador (também conhecido, por exemplo, como um programa, software, aplicativo de software, módulo de software, unidade de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, linguagens declarativas ou processuais, e pode ser implementado de qualquer forma, incluindo como um programa autônomo ou
Petição 870190058551, de 25/06/2019, pág. 37/54
30/33 como um módulo, componente, sub-rotina, objeto ou outra unidade adequada para uso em um ambiente de computação. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em vários arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou partes do código). Um programa de computador pode ser executado em um computador ou em vários computadores que estão localizados em um local ou distribuídos em vários locais e interconectados por uma rede de comunicação.
[085] Os processadores para execução de um programa de computador incluem, a título de exemplo, microprocessadores de propósito geral e especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador receberá instruções e dados de uma memória apenas para leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são um processador para executar ações de acordo com as instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou estará acoplado operacionalmente para receber dados de ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenamento de dados. Um computador pode ser incorporado em outro dispositivo, por exemplo, um dispositivo móvel, um assistente digital pessoal (PDA), um console de jogos, um receptor de Sistema de Posicionamento Global (GPS) ou um dispositivo de armazenamento portátil. Dispositivos adequados para armazenar instruções e dados de programas de computador incluem memória não volátil, mídia e dispositivos de memória, incluindo, a título de exemplo, dispositivos de memória semicondutores, discos magnéticos e discos magneto-ópticos. O
Petição 870190058551, de 25/06/2019, pág. 38/54
31/33 processador e a memória podem ser complementados por, ou incorporados em circuitos lógicos de propósito especial.
[086] Os dispositivos móveis podem incluir microtelefones, equipamentos de usuário (UE), telefones celulares (por exemplo, telefones inteligentes), tablets, dispositivos usáveis (por exemplo, relógios inteligentes e óculos inteligentes), dispositivos implementados dentro do corpo humano (por exemplo, biossensores, implantes cocleares) ou outros tipos de dispositivos móveis. Os dispositivos móveis podem se comunicar sem fio (por exemplo, usando sinais de radiofrequência (RF)) a várias redes de comunicação (descritas abaixo). Os dispositivos móveis podem incluir sensores para determinar características do ambiente atual do dispositivo móvel. Os sensores podem incluir câmeras, microfones, sensores de proximidade, sensores GPS, sensores de movimento, acelerômetros, sensores de luz ambiente, sensores de umidade, giroscópios, bússolas, barômetros, sensores de impressões digitais, sistemas de reconhecimento facial, sensores de RF (por exemplo, WiFi e rádio celulares), sensores térmicos ou outros tipos de sensores. Por exemplo, as câmeras podem incluir uma câmera voltada para frente ou para trás com lentes móveis ou fixas, um flash, um sensor de imagem e um processador de imagem. A câmera pode ser uma câmera megapixel capaz de capturar detalhes para reconhecimento facial e/ou de íris. A câmera, juntamente com um processador de dados e informações de autenticação armazenadas na memória ou acessadas remotamente, podem formar um sistema de reconhecimento facial. O sistema de reconhecimento facial ou um ou mais sensores, por exemplo, microfones, sensores de movimento, acelerômetros, sensores de GPS ou sensores de RF, podem ser usados para autenticação do usuário.
[087] Para proporcionar a interação com um usuário, formas de realização podem ser implementadas em um computador com um dispositivo
Petição 870190058551, de 25/06/2019, pág. 39/54
32/33 de exibição e um dispositivo de entrada de dados, por exemplo, um monitor de cristal líquido (LCD) ou monitor de diodo orgânico emissor de luz (OLED) / realidade virtual (VR) / realidade aumentada (AR) para exibir informações para o usuário e uma tela sensível ao toque, teclado e um dispositivo indicador pelo qual o usuário pode fornecer entrada de dados ao computador. Outros tipos de dispositivos também podem ser usados para fornecer interação com um usuário; por exemplo, a retro-informação fornecida ao usuário pode ser qualquer forma de retro-informação sensorial, por exemplo, retro-informação visual, retro-informação auditiva ou retro-informação tátil; e a entrada de dados do usuário pode ser recebida de qualquer forma, incluindo entrada de dados acústica, de fala ou tátil. Além disso, um computador pode interagir com um usuário enviando documentos para e recebendo documentos de um dispositivo que é usado pelo usuário; por exemplo, enviando páginas da web para um navegador da web em um dispositivo cliente de um usuário em resposta a solicitações recebidas do navegador da web.
[088] As formas de realização podem ser implementadas usando dispositivos de computação interconectados por qualquer forma ou meio de comunicação de dados digitais com fio ou sem fio (ou combinação dos mesmos), por exemplo, uma rede de comunicação. Exemplos de dispositivos interconectados são um cliente e um servidor geralmente remotos entre si que normalmente interagem através de uma rede de comunicação. Um cliente, por exemplo, um dispositivo móvel, pode realizar transações em si, com um servidor ou através de um servidor, por exemplo, realizando transações de compra, venda, pagamento, entrega, envio ou empréstimo, ou autorizando as mesmas. Tais transações podem ser em tempo real, de modo que uma ação e uma resposta estejam temporariamente próximas; por exemplo, um indivíduo percebe a ação e a resposta ocorrendo substancialmente simultaneamente, a diferença de tempo para uma resposta após a ação do indivíduo é menor que 1
Petição 870190058551, de 25/06/2019, pág. 40/54
33/33 milissegundo (ms) ou menor que 1 segundo (s), ou a resposta é sem atraso intencional, considerando as limitações de processamento do sistema.
[089] Exemplos de redes de comunicação incluem uma rede de área local (LAN), uma rede de acesso via rádio (RAN), uma rede de área metropolitana (MAN) e uma rede de longa distância (WAN). A rede de comunicação pode incluir todo ou parte da Internet, outra rede de comunicação ou uma combinação de redes de comunicação. As informações podem ser transmitidas na rede de comunicação de acordo com vários protocolos e padrões, incluindo Evolução de Longo Prazo (LTE), 5G, IEEE 802, Protocolo Internet (IP) ou outros protocolos ou combinações de protocolos. A rede de comunicação pode transmitir dados de voz, vídeo, biométricos ou de autenticação ou outras informações entre os dispositivos de computação conectados.
[090] As características descritas como formas de realização separadas podem ser implementadas, em combinação, em uma única forma de realização, enquanto as características descritas como uma forma de realização única podem ser implementadas em várias formas de realização, separadamente ou em qualquer sub-combinação adequada. As operações descritas e reivindicadas em uma ordem específica não devem ser entendidas como exigindo que a ordem específica, nem que todas as operações ilustradas sejam executadas (algumas operações podem ser opcionais). Conforme apropriado, a multitarefa ou o processamento paralelo (ou uma combinação de multitarefa e processamento paralelo) podem ser executados.

Claims (12)

  1. Reivindicações
    1. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), realizado por um nó de consenso (304) de uma rede de protocolo de confiança (408, 608) (blockchain), caracterizado pelo fato de que compreende:
    receber (802), a partir de uma primeira conta, uma cópia assinada digitalmente de um valor de comprometimento de um valor de transação a ser transferido da primeira conta para uma segunda conta gerada com base em um primeiro número aleatório, um segundo número aleatório criptografado usando uma chave pública da primeira conta, um terceiro número aleatório criptografado usando uma chave pública da segunda conta, uma ou mais provas de intervalo e um conjunto de valores gerados com base em um ou mais números aleatórios selecionados;
    verificar (804) uma assinatura digital correspondente à cópia assinada digitalmente usando uma chave pública da primeira conta correspondente a uma chave privada usada para gerar a assinatura digital;
    determinar (806) que a uma ou mais provas de intervalo provam que o valor da transação é maior que zero e menor ou igual a um saldo da primeira conta;
    determinar (808) se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são os mesmos, com base no conjunto de valores; e atualizar (810) o saldo da primeira conta e um saldo da segunda conta com base no valor da transferência de saldo, se o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório forem os mesmos.
  2. 2. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de comprometimento é gerado utilizando um esquema de comprometimento que é
    Petição 870190058551, de 25/06/2019, pág. 42/54
    2/4 homomórfico.
  3. 3. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 2, caracterizado pelo fato de que o esquema de comprometimento é um esquema de comprometimento Pedersen.
  4. 4. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 1, caracterizado pelo fato de que o segundo número aleatório e o terceiro número aleatório são criptografados com base em um esquema de criptografia homomórfico determinista (HE) que tem propriedades lineares de HE (a + b) = HE (a)* HE (b) e HE (ab) = HE (b)a, em que a e b são textos planos usados para HE.
  5. 5. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 4, caracterizado pelo fato de que os números aleatórios selecionados são representados por r1 e t1 e os números aleatórios selecionados são utilizados para gerar r2 e t2, em que r2 = r1 + xr, t2 = t1 + xt, em que r1 e t1 representam o um ou mais números aleatórios selecionados, r é o primeiro número aleatório, t é o valor da transferência de saldo, x é um valor de Hash.
  6. 6. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 5, caracterizado pelo fato de que o conjunto de valores é gerado adicionalmente com base em T1, TT e T1”, em que T1 = gr1ht1, TT = HE_A (r1), ΤΓ = HE_B (r1), em que g e h são geradores de uma curva elíptica, e em que HE_A (r1) é gerado com base em HE de r1 usando a chave pública da primeira conta e HE_B (r1) é gerado com base em HE de r1 usando a chave pública da segunda conta, e em que x é gerado com base no hashing T1, TT e T1”.
  7. 7. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 6, caracterizado pelo fato de que o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são
    Petição 870190058551, de 25/06/2019, pág. 43/54
    3/4 determinados como sendo os mesmos com base nas propriedades do HE determinístico.
  8. 8. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 6, caracterizado pelo fato de que o primeiro número aleatório, o segundo número aleatório e o terceiro número aleatório são determinados como sendo os mesmos se gr2ht2 = TXT1, HE_A (r2) = T'XT1' e HE_B (r2) = T”XT1”, em que T = grhf, Γ = HE_A (r) e T” = HE_B (r), e em que HE_A (r) e HE_A (r2) são gerados com base em HE de r e r2, respectivamente, usando a chave pública da primeira conta, HE_B (r) e HE_B (r2) são gerados com base em HE de r e r2 usando a chave pública da segunda conta.
  9. 9. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 1, caracterizado pelo fato de que T, T’ e T” formam um texto cifrado do valor da transação t.
  10. 10. MÉTODO IMPLEMENTADO POR COMPUTADOR (800), de acordo com a reivindicação 1, caracterizado pelo fato de que a atualização do saldo da primeira conta e um saldo da segunda conta é realizada com base em criptografia homomórfica.
  11. 11. MEIO LEGÍVEL POR COMPUTADOR, caracterizado pelo fato de que é acoplado a um ou mais processadores e possuindo instruções armazenadas nele que, quando executadas pelo um ou mais processadores, fazem com que o um ou mais processadores executem operações de acordo com o método, conforme definido em qualquer uma das reivindicações 1 a 10.
  12. 12. SISTEMA PARA REALIZAR UM MÉTODO, caracterizado pelo fato de que compreende:
    um dispositivo de computação (120); e um dispositivo de armazenamento legível por computador acoplado ao dispositivo de computação (120) e possuindo instruções armazenadas nele que, quando executadas pelo dispositivo de computação,
    Petição 870190058551, de 25/06/2019, pág. 44/54
    4/4 fazem com que o dispositivo de computação execute operações de acordo com o método, conforme definido em qualquer uma das reivindicações 1 a 10.
BR112019008151A 2018-11-07 2018-11-07 método implementado por computador, meio de armazenamento legível por computador não transitório e sistema BR112019008151A2 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114421 WO2019072269A2 (en) 2018-11-07 2018-11-07 PROTECTION OF BLOCK CHAIN DATA USING A HOMOMORPHIC ENCRYPTION

Publications (1)

Publication Number Publication Date
BR112019008151A2 true BR112019008151A2 (pt) 2019-09-10

Family

ID=66100026

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019008151A BR112019008151A2 (pt) 2018-11-07 2018-11-07 método implementado por computador, meio de armazenamento legível por computador não transitório e sistema

Country Status (16)

Country Link
US (1) US10615960B2 (pt)
EP (1) EP3545640B1 (pt)
JP (1) JP6767580B2 (pt)
KR (1) KR102348768B1 (pt)
CN (1) CN110546667B (pt)
AU (1) AU2018348319B2 (pt)
BR (1) BR112019008151A2 (pt)
CA (1) CA3041161C (pt)
ES (1) ES2876926T3 (pt)
MX (1) MX2019004662A (pt)
PH (1) PH12019500877A1 (pt)
PL (1) PL3545640T3 (pt)
RU (1) RU2708344C1 (pt)
SG (1) SG11201903552PA (pt)
TW (1) TWI718585B (pt)
WO (1) WO2019072269A2 (pt)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10728018B2 (en) 2017-01-20 2020-07-28 Enveil, Inc. Secure probabilistic analytics using homomorphic encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10873568B2 (en) 2017-01-20 2020-12-22 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10972251B2 (en) 2017-01-20 2021-04-06 Enveil, Inc. Secure web browsing via homomorphic encryption
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
CN110945831B (zh) * 2018-05-08 2021-04-27 维萨国际服务协会 抗Sybil攻击身份的生成
CN109359971B (zh) 2018-08-06 2020-05-05 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
CN112651740A (zh) * 2018-08-30 2021-04-13 创新先进技术有限公司 区块链交易方法及装置、电子设备
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
BR112019014629A2 (pt) * 2018-12-21 2021-07-20 Advanced New Technologies Co., Ltd. método implementado por computador, meio de armazenamento legível por computador e sistema
RU2721008C1 (ru) 2018-12-29 2020-05-15 Алибаба Груп Холдинг Лимитед Система и способ для защиты информации
DE102019002732A1 (de) * 2019-04-15 2020-10-15 Giesecke+Devrient Gesellschaft mit beschränkter Haftung Verfahren zum direkten Übertragen von elektronischen Münzdatensätzen zwischen Endgeräten sowie Bezahlsystem
US11444776B2 (en) * 2019-05-01 2022-09-13 Kelce S. Wilson Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing
CN110675255B (zh) * 2019-08-30 2021-04-02 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN113015974A (zh) * 2019-10-21 2021-06-22 谷歌有限责任公司 针对隐私保护的可验证同意
CN110766400B (zh) * 2019-10-22 2023-01-13 全链通有限公司 基于区块链的交易记录处理方法、记账节点及介质
CN111078787B (zh) * 2019-11-11 2023-07-21 重庆邮电大学 一种基于随机数映射的区块链共识方法
CN111104968B (zh) * 2019-12-02 2023-04-18 北京理工大学 一种基于区块链的安全svm训练方法
CN113055177B (zh) * 2019-12-27 2022-08-16 深圳市迅雷网络技术有限公司 区块链系统及数值信息传输方法、系统、装置、介质
CN113128999B (zh) * 2019-12-31 2024-04-12 航天信息股份有限公司 一种区块链隐私保护方法及装置
CN113065951A (zh) * 2020-01-02 2021-07-02 苏州同济区块链研究院有限公司 基于区块链的交易方法、系统、装置、设备及介质
WO2020098838A2 (en) 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable gurantees
CN111357026B (zh) 2020-02-03 2022-06-07 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
WO2020098837A2 (en) 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
WO2020098833A2 (en) 2020-02-03 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable gurantees
EP3794773B1 (en) 2020-02-03 2022-09-07 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN113826134A (zh) 2020-02-03 2021-12-21 支付宝(杭州)信息技术有限公司 基于区块链的可信保函
CN111523891B (zh) * 2020-04-23 2023-11-24 腾讯科技(深圳)有限公司 基于区块链的信息加密方法、装置、设备及存储介质
EP3844654B1 (en) 2020-06-08 2023-05-17 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based document registration for custom clearance
CN111868725A (zh) 2020-06-08 2020-10-30 支付宝实验室(新加坡)有限公司 基于区块链处理进口海关清关数据
SG11202102366SA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd User management of blockchain-based custom clearance service platform
SG11202103226UA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based smart contract pools
CN111989707B (zh) 2020-06-08 2024-04-16 支付宝实验室(新加坡)有限公司 管理基于区块链的海关清关服务的用户权限
SG11202103081RA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Distributed storage of custom clearance data
WO2022056424A1 (en) * 2020-09-11 2022-03-17 Transparent Financial Systems, Inc. Distributed self-governing computer network to correlate blockchain and private computer system transactions method, apparatus, and system
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
US11588617B2 (en) * 2020-11-01 2023-02-21 The Toronto-Dominion Bank Validating confidential data using homomorphic computations
CN113159762B (zh) * 2021-01-28 2024-04-09 武汉天喻信息产业股份有限公司 基于Paillier和博弈论的区块链交易方法
CN112769542B (zh) * 2021-04-12 2021-06-11 富算科技(上海)有限公司 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
CN113821789B (zh) * 2021-09-26 2023-06-23 北京邮电大学 基于区块链的用户密钥生成方法、装置、设备及介质
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8744077B2 (en) * 2008-10-28 2014-06-03 International Business Machines Corporation Cryptographic encoding and decoding of secret data
JP5300983B2 (ja) * 2009-10-29 2013-09-25 三菱電機株式会社 データ処理装置
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8861716B2 (en) * 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US8731199B2 (en) * 2012-09-28 2014-05-20 Sap Ag Zero knowledge proofs for arbitrary predicates over data
FR3001848B1 (fr) * 2013-02-01 2015-01-09 Morpho Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
WO2016051122A1 (en) * 2014-09-30 2016-04-07 Kabushiki Kaisha Toshiba Homomorphic based method for distributing data from one or more metering devices to two or more third parties
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US9875370B2 (en) * 2015-03-26 2018-01-23 Microsoft Technology Licensing, Llc Database server and client for query processing on encrypted data
WO2016200885A1 (en) * 2015-06-08 2016-12-15 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
US10713731B2 (en) * 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
CN106548330B (zh) * 2016-10-27 2018-03-16 上海亿账通区块链科技有限公司 基于区块链的交易验证方法及系统
CN106571905B (zh) * 2016-11-02 2019-05-17 南京邮电大学 一种数值型数据同态保序加密方法
WO2018087836A1 (ja) * 2016-11-09 2018-05-17 株式会社日立製作所 ブロックチェーン取引システムおよびブロックチェーン取引方法
CN106549749B (zh) * 2016-12-06 2019-12-24 杭州趣链科技有限公司 一种基于加法同态加密的区块链隐私保护方法
WO2018115567A1 (en) * 2016-12-19 2018-06-28 Nokia Technologies Oy Method and apparatus for private data transfer between parties
CN106845960B (zh) * 2017-01-24 2018-03-20 上海壹账通区块链科技有限公司 基于区块链的安全交易方法及系统
US10277395B2 (en) * 2017-05-19 2019-04-30 International Business Machines Corporation Cryptographic key-generation with application to data deduplication
CN107294698B (zh) * 2017-07-25 2019-11-26 西安电子科技大学 单密文同态计算的全同态加密方法
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
CN108764874B (zh) * 2018-05-17 2021-09-07 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质
CN111833186A (zh) * 2018-09-20 2020-10-27 创新先进技术有限公司 基于区块链的交易方法、装置和节点设备
KR102215773B1 (ko) * 2018-11-07 2021-02-17 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
KR102215245B1 (ko) * 2018-11-07 2021-02-16 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 준동형 암호화를 사용하는 블록체인 데이터 보호
KR102151894B1 (ko) * 2018-11-07 2020-09-03 알리바바 그룹 홀딩 리미티드 계좌 모델 하에서 퍼블릭 및 프라이빗 트랜잭션을 지원하는 블록체인 시스템

Also Published As

Publication number Publication date
SG11201903552PA (en) 2019-05-30
US10615960B2 (en) 2020-04-07
RU2708344C1 (ru) 2019-12-05
TWI718585B (zh) 2021-02-11
KR20200054129A (ko) 2020-05-19
WO2019072269A2 (en) 2019-04-18
MX2019004662A (es) 2019-08-21
AU2018348319B2 (en) 2020-10-01
KR102348768B1 (ko) 2022-01-06
CA3041161C (en) 2021-10-12
CN110546667A (zh) 2019-12-06
PH12019500877A1 (en) 2019-12-02
CA3041161A1 (en) 2019-04-18
EP3545640A4 (en) 2020-01-08
EP3545640A2 (en) 2019-10-02
ES2876926T3 (es) 2021-11-15
TW202019123A (zh) 2020-05-16
CN110546667B (zh) 2023-08-18
WO2019072269A3 (en) 2019-09-12
JP2019537348A (ja) 2019-12-19
JP6767580B2 (ja) 2020-10-14
PL3545640T3 (pl) 2021-10-18
US20190253235A1 (en) 2019-08-15
EP3545640B1 (en) 2021-04-07
AU2018348319A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
BR112019008151A2 (pt) método implementado por computador, meio de armazenamento legível por computador não transitório e sistema
KR102215245B1 (ko) 준동형 암호화를 사용하는 블록체인 데이터 보호
KR102213414B1 (ko) 일반 계정 모델 및 동형 암호화 기반의 블록 체인 데이터 보호
RU2733223C1 (ru) Защита данных цепочек блоков на основе общей модели на основе счетов и гомоморфного шифрования
KR102215773B1 (ko) 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
BR112019008171A2 (pt) método implementado por computador para validar as transações blockchain com base em modelos de conta, meio de armazenamento legível por computador e sistema
BR112019008140A2 (pt) método implementado por computador, meio de armazenamento legível por computador não transitório e sistema
BR112019008174A2 (pt) método implementado por computador, meio de armazenamento legível por computador, não transitório e sistema

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY)

B25A Requested transfer of rights approved

Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY)

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 5A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2747 DE 29-08-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.