Seção "II Overview of Bitcoin" do artigo "SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies"
Bitcoin Developer Guide, seções: Block Chain, Transactions, P2P Network
"Chapter 3: Mechanics of Bitcoin" do livro Draft textbook: Bitcoin and Cryptocurrency Technologies
Audiovisual:
Bitcoin Protocol and Consensus: A High Level Overview
Consensus Algorithms, Blockchain Technology and Bitcoin UCL - by Andreas M. Antonopoulos
Immutability and Proof-of-Work - the planetary scale digital monument
GOTO 2014 • How the Bitcoin Protocol Actually Works • Jan Møller
Lecture 3 — Mechanics of Bitcoin
O jeito Bitcoin de tratar as transações é de gravação dessas numa tabela de registros, onde cada transação fica gravada para sempre na tabela. Esse modelo é uma alternativa ao modelo baseado em conta. Nesse último o sistema precisa armazenar as saídas das transações para cada conta registrada, sendo necessário usar uma estrutura de dados e consequentemente um monte de dados que tornariam a computação ao menos mais demorada.
ResponderExcluirPara permitir a realização dessas transações, existe um linguagem específica para Bitcoin, a Script. Apesar de bem simples e não ser computacionalmente potente, essa linguagem resolve bem, ao menos por enquanto, as necessidades dessa criptomoeda. Seu poder de computação limitado também apresenta uma vantagem, a de não permitir que um loop infinito seja realizado. Além disso, há ainda instruções não utilizadas. Talvez com o uso delas se possa ampliar o poder computacional.
As transações no bitcoin são descritas por scripts. Uma linguagem de script especificamente para o bitcoin foi feita e é semelhante a uma linguagem chamada Forth. A linguagem proporciona suporte a várias operações criptográficas (como hash) e tem as seguintes características: um script sempre irá terminar, ele não contem loops e é stack-based (significa que ela não tem nome de variáveis e realiza as operações utilizando a pilha). Os opcodes da linguagem realizam operações com os dados disponíveis na pilha (dando push ou pop dos dados). Por exemplo, o opcode OP_CHECKSIG dá um pop em 2 operandos da pilha, um sendo uma chave pública e o outro uma assinatura, verifica se é válida a assinatura e dá push no resultado. A linguagem da criptomoeda Ethereum contém um conjunto mais amplo de instruções, incluindo loops.
ResponderExcluirO Blogger não está encontrando sua identificação: note que seu post aparece como de autoria de "Isabela". É importante que apareça seu nome e sobrenome. Providencie a reparação.
ExcluirAs transações no bitcoin são descritas por scripts. Uma linguagem de script especificamente para o bitcoin foi feita e é semelhante a uma linguagem chamada Forth. A linguagem proporciona suporte a várias operações criptográficas (como hash) e tem as seguintes características: um script sempre irá terminar, ele não contem loops e é stack-based (significa que ela não tem nome de variáveis e realiza as operações utilizando a pilha). Os opcodes da linguagem realizam operações com os dados disponíveis na pilha (dando push ou pop dos dados). Por exemplo, o opcode OP_CHECKSIG dá um pop em 2 operandos da pilha, um sendo uma chave pública e o outro uma assinatura, verifica se é válida a assinatura e dá push no resultado. A linguagem da criptomoeda Ethereum contém um conjunto mais amplo de instruções, incluindo loops.
ResponderExcluirO processo das transações do bitcoin é baseado na utilização de uma tabela distribuída entre todos os usuários para armazenar as informações das transferências, como quem enviou, quem recebeu e o quanto foi transferido. Cada nó da rede possui sua própria cópia, contendo as transações que foram validadas por ele. Quando vários nós validaram determinada transação, pelas regras estabelecidas pelo Bitcoin, chega-se a um consenso de que aquela transação pode ser aprovada. A utilização de tabelas distribuídas é uma forma de garantir que não vá haver o chamado double spending por parte dos usuários.
ResponderExcluirPor ser uma moeda descentralizada, as transações utilizando o bitcoin são validadas pelos nós participantes da rede.
ResponderExcluirCada nó pode ter o "poder" de validar transações utilizando o conceito de "proof of work" que é basicamente resolver um problema matemático complexo. Isto, para ajudar ainda mais na confiabilidade da validação.
Outra forma que auxilia a transação são as blockchains que guarda todo histórico das transações e cada nó tem uma cópia desse histórico, tornando ainda mais fácil identificar transações inválidas.