blog > Serviços

Smartcontract: Como aplica-lo utilizando Blockchain

1 de novembro de 2019 Por Capital Digital Aberto
Smartcontract

Como montar um smartcontract em uma blockchain

Nós já falamos sobre as vantagens de ser utilizar um SmartContract e como eles oferecem  valor e oportunidades de novos serviços e produtos.

Agora vamos falar sobre como se aplicar um contrato inteligente através do sistema de encadeamento Blockchain.

Através

Mais um storytalk de exemplo

Voltando à nossa Festa Junina, que agora está no seu auge, já estamos com quase 2000 condôminos e convidados.

Por incrível que pareça todos querem comprar pipoca doce tamanho médio.

É um sucesso de vendas, porém só foram criados 50 tickets. Esse é o ponto mais perigoso da nossa operação. Emitimos menos tickets do que a demanda real por pipocas e isso gera um problema bem grande.

Como o gargalo operacional do processo de compra foi otimizado de maneira incorreta, agora gerou um problema no nosso operacional financeiro.

O síndico está tendo que a cada 10 minutos, sair do controle do caixa para a barraca de pipocas, recolher os tickets para serem revendidos no caixa para outros clientes.

Geralmente, sem uma metodologia extremamente eficiente e organização, no final da festa vamos encontrar alguns prováveis cenários.

1) O valor arrecadado é menor do que o número de vezes que o ticket circulou. Significa que está faltando dinheiro. Para onde foi?

2) O valor arrecadado é maior do que o número de tickets que circulou. // Isso geralmente é o caso visto que é uma festa e tickets são extraviados com o vento, água ou até mesmo alguém que esqueceu o ticket no bolso e foi embora ou esqueceu de trocar.

3) O valor arrecadado corresponde exatamente ao número de vezes que o ticket circulou. // Melhor manter o síndico e a secretária no caixa.

4) O número de tickets é maior do que o de tickets emitidos e existem tickets com números repetidos. // Você acaba de entrar para a estatística de operações financeiras que foram fraudadas.

Alguém foi mais esperto do que você.

Nesse ponto é realmente importante não só ter uma estratégia bem definida, metodologia e organização. Você realmente precisa estar resguardado para eventuais cenários de fraude na sua Festa junina.

Analisando e corrigindo

Então já que ano que vem você pode estar mais bem preparado, psicologicamente e tecnologicamente, vamos agora aplicar alguns conceitos simples porém muito poderosos.

Vamos aplicar uma metodologia simples, utilizando blockchain e contratos inteligentes para fazer sua próxima festa junina sem fraudes.

Analisando para poder aplicar o Smartcontract

Vamos recapitular os principais pontos que você foi prejudicado na última festa, para que possamos ter um modelo eficiente e seguro.

1) O sistema de tickets, resolveu o problema do troco e deu mais agilidade ao processo. Vamos manter.

2) Quando o ticket é entregue para o operador da barraca de pipoca, ele deve perder sua validade para que outra pessoa não possa utilizar. Você poderia furar o ticket ou rasgar, mas estamos em 2019 e falando sobre tecnologias disruptivas. Vamos pensar grande para executar de forma segura algo simples e pequeno.

3) Não pode existir a possibilidade de outra pessoa criar tickets iguais ao nosso e fraudar nossa festa com ticket falso.

4) Quando um ticket for comprado, o saldo enviado pelo comprador deve ser mantido de forma segura e o valor arrecadado deve ser facilmente contabilizado para que os condôminos possam ter com transparência acesso às informações.

5) Caso o número de vendas seja maior do que o número de tickets, você não poderá utilizar mais os tickets pois eles estarão furados ou rasgados. Então você precisa de um sistema dinâmico de venda de tickets, que possa emitir mais ou sob demanda, sem ter que produzir muito mais tickets do que precisa.

Iremos resolver isso com duas ferramentas.

Vamos utilizar uma blockchain pública que aceita o uso de Smartcontract e um aplicativo no formato de carteiras, para gerenciar os saldos e tickets.

Seguindo nossa estratégia então vamos mapear nosso processo novamente, contemplando a tecnologia e aplicação de contratos inteligentes para facilitar nossa vida.

Caipira Chain: A Blockchain mais disruptiva do universo.

Como estamos entrando agora no mundo da tecnologia e Startups, precisamos inflar um pouco nosso Ego dizendo que temos o produto mais F*#$% do mundo.

Até mandei fazer camisas, adesivos e cartões novos para promover nossa ferramenta para a próxima festa.

O sistema de tickets da última festa melhorou nossa eficiência, tivemos menos fraude e conseguimos agora contratar uma empresa de TI para melhorar nossas atividades sociais. Yes, nós vamos fazer um aplicativo mobile do condomínio para organizar nossas festa.

Primeiro passo é definir o escopo do nosso projeto para entender aonde vamos aplicar blockchain e como vamos automatizar nossos contratos.

Como já analisamos nos exemplos anteriores já estamos quase especialistas em blockchain para dar consultorias, vamos definir o escopo do nosso projeto mapeando os processos.

1. O responsável pela festa irá criar um sistema de emissão de tickets a medida de reais começam a ser depositados e entregues.

2. O usuário deve poder armazenar seus tickets para utilizar nas barracas

3. As barracas devem aceitar os tickets

4. O usuário deve poder resgatar seus tickets caso não utilize todos e troque por reais.

Criando a Caipira Chain Para criar um sistema de tickets em blockchain, basta seguir um padrão específico.

Quando um usuário comprar um ticket, iremos criar um ticket novo, único que pode ser trocado. Para isso vamos definir a estrutura do ticket como fazemos na vida real.

O que o Ticket precisar ter

● Ticket possui um número sequencial único.

● Ticket possui um produto correspondente.

● Ticket pertence à um emissor.

● Ticket pode ser transferido entre partes.

● Controle se foi utilizado

Podemos perceber que o ticket agora é algo de outro universo. Veja que ele possui alguns atributos que fazem dele especial.

A estrutura do ticket

Vemos que esse ticket é parte da Caipira Chain e que ele corresponde ao número 1 de 2000 tickets totais emitidos, visto que na última festa tivemos 2.000 convidados, melhor não arriscar.

No centro vemos o produto correspondente que no caso é pipoca Doce tamanho médio.

Temos um circulo verde, que mostra que o ticket ainda não foi utilizado e allgo novo para a maioria das pessoas, no canto inferior esquerdo temos a sequência 1a2b3c4d e no canto direito a sequeência 2a3b4c5d.

O primeiro número vamos chamar de Origem que é uma característica gerada pelo Síndico na hora de criar a Caipira Chain. Todos os outros tickets, são gerados a partir desse número inicial seguindo uma sequência definida e que pode ser computada por questões de verificação ou auditoria.

Então a lógica é relativamente simples, temos um número origem e para cada novo número de ticket criado, utilizamos o número anterior como fonte para gerar o próximo número.

A prova de fraude

Da mesma forma que filhos herdam, características genéticas dos pais e podem ser identificados por uma comparação da sua sequência genética.

Os nossos tickets agora são todos filhos do Caipira Chain, que leva a assinatura do Síndico como a fonte para ser gerada o primeiro ticket.

Logo, todos os tickets que forem gerados, vão estar de uma certa forma amarrado em uma cadeia lógica de regras que não pode ser fraudada

Abaixo um esquema para simplificar esse entendimento e podermos seguir na criação de nosso App

Percebam que a ordem que vamos criar os tickets é muito similar a estrutura de heranças em uma linhagem genética.

O ticket PAI nesse caso gerado pelo síndico, como não tem um ticket anterior tem sua origem 0000000 e a primeira assinatura única 1a2b3c4d. Por sua vez o ticket número 1, recebe como origem a assinatura do ticket anterior, que nesse caso é a do síndico e gera sua própria assinatura utilizando a assinatura do síndico e sua numeração, gerando um identificador único.

Por sua vez, o ticket número 2, recebe como assinatura anterior a assinatura do ticket número 1 e repete esse processo até que chegue ao ticket número 2.000.

A imutabilidade da Blockchain e do Smartcontract

Talvez nesse exato momento você não compreenda como essa simples estratégia muda muitas coisas, mas é dessa forma que a blockchain funciona.

O encadeamento de informações cria a imutabilidade e isso nos traz total garantia de que tickets aleatórios não serão introduzidos no nosso sistema. Isso tras garantia de segurança para nosso Smartcontract.

Um ticket que não respeitar a ordem como as informações foram encadeadas, seria facilmente reconhecido e rejeitado pelo próprio sistema.

Sendo assim, conseguimos evitar um dos problemas que identificamos na nossa primeira festa.

Agora nosso ticket é único, por ser um sistema digital e único, terceiros não conseguem criar facilmente outros tickets. Depois que utilizados, iremos descartar de forma digital o nosso ticket para reduzir o consumo de papel. Fazemos isso mudando o círculo da cor verde para vermelho.

Seguindo adiante, já sentindo a empolgação de nossos futuros convidados quando começarem a utilizar a Caipira Chain e agora que já temos uma lógica de como vamos criar nossos tickets, precisamos voltar ao processo de compra de tickets e troca por pipoca utilizando nossa tecnologia.

Aplicando a nova ferramenta

Vamos revisar o processo já aplicando nossa nova ferramenta para ver se as coisas fazem sentido e se conseguimos identificar algum ponto de falha. Também, vamos otimizar o meio de pagamento.

Estaremos utilizando uma API da operadora de cartão de crédito para facilitar nossa vida e mostrar que somos feras da tecnologia agora.

Farei a jornada do nosso convidado como se fosse um próprio convidado chegando para a festa para ver se faz sentido e a lógica está correta.

  1. 1.O convidado chega na festa e identifica um Banner com nosso APP
  2. 2. Baixamos o APP e começamos o processo de identificação
  3. 3. Digitamos nossas informações básicas e cadastramos nosso cartão de crédito. // Conseguimos eliminar o síndico e a secretária da operação, diminuindo nosso risco de fraude e desvios. Diminuímos também nosso custo operacional.
  4. 4. Por questões de segurança vamos definir um PIN para utilizar o cartão dentro do nosso sistema
  5. 5. Já com o cartão cadastrado vou para o ticket de pipocas e adiciono 5 tickets de pipoca média doce ao nosso carrinho de compras.
  6. 6. Efetuo a compra inserindo o PIN e processando meu cartão.
  7. 7. Verifico que na minha carteira de tickets agora existem 5 tickets de pipoca doce média.
  8. 8. Utilizando o APP faço o pedido da Pipoca Doce Média e utilizo meus tickets como pagamento.
  9. 9. Verifico que o pedido foi efetuado e meus tickets agora estão todos marcados em vermelho.
  10. 10. Sou notificado que o pedido está a caminho e por geolocalização um Drone vem até mim e entrega as pipocas.
  11. 11. Automaticamente no aplicativo de todos, vemos que 5 tickets foram consumidos na festa e o valor arrecadado corresponde a R$5,00

Uma melhoria clara

Obviamente evoluímos um pouco, saímos de uma festa Junina cheia de problemas para uma Festa que entrega Pipoca Doce sem ter nenhuma pessoa envolvida no processo a não ser o consumidor. Isso chamamos de economia em tempo real e isso só é possível através do uso de Smartcontrat e blockchain.

Agora que já vimos o processo e o escopo do projeto está condizente com o que realmente queremos, hora de aplicar o Smartcontract.

Então, vamos elaborar o nosso contrato finalmente. Da mesma forma que criamos a estrutura do nosso ticket e do nosso app, vamos criar agora as estruturas dos contratos para automatizar nosso processo e termos segurança e transparência.

O CONTRATO

Geralmente nessa etapa, entram os contadores e advogados, mas estamos falando apenas em controlar nossa venda de pipoca para 2.000 pessoas em nossa festa junina.

Acredito que somos capazes de gerenciar isso apenas com o Juninho filho da nossa vizinha que é fera nos computadores e sabe programar.

Vamos utilizar contratos diferentes para cada etapa e depois vamos criar um contrato global com os outros contratos.

Dessa forma temos um pouco mais de flexibilidade para modificar a Caipira Chain para outras festas.

Quem sabe viramos um sucesso e resolvemos o problema de todos os pipoqueiros do Universo e vamos ganhar milhões…

Contrato 1: Emissão de Tickets

Vamos começar com a emissão de tickets, que é um ponto importante para termos controle das nossas vendas.

O primeiro passo é definir um emissor, que nesse caso é o nosso Condomínio Parque Futuro sendo representado pelo Síndico e o Tesoureiro.

Sendo assim ambos precisam ser identificados no contrato e terem a capacidade de comprovar que são proprietários da identidade.

Para isso vamos criar uma identidade virtual para cada um. Em sistemas de blockchain, uma identidade única pode ser definida pelo que chamamos de carteira ou wallet.

Uma carteira ou wallet possui alguns atributos:

1. Uma chave privada, que é uma sequência secreta utilizada para assinar mensagens. É muito parecido com seu certificado digital quando você assina de forma eletrônica em seu nome ou no nome de uma empresa no Brasil.

2. Uma chave pública, que é o endereço público da sua carteira, similar ao número da sua conta e agência do banco para receber algum depósito.

3. Uma assinatura, que é gerada a partir de uma informação fornecida ou gerada, que passa por um processo de encapsulamento pela sua chave privada, garantindo que quem assine algo, possa ser identificado posteriormente comprovando o poder de assinatura.

Criando a identidade virtual para o Smartcontract

Vamos então criar a identidade virtual do síndico e o tesoureiro, assim como o nosso condomínio para que ele possa efetivamente ser o gestor do contrato.

Para isso vamos pegar os nomes, CPF e CNPJ para criar uma representação virtual das partes a serem colocadas no contrato.

Condomínio Parque Futuro CNPJ: 12345678000112 Chave Pública: 111aaa222bbb // Identidade Pública do Condomínio Chave Privada: *parquinho*2019 // Parecido com sua senha de acesso Assinatura: 222bbb333ccc444 // Assinatura gerada quando você usa sua chave privada

Síndico: Genésio Inovador da Silva CPF: 12345678912 Chave Pública: 1a2b3c4d Chave Privada: 123GenesioQuerido456 Assinatura: 333cccc444hhhhh

Tesoureiro: Pepolésio Vieira CPF: 11133344455 Chave Pública: 5f6g7h8j Chave Privada: 456Pepolesio789 Assinatura: 777kkk555999a

Então nosso contrato inteligente, começa definindo a estrutura de emissão de tickets e o emissor.

● # INICIANDO EMISSÃO

● Título: Caipira Chain // Como chamamos nosso contrato.

● Emissor: 111aaa222bbb // Chave pública que identifica o Condomínio Parque do Futuro.

● Síndico: 1a2b3c4d // Chave pública que identifica o síndico.

● Tesoureiro: 5f6g7h8j // Chave pública que identifica o tesoureiro.

● Total: 2000 // Número de tickets a serem emitidos.

● Ação => Emitir Total de Tickets; // Executa nosso contrato e emite 2.000 tickets

● Ação => Enviar tickets para o Condomínio Parque Futuro;

● Status: OK! Enviado 2.000 tickets para 111aaa222bbb // Confirmação do nosso sistema de que o endereço do Parque do Futuro recebeu todos os tickets emitidos

● # FIM DA EMISSÃO

Agora que eles vão ser emitidos vamos definir a primeira transação utilizando os tickets que deve enviar todos os tickets enviados de posse do responsável pela custódia dos tickets até que eles sejam utilizados, nesse caso ao Condomínio Parque do futuro e que pode ser apenas modificada com a autorização do Síndico e do Tesoureiro.

Um permuta ocorre em toda transação

Já temos os tickets emitidos, então o próximo passo é permitir que quando os convidados queiram Pipoca, vão precisar fazer a troca do saldo do cartão de crédito por tickets e por sua vez comprar quando quiserem a Pipoca Doce.

Como estamos falando de contratos, vamos utilizar um contrato de Permuta como estrutura de base para a operação de compra da pipoca, pois estamos na verdade permutando o crédito que temos no cartão temporariamente para um ticket que é um contrato futuro de permuta do ticket por pipoca quando o convidado quiser.

A estrutura de um contrato de permuta é muito simples.

Temos as partes e ambas trocam algo mediante um acordo. Sendo validada a troca, um comprovante de que a troca foi feita é emitido e assinado por ambas as partes.

Aplicando conceitos blockchain

Vamos então fazer novamente, o mapeamento do processo de compra da pipoca, agora utilizando nossos conceitos blockchain aplicada e contrato inteligentes.

1. O contrato é estabelecido e formalizado.

2. As partes são identificadas.

3. O conteúdo da permuta é descrito.

4. As regras e prazos são estabelecidos.

5. Efetuando a permuta um recibo é emitido.

6. Estando em comum acordo as partes com o processo, assinam.

7. Permuta efetuada.

Aplicando o conceito no sistema

Tendo o contrato base em mãos, elaborados pelo nosso Colega Advogado que mora no Bloco D, vamos passar para o Juninho agora traduzir isso para software.

● # INICIO DA PERMUTA.

● Parte A: 983j983j98j2983 // Um convidado qualquer que comprou ticket de pipoca

● Parte B: 139nf9183jr981j // A máquina de pipoca ou a barraca de venda

● Regra 1: Se a parte A entregar 1 ticket para a parte B e for confirmado, a parte B deve entregar Pipoca Doce Média para a parte A e a parte A deve retornar uma confirmação de Pipoca Doce recebida.

● Regra 2: Se A entregar 1 ticket para a parte B e não receber Pipoca Doce, cancelar a operação e retornar o ticket para a parte A.

● Regra 3: Estando a operação confirmada a entrega do ticket e o recebimento da pipoca. Um comprovante é emitido

● Comprovante: Parte A, enviou Ticket 1 para parte B : Assinatura de A, Assinatura de B. OK!

● # FIM DA PERMUTA.

Claro que estamos apenas explorando a superfície, na prática tanto a aplicação tecnológica é mais complexa, como todo o estudo da lógica por trás de um contrato inteligente deve ser avaliado por um corpo jurídico e contábil dependendo da complexidade e risco de cada projeto.

Existem infinitas aplicações dos conceitos de encadeamento de informação e contratos inteligentes, estamos ainda engatinhando em termos de tecnologia, mas já podemos vislumbrar uma série de aplicações.

As aplicações de um Smartcontract são diversas

Seja na sucessão familiar, controle de heranças, transferências de propriedade, automação de recolhimentos de tributos, folhas de pagamento, regras de negócios financeiros, controle de cadeia de produção e suprimentos e segue.

As aplicações ficam restritas a capacidade criativa e de desenvolvimento tecnológico de cada equipe envolvida em um projeto.

Entretanto, utilize de bom senso e escolha as pessoas que vão elaborar seus futuros contratos. Lembre-se que “Contratos inteligentes desenvolvidos por pessoas burras” geram no final uma lógica fácil de ser explorada por pessoas um pouco mais capacitadas em termos de analisar todos os cenários do contrato.

Assim como um bom advogado pode interpretar um contrato com o objetivo de anulação ou um bom contador pode ajudar em alguns processos, também existem no mundo pessoas tão boas em programar ou melhores do que o Juninho

< Voltar às notícias
Comece a negociar bitcoins agora!
Em apenas alguns passos, você começa a negociar bitcoins na plataforma com os melhores valores do mercado.
Comece já >
Cripto-Calculadora
BRL
=
BTC
Siga a CDA nas
redes sociais