BR112019007232A2 - sistema e método para proteção da informação - Google Patents

sistema e método para proteção da informação Download PDF

Info

Publication number
BR112019007232A2
BR112019007232A2 BR112019007232-2A BR112019007232A BR112019007232A2 BR 112019007232 A2 BR112019007232 A2 BR 112019007232A2 BR 112019007232 A BR112019007232 A BR 112019007232A BR 112019007232 A2 BR112019007232 A2 BR 112019007232A2
Authority
BR
Brazil
Prior art keywords
data types
input data
output data
nodes
transaction
Prior art date
Application number
BR112019007232-2A
Other languages
English (en)
Other versions
BR112019007232B1 (pt
Inventor
Ma Baoli
Li Lichun
Yin Shan
Zhang Wenbin
Liu Zheng
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 BR112019007232A2 publication Critical patent/BR112019007232A2/pt
Publication of BR112019007232B1 publication Critical patent/BR112019007232B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

trata-se de um método implementado por computador para proteção da informação, o método compreendendo: determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente; criptografar os tipos de dados de entrada e os tipos de dados de saída; comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes; obter ao menos um parâmetro r baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro r e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.

Description

“SISTEMA E MÉTODO PARA PROTEÇÃO DA INFORMAÇÃO”
CAMPO TÉCNICO [001 ]Em termos gerais, a presente invenção refere-se a métodos e dispositivos para proteção da informação.
FUNDAMENTOS DA INVENÇÃO [002]A privacidade é importante para a comunicação e transferência de dados entre vários usuários. Sem proteção, os usuários ficam expostos ao risco de roubo de identidade, transferência ilegal ou outras possíveis perdas. O risco cresce ainda mais quando as comunicações e transferências são feitas online devido ao livre acesso às informações online.
SUMÁRIO DA INVENÇÃO [003]Várias modalidades da presente invenção incluem sistemas, métodos e meios não transitórios legíveis por computadores para proteção da informação.
[004]De acordo com um aspecto, um método implementado por computador para proteção da informação compreende: determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente; criptografar os tipos de dados de entrada e os tipos de dados de saída; comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes; obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
[005]Em algumas modalidades, criptografar os tipos de dados de entrada e
Petição 870190034243, de 10/04/2019, pág. 10/61
2/36 os tipos de dados de saída compreende criptografar os tipos de dados de entrada e os tipos de dados de saída com uma função hash.
[006]Em algumas modalidades, o esquema de compromisso compreende um compromisso de Pedersen.
[007]Em algumas modalidades, o esquema de compromisso compreende ao menos um fator de cegamento; e o fator de cegamento muda na hora de comprometer os tipos de dados de entrada criptografados e os tipos de dados de saída criptografados.
[008]Em algumas modalidades, faz-se com que os nós verifiquem a consistência entre os tipos de dados de entrada e os tipos de dados de saída sem conhecimento dos tipos de dados de entrada e dos tipos de dados de saída.
[009]Em algumas modalidades, a transação baseia-se em ao menos um modelo de Saídas de Transações Não Gastas (UTXO); e as entradas de dados e as saídas de dados compreendem os tipos de um ou mais ativos sendo submetidos à transação.
[010]Em algumas modalidades, o esquema de compromisso compreende vários fatores de cegamento que correspondem respectivamente aos tipos de dados de entrada e aos tipos de dados de saída; e obter ao menos o parâmetro R com base ao menos nos valores de compromisso compreende: obter diferenças entre pares dos valores de compromisso; concatenar as diferenças obtidas; criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x; e obter o parâmetro R com base ao menos no valor de criptografia x e diferenças entre pares dos fatores de cegamento.
[011]Em algumas modalidades, enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende
Petição 870190034243, de 10/04/2019, pág. 11/61
3/36 enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída para fazer com que os nós: obtenham o parâmetro R e um ponto de base G; obtenham diferenças entre pares dos valores de compromisso; concatenem as diferenças obtidas; criptografem as diferenças concatenadas com uma função hash para obter um valor de criptografia x; obtenham uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x; em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e, em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
[012]De acordo com outro aspecto, um meio de armazenamento não transitório legível por computador armazena instruções para ser executadas por um processador para fazer com que este execute operações que compreendem: determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente; criptografar os tipos de dados de entrada e os tipos de dados de saída; comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes; obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
[013]De acordo com outro aspecto, um sistema para proteção da informação
Petição 870190034243, de 10/04/2019, pág. 12/61
4/36 compreende um processador e um meio de armazenamento não transitório legível por computador acoplado ao processador, o meio de armazenamento armazenando instruções para ser executadas pelo processador para fazer com que o sistema execute operações que compreendem: determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente; criptografar os tipos de dados de entrada e os tipos de dados de saída; comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes; obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
[014]De acordo com outro aspecto, um método implementado por computador para proteção da informação compreende: um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador. A transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados. As entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de saída respectivamente. Os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes. Os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós. O método de proteção da informação compreende ainda: os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída; em resposta à determinação de que
Petição 870190034243, de 10/04/2019, pág. 13/61
5/36 os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos; e, em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
[015]Em algumas modalidades, verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende: obter um parâmetro R e um ponto de base G; obter diferenças entre pares dos valores de compromisso; concatenar as diferenças obtidas; criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x; obter uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x; e determinar se a soma C é igual ao produto do parâmetro R e ponto de base G.
[016]Em algumas modalidades, o método compreende ainda: em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e, em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
[017]Em algumas modalidades, os um ou mais nós compreendem nós de consenso.
[018]De acordo com outro aspecto, um meio de armazenamento não transitório legível por computador armazena instruções para ser executadas por um processador para fazer com que este execute operações que compreendem: um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador. A transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados. As entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a
Petição 870190034243, de 10/04/2019, pág. 14/61
6/36 tipos de dados de saída respectivamente. Os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes. Os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós. As operações compreendem ainda: os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída; em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos; e, em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
[019]De acordo com outro aspecto, um sistema para proteção da informação compreende um processador e um meio de armazenamento não transitório legível por computador acoplado ao processador, o meio de armazenamento armazenando instruções para ser executadas pelo processador para fazer com que o sistema execute operações que compreendem: um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador. A transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados. As entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de saída respectivamente. Os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes. Os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós. As operações compreendem ainda: os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída; em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a tran
Petição 870190034243, de 10/04/2019, pág. 15/61
7/36 sação à rede de cadeia de blocos; e, em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
[020] Essas e outras características dos sistemas, métodos e meios não transitórios legíveis por computador revelados neste documento, bem como os métodos de operação e funções dos elementos relacionados da estrutura e a combinação de peças e economias da fabricante, transparecerão melhor mediante a leitura da descrição a seguir e das reivindicações anexas tomando como referência os desenhos concomitantes, todos os quais constituem parte deste relatório descritivo e dentre os quais números de referência iguais indicam peças correspondentes nas várias figuras. Deve-se ter especialmente em mente, contudo, que os desenhos servem tão somente a fins de ilustração e descrição e não constituem, portanto, uma definição dos limites da invenção.
BREVE DESCRIÇÃO DOS DESENHOS [021]Certas características de várias modalidades da presente tecnologia são estabelecidas com particularidade nas reivindicações anexas. Um melhor entendimento acerca dos traços e vantagens da tecnologia será apreendido tomando como referência a descrição detalhada a seguir, que estabelece modalidades ilustrativas, nas quais os princípios da invenção são adotados, e dentre cujos desenhos concomitantes:
[022]A FIG. 1 ilustra um sistema para proteção da informação exemplificativo de acordo com várias modalidades.
[023]A FIG. 2 ilustra etapas exemplificativas para o início e verificação de uma transação de acordo com várias modalidades.
[024]A FIG. 3 ilustra um fluxograma de um método para proteção da informação exemplificativo de acordo com várias modalidades.
[025]A FIG. 4 ilustra um fluxograma de um método para proteção da infor
Petição 870190034243, de 10/04/2019, pág. 16/61
8/36 mação exemplificativo de acordo com várias modalidades.
[026]A FIG. 5 ilustra um diagrama em blocos de um sistema de computador exemplificativo no qual qualquer uma das modalidades descritas neste documento pode ser implementada.
DESCRIÇÃO DETALHADA [027]A cadeia de blocos pode ser considerada um banco de dados descentralizado, comumente chamado de livro-razão distribuído porque a operação é executada por vários nós (por exemplo, dispositivos de computação) em uma rede. Qualquer informação pode ser escrita na cadeia de blocos e salva ou lida a partir dela. Qualquer pessoa pode instalar um servidor e aderir à rede de cadeia de blocos para tornar-se um nó. Qualquer nó pode contribuir com poder de computação para manter a cadeia de blocos ao executar computações complexas, tais como um cálculo de hash para adicionar um bloco a uma cadeia de blocos, e o bloco adicionado pode conter vários tipos de dados ou informações. O nó que contribuiu com o poder de computação para o bloco adicionado pode ser recompensado com um token (por exemplo, unidade de moeda digital). Como a cadeia de blocos não possui um nó central, cada nó é igual e mantém de pé todo o banco de dados de cadeia de blocos.
[028]Nós são, por exemplo, dispositivos de computação ou grandes sistemas de computador que sustentam a rede de cadeia de blocos e a mantêm operando harmoniosamente. Os nós podem ser operados por indivíduos ou grupos de pessoas que contribuem financeiramente comprando sistemas de computador potentes, conhecidos como equipamentos de mineração. Há dois tipos de nós, nós completos e nós leves. Os nós completos mantêm uma cópia completa da cadeia de blocos. Os nós completos na rede de cadeia de blocos validam transações e blocos que recebem e retransmitem-nos a pontos de rede conectados para prover uma verificação de consenso das transações. Já os nós leves, por outro lado, só baixam uma fração da cadeia de blocos. Por exemplo, os nós leves são usados para transações em
Petição 870190034243, de 10/04/2019, pág. 17/61
9/36 moeda digital. Um nó leve comunicará a um nó completo quando deseja fazer uma transação.
[029]Essa propriedade de descentralização ajuda a prevenir a emergência de um centro de gestão em uma posição controlada. Por exemplo, a manutenção da cadeia de blocos de bitcoin é feita pela rede de nós de comunicações do software de bitcoin na área em operação. Ou seja, em vez de bancos, instituições ou administradores no sentido tradicional da palavra, há vários intermediários na forma de servidores de computador executando o software de bitcoin. Esses servidores de computador compõem uma rede conectada via Internet, em que qualquer um pode eventualmente aderir à rede. As transações acomodadas pela rede podem ser em um formato: “o usuário A deseja enviar Z bitcoins ao usuário B”, onde as transações são transmitidas à rede usando aplicativos de software prontamente disponíveis. Os servidores de computador atuam como servidores de bitcoin que operam para validar essas transações financeiras, adicionar um registro delas à sua cópia do livro-razão e, em seguida, transmitir essas adições ao livro-razão a outros servidores da rede.
[030]A manutenção da cadeia de blocos é chamada de mineração, e os que fazem essa manutenção são recompensados com bitcoins recém-criados e taxas de transação conforme mencionado acima. Por exemplo, os nós podem determinar se as transações são válidas com base em um conjunto de regas com que a rede de cadeia de blocos concordou. Os mineiros podem estar situados em qualquer continente e processar pagamentos verificando cada transação como válida e adicionando-a ao livro-razão. Essa verificação é obtida por consenso provido por vários mineiros e deduz que não há fraude sistemática. No fim das contas, todos os dados serão consistentes porque a computação precisa satisfazer certos requisitos para que seja válida e todos os nós serão sincronizados para garantir que a cadeia de blocos é consistente.
[031]Através do processo de mineração, transações tais como transferências
Petição 870190034243, de 10/04/2019, pág. 18/61
10/36 de ativos são verificadas e adicionadas a uma crescente cadeia de blocos de uma cadeia de blocos por nós da rede. Ao percorrer toda a cadeia de blocos, a verificação pode incluir, por exemplo, se a parte pagante tem acesso ao ativo sendo transferido, se o ativo foi gasto antes, se a quantia de transferência está certa etc. Por exemplo, em uma transação hipotética (por exemplo, uma transação de bitcoins de acordo com um modelo UTXO (saída de transação não gasta)) assinada por um transmissor, a transação proposta pode ser transmitida à rede de cadeia de blocos para mineração. Um mineiro precisa verificar se a transação tem qualificação para ser executada de acordo com o histórico da cadeia de blocos. Se o saldo da carteira do transmissor possui fundos suficientes de acordo com o histórico da cadeia de blocos atual, a transação é considerada válida e pode ser adicionada ao bloco. Uma vez verificadas, as transferências de ativos podem ser incluídas no bloco seguinte para ser adicionadas à cadeia de blocos.
[032]Um bloco é muito parecido com um registro de banco de dados. Toda vez que escrevem-se dados, cria-se um bloco. Esses blocos são interligados e protegidos usando criptografia para tornar-se redes interconectadas. Cada bloco conecta-se ao anterior, que também explica a origem do nome “cadeia de blocos”. Cada bloco geralmente contém o hash criptográfico do bloco anterior, o horário de geração e os dados em si. Por exemplo, cada bloco contém duas partes: um cabeçalho de bloco, para registrar o valor de recurso do bloco atual, e um corpo, para registrar os dados em si (por exemplo, dados de transação). A cadeia de blocos é interligada através dos cabeçalhos de bloco. Cada cabeçalho de bloco pode conter vários valores de recurso, tais como versão, hash do bloco anterior, raiz de Merkle, carimbo de tempo, alvo de dificuldade e nonce. O hash do bloco anterior não só contém o endereço do bloco anterior, mas também o hash dos dados dentro do bloco anterior, tornando assim as cadeias de blocos imutáveis. O nonce é um número que, quando incluído, produz um hash com um número específico de bits zero iniciais.
Petição 870190034243, de 10/04/2019, pág. 19/61
11/36 [033]Na mineração, o hash dos conteúdos do novo bloco é assumido por um nó. O nonce (por exemplo, sequência aleatória) é anexado ao hash para obter uma nova sequência. A nova sequência gera um novo hash. O hash final é então comparado ao alvo (por exemplo, nível) de dificuldade e determina-se se o hash final é realmente menor que o alvo de dificuldade ou não. Se não, o nonce é alterado, e o processo repete novamente. Se sim, o bloco é adicionado à cadeia, e o livro-razão público é atualizado e avisado sobre a adição. O nó responsável pela adição bemsucedida é recompensado com bitcoins, por exemplo, adicionando uma transação de recompensa a si próprio ao novo bloco (o que é conhecido como geração base de moeda).
[034]Ou seja, para toda saída “Y”, se k é escolhido dentre uma distribuição com alta entropia mínima, é impossível encontrar uma entrada x tal que H(k|x) = Y, onde K é o nonce, x é o hash do bloco, Y é o alvo de dificuldade, e “|” indica concatenação. Por os hashes criptográficos serem essencialmente aleatórios, no sentido em que sua saída não pode ser prevista com base em suas entradas, só há uma forma conhecida de encontrar o nonce: testar números inteiros um depois do outro, por exemplo, 1, depois 2, depois 3, e assim por diante, o que pode ser conhecido como força bruta. Quanto maior o número de zeros iniciais, mais demorará em média para encontrar um nonce Y necessário. Em um exemplo, o sistema de bitcoin ajusta constantemente o número de zeros iniciais, de tal modo que o tempo médio para encontrar um nonce seja de cerca de dez minutos. Assim, na medida em que a capacidade de processamento do hardware de computação aumenta com o tempo, ao longo dos anos, o protocolo bitcoin simplesmente exigirá mais bits zero iniciais de modo a fazer com que a mineração sempre leve uma duração de cerca de dez minutos para que seja implementada.
[035]Conforme descrito, o hashing é um pilar importante para a cadeia de blocos. O algoritmo de hash pode ser entendido como uma função que comprime
Petição 870190034243, de 10/04/2019, pág. 20/61
12/36 mensagens de qualquer tamanho em uma compilação da mensagem de tamanho fixo. O MD5 e o SHA são usados com mais frequência. Em algumas modalidades, o tamanho de hash da cadeia de blocos é de 256 bits, o que significa que, não importa qual o conteúdo original, em última instância um número binário de 256 bits é calculado. E pode-se garantir que o hash correspondente é exclusivo contanto que o conteúdo original seja diferente. Por exemplo, o hash da sequência “123” é a8fdc205a9f19cdc7507a60c4f01b13d11d7fd0 (hexadecimal), que possui 256 bits quando convertido em binário, e apenas “123” possui esse hash. O algoritmo de hash na cadeia de blocos é irreversível, ou seja, o cálculo direto é fácil (de “123” para a8fdc205a9f19cc1c7507a60c4f01b1c7507a60c4f01b13d11d7fd0), e o cálculo reverso não pode ser feito ainda que todos os recursos de computação sejam exauridos. Sendo assim, o hash de cada bloco da cadeia de blocos é exclusivo.
[036]Além disso, se o conteúdo do bloco muda, seu hash mudará. O bloco e o hash são em correspondência um a um, e o hash de cada bloco é calculado especificamente para o cabeçalho de bloco. Ou seja, os valores de recurso dos cabeçalhos de bloco são conectados para formar uma sequência longa, e então o hash é calculado para a sequência. Por exemplo, “Hash = SHA256 (cabeçalho de bloco)” é uma fórmula calcular o hash do bloco, SHA256 é um algoritmo de hash de cadeia de blocos aplicado ao cabeçalho de bloco. O hash é determinado exclusivamente pelo cabeçalho de bloco, e não pelo corpo de bloco. Como mencionado acima, o cabeçalho de bloco possui muito conteúdo, inclusive o hash do bloco atual e o hash do bloco anterior. Isso significa que, se o conteúdo do bloco atual mudar, ou se o hash do bloco anterior mudar, ocorrerá uma mudança de hash no bloco atual. Se um hacker modifica um bloco, o hash desse bloco muda. A fim de que um bloco mais adiante conecte-se ao bloco modificado, o hacker, por sua vez, deve modificar todos os blocos subsequentes, porque o próximo bloco deve conter o hash do bloco anterior. Do contrário, o bloco modificado será destacado da cadeia de blocos. Por motivos de
Petição 870190034243, de 10/04/2019, pág. 21/61
13/36 design, os cálculos de hash são demorados e é praticamente impossível modificar vários blocos em um curto período de tempo a não ser que o hacker tenha dominado mais de 51% do poder de computação de toda a rede. Sendo assim, a cadeia de blocos garante sua própria confiabilidade, e, uma vez que os dados são escritos, não é possível adulterá-los.
[037]Assim que o mineiro encontra o hash (ou seja, uma assinatura ou solução qualificada) para o novo bloco, o mineiro transmite essa assinatura a todos os outros mineiros (nós da cadeia de blocos). Outros mineiros agora verificam, um após o outro, se essa solução corresponde ao problema do bloco do transmissor (ou seja, determinam se a entrada de hash realmente resulta nessa assinatura). Se a solução for válida, os demais mineiros confirmarão a solução e concordarão que o novo bloco pode ser adicionado à cadeia de blocos. Assim, o consenso do novo bloco é atingido. Isso também é conhecido como “prova de trabalho”. O bloco para o qual obteve-se consenso pode agora ser adicionado à cadeia de blocos e é transmitido a todos os nós na rede junto com sua assinatura. Os nós aceitarão o bloco e o salvarão em seus dados de transações contanto que as transações dentro do bloco correspondam corretamente aos saldos de carteira atuais (histórico de transações) nesse ponto no tempo. Toda vez que um novo bloco é adicionado no topo desse bloco, a adição também conta como outra confirmação para os blocos antes dele. Por exemplo, se uma transação é incluída no bloco 502, e a cadeia de blocos tem 507 blocos de comprimento, significa que a transação possui cinco confirmações (correspondentes aos blocos de 507 a 502). Quanto mais confirmações a transação possui, mais difícil é para que piratas a alterem.
[038]Em algumas modalidades, um sistema de ativos de cadeia de blocos utiliza criptografia de chave pública, em que duas chaves criptográficas, uma pública e outra privada, são geradas. Pode-se pensar na chave pública como um número de conta e na chave privada como credenciais de propriedade. Por exemplo, uma car
Petição 870190034243, de 10/04/2019, pág. 22/61
14/36 teira de bitcoins é uma coletânea das chaves públicas e privadas. A propriedade de um ativo (por exemplo, moeda digital, ativo financeiro, ação, participação, título) associado a certo endereço de ativo pode ser demonstrada com o conhecimento da chave privada pertencente ao endereço. Por exemplo, um software de carteira de bitcoins, por vezes chamado de “software cliente de bitcoins”, permite que dado usuário faça transações em bitcoins. Um programa de carteira gera e armazena chaves privadas e comunica-se com pontos de rede na rede de bitcoins.
[039] Em transações na cadeia de blocos, os pagadores e credores são identificados na cadeia de blocos por suas chaves criptográficas públicas. Por exemplo, a maioria das transferências de bitcoins contemporâneas são de uma chave pública para uma chave pública diferente. Na prática, hashes dessas chaves são usados na cadeia de blocos e são chamados de “endereços de bitcoins”. Em teoria, se um criminoso hipotético S roubasse dinheiro da pessoa A simplesmente adicionando transações ao livro-razão da cadeia de blocos como a pessoa A paga à pessoa S 100 bitcoins” usando endereços de bitcoins dos usuários em vez de seus nomes. O protocolo bitcoin impede esse tipo de roubo ao exigir que toda transferência seja assinada digitalmente com a chave privada do pagador, e somente transferências assinadas podem ser adicionadas ao livro-razão da cadeia de blocos. Como a pessoa S não pode forjar a assinatura da pessoa A, a pessoa S não pode lesar a pessoa A adicionando uma entrada à cadeia de blocos equivalente a a pessoa A paga à pessoa S 200 bitcoins. Ao mesmo tempo, qualquer um pode verificar a assinatura da pessoa A usando sua própria chave pública e, assim, esse alguém autoriza qualquer transação na cadeia de blocos em que ele é o pagador.
[040]No contexto das transações em bitcoins, para transferir alguns bitcoins ao usuário B, o usuário A pode construir um registro contendo informações acerca da transação através de um nó. O registro pode ser assinado com a chave de assinatura do usuário A (chave privada) e contém a chave de verificação pública do
Petição 870190034243, de 10/04/2019, pág. 23/61
15/36 usuário A e a chave de verificação pública do usuário B. A assinatura é usada para confirmar que a transação veio do usuário e também impede que a transação seja alterada por quem quer que seja uma vez feita. O registro junto ao outro registro que ocorreu na mesma janela de tempo em um novo bloco pode ser transmitido aos nós completos. Ao receber os registros, os nós completos podem trabalhar para incorporar os registros ao livro-razão de todas as transações que já ocorreram no sistema de cadeia de blocos, adicionando o novo bloco a uma cadeia de blocos previamente aceita através do processo de mineração descrito acima, e validar o bloco adicionado levando em consideração as regras de consenso da rede.
[041 ]O ativo a ser transferido do usuário A pode ser em formato UTXO (saída de transação não gasta). O UTXO é um modelo de objetos de cadeia de blocos. De acordo com o UTXO, os ativos são representados por saídas de transações de cadeia de blocos que não foram gastas, que podem ser usadas como entradas em novas transações. Para gastar o ativo (fazer a transação do ativo), o usuário precisa assinar com a chave privada. O bitcoin é um exemplo de moeda digital que utiliza o modelo UTXO. No caso de uma transação em uma cadeia de blocos válida, saídas não gastas podem ser usadas para efetuar novas transações. Em algumas modalidades, somente saídas não gastas podem ser usadas em novas transações para prevenir despesas duplicadas e fraudes. Por esse motivo, as entradas em uma cadeia de blocos são excluídas quando ocorre uma transação, ao passo que, ao mesmo tempo, criam-se saídas na forma de UTXOs. Essas saídas de transações não gastas podem ser usadas (pelos donos de chaves privadas, por exemplo, pessoas com carteiras em moeda digital) para os fins de transações futuras.
[042]Como a cadeia de blocos e outros livros-razão semelhantes são completamente públicos, a cadeia de blocos em si não possui proteção à privacidade. O caráter público da rede P2P significa que, embora os que a utilizam não sejam identificados pelo nome, a correlação de transações com indivíduos e empresas é viável.
Petição 870190034243, de 10/04/2019, pág. 24/61
16/36
Por exemplo, em remessas de valores internacionais ou na cadeia de abastecimento, os tipos de ativo têm um nível altíssimo de valor de proteção à privacidade porque, com as informações do tipo de ativo, é possível deduzir a localização e identidade específicas das partes da transação. O tipo de ativo pode compreender, por exemplo, dinheiro, moeda digital, contrato, escritura, histórico médico, detalhes do cliente, ações, títulos, participações ou o tipo de qualquer outro ativo que possa ser descrito em formato digital. Embora o modelo UTXO ofereça anonimato às identidades e quantias das transações, e tenha sido aplicado a Monero e Zcash, o tipo de ativo de transação permanece desprotegido. Sendo assim, uma abordagem ao problema técnico de acordo com a presente invenção consiste em proteger informações online, tais como a privacidade do tipo de ativo, nas transações. Os sistemas e métodos revelados podem ser integrados ao modelo UTXO para oferecer proteção à privacidade para uma variedade de conteúdos de transação.
[043]Durante as transações, a proteção da informação é importante para garantir a privacidade do usuário, e o tipo de ativo de transação é um tipo de informação que carece de proteção. A FIG. 1 ilustra um sistema exemplificativo 100 para proteção da informação de acordo com várias modalidades. Conforme ilustrado, uma rede de cadeia de blocos pode compreender vários nós (por exemplo, nós completos implementados em servidores, computadores etc.). Em algumas plataformas de cadeia de blocos (por exemplo, NEO), nós completos com certo nível de poder de votação podem ser chamados de nós de consenso, que assumem a responsabilidade de verificação da transação. Na presente invenção, nós completos, nós de consenso ou outros nós equivalentes podem verificar a transação.
[044]Além disso, conforme ilustra a FIG. 1, o usuário A e o usuário B podem usar dispositivos correspondentes, tais como laptops e celulares que atuam como nós leves, para fazer transações. Por exemplo, o usuário A pode querer fazer uma transação com o usuário B transferindo algum ativo na conta do usuário A para a
Petição 870190034243, de 10/04/2019, pág. 25/61
17/36 conta do usuário B. O usuário A e o usuário B pode usar dispositivos correspondentes instalados com um software de cadeia de blocos apropriado para a transação. O dispositivo do usuário A pode ser chamado de nó iniciador A, que inicia uma transação com o dispositivo do usuário B, chamado de nó receptor B. O Nó A pode acessar a cadeia de blocos via comunicação com o nó 1, e o Nó B pode acessar a cadeia de blocos via comunicação com o nó 2. Por exemplo, o nó A e o nó B podem enviar transações à cadeia de blocos através do nó 1 e do nó 2 para solicitar a adição das transações à cadeia de blocos. Fora a cadeia de blocos, o nó A e o nó B podem ter outros canais de comunicação. Por exemplo, o nó A e o nó B podem obter a chave pública um do outro via comunicação normal pela Internet.
[045]Cada um dos nós na FIG. 1 pode compreender um processador e um meio não transitório legível por computador que armazena instruções para ser executadas pelo processador para fazer com que o nó (por exemplo, o processador do nó) execute várias etapas para proteção da informação descritas neste documento. Cada nó pode ter instalado nele um software (por exemplo, programa de transação) e/ou hardware (por exemplo, fios, conexões sem fio) para se comunicar com outros nós e/ou outros dispositivos. Outros detalhes do hardware e software dos nós são descritos mais adiante com referência à FIG. 5.
[046]A FIG. 2 ilustra etapas exemplificativas para o início e verificação de uma transação de acordo com várias modalidades.
[047]O início da transação pode ser implementado pelo nó iniciador. Em algumas modalidades, cada tipo de tipo de ativo pode ser mapeado ou ter uma identificação exclusiva atribuída a ele. Por exemplo, a identificação exclusiva pode ser um número de série sn computado da seguinte maneira:
Etapa 1.2 sn = Hash (tipo de ativo) [048]onde Hash() é uma função hash. Além disso, o tipo de ativo pode ser criptografado por um esquema de compromisso (por exemplo, compromisso de PePetição 870190034243, de 10/04/2019, pág. 26/61
18/36 dersen) de acordo com o seguinte:
Etapa 1.3C(sn) = rxG + snxH [049]onde r é um fator de cegamento aleatório (chamado alternativamente de fator de cegamento) que oferece ocultação, G e H são geradores/pontos de base da curva elíptica publicamente acordados e podem ser escolhidos aleatoriamente, sn é o valor do compromisso, C(sn) é o ponto de curva usado como compromisso e fornecido à contraparte, e H é outro ponto de curva. Ou seja, G e H podem ser parâmetros conhecidos dos nós. Uma geração “nothing up my sleeve” de H pode ser obtida pelo hashing do ponto de base G com um mapeamento da função hash de um ponto a outre com H = Hash(G). H e G são os parâmetros públicos do dado sistema (por exemplo, pontos gerados aleatoriamente em uma curva elíptica). O nó transmissor pode ter H e G publicados para todos os nós. Embora a descrição acima ofereça um exemplo do compromisso de Pedersen no formato de curva elíptica, várias outras formas de compromisso de Pedersen ou outros esquemas de compromisso podem ser usados alternativamente.
[050]Um esquema de compromisso mantém o sigilo dos dados, mas compromete-os de modo que eles não possam ser alterados mais tarde pelo transmissor dos dados. Se uma parte só conhece o valor de compromisso (por exemplo, C(sn)), ela não é capaz de determinar quais valores de dados subjacentes (por exemplo, sn) foram comprometidos. Tanto os dados (por exemplo, sn) como o fator de cegamento (por exemplo, r) podem ser revelados mais tarde (por exemplo, pelo nó iniciador), e um receptor (por exemplo, nó de consenso) do compromisso pode executar o compromisso e verificar se os dados comprometidos coincidem com os dados revelados. O fator de cegamento se faz presente porque, sem ele, alguém podería tentar adivinhar os dados.
[051 ]Os esquemas de compromisso são uma forma de o transmissor (parte comprometedora) comprometer um valor (por exemplo, sn) de tal modo que o valor
Petição 870190034243, de 10/04/2019, pág. 27/61
19/36 comprometido permaneça privado, mas possa ser revelado mais tarde quando a parte comprometedora divulgar um parâmetro necessário do processo de compromisso. Fortes esquemas de compromisso podem envolver tanto a ocultação de informações como o cegamento computacional. Ocultação refere-se à noção de que dado valor sn e um compromisso desse valor C(sn) deveríam ser não relacionáveis. Ou seja, C(sn) não deve revelar nenhuma informação acerca de sn. Com C(sn), G e H conhecidos, é praticamente impossível conhecer sn por causa do número aleatório r. O esquema de compromisso é o cegamento se não houver uma maneira plausível de que dois valores diferentes possam resultar no mesmo compromisso. O compromisso de Pedersen consiste em ocultar perfeitamente e cegar computacionalmente de acordo com a suposição do logaritmo discreto.
[052]O compromisso de Pedersen possui uma propriedade adicional: compromissos podem ser adicionados, e a soma de um conjunto de compromissos é a mesma que um compromisso à soma dos dados (com um conjunto de chaves de cegamento como a soma das chaves de cegamento): C(BF1, datai) + C(BF2, data2) == C(BF1+BF2, datai+data2); C(BF1, datai) - C(BF1, datai) == 0. Em outras palavras, o compromisso preserva a adição e a propriedade comutativa aplica-se, isto é, o compromisso de Pedersen é aditivamente homomórfico, no sentido que os dados subjacentes podem ser manipulados matematicamente como se não criptografados.
[053]Em uma modalidade, um compromisso de Pedersen usado para criptografar o valor de entrada pode ser construído usando pontos de curva elípticos. Convencionalmente, uma chave pública de criptografia de curva elíptica (ECC) é criada multiplicando um gerador para o grupo (G) pela chave secreta (r): Pub=rG. O resultado pode ser serializado como um conjunto de 33 bytes. Chaves públicas ECC podem obedecer a propriedade aditivamente homomórfica supramencionada com relação a compromissos de Pedersen. Ou seja: Pub1+Pub2=(r1+r2(mod n))G.
[054]O compromisso de Pedersen para o valor de entrada pode ser criado
Petição 870190034243, de 10/04/2019, pág. 28/61
20/36 selecionando um gerador adicional para o grupo (H nas equações abaixo) de modo que ninguém saiba o log discreto para o segundo gerador H em relação ao primeiro gerador G (ou vice-versa), o que significa que ninguém conhece x tal que rG=H. Isso pode ser obtido, por exemplo, usando o hash criptográfico de G para selecionar H: H=to_point(SHA256(ENCODE(G))).
[055]Dados os dois geradores G e H, um esquema de compromisso exemplificative para criptografar o valor de entrada pode ser definido por: compromisso=rG+aH. Aqui, r pode ser o valor de cegamento secreto, e a pode ser o valor de entrada sendo comprometido. Por conseguinte, se sn for comprometido, o esquema de compromisso descrito acima C(sn) = rxG + snxH pode ser obtido. Os compromissos de Pedersen são informações teoricamente privadas: para qualquer compromisso, existe algum fator de cegamento que faria com que qualquer quantia coincidisse com o compromisso. Os compromissos de Pedersen podem ser computacionalmente protegidos contra compromissos falsos, porque o mapeamento arbitrário não pode ser computado.
[056]A parte (nó) que comprometeu o valor pode abrir o compromisso revelando o valor original sn e o fator r que completa a equação de compromisso. A parte que deseja abrir o valor C(sn) computará então o compromisso novamente para verificar se o valor original compartilhado de fato coincide com o compromisso C(sn) inicialmente recebido. Assim, as informações do tipo de ativo podem ser protegidas mapeando-as a um número de série exclusivo e, então, criptografando-as pelo compromisso de Pedersen. O número aleatório r escolhido ao gerar o compromisso torna praticamente impossível para qualquer um deduzir o tipo de tipo de ativo que é comprometido de acordo com o valor de compromisso C(sn).
[057]Em algumas modalidades, ao incorporar o método de proteção da informação do tipo de ativo de acordo com o modelo UTXO, a consistência do tipo de ativo da entrada (sn_in) e do tipo de ativo da saída (sn_out) de uma transação pode
Petição 870190034243, de 10/04/2019, pág. 29/61
21/36 ser verificada para determinar a autenticidade da transação. Por exemplo, os nós de cadeia de blocos podem rejeitar transações ou blocos que fracassem no teste de consistência em que sn_in = = sn_out. Visto que o tipo de ativo sn é criptografado (por exemplo, por compromisso de Pedersen), o teste de consistência serve para verificar se C(sn_in) = = C(sn_out).
[058]Em algumas modalidades, conforme ilustra a FIG. 2, etapa 1, uma transação do tipo UTXO pode compreender m entradas (por exemplo, ativos disponíveis) e n saídas (por exemplo, ativos transferidos e ativos remanescentes). As entradas podem ser indicadas por sn_in_k, onde 1 < k < m e as saídas podem ser indicadas por sn_out_k, onde 1 < k < n. Algumas das saídas podem ser transferidas ao nó receptor B, ao passo que as saídas remanescentes podem voltar ao nó iniciador A. Por exemplo, em uma transação hipotética, o usuário A pode ter um total de 5 bitcoins e 10 ações nessa carteira, e, para entradas de transação, sn_in_1 = Hash(bitcoin) e sn_in_2 = Hash(stock). Se o usuário A quiser transferir 3 bitcoins ao usuário B, para saídas de transação, sn_out_1 = Hash(bitcoin), sn_out_2 = Hash(bitcoin) e sn_out_3 = Hash(stock), com o que uma das saídas de bitcoin (3 bitcoins) é endereçada ao usuário B, e a outra saída de bitcoin (2 bitcoins) e a saída de ação são endereçadas de volta ao usuário A.
[059]Logo, em algumas modalidades, o tipo de ativo correspondente à entrada pode ser criptografado no formato:
C_in_k = r_in_kxG + sn_in_kxH, onde 1 <k< m [060]O tipo de ativo de saída corresponde ao formato de criptografia:
C_out_k = r_out_kxG + sn_out_kxH, onde 1 < k < n [061]Com os tipos de ativo sendo ocultados, o iniciador de transação precisa provar aos nós (por exemplo, nós completos, nós de consenso) que os tipos de ativo de entrada da transação são respectivamente consistentes com os tipos de ativo de saída. Logo, os nós completos podem verificar se a transação é válida.
Petição 870190034243, de 10/04/2019, pág. 30/61
22/36 [062]Em algumas modalidades, para iniciar uma transação do tipo UTXO com um tipo de ativo ocultado por compromisso de Pedersen, o iniciador de transação pode selecionar entradas e saídas apropriadas para realizar as Etapas 2.1 a 2.5 abaixo (correspondentes à FIG. 2, etapa 2):
[063]Etapa 2.1 Calcular
C_1 = C_in_1 - C_in_2,
C_2 = C_in_2 - C_in_3,
C_(m-1) = C_in_(m-1) - C_in_m,
C_m = C_out_1 - C_out_2,
C_(m+1) = C_out_2 - C_out_3,
C_(m+n-2) = C_out_(n-1) - C_out_n,
C_(m+n-1) = C_in_1 - C_out_1;
[064]Etapa 2.2 Calcular x = Hash (C_1 || C_2 || C_3 || ... || C_(m+n-1)), onde “||” representa concatenação;
[065]Etapa 2.3 Calcular C = C_1 + x x C_2 + x2 x C_3 + ... + x<m+n-2) χ C_(m+n-1). Note-se que os termos polinômios podem corresponder aos na Etapa 2.1;
[066]Etapa 2.4 Calcular R = (r_in_1 - r_in_2) + χ χ (r_in_2 - r_in_3) + χ2 χ (r_in_3 - r_in_4) + ... + x(m+n_2) x (r_in_1 - r_out_1). Note-se que os termos polinômios podem corresponder aos na Etapa 2.1, por exemplo, (r_in_1 - r_in_2) corresponde a C_in_1 - C_in_2;
[067]Etapa 2.5 Publicar R para nós, por exemplo, em uma transmissão de informações de transação.
[068]Em algumas modalidades, para verificar se os tipos de ativo de entrada e os tipos de ativo de saída são consistentes, C = R χ G deve ser verdadeiro. Por
Petição 870190034243, de 10/04/2019, pág. 31/61
23/36 exemplo, durante a verificação da transação, os nós realizam as Etapas 3.3 (correspondentes à FIG. 2, Etapa 3.1 a 3.3) abaixo para verificar se o tipo de ativo de transação é consistente:
[069]Etapa 3.1 Calcular x = Hash (C_1 || C_2 || C_3 || ... || C_(m+n-1));
[070]Etapa 3.2 Calcular C = C_1 + x x C_2 + x2 x C_3 + ... + x<m+n-2) χ C_(m+n-1);
[071]Etapa 3.3 Verificar se C = R χ G. Se C = R χ G, o tipo de ativo é consistente; do contrário, o tipo de ativo é inconsistente, e a transação é rejeitada. Em algumas modalidades, o C(sn) pode ser publicado nos nós, e os algoritmos das Etapas 2.1 a 2.3 são conhecidos dos nós (por exemplo, incluindo o nó que envia a transação e os nós que verificam a transação). Sendo assim, os nós que verificam a transação podem executar as Etapas 3.1 a 3.3 de maneira correspondente para realizar a confirmação. Assim, a transação rejeitada não será adicionada à cadeia de blocos. Conforme ilustra a etapa 4 na FIG. 2, com base na determinação de consistência, os nós podem determinar se adicionam a transação à cadeia de blocos ou se rejeitam a adição da transação.
[072]Como tal, um iniciador de transação pode enviar informações para nós de cadeia de blocos a fim de verificar a transação com base na consistência da entrada e saída de tipos de ativo da transação sem revelar os tipos de ativo reais e sem a capacidade de alterar as informações enviadas. A alocação de números de série (por exemplo, hashes) para cada tipo de ativo alarga e randomiza a representação de cada tipo de ativo, dificultando que o iniciador de transação forje um tipo de ativo para passar a verificação. Além disso, por causa da existência do número aleatório r, o mesmo tipo de ativo criptografado em diferentes momentos não é o mesmo. Aplicar o compromisso de Pedersen para criptografar o hash de tipo de ativo aprimora a proteção à privacidade do tipo de ativo em um nível ainda mais alto. Assim, pelas Etapas de 2.1 a 2.5, o iniciador de transação pode comprovar aos outros nós que
Petição 870190034243, de 10/04/2019, pág. 32/61
24/36 os tipos de ativo da transação são válidos sem revelar os tipos de ativo. Por exemplo, diferenças entre os tipos de ativo de entrada e saída são obtidas e baseadas nelas constroem-se polinômios, de tal modo que o iniciador de transação pode passar os tipos de ativo transformados aos outros nós para comprovar a consistência dos tipos de ativo e a autenticidade da transação. Ao mesmo tempo, a probabilidade de o iniciador de transação ou outro nó ser capaz de forjar o tipo de ativo pode ser negligenciada porque x é computado por hashing para servir como a base de vários exponenciais nos polinômios. Ademais, a revelação de R permite que os outros nós verifiquem se os tipos de ativo na transação são consistentes sem saber os tipos de artigos através das Etapas 3.1 a 3.3. Logo, com os sistemas e métodos revelados, informações de dados podem ser verificadas por terceiros, ao mesmo tempo em que mantém-se uma proteção à privacidade excepcional.
[073]A FIG. 3 ilustra um fluxograma de um método exemplificativo 300 para proteção da informação de acordo com várias modalidades da presente invenção. O método 300 pode ser implementado por um ou mais componentes (por exemplo, nó A) do sistema 100 da FIG. 1. O método 300 pode ser implementado por um sistema ou dispositivo (por exemplo, computador) que compreende um processador e um meio de armazenamento não transitório legível por computador (por exemplo, memória) que armazena instruções para ser executadas pelo processador para fazer com que o sistema ou dispositivo (por exemplo, o processador) execute o método 300. As operações do método 300 apresentadas abaixo visam a ser ilustrativas Dependendo da implementação, o método exemplificativo 300 pode incluir etapas a mais, a menos ou alternativas executadas em várias ordens ou em paralelo.
[074]O bloco 301 compreende: determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente. Vide, por exemplo, a
Petição 870190034243, de 10/04/2019, pág. 33/61
25/36
Etapa 1 na FIG. 2. Em algumas modalidades, a transação baseia-se em ao menos um modelo de Saídas de Transações Não Gastas (UTXO); e as entradas de dados e as saídas de dados compreendem tipos de um ou mais ativos sendo submetidos à transação entre um transmissor (nó iniciador) e um receptor (nó receptor). O tipo de ativo pode compreender, por exemplo, dinheiro, moeda digital, contrato, escritura, histórico médico, detalhes do cliente, ações, títulos, participações ou o tipo de qualquer outro ativo que possa ser descrito em formato digital.
[075]O bloco 302 compreende: criptografar os tipos de dados de entrada e os tipos de dados de saída. Vide, por exemplo, a Etapa 1.2 descrita acima. Em algumas modalidades, criptografar os tipos de dados de entrada e os tipos de dados de saída compreende criptografar cada um dos tipos de dados de entrada e dos tipos de dados de saída com uma função hash ou outra função unidirecional.
[076]O bloco 303 compreende: comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes. Vide, por exemplo, a Etapa 1.3 descrita acima. Em algumas modalidades, o esquema de compromisso compreende um compromisso de Pedersen. Em algumas modalidades, o esquema de compromisso compreende ao menos um fator de cegamento; e o fator de cegamento muda na hora de comprometer os tipos de dados de entrada criptografados e os tipos de dados de saída criptografados. Ou seja, até mesmo os mesmos dados (por exemplo, mesmo tipo de dados) comprometidos em diferentes momentos teriam valores de compromisso diferentes devido ao fator de cegamento em constante mudança.
[077]O bloco 304 compreende: obter ao menos um parâmetro R baseado ao menos nos valores de compromisso. Vide, por exemplo, as Etapas 2.1 a 2.4 descritas acima. Em algumas modalidades, o esquema de compromisso compreende vários fatores de cegamento que correspondem respectivamente aos tipos de dados
Petição 870190034243, de 10/04/2019, pág. 34/61
26/36 de entrada e aos tipos de dados de saída (vide, por exemplo, r_in_k e r_out_k); e obter ao menos o parâmetro R com base ao menos nos valores de compromisso compreende: obter diferenças entre pares dos valores de compromisso (vide, por exemplo, a Etapa 2.1 para vários pares dos valores de compromisso entre os tipos de ativo de entrada e os tipos de ativo de saída, para os quais as diferenças podem ser obtidas); concatenar as diferenças obtidas (vide, por exemplo, a Etapa 2.2); criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x (vide, por exemplo, a Etapa 2.2); e obter o parâmetro R com base ao menos no valor de criptografia x e diferenças entre pares dos fatores de cegamento (vide, por exemplo, a Etapa 2.4).
[078]O bloco 305 compreende: enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída. Em algumas modalidades, faz-se com que os nós verifiquem a consistência entre os tipos de dados de entrada e os tipos de dados de saída sem conhecimento dos tipos de dados de entrada e dos tipos de dados de saída.
[079]Em algumas modalidades, enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída para fazer com que os nós: obter o parâmetro R e um ponto de base G (vide, por exemplo, o G na Etapa 3.1. H e G podem ser parâmetros públicos disponíveis para todos os nós); obter diferenças entre pares dos valores de compromisso dos tipos de ativo de entrada e tipos de ativo de saída (vide, por exemplo, uma etapa
Petição 870190034243, de 10/04/2019, pág. 35/61
27/36 semelhante à Etapa 2.1); concatenar as diferenças obtidas (vide, por exemplo, a Etapa 3.1); criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x (vide, por exemplo, a Etapa 3.1); obter uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x (vide, por exemplo, a Etapa 3.2); em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são consistentes e adicionar a transação à cadeia de blocos (vide, por exemplo, a Etapa 3.3); e, em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes e rejeitar a adição da transação à cadeia de blocos (vide, por exemplo, a Etapa 3.3).
[080]A FIG. 4 ilustra um fluxograma de um método exemplificativo 400 para proteção da informação de acordo com várias modalidades da presente invenção. O método 400 pode ser implementado por um ou mais componentes (por exemplo, nó i) do sistema 100 da FIG. 1. O nó i pode compreender um nó completo implementado em um servidor. O método 400 pode ser implementado por um sistema ou dispositivo (por exemplo, computador) que compreende um processador e um meio de armazenamento não transitório legível por computador (por exemplo, memória) que armazena instruções para ser executadas pelo processador para fazer com que o sistema ou dispositivo (por exemplo, o processador) execute o método 400. As operações do método 400 apresentadas abaixo visam a ser ilustrativas Dependendo da implementação, o método exemplificativo 400 pode incluir etapas a mais, a menos ou alternativas executadas em várias ordens ou em paralelo.
[081 ]O bloco 401 compreende: um ou mais nós (por exemplo, nós de consenso) em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador. A transação é associada a uma ou mais entradas de dados e uma ou mais
Petição 870190034243, de 10/04/2019, pág. 36/61
28/36 saídas de dados. As entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de saída respectivamente. Os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes. Os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós.
[082]O bloco 402 compreende: os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída; Em algumas modalidades, verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende: obter um parâmetro R e um ponto de base G (vide, por exemplo, R nas Etapas 2.4 e 2.5, e G na Etapa 3.1); obter diferenças entre pares dos valores de compromisso dos tipos de ativo de entrada e tipos de ativo de saída (vide, por exemplo, uma etapa semelhante à Etapa 2.1); concatenar as diferenças obtidas (vide, por exemplo, a Etapa 3.1); criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x (vide, por exemplo, a Etapa 3.1); obter uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x (vide, por exemplo, a Etapa 3.2); e determinar se a soma C é igual ao produto do parâmetro R e ponto de base G (vide, por exemplo, a Etapa 3.3).
[083]O bloco 403 compreende: em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos.
[084]O bloco 404 compreende: em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
[085]Em algumas modalidades, o método compreende ainda: em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base
Petição 870190034243, de 10/04/2019, pág. 37/61
29/36
G, determinar que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e, em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
[086]Como tal, um iniciador de transação pode enviar informações para nós de cadeia de blocos a fim de verificar a transação com base na consistência da entrada e saída de tipos de ativo da transação sem revelar os tipos de ativo reais e sem a capacidade de alterar as informações enviadas. A alocação de números de série (por exemplo, hashes) para cada tipo de ativo alarga e randomiza a representação de cada tipo de ativo, dificultando que o iniciador de transação forje um tipo de ativo para passar a verificação. Além disso, por causa da existência do número aleatório r, o mesmo tipo de ativo criptografado em diferentes momentos não é o mesmo. Aplicar o compromisso de Pedersen para criptografar o hash de tipo de ativo aprimora a proteção à privacidade do tipo de ativo em um nível ainda mais alto. Assim, pelas Etapas de 2.1 a 2.5, o iniciador de transação pode comprovar aos outros nós que os tipos de ativo da transação são válidos sem revelar os tipos de ativo. Por exemplo, diferenças entre os tipos de ativo de entrada e saída são obtidas e baseadas nelas constroem-se polinômios, de tal modo que o iniciador de transação pode passar os tipos de ativo transformados aos outros nós para comprovar a consistência dos tipos de ativo e a autenticidade da transação. Ao mesmo tempo, a probabilidade de o iniciador de transação ou outro nó ser capaz de forjar o tipo de ativo pode ser negligenciada porque x é computado por hashing para servir como a base de vários exponenciais nos polinômios. Ademais, a revelação de R permite que os outros nós verifiquem se os tipos de ativo na transação são consistentes sem saber os tipos de artigos através das Etapas 3.1 a 3.3. Logo, com os sistemas e métodos revelados, informações de dados podem ser verificadas por terceiros, ao mesmo tempo em que mantém-se uma proteção à privacidade excepcional.
Petição 870190034243, de 10/04/2019, pág. 38/61
30/36 [087]As técnicas descritas neste documento são implementadas por um ou mais dispositivos de computação de propósito especial. Os dispositivos de computação de propósito especial podem ser sistemas de computador de mesa, sistemas de computador servidor, sistemas de computador portátil, dispositivos de mão, dispositivos de rede ou qualquer outro dispositivo ou combinação de dispositivos que incorpore lógica com fio e/ou de programa para implementar as técnicas. Os dispositivos de computação de propósito especial podem ser sistemas de computador de mesa, sistemas de computador servidor, sistemas de computador portátil, dispositivos de mão, dispositivos de rede ou qualquer outro dispositivo ou combinação de dispositivos que incorpore lógica com fio e/ou de programa para implementar as técnicas. Sistemas operacionais convencionais controlam e agendam processos de computador para execução, realizam a gestão de memória, oferecem um sistema de arquivos, rede e serviços E/S, e oferecem funcionalidade de interface do usuário, tal como uma interface gráfica do usuário (GUI), entre outros.
[088]A FIG. 5 traz um diagrama em blocos que ilustra um sistema de computador 500 no qual qualquer uma das modalidades descritas neste documento pode ser implementada. O sistema 500 pode ser implementado em qualquer um dos nós descritos neste documento e configurado para realizar etapas correspondentes para métodos de proteção da informação. O sistema de computador 500 inclui um barramento 502 ou outro mecanismo de comunicação para comunicar informações e um ou mais processadores de hardware 504 acoplados ao barramento 502 para processar informações. Os um ou mais processadores de hardware 504 podem ser, por exemplo, um ou mais microprocessadores de propósito geral.
[089]O sistema de computador 500 também inclui uma memória principal 506, tal como uma memória de acesso aleatório (RAM), cache e/ou outros dispositivos de armazenamento dinâmico, acoplados a um barramento 502 para armazenar informações e instruções para ser executadas pelos um ou mais processadores 504.
Petição 870190034243, de 10/04/2019, pág. 39/61
31/36
A memória principal 506 também pode ser usada para armazenar variáveis temporárias ou outras informações intermediárias durante a execução das instruções para ser executadas pelos um ou mais processadores 504. Essas instruções, quando armazenadas em meios de armazenamento acessíveis aos um ou mais processadores 504, tornam o sistema de computador 500 uma máquina de propósito especial que é personalizada para executar as operações especificadas nas instruções. O sistema de computador 500 inclui ainda uma memória somente para leitura (ROM) 508 ou outro dispositivo de armazenamento estático acoplado ao barramento 502 para armazenar informações e instruções para os um ou mais processadores 504. Um dispositivo de armazenamento 510, tal como um disco magnético, disco óptico ou miniunidade USB (unidade Flash) etc., é provido e acoplado a um barramento 502 para armazenar informações e instruções.
[090]O sistema de computador 500 pode implementar as técnicas descritas neste documento usando lógica com fio personalizada, um ou mais ASICs ou FPGAs, firmware e/ou lógica de programa que, junto com o sistema de computador, fazem com que o sistema de computador 500 se torne ou programam-no para que seja uma máquina de propósito especial. De acordo com uma modalidade, as operações, métodos e processos descritos neste documento são realizados pelo sistema de computador 500 em resposta aos um ou mais processadores 504 executarem uma ou mais sequências de uma ou mais instruções contidas na memória principal 506. Essas instruções podem ser lidas na memória principal 506 a partir de outro meio de armazenamento, tal como dispositivo de armazenamento 510. A execução das sequências de instruções contidas na memória principal 506 faz com que os um ou mais processadores 504 executem as etapas de processo descritas neste documento. Em modalidades alternativas, um sistema de circuitos com fio pode ser usado no lugar de instruções de software ou em combinação às mesmas.
[091 ]A memória principal 506, a ROM 508 e/ou o armazenamento 510 po
Petição 870190034243, de 10/04/2019, pág. 40/61
32/36 dem incluir meios de armazenamento não transitórios. O termo “meios não transitórios” e termos semelhantes, conforme usados neste documento, referem-se a meios que armazenam dados e/ou instruções que fazem com que uma máquina opere de uma maneira específica; os meios excluem sinais transitórios. Esses meios não transitórios podem compreender meios não voláteis e/ou meios voláteis. Meios não voláteis incluem, por exemplo, discos ópticos ou magnéticos, tais como o dispositivo de armazenamento 510. Meios voláteis incluem memória dinâmica, tal como a memória principal 506. Formas comuns de meios não transitórios legíveis por computador incluem, por exemplo, um disquete, um disco flexível, um disco rígido, uma unidade de estado sólido, uma fita magnética ou qualquer outro meio de armazenamento de dados magnético, um CD-ROM, qualquer outro meio de armazenamento de dados óptico, qualquer meio físico com padrões de orifícios, RAM, PROM e EPROM, FLASH-EPROM, NVRAM, qualquer outro chip ou cartucho de memória, e versões em rede dos mesmos.
[092]O sistema de computador 500 também inclui uma interface de rede 518 acoplada ao barramento 502. A interface de rede 518 oferece um acoplamento para a comunicação bidirecional de dados com um ou mais elos de rede que conectam-se a uma ou mais redes locais. Por exemplo, a interface de rede 518 pode ser um cartão de rede digital de serviços integrados (ISDN), cable modem, modem de satélite ou um modem para prover uma conexão para comunicação de dados com um tipo correspondente de linha telefônica. Em outro exemplo, a interface de rede 518 pode ser um cartão de rede de área local (LAN) para prover uma conexão de comunicação de dados com uma LAN compatível (ou componente WAN para comunicar-se com uma WAN). Elos sem fio também podem ser implementados. Em qualquer implementação desse tipo, a interface de rede 518 envia e recebe sinais elétricos, eletromagnéticos ou ópticos que transportam fluxos de dados digitais que representam vários tipos de informação.
Petição 870190034243, de 10/04/2019, pág. 41/61
33/36 [093]O sistema de computador 500 pode ler mensagens e receber dados, incluindo código de programa, através das uma ou mais redes, elo de rede e interface de rede 518. No caso da Internet, um servidor pode transmitir um código solicitado para um programa de aplicativo via Internet, ISP, rede local e interface de rede 518.
[094]O código recebido pode ser executado por um ou mais processadores 504 assim que recebido, e/ou ser armazenado no dispositivo de armazenado 510 ou outro meio de armazenamento não volátil para uso futuro.
[095]Cada um dos processos, métodos e algoritmos descritos nas seções anteriores pode ser incorporado a, e automatizado em parte ou por inteiro por, módulos de código executados por um ou mais sistemas de computador ou processadores de computador compreendendo hardware de computador. Os processos e algoritmos podem ser implementados em parte ou por inteiro em um sistema de circuitos de aplicação específica.
[096]Os vários traços e processos descritos acima podem ser usados independentemente uns dos outros, ou podem ser combinados de diversas maneiras. Tenciona-se que todas as combinações e subcombinações possíveis enquadrem-se no âmbito da presente invenção. Além disso, certos blocos de método ou processo podem ser omitidos em algumas implementações. Os métodos e processos descritos neste documento também não são limitados a nenhuma sequência específica, e os blocos e estados relacionados a eles podem ser executados em outras sequências que sejam apropriadas. Por exemplo, os blocos ou estados descritos podem ser executados em uma ordem diferente da especificamente revelada, ou vários blocos ou estados podem ser combinados em um único bloco ou estado. Os blocos ou estados exemplificativos podem ser executados em série, em paralelo ou de alguma outra maneira. Blocos ou estados podem ser adicionados às modalidades exemplificativas reveladas ou removidos delas. Os sistemas e componentes exemplificativos
Petição 870190034243, de 10/04/2019, pág. 42/61
34/36 descritos neste documento podem ser configurados de maneira diferente da descrita. Por exemplo, é possível adicionar, remover ou reordenar elementos em comparação às modalidades exemplificativas reveladas.
[097]As várias operações de métodos exemplificativos descritas neste documento podem ser executadas, ao menos em parte, por um algoritmo. O algoritmo pode ser contido em códigos de programa ou instruções armazenadas em uma memória (por exemplo, um meio de armazenamento não transitório legível por computador descrito acima). Esse algoritmo pode compreender um algoritmo de aprendizagem de máquina. Em algumas modalidades, um algoritmo de aprendizagem de máquina pode não programar explicitamente os computadores para executar uma função, mas pode aprender com base em dados de treinamento para criar um modelo de predições que executa a função.
[098]As várias operações de métodos exemplificativos descritas neste documento podem ser realizadas, ao menos em parte, por um ou mais processadores configurados temporariamente (por exemplo, por software) ou permanentemente para realizar as operações relevantes. Sejam configurados temporária ou permanentemente, esses processadores podem constituir motores implementados por processador que operam para executar uma ou mais operações ou funções descritas neste documento.
[099]À semelhança, os métodos descritos neste documento podem ser implementados ao menos em parte por processador, sendo um ou mais processadores específicos um exemplo de hardware. Por exemplo, ao menos algumas das operações de um método podem ser executadas por um ou mais processadores ou motores implementados por processador. Além disso, os um ou mais processadores também podem operar para suportar o desempenho das operações relevantes em um ambiente de “computação em nuvem” ou como um “software como serviço” (SaaS). Por exemplo, ao menos algumas das operações podem ser realizadas por um grupo
Petição 870190034243, de 10/04/2019, pág. 43/61
35/36 de computadores (como exemplo de máquinas com processadores), essas operações sendo acessíveis por meio de uma rede (por exemplo, a Internet) e por meio de uma ou mais interfaces adequadas (por exemplo, uma Interface de Programação de Aplicativos (API)).
[0100]0 desempenho de algumas das operações pode ser distribuído entre os processadores, não só alojados dentro de uma única máquina, mas implementados em várias máquinas. Em algumas modalidades exemplificativas, os processadores ou motores implementados por processador podem situar-se em um mesmo local geográfico (por exemplo, dentro de uma casa, de um escritório ou de uma torre de servidores). Em outras modalidades exemplificativas, os processadores ou motores implementados por processador podem ser distribuídos em vários locais geográficos.
[0101]Ao longo deste relatório descritivo, instâncias no plural podem indicar a implementação de componentes, operações ou estruturas descritos como uma instância no singular. Embora operações individuais de um ou mais métodos sejam ilustradas e descritas como operações distintas, uma ou mais das operações individuais podem ser realizadas ao mesmo tempo e não há nenhuma restrição segundo a qual as operações devam ser realizadas na ordem ilustrada. As estruturas e funcionalidades apresentadas como componentes distintos em configurações exemplificativas podem ser implementadas como uma estrutura ou componente combinados. À semelhança, estruturas e funcionalidades apresentadas como um único componente podem ser implementadas como componentes distintos. Essas e outras variações, modificações, adições e melhorias encontram-se dentro do âmbito da matéria inventiva revelada neste documento.
[0102]Embora tenha-se descrito uma visão geral da matéria inventiva descrita com referência a modalidades exemplificativas específicas, ficará evidente que várias modificações e alterações podem ser feitas a essas modalidades sem divergir
Petição 870190034243, de 10/04/2019, pág. 44/61
36/36 do âmbito, mais amplos, de modalidades da presente invenção. Essas modalidades da matéria inventiva podem ser indicadas neste documento, individual ou coletivamente, pelo termo “invenção” para fins meramente de conveniência e sem a intenção de limitar voluntariamente o âmbito deste pedido a qualquer invenção ou conceito inventivo exclusivo se, na prática, mais de um for revelado.

Claims (22)

  1. REIVINDICAÇÕES
    1. Método implementado por computador para proteção da informação, o método sendo CARACTERIZADO por compreender:
    determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente;
    criptografar os tipos de dados de entrada e os tipos de dados de saída;
    comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes;
    obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
  2. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que: criptografar os tipos de dados de entrada e os tipos de dados de saída compreende criptografar os tipos de dados de entrada e os tipos de dados de saída com uma função hash.
  3. 3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que: o esquema de compromisso compreende um compromisso de Pedersen.
  4. 4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que:
    o esquema de compromisso compreende ao menos um fator de cegamento; e
    Petição 870190034243, de 10/04/2019, pág. 46/61
    2/10 o fator de cegamento muda na hora de comprometer os tipos de dados de entrada criptografados e os tipos de dados de saída criptografados.
  5. 5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que: faz-se com que os nós verifiquem a consistência entre os tipos de dados de entrada e os tipos de dados de saída sem conhecimento dos tipos de dados de entrada e dos tipos de dados de saída.
  6. 6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que:
    a transação baseia-se em ao menos um modelo de Saídas de Transações Não Gastas (UTXO); e as entradas de dados e as saídas de dados compreendem tipos de um ou mais ativos sendo submetidos à transação.
  7. 7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que:
    o esquema de compromisso compreende vários fatores de cegamento que correspondem respectivamente aos tipos de dados de entrada e aos tipos de dados de saída; e obter ao menos o parâmetro R com base ao menos nos valores de compromisso compreende:
    obter diferenças entre pares dos valores de compromisso;
    concatenar as diferenças obtidas;
    criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x; e obter o parâmetro R com base ao menos no valor de criptografia x e diferenças entre pares dos fatores de cegamento.
  8. 8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que enviar a transação aos um ou mais nós na rede de cadeia de blocos com a reve
    Petição 870190034243, de 10/04/2019, pág. 47/61
    3/10 lação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída para fazer com que os nós: obtenham o parâmetro R e um ponto de base G;
    obtenham diferenças entre pares dos valores de compromisso;
    concatenem as diferenças obtidas;
    criptografem as diferenças concatenadas com uma função hash para obter um valor de criptografia x;
    obtenham uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x;
    em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
  9. 9. Meio de armazenamento não transitório legível por computador CARACTERIZADO por armazenar instruções para ser executadas por um processador para fazer com que este execute operações que compreendem:
    determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente;
    criptografar os tipos de dados de entrada e os tipos de dados de saída;
    comprometer cada um dos tipos de dados de entrada criptografados e dos
    Petição 870190034243, de 10/04/2019, pág. 48/61
    4/10 tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes;
    obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
  10. 10. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por: criptografar os tipos de dados de entrada e os tipos de dados de saída compreende criptografar os tipos de dados de entrada e os tipos de dados de saída com uma função hash.
  11. 11. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por: o esquema de compromisso compreende um compromisso de Pedersen.
  12. 12. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por:
    o esquema de compromisso compreende ao menos um fator de cegamento; e o fator de cegamento muda na hora de comprometer os tipos de dados de entrada criptografados e os tipos de dados de saída criptografados.
  13. 13. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por: faz-se com que os nós verifiquem a consistência entre os tipos de dados de entrada e os tipos de dados de saída sem conhecimento dos tipos de dados de entrada e dos tipos de dados de saída.
  14. 14. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por:
    Petição 870190034243, de 10/04/2019, pág. 49/61
    5/10 a transação baseia-se em ao menos um modelo de Saídas de Transações Não Gastas (UTXO); e as entradas de dados e as saídas de dados compreendem tipos de um ou mais ativos sendo submetidos à transação.
  15. 15. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO por:
    o esquema de compromisso compreende vários fatores de cegamento que correspondem respectivamente aos tipos de dados de entrada e aos tipos de dados de saída; e obter ao menos o parâmetro R com base ao menos nos valores de compromisso compreende:
    obter diferenças entre pares dos valores de compromisso;
    concatenar as diferenças obtidas;
    criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x; e obter o parâmetro R com base ao menos no valor de criptografia x e diferenças entre pares dos fatores de cegamento.
  16. 16. Meio de armazenamento, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída compreende enviar a transação aos um ou mais nós na rede de cadeia de blocos com a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída para fazer com que os nós:
    obtenham o parâmetro R e um ponto de base G;
    obtenham diferenças entre pares dos valores de compromisso;
    Petição 870190034243, de 10/04/2019, pág. 50/61
    6/10 concatenem as diferenças obtidas;
    criptografem as diferenças concatenadas com uma função hash para obter urn valor de criptografia x;
    obtenham uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x;
    em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinem que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
  17. 17. Sistema para proteção da informação CARACTERIZADO por compreender um processador e um meio de armazenamento não transitório legível por computador acoplado ao processador, o meio de armazenamento armazenando instruções para ser executadas pelo processador para fazer com que o sistema execute operações que compreendem:
    determinar uma ou mais entradas de dados e uma ou mais saídas de dados para uma transação, em que as entradas de dados são associadas a tipos de dados de entrada, respectivamente, e as saídas de dados são associadas a tipos de dados de saída, respectivamente;
    criptografar os tipos de dados de entrada e os tipos de dados de saída;
    comprometer cada um dos tipos de dados de entrada criptografados e dos tipos de dados de saída criptografados com um esquema de compromisso para obter valores de compromisso correspondentes;
    obter ao menos um parâmetro R baseado ao menos nos valores de compromisso; e enviar a transação a um ou mais nós em uma rede de cadeia de blocos com
    Petição 870190034243, de 10/04/2019, pág. 51/61
    7/10 a revelação do parâmetro R e sem a revelação dos tipos de dados de entrada e tipos de dados de saída aos nós para verificar a consistência entre os tipos de dados de entrada e os tipos de dados de saída.
  18. 18. Método implementado por computador para proteção da informação, o método sendo CARACTERIZADO por compreender:
    um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador, em que:
    a transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados, as entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de saída respectivamente, os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes, e os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós;
    os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída;
    em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos; e em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
  19. 19. Método, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que verificar a consistência entre os tipos de dados de entrada e os tipos de da
    Petição 870190034243, de 10/04/2019, pág. 52/61
    8/10 dos de saída compreende:
    obter um parâmetro R e um ponto de base G;
    obter diferenças entre pares dos valores de compromisso;
    concatenar as diferenças obtidas;
    criptografar as diferenças concatenadas com uma função hash para obter um valor de criptografia x;
    obter uma soma C de polinômios com base ao menos nas diferenças obtidas e no valor de criptografia x; e determinar se a soma C é igual ao produto do parâmetro R e ponto de base G.
  20. 20. Método, de acordo com a reivindicação 19, CARACTERIZADO por compreender ainda:
    em resposta à determinação de que a soma C é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são consistentes; e em resposta à determinação de que a soma C não é igual ao produto do parâmetro R e ponto de base G, determinar que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes.
  21. 21. Meio de armazenamento não transitório legível por computador CARACTERIZADO por armazenar instruções para ser executadas por um processador para fazer com que este execute operações que compreendem:
    um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador, em que:
    a transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados, as entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de
    Petição 870190034243, de 10/04/2019, pág. 53/61
    9/10 saída respectivamente, os tipos de dados de entrada e os tipos de dados de saída são criptografados e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes, e os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós;
    os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída;
    em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos; e em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
  22. 22. Sistema para proteção da informação CARACTERIZADO por compreender um processador e um meio de armazenamento não transitório legível por computador acoplado ao processador, o meio de armazenamento armazenando instruções para ser executadas pelo processador para fazer com que o sistema execute operações que compreendem:
    um ou mais nós em uma rede de cadeia de blocos obterem uma transação iniciada por um nó iniciador, em que:
    a transação é associada a uma ou mais entradas de dados e uma ou mais saídas de dados, as entradas de dados são associadas respectivamente a tipos de dados de entrada, e as saídas de dados são associadas respectivamente a tipos de dados de saída respectivamente, os tipos de dados de entrada e os tipos de dados de saída são criptografa
    Petição 870190034243, de 10/04/2019, pág. 54/61
    10/10 dos e comprometidos a um esquema de compromisso para obter valores de compromisso correspondentes, e os tipos de dados de entrada e os tipos de dados de saída não são revelados aos um ou mais nós;
    os um ou mais nós verificarem a consistência entre os tipos de dados de entrada e os tipos de dados de saída;
    em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são consistentes, os um ou mais nós adicionarem a transação à rede de cadeia de blocos; e em resposta à determinação de que os tipos de dados de entrada e os tipos de dados de saída são inconsistentes, os um ou mais nós rejeitarem a adição da transação à rede de cadeia de blocos.
BR112019007232-2A 2018-11-27 2018-11-27 Métodos implementados por computador para proteção da informação, sistemas para proteção da informação e meio de armazenamento legível por computador não transitório BR112019007232B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117548 WO2019072275A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR INFORMATION PROTECTION

Publications (2)

Publication Number Publication Date
BR112019007232A2 true BR112019007232A2 (pt) 2019-11-05
BR112019007232B1 BR112019007232B1 (pt) 2022-02-15

Family

ID=66100052

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019007232-2A BR112019007232B1 (pt) 2018-11-27 2018-11-27 Métodos implementados por computador para proteção da informação, sistemas para proteção da informação e meio de armazenamento legível por computador não transitório

Country Status (16)

Country Link
US (1) US10938549B2 (pt)
EP (1) EP3552158B1 (pt)
JP (1) JP6756041B2 (pt)
KR (1) KR102128210B1 (pt)
CN (1) CN110730963B (pt)
AU (1) AU2018322507B2 (pt)
BR (1) BR112019007232B1 (pt)
CA (1) CA3037833C (pt)
ES (1) ES2863552T3 (pt)
MX (1) MX2019004201A (pt)
PH (1) PH12019500532A1 (pt)
PL (1) PL3552158T3 (pt)
RU (1) RU2719311C1 (pt)
SG (1) SG11201902773VA (pt)
WO (1) WO2019072275A2 (pt)
ZA (1) ZA201902459B (pt)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11381389B2 (en) * 2017-08-15 2022-07-05 Nchain Holdings Ltd. Computer-implemented method of generating a threshold vault
SG11202000804PA (en) 2017-08-15 2020-02-27 Nchain Holdings Ltd Threshold digital signature method and system
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
US11409734B2 (en) * 2018-10-29 2022-08-09 Electronics And Telecommunications Research Institute Blockchain system and operation method thereof
US10790990B2 (en) * 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
CN111353886A (zh) * 2020-02-17 2020-06-30 杭州溪塔科技有限公司 基于utxo模型的资产交易方法、装置和电子设备
CN111340494B (zh) * 2020-05-15 2020-08-28 支付宝(杭州)信息技术有限公司 资产类型一致性证据生成、交易、交易验证方法及系统
CN111858769B (zh) * 2020-07-28 2024-05-03 北京金山云网络技术有限公司 数据使用方法、装置、节点设备及存储介质
US11558374B2 (en) * 2021-03-31 2023-01-17 Lenovo (Singapore) Pte. Ltd. Systems, apparatus, and methods for verifying a password utilizing commitments
CN114092242A (zh) * 2021-11-03 2022-02-25 支付宝(杭州)信息技术有限公司 基于范围证明实现隐私交易的方法和系统
CN114390065B (zh) * 2022-01-24 2024-03-19 浙江数秦科技有限公司 一种区块链网络数据快速传输方法

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
JP2000207466A (ja) 1999-01-18 2000-07-28 Nippon Telegr & Teleph Corp <Ntt> 電子商取引文書を媒介とした電子商取引方法および電子商取引手段、ならびにプログラムを記録した記録媒体。
JP2000299683A (ja) 1999-02-10 2000-10-24 Nippon Telegr & Teleph Corp <Ntt> 複数公開鍵保存方法、その装置およびそのプログラム記録媒体
US7716484B1 (en) 2000-03-10 2010-05-11 Rsa Security Inc. System and method for increasing the security of encrypted secrets and authentication
WO2001080479A1 (en) 2000-04-14 2001-10-25 Wu Wen Delayed commitment scheme to prevent attacks based on compromised certificates
EP1205889A1 (en) 2000-11-10 2002-05-15 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Returning of change in an electronic payment system
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7509498B2 (en) 2001-06-29 2009-03-24 Intel Corporation Digital signature validation
GB2378282A (en) 2001-07-31 2003-02-05 Hewlett Packard Co Automated multivariate negotiation using convertable undeniable signatures
CN1572099A (zh) 2001-10-19 2005-01-26 松下电器产业株式会社 设备鉴别系统和设备鉴别方法
ATE408940T1 (de) 2003-11-03 2008-10-15 Koninkl Philips Electronics Nv Verfahren und einrichtung zur effizienten mehrteilnehmer-vervielfachung
US8156029B2 (en) * 2005-02-24 2012-04-10 Michael Gregory Szydlo Process for verifiably communicating risk characteristics of an investment portfolio
EP1886204B1 (en) 2005-05-10 2011-11-16 DTS Ltd. Transaction method and verification method
JP4435076B2 (ja) 2005-11-18 2010-03-17 フェリカネットワークス株式会社 携帯端末,データ通信方法,およびコンピュータプログラム
US7725446B2 (en) * 2005-12-19 2010-05-25 International Business Machines Corporation Commitment of transactions in a distributed system
EP1978462A4 (en) 2006-01-25 2011-11-30 Panasonic Corp END DEVICE, SERVER DEVICE AND DISTRIBUTION SYSTEM FOR DIGITAL CONTENTS
TW200820108A (en) 2006-05-24 2008-05-01 Ibm Method for automatically validating a transaction, electronic payment system and computer program
US20090177591A1 (en) 2007-10-30 2009-07-09 Christopher Thorpe Zero-knowledge proofs in large trades
US20090281949A1 (en) 2008-05-12 2009-11-12 Appsware Wireless, Llc Method and system for securing a payment transaction
US8543091B2 (en) 2008-06-06 2013-09-24 Ebay Inc. Secure short message service (SMS) communications
US8281131B2 (en) 2008-08-28 2012-10-02 International Business Machines Corporation Attributes in cryptographic credentials
US8744077B2 (en) 2008-10-28 2014-06-03 International Business Machines Corporation Cryptographic encoding and decoding of secret data
JP5264450B2 (ja) 2008-12-02 2013-08-14 日本電信電話株式会社 ビットコミットメント検証システム、ビットコミットメント装置、検証装置、ビットコミットメント検証方法、ビットコミットメント方法、検証方法、ビットコミットメントプログラム、検証プログラム
US20120116978A1 (en) 2008-12-23 2012-05-10 Mtn Mobile Money Sa (Pty) Ltd Method of and system for securely processing a transaction
US8762741B2 (en) 2009-01-29 2014-06-24 Microsoft Corporation Privacy-preserving communication
US8825555B2 (en) 2010-06-30 2014-09-02 International Business Machines Corporation Privacy-sensitive sample analysis
US8527777B2 (en) 2010-07-30 2013-09-03 International Business Machines Corporation Cryptographic proofs in data processing systems
US8661240B2 (en) 2011-04-29 2014-02-25 International Business Machines Corporation Joint encryption of data
US20120317034A1 (en) 2011-06-13 2012-12-13 Microsoft Corporation Transparent virtual currency using verifiable tokens
US9858401B2 (en) 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
SG10201608067QA (en) 2011-09-29 2016-11-29 Amazon Tech Inc Parameter based key derivation
JP5364141B2 (ja) 2011-10-28 2013-12-11 楽天株式会社 携帯端末、店舗端末、送信方法、受信方法、決済システム、決済方法、プログラムおよびコンピュータ読み取り可能な記憶媒体
EP2634738A1 (en) 2012-03-02 2013-09-04 Alcatel Lucent Decentralized electronic transfer system
FR2993382B1 (fr) 2012-07-13 2015-07-03 Oberthur Technologies Entite electronique securisee pour l'autorisation d'une transaction
GB201310084D0 (en) 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
US9853819B2 (en) 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US11055707B2 (en) 2014-06-24 2021-07-06 Visa International Service Association Cryptocurrency infrastructure system
KR20160024185A (ko) 2014-08-25 2016-03-04 아이보 (주) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법
GB201419016D0 (en) 2014-10-24 2014-12-10 Visa Europe Ltd Transaction Messaging
US11200564B2 (en) 2015-03-31 2021-12-14 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160300234A1 (en) 2015-04-06 2016-10-13 Bitmark, Inc. System and method for decentralized title recordation and authentication
US9397985B1 (en) 2015-04-14 2016-07-19 Manifold Technology, Inc. System and method for providing a cryptographic platform for exchanging information
US10026082B2 (en) 2015-05-21 2018-07-17 Mastercard International Incorporated Method and system for linkage of blockchain-based assets to fiat currency accounts
US9870562B2 (en) 2015-05-21 2018-01-16 Mastercard International Incorporated Method and system for integration of market exchange and issuer processing for blockchain-based transactions
US11062303B2 (en) 2015-06-08 2021-07-13 Blockstream Corporation Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction
CN113630416A (zh) 2015-06-30 2021-11-09 维萨国际服务协会 机密认证和供应
US20170085555A1 (en) 2015-07-14 2017-03-23 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US20180191503A1 (en) 2015-07-14 2018-07-05 Fmr Llc Asynchronous Crypto Asset Transfer and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20180253702A1 (en) 2015-11-24 2018-09-06 Gartland & Mellina Group Blockchain solutions for financial services and other transactions-based industries
EP3384448B1 (en) 2015-11-30 2020-10-14 Shapeshift AG Systems and methods for improving security in blockchain-asset exchange
US10013573B2 (en) 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US20170243193A1 (en) 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
SG11201805472RA (en) 2016-02-23 2018-07-30 Nchain Holdings Ltd Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
EP3860037A1 (en) 2016-02-23 2021-08-04 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain
AU2017223129A1 (en) 2016-02-23 2018-07-12 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10237259B2 (en) 2016-02-29 2019-03-19 Securekey Technologies Inc. Systems and methods for distributed identity verification
CN117151853A (zh) 2016-04-11 2023-12-01 区块链控股有限公司 用于区块链上的安全点对点通信的方法
CN107306183B (zh) 2016-04-22 2021-12-21 索尼公司 客户端、服务端、方法和身份验证系统
KR101780635B1 (ko) 2016-04-28 2017-09-21 주식회사 코인플러그 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
KR101802655B1 (ko) 2016-06-10 2017-11-29 인하대학교 산학협력단 원격 서버를 이용한 안전한 소프트웨어 기반 일회용 비밀번호 생성 방법
US11062366B2 (en) 2016-06-24 2021-07-13 Raise Marketplace Inc. Securely processing exchange items in a data communication system
US20180006823A1 (en) 2016-07-01 2018-01-04 Qualcomm Incorporated Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
KR101795695B1 (ko) * 2016-07-14 2017-12-01 주식회사 코인플러그 메신저 서비스를 통하여 송수신하는 데이터에 대한 기록 서비스 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
SG11201809112VA (en) 2016-07-15 2018-11-29 Visa Int Service Ass Digital asset distribution by transaction device
EP3273635B1 (en) 2016-07-20 2019-10-30 Mastercard International Incorporated Secure channel establishment
EP3491572B1 (en) 2016-07-26 2021-09-01 NEC Corporation Method for controlling access to a shared resource
US10067810B2 (en) 2016-07-28 2018-09-04 Cisco Technology, Inc. Performing transactions between application containers
GB201613176D0 (en) 2016-07-29 2016-09-14 Eitc Holdings Ltd Computer-implemented method and system
US10769600B2 (en) 2016-09-26 2020-09-08 International Business Machines Corporation Cryptocurrency transactions using debit and credit values
JP6971019B2 (ja) 2016-09-26 2021-11-24 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、及び、データ管理方法
CN106549749B (zh) 2016-12-06 2019-12-24 杭州趣链科技有限公司 一种基于加法同态加密的区块链隐私保护方法
WO2018125989A2 (en) 2016-12-30 2018-07-05 Intel Corporation The internet of things
US20180211313A1 (en) * 2017-01-23 2018-07-26 Viswanatham Narahari Systems, methods and devices for providing and receiving pledges
CN106911470B (zh) 2017-01-23 2020-07-07 北京航空航天大学 一种比特币交易隐私增强方法
CN106845960B (zh) 2017-01-24 2018-03-20 上海壹账通区块链科技有限公司 基于区块链的安全交易方法及系统
CN107025602A (zh) 2017-02-24 2017-08-08 杭州象链网络技术有限公司 一种基于联盟链的金融资产交易系统构建方法
JP6961960B2 (ja) * 2017-03-13 2021-11-05 ソニーグループ株式会社 情報処理装置および情報処理方法
JP6719410B2 (ja) 2017-03-17 2020-07-08 Kddi株式会社 生成装置、検証装置、及びプログラム
US20180293576A1 (en) 2017-04-05 2018-10-11 Samsung Sds Co., Ltd. System for custom currency transaction based on blockchain and operating method thereof
US11095432B2 (en) 2017-04-05 2021-08-17 Samsung Sds Co., Ltd. System for processing data based on blockchain and operating method thereof
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201705749D0 (en) 2017-04-10 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201705858D0 (en) 2017-04-11 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
GB201706132D0 (en) 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
US10198949B2 (en) 2017-04-28 2019-02-05 Mastercard International Incorporated Method and system for parking verification via blockchain
US10560270B2 (en) 2017-05-03 2020-02-11 International Business Machines Corporation Optimal data storage configuration in a blockchain
GB201707168D0 (en) 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
GB201707296D0 (en) 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US11165589B2 (en) 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
CN107451175B (zh) * 2017-05-23 2020-01-31 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107239951A (zh) 2017-06-07 2017-10-10 北京天德科技有限公司 一种基于第三代区块链的可扩展央行数字货币交易方法
JP7194127B2 (ja) 2017-06-14 2022-12-21 エヌチェーン ライセンシング アーゲー ネットワークの障害時におけるオフ・ブロックチェーン・チャネルに関して生じるセキュリティ関連脆弱性に対処するためのシステム及び方法
US10333710B2 (en) 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
TWI636411B (zh) 2017-09-13 2018-09-21 現代財富控股有限公司 對非區塊鏈節點提供交易不可否認性之系統及其方法
US10361870B2 (en) * 2017-09-14 2019-07-23 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data using permissioned distributed ledgers
CN107679857B (zh) 2017-10-10 2021-04-27 马晶瑶 区块链的跨链交易方法和存储介质
CN108062671A (zh) 2017-11-03 2018-05-22 深圳市轱辘车联数据技术有限公司 数据交易方法、区块链节点服务器及数据提交终端
CN108021821A (zh) * 2017-11-28 2018-05-11 北京航空航天大学 多中心区块链交易隐私保护系统及方法
US11257077B2 (en) 2017-11-30 2022-02-22 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108418689B (zh) 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
US10831764B2 (en) * 2017-12-02 2020-11-10 International Business Machines Corporation Query processing and access control in a blockchain network
US11227284B2 (en) * 2017-12-13 2022-01-18 Mastercard International Incorporated Method and system for consumer-initiated transactions using encrypted tokens
CN108282459B (zh) * 2017-12-18 2020-12-15 中国银联股份有限公司 基于智能合约的数据传递方法及系统
US11544708B2 (en) 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
TWM561861U (zh) 2018-01-11 2018-06-11 網家金融科技股份有限公司 網路支付轉帳系統
US10445965B2 (en) 2018-01-29 2019-10-15 Accenture Global Solutions Limited Blockchain-based cryptologic ballot organization
CN108512650B (zh) 2018-02-28 2021-03-09 南京思利华信息科技有限公司 面向区块链的动态哈希计算方法、装置、节点及存储介质
CN108288159A (zh) 2018-03-07 2018-07-17 物数(上海)信息科技有限公司 基于多区块链的跨链交易方法、系统、设备及存储介质
CN108320228A (zh) 2018-03-07 2018-07-24 物数(上海)信息科技有限公司 跨区块链资产交易方法、平台、设备及存储介质
US10708243B2 (en) 2018-04-24 2020-07-07 Capital One Services, Llc Message encryption using public keychains
CN108711105A (zh) 2018-05-16 2018-10-26 四川吉鼎科技有限公司 一种基于区块链的安全交易验证方法及系统
CN108764874B (zh) 2018-05-17 2021-09-07 深圳前海微众银行股份有限公司 基于区块链的匿名转账方法、系统及存储介质
CN108683669B (zh) * 2018-05-19 2021-09-17 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
CN108667599A (zh) * 2018-05-21 2018-10-16 平安科技(深圳)有限公司 加密方法、装置、计算机设备和存储介质
CN108876332B (zh) 2018-06-04 2020-09-22 清华大学 一种基于生物特征标记认证的区块链安全交易方法及装置
CN109003184A (zh) 2018-06-22 2018-12-14 中链科技有限公司 区块链资产管理方法及装置
JP6956062B2 (ja) 2018-10-30 2021-10-27 株式会社Crypto Garage 取引方法、プログラム、検証装置及び生成方法
CN110326013A (zh) 2018-11-07 2019-10-11 阿里巴巴集团控股有限公司 在账户模型下支持公开交易和私有交易的区块链系统
PL3545644T3 (pl) 2018-11-27 2021-06-28 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
RU2719423C1 (ru) 2018-11-27 2020-04-17 Алибаба Груп Холдинг Лимитед Система и способ защиты информации
ES2833552T3 (es) 2018-11-27 2021-06-15 Advanced New Technologies Co Ltd Sistema y método para la protección de información

Also Published As

Publication number Publication date
BR112019007232B1 (pt) 2022-02-15
PH12019500532A1 (en) 2019-10-28
WO2019072275A2 (en) 2019-04-18
WO2019072275A3 (en) 2019-10-03
CN110730963B (zh) 2023-12-01
RU2719311C1 (ru) 2020-04-17
CA3037833C (en) 2022-04-19
CA3037833A1 (en) 2020-04-18
PL3552158T3 (pl) 2021-07-26
JP6756041B2 (ja) 2020-09-16
US10938549B2 (en) 2021-03-02
AU2018322507B2 (en) 2020-10-08
ES2863552T3 (es) 2021-10-11
US20200228317A1 (en) 2020-07-16
EP3552158A2 (en) 2019-10-16
CN110730963A (zh) 2020-01-24
SG11201902773VA (en) 2019-05-30
MX2019004201A (es) 2019-08-05
EP3552158A4 (en) 2020-02-26
KR20200066256A (ko) 2020-06-09
AU2018322507A1 (en) 2020-01-30
KR102128210B1 (ko) 2020-06-30
EP3552158B1 (en) 2021-02-17
ES2863552T8 (es) 2022-08-19
ZA201902459B (en) 2020-08-26
JP2020500458A (ja) 2020-01-09

Similar Documents

Publication Publication Date Title
BR112019007232A2 (pt) sistema e método para proteção da informação
ES2833552T3 (es) Sistema y método para la protección de información
ES2833550T3 (es) Sistema y método para la protección de información
US10892888B2 (en) System and method for information protection
KR102150814B1 (ko) 정보 보호를 위한 시스템 및 방법
BR112019007727A2 (pt) sistema e método para proteção de informações
AU2019101581A4 (en) System and method for information protection

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]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/11/2018, OBSERVADAS AS CONDICOES LEGAIS.