BR112019016188A2 - método implementado por computador para o controle do acesso aos contratos inteligentes, meio de armazenamento legível por computador não transitório e sistema - Google Patents
método implementado por computador para o controle do acesso aos contratos inteligentes, meio de armazenamento legível por computador não transitório e sistema Download PDFInfo
- Publication number
- BR112019016188A2 BR112019016188A2 BR112019016188A BR112019016188A BR112019016188A2 BR 112019016188 A2 BR112019016188 A2 BR 112019016188A2 BR 112019016188 A BR112019016188 A BR 112019016188A BR 112019016188 A BR112019016188 A BR 112019016188A BR 112019016188 A2 BR112019016188 A2 BR 112019016188A2
- Authority
- BR
- Brazil
- Prior art keywords
- smart contract
- account
- execute
- whitelist
- authorized
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 52
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000015654 memory Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 23
- 238000005065 mining Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012897 Levenberg–Marquardt algorithm Methods 0.000 description 3
- 238000002296 dynamic light scattering Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 241000271897 Viperidae Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
a presente invenção se refere às implementações desta especificação que incluem a identificação, através de um nódulo da rede blockchain, de uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente; a recuperação, através do nódulo, de uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente; a determinação, através do nódulo, que a conta solicitante está autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões; e em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, a execução, através do nódulo, do contrato inteligente.
Description
“MÉTODO IMPLEMENTADO POR COMPUTADOR PARA O CONTROLE DO ACESSO AOS CONTRATOS INTELIGENTES, MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO E SISTEMA” Antecedentes da Invenção [001 ]Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados redes de consenso e/ou redes blockchain, possibilitam que as entidades participantes armazenem os dados com segurança e imutabilidade. Os DLSs normalmente são referidos como redes blockchain sem referenciar nenhum caso de usuário específico. Os exemplos de tipos de redes blockchain podem incluir as redes blockchain públicas, redes blockchain privadas e redes blockchain de consórcio. Uma rede blockchain de consórcio é fornecida para um grupo seleto de entidades, que controla o processo de consenso e incluem uma camada de controle de acesso.
[002]Um contrato inteligente é um conjunto de instruções de software executáveis armazenadas e executadas por uma rede blockchain. Os contratos inteligentes, em geral, são armazenados sem criptografia e, por conseguinte, são visíveis para todos os participantes da rede blockchain. Os participantes da rede blockchain podem escrever e publicar seus próprios contratos inteligentes e, em geral, também podem chamar os contratos inteligentes que foram implantados anteriormente na rede blockchain. Uma vez que o conjunto de instruções que podem ser utilizadas em contratos inteligentes, em geral, é de turing completo, os contratos inteligentes podem suportar a lógica complexa para suportar diferentes cenários de negócios.
[003]A complexidade dos contratos inteligentes pode originar os riscos de segurança. Os riscos de segurança dos contratos inteligentes, em geral, são provenientes de uma coleção de contas que eles podem afetar. Os invasores podem explorar as vulnerabilidades em contratos inteligentes implantados para construir uma transação para redirecionar os fundos
Petição 870190075314, de 05/08/2019, pág. 41/79
2/26 controlados pelo contrato inteligente para a conta do invasor. Uma solução para abordar esses riscos de segurança associados aos contratos inteligentes seria vantajosa.
Descrição Resumida da Invenção [004]As implementações desta especificação incluem os métodos implementados por computador para compelir as listas de permissões de contas para os contratos inteligentes. Mais especialmente, as implementações desta especificação são direcionadas às técnicas para possibilitar que o criador de um contrato inteligente defina uma lista de permissões especificando quais contas podem chamar o contrato inteligente.
[005] Em algumas implementações, as ações incluem a identificação, através de um nódulo da rede blockchain, de uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente; a recuperação, através do nódulo, de uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente; a determinação, através do nódulo, que a conta solicitante está autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões; e em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, a execução, através do nódulo, do contrato inteligente. Outras implementações incluem os sistemas, aparelhos e programas de computador correspondentes, configurados para realizar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[006]Estas e outras implementações, opcionalmente, podem incluir uma ou mais das seguintes características.
[007]Em alguns casos, a solicitação é uma primeira solicitação, e a
Petição 870190075314, de 05/08/2019, pág. 42/79
3/26 conta solicitante é uma primeira conta, e o método inclui a identificação, através do nódulo, de uma segunda solicitação para executar o contrato inteligente diferente da primeira solicitação, a segunda solicitação para identificar uma segunda conta diferente da primeira conta; a determinação, através do nódulo, que a segunda conta não está autorizada a executar o contrato inteligente com base em que a segunda conta não está incluída na lista de permissões; e em resposta à determinação que a conta solicitante não está autorizada a executar o contrato inteligente, a rejeição, através do nódulo, da segunda solicitação para executar o contrato inteligente.
[008]Em algumas implementações, a lista de permissões está incluída em um conjunto de instruções executáveis associadas ao contrato inteligente.
[009]Em alguns casos, a lista de permissões está separada de um conjunto de instruções executáveis associadas ao contrato inteligente.
[010]Em algumas implementações, a lista de permissões inclui uma identificação de uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
[011]Em alguns casos, a lista de permissões inclui uma referência a uma localização externa ao contrato inteligente que armazena uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
[012]Em alguns casos, a lista de permissões identifica uma entidade associada a uma ou mais contas e a determinação de que a conta solicitante está autorizada a executar o contrato inteligente inclui a determinação se a conta solicitante está associada à entidade.
[013]Esta especificação também fornece um ou mais meios de armazenamento não transitórias legíveis por computador acopladas a um ou mais processadores e que possui as instruções armazenadas neles que, quando executadas por um ou mais processadores, ocasionam que um ou mais
Petição 870190075314, de 05/08/2019, pág. 43/79
4/26 processadores realizem as operações de acordo com as implementações dos métodos fornecidos no presente.
[014]Esta especificação ainda fornece um sistema para a implementação dos métodos fornecidos no presente. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador acoplado a um ou mais processadores que possuem as instruções armazenadas nele que, quando executadas por um ou mais processadores, ocasionam que um ou mais processadores realizem as operações de acordo com as implementações dos métodos fornecidos no presente.
[015]É considerado que os métodos, de acordo com esta especificação, possam incluir qualquer combinação dos aspectos e características descritos no presente. Isto é, os métodos, de acordo com esta especificação, não estão limitados às combinações de aspectos e características especificamente descritos no presente, mas também incluem qualquer combinação dos aspectos e características fornecidos.
[016]Os detalhes de uma ou mais implementações desta especificação são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens desta especificação serão evidentes a partir da descrição e desenhos, e a partir das reivindicações.
Breve Descrição das Figuras [017]A Figura 1 ilustra um exemplo de um ambiente que pode ser utilizado para a execução das implementações desta especificação.
[018]A Figura 2 ilustra um exemplo de uma arquitetura conceptual, de acordo com as implementações desta especificação.
[019]A Figura 3 ilustra um exemplo de um ambiente para habilitar as listas de permissões de contrato inteligente, de acordo com as implementações desta especificação.
[020]A Figura 4 ilustra um exemplo de um fluxo de sinal que pode
Petição 870190075314, de 05/08/2019, pág. 44/79
5/26 ser executado, de acordo com as implementações desta especificação.
[021] A Figura 5 ilustra um exemplo de um processo que pode ser executado, de acordo com as implementações desta especificação.
[022] A Figura 6 ilustra exemplos de módulos de um aparelho, de acordo com as implementações desta especificação.
[023]Os símbolos de referência similares nos diversos desenhos indicam elementos similares.
Descrição Detalhada da Invenção [024] As implementações desta especificação incluem os métodos implementados por computador para compelir as listas de permissões de conta para os contratos inteligentes. Mais especialmente, as implementações desta especificação são direcionadas às técnicas para possibilitar que o criador de um contrato inteligente defina uma lista de permissões especificando quais contas podem chamar o contrato inteligente.
[025] Para fornecer o contexto adicional para as implementações desta especificação e, conforme foi introduzido acima, os sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, compostas por nódulos peer-to-peer), e as redes blockchain, possibilitam que as entidades participantes executem as transações com segurança e imutabilidade e armazenem os dados. O termo “blockchain’ é utilizado no presente, em geral, para se referir a um DLS sem referência a qualquer caso de utilização especial.
[026]Uma blockchain é uma estrutura de dados que armazena as transações de maneira que as transações sejam imutáveis e possam ser verificadas posteriormente. Uma blockchain inclui um ou mais blocos. Cada bloco na cadeia está ligado a um bloco anterior imediatamente antes dele na cadeia, incluindo um hash criptográfico do bloco anterior. Cada bloco também inclui um timestamp (registro de data e hora), seu próprio hash criptográfico e
Petição 870190075314, de 05/08/2019, pág. 45/79
6/26 uma ou mais transações. As transações, que foram verificadas anteriormente pelos nódulos da rede blockchain, são hashed e codificadas em uma árvore Merkle. Uma árvore Merkle é uma estrutura de dados em que os dados nos nódulos de folhas da árvore são hashed e todos os hashes em cada ramificação da árvore são concatenados na raiz da ramificação. Esse processo continua subindo a árvore até a raiz da árvore inteira, que armazena um hash que é representativo de todos os dados na árvore. Um hash supostamente de uma transação armazenada na árvore pode ser verificado rapidamente através da determinação se é consistente com a estrutura da árvore.
[027]Considerando que uma blockchain é uma estrutura de dados para o armazenamento das transações, uma rede blockchain é uma rede de nódulos de computação que gerencia, atualiza e mantém uma ou mais blockchains. Conforme introduzido acima, uma rede blockchain pode ser fornecida como uma rede blockchain pública, uma rede blockchain privada ou uma rede blockchain de consórcio.
[028]Em geral, uma rede blockchain de consórcio é privada entre as entidades participantes. Em uma rede blockchain de consórcio, o processo de consenso é controlado por um conjunto autorizado de nódulos, um ou mais nódulos sendo operados por uma entidade respectiva (por exemplo, uma instituição financeira, companhia de seguros). Por exemplo, um consórcio de dez (10) entidades (por exemplo, as instituições financeiras, companhias de seguros) pode operar uma rede blockchain de consórcio, cada um operando, pelo menos, um nódulo na rede blockchain de consórcio. Consequentemente, a rede blockchain de consórcio pode ser considerada uma rede privada em relação às entidades participantes. Em alguns exemplos, cada entidade (nódulo) deve assinar todos os blocos para que o bloco seja válido e adicionado à blockchain. Em alguns exemplos, pelo menos, um subconjunto de entidades (nódulos) (por exemplo, pelo menos, 7 entidades) deve assinar cada bloco para que o bloco
Petição 870190075314, de 05/08/2019, pág. 46/79
7/26 seja válido e adicionado à blockchain.
[029] Está contemplado que as implementações desta especificação podem ser executadas em qualquer tipo adequado de rede blockchain.
[030]As implementações desta especificação estão descritas em maiores detalhes no presente em vista do contexto acima. Mais especialmente, e conforme introduzido acima, as implementações desta especificação são direcionadas às técnicas para possibilitar que o criador de um contrato inteligente defina uma lista de permissões especificando quais contas podem chamar o contrato inteligente.
[031] Em geral, um contrato inteligente é um conjunto de uma ou mais instruções de computador que são armazenadas em uma blockchain e executadas por nódulos de uma rede blockchain. O código para um contrato inteligente, em geral, é transformado em uma forma que é executável pelos nódulos da rede blockchain (por exemplo, o bytecode) e o próprio bytecode ou bytecode configurado para recuperar o bytecode do contrato inteligente está armazenado na blockchain. As funções definidas no código do contrato inteligente, em seguida, podem ser chamadas pelos participantes da rede blockchain, ocasionando que os nódulos executem as instruções na função chamada.
[032]Esta especificação descreve as técnicas que possibilitam ao criador de um contrato inteligente especificar uma lista de contas (uma lista de permissões) na rede de blockchain que têm permissão para chamar o contrato inteligente. Quando um participante da rede blockchain chama um contrato inteligente implantado na blockchain gerenciada pela rede blockchain, o participante fornece uma conta como parte do chamado. A rede blockchain verifica a lista de permissões associada ao contrato inteligente para a conta do participante. Se a conta do participante estiver na lista de permissões, a rede
Petição 870190075314, de 05/08/2019, pág. 47/79
8/26 blockchain executa o chamado de contrato inteligente. Se a conta do participante não estiver na lista de permissões, a rede blockchain não irá executar o chamado de contrato inteligente. A rede blockchain também pode armazenar um registro da tentativa fracassada do participante de acessar o contrato inteligente.
[033]A Figura 1 ilustra um exemplo de um ambiente (100) que pode ser utilizado para a execução das implementações desta especificação. Em alguns exemplos, o ambiente (100) possibilita que as entidades participem de uma rede blockchain (102). O ambiente (100) inclui os dispositivos de computação (106), (108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede área local (LAN), rede de longa distância (WAN), Internet ou uma de suas combinações, e conecta os sites da Web, dispositivos de usuário (por exemplo, os dispositivos de computação) e sistemas de back-end. Em alguns exemplos, a rede (110) pode ser acessada através de um link de comunicação com fio e/ou sem fio. Em alguns exemplos, a rede (110) possibilita a comunicação com, e dentro da rede blockchain (102). Em geral, a rede (110) representa uma ou mais redes de comunicação. Em alguns casos, os dispositivos de computação (106), (108) podem ser os nódulos de um sistema de computação em nuvem (não mostrado) ou cada dispositivo de computação (106), (108) pode ser um sistema de computação em nuvem separado incluindo uma pluralidade de computadores interconectados por uma rede e funcionando como um sistema de processamento distribuído.
[034]No exemplo descrito, cada sistema de computação (106), (108) pode incluir qualquer sistema de computação adequado que possibilita a participação como um nódulo na rede blockchain (102). Os exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador de mesa, um computador portátil, um dispositivo de computação tablet e um smartphone. Em alguns exemplos, os sistemas de computação (106), (108) hospedam um ou mais serviços implementados por computador para interagir
Petição 870190075314, de 05/08/2019, pág. 48/79
9/26 com a rede blockchain (102). Por exemplo, o sistema de computação (106) pode hospedar os serviços implementados por computador de uma primeira entidade (por exemplo, o Participante A), tal como o sistema de gerenciamento de transações que a primeira entidade utiliza para gerenciar suas transações com uma ou mais entidades (por exemplo, outros participantes). O sistema de computação (108) pode hospedar os serviços implementados por computador de uma segunda entidade (por exemplo, o Participante B), tal como o sistema de gerenciamento de transação que a segunda entidade utiliza para gerenciar suas transações com uma ou mais entidades (por exemplo, outros participantes). No exemplo da Figura 1, a rede de blockchain (102) é representada como uma rede de nódulos peer-to-peer, e os sistemas de computação (106), (108) fornecem os nódulos da primeira entidade e segunda entidade, respectivamente, que participam na rede blockchain de consórcio (102).
[035]A Figura 2 ilustra um exemplo de uma arquitetura conceptual (200) de acordo com as implementações da presente especificação. O exemplo de uma arquitetura conceptual (200) inclui os sistemas participantes (202), (204), (206) que correspondem ao Participante A, Participante B e Participante C, respectivamente. Cada participante (por exemplo, o usuário, empresa) participa de uma rede blockchain (212) fornecida como uma rede peer-to-peer incluindo uma pluralidade de nódulos (214), pelo menos, alguns dos quais gravam a informação imutável em uma blockchain (216). Embora uma única blockchain (216) seja representada esquematicamente dentro da rede blockchain (212), são fornecidas múltiplas cópias da blockchain (216) e mantidas através da rede blockchain (212), conforme descrito no presente em maiores detalhes.
[036]No exemplo descrito, cada sistema participante (202), (204), (206) é fornecido por, ou em nome do Participante A, Participante B e Participante C, respectivamente, e funciona como um respectivo nódulo (214) dentro da rede blockchain. Conforme utilizado no presente, um nódulo, em geral,
Petição 870190075314, de 05/08/2019, pág. 49/79
10/26 se refere a um sistema individual (por exemplo, o computador, servidor) que está conectado à rede blockchain (212) e possibilita que um participante respectivo participe na rede blockchain. No exemplo da Figura 2, um participante corresponde a cada nódulo (214). Está contemplado, no entanto, que um participante pode operar múltiplos nódulos (214) dentro da rede blockchain (212), e/ou múltiplos participantes podem compartilhar um nódulo (214). Em alguns exemplos, os sistemas participantes (202), (204), (206) se comunicam com, ou através da rede blockchain (212) utilizando um protocolo (por exemplo, o protocolo de transferência de hipertexto seguro (HTTPS)) e/ou utilizando os chamados de procedimento remoto (RPCs).
[037]Os nódulos (214) podem possuir diversos graus de participação dentro da rede blockchain (212). Por exemplo, alguns nódulos (214) podem participar no processo de consenso (por exemplo, como nódulos de mineração que adicionam os blocos à blockchain (216)), enquanto outros nódulos (214) não participam no processo de consenso. Como outro exemplo, alguns nódulos (214) armazenam uma cópia completa da blockchain (216), enquanto outros nódulos (214) apenas armazenam as cópias de partes da blockchain (216). Por exemplo, os privilégios de acesso aos dados podem limitar os dados de blockchain que um respectivo participante armazena dentro de seu respectivo sistema. No exemplo da Figura 2, os sistemas participantes (202), (204), (206) armazenam as respetivas cópias completas (216’), (216”), (216”’) da blockchain (216).
[038] Uma blockchain (por exemplo, a blockchain (216) da Figura 2) é composta por uma cadeia de blocos, cada bloco armazenando os dados. Os exemplos de dados incluem os dados de transações representativos de uma transação entre dois ou mais participantes. Embora as transações sejam utilizadas no presente por meio de exemplos não limitantes, é contemplado que quaisquer dados adequados possam ser armazenados em uma blockchain (por
Petição 870190075314, de 05/08/2019, pág. 50/79
11/26 exemplo, os documentos, imagens, vídeos, áudio). Os exemplos de transações podem incluir, sem limitação, as trocas de algo de valor (por exemplo, os ativos, produtos, serviços). Os dados da transação são armazenados de maneira imutável dentro da blockchain. Isto é, os dados da transação não podem ser alterados.
[039]Antes de armazenar em um bloco, os dados da transação são criptografados. O hashing é um processo de transformar os dados da transação (fornecidos como dados de string) em um valor de hash de comprimento fixo (também fornecido como dados de string). Não é possível un-hash o valor de hash para obter os dados da transação. O hashing assegura que até mesmo uma pequena alteração nos dados da transação resulte em um valor de hash completamente diferente. Além disso, e conforme observado acima, o valor de hash é de comprimento fixo. Isto é, não importa o tamanho dos dados da transação, o tamanho do valor do hash é fixo. O hashing inclui o processamento dos dados da transação por meio de uma função hash para gerar o valor de hash. Um exemplo de função hash inclui, sem limitação, o algoritmo hash seguro (SHA)-256, que gera os valores hash de 256 bits.
[040]Os dados de transação de múltiplas transações são hashed e armazenados em um bloco. Por exemplo, os valores de hash de duas transações são fornecidos e são eles próprios hashed para fornecer outro hash. Esse processo é repetido até que, para que todas as transações sejam armazenadas em um bloco, um único valor de hash seja fornecido. Esse valor de hash é referido como um hash de raiz Merkle e está armazenado em um cabeçalho do bloco. Uma alteração em qualquer uma das transações irá resultar em alterações no valor de hash e, por fim, em uma alteração no hash da raiz Merkle.
[041 ]Os blocos são adicionados à blockchain através de um protocolo de consenso. Múltiplos nódulos dentro da rede blockchain participam do protocolo de consenso e competem para possuir um bloco adicionado à
Petição 870190075314, de 05/08/2019, pág. 51/79
12/26 blockchain. Esses nódulos são referidos como mineiros (ou nódulos de decisão). O POW, introduzido acima, é utilizado como um exemplo não limitante.
[042]Os nódulos de mineração executam o processo de consenso para adicionar as transações à blockchain. Embora múltiplos nódulos mineradores participem do processo de consenso, apenas um nódulo de mineração pode gravar o bloco na blockchain. Isto é, os nódulos de mineração competem no processo de consenso para possuir seu bloco adicionado à blockchain. Em maiores detalhes, um nódulo de mineração coleta periodicamente as transações pendentes de um pool de transações (por exemplo, até um limite predefinido no número de transações que podem estar incluídas em um bloco, caso exista). O pool de transações inclui as mensagens de transação dos participantes da rede blockchain. O nódulo de mineração constrói um bloco e adiciona as transações no bloco. Antes de adicionar as transações ao bloco, o nódulo de mineração verifica se alguma das transações já está incluída em um bloco da blockchain. Se uma transação já estiver incluída em outro bloco, a transação será descartada.
[043]O nódulo de mineração gera um cabeçalho de bloco, hashes todas as transações no bloco e combina o valor de hash em pares para gerar mais valores de hash até que um único valor de hash seja fornecido para todas as transações no bloco (o hash de raiz Merkle). Este hash é adicionado ao cabeçalho do bloco. O minerador também determina o valor de hash do bloco mais recente na blockchain (isto é, o último bloco adicionado à blockchain). O nódulo de mineração também inclui um valor arbitrário (nonce) e um timestamp (registro de data e hora) para o cabeçalho do bloco. Em um processo de mineração, o nódulo de mineração tenta encontrar um valor de hash que atenda aos parâmetros necessários. O nódulo de mineração continua alterando o valor arbitrário (nonce) até encontrar um valor de hash que atenda os parâmetros necessários.
Petição 870190075314, de 05/08/2019, pág. 52/79
13/26 [044]Cada minerador na rede blockchain tenta encontrar um valor de hash que atenda os parâmetros necessários e, dessa maneira, competir entre si. Opcionalmente, um dos nódulos de mineração encontra um valor de hash que atende os parâmetros necessários e anuncia isso para todos os outros nódulos de mineração na rede blockchain. Os outros nódulos de mineração verificam o valor do hash e, se for determinado estar correto, verifica cada transação no bloco, aceita o bloco e anexa o bloco à sua cópia da blockchain. Dessa maneira, um estado global da blockchain é consistente em todos os nódulos de mineração dentro da rede blockchain. O processo descrito acima é o protocolo de consenso de POW.
[045]Um exemplo não limitante é fornecido com referência à Figura
2. Neste exemplo, o Participante A quer enviar uma quantia para o Participante B. O Participante A gera uma mensagem de transação (por exemplo, incluindo os campos De, Para e Valor) e envia a mensagem de transação para a rede blockchain, que adiciona a mensagem de transação para um pool de transações. Cada nódulo de mineração na rede blockchain cria um bloco e toma todas as transações do pool de transações (por exemplo, até um limite predefinido no número de transações que podem ser adicionadas a um bloco, caso exista) e adiciona as transações ao bloco. Dessa maneira, a transação publicada pelo Participante A é adicionada aos blocos dos nódulos de mineração.
[046]Em algumas redes blockchain, a criptografia é implementada para manter a privacidade das transações. Por exemplo, se dois nódulos quiserem manter uma transação privada, de maneira que outros nódulos na rede blockchain não consigam discernir os detalhes da transação, os nódulos podem criptografar os dados da transação. Os exemplos de métodos criptográficos incluem, sem limitação, a criptografia simétrica e criptografia assimétrica. A criptografia simétrica se refere a um processo de criptografia que utiliza uma única chave para a criptografia (geração de texto cifrado a partir de texto original)
Petição 870190075314, de 05/08/2019, pág. 53/79
14/26 e a descriptografia (geração de texto original a partir do texto cifrado). Na criptografia simétrica, a mesma chave está disponível para múltiplos nódulos, por conseguinte, cada nódulo pode criptografar os dados da transação.
[047]A criptografia assimétrica utiliza pares de chaves que incluem, cada um, uma chave privada e uma chave pública, a chave privada sendo conhecida apenas por um nódulo respectivo e a chave pública sendo conhecida por qualquer um ou todos os outros nódulos na rede blockchain. Um nódulo pode utilizar a chave pública de outro nódulo para criptografar os dados e os dados criptografados podem ser descriptografados utilizando a chave privada de outro nódulo. Por exemplo, e novamente com referência à Figura 2, o Participante A pode utilizar a chave pública do Participante B para criptografar os dados e enviar os dados criptografados para o Participante B. O Participante B pode utilizar sua chave privada para descriptografar os dados criptografados (texto cifrado) e extrair os dados originais (texto original). As mensagens criptografadas com a chave pública de um nódulo apenas podem ser descriptografadas utilizando a chave privada do nódulo.
[048]A criptografia assimétrica é utilizada para fornecer as assinaturas digitais, o que possibilita aos participantes em uma transação confirmar outros participantes na transação, bem como a validade da transação. Por exemplo, um nódulo pode assinar digitalmente uma mensagem e outro nódulo pode confirmar que a mensagem foi enviada pelo nódulo com base na assinatura digital do Participante A. As assinaturas digitais também podem ser utilizadas para garantir que as mensagens não sejam adulteradas em trânsito. Por exemplo, e novamente com referência à Figura 2, o Participante A precisa enviar uma mensagem para o Participante B. O Participante A gera um hash da mensagem e, em seguida, utilizando sua chave privada, criptografa o hash para fornecer uma assinatura digital como o hash criptografado. O Participante A acrescenta a assinatura digital à mensagem e envia a mensagem com assinatura
Petição 870190075314, de 05/08/2019, pág. 54/79
15/26 digital para o Participante B. O Participante B decriptografa a assinatura digital utilizando a chave pública do Participante A e extrai o hash. O participante B hashes a mensagem e compara os hashes. Se os hashes forem iguais, ο Participante B poder confirmar que a mensagem foi realmente do Participante A e não foi adulterada.
[049]A Figura 3 ilustra um exemplo de um ambiente (300) para habilitar as listas de permissões de contrato inteligente, de acordo com as implementações desta especificação. Conforme mostrado, um contrato inteligente (302) está armazenado na blockchain (216) da rede blockchain (212) da Figura 2. O contrato inteligente (302) inclui as instruções (304) e uma lista de permissões (306). A lista de permissões (306) inclui uma ou mais contas (308).
[050]Conforme descrito acima, o contrato inteligente (302) está armazenado na blockchain (216). Os participantes na rede blockchain (212) podem chamar o contrato inteligente (302), o que pode ocasionar que os nódulos (214) da rede blockchain (212) executem as instruções (304). Em algumas implementações, os nódulos (214) da rede blockchain irão verificar se uma conta especificada pelo autor do chamado do contrato inteligente está incluída em uma ou mais contas (308) especificadas pela lista de permissões (306). Se a conta estiver na lista de permissões (306), os nódulos (214) irão executar as instruções (304). Se a conta não estiver na lista de permissões (306), os nódulos (214) não executam as instruções (304).
[051]Em algumas implementações, as instruções (304) podem ser o código de software escrito em uma linguagem de programação de nível elevado suportada pelos nódulos (214) da rede blockchain (212), tal como, por exemplo, Solidity, Serpent, LLL, Viper, Mutan, C, C++, Python, Java, Javascript ou outras linguagens de programação. As instruções (304) também podem ser compiladas por bytecode gerado a partir do código de software associado ao contrato inteligente (302).
Petição 870190075314, de 05/08/2019, pág. 55/79
16/26 [052]Em algumas implementações, a lista de permissões (306) e as contas (308) são armazenadas na blockchain (216) em conjunto com o contrato inteligente (302). Em alguns casos, a lista de permissões (306) e as contas (308) estão incluídas nas instruções (304) do contrato inteligente (302). Por exemplo, a lista de permissões (306) pode estar incluída em uma diretiva nas instruções (304), tal como uma instrução de pré-processador ou um comentário especialmente formatado. A lista de permissões (306) também pode estar incluída utilizando uma construção específica para a linguagem de programação utilizada para criar o contrato inteligente, tal como um decorador de função. A lista de permissões (306) também pode ser especificada em instruções executáveis dentro das instruções (304). Em algumas implementações, a lista de permissões (306) é examinada antes dos nódulos (214) executarem as instruções (304). Em alguns casos, tal como quando a lista de permissões (306) está incluída nas instruções executáveis, os nódulos 214) podem iniciar a execução das instruções (304) antes de avaliar a lista de permissões (306). Por exemplo, o contrato inteligente (302) podería incluir uma função privada definida com as instruções (304) que tomariam a conta do autor do chamado como um parâmetro e verificar que o autor do chamado está autorizado para chamar o contrato inteligente com base na lista de permissões (306). Tal função podería ser chamada automaticamente quando o contrato inteligente (302) fosse executado, e o contrato inteligente (302) simplesmente podería sair se a conta do autor do chamado não estivesse autorizada a executar o contrato. Em alguns casos, o nódulo (214) que está executando o contrato inteligente (302) pode chamar a função privada para verificar a lista de permissões (306) e somente executar a função principal do contrato inteligente (302) se o chamado para a função privada indicar que a conta do autor do chamado está autorizada para executar o contrato inteligente (302).
[053]A Figura 4 ilustra um exemplo de um fluxo de sinal (400) que
Petição 870190075314, de 05/08/2019, pág. 56/79
17/26 pode ser executado, de acordo com as implementações desta especificação. Conforme mostrado, um participante (402) em uma rede blockchain está em comunicação com um nódulo da blockchain (404). O nódulo da blockchain (404) lê as informações de um contrato inteligente (302) que está armazenado em uma blockchain gerenciada pela rede blockchain.
[054]Em (406), o participante (402) gera um chamado para o contrato inteligente (302). O chamado inclui uma identificação de uma conta associada com o participante (402). Em algumas implementações, o participante (402) chama o contrato inteligente (302), enviando uma transação para a rede blockchain com o contrato inteligente (302) tal como a conta de destino. Em tal caso, o nódulo da blockchain (404) irá reconhecer esta transação como um chamado para o contrato inteligente (302), e irá executar o restante do fluxo de sinal (400).
[055]Em (408), o nódulo da blockchain (404) recupera a lista de permissões de contrato (por exemplo, (306)) para o contrato inteligente (302). Por exemplo, o nódulo da blockchain (404) pode recuperar a lista de permissões da localização na blockchain em que o contrato inteligente (302) está armazenado.
[056]Em (410), o nódulo da blockchain (404) determina se a conta fornecida pelo participante (404) está incluída na lista de permissões recuperada para o contrato inteligente (302). Este processo está descrito acima em relação à Figura 3. Se o nódulo da blockchain (404) determinar que a conta está incluída na lista de permissões, o fluxo de sinal (400) continua para (412), e o nódulo da blockchain (404) executa o contrato inteligente (302). Se o nódulo da blockchain (404) determinar que a conta não está incluída na lista de permissões, o fluxo de sinal (400) continua para (414), e o nódulo da blockchain (404) não executa o contrato inteligente (302) e em vez disso rejeita o chamado de contrato inteligente. Em alguns casos, o nódulo da blockchain (404) irá notificar o
Petição 870190075314, de 05/08/2019, pág. 57/79
18/26 participante de que o chamado do contrato inteligente foi rejeitado. O nódulo da blockchain (404) também pode gravar a tentativa falha de executar o contrato inteligente (302) na blockchain ou em outra localização de armazenamento.
[057]A Figura 5 ilustra um exemplo de um processo (500) que pode ser executado, de acordo com as implementações desta especificação. Em algumas implementações, o processo (400) pode ser realizado utilizando um ou mais programas executáveis por computador executados utilizando um ou mais dispositivos de computação.
[058]Em (502), através de um nódulo da rede blockchain identifica uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente.
[059]Em (504), os nódulos recuperam uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente. Em alguns casos, a lista de permissões está incluída em um conjunto de instruções executáveis associadas ao contrato inteligente. Em algumas implementações, a lista de permissões está separada de um conjunto de instruções executáveis associadas ao contrato inteligente. A lista de permissões pode incluir uma identificação de uma ou mais contas que estão autorizadas a acessar o contrato inteligente. Em alguns casos, a lista de permissões inclui uma referência a uma localização externa ao contrato inteligente que armazena um ou mais que estão autorizados a acessar o contrato inteligente.
[060]Em (506), o nódulo determina que a conta solicitante está autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões recuperada. Em alguns casos, a lista de permissões identifica uma entidade associada a uma ou mais contas e a determinação de que a conta solicitante está autorizada a executar o contrato
Petição 870190075314, de 05/08/2019, pág. 58/79
19/26 inteligente inclui a determinação se a conta solicitante está associada à entidade.
[061]Em (508), em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, o nódulo executa o contrato inteligente.
[062]Em alguns casos, a solicitação é uma primeira solicitação, a conta solicitante é uma primeira conta e o processo (500) inclui a identificação de uma segunda solicitação para executar o contrato inteligente diferente da primeira solicitação, a segunda solicitação identificando uma segunda conta diferente da primeira conta; a determinação que a segunda conta não está autorizada a executar o contrato inteligente com base na segunda conta não estar incluída na lista de permissões recuperada; e em resposta à determinação que a conta solicitante não está autorizada a executar o contrato inteligente, rejeição da segunda solicitação para executar o contrato inteligente.
[063]A Figura 6 ilustra os exemplos de módulos de um aparelho (600) de acordo com as implementações desta especificação. O aparelho (600) pode ser um nódulo da blockchain configurado para o controle do acesso aos contratos inteligentes em uma rede blockchain, tal como uma rede blockchain de consórcio. O aparelho (600) pode corresponder às implementações descritas acima, e o aparelho (600) inclui o seguinte: um identificador ou unidade de identificação (602) para identificar uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente; uma recuperadora ou unidade de recuperação (604) para recuperar uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente; um determinador ou unidade determinação (606) para determinar que a conta solicitante está autorizada a executar o contrato inteligente com base na conta solicitante que está incluída
Petição 870190075314, de 05/08/2019, pág. 59/79
20/26 na lista de permissões; e urn executor ou unidade de execução (608) para executar o contrato inteligente em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente.
[064]O sistema, aparelho, módulo ou unidade ilustrados nas implementações anteriores pode ser implementado utilizando um chip de computador ou uma entidade, ou pode ser implementado utilizando um produto que possua uma função determinada. Um dispositivo de implementação típico é um computador, e o computador pode ser um computador pessoal, um computador portátil, um telefone celular, um celular com câmera, um smartphone, um assistente digital pessoal, um reprodutor de mídia, um dispositivo de navegação, um e-mail que recebe e envia o dispositivo, um console de jogos, um computador tablet, um dispositivo vestível ou uma combinação de qualquer um desses dispositivos.
[065] Para um processo de implementação de funções e funções de cada unidade no aparelho, podem ser executadas referências a um processo de implementação de etapas correspondentes no método anterior. Os detalhes são omitidos no presente para simplificar.
[066]Uma vez que uma implementação de aparelho basicamente corresponde a uma implementação de método, para as partes relacionadas, referências podem ser feitas às descrições relacionadas na implementação do método. A implementação do aparelho descrita anteriormente é meramente um exemplo. As unidades descritas como partes separadas podem ou não estar fisicamente separadas, e as partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição ou podem ser distribuídas em uma série de unidades de rede. Alguns ou todos os módulos podem ser selecionados com base nas demandas reais para alcançar os objetivos das soluções da especificação. Um técnico comum no assunto pode compreender e implementar as implementações da presente aplicação sem
Petição 870190075314, de 05/08/2019, pág. 60/79
21/26 esforços criativos.
[067]Novamente com referência à Figura 6, pode ser interpretado como ilustrando um módulo funcional interno e uma estrutura de um nódulo da blockchain configurado para o controle do acesso aos contratos inteligentes em uma rede blockchain. O nódulo da blockchain pode ser um exemplo de um aparelho configurado para o controle do acesso aos contratos inteligentes em uma rede blockchain.
[068]As implementações do assunto e as ações e operações descritas nesta especificação podem ser implementadas em circuitos eletrônicos digitais, em software de computador ou firmware corporificados de maneira tangível, em hardware de computador, incluindo as estruturas descritas nesta especificação e seus equivalentes estruturais, ou em combinações de um ou mais deles. As implementações do assunto descrito nesta especificação podem ser implementadas como um ou mais programas de computador, por exemplo, um ou mais módulos de instruções de programas de computador, codificados em um transportador de programa de computador, para a execução ou controle da operação de aparelho de processamento de dados. O transportador pode ser um meio de armazenamento de computador não transitório tangível. De maneira alternativa, ou adicional, o transportador pode ser um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, ótico ou eletromagnético gerado pela máquina que é gerado para codificar a informação para a transmissão para um aparelho receptor adequado para a execução por um aparelho de processamento de dados. O meio de armazenamento de computador pode ser ou ser parte de um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória de acesso aleatório ou serial, ou uma combinação de um ou mais deles. Um meio de armazenamento de computador não é um sinal propagado.
[069]O termo aparelho de processamento de dados engloba
Petição 870190075314, de 05/08/2019, pág. 61/79
22/26 todos os tipos de aparelhos, dispositivos e máquinas para o processamento de dados, incluindo, por exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O aparelho de processamento de dados pode incluir os circuitos lógicos para fins especiais, por exemplo, um FPGA (Field Programmable Gate Array), urn ASIC (circuito integrado específico de aplicativos) ou uma GPU (unidade de processamento gráfico). O equipamento também pode incluir, além do hardware, o código que cria um ambiente de execução para os programas de computador, por exemplo, o código que constitui o firmware do processador, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais deles.
[070]Um programa de computador, que também pode ser referido ou descrito como um programa, software, um aplicativo de software, um aplicativo, um módulo, um módulo de software, um motor, um script ou código, pode ser escrito em qualquer forma de linguagem de programação, incluindo as linguagens compiladas ou interpretadas, linguagens declarativas ou procedimentais, e pode ser implantado de qualquer maneira, incluindo tal como um programa independente ou como um módulo, componente, mecanismo, subrotina ou outra unidade adequada para a execução em um ambiente de computação, cujo ambiente pode incluir um ou mais computadores interconectados por uma comunicação de dados, rede em um ou mais locais.
[071]Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa de computador pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados, por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação, em um único arquivo dedicado ao programa em questão, ou em múltiplos arquivos coordenados, por exemplo, os arquivos que armazenam um ou mais módulos, subprogramas ou partes do
Petição 870190075314, de 05/08/2019, pág. 62/79
23/26 código.
[072]Os processos e fluxos lógicos descritos nesta especificação podem ser realizados por um ou mais computadores que executam um ou mais programas de computador para a realização de operações operando em relação aos dados de entrada e gerando a saída. Os processos e fluxos lógicos também podem ser realizados por circuitos lógicos de propósito especial, por exemplo, um FPGA, um ASIC ou uma GPU, ou por uma combinação de circuitos lógicos de propósito especial e um ou mais computadores programados.
[073]Os computadores adequados para a execução de um programa de computador podem ser com base em microprocessadores de utilização geral ou especial ou em ambos ou qualquer outro tipo de unidade de processamento central. Em geral, uma unidade de processamento central irá receber as instruções e dados de uma memória somente de leitura ou de uma memória de acesso aleatório ou ambas. Os elementos de um computador podem incluir uma unidade de processamento central para a execução de instruções e um ou mais dispositivos de memória para armazenar as instruções e dados. A unidade de processamento central e a memória podem ser complementadas por, ou incorporadas em circuitos lógicos de propósito especial.
[074]Em geral, um computador será acoplado a, pelo menos, um meio de armazenamento legível por computador não transitório (também referido como uma memória legível por computador). O meio de armazenamento acoplado ao computador pode ser um componente interno do computador (por exemplo, um disco rígido integrado) ou um componente externo (por exemplo, o disco rígido de barramento serial universal (USB) ou um sistema de armazenamento acessado através de uma rede). Os exemplos de mídia de armazenamento podem incluir, por exemplo, os discos magnéticos, magnetoóticos ou óticos, unidades de estado sólido, recursos de armazenamento de rede, tais como os sistemas de armazenamento em nuvem ou outros tipos de
Petição 870190075314, de 05/08/2019, pág. 63/79
24/26 mídia de armazenamento. No entanto, um computador não precisa possuir esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone celular, um assistente digital pessoal (PDA), um tocador de áudio ou vídeo, um console de jogos, um receptor GPS ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial universal (USB), para citar apenas alguns.
[075] Para fornecer a interação com um usuário, as implementações do assunto descrito nesta especificação podem ser implementadas em, ou configuradas para se comunicar com um computador que possui um dispositivo de exibição, por exemplo, um monitor LCD (monitor de cristal líquido), para exibir as informações para o usuário e um dispositivo de entrada pelo qual o usuário pode fornecer a entrada para o computador, por exemplo, um teclado e um dispositivo apontador, por exemplo, um mouse, um trackball ou touchpad. Outros tipos de dispositivos também podem ser utilizados para fornecer a interação com um usuário; por exemplo, o feedback fornecido ao usuário pode ser qualquer forma de feedback sensorial, por exemplo, o feedback visual, feedback auditivo ou feedback tátil; e a entrada do usuário pode ser recebida de qualquer forma, incluindo a entrada acústica, de fala ou tátil. Além disso, um computador pode interagir com um usuário enviando os documentos e recebendo os documentos de um dispositivo utilizado pelo usuário; por exemplo, enviando as páginas da web para um navegador da web no dispositivo de um usuário em resposta às solicitações recebidas do navegador da web ou interagindo com um aplicativo executado em um dispositivo de usuário, por exemplo, um smartphone ou tablet eletrônico. Além disso, um computador pode interagir com um usuário enviando as mensagens de texto ou outras formas de mensagem para um dispositivo pessoal, por exemplo, um smartphone que está executando um aplicativo de mensagens e recebendo as mensagens responsivas do usuário em troca.
Petição 870190075314, de 05/08/2019, pág. 64/79
25/26 [076]Esta especificação utiliza o termo “configurado para” em conexão aos sistemas, aparelhos e componentes de programas de computador. Para que um sistema de um ou mais computadores seja configurado para a execução de operações ou ações específicas significa que o sistema instalou nele o software, firmware, hardware ou uma combinação deles que, em operação, fazem com que o sistema execute as operações ou ações. Para um ou mais programas de computador a serem configurados para a execução de operações ou ações específicas significa que um ou mais programas incluem as instruções que, quando executadas pelo aparelho de processamento de dados, fazem com que o aparelho execute as operações ou ações. Para os circuitos lógicos com propósito especial a serem configurados para a execução de operações ou ações específicas significa que o circuito possui lógica eletrônica que realiza as operações ou ações.
[077]Embora esta especificação contenha muitos detalhes específicos de implementação, estes não devem ser interpretados como limitações no âmbito de qualquer invenção ou no âmbito do que pode ser reivindicado, mas como descrições de características que podem ser específicas para as implementações específicas de determinadas invenções. Determinadas características descritas na presente invenção no contexto de implementações separadas também podem ser implementadas, em combinação, em uma única implementação. Por outro lado, diversas características descritas no contexto de uma única implementação também podem ser implementadas em diversas implementações, separadamente ou em qualquer subcombinação adequada. Além disso, embora as características descritas anteriormente possam estar descritas como atuando em determinadas combinações e até mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada, em alguns casos, podem ser excisadas da combinação, e a combinação reivindicada pode ser direcionada a uma
Petição 870190075314, de 05/08/2019, pág. 65/79
26/26 subcombinação ou variação de uma subcombinação.
[078] De maneira similar, embora as operações sejam representadas nos desenhos ou reivindicações em uma ordem específica especial, isso não deve ser entendido como exigindo que tais operações sejam executadas na ordem especial mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam executadas, para alcançar os resultados desejados. Em determinadas circunstâncias, o processamento multitarefa ou paralelo podem ser vantajosos. Além disso, a separação ou integração de diversos módulos e componentes do sistema nas implementações descritas anteriormente não devem ser entendidas como exigindo tal separação ou integração em todas as implementações, e deve ser entendido que os componentes e sistemas do programa descritos, em geral, podem ser integrados em conjunto um único produto de software ou empacotados em diversos produtos de software.
[079]As implementações específicas do assunto foram descritas. Outras implementações estão dentro do escopo das seguintes reivindicações. Por exemplo, as ações citadas nas reivindicações podem ser executadas em uma ordem diferente e ainda alcançar os resultados desejáveis. Como um exemplo, os processos representados nas figuras anexas não requerem necessariamente a ordem especial mostrada, ou ordem sequencial, para alcançar os resultados desejados. Em alguns casos, o processamento multitarefa ou paralelo podem ser vantajosos.
Claims (20)
- Reivindicações1. MÉTODO IMPLEMENTADO POR COMPUTADOR PARA O CONTROLE DO ACESSO AOS CONTRATOS INTELIGENTES em uma rede blockchain, o método caracterizado por compreender:- a identificação, através de um nódulo da rede blockchain, de uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente;- a recuperação, através do nódulo, de uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente;- a determinação, através do nódulo, que a conta solicitante está autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, a execução, através do nódulo, do contrato inteligente.
- 2. MÉTODO, de acordo com a reivindicação 1, caracterizado pela solicitação é uma primeira solicitação, e a conta solicitante é uma primeira conta, o método compreende:- a identificação, através do nódulo, de uma segunda solicitação para executar o contrato inteligente diferente da primeira solicitação, a segunda solicitação identificando uma segunda conta diferente da primeira conta;- a determinação, através do nódulo, que a segunda conta não está autorizada a executar o contrato inteligente com base em que a segunda conta não está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante não está autorizada a executar o contrato inteligente, a rejeição, através do nódulo, daPetição 870190075314, de 05/08/2019, pág. 67/792/6 segunda solicitação para executar o contrato inteligente.
- 3. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de permissões está incluída em um conjunto de instruções executáveis associadas ao contrato inteligente.
- 4. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de permissões está separada de um conjunto de instruções executáveis associadas ao contrato inteligente.
- 5. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de permissões inclui uma identificação de uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
- 6. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de permissões inclui uma referência a uma localização externa ao contrato inteligente que armazena uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
- 7. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de permissões identifica uma entidade associada a uma ou mais contas, e a determinação que a conta solicitante está autorizada a executar o contrato inteligente inclui a determinação se a conta solicitante está associada à entidade.
- 8. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, acoplado a um ou mais computadores e que possui as instruções armazenadas no mesmo, que são executáveis por um ou mais computadores caracterizados pela:- a identificação, através de um nódulo da rede blockchain, de uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente;- a recuperação, através do nódulo, de uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificandoPetição 870190075314, de 05/08/2019, pág. 68/793/6 uma ou mais contas que estão autorizadas a executar o contrato inteligente;- a determinação, através do nódulo, que a conta solicitante está autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, a execução, através do nódulo, do contrato inteligente.
- 9. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pelo fato de que a solicitação é uma primeira solicitação, e a conta solicitante é uma primeira conta, o meio de armazenamento possui outras instruções armazenadas nele que são executáveis por um ou mais computadores para:- a identificação, através do nódulo, de uma segunda solicitação para executar o contrato inteligente diferente da primeira solicitação, a segunda solicitação identificando uma segunda conta diferente da primeira conta;- a determinação, através do nódulo, que a segunda conta não está autorizada a executar o contrato inteligente com base em que a segunda conta não está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante não está autorizada a executar o contrato inteligente, a rejeição, através do nódulo, da segunda solicitação para executar o contrato inteligente.
- 10. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pela lista de permissões está incluída dentro de um conjunto de instruções executáveis associadas ao contrato inteligente.
- 11. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pela lista de permissões está separada de um conjunto de instruções executáveisPetição 870190075314, de 05/08/2019, pág. 69/794/6 associadas ao contrato inteligente.
- 12. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pela lista de permissões inclui uma identificação de uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
- 13. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pela lista de permissões inclui uma referência a uma localização externa ao contrato inteligente que armazena uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
- 14. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO, de acordo com a reivindicação 8, caracterizado pela lista de permissões identifica uma entidade associada a uma ou mais contas, e a determinação que a conta solicitante está autorizada a executar o contrato inteligente inclui a determinação se a conta solicitante está associada a entidade.
- 15. SISTEMA, caracterizado por compreender:- um ou mais computadores; e- uma ou mais memórias legíveis por computador acopladas a um ou mais computadores e que possui as instruções armazenadas no mesmo, que são executáveis por um ou mais computadores para:- a identificação, através de um nódulo da rede blockchain, de uma solicitação para executar um contrato inteligente armazenado em uma blockchain mantida pela rede blockchain, a solicitação identificando uma conta solicitante que está solicitando a execução do contrato inteligente;- a recuperação, através do nódulo, de uma lista de permissões da blockchain associada ao contrato inteligente, a lista de permissões identificando uma ou mais contas que estão autorizadas a executar o contrato inteligente;- a determinação, através do nódulo, que a conta solicitante estáPetição 870190075314, de 05/08/2019, pág. 70/795/6 autorizada a executar o contrato inteligente com base em que a conta solicitante que está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante está autorizada a executar o contrato inteligente, a execução, através do nódulo, do contrato inteligente.
- 16. SISTEMA, de acordo com a reivindicação 15, caracterizado pela solicitação é uma primeira solicitação, e a conta solicitante é uma primeira conta, o meio de armazenamento possui outras instruções armazenadas no mesmo que são executáveis pelo ou mais computadores para:- a identificação, através do nódulo, de uma segunda solicitação para executar o contrato inteligente diferente da primeira solicitação, a segunda solicitação identificando uma segunda conta diferente da primeira conta;- a determinação, através do nódulo, que a segunda conta não está autorizada a executar o contrato inteligente com base em que a segunda conta não está incluída na lista de permissões; e- em resposta à determinação que a conta solicitante não está autorizada a executar o contrato inteligente, a rejeição, através do nódulo, da segunda solicitação para executar o contrato inteligente.
- 17. SISTEMA, de acordo com a reivindicação 15, caracterizado pela lista de permissões está incluída em um conjunto de instruções executáveis associadas ao contrato inteligente.
- 18. SISTEMA, de acordo com a reivindicação 15, caracterizado pela lista de permissões está separada de um conjunto de instruções executáveis associadas ao contrato inteligente.
- 19. SISTEMA, de acordo com a reivindicação 15, caracterizado pela lista de permissões inclui uma identificação de uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
- 20. SISTEMA, de acordo com a reivindicação 15, caracterizadoPetição 870190075314, de 05/08/2019, pág. 71/796/6 pela lista de permissões inclui uma referência a uma localização externa ao contrato inteligente que armazena uma ou mais contas que estão autorizadas a acessar o contrato inteligente.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/124852 WO2019072304A2 (en) | 2018-12-28 | 2018-12-28 | WHITE LISTS OF INTELLIGENT CONTRACTS |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112019016188A2 true BR112019016188A2 (pt) | 2020-04-14 |
Family
ID=66100024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112019016188A BR112019016188A2 (pt) | 2018-12-28 | 2018-12-28 | método implementado por computador para o controle do acesso aos contratos inteligentes, meio de armazenamento legível por computador não transitório e sistema |
Country Status (14)
Country | Link |
---|---|
US (3) | US10832239B2 (pt) |
EP (1) | EP3577853B1 (pt) |
JP (1) | JP6858264B2 (pt) |
KR (1) | KR102222612B1 (pt) |
CN (1) | CN110366729A (pt) |
AU (1) | AU2018347204B2 (pt) |
BR (1) | BR112019016188A2 (pt) |
CA (1) | CA3052735C (pt) |
MX (1) | MX2019009285A (pt) |
PH (1) | PH12019501831A1 (pt) |
RU (1) | RU2744827C2 (pt) |
SG (1) | SG11201907155UA (pt) |
WO (1) | WO2019072304A2 (pt) |
ZA (1) | ZA201905193B (pt) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6858264B2 (ja) | 2018-12-28 | 2021-04-14 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | スマートコントラクトのホワイトリスト |
CN111164935B (zh) * | 2019-05-31 | 2023-08-22 | 创新先进技术有限公司 | 在基于区块链的私有交易中提供隐私和安全保护的系统和方法 |
US10783082B2 (en) | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
CN111222109A (zh) * | 2019-11-21 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 一种区块链账户的操作方法、节点设备及存储介质 |
CN113282887A (zh) * | 2020-02-19 | 2021-08-20 | 北京沃东天骏信息技术有限公司 | 用户信息授权的方法和装置 |
CN111310233B (zh) * | 2020-03-24 | 2024-06-25 | 腾讯科技(深圳)有限公司 | 应用界面显示方法、装置、设备以及存储介质 |
CN112163035B (zh) * | 2020-05-15 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 调用智能合约的方法及装置 |
CN112073508B (zh) * | 2020-09-05 | 2021-05-04 | 江苏端木软件技术有限公司 | 基于云计算和区块链服务的数据处理方法及人工智能平台 |
WO2022053151A1 (en) * | 2020-09-11 | 2022-03-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Partial execution of transactions in private distributed ledger networks |
US11836714B2 (en) * | 2021-07-07 | 2023-12-05 | Ava Labs, Inc. | Secure and trustworthy bridge for transferring assets across networks with different data architecture |
KR102571542B1 (ko) * | 2021-10-27 | 2023-08-29 | 한국전력공사 | 외부자의 참여가 가능한 폐쇄망 블록체인 시스템 및 폐쇄망 블록체인 시스템에서 외부 참여인의 업무 처리 방법 |
US11954215B1 (en) * | 2022-11-21 | 2024-04-09 | Real Title Block, Llc | System and method for security suite concatenating validation elements for blockchain binding operations |
CN116132112B (zh) * | 2022-12-22 | 2024-05-03 | 广州大学 | 一种基于联盟链智能合约的关键字可加密搜索方法 |
CN116132144A (zh) * | 2023-01-05 | 2023-05-16 | 合肥联正电子科技有限公司 | 一种基于智能合约技术的物联网传输方法和系统 |
CN116226938B (zh) * | 2023-05-10 | 2023-08-08 | 飞天诚信科技股份有限公司 | 一种通过智能合约管理事务的实现方法及系统 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490237B1 (en) * | 2003-06-27 | 2009-02-10 | Microsoft Corporation | Systems and methods for caching in authentication systems |
US8103868B2 (en) * | 2005-04-20 | 2012-01-24 | M-Qube, Inc. | Sender identification system and method |
US8249965B2 (en) * | 2006-03-30 | 2012-08-21 | Obopay, Inc. | Member-supported mobile payment system |
US20100223184A1 (en) * | 2006-10-11 | 2010-09-02 | Visa International Service Association | Sponsored Accounts For Computer-Implemented Payment System |
US8578175B2 (en) * | 2011-02-23 | 2013-11-05 | International Business Machines Corporation | Secure object having protected region, integrity tree, and unprotected region |
US8271650B2 (en) * | 2009-08-25 | 2012-09-18 | Vizibility Inc. | Systems and method of identifying and managing abusive requests |
US11138605B2 (en) * | 2013-07-02 | 2021-10-05 | Visa International Service Association | Online authentication in access transactions |
US9652751B2 (en) * | 2014-05-19 | 2017-05-16 | Square, Inc. | Item-level information collection for interactive payment experience |
EP3286699A1 (en) * | 2015-04-20 | 2018-02-28 | OGY Docs Inc. | A method of distributed management of electronic documents of title (edt) and system thereof |
US9992028B2 (en) * | 2015-11-26 | 2018-06-05 | International Business Machines Corporation | System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger |
US9985964B2 (en) * | 2016-03-28 | 2018-05-29 | Black Gold Coin, Inc. | Systems and methods for providing block chain-based multifactor personal identity verification |
US20170344988A1 (en) * | 2016-05-24 | 2017-11-30 | Ubs Ag | System and method for facilitating blockchain-based validation |
JP2019525303A (ja) * | 2016-07-01 | 2019-09-05 | ウェルズ・ファーゴ・バンク・ナショナル・アソシエーション | 国際貿易金融ブロックチェーンシステム |
US10700853B2 (en) * | 2016-07-12 | 2020-06-30 | International Business Machines Corporation | Token identity and attribute management |
US10425399B2 (en) * | 2016-07-12 | 2019-09-24 | International Business Machines Corporation | Template-based distributed certificate issuance in a multi-tenant environment |
US10635790B2 (en) | 2016-09-08 | 2020-04-28 | Refinitiv Us Organization Llc | Systems and methods for providing identity assurance for decentralized applications |
US10652239B2 (en) * | 2016-12-30 | 2020-05-12 | Slock.It Gmbh | Block-chain enabled service provider system including permission data structure and state channel monitoring |
CN107248074A (zh) * | 2017-03-29 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务处理方法及设备 |
EP3642775A4 (en) * | 2017-06-22 | 2021-03-24 | JPMorgan Chase Bank, N.A. | SYSTEM AND PROCEDURE FOR IMPLEMENTING AN INTERBANK INFORMATION NETWORK |
CN107748074B (zh) | 2017-09-07 | 2019-06-28 | 华南农业大学 | 一种电动修剪机自动试验台 |
WO2019059598A1 (en) * | 2017-09-20 | 2019-03-28 | Samsung Electronics Co., Ltd. | METHOD AND APPARATUS FOR MANAGING SERVICE REQUEST IN BLOCK CHAIN NETWORK |
KR20190041784A (ko) * | 2017-10-13 | 2019-04-23 | 주식회사 포스링크 | 멀티클라우드 환경에서 블록체인 기반의 분산동기화 접근 제어 시스템 및 그 방법 |
US20190114706A1 (en) * | 2017-10-17 | 2019-04-18 | SALT Lending Holdings, Inc. | Blockchain oracle for managing loans collateralized by digital assets |
KR101878869B1 (ko) * | 2017-11-17 | 2018-08-16 | 주식회사 미탭스플러스 | 블록체인 기반의 사용자 식별 관리를 위한 분산 원장 장치 및 분산 원장 방법 |
CN108696502B (zh) * | 2018-03-27 | 2020-10-20 | 深圳市网心科技有限公司 | 区块链节点权限控制方法、区块链系统及存储介质 |
CN108769173B (zh) * | 2018-05-21 | 2021-11-09 | 阿里体育有限公司 | 运行智能合约的区块链实现方法及设备 |
JP6858264B2 (ja) | 2018-12-28 | 2021-04-14 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | スマートコントラクトのホワイトリスト |
-
2018
- 2018-12-28 JP JP2019542591A patent/JP6858264B2/ja active Active
- 2018-12-28 CN CN201880011322.2A patent/CN110366729A/zh active Pending
- 2018-12-28 KR KR1020197023255A patent/KR102222612B1/ko active IP Right Grant
- 2018-12-28 SG SG11201907155UA patent/SG11201907155UA/en unknown
- 2018-12-28 BR BR112019016188A patent/BR112019016188A2/pt not_active IP Right Cessation
- 2018-12-28 WO PCT/CN2018/124852 patent/WO2019072304A2/en unknown
- 2018-12-28 CA CA3052735A patent/CA3052735C/en active Active
- 2018-12-28 EP EP18866466.8A patent/EP3577853B1/en active Active
- 2018-12-28 MX MX2019009285A patent/MX2019009285A/es unknown
- 2018-12-28 AU AU2018347204A patent/AU2018347204B2/en active Active
- 2018-12-28 RU RU2019124837A patent/RU2744827C2/ru active
-
2019
- 2019-05-24 US US16/422,110 patent/US10832239B2/en active Active
- 2019-08-06 ZA ZA2019/05193A patent/ZA201905193B/en unknown
- 2019-08-07 PH PH12019501831A patent/PH12019501831A1/en unknown
-
2020
- 2020-11-09 US US17/092,901 patent/US11068887B2/en active Active
-
2021
- 2021-06-07 US US17/340,864 patent/US11354656B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210056543A1 (en) | 2021-02-25 |
JP6858264B2 (ja) | 2021-04-14 |
JP2020510906A (ja) | 2020-04-09 |
PH12019501831A1 (en) | 2020-03-16 |
SG11201907155UA (en) | 2019-09-27 |
EP3577853A4 (en) | 2020-04-08 |
WO2019072304A3 (en) | 2019-10-31 |
KR102222612B1 (ko) | 2021-03-08 |
CA3052735C (en) | 2021-06-22 |
RU2019124837A (ru) | 2021-02-08 |
MX2019009285A (es) | 2019-10-30 |
CN110366729A (zh) | 2019-10-22 |
ZA201905193B (en) | 2020-05-27 |
US11354656B2 (en) | 2022-06-07 |
KR20200083939A (ko) | 2020-07-09 |
EP3577853A2 (en) | 2019-12-11 |
US20210295314A1 (en) | 2021-09-23 |
CA3052735A1 (en) | 2019-04-18 |
AU2018347204B2 (en) | 2020-10-22 |
AU2018347204A1 (en) | 2020-07-16 |
WO2019072304A2 (en) | 2019-04-18 |
EP3577853B1 (en) | 2022-02-23 |
US11068887B2 (en) | 2021-07-20 |
US10832239B2 (en) | 2020-11-10 |
US20190279201A1 (en) | 2019-09-12 |
RU2019124837A3 (pt) | 2021-02-08 |
RU2744827C2 (ru) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112019016188A2 (pt) | método implementado por computador para o controle do acesso aos contratos inteligentes, meio de armazenamento legível por computador não transitório e sistema | |
BR112019016290A2 (pt) | método implementado por computador, meio de armazenamento não transitório legível por computador e sistema | |
BR112019016064A2 (pt) | Método implementado por computador, meio de armazenamento legível e sistema | |
JP6892513B2 (ja) | 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス | |
JP6690066B2 (ja) | パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること | |
TWI720727B (zh) | 電腦實現的用於管理儲存在區塊鏈網路中的敏感資料元素的方法、用於管理儲存在區塊鏈網路中的敏感資料元素的裝置及系統 | |
EP3777030B1 (en) | Asynchronous processing of blockchain blocks | |
CN110417750A (zh) | 基于区块链技术的文件读取和存储的方法、终端设备和存储介质 | |
CN111066019A (zh) | 处理存储在区块链网络中的数据元素 | |
JP6921266B2 (ja) | パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること | |
CN110445840B (zh) | 一种基于区块链技术的文件存储和读取的方法 | |
US20180302787A1 (en) | Systems and methods for securely provisioning hypertext transfer protocol secure (https) pins to a mobile client | |
CN117043772A (zh) | 区块链数据分离 | |
Isaac et al. | A Decentralised Application for Storing Electronic Health Records using Blockchain Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25A | Requested transfer of rights approved |
Owner name: ADVANTAGEOUS NEW TECHNOLOGIES CO., LTD. (KY) |
|
B25A | Requested transfer of rights approved |
Owner name: ADVANCED NEW TECHNOLOGIES CO., LTD. (KY) |
|
B350 | Update of information on the portal [chapter 15.35 patent gazette] | ||
B08F | Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette] |
Free format text: REFERENTE A 5A ANUIDADE. |
|
B08K | Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette] |
Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2755 DE 24-10-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |