RGB Magic: Contratos do lado do cliente em Bitcoin PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

RGB Magic: Contratos do lado do cliente no Bitcoin

Este é um editorial de opinião de Federico Tenga, colaborador de longa data de projetos Bitcoin com experiência como fundador, consultor e educador de startups.

O termo “contratos inteligentes” é anterior à invenção do blockchain e do próprio Bitcoin. Sua primeira menção está em um Artigo de 1994 por Nick Szabo, que definiu contratos inteligentes como um “protocolo de transação computadorizada que executa os termos de um contrato”. Embora por essa definição o Bitcoin, graças à sua linguagem de script, tenha suportado contratos inteligentes desde o primeiro bloco, o termo foi popularizado apenas mais tarde pelos promotores do Ethereum, que distorceram a definição original como “código que é executado redundantemente por todos os nós em um consenso global rede"

Embora delegar a execução de código a uma rede de consenso global tenha vantagens (por exemplo, é fácil implantar contratos não devidos, como os criadores de mercado popularmente automatizados), esse projeto tem uma grande falha: falta de escalabilidade (e privacidade). Se cada nó em uma rede deve executar redundantemente o mesmo código, a quantidade de código que pode realmente ser executada sem aumentar excessivamente o custo de execução de um nó (e, assim, preservar a descentralização) permanece escassa, o que significa que apenas um pequeno número de contratos pode ser executado.

Mas e se pudéssemos projetar um sistema onde os termos do contrato são executados e validados apenas pelas partes envolvidas, e não por todos os membros da rede? Imaginemos o exemplo de uma empresa que deseja emitir ações. Em vez de publicar o contrato de emissão publicamente em um livro-razão global e usar esse livro-razão para rastrear todas as futuras transferências de propriedade, ele poderia simplesmente emitir as ações de forma privada e passar aos compradores o direito de transferi-las posteriormente. Então, o direito de transferência de propriedade pode ser repassado a cada novo proprietário como se fosse um aditamento ao contrato de emissão original. Dessa forma, cada titular pode verificar de forma independente a veracidade das ações que recebeu, por meio da leitura do contrato original e da validação de que todo o histórico de alterações que movimentaram as ações está de acordo com as regras estabelecidas no contrato original.

Na verdade, isso não é novidade, é de fato o mesmo mecanismo usado para transferir propriedade antes que os registros públicos se tornassem populares. No Reino Unido, por exemplo, até a década de 90 não era obrigatório registrar um imóvel quando sua propriedade era transferida. Isso significa que ainda hoje mais de 15% das terras na Inglaterra e no País de Gales não estão registradas. Se você está comprando uma propriedade não registrada, em vez de verificar no cartório se o vendedor é o verdadeiro proprietário, você terá que verificar uma cadeia ininterrupta de propriedade que remonta a pelo menos 15 anos (um período considerado longo o suficiente para supor que o vendedor tenha título suficiente para a propriedade). Ao fazê-lo, você deve garantir que qualquer transferência de propriedade foi realizada corretamente e que todas as hipotecas usadas para transações anteriores foram pagas integralmente. Este modelo tem a vantagem de melhorar a privacidade sobre a propriedade, e você não precisa depender do mantenedor do registro de imóveis públicos. Por outro lado, torna a verificação da propriedade do vendedor muito mais complicada para o comprador.

Título de propriedade de imóvel não registrado

fonte: Escritura de propriedade imobiliária não registrada

Como melhorar a transferência de propriedades não registradas? Em primeiro lugar, tornando-o um processo digitalizado. Se houver um código que possa ser executado por um computador para verificar se todo o histórico de transferências de propriedade está de acordo com as regras originais do contrato, comprar e vender fica muito mais rápido e barato.

Em segundo lugar, para evitar o risco de o vendedor gastar seu ativo em dobro, um sistema de comprovação de publicação deve ser implementado. Por exemplo, poderíamos implementar uma regra de que toda transferência de propriedade deve ser confirmada em um local predefinido de um jornal conhecido (por exemplo, coloque o hash da transferência de propriedade no canto superior direito da primeira página do New York vezes). Como você não pode colocar o hash de uma transferência no mesmo local duas vezes, isso evita tentativas de gasto duplo. No entanto, usar um jornal famoso para esse fim tem algumas desvantagens:

  1. Você tem que comprar muitos jornais para o processo de verificação. Não muito prático.
  2. Cada contrato precisa de um espaço próprio no jornal. Não muito escalável.
  3. O editor do jornal pode facilmente censurar ou, pior ainda, simular um gasto duplo colocando um hash aleatório em seu slot, fazendo com que qualquer potencial comprador de seu ativo pense que ele já foi vendido antes e desencorajando-o a comprá-lo. Não muito confiável.

Por esses motivos, é necessário encontrar um local melhor para postar comprovantes de transferências de propriedade. E que opção melhor do que o blockchain do Bitcoin, um livro público confiável já estabelecido com fortes incentivos para mantê-lo resistente à censura e descentralizado?

Se usarmos Bitcoin, não devemos especificar um local fixo no bloco onde o compromisso de transferência de propriedade deve ocorrer (por exemplo, na primeira transação) porque, assim como o editor do New York Times, o minerador pode mexer com isso. Uma abordagem melhor é colocar o compromisso em uma transação Bitcoin predefinida, mais especificamente em uma transação que se origina de uma saída de transação não gasta (UTXO) à qual está vinculada a propriedade do ativo a ser emitido. A ligação entre um ativo e um bitcoin UTXO pode ocorrer tanto no contrato que emite o ativo quanto em uma posterior transferência de propriedade, tornando cada vez o UTXO alvo o controlador do ativo transferido. Desta forma, definimos claramente onde deve estar a obrigação de transferência de propriedade (ou seja, na transação Bitcoin originada de um determinado UTXO). Qualquer pessoa executando um nó Bitcoin pode verificar independentemente os compromissos e nem os mineradores nem qualquer outra entidade podem censurar ou interferir na transferência de ativos de qualquer forma.

transferência de propriedade de utxo

Como na blockchain do Bitcoin publicamos apenas um compromisso de transferência de propriedade, não o conteúdo da transferência em si, o vendedor precisa de um canal de comunicação dedicado para fornecer ao comprador todas as provas de que a transferência de propriedade é válida. Isso poderia ser feito de várias maneiras, potencialmente até mesmo imprimindo as provas e enviando-as com um pombo-correio, o que, embora um pouco impraticável, ainda faria o trabalho. Mas a melhor opção para evitar a censura e as violações de privacidade é estabelecer uma comunicação criptografada ponto a ponto direta, que comparada aos pombos também tem a vantagem de ser fácil de integrar com um software para verificar as provas recebidas da contraparte.

Este modelo recém-descrito para contratos validados do lado do cliente e transferências de propriedade é exatamente o que foi implementado com o protocolo RGB. Com o RGB, é possível criar um contrato que defina direitos, atribua-os a um ou mais bitcoin UTXO existentes e especifique como sua propriedade pode ser transferida. O contrato pode ser criado a partir de um modelo, chamado de “esquema”, no qual o criador do contrato apenas ajusta os parâmetros e direitos de propriedade, como é feito nos contratos jurídicos tradicionais. Atualmente, existem dois tipos de esquemas em RGB: um para emissão de tokens fungíveis (RGB20) e um segundo para emissão de colecionáveis ​​(RGB21), mas no futuro, mais esquemas podem ser desenvolvidos por qualquer pessoa sem permissão, sem exigir alterações no nível do protocolo.

Para usar um exemplo mais prático, um emissor de ativos fungíveis (por exemplo, ações de empresas, stablecoins, etc.) pode usar o modelo de esquema RGB20 e criar um contrato definindo quantos tokens emitirá, o nome do ativo e alguns metadados adicionais associados com isso. Ele pode então definir qual bitcoin UTXO tem o direito de transferir a propriedade dos tokens criados e atribuir outros direitos a outros UTXOs, como o direito de fazer uma emissão secundária ou renomear o ativo. Cada cliente que receber os tokens criados por este contrato poderá verificar o conteúdo do contrato Genesis e validar que qualquer transferência de propriedade no histórico do token recebido obedeceu às regras nele estabelecidas.

Então, o que podemos fazer com o RGB na prática hoje? Em primeiro lugar, permite a emissão e transferência de ativos tokenizados com melhor escalabilidade e privacidade em comparação com qualquer alternativa existente. Do lado da privacidade, o RGB se beneficia do fato de que todos os dados relacionados à transferência são mantidos no lado do cliente, portanto, um observador do blockchain não pode extrair nenhuma informação sobre as atividades financeiras do usuário (nem mesmo é possível distinguir uma transação bitcoin contendo um compromisso RGB de um regular), além disso, o destinatário compartilha com o remetente apenas o UTXO cego (ou seja, o hash da concatenação entre o UTXO no qual deseja receber os ativos e um número aleatório) em vez do próprio UTXO, portanto, não é possível para o pagador monitorar as atividades futuras do recebedor. Para aumentar ainda mais a privacidade dos usuários, o RGB também adota o mecanismo criptográfico à prova de balas para ocultar os valores no histórico de transferências de ativos, para que mesmo os futuros proprietários de ativos tenham uma visão ofuscada do comportamento financeiro dos detentores anteriores.

Em termos de escalabilidade, o RGB também oferece algumas vantagens. Em primeiro lugar, a maior parte dos dados é mantida off-chain, pois o blockchain é usado apenas como uma camada de compromisso, reduzindo as taxas que precisam ser pagas e fazendo com que cada cliente valide apenas as transferências que lhe interessam, em vez de todas as atividade de uma rede global. Como uma transferência RGB ainda requer uma transação Bitcoin, a economia de taxas pode parecer mínima, mas quando você começa a introduzir lotes de transações, eles podem se tornar enormes rapidamente. De fato, é possível transferir todos os tokens (ou, de forma mais geral, “direitos”) associados a um UTXO para uma quantidade arbitrária de destinatários com um único compromisso em uma única transação bitcoin. Vamos supor que você seja um provedor de serviços fazendo pagamentos para vários usuários ao mesmo tempo. Com o RGB, você pode comprometer em uma única transação Bitcoin milhares de transferências para milhares de usuários solicitando diferentes tipos de ativos, tornando o custo marginal de cada pagamento único absolutamente insignificante.

Outro mecanismo de economia de taxas para emissores de ativos de baixo valor é que no RGB a emissão de um ativo não exige o pagamento de taxas. Isso acontece porque a criação de um contrato de emissão não precisa ser confirmada na blockchain. Um contrato simplesmente define a qual UTXO já existente os ativos recém-emitidos serão alocados. Portanto, se você é um artista interessado em criar tokens colecionáveis, pode emitir quantos quiser gratuitamente e só pagar a taxa de transação do bitcoin quando um comprador aparecer e solicitar que o token seja atribuído ao seu UTXO.

Além disso, como o RGB é construído sobre as transações de bitcoin, ele também é compatível com a Lightning Network. Embora ainda não esteja implementado no momento da redação deste artigo, será possível criar canais Lightning específicos para ativos e rotear pagamentos por meio deles, de maneira semelhante à forma como funciona com transações Lightning normais.

Conclusão

O RGB é uma inovação revolucionária que se abre para novos casos de uso usando um paradigma completamente novo, mas quais ferramentas estão disponíveis para usá-lo? Se você quiser experimentar o núcleo da própria tecnologia, experimente diretamente o nó RGB. Se você deseja criar aplicativos em cima do RGB sem ter que se aprofundar na complexidade do protocolo, pode usar o biblioteca rgb-lib, que fornece uma interface simples para desenvolvedores. Se você quiser apenas tentar emitir e transferir ativos, pode jogar com Carteira Iris para Android, cujo código também é open source em GitHub. Se você quer apenas aprender mais sobre RGB, você pode conferir esta lista de recursos.

Este é um post de convidado de Federico Tenga. As opiniões expressas são inteiramente próprias e não refletem necessariamente as da BTC Inc ou da Bitcoin Magazine.

Carimbo de hora:

Mais de Bitcoin Magazine