Ajudando você a entender a tecnologia blockchain de forma simples.
Ajudando você a entender a tecnologia blockchain de forma simples.

Subscribe to Criptada

Subscribe to Criptada
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
Vamos começar nossa aventura de descoberta sobre a natureza fundamental do blockchain, lançando luz em seu complexo mecanismo de funcionamento.
Para isso, tente imaginá-lo como uma estrutura física de cinco andares, cada um com uma função específica: o primeiro andar é dedicado à execução, o segundo aos dados, o terceiro à rede, o quarto ao consenso e o quinto às aplicações.

Hoje, concentraremos nossos esforços em explorar exclusivamente a estrutura da Execução para tornar a compreensão gradual. Então organizei o conteúdo da seguinte forma:
Máquina-Estado
1.1 UTXO e Modelo de Conta
1.2 Hard e Soft Fork
Cada blockchain tem como base um modelo abstrato responsável por gerenciar o comportamento do sistema, conhecido como máquina-estado. Embora o termo possa parecer complicado, entender a ideia torna-se mais clara quando percebemos que interagimos com esses sistemas todos os dias.
Consideramos, por exemplo, a tarefa de uma catraca que é um sistema com dois estados possíveis: bloqueado e desbloqueado. O estado inicial da catraca é “bloqueado”. Permanece bloqueada até receber uma nova entrada do tipo "moeda", momento em que muda para o estado "desbloqueado". Enquanto estiver desbloqueada, permanece assim até receber uma outra entrada do tipo “empurre”, momento em que volta para o estado "bloqueado". Sendo assim, o estado da catraca é determinado pelas entradas que recebe: "moeda" a desbloqueia e “empurra” a bloqueia novamente. Deu uma simplificada, né?
Então, basicamente, a máquina-estado é um sistema que segue um conjunto de regras definidas para controlar seu comportamento em diferentes estados quando eventos específicos acontecem. O "estado" se refere à situação atual do sistema, enquanto "eventos" são as mudanças que levam de um estado para outro (ou transições).
As máquinas-estado podem variar de sistemas simples a complexos, mas os princípios fundamentais são os mesmos em todos os casos.
Em um sistema blockchain, ela é responsável por manter e atualizar o estado da rede com base nas transações validadas pelos participantes e no consenso alcançado. Isso envolve a implementação de uma ampla variedade de regras, que geralmente incluem garantias de que as transações possuam assinaturas válidas por parte dos softwares clientes autorizados, a prevenção de “gastos duplos” e a validação de transações de acordo com as regras do protocolo de consenso adotado.
Além das regras básicas, a máquina-estado de um blockchain pode incorporar a capacidade de executar diversos tipos de códigos, conhecidos como contratos inteligentes. Estes contratos são desenvolvidos pelos programadores utilizando uma linguagem de programação disponibilizada pela plataforma. Posteriormente, esses contratos são executados por todas as réplicas da rede e o resultado precisa ser validade e acordado por consenso antes de modificar o estado do sistema conforme necessário.
Existem dois métodos comuns para representar o estado da máquina-estado em um blockchain: o modelo UTXO, usado pelo Bitcoin, e o modelo de conta, usado pelo Ethereum.
No modelo UTXO, o estado da rede é mantido através do rastreamento de todas as saídas de transações não gastas. Cada UTXO representa uma "saída" de uma transação anterior que ainda não foi gasta como “entrada” em uma nova transação. Assim, o estado da rede pode ser representado por todas as UTXOs existentes e não gastas.
Para ilustrar como funciona as UTXOs no contexto de uma transação, suponha que você tenha duas notas de R$ 100 e R$ 50. Essas notas representam duas UTXOs diferentes, uma de R$ 100 e outra de R$ 50, que você possui em sua carteira.
Agora, você quer enviar R$ 125 para o Paulo. Para fazer isso, você seleciona suas duas notas como entradas (UTXOs), totalizando R$ 150 (R$ 100 + R$ 50). Em seguida, você cria duas saídas: uma de R$ 125 para o Paulo e outra de R$ 25 para si mesmo, que seria o troco.
Durante essa transação, suas duas notas originais de R$ 100 e R$ 50 são "destruídas", ou seja, elas se tornam entradas na transação e não podem mais ser usadas em outras transações. E então, duas novas notas são criadas: uma de R$ 120 para o Paulo e outra de R$ 25 que é devolvida a você como troco.
Assim, a transação é realizada com sucesso, e o estado da sua carteira é atualizado para refletir as novas notas que você possui: R$ 25, que é o troco da transação.
Uma das vantagens do método UTXO é que, ao enviar o "troco" para você mesmo em uma transação, você não está limitado a usar o mesmo endereço de onde a transação foi enviada. Em vez disso, você pode criar um novo endereço em sua carteira e enviar o "troco" para lá. Essa prática contribui com a privacidade, pois evita a associação direta de todos os fundos armazenados a um único endereço.
Por outro lado, o método baseado em Conta é mais simples e direto. Cada endereço possui um saldo associado a ele, e ao realizar uma transação, você simplesmente indica a quantidade que deseja enviar de um endereço para outro. Não há necessidade de selecionar entradas específicas (como no método UTXO) ou calcular troco.
Esse modelo opera de forma semelhante a uma conta bancária convencional, onde cada pessoa tem sua própria conta e pode enviar qualquer quantia entre si de uma só vez. Como resultado, o saldo em cada conta reflete o estado atual dessa conta na rede.
Essa simplicidade torna o modelo baseado em Conta mais acessível e intuitivo para muitos usuários, facilitando a compreensão e o gerenciamento das transações no blockchain. No entanto, embora seja mais simples superficialmente, ambos os métodos têm suas vantagens e desvantagens.
Para que as transações sejam realizadas em um sistema blockchain, todos os validadores da rede devem concordar com as regras da máquina-estado. No entanto, ao longo do tempo, essas regras podem ser atualizadas ou modificadas para promover mudanças no sistema ou para melhorar seu funcionamento.
Essas atualizações podem ser implementadas através de mecanismos como hard forks ou soft forks.
Um Hard Fork é uma alteração significativa e irreversível nas regras de uma blockchain e pode levar a divisão da rede. Geralmente são utilizados para implementar mudanças importantes, como a introdução de novos recursos ou a correção de falhas críticas.
Já o Soft Fork é uma alteração menos invasiva e mantém a compatibilidade com versões anteriores do software. Normalmente são utilizados para implementar mudanças mais suaves, como correções de bugs menores ou a introdução de recursos adicionais que não afetam a compatibilidade com versões anteriores.
Espero que até este momento você tenha conseguido aprimorar sua compreensão da máquina-estado, seus modelos de representação e os mecanismos de atualização da rede blockchain.
A seguir, discutirei os princípios fundamentais dos dados e redes, elementos essenciais para uma comunicação eficiente na blockchain.
Até a próxima newsletter!
Vamos começar nossa aventura de descoberta sobre a natureza fundamental do blockchain, lançando luz em seu complexo mecanismo de funcionamento.
Para isso, tente imaginá-lo como uma estrutura física de cinco andares, cada um com uma função específica: o primeiro andar é dedicado à execução, o segundo aos dados, o terceiro à rede, o quarto ao consenso e o quinto às aplicações.

Hoje, concentraremos nossos esforços em explorar exclusivamente a estrutura da Execução para tornar a compreensão gradual. Então organizei o conteúdo da seguinte forma:
Máquina-Estado
1.1 UTXO e Modelo de Conta
1.2 Hard e Soft Fork
Cada blockchain tem como base um modelo abstrato responsável por gerenciar o comportamento do sistema, conhecido como máquina-estado. Embora o termo possa parecer complicado, entender a ideia torna-se mais clara quando percebemos que interagimos com esses sistemas todos os dias.
Consideramos, por exemplo, a tarefa de uma catraca que é um sistema com dois estados possíveis: bloqueado e desbloqueado. O estado inicial da catraca é “bloqueado”. Permanece bloqueada até receber uma nova entrada do tipo "moeda", momento em que muda para o estado "desbloqueado". Enquanto estiver desbloqueada, permanece assim até receber uma outra entrada do tipo “empurre”, momento em que volta para o estado "bloqueado". Sendo assim, o estado da catraca é determinado pelas entradas que recebe: "moeda" a desbloqueia e “empurra” a bloqueia novamente. Deu uma simplificada, né?
Então, basicamente, a máquina-estado é um sistema que segue um conjunto de regras definidas para controlar seu comportamento em diferentes estados quando eventos específicos acontecem. O "estado" se refere à situação atual do sistema, enquanto "eventos" são as mudanças que levam de um estado para outro (ou transições).
As máquinas-estado podem variar de sistemas simples a complexos, mas os princípios fundamentais são os mesmos em todos os casos.
Em um sistema blockchain, ela é responsável por manter e atualizar o estado da rede com base nas transações validadas pelos participantes e no consenso alcançado. Isso envolve a implementação de uma ampla variedade de regras, que geralmente incluem garantias de que as transações possuam assinaturas válidas por parte dos softwares clientes autorizados, a prevenção de “gastos duplos” e a validação de transações de acordo com as regras do protocolo de consenso adotado.
Além das regras básicas, a máquina-estado de um blockchain pode incorporar a capacidade de executar diversos tipos de códigos, conhecidos como contratos inteligentes. Estes contratos são desenvolvidos pelos programadores utilizando uma linguagem de programação disponibilizada pela plataforma. Posteriormente, esses contratos são executados por todas as réplicas da rede e o resultado precisa ser validade e acordado por consenso antes de modificar o estado do sistema conforme necessário.
Existem dois métodos comuns para representar o estado da máquina-estado em um blockchain: o modelo UTXO, usado pelo Bitcoin, e o modelo de conta, usado pelo Ethereum.
No modelo UTXO, o estado da rede é mantido através do rastreamento de todas as saídas de transações não gastas. Cada UTXO representa uma "saída" de uma transação anterior que ainda não foi gasta como “entrada” em uma nova transação. Assim, o estado da rede pode ser representado por todas as UTXOs existentes e não gastas.
Para ilustrar como funciona as UTXOs no contexto de uma transação, suponha que você tenha duas notas de R$ 100 e R$ 50. Essas notas representam duas UTXOs diferentes, uma de R$ 100 e outra de R$ 50, que você possui em sua carteira.
Agora, você quer enviar R$ 125 para o Paulo. Para fazer isso, você seleciona suas duas notas como entradas (UTXOs), totalizando R$ 150 (R$ 100 + R$ 50). Em seguida, você cria duas saídas: uma de R$ 125 para o Paulo e outra de R$ 25 para si mesmo, que seria o troco.
Durante essa transação, suas duas notas originais de R$ 100 e R$ 50 são "destruídas", ou seja, elas se tornam entradas na transação e não podem mais ser usadas em outras transações. E então, duas novas notas são criadas: uma de R$ 120 para o Paulo e outra de R$ 25 que é devolvida a você como troco.
Assim, a transação é realizada com sucesso, e o estado da sua carteira é atualizado para refletir as novas notas que você possui: R$ 25, que é o troco da transação.
Uma das vantagens do método UTXO é que, ao enviar o "troco" para você mesmo em uma transação, você não está limitado a usar o mesmo endereço de onde a transação foi enviada. Em vez disso, você pode criar um novo endereço em sua carteira e enviar o "troco" para lá. Essa prática contribui com a privacidade, pois evita a associação direta de todos os fundos armazenados a um único endereço.
Por outro lado, o método baseado em Conta é mais simples e direto. Cada endereço possui um saldo associado a ele, e ao realizar uma transação, você simplesmente indica a quantidade que deseja enviar de um endereço para outro. Não há necessidade de selecionar entradas específicas (como no método UTXO) ou calcular troco.
Esse modelo opera de forma semelhante a uma conta bancária convencional, onde cada pessoa tem sua própria conta e pode enviar qualquer quantia entre si de uma só vez. Como resultado, o saldo em cada conta reflete o estado atual dessa conta na rede.
Essa simplicidade torna o modelo baseado em Conta mais acessível e intuitivo para muitos usuários, facilitando a compreensão e o gerenciamento das transações no blockchain. No entanto, embora seja mais simples superficialmente, ambos os métodos têm suas vantagens e desvantagens.
Para que as transações sejam realizadas em um sistema blockchain, todos os validadores da rede devem concordar com as regras da máquina-estado. No entanto, ao longo do tempo, essas regras podem ser atualizadas ou modificadas para promover mudanças no sistema ou para melhorar seu funcionamento.
Essas atualizações podem ser implementadas através de mecanismos como hard forks ou soft forks.
Um Hard Fork é uma alteração significativa e irreversível nas regras de uma blockchain e pode levar a divisão da rede. Geralmente são utilizados para implementar mudanças importantes, como a introdução de novos recursos ou a correção de falhas críticas.
Já o Soft Fork é uma alteração menos invasiva e mantém a compatibilidade com versões anteriores do software. Normalmente são utilizados para implementar mudanças mais suaves, como correções de bugs menores ou a introdução de recursos adicionais que não afetam a compatibilidade com versões anteriores.
Espero que até este momento você tenha conseguido aprimorar sua compreensão da máquina-estado, seus modelos de representação e os mecanismos de atualização da rede blockchain.
A seguir, discutirei os princípios fundamentais dos dados e redes, elementos essenciais para uma comunicação eficiente na blockchain.
Até a próxima newsletter!
No activity yet