As segundas camadas costumam ser apresentadas como uma versão mais barata da cadeia de baixo, o que é verdade e inútil. A pergunta interessante é o que elas fazem de diferente para serem mais baratas, porque cada uma dessas diferenças é também a fonte de um risco que não existe na cadeia base. As taxas são mais baixas por razões, e são as razões que interessam.
Uma cadeia de blocos é cara porque cada participante verifica cada transação e guarda o resultado para sempre. Essa redundância é a segurança, e é também o teto de custo: nenhuma quantidade de engenharia elimina o fato de que milhares de máquinas fazem o mesmo trabalho.
Uma segunda camada faz o trabalho uma vez, noutro lugar, e depois inscreve na cadeia base um registro comprimido do que aconteceu. A cadeia base já não executa cada transação; ela armazena informação suficiente para que o resultado possa ser reconstituído ou contestado. É todo o truque, e a economia é proporcional ao que fica de fora.
Isso torna a cadeia base uma camada de liquidação em vez de uma camada de execução, o que é uma mudança de arquitetura real e não um remendo de escala. Significa também que as garantias obtidas por um usuário já não são diretamente as da cadeia base, mas o que o mecanismo que liga as duas consegue preservar. Quase todas as diferenças práticas decorrem dessa frase.
A cadeia base deixa de executar a sua transação e passa a registrar que ela ocorreu. Tudo o que uma segunda camada ganha e tudo o que arrisca vem dessa substituição.
A primeira família publica os dados de transação e supõe o resultado correto enquanto ninguém provar o contrário dentro de uma janela de contestação. Qualquer um pode apresentar a prova de que um estado publicado é falso, e se ninguém o fizer durante a janela, o estado é tratado como definitivo.
A segunda família publica uma prova criptográfica de que o cálculo foi feito corretamente, que a cadeia base verifica diretamente. Não há nada a contestar, já que a correção é demonstrada em vez de suposta, e o caráter definitivo chega assim que a prova é verificada.
O arbítrio joga-se entre suposições e custo. A primeira família é mais barata de operar e herda um atraso mais a exigência de que alguém vigie e possa contestar. A segunda elimina o atraso e o vigilante, e paga por isso no custo computacional de produzir provas, que caiu bastante e continua a ser a restrição que limita o que esses sistemas conseguem executar.
A economia vem de dois lugares e vale a pena separá-los. A execução é feita uma vez pela camada em vez de o ser por cada nó da cadeia base, o que retira a maior parte do cálculo. Essa parte é simples, e é onde a maioria das explicações para.
A segunda, maior, é a amortização. O registro escrito na cadeia base cobre muitas transações de uma vez, então esse custo é partilhado entre todos os do lote. Uma camada movimentada tem portanto um custo por transação mais baixo do que uma camada calma, o que é o contrário da intuição de que o congestionamento encarece as coisas.
A consequência prática é que a taxa de uma camada não é uma propriedade fixa dessa camada. Ela se move com o congestionamento da cadeia base, com o quanto os lotes estão cheios, e com quantos dados a camada escolhe publicar em vez de guardar. Uma taxa observada hoje descreve hoje, e comparar camadas por uma única observação compara dois instantes em vez de dois sistemas.
Alguém tem de decidir a ordem em que as transações são executadas antes de o lote ser inscrito, e em quase todas as segundas camadas hoje implantadas esse alguém é um operador único, mantido pela equipe que construiu a camada. É a parte que mais contradiz a imagem mental de um sistema descentralizado.
O que um sequenciador único pode fazer é limitado mas real. Pode decidir a ordem, o que importa onde quer que a ordem tenha valor. Pode recusar incluir uma transação, o que é censura no sentido técnico estrito. O que em geral não pode fazer é roubar, porque as transições de estado têm de continuar válidas, e uma inválida é refutada ou impossível de provar conforme a família.
A maioria dos desenhos prevê uma saída de emergência: um modo de submeter uma transação diretamente à cadeia base e forçar a sua inclusão se o sequenciador recusar. Vale a pena saber se a camada que você usa tem uma e se ela já foi usada, porque um mecanismo que nunca foi empregado a sério é um desenho, não uma garantia.
Na primeira família, a janela de contestação tem de ser longa o bastante para que uma parte honesta perceba um estado falso e apresente uma prova, inclusive durante um período de congestionamento da cadeia base. É por isso que os prazos de retirada se contam em dias e não em minutos, e essa duração é um parâmetro de segurança, não uma ineficiência.
O prazo aplica-se à saída sem confiança, não a todas as saídas. Serviços terceiros adiantam os fundos na cadeia base imediatamente e esperam a janela por você, cobrando o serviço e o capital. É um produto útil que substitui uma garantia de protocolo por uma contraparte, o que é um risco diferente e não uma ausência de risco.
Na segunda família o prazo é curto porque não há nada a contestar, sem ser instantâneo: uma prova tem de ser produzida e verificada, e produzi-la leva tempo real e cálculo real. A diferença entre as duas famílias neste ponto específico é a mais visível para um usuário.
A fórmula é usada de forma frouxa e tem um sentido preciso. O que a cadeia base protege é que a camada não pode tornar definitiva uma transição de estado inválida: não pode creditar-lhe tokens nunca depositados, nem deixar alguém gastar o que não tem. É uma garantia forte e genuína.
O que ela não protege é tudo o que está fora dessa definição. Não garante que a sua transação seja incluída, que o seja na ordem que você preferiria, que os contratos da camada estejam livres de defeitos, nem que o operador continue a prestar o serviço. Cada um destes pontos falhou na prática nalgum lugar sem que qualquer estado inválido se tornasse definitivo.
O resumo honesto é que a cadeia base protege a contabilidade e não o serviço. É essa a distinção a reter, porque explica que uma camada possa ser ao mesmo tempo correta e inutilizável, e por que uma queda numa camada é um acontecimento real mesmo quando ninguém perde um saldo.
A cadeia base protege a contabilidade, não o serviço. Uma camada pode ser perfeitamente correta e completamente inutilizável ao mesmo tempo, e ambas já aconteceram.
Cada camada é um ambiente separado, com a sua própria cópia dos ativos e as suas próprias reservas. O mesmo ativo em duas camadas são dois saldos diferentes que partilham um nome, e passar de um ao outro supõe uma ponte, com todos os modos de falha que as pontes têm.
Para quem opera, a consequência é que a profundidade fica dividida. Um ativo com liquidez agregada substancial pode estar fino na camada específica em que você está, e o preço obtido reflete a reserva que você alcançou e não o mercado no conjunto. Essa diferença é maior exatamente quando mais importa, durante os movimentos rápidos.
Isso também complica a aritmética do custo. Uma transação mais barata numa camada com menos profundidade pode custar mais no total do que uma transação mais cara onde a profundidade está, uma vez contado o preço realmente obtido. Comparar só a taxa é o erro, e é o erro que o marketing de cada camada incentiva.
Publicar todos os dados de transação na cadeia base é o que permite a qualquer um reconstituir o estado de forma independente, e é também o maior custo restante. Alguns sistemas o reduzem guardando os dados noutro lugar e publicando apenas um compromisso sobre eles, o que é bastante mais barato.
Essa escolha muda o modelo de segurança em vez de o otimizar. Se os dados estiverem indisponíveis, o estado não pode ser reconstituído por um terceiro, e os usuários dependem de um comitê ou de uma rede separada para continuar a servi-los. Esses sistemas costumam levar um nome diferente exatamente por essa razão, e o nome faz um trabalho real.
Se a troca é aceitável depende do que está guardado e por quanto tempo. É uma escolha defensável para atividade de muito volume e pouco valor, e má para saldos que alguém pretende deixar quietos por um ano. O erro não é fazer a troca, é não saber qual foi feita.
Quatro pontos descrevem a situação com mais utilidade do que qualquer comparação de marcas. Se o sequenciador é um operador único e se existe um caminho de inclusão forçada. Se os dados de transação vão para a cadeia base ou para outro lugar. Quanto tempo leva uma saída sem confiança. E se os contratos podem ser atualizados, por quem, e com que prazo.
O último é subestimado. Muitas camadas podem ser atualizadas por uma carteira de assinaturas múltiplas, às vezes com um bloqueio temporal e às vezes sem, e um contrato modificável que guarda o seu depósito é um objeto diferente de um imutável. A existência de um caminho de atualização não desqualifica; a sua ausência de uma descrição de segurança desqualifica.
Nenhum destes pontos exige confiar num resumo. Os quatro estão publicados, os quatro são verificáveis, e lê-los leva menos tempo do que a primeira operação que você colocar. Um trader capaz de responder aos quatro toma uma decisão; quem não pode aceita as respostas que por acaso se aplicam.
A descentralização do sequenciador é o problema de engenharia em aberto, e vários desenhos existem sem consenso firmado sobre qual aguenta em escala. A dificuldade é que a ordem tem valor, então distribuir o direito de ordenar é também distribuir uma receita, e os mecanismos que fazem isso bem sem introduzir novos atrasos ainda estão em teste.
A interoperabilidade entre camadas é o segundo. Passar de uma camada a outra supõe hoje voltar à cadeia base ou confiar numa ponte, e os padrões que permitiriam às camadas liquidar diretamente entre si ainda não estão difundidos. Enquanto não estiverem, a fragmentação descrita acima é um traço estrutural e não uma doença de juventude.
Nenhum dos dois é uma previsão sobre o que vai acontecer. É a descrição do que não está resolvido, o que é mais útil, porque diz quais afirmações ler com ceticismo hoje. A uma camada que diz ter resolvido qualquer um dos dois deve-se perguntar como, e a resposta costuma ser específica e verificável.
Duas razões. A execução acontece uma vez na camada em vez de em cada nó da cadeia base, e o registro escrito na cadeia base cobre muitas transações de uma vez, então esse custo é partilhado no lote. O segundo efeito faz com que uma camada movimentada tenha um custo por transação mais baixo do que uma calma.
Uma publica os dados de transação e supõe o resultado correto enquanto ninguém provar o contrário dentro de uma janela de contestação. A outra publica uma prova criptográfica que a cadeia base verifica diretamente, então não há nada a contestar. A primeira herda um atraso e precisa de um vigilante; a segunda paga no custo de produzir provas.
Em quase todas as camadas hoje implantadas, um operador único mantido pela equipe que a construiu. Ele pode decidir a ordem e recusar incluir uma transação, mas em geral não pode roubar, porque as transições de estado têm de continuar válidas. A maioria dos desenhos prevê forçar a inclusão pela cadeia base.
Na família baseada em contestação, a janela deve ser longa o bastante para que uma parte honesta perceba um estado falso e o prove, inclusive durante congestionamento da cadeia base. É um parâmetro de segurança, não uma ineficiência. Serviços terceiros adiantam os fundos de imediato por uma taxa, o que substitui uma garantia de protocolo por uma contraparte.
Que a camada não pode tornar definitiva uma transição de estado inválida: nada de creditar tokens nunca depositados nem gastar o que não existe. Não garante que a sua transação seja incluída, que os contratos da camada não tenham defeitos, nem que o operador continue. A cadeia base protege a contabilidade, não o serviço.
Não. São dois saldos separados que partilham um nome, cada um com as suas reservas, e passar de um ao outro exige uma ponte. A profundidade fica dividida, então um ativo líquido no agregado pode estar fino na camada em que você está, e essa diferença é maior durante os movimentos rápidos.
Publicar todos os dados de transação na cadeia base permite a qualquer um reconstituir o estado de forma independente. Os sistemas que publicam apenas um compromisso e guardam os dados noutro lugar são mais baratos, mas os usuários dependem então de um comitê ou rede separada para servi-los. Costumam levar outro nome, e esse nome faz um trabalho real.
Se o sequenciador é um operador único e se existe inclusão forçada; se os dados de transação vão para a cadeia base ou outro lugar; quanto tempo leva uma saída sem confiança; e se os contratos podem ser atualizados, por quem e com que prazo. Os quatro estão publicados e são verificáveis.