Blockchain
Blockchain é uma lista de registros continuamente crescente, chamada blocos, que são vinculados e protegidos usando criptografia. Cada bloco geralmente contém um hash como um link para um bloco anterior, um carimbo de data e hora e dados de transação. Por design, as cadeias de bloqueios são inerentemente resistentes à modificação dos dados.
É "um livro aberto e distribuído que pode registrar transações entre duas partes e de forma verificável e permanente". Para ser usado como um livro de contas distribuído, um bloco é tipicamente gerenciado por uma rede peer-to- peer, aderindo coletivamente a um protocolo para validar novos blocos.
Uma vez gravados, os dados em qualquer bloco dado não podem ser alterados retroativamente sem a alteração de todos os blocos subsequentes, o que requer colusão da maioria da rede. Essas transações devem ocorrer seguindo as regras de um contrato que ambas as partes concordam em seguir, tais contratos são chamados “Smart Contracts”.
Se quiser saber mais sobre o conceito desta tecnologia de uma olhada no artigo do André Cripa, sócio fundador da Interaktiv.
A Interaktiv vem estudando e implementando Smart Contracts na Ethereum - uma plataforma decentralizada para execução desses contratos - e vem obtendo resultados interessantes. Recentemente realizamos o desenvolvimento de uma aplicação para execução de eleições de órgãos públicos, como associações e entidades de classe, garantindo assim total transparência e confiança a candidatos e eleitores.
Como começar:
A linguagem de programação utilizada na Ethereum é a Solidity. Possui razoável documentação e exemplos de implantação dos smart contracts. Outras ferramentas que ajudam no desenvolvimento são:
Web3.js - Web3.js é uma API JavaScript para interação com nodes Ethereum;
Ganache - É um programa onde o desenvolvedor por simular, modificar e monitorar uma rede local Ethereum a fim de fazer testes antes de um eventual deploy de sua aplicação;
Remix - Remix é um conjunto de ferramentas para interagir com nodes Ethereum e depurar transações, tudo isso feito diretamente do seu browser.
Truffle - É um framework de desenvolvimento de SmartContracts, com suas principais funções sendo o deploy, testes, compilação e gerenciamento de tais contratos.
Palavra de cautela
Ao desenvolver um smart contract, lembre-se que as regras escritas serão as executadas. Portanto as regras precisam estar muito claras para todos, inclusive para os desenvolvedores, já que não haverá possibilidade de corrigir a operação caso o contrato já tenha sido automaticamente executado.
Portanto, um código livre de bugs, com um processo de QA sólido e aceito pelo cliente e mais do que essencial neste caso também.