Blockchain do quorum
O Quorum é um blockchain Ethereum “focado na empresa” que tenta melhorar a tecnologia do blockchain. Embora o Blockchain de primeira geração forneça escalabilidade, redes ponto a ponto, interoperabilidade, transparência e outros recursos, ele ainda não é perfeito. Pesquisadores de todo o mundo estão trabalhando muito para melhorar o estado do blockchain. O Quorum é uma ideia do JP Morgan, que se desenvolveu para promover a tecnologia de blockchain no setor financeiro.
Necessidade de Quorum
Atualmente, as informações do setor financeiro são tratadas por mais de uma organização, mas ainda assim, o setor financeiro sofre de falta de transparência, controle de informações e segurança. O blockchain tradicional também não atende aos requisitos do setor financeiro, mesmo que forneça rastreabilidade e imutabilidade. É necessário um sistema que forneça controle privado sobre o blockchain por meio de automação que seja customizável de acordo com as necessidades.
Características do Quorum
- Desempenho: Quorum é mais rápido que Bitcoin e Ethereum. Realiza mais de 150 transações por segundo. Isso se deve ao mecanismo de consenso simples usado pelo quorum. Por padrão, o quorum usa o consenso RAFT para tolerância a falhas e o consenso IBFT para tolerância a falhas Bizantinas, que é bem mais rápido do que o consenso de prova de trabalho do Ethereum.
- Gerenciamento de permissão: limita a participação a um conjunto conhecido de nós que devem ser provisionados para fazer parte da rede do blockchain, portanto, não é aberto a todos e implementado apenas entre participantes que são pré-aprovados por uma autoridade designada
- Eliminação de preços de transação: eliminou o conceito de adicionar custo a uma transação usando gás. Não há necessidade de custos de criptomoeda associados às transações em execução na rede de quorum. O código do Quorum foi inicialmente bifurcado do Ethereum, o uso do próprio gás existe, mas é definido como zero.
- Melhor privacidade: o Quorum oferece transações públicas e privadas na rede. As transações abertas são semelhantes ao Ethereum, enquanto as transações privadas não são expostas ao público. Ele usa a tecnologia Constellation que criptografa mensagens específicas em um local chamado enclave e armazena informações sobre transações anteriores.
- Gerenciamento de ativos: permite que uma entidade crie, gerencie e distribua ativos digitais sem passar por terceiros. Isso dá ao proprietário autonomia sobre como gerenciar seus ativos.
- Código aberto: é um código aberto onde mais de 300 colaboradores estão ativos e trabalhando no desenvolvimento do Quorum.
Vantagens do Quorum
- Algoritmo de consenso: usa o algoritmo de consenso “Cadeia de quorum” que se baseia na votação por maioria. No entanto, nem todos os nós são capazes de votar. Apenas alguns nós selecionados têm a capacidade de votar no processo de votação. Isso ajuda na verificação da transação. O Quorum usa os modelos Istanbul BFT e Raft para melhor tolerância a falhas. Apenas participantes selecionados fazem parte da rede.
- Contratos inteligentes híbridos: os contratos inteligentes são definidos como privados e públicos e a solidez é usada para programá-los. Depois que um contrato inteligente é definido como privado, não pode ser transformado em público. Da mesma forma, os contratos públicos inteligentes não podem ser alterados para privados, o que os torna mais seguros.
- Desempenho: o quorum oferece maior velocidade de transação, pois geralmente são usados contratos privados e os contratos privados funcionam melhor do que os públicos. Foi testado que o desempenho da jangada é melhor do que o Istanbul BFT.
Desvantagens do Quorum
- Escalabilidade: a abordagem baseada em canal do Quorum para privacidade apresenta desafios para privacidade e escalabilidade à medida que os casos de uso se tornam mais complexos.
- Falta de criptoeconomia : o Quorum não requer uma criptomoeda embutida porque o consenso não é alcançado por meio da mineração. Não é possível desenvolver uma moeda nativa ou um token digital com o Quorum.
- Falta de suporte: Há menos desenvolvedores e colaboradores para o Quorum, devido ao qual a ajuda e o suporte são menores.
Arquitetura de Quorum
Vamos discutir os detalhes arquitetônicos do Quorum Blockchain.
- Nó de quorum: é uma ferramenta de linha de comando que é uma bifurcação leve de Geth. Ele é configurado apenas para permitir a conexão de nós de permissão, eliminando a conectividade P2P.
- Constelação: Manteve o gerenciador de transações e o enclave. Ele garante que as informações adicionadas ao blockchain permaneçam seguras de todas as maneiras possíveis.
- Transaction Manager: Cuida da privacidade da transação e garante que os dados da transação sejam criptografados durante o processo, armazenando o acesso permitido e outros dados importantes para facilitar as transações.
- Enclave: fornece diferentes técnicas criptográficas, como autenticação de participante, histórico de transações e outras funções-chave para garantir que todas as operações sejam realizadas de maneira ideal, com foco na escalabilidade.
Baseado em projeto no Quorum
- Alastria: Um consórcio espanhol multissetorial. Promove o estabelecimento de infraestruturas semipúblicas DLT. O objetivo era melhorar os serviços na Espanha e funcionará de acordo com os regulamentos europeus.
- VAKT: fornece um ecossistema digital que permite aos usuários fazer o processamento físico pós-negociação. Pode ser denominado como uma "plataforma de gerenciamento pós-negociação". Ao fazer isso, ele atua como uma fonte única para o ciclo de vida do comércio, que pode ser verificado quando necessário. Abrange o ciclo de vida do comércio de ponta a ponta, ao contrário de outras soluções que tentam resolver apenas uma determinada parte e não todo o problema.
- Kimlic: É um KYC no blockchain. É uma plataforma de validação de identidade descentralizada. Ajuda as startups a adicionar usuários instantaneamente às suas trocas Dapps e criptográficas. Isso significa que o usuário só precisa preencher o KYC uma vez e, em seguida, ele pode ser usado em diferentes plataformas.
- Blockoneiq-quorum: É um provedor de dados para o blockchain Quorum, uma estrutura Oracle que ajudaria o DLT a usar conteúdo assinado que é gerado e capturado usando contratos inteligentes da Thomson Reuters.
- Komgo: É um projeto interessante que ajuda a integração da rede financeira com outros usuários e redes.
Aplicações do Quorum Blockchain
- Rastreamento de vacinação: uma das grandes características do Quorum é manter registros que só podem ser acessados por várias pessoas. Uma equipe da Nigéria com as Nações Unidas descobriu uma maneira de usar o Quorum para criar um banco de dados seguro para vacinações com blockTEST. Este banco de dados mostra registros de crianças que receberam ou ainda não foram vacinadas.
- Rastreamento da cadeia de suprimentos: vários setores e empresas estão usando o Quorum para rastrear o fornecimento de seus produtos. Por exemplo, a Starbucks usa o recurso da Microsoft, Azure, para rastrear a produção de café em várias partes.
- Blockchains privados personalizados: qualquer instituição financeira privada pode aproveitar ao máximo os blockchains do Quorum, como bancos ou seguradoras. A natureza permitida ajuda o Quorum a ser usado em todos os tipos de configurações. A capacidade de personalizar desde o início é o que o torna um candidato ideal.
Implementação de Quorum Blockchain usando Docker no Google Cloud Shell
Etapa 1: Abra o Google Cloud Shell no modo de editor fornecido no console do desenvolvedor do Google.
Etapa 2: instale o Docker .
Etapa 3: Clone o repositório executando esses comandos e, em seguida, vá para a pasta de exemplos de quorum.
$ git clone https://github.com/jpmorganchase/quorum-examples $ cd quorum-examples $ PRIVATE_CONFIG=ignore QUORUM_CONSENSUS=raft docker-compose up -d
Etapa 4: depois de executar o comando acima, existem 7 contêineres em execução com 7 nós e 7 gerenciadores de transações. São necessários pelo menos 3 nós. Portanto, abra 3 terminais e ative os 3 nós executando estes comandos:
For node1: docker exec -it quorum-examples_node1_1 geth attach /qdata/dd/geth.ipc eth.accounts eth.getBalance("0xed9d02e382b34818e88b88a309c7fe71e65f419d")
For node 4: docker exec -it quorum-examples_node7_1 geth attach /qdata/dd/geth.ipc eth.accounts eth.getBalance("0xcc71c7546429a13796cf1bf9228bff213e7ae9cc")
For node 7: docker exec -it quorum-examples_node4_1 geth attach /qdata/dd/geth.ipc eth.accounts eth.getBalance("0x9186eb3d20cbd1f5f992a950d808c4495153abd5")
Etapa 5: crie um contrato inteligente (código de amostra), copie o código e cole-o em qualquer console geth para gerar o endereço do contrato:
a = eth.accounts[0] web3.eth.defaultAccount = a; // abi and bytecode generated from simplestorage.sol: // > solcjs --bin --abi simplestorage.sol var abi = [{"constant":true,"inputs":[],"name":"storedData","outputs": [{"name":"","type":"uint256"}],"payable":false,"type":"function"}, {"constant":false,"inputs":[{"name":"x","type":"uint256"}],"name":"set", "outputs":[],"payable":false,"type":"function"}, {"constant":true,"inputs":[],"name":"get","outputs": [{"name":"retVal","type":"uint256"}],"payable":false,"type":"function"}, {"inputs":[{"name":"initVal","type":"uint256"}],"payable":false,"type":"constructor"}]; var bytecode = "0x6060604052341561000f57600080fd5b604051602080610149833981016040528080519060200190919050505b806000819055505b505b610104806100456000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632a1afcd914605157806360fe47b11460775780636d4ce63c146097575b600080fd5b3415605b57600080fd5b606160bd565b6040518082815260200191505060405180910390f35b3415608157600080fd5b6095600480803590602001909190505060c3565b005b341560a157600080fd5b60a760ce565b6040518082815260200191505060405180910390f35b60005481565b806000819055505b50565b6000805490505b905600a165627a7a72305820d5851baab720bba574474de3d09dbeaabc674a15f4dd93b974908476542c23f00029"; var simpleContract = web3.eth.contract(abi); var simple = simpleContract.new(40002, {from:web3.eth.accounts[0], data: bytecode, gas: 0x47b760}, function(e, contract){ if (e) { console.log("err creating contract", e); } else { if (!contract.address) { console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined..."); } else { console.log("Contract mined! Address: " + contract.address); console.log(contract); } } });
Etapa 6: Uma vez que o hash da transação é gerado, é possível obter o endereço do contrato usando este comando:
eth.getTransactionReceipt(mention the txHash here as shown in picture)
Etapa 7: implantar o endereço do contrato.
var address = # mention your contract address here var abi = [{"constant":true,"inputs":[],"name":"storedData","outputs": [{"name":"","type":"uint256"}],"payable":false,"type":"function"}, {"constant":false,"inputs":[{"name":"x","type":"uint256"}], "name":"set","outputs":[],"payable":false,"type":"function"}, {"constant":true,"inputs":[],"name":"get","outputs": [{"name":"retVal","type":"uint256"}],"payable":false,"type":"function"}, {"inputs":[{"name":"initVal","type":"uint256"}],"type":"constructor"}]; var private = eth.contract(abi).at(address)
Saída: aqui o nó 1 fez uma transação privada para o nó 7 e o nó 4 está completamente isolado deste estado de transação, portanto, apenas o nó 1 e o nó 7 são capazes de ver o estado da transação.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva