segunda-feira, 31 de outubro de 2016

Escalabilidade do Bitcoin

Leitura:
Bitcoin's Block Size Debate is Back (And It Might Be Worse Than Ever)
Why Weight? Bitcoin Scaling is Moving Beyond Block Size
Segregated Witness, Part 1: How a Clever Hack Could Significantly Increase Bitcoin's Potential
Segregated Witness, Part 2: Why You Should Care About a Nitty-Gritty Technical Trick
Segregated Witness, Part 3: How a Soft Fork Might Establish a Block-Size Truce (or Not)

Audiovisual:
Bitcoin Problems - Computerphile
Pieter Wuille: Segregated witness and its impact on scalability
SF Bitcoin Devs Seminar: Scaling Bitcoin to Billions of Transactions Per Day
Bitcoin Lightning Network Solve Blockchain Scalability
An inside look on scaling bitcoin

6 comentários:

  1. O problema da escalabilidade do bitcoin deve ser um dos maiores senão o maior de todos os problemas que a moeda enfrenta para que possa realmente se tornar um sistema globalmente utilizado de forma eficiente.
    Muitos detalhes impedem que o bitcoin seja usado mundialmente como o delay das transações, o tamanho da blockchain que leva a outro problema que é a impraticabilidade da tecnologia em países que não tem largo acesso a banda larga.

    A utilização de Segregated Witness para resolver o problema de escalabilidade do Bitcoin parece uma ótima solução, principalmente se os competidores são Lightning Network porém, a implementação do SegWit não será feita de forma instantânea, mas existe um forte consenso por trás da proposta.

    A única grande pedra no caminho do SegWit é o fato de que para ser adotada, essa versão precisará de uma super maioria do poder de mineração, chegando a 95% da rede. Somente quando esse percentual fizer a atualização é que poderemos ver os ganhos de eficiência se propagarem através de toda rede. Se solucionado causará uma secessão** no dinheiro como o conhecemos hoje, podendo levar governos e bancos tradicionais à obsolescência.

    ** - separação de uma porção da unidade política para constituir outra.

    ResponderExcluir
    Respostas
    1. Pois é, sem escalabilidade o bitcoin nunca vai levar nenhuma dessas instituições tradicionais como os bancos a obsolescência. Mesmo se for resolvido talvez ainda não leve pelos outros motivos de adoção e usabilidade, mas escalabilidade realmente é essencial.
      Pelo que eu vi nos artigos e nos comentários aqui SegWit tem várias vantagens, pode reduzir bastante o tamanho dos blocos, pode acrescentar segurança as transações. Porém não acredito que ela por si só, mesmo sendo um grande passo, conseguiria elevar o Bitcoin do 1 transação por segundo para o 2000-4000 transações por segundo de uma rede como a VISA. O Bitcoin ainda vai precisar de várias outras soluções desse tipo para ser otimizado o suficiente.

      Excluir
  2. O maior problema que o Bitcoin apresenta atualmente é em relação à escalabilidade. Estima-se que a Rede Bitcoin seja atualmente capaz de processar cerca de 1 transação/segundo, o que não chega nem perto da capacidade necessária para competir com a performance de redes de processamento de transações comerciais (como a rede Visa, por exemplo)

    Essa relativa lentidão na rede Bitcoin se deve à maior exigência de poder de processamento da rede Bitcoin, devido à validação distribuída realizada pela rede.

    Existem diversas propostas que objetivam mitigar o baixo throughput de transações da rede Bitcoin. A solução mais óbvia é aumentar o tamanho dos blocos permitidos na Blockchain, o que permitiria que os mineradores processassem mais transações de cada vez. Todavia, isso também aumentaria muito o tamanho da Blockchain e o custo de rodar um nó de mineração.

    Uma proposta alternativa analisada em sala foi a ideia de "Segregated Witness".

    A ideia do Segregated Witness consiste em criar um novo bloco de dados que será enviado junto com as transações a validar. Ao invés de colocar a assinatura da transação no script de validação como normalmente é feito, a assinatura estará nesse novo bloco.

    Os nós mineradores que suportarem Segregated Witness processarão essas transações usando uma Merkle Tree separada da Blockchain já existente. Essa Merkle Tree conterá apenas os dados do bloco de Segregated Witness das transações. Os nós que não suportarem Segregated Witness ignorarão os dados adicionais, e não salvarão eles nos blocos da Merkle Tree antiga.

    A ideia de fazer isso é que, uma vez que os blocos das transações não precisarão mais conter as assinaturas das transações (pois as assinaturas estarão nos dados de Segregated Witness) isso permite efetivamente aumentar o número de transações possíveis de validar por bloco, aumentando o throughput da rede.

    Uma outra vantagem do Segregated Witness é que essa Merkle Tree adicional poderia conter dados adicionais sobre cada bloco que tornariam a execução de "clientes leves" (que não baixam a Blockchain inteira) mais segura, permitindo que eles detectem fraudes de forma mais simples.

    O problema na adoção do Segmented Witness é que, para gerar ganhos de eficiência reais, uma grande proporção dos mineradores precisa adotá-lo. Todavia, a adoção do Segmented Witness é possível por "soft fork" (significando que mineradores podem adotar ele por decisão individual sem causar prejuízos à rede como um todo), o que abre a possibilidade de vermos a adoção do Segmented Witness crescer aos poucos ao longo dos próximos meses ou anos.

    ResponderExcluir
  3. Muitas conversas e eventos têm discutido calorosamente sobre as tendências de engenharia sobre a rede Bitcoin. Muitas delas envolvem inclusive o tamanho dos blocos e quais são os impactos em realizar tais pesquisas em cima das performances apresentadas. Alguns outros, aos invés de deterem-se ao tamanho dos blocos, preferem tratar dos “pesos”, e como esse ponto afetaria por exemplo o fluxo das transações na rede, em diferentes cenários.
    Em um desses eventos foi inclusive discutido algo sobre as assinaturas de Schnorr e compararam-na como algoritmos de bitcoin com assinatura digital. Além disso, Peter Wiulle, um dos estudiosos na área, afirmou que apesar de esse novo conceito estar habilitado a Testemunha Segregada, ele observou que a estrutura atual de endereços de bitcoin apresenta problemas para a mudança. Existem inclusive estudos relacionados a prova de trabalho em cima do bitcoin em comparação com outras blockchains alternativamente propostas, que inclusive trariam ótimos resultados em tempo de processamento.
    Apesar de todas essas discussões, escalabilizar a moeda continua sendo um grande desafio. Aumentar tamanho de blocos, afim de dar suporte a mais transações, e consequentemente a mais usuários, tem sido algo requerido por parte dos mineradores da rede. Existem inclusive projetos acadêmicos que estudam com o foco em como aumentar a capacidade da rede com a utilização de protocolos de alto nível, mas apesar de ser comprovadamente escalável, não possui solidez em questões de métrica. Em cima disso, ainda existem discussões sobre forks. David Johnston, inclusive, afirma que é inevitável a prática. Ele diz também que a medida custaria pouco para fazer o desenvolvimento voltar aos trilhos de forma bem sucedida. Apesar de haverem opiniões contrárias, boa parte dos desenvolvedores acreditam que, se sabendo fazer corretamente, essa mudança não-consensual seria um trabalho muito promissor para a comunidade. Apesar de tudo isso, mesmo com toda a tecnologia disponível, existem impasses entre escalabilidade e descentralização que precisam vêm sendo continuamente discutidos.
    Uma das soluções apresentadas, a Testemunha Segregada, vem com o intuito de aprimorar o mecanismo de validação de transações. Ela basicamente carrega assinaturas e alguns dados adicionais, atuando diretamente na formação de ID’s que construirão por vez os blocos relativos as transações que serão transmitidas. Esse conceito, suportado pelo conceito de Sidechains, onde a ideia faria com que os blocos não precisassem conter também assinaturas das transações. Isto criaria uma árvore de Merkle particular mais leve, agilizando as validações, e facilitando a detecção de possíveis adulterações.

    ResponderExcluir
  4. Escalabilidade é uma capacidade necessária a sistemas com uma tendência de expansão. Tais sistemas, quando não-escaláveis, embora representem a solução potencial para um problema, falham em se tornar uma solução prática, e tendem a ser ultrapassados e substituídos por soluções escaláveis. O problema da escalabilidade do Bitcoin é algo fácil de antever quando se verifica a quantidade de processamento envolvida numa transação, no quão trivial uma transação é na prática, e o cenário final imaginado para a moeda atuando em escala máxima (plataforma para a ocorrência de um número significativo de todas as transações do mundo). Desde o acesso às inúmeras entradas da blockchain até a grande concorrência entre transações e validação de transações, percebe-se o quão custoso é a execução de algo tão trivial para a rede. Dessa maneira, micropagamentos deixaram de figurar entre uma das finalidades do Bitcoin. E se analisarmos a evolução da rede em questão de escala, estamos apenas em uma etapa intermediária para atingir o nível que se deseja. O que significa que a rede é menos escalável do que se deseja.
    Algumas soluções de escalabilidade foram propostas, mas nenhuma delas é uma solução definitiva para o problema. A introdução de Sidechains e Canais de Pagamento podem diminuir em uma ordem a complexidade do processamento de transações, mas quando aplicadas nas situações incorretas, podem não apenas não diminuir a complexidade do problema, mas acrescentar um overhead.

    ResponderExcluir
  5. Eu não vejo como se a falta de escalabilidade dos bitcoins fosse um limitante a ponto de freiar o crescimento acelerado de tal tecnologia. Ou qualquer outra tecnologia pois o homem sempre tem a capacidade de se “reinventar” , ao longo da história sempre se conseguiu novas formas de executar as mais variadas tarefas e lógico com os bitcoins não deverá ser diferente, . Eu vejo como se o principal limitante para o crescimento das moedas digitais são
    1) Preconceito por parte das pessoas , pois não são todos que estão disposto a abandonar o conforto estabilidade econômica do seu sistema econômico e apostar em uma nova ferramenta que prometa uma forma mais objetiva e clara para suas transações comerciais.
    2) O próprio governo , pois não vejo como ele se encaixará nessa nova ordem de organização social caso as moedas digitais serem implantadas de forma por inteira. Nâo terá como limitar os recursos pois o estado não terá como controlar a unidade monetária. .

    ResponderExcluir