BR112019007939A2 - método implementado por computador, meio legível por computador e sistema para implementar um método - Google Patents

método implementado por computador, meio legível por computador e sistema para implementar um método Download PDF

Info

Publication number
BR112019007939A2
BR112019007939A2 BR112019007939-4A BR112019007939A BR112019007939A2 BR 112019007939 A2 BR112019007939 A2 BR 112019007939A2 BR 112019007939 A BR112019007939 A BR 112019007939A BR 112019007939 A2 BR112019007939 A2 BR 112019007939A2
Authority
BR
Brazil
Prior art keywords
function
controller
call
fact
smart contract
Prior art date
Application number
BR112019007939-4A
Other languages
English (en)
Other versions
BR112019007939B1 (pt
Inventor
Shao Kailai
Lu Xuming
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 BR112019007939A2 publication Critical patent/BR112019007939A2/pt
Publication of BR112019007939B1 publication Critical patent/BR112019007939B1/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

implementações do presente relatório descritivo incluem receber, de um contrato inteligente, e por meio de um controlador de função executando dentro da rede de protocolo de confiança, uma chamada de função para executar uma função, a chamada de função incluindo dados para execução da função, transmitir, por meio do controlador de função, os dados da chamada de função para um componente de função, o componente de função executando a função com base nos dados da chamada de função, receber, por meio do controlador de função, um resultado de função do componente de função, e fornecer, por meio do controlador de função, função resultado para o contrato inteligente.

Description

“MÉTODO IMPLEMENTADO POR COMPUTADOR, MEIO LEGÍVEL POR COMPUTADOR E SISTEMA PARA IMPLEMENTAR UM MÉTODO” Campo da Invenção [001] A presente invenção se refere a um método implementado por computador, meio legível por computador e sistema para implementar um método.
Antecedentes da Invenção [002] Os sistemas de contabilidade distribuída (DLSs), que também podem ser denominados redes de consenso e/ ou redes de protocolo de confiança (blockchain), permitem que as entidades participantes armazenem dados de forma segura e imutável. Os DLSs são comumente referidos como redes de protocolo de confiança sem fazer referência a qualquer caso de uso particular (por exemplo, criptomoedas). Exemplos de tipos de redes de protocolo de confiança podem incluir redes de protocolo de confiança públicas, redes de protocolo de confiança privadas e redes de protocolo de confiança de consórcio. Uma rede de protocolo de confiança pública é aberta para todas as entidades usarem o DLS e participam no processo de consenso. Uma rede de protocolo de confiança privada é fornecida para uma entidade específica, que controla centralmente as permissões de leitura e gravação. Uma rede de protocolo de confiança de consórcio é fornecida para um grupo seleto de entidades, que controlam o processo de consenso e incluem uma camada de controle de acesso.
[003] Contratos inteligentes podem ser executados dentro de redes de protocolo de confiança para executar uma ou mais funções. Um contrato inteligente pode ser descrito como um aplicativo monolítico que inclui funções codificadas. Como um aplicativo monolítico, operações de desenvolvimento relativamente robustas podem ser necessárias para suportar o contrato inteligente (por exemplo, codificação de cada função, atualizações
Petição 870190056712, de 19/06/2019, pág. 9/45
2/24 de funções resultando em atualizações de todo o contrato inteligente).
Descrição da Invenção [004] As realizações do presente relatório descritivo incluem métodos implementados por computador para fornecer aplicações em redes de protocolo de confiança. Mais particularmente, as realizações do presente relatório descritivo são direcionadas a uma plataforma de função como serviço (FaaS) para fornecer funções para aplicativos executados em redes de protocolo de confiança.
[005] Em algumas realizações, as ações incluem receber, de um contrato inteligente, e por meio de um primeiro controlador de função executando dentro da rede protocolo de confiança, uma primeira chamada de função para executar uma primeira função, a primeira chamada de função incluindo dados para execução da primeira função, transmitir, por meio do primeiro controlador de função, os dados da primeira chamada de função para um primeiro componente de função, o primeiro componente de função executando a primeira função com base nos dados da primeira chamada de função, receber, por meio do primeiro controlador de função, um primeiro resultado de função do primeiro componente de função e fornecer, por meio do primeiro controlador de função, o primeiro resultado da função para o contrato inteligente. Outras realizações incluem sistemas, aparelhos e programas de computador correspondentes, configurados para executar as ações dos métodos, codificados em dispositivos de armazenamento de computador.
[006] Essas e outras realizações podem incluir, opcional mente, um ou mais das seguintes características: a primeira chamada de função inclui ainda um endereço da primeira função e um identificador de versão da primeira função; o identificador de versão é nulo indicando que uma versão mais recente da primeira função deve ser executada; as ações incluem ainda a atualização, por meio do primeiro controlador de função, das estatísticas associadas a uma versão da
Petição 870190056712, de 19/06/2019, pág. 10/45
3/24 primeira função que foi executada em resposta à primeira chamada de função; as estatísticas indicam um número de vezes que cada versão de uma primeira função foi executada; as ações incluem ainda: receber, de um contrato inteligente, e por meio de um segundo controlador de função executando dentro da rede protocolo de confiança, uma segunda chamada de função para executar uma segunda função, a segunda chamada de função incluindo dados para execução da segunda função, em que a segunda função é diferente da primeira função, e em que o segundo controlador de função é diferente do primeiro controlador de função, transmitindo, pelo segundo controlador de função, os dados da segunda chamada de função para um segundo componente de função, o segundo componente de função executando a segunda função com base nos dados da segunda chamada de função, em que o segundo componente de função é diferente do primeiro componente de função, recebendo, pelo segundo controlador de função, o resultado da segunda função do segundo componente de função e fornecendo, por meio do segundo controlador de função, o resultado da segunda função do contrato inteligente; a primeira função e a segunda função são fornecidas por provedores diferentes; e o contrato inteligente executa uma transação pelo menos parcialmente com base nos resultados da função, a transação sendo registrada dentro de um protocolo de confiança da rede de protocolo de confiança.
[007] O presente relatório descritivo também fornece um ou mais meios de armazenamento legível por computador acoplado a um ou mais processadores e tendo instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazer com que os um ou mais processadores execute as operações de acordo com realizações dos métodos aqui fornecidos.
[008] O presente relatório descritivo fornece ainda um sistema para implementar os métodos aqui fornecidos. O sistema inclui um ou mais processadores, e um meio de armazenamento legível por computador
Petição 870190056712, de 19/06/2019, pág. 11/45
4/24 acoplado a um ou mais processadores com instruções armazenadas no mesmo que, quando executados por um ou mais processadores, fazem com que um ou mais processadores executem operações de acordo com realizações dos métodos aqui fornecidos.
[009] Entende-se que os métodos de acordo com o presente relatório descritivo podem incluir qualquer combinação das realizações e características aqui descritas. Isto é, os métodos de acordo com o presente relatório descritivo não estão limitados às combinações de realizações e características especificamente descritos aqui, mas também incluem qualquer combinação das realizações e características fornecidas.
[0010] Os detalhes de uma ou mais realizações do presente relatório descritivo são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens do presente relatório descritivo serão evidentes a partir da descrição e desenhos, e das reivindicações.
Breve Descrição dos Desenhos [0011] A Figura 1 ilustra um exemplo de ambiente que pode ser usado para executar realizações do presente relatório descritivo.
[0012] A Figura 2 ilustra um exemplo de arquitetura conceituai de acordo com realizações do presente relatório descritivo.
[0013] A Figura 3 ilustra um exemplo de arquitetura conceituai para uma plataforma de função como serviço (FaaS) de acordo com realizações do presente relatório descritivo.
[0014] A Figura 4 ilustra um diagrama de pista de natação que mostra a comunicação entre os componentes de acordo com as realizações do presente relatório descritivo.
[0015] A Figura 5 ilustra um exemplo de processo que pode ser executado de acordo com realizações do presente relatório descritivo.
[0016] Os símbolos de referência semelhantes nos vários
Petição 870190056712, de 19/06/2019, pág. 12/45
5/24 desenhos indicam elementos semelhantes.
Descrição de Realizações da Invenção [0017] As realizações do presente relatório descritivo incluem métodos implementados por computador para fornecer aplicativos em redes de protocolo de confiança. Mais particularmente, as realizações do presente relatório descritivo destinam-se a uma plataforma de função como serviço (FaaS) para fornecer funções para aplicativos executados em redes de protocolo de confiança. Em algumas realizações, as ações incluem receber, de um contrato inteligente, e por meio de um controlador de função executando dentro da rede de protocolo de confiança, uma chamada de função para executar uma função, a chamada de função incluindo dados para execução da função, transmitindo, por meio do controlador de função, os dados da chamada de função para um componente de função, o componente de função executando a função com base nos dados da chamada de função, recebendo, por meio do controlador de função, um resultado de função do componente de função e fornecendo, por meio do controlador de função, o resultado da função ao contrato inteligente.
[0018] Para fornecer um contexto adicional para realizações do presente relatório descritivo, e como introduzidas acima, sistemas de contabilidade distribuída (DLSs), que também podem ser referidos como redes de consenso (por exemplo, constituídas por nós peer-to-peer), e redes de protocolo de confiança, permite que as entidades participantes conduzam transações de forma segura e imutável e armazenem dados. Embora o termo protocolo de confiança seja geralmente associado à rede de criptomoeda do Bitcoin, o protocolo de confiança é aqui utilizado para referir-se geralmente a um DLS sem referência a qualquer caso de uso particular. Como introduzido acima, uma rede de protocolo de confiança pode ser fornecida como uma rede de protocolo de confiança pública, uma rede de protocolo de confiança privada
Petição 870190056712, de 19/06/2019, pág. 13/45
6/24 ou uma rede de protocolo de confiança de consórcio.
[0019] Em uma rede de protocolo de confiança pública, o processo de consenso é controlado por nós da rede de consenso. Por exemplo, centenas, milhares, até mesmo milhões de entidades podem cooperar uma rede de protocolo de confiança pública, cada uma das quais opera pelo menos um nó na rede de protocolo de confiança pública. Assim, a rede de protocolo de confiança pública pode ser considerada uma rede pública em relação às entidades participantes. Em alguns exemplos, a maioria das entidades (nós) deve assinar cada bloco, para que o bloco de ser válido, e adicionado ao protocolo de confiança (contabilidade distribuída) da rede de protocolo de confiança. Um exemplo de rede de protocolo de confiança pública inclui a rede de Bitcoin, que é uma rede de pagamento peer-to-peer. A rede de Bitcoin utiliza uma contabilidade distribuída, conhecida como protocolo de confiança. Como observado acima, o termo protocolo de confiança, no entanto, é usado para se referir geralmente a contabilidades distribuídas sem referência particular à rede de Bitcoin.
[0020] Em geral, uma rede de protocolo de confiança pública suporta transações públicas. Uma transação pública é compartilhada com todos os nós dentro da rede de protocolo de confiança pública e é armazenada em um protocolo de confiança global. Um protocolo de confiança global é um protocolo de confiança que é replicado em todos os nós. Ou seja, todos os nós estão em perfeito estado de consenso em relação ao protocolo de confiança global. Para chegar no consenso (por exemplo, concordar com a adição de um bloco a um protocolo de confiança), um protocolo de consenso é implementado dentro da rede de protocolo de confiança pública. Um exemplo de protocolo de consenso inclui, sem limitação, prova de trabalho (POW) implementada na rede de Bitcoin.
[0021] Em geral, uma rede de protocolo de confiança privada é
Petição 870190056712, de 19/06/2019, pág. 14/45
7/24 fornecida para uma entidade particular, que controla centralmente as permissões de leitura e gravação. A entidade controla quais nós são capazes de participar da rede de protocolo de confiança. Consequentemente, as redes de protocolo de confiança privadas são geralmente referidas como redes com permissão que colocam restrições sobre quem tem permissão para participar da rede, e sobre o seu nível de participação (por exemplo, apenas em certas transações). Vários tipos de mecanismos de controle de acesso podem ser usados (por exemplo, os participantes existentes votam na adição de novas entidades, uma autoridade reguladora pode controlar a admissão).
[0022] Em geral, uma rede de protocolo de confiança de consórcio é privada entre as entidades participantes. Em uma rede de protocolo de confiança de consórcio, o processo de consenso é controlado por um conjunto autorizado de nós, um ou mais nós 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, uma instituição financeira, companhia de seguros) pode operar uma rede de protocolo de confiança de consórcio, cada uma operando pelo menos um nó na rede de protocolo de confiança de consórcio. Nesse sentido, a rede de protocolo de confiança de consórcio pode ser considerada uma rede privada em relação às entidades participantes. Em alguns exemplos, cada entidade (nó) deve assinar todos os blocos para que o bloco seja válido e adicionada ao protocolo de confiança. Em alguns exemplos, pelo menos um subconjunto de entidades (nós) (por exemplo, pelo menos 7 entidades) deve assinar todos os blocos para que o bloco seja válido e adicionado ao protocolo de confiança.
[0023] As realizações do presente relatório descritivo são aqui descritas em mais detalhe com referência a uma rede de protocolo de confiança pública, que é pública entre as entidades participantes. Está contemplado, no entanto, que as realizações do presente relatório descritivo
Petição 870190056712, de 19/06/2019, pág. 15/45
8/24 podem ser realizadas em qualquer tipo apropriado de rede de protocolo de confiança. Embora as técnicas descritas no presente relatório descritivo sejam indicadas como sendo relevantes para redes de protocolo de confiança públicas, as técnicas também podem ser usadas, com ou sem alterações, em outros tipos de redes de protocolo de confiança, incluindo redes de protocolo de confiança privadas e redes de protocolo de confiança de consórcio.
[0024] As realizações do presente relatório descritivo são aqui descritas em mais detalhe em vista do contexto acima. Mais particularmente, e como apresentado acima, as realizações do presente relatório descritivo destinam-se a uma plataforma FaaS para fornecer funções a aplicativos executados em redes de protocolo de confiança. Dessa maneira, os desenvolvedores podem desenvolver aplicativos (por exemplo, contratos inteligentes) que são relativamente leves (por exemplo, em termos de codificação) e podem chamar uma ou mais funções por meio da plataforma FaaS do presente relatório descritivo.
[0025] Para fornecer ainda contexto adicional para realizações do presente relatório descritivo, nas redes de protocolo de confiança, os aplicativos podem ser desenvolvidos, testados e implementados para execução dentro da rede de protocolo de confiança. Um exemplo de aplicativo pode incluir, sem limitação, um contrato inteligente. Um contrato inteligente pode ser descrito como representações digitais de contratos legais do mundo real com termos contratuais que afetam várias partes. Um contrato inteligente é implementado, armazenado, atualizado (conforme necessário) e executado dentro, no contexto de exemplo, de uma rede de protocolo de confiança de consórcio. Partes contratadas associadas ao contrato inteligente (por exemplo, compradores e vendedores) são representadas como nós na rede de protocolo de confiança do consórcio.
[0026] Em alguns exemplos, um contrato inteligente pode
Petição 870190056712, de 19/06/2019, pág. 16/45
9/24 armazenar dados, que podem ser usados para registrar informações, fatos, associações, balanços e qualquer outra informação necessária para implementar a lógica para a realização do contrato. Os contratos inteligentes podem ser descritos como um programa executável por computador que consiste em funções, em que um exemplo do contrato inteligente pode ser criado e funções invocadas para realização da lógica nele contida.
[0027] Em termos técnicos, os contratos inteligentes podem ser implementados com base em objetos e classes orientadas a objetos. Por exemplo, termos e componentes do contrato inteligente podem ser representados como objetos manipulados por aplicativos que implementam os contratos inteligentes. Um contrato inteligente (ou um objeto no contrato inteligente) pode chamar outro contrato inteligente (ou um objeto no mesmo contrato inteligente), assim como os outros objetos orientados a objetos. As chamadas feitas por um objeto podem ser, por exemplo, uma chamada para criar, atualizar, excluir, propagar ou se comunicar com objetos de outra classe. As chamadas entre objetos podem ser implementadas como ferramentas, métodos, interfaces de programação de aplicativos (APIs) ou outros mecanismos de chamada. Por exemplo, um primeiro objeto pode chamar uma função para criar um segundo objeto.
[0028] Um ambiente de desenvolvimento integrado (IDE) pode ser usado para desenvolver, testar e implantar aplicativos, como contratos inteligentes para redes de protocolo de confiança. Um exemplo de IDE inclui o Remix IDE, fornecido pela Ethereum Foundation de Zug, na Suíça, para criar contratos inteligentes em Solidity.
[0029] A Figura 1 representa um exemplo de ambiente (100) que pode ser utilizado para executar realizações do presente relatório descritivo. Em alguns exemplos, o ambiente de exemplo (100) permite que entidades participem em uma rede de protocolo de confiança privada (102). O ambiente
Petição 870190056712, de 19/06/2019, pág. 17/45
10/24 de exemplo (100) inclui sistemas de computação (106, 108) e uma rede (110). Em alguns exemplos, a rede (110) inclui uma rede de área local (LAN), uma rede de longa distância (WAN), a Internet ou uma combinação dos mesmos, e conecta web sites, dispositivos de usuário (por exemplo, dispositivos de computação) e sistema 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.
[0030] No exemplo descrito, os sistemas de computação (106, 108) podem incluir qualquer sistema de computação apropriado que permita a participação como um nó na rede de protocolo de confiança privada (102). Exemplos de dispositivos de computação incluem, sem limitação, um servidor, um computador de mesa, um computador laptop, um dispositivo de computação de 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 com a rede de protocolo de confiança privada (102). Por exemplo, o sistema de computação (106) pode hospedar serviços implementados por computador de uma primeira entidade (por exemplo, usuário A), como um sistema de gerenciamento de transações que a primeira entidade usa para gerenciar suas transações com uma ou mais entidades (por exemplo, outros usuários). O sistema de computação (108) pode hospedar serviços implementados por computador de uma segunda entidade (por exemplo, usuário B), como um sistema de gerenciamento de transação que a segunda entidade usa para gerenciar suas transações com uma ou mais outras entidades (por exemplo, outros usuários). No exemplo da Figura 1, a rede de protocolo de confiança privada (102) é representada como uma rede peer-topeer de nós, e os sistemas de computação (106, 108) fornecem nós da primeira entidade e da segunda entidade respectivamente, que participam na rede de protocolo de confiança privada (102).
[0031] A Figura 2 ilustra um exemplo de arquitetura conceptual
Petição 870190056712, de 19/06/2019, pág. 18/45
11/24 (200) de acordo com realizações do presente relatório descritivo. A arquitetura conceituai exemplificativa (200) inclui uma camada de entidade (202), uma camada de serviços hospedados (204) e uma camada de rede de protocolo de confiança (206). No exemplo representado, a camada de entidade (202) inclui três entidades, Entity_1 (E1), Entity_2 (E2) e Entity_3 (E3), cada entidade possuindo um respectivo sistema de gestão de transações (208).
[0032] No exemplo descrito, a camada de serviços hospedados (204) inclui interfaces (210) para cada sistema de gestão de transações (208). Em alguns exemplos, um sistema de gestão de transações (208) respetivo comunica com uma respetiva interface (210) através de uma rede (por exemplo, a rede (110) da Figura 1) usando um protocolo (por exemplo, protocolo de transferência de hipertexto seguro (HTTPS)). Em alguns exemplos, cada interface (210) fornece uma conexão de comunicação entre um sistema de gestão da respectiva transação (208), e a camada de rede de protocolo de confiança (206). Mais particularmente, a interface (210) se comunica com uma rede de protocolo de confiança (212) da camada de rede de protocolo de confiança (206). Em alguns exemplos, a comunicação entre uma interface (210) e a camada de rede de protocolo de confiança (206) é conduzida utilizando chamadas de procedimento remoto (RPCs). Em alguns exemplos, as interfaces (210) “hospedam” os nós de rede de protocolo de confiança para os respectivos sistemas de gestão de transação (208). Por exemplo, as interfaces (210) fornecem a interface de programação de aplicativos (API) para acessar a rede de protocolo de confiança (212).
[0033] Como aqui descrito, a rede de protocolo de confiança (212) é fornecida como uma rede peer-to-peer incluindo uma pluralidade de nós (214) que gravam informações de forma imutável em um protocolo de confiança (216). Embora um único protocolo de confiança (216) seja esquematicamente representado, várias cópias do protocolo de confiança (216)
Petição 870190056712, de 19/06/2019, pág. 19/45
12/24 são fornecidas, e são mantidas através da rede de protocolo de confiança (212). Por exemplo, cada nó (214) armazena uma cópia do protocolo de confiança. Em algumas realizações, o protocolo de confiança (216) armazena informações associadas a transações que são realizadas entre duas ou mais entidades que participam da rede de protocolo de confiança privado.
[0034] A Figura 3 ilustra um exemplo de arquitetura conceituai para uma plataforma FaaS (300) de acordo com realizações do presente relatório descritivo. Como descrito em maior detalhe aqui, a plataforma FaaS (300) é utilizada para fornecer funções que suportam a execução de contratos inteligentes, tais como um contrato inteligente (302) da Figura 3. Em alguns exemplos, o contrato inteligente (302) pode executar transações que são registradas nos blocos (304) de um protocolo de confiança.
[0035] No exemplo da Figura 3, a plataforma FaaS (300) inclui um iniciador de transação (306) que pode ser, por exemplo, um nó que inicia uma ação solicitando a execução do contrato inteligente (302). Por exemplo, o iniciador de transação (306) pode enviar uma solicitação de (308) para instigar a execução do contrato inteligente (302). Em alguns exemplos, o contrato inteligente (302) recebe a solicitação e executa a lógica programada no contrato inteligente (302). De acordo com realizações de no presente relatório descritivo, a lógica pode incluir uma chamada para um ou mais aplicativos de função (312) da plataforma FaaS (300).
[0036] Em alguns exemplos, cada um dos aplicativos de função (312) é fornecido por um provedor de função respectivo (310). Por exemplo, um provedor de função (310) pode incluir uma entidade (por exemplo, desenvolvedor) que desenvolve um aplicativo de função para receber entrada, executar uma função e fornecer saída. Em alguns exemplos, cada aplicativo de função (312) inclui um controlador de função (314) e uma ou mais funções (316, 318, 320) (código de função). O provedor de função (310) pode fornecer
Petição 870190056712, de 19/06/2019, pág. 20/45
13/24 uma versão inicial de uma função (por exemplo, função (316)) e pode atualizar a função para fornecer versões subsequentes (por exemplo, funções (318, 320)).
[0037] Em algumas realizações, o contrato inteligente (302) é executado até um ponto que ele chama um função. O contrato inteligente (302) envia uma chamada de função para um aplicativo de função respetivo (312), que inclui a entrada a ser processada pela aplicativo de função (312). A chamada de função é recebida pelo respectivo controlador de função (314). O controlador de função (314) encaminha a entrada para uma versão apropriada das funções (316, 318, 320). A função (316, 318, 320) que recebe a entrada processa a entrada para fornecer saída, a qual é enviada de volta para o contrato inteligente (302).
[0038] Em algumas realizações, aplicativos de função que são fornecidos pela plataforma Faas (300) são armazenados no protocolo de confiança, e são registrados com a plataforma Faas (300). Em alguns exemplos, o registro expõe informações das funções de usuários (por exemplo, os desenvolvedores de contratos inteligentes). Os exemplos de informações podem incluir, sem limitação, um identificador do provedor (310), uma descrição da função, versões da função e estatísticas da função (por exemplo, um número de vezes que cada versão foi chamada). Os usuários podem usar as informações, por exemplo, como uma indicação de um nível de confiança associado a cada função. Por exemplo, um usuário que desenvolve um contrato inteligente pode revisar o registro para identificar uma função necessária e programar o contrato inteligente para chamar a função.
[0039] O seguinte é um exemplo não limitative para ilustrar a concepção e utilização da plataforma FaaS de acordo com as realizações do presente relatório descritivo. Um ou mais provedores de função, também referidos como provedores FaaS (por exemplo, os provedores de função (310)
Petição 870190056712, de 19/06/2019, pág. 21/45
14/24 da Figura 3), fornecem uma ou mais funções executáveis pelo computador. Por exemplo, um provedor de função pode desenvolver um código executável por computador para executar uma função, a função recebendo entrada, processando a entrada e fornecendo saída. Uma função de exemplo pode incluir, sem limitação, uma função de soma de verificação Rivest-ShamirAdleman (RSA), que recebe, como entrada, uma mensagem de comprimento arbitrário e produz uma soma de verificação como saída (por exemplo, uma soma de verificação de 128 bits (16 octetos)). Em alguns exemplos, a função é uma função pura. Ou seja, a função não tem informações de estado, chamadas repetíveis e/ ou chamadas aninhadas.
[0040] Em algumas realizações, um controlador de função (também referido como um controlador FaaS) é fornecido para a função (por exemplo, o controlador de função (314) da Figura 3). Em alguns exemplos, o controlador de função e a função, em conjunto, formam um aplicativo de função, também referido como um aplicativo FaaS (por exemplo, a aplicativo de função (312) da Figura 3). Em alguns exemplos, o controlador de função manipula estatísticas e armazenamento para versões da função, bem como informações de chamada. A Tabela 1, abaixo, descreve as informações de exemplo armazenadas por um controlador de função:
Nome Tipo Variável Significado
Última versão String latestVersion A versão mais recente da versão do código de função e do endereço (por exemplo, 23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0), onde 1.0.0 é aversão.
Mapeamento de Versão Map<String, String> versionMap Key é o endereço do contrato inteligente e Value é a versão do endereço do código de função. Quando há um par de key-to-value key-value, a chamada de contrato inteligente de key usa a versão indicada do código de função, caso contrário, a versão padrão chama a versão mais recente.
Chamando um mapa estatístico Map<String, lnteger> statistics Key é a versão, Value é o número de chamadas e cada chamada é acionada por um.
Tabela 1: Exemplo de Informações
Petição 870190056712, de 19/06/2019, pág. 22/45
15/24 [0041] Em algumas realizações, quando uma função está pronta para uso em produção, o provedor de função envia a função (como código de função executável do computador) para a rede de protocolo de confiança e o código de função é atribuído a um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo,
23d61f4a88f90be1290c0eeab344992e1a2e8f6d). Em alguns exemplos, o controlador de função também é enviado à rede de protocolo de confiança e é atribuído seu próprio endereço exclusivo dentro da rede de protocolo de confiança. Em alguns exemplos, quando uma função é primeiro enviada à rede de protocolo de confiança, o último valor de versão (por exemplo, latestVersion) é definido como padrão (por exemplo, 1.0.0). Em alguns exemplos, a função é registrada no mapa de versão com base no endereço e no valor da versão (por exemplo, 23d61f4a88f90be1290c0eeab 344992e1a2e8f6d, 1.0.0) e estatísticas para a função estão vazias.
[0042] Em algumas realizações, um ou mais contratos inteligentes (por exemplo, o contrato inteligente (302)) podem ser criados para chamar uma ou mais funções da plataforma FaaS. Em alguns exemplos, um usuário que cria um contrato inteligente pode visualizar uma biblioteca de funções disponíveis com informações de função relevantes (por exemplo, descrição, endereço, versão, estatísticas) e pode programar o contrato inteligente para chamar uma ou mais funções. Por exemplo, o contrato inteligente pode incluir lógica que chama o exemplo de função de soma de verificação RSA apresentada acima. Em alguns exemplos, o contrato inteligente pode incluir um identificador de versão indicando uma versão (por exemplo, 1.0.0) da função a ser chamada. Em alguns exemplos, o identificador de versão pode estar vazio (ou nulo), o que indica que a versão mais recente da função deve ser chamada. Em algumas realizações, após o contrato inteligente estar completo e pronto para uso, o contrato inteligente é submetido à rede de protocolo de
Petição 870190056712, de 19/06/2019, pág. 23/45
16/24 confiança, e o contrato inteligente é atribuído um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo, 39a1509440f8c549dfd6e995def14b1 ce3c98e5d).
[0043] Em algumas realizações, para impedir que o impacto de uma eventual melhora (atualização) no código de função cause impacto na lógica de execução do contrato inteligente, o mapa de versão (versionMap) do controlador de função é atualizado. Continuando com o exemplo não limitative acima, o mapa de versão do aplicativo de função para a função de soma de verificação RSA é atualizado para:
{ “39a 1509440f8c549dfd6e995def14b1 ce3c98e5d” : “23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0” }
[0044] Isso indica que o exemplo de contrato inteligente usa a primeira versão da função do exemplo de soma de verificação RSA. Ou seja, a primeira versão da função deve ser sempre usada quando o contrato inteligente específico solicitar a função.
[0045] A Figura 4 representa um diagrama de pista de natação (400) mostrando a comunicação entre os componentes de acordo com as realizações do presente relatório descritivo. De acordo com realizações do presente relatório descritivo, uma transação usando o contrato inteligente é iniciada (402). Por exemplo, um nó na rede de protocolo de confiança (por exemplo, automaticamente, ou solicitado por um usuário que atua como iniciador de transação (404)) pode iniciar uma transação usando o contrato inteligente (por exemplo, contrato inteligente (406)). O contrato inteligente pode identificar (408) as funções necessárias para concluir a transação. Em alguns exemplos, durante a execução da lógica do contrato inteligente, uma ou mais chamadas de função podem ser feitas (410) para um ou mais aplicativos FaaS
Petição 870190056712, de 19/06/2019, pág. 24/45
17/24 (412). Cada aplicativo FaaS (412) inclui um controlador (414) e um código Faas (416). Um aplicativo FaaS (412) pode existir para cada provedor.
[0046] Com referência continuada ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função (410) para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função (414) para execução do código FaaS (416). Em alguns exemplos, a chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada. Em alguns exemplos, a chamada de função não especifica a versão que deve ser executada (por exemplo, o valor da versão é nulo), nesse caso, a versão mais recente da função é usada.
[0047] O controlador de função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação). Um solicitação de função (418) é feita do código FaaS (416). Como notado acima, em função de uma resposta (420), ou uma versão especificada da função, ou as versões mais recentes da função é executada. Além disso, o valor da contagem do mapa de estatísticas de chamadas correspondente à versão executada da função é atualizada (422) (por exemplo, incrementado). Continuando com o exemplo acima, após a primeira sendo chamada, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
{ “23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0”: (1) }
[0048] Um resultado de função (424) é fornecido ao contrato inteligente, que pode então completar (426) a transação. A transação pode ser gravada (428) pelo protocolo de confiança (por exemplo, protocolo de confiança (430)). Uma confirmação (432) pode ser enviada para o iniciador de
Petição 870190056712, de 19/06/2019, pág. 25/45
18/24 transação (404).
[0049] A sequência das etapas (410) a (424) pode ser repetida para cada função chamada pelo contrato inteligente (406). Por exemplo, o contrato inteligente (406) pode chamar duas funções, a partir de dois provedores FaaS diferentes, e receber resultados de funções de cada um, que o contrato inteligente (406) usa para concluir a transação.
[0050] Em algumas realizações, o provedor de função pode atualizar uma função fornecida anteriormente. Por exemplo, o provedor de função pode recodificar pelo menos uma parte da função para melhorar a eficiência de execução (por exemplo, menos fontes computacionais mais rápidas). Consequentemente, uma versão subsequente da função pode ser fornecida. Continuando com o exemplo acima, uma segunda versão da função de soma de verificação RSA pode ser fornecida e enviada para a rede de protocolo de confiança. A segunda versão da função recebe um endereço exclusivo dentro da rede de protocolo de confiança (por exemplo, 2aae6a1150787a834382d0202ef1e89e3bc89d4d). O último valor de versão (latestVersion) dentro do controlador de função é atualizado para incluir o endereço da função atualizada e um identificador de versão (por exemplo, 2aae6a1150787a834382d0202ef1 e89e3bc89d4d.2.0.0).
[0051] Outra transação (segunda transação) usando o contrato inteligente é iniciada. Por exemplo, e com referência contínua ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função. Em alguns exemplos, a chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada.
[0052] Em algumas realizações, o controlador de função reconhece que o mesmo contrato inteligente (por exemplo,
Petição 870190056712, de 19/06/2019, pág. 26/45
19/24
39a1509440f8c549dfd6e995def14b1ce3c98e5d) emitiu a chamada de função. Consequentemente, embora outra versão (por exemplo, 2.0.0) da função esteja disponível, a última versão usada (por exemplo, 1.0.0) da função é usada. A função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação) e o valor da contagem do mapa de estatísticas de chamada correspondente à versão executada da função é incrementado. Continuando com o exemplo acima, após a segunda vez senso chamado, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
{ “23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0”: (2) }
[0053] Em algumas realizações, pode ser determinado que o contrato inteligente pode usar outras versões de uma função. Por exemplo, o usuário que originou o contrato inteligente e indicou que uma determinada versão (por exemplo, 1.0.0) deveria ser usada, pode determinar que uma versão subsequente (por exemplo, 2.0.0) do contrato inteligente é satisfatória. Consequentemente, o usuário pode atualizar o identificador de versão dentro do mapa de versão (por exemplo, especificar uma versão diferente ou definir o identificador de versão como nulo). Em um exemplo não limitative, o identificador de versão é definido como nulo. Dessa maneira, na próxima vez que o contrato inteligente fizer uma chamada de função, a versão mais recente da função será usada.
[0054] Outra transação (terceira transação) usando o contrato inteligente é iniciada. Por exemplo, e com referência contínua ao exemplo acima, o contrato inteligente pode transmitir uma chamada de função para um valor de soma de verificação RSA. Em alguns exemplos, a chamada de função é recebida por meio do controlador de função. Em alguns exemplos, a
Petição 870190056712, de 19/06/2019, pág. 27/45
20/24 chamada de função inclui entrada para a função e uma variável de versão, que indica uma versão da função que deve ser executada.
[0055] Em algumas realizações, o controlador de função reconhece que o mesmo contrato inteligente (por exemplo, 39a1509440f8c549dfd6e995def14b1ce3c98e5d) emitiu a chamada de função, mas que o identificador de versão é nulo. Consequentemente, embora a primeira versão (por exemplo, 1.0.0) da função tenha sido usada anteriormente, a última versão usada (por exemplo, 2.0.0) da função é usada. A função processa a entrada (por exemplo, uma mensagem) para fornecer uma saída (por exemplo, um valor de soma de verificação) e o valor da contagem do mapa de estatísticas de chamada correspondente à versão executada da função é incrementado. Continuando com o exemplo acima, o conteúdo estatístico para o exemplo de função de soma de verificação RSA pode ser fornecido como:
{ “23d61f4a88f90be1290c0eeab344992e1a2e8f6d, 1.0.0”: (2) “2aae6a1150787a834382d0202ef1e89e3bc89d4d.2.0.0” : (1) } [0056] A Figura 5 ilustra um exemplo de processo (500) que pode ser executado de acordo com realizações do presente relatório descritivo. Em algumas realizações, o exemplo de processo (500) pode ser executado usando um ou mais programas executáveis por computador executados usando um ou mais dispositivos de computação.
[0057] Em (502), uma transação é iniciada. Por exemplo, a transação pode usar um contrato inteligente que faz parte de uma rede de protocolo de confiança. A transação pode ser iniciada automaticamente ou a transação pode ser solicitada por um usuário. A transação pode ser, por exemplo, uma transação que um usuário está usando para gerar um número
Petição 870190056712, de 19/06/2019, pág. 28/45
21/24 aleatório para uso no contrato inteligente.
[0058] Em (504), uma função é chamada pelo contrato inteligente. Como exemplo, a chamada de função (410) pode ser feita, tal como chamar uma função de gerador de números aleatórios que é fornecida pela plataforma FaaS. Em algumas realizações, a chamada de função pode incluir ainda um endereço da função e um identificador de versão da função. Por exemplo, o contrato inteligente (406) pode incluir, na chamada de função (410), o endereço dentro do protocolo de confiança que está associado à função e a um número de versão que identifica uma versão específica da função a ser chamada.
[0059] Em (506), o contrato inteligente recebe resultado(s). Por exemplo, o (412) pode fornecer o resultado da função (424), tal como um número aleatório determinado pela função de número aleatório. Em (508), o contrato inteligente conclui a transação com base no(s) resultado(s). Como um exemplo, após o número aleatório ser recebido, o contrato inteligente (406) pode completar a operação de número aleatório que foi solicitada pelo usuário. Em (510), uma transação é gravada no protocolo de confiança. Por exemplo, a transação (428) pode ser registrada, atualizando as estatísticas que indicam que a função de número aleatório foi usada outra vez.
[0060] As características descritas podem ser implementadas em circuitos eletrônicos digitais ou em hardware de computador, firmware, software ou em combinações dos mesmos. O aparelho pode ser implementado em um produto de programa de computador tangivelmente incorporado em um veículo de informação (por exemplo, em um dispositivo de armazenamento legível por máquina) para realização por um processador programável; e as etapas do método podem ser realizadas por um processador programável executando um programa de instruções para executar funções das realizações descritas operando nos dados de entrada e gerando a saída. As características descritas podem ser implementadas vantajosamente em um ou mais programas de
Petição 870190056712, de 19/06/2019, pág. 29/45
22/24 computador que são executáveis em um sistema programável incluindo pelo menos um processador programável acoplado para receber dados e instruções de, e para transmitir dados e instruções a, um sistema de armazenamento de dados, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída. Um programa de computador é um conjunto de instruções que podem ser usados, direta ou indiretamente, em um computador para realizar uma determinada atividade ou obter um certo resultado. Um programa de computador pode ser escrito em qualquer forma de linguagem de programação, incluindo idiomas compilados ou interpretados, e pode ser implementado de qualquer forma, incluindo como um programa independente ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação.
[0061] Processadores adequados para a realização de um programa de instruções incluem, a título de exemplo, microprocessadores de uso geral e especial, e o único processador ou um de múltiplos processadores de qualquer tipo de computador. Geralmente, um processador receberá instruções e dados de uma memória somente leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos de um computador podem incluir um processador para executar instruções e uma ou mais memórias para armazenar instruções e dados. Geralmente, um computador pode também incluir, ou está operacionalmente acoplado para se comunicar com, um ou mais dispositivos de armazenamento em massa para armazenar arquivos de dados; tais dispositivos incluem discos magnéticos, como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos ópticos. Dispositivos de armazenamento adequados para incorporar de forma tangível instruções e dados de programas de computador incluem todas as formas de memória não volátil, incluindo, por exemplo, dispositivos de memória semicondutores, tais como EPROM, EEPROM e dispositivos de memória flash; discos magnéticos,
Petição 870190056712, de 19/06/2019, pág. 30/45
23/24 como discos rígidos internos e discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser suplementados por, ou incorporados nos, circuitos integrados específicos de aplicativo (ASICs).
[0062] Para fornecer a interação com um usuário, as características podem ser implementadas em um computador com um dispositivo de exibição, como um monitor de tubo de raio catódico (CRT) ou de cristal líquido (LCD) para exibir informações ao usuário e um teclado e um dispositivo apontador, como um mouse ou uma trackball, pelos quais o usuário pode fornecer entrada para o computador.
[0063] As características podem ser implementadas em um sistema de computador que inclua um componente de painel administrativo (back-end), como um servidor de dados, ou que inclua um componente de middleware, como um servidor de aplicativos ou um servidor da Internet, ou que inclua um componente de interface de interação com o usuário (front-end), como um computador cliente com uma interface gráfica do usuário ou um navegador da Internet, ou qualquer combinação deles. Os componentes do sistema podem ser conectados por qualquer forma ou meio de comunicação de dados digitais, como uma rede de comunicação. Exemplos de redes de comunicação incluem, por exemplo, uma rede de área local (LAN), uma rede de longa distância (WAN) e os computadores e redes que formam a Internet.
[0064] O sistema de computador pode incluir clientes e servidores. Um cliente e um servidor geralmente são remotos entre si e geralmente interagem através de uma rede, como a descrita. A relação de cliente e servidor surge em virtude de programas de computador em realização nos respectivos computadores e tendo um relacionamento cliente-servidor entre si.
[0065] Além disso, os fluxos lógicos representados nas figuras
Petição 870190056712, de 19/06/2019, pág. 31/45
24/24 não exigem a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejados. Além disso, outras etapas podem ser fornecidas, ou etapas podem ser eliminadas, dos fluxos descritos, e outros componentes podem ser adicionados ou removidos dos sistemas descritos. Por conseguinte, outras realizações estão dentro do escopo das reivindicações seguintes.
[0066] Um certo número de realizações do presente relatório descritivo foi descrito. No entanto, será entendido que várias modificações podem ser feitas sem se afastar do escopo do presente relatório descritivo. Por conseguinte, outras realizações estão dentro do escopo das seguintes reivindicações.

Claims (24)

  1. Reivindicações
    1. MÉTODO IMPLEMENTADO POR COMPUTADOR para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), o método sendo executado por um ou mais processadores, e caracterizado pelo fato de que compreende as etapas de:
    receber, a partir de um contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar uma primeira função, a primeira chamada de função compreendendo dados para execução da primeira função;
    transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função a um primeiro componente de função, o primeiro componente de função executando a primeira função com base nos dados da primeira chamada de função;
    receber, por meio do primeiro controlador de função (314), uma primeira função resultante do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado da função para o contrato inteligente.
  2. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira chamada de função compreende ainda um endereço da primeira função e um identificador de versão da primeira função.
  3. 3. MÉTODO, de acordo com a reivindicação 2, caracterizado pelo fato de que o identificador de versão é nulo, indicando que uma versão mais recente da primeira função deve ser executada.
  4. 4. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda a atualização, por meio do primeiro controlador de função (314), estatísticas associadas com uma versão da
    Petição 870190056712, de 19/06/2019, pág. 33/45
    2/7 primeira função que foi executada em resposta à primeira chamada de função.
  5. 5. MÉTODO, de acordo com a reivindicação 4, caracterizado pelo fato de que as estatísticas indicam um número de vezes que cada versão de uma primeira função foi executada.
  6. 6. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda as etapas de:
    receber, de um contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função, a segunda chamada de função compreendendo dados para execução da segunda função, em que a segunda função é diferente da primeira função, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314);
    transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para um segundo componente de função, o segundo componente de função executando a segunda função com base nos dados da segunda chamada de função, em que o segundo componente de função é diferente do primeiro componente de função;
    receber, por meio do segundo controlador de função (414), um resultado da segunda função do segundo componente de função; e fornecer, por meio do segundo controlador de função (414), o segundo resultado da função ao contrato inteligente.
  7. 7. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira função e a segunda função são fornecidas por provedores (310) diferentes.
  8. 8. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo fato de que o contrato inteligente (302, 406) executa uma transação com base nos resultados da função, sendo a transação gravada dentro de uma
    Petição 870190056712, de 19/06/2019, pág. 34/45
    3/7 cadeia de blocos da rede de protocolo de confiança (102, 212).
  9. 9. MEIO LEGÍVEL POR COMPUTADOR, caracterizados pelo fato de que são codificados com instruções que, quando executados por um ou mais computadores, permitem que um ou mais computadores executem operações para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), as operações compreendendo:
    receber, a partir de um contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar uma primeira função, a primeira chamada de função compreendendo dados para execução da primeira função;
    transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função a um primeiro componente de função, o primeiro componente de função executando a primeira função com base nos dados da primeira chamada de função;
    receber, por meio do primeiro controlador de função (314), uma primeira função resultante do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado da função para o contrato inteligente (302, 406).
  10. 10. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 9, caracterizado pelo fato de que a primeira chamada de função compreende ainda um endereço da primeira função e um identificador de versão da primeira função.
  11. 11. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 10, caracterizado pelo fato de que o identificador de versão é nulo indicando que uma versão mais recente da primeira função deve ser executada.
    Petição 870190056712, de 19/06/2019, pág. 35/45
    4/7
  12. 12. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda a atualização, por meio do primeiro controlador de função (314), das estatísticas associadas a uma versão da primeira função que foi executada em resposta à primeira chamada de função.
  13. 13. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 12, caracterizado pelo fato de que as estatísticas indicam um número de vezes que cada versão de uma primeira função foi executada.
  14. 14. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 9, caracterizado pelo fato de que as operações compreendem ainda:
    receber, de um contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função, a segunda chamada de função compreendendo dados para execução da segunda função, em que a segunda função é diferente da primeira função, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314);
    transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para um segundo componente de função, o segundo componente de função executando a segunda função com base nos dados da segunda chamada de função, em que o segundo componente de função é diferente do primeiro componente de função;
    receber, por meio do segundo controlador de função (414), um resultado da segunda função do segundo componente de função; e fornecer, por meio do segundo controlador de função (414), o segundo resultado da função ao contrato inteligente (302, 406).
  15. 15. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a
    Petição 870190056712, de 19/06/2019, pág. 36/45
    5/7 reivindicação 14, caracterizado pelo fato de que a primeira função e a segunda função são fornecidas por provedores (310) diferentes.
  16. 16. MEIO LEGÍVEL POR COMPUTADOR, de acordo com a reivindicação 9, caracterizado pelo fato de que o contrato inteligente (302, 406) executa uma transação com base nos resultados da função, a transação sendo gravada dentro de uma cadeia de blocos da rede de protocolo de confiança (102, 212).
  17. 17. SISTEMA PARA IMPLEMENTAR UM MÉTODO, caracterizado pelo fato de que compreende:
    um ou mais computadores; e uma ou mais memórias legíveis por computador acopladas a um ou mais computadores e configuradas com instruções executáveis por um ou mais computadores para realizar operações para fornecer uma plataforma de funções como serviço (FaaS) dentro de uma rede de protocolo de confiança (102, 212), as operações compreendendo:
    receber, a partir de um contrato inteligente (302, 406), e por meio de um primeiro controlador de função (314) que executa dentro da rede de protocolo de confiança (102, 212), uma primeira chamada de função para executar uma primeira função, a primeira chamada de função compreendendo dados para execução da primeira função;
    transmitir, por meio do primeiro controlador de função (314), os dados da primeira chamada de função a um primeiro componente de função, o primeiro componente de função executando a primeira função com base nos dados da primeira chamada de função;
    receber, por meio do primeiro controlador de função (314), uma primeira função resultante do primeiro componente de função; e fornecer, por meio do primeiro controlador de função (314), o primeiro resultado da função para o contrato inteligente (302, 406).
    Petição 870190056712, de 19/06/2019, pág. 37/45
    6/7
  18. 18. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo fato de que a primeira chamada de função compreende ainda um endereço da primeira função e um identificador da versão da primeira função.
  19. 19. SISTEMA, de acordo com a reivindicação 18, caracterizado pelo fato de que o identificador de versão é nulo, indicando que uma versão mais recente da primeira função é para ser executado.
  20. 20. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo fato de que as operações compreendem ainda a atualização, por meio do primeiro controlador de função (314), de estatísticas associadas com uma versão da primeira função que foi executada em resposta à primeira chamada de função.
  21. 21. SISTEMA, de acordo a reivindicação 20, caracterizado pelo fato de que as estatísticas indicam um número de vezes que cada versão de uma primeira função foi executada.
  22. 22. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo fato de que as operações compreendem ainda:
    receber, de um contrato inteligente (302, 406), e por meio de um segundo controlador de função (414) executando dentro da rede de protocolo de confiança (102, 212), uma segunda chamada de função para executar uma segunda função, a segunda chamada de função compreendendo dados para execução da segunda função, em que a segunda função é diferente da primeira função, e em que o segundo controlador de função (414) é diferente do primeiro controlador de função (314);
    transmitir, por meio do segundo controlador de função (414), os dados da segunda chamada de função para um segundo componente de função, o segundo componente de função executando a segunda função com base nos dados da segunda chamada de função, em que o segundo
    Petição 870190056712, de 19/06/2019, pág. 38/45
    7/7 componente de função é diferente do primeiro componente de função;
    receber, por meio do segundo controlador de função (414), um resultado da segunda função do segundo componente de função; e fornecer, por meio do segundo controlador de função (414), o segundo resultado da função ao contrato inteligente (302, 406).
  23. 23. SISTEMA, de acordo com a reivindicação 22, caracterizado pelo fato de que a primeira função e a segunda função são fornecidas por diferentes fornecedores.
  24. 24. SISTEMA, de acordo a reivindicação 17, caracterizado pelo fato de que o contrato inteligente (302, 406) executa uma transação com base nos resultados da função, sendo a transação gravada dentro de uma cadeia de blocos da rede de protocolo de confiança (102, 212).
BR112019007939-4A 2018-11-27 2018-11-27 Método implementado por computador, meio legível por computador e sistema para implementar um método BR112019007939B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117637 WO2019072282A2 (en) 2018-11-27 2018-11-27 FUNCTION-AS-A-SERVICE PLATFORM (FAAS) IN BLOCK CHAIN NETWORKS

Publications (2)

Publication Number Publication Date
BR112019007939A2 true BR112019007939A2 (pt) 2019-11-12
BR112019007939B1 BR112019007939B1 (pt) 2021-09-21

Family

ID=66100148

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019007939-4A BR112019007939B1 (pt) 2018-11-27 2018-11-27 Método implementado por computador, meio legível por computador e sistema para implementar um método

Country Status (16)

Country Link
US (2) US10671380B2 (pt)
EP (1) EP3552166B1 (pt)
JP (1) JP6756914B2 (pt)
KR (1) KR102193533B1 (pt)
CN (1) CN110622192B (pt)
AU (1) AU2018348323C1 (pt)
BR (1) BR112019007939B1 (pt)
CA (1) CA3041223C (pt)
ES (1) ES2880455T3 (pt)
MX (1) MX2019004667A (pt)
PH (1) PH12019500872B1 (pt)
PL (1) PL3552166T3 (pt)
RU (1) RU2744322C2 (pt)
SG (1) SG11201903493YA (pt)
TW (1) TWI706647B (pt)
WO (1) WO2019072282A2 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6756914B2 (ja) 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) * 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
US10841153B2 (en) * 2018-12-04 2020-11-17 Bank Of America Corporation Distributed ledger technology network provisioner
FR3094521A1 (fr) * 2019-03-29 2020-10-02 Orange Procédés et dispositifs permettant de prouver la connaissance d’une donnée par un utilisateur d’une chaîne de blocs
CN110704063B (zh) * 2019-09-30 2021-09-07 支付宝(杭州)信息技术有限公司 编译和执行智能合约的方法及装置
CN111158645B (zh) * 2019-12-10 2022-09-20 杭州中天微系统有限公司 提供集成开发环境的系统和方法
TWI804728B (zh) * 2020-05-15 2023-06-11 天宿智能科技股份有限公司 基於區塊鏈之資產動態價值管理系統及其方法
US11948010B2 (en) 2020-10-12 2024-04-02 International Business Machines Corporation Tag-driven scheduling of computing resources for function execution
CN112804359B (zh) * 2021-03-30 2021-07-06 支付宝(杭州)信息技术有限公司 提供跨链消息的方法和装置
CN113472512A (zh) * 2021-06-10 2021-10-01 东软集团股份有限公司 智能合约执行方法、装置、存储介质及电子设备
CN113542435B (zh) * 2021-09-15 2021-12-14 支付宝(杭州)信息技术有限公司 一种用户服务使用方法及装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US7844574B2 (en) * 2008-04-16 2010-11-30 International Business Machines Corporation Systems, methods and computer program products for automatic network-based persistent XML storage and management
JP6374666B2 (ja) 2014-02-19 2018-08-15 キヤノン株式会社 通信装置およびその制御方法、ならびにプログラム
JP6037460B2 (ja) * 2014-04-14 2016-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation サービス提供装置、プログラム、及び、方法
US10033702B2 (en) * 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
JP6775013B2 (ja) 2015-10-23 2020-10-28 オラクル・インターナショナル・コーポレイション データテーブルを共有するためのサポートを有する構成の自己記述
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
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
EP3394818A4 (en) * 2015-12-21 2019-08-14 Kochava Inc. AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS
US9898260B2 (en) 2015-12-28 2018-02-20 Samsung Electronics Co., Ltd. Adaptive function-based dynamic application extension framework
EP3193299A1 (en) * 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
JP7019697B2 (ja) 2016-08-30 2022-02-15 コモンウェルス サイエンティフィック アンド インダストリアル リサーチ オーガナイゼーション ブロックチェーン上の動的アクセス制御
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts
JP6646764B2 (ja) * 2016-10-28 2020-02-14 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンを介して決定性有限オートマン(dfa)を実施するシステム及び方法
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
RU2658784C1 (ru) * 2017-03-23 2018-06-22 Общество с ограниченной ответственностью "БУБУКА" Способ и система контроля за воспроизведением медиа-контента, включающего объекты интеллектуальных прав
CN107038242B (zh) * 2017-04-24 2020-02-07 杭州趣链科技有限公司 一种面向区块链全局智能合约业务数据解析方法
US11165589B2 (en) * 2017-05-11 2021-11-02 Shapeshift Ag Trusted agent blockchain oracle
CN107220767A (zh) * 2017-05-26 2017-09-29 中山市博林树投资管理有限公司 一种虚拟化资源池环境下的资源共享系统
WO2019033074A1 (en) * 2017-08-11 2019-02-14 Dragonchain, Inc. SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS
JP6987594B2 (ja) * 2017-10-16 2022-01-05 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置
US10095888B1 (en) * 2018-06-04 2018-10-09 Capital One Services, Llc Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
CN108717466A (zh) * 2018-06-05 2018-10-30 中国平安人寿保险股份有限公司 征信数据存储方法、装置、计算机设备及存储介质
US10915366B2 (en) * 2018-09-28 2021-02-09 Intel Corporation Secure edge-cloud function as a service
JP6756914B2 (ja) 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンネットワーク内のファンクションアズアサービス(FaaS)プラットフォーム

Also Published As

Publication number Publication date
JP6756914B2 (ja) 2020-09-16
EP3552166B1 (en) 2021-05-05
TW202021311A (zh) 2020-06-01
KR102193533B1 (ko) 2020-12-23
PH12019500872A1 (en) 2019-12-02
US20190244294A1 (en) 2019-08-08
CA3041223C (en) 2021-07-13
TWI706647B (zh) 2020-10-01
US20200225937A1 (en) 2020-07-16
WO2019072282A3 (en) 2019-10-03
RU2019111902A (ru) 2020-10-19
PL3552166T3 (pl) 2021-10-25
US10824419B2 (en) 2020-11-03
CN110622192A (zh) 2019-12-27
US10671380B2 (en) 2020-06-02
RU2019111902A3 (pt) 2020-10-19
PH12019500872B1 (en) 2019-12-02
AU2018348323B2 (en) 2020-11-05
ES2880455T3 (es) 2021-11-24
EP3552166A4 (en) 2020-01-22
RU2744322C2 (ru) 2021-03-05
MX2019004667A (es) 2019-08-21
CA3041223A1 (en) 2019-04-18
AU2018348323C1 (en) 2021-04-29
JP2020507140A (ja) 2020-03-05
AU2018348323A1 (en) 2020-06-11
WO2019072282A2 (en) 2019-04-18
BR112019007939B1 (pt) 2021-09-21
KR20200066255A (ko) 2020-06-09
CN110622192B (zh) 2023-07-14
SG11201903493YA (en) 2019-05-30
EP3552166A2 (en) 2019-10-16

Similar Documents

Publication Publication Date Title
BR112019007939A2 (pt) método implementado por computador, meio legível por computador e sistema para implementar um método
US11210203B2 (en) Testing platform for blockchain networks
US10594477B2 (en) Blockchain smart contract updates using decentralized decision
US11770238B2 (en) Decentralized computation system architecture based on node specialization
KR102206940B1 (ko) 스마트 계약을 사용하여 다자간 트랜잭션을 실행하는 방법
CN111213340B (zh) 选择用于密码功能的证明委托并使其安全
JP2022501711A (ja) マルチテナントブロックチェーンネットワークにおける軽量ノード
ES2880453T3 (es) Utilizar tabla de números de un solo uso para resolver fallas de transacciones concurrentes de cadena de bloques
Wang et al. MetaOJ: A massive distributed online judge system
US20240070166A1 (en) Minimizing read and update conflict errors in blockchains

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)

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.