Prefácio

Um inovador padrão de inscrição MRC20 apareceu no ecossistema sui há alguns dias, e seu primeiro token $Move causou certo entusiasmo na comunidade. Depois de receber a notícia, cliquei imediatamente no site oficial: https://mrc20.fun/ para me preparar para o mint.

O site oficial é muito simples. Na página de casting, existem apenas as seguintes informações básicas das inscrições e um botão azul Mint. Uma frase abaixo do botão resume a inovação deste padrão de inscrição - "Todos os custos de fundição serão armazenados em sua inscrição, e você poderá recuperá-los queimando sua inscrição, após cada rodada. Sua inscrição será enviada para seu endereço" .

Como nunca tinha sido exposto à linguagem Move antes e esta frase me deixou muito curioso sobre seu princípio de implementação, estudei cuidadosamente o Twitter do autor, as postagens do blog e o código-fonte aberto do GitHub e produzi este artigo.

Histórico do autor

jolestar (Twitter: @jolestar) é um especialista técnico bom em programação e redação. Como pode ser visto em seu blog pessoal (https://jolestar.com/), ele produz artigos e artigos técnicos desde 2007. Insights sobre a vida. Você também pode ver em sua página pessoal no Github que os três projetos na introdução estão todos relacionados à linguagem Move.

Jolestar disse que vem mexendo no Move há 19 anos. Além disso, ele também lançou um projeto de caridade para educação de idiomas Move - o Star Navigation Project (uma homenagem ao filme Star Trek). receba uma recompensa em dinheiro, com o objetivo de contribuir para o ecossistema Move.

Portanto, pelas informações acima, podemos saber que jolestar é um desenvolvedor muito familiarizado com o ecossistema Move.

OFVM

Todos sabemos que o BRC20 incorpora texto JSON na inscrição para representar o nome e a quantidade do token e usa NFT (Token Não Fungível, token não fungível) para implementar a função FT (Token Fungível, moeda de token homogêneo). pode ser essencialmente classificado como uma OFVM (Semi-Fungible Token, ativo semifungível).

Claro, SFT não é o primeiro da jolestar Já em setembro de 2022, nossa equipe chinesa @SolvProtocol liderou o projeto e o aprovou oficialmente como o novo padrão de token ERC-3525 da Ethereum.

Tokens fungíveis significam que cada token é igual em função e valor, sem qualquer diferença, e podem ser substituídos entre si. 1 BTC = 1 BTC. Tokens não fungíveis significam que cada token é único. BAYC, tokens semifungíveis combinam as características de tokens homogêneos e tokens não fungíveis. A chave é Slot. Simplificando, Slot representa uma classificação. Haverá vários IDs (identificadores exclusivos) no mesmo Slot. um valor diferente (número de tokens), diferentes IDs no mesmo Slot podem ser considerados iguais e podem ser trocados, combinados e divididos.

Tomemos como exemplo os pontos do cartão de membro. Suponha que haja dois slots, ou seja, cartão de membro KFC e cartão de membro Starbucks, e Musk solicitou cartões de membro no KFC e no Starbucks, respectivamente. isso não é fungível, mas os pontos do Cartão Satoshi 1 no KFC podem ser transferidos para o Cartão 2 e o Cartão 3. Da mesma forma, os pontos do Cartão Musk 2 e do Cartão 3 no Starbucks podem ser mesclados no Cartão 1. Pontos sob IDs diferentes em o mesmo slot são homogêneos.

Substitua os pontos acima pelos ordi e sats do brc20, conforme mostrado na figura abaixo. Cada tipo de token pode ser considerado como um slot. O número diferente de inscrições registradas em cada slot pode ser considerado como um token semi-homogêneo. Cada inscrição possui um ID de inscrição exclusivo e cada inscrição contém Não há diferença no ordi.

conceito de design

Antes de falar sobre o conceito de design do Movescription, vamos primeiro dar uma olhada nos dias em que “milhares de cadeias voavam juntas” há algum tempo. A maioria das cadeias evm se referiam ao modelo eths ao projetar inscrições, ou seja, “enviar uma transação por meio de rotação”. ou para um endereço de buraco negro.” transfira e anexe um conjunto de texto formatado em JSON semelhante ao brc20 no calldata e, em seguida, crie um indexador para indexar os dados na cadeia para concluir a contabilidade. "Este método é imitar o brc20 do forma de armazenar dados na cadeia, pode-se dizer que é “semelhante na aparência, mas não semelhante no espírito”, e não aproveita o contrato inteligente da própria cadeia.

Assim, o autor apresentou seu conceito de design no seguinte tweet (o texto a seguir é um resumo condensado, clique no link para o texto completo: https://x.com/jolestar/status/1737652966142959982?s=20 para visualizar)

Como não existe contrato inteligente no Bitcoin, é necessário usar o método de inscrição JSON para emitir FT. No entanto, não há necessidade de usar JSON em outras cadeias de contratos inteligentes, então resumi várias revelações de inscrição: 1. É. uma espécie de semi-homogeneidade Como activo, a sua liquidez não é tão boa como a FT, mas isto é uma vantagem na fase inicial do mercado. 2. O seu limiar para a emissão de activos é inferior ao FT em cada cadeia e o seu custo cognitivo também é baixo. A emissão de ativos em cada cadeia geralmente requer a implantação de um contrato inteligente, e a identificação ocorre principalmente por meio do endereço do contrato, o que é difícil para iniciantes. Esta onda de inscrições basicamente reduziu esse limite ao nível mais baixo. 3. Seu modelo de emissão justo, em Bitcoin, pode ser entendido como o modelo de emissão PoW de arrendamento de mineradores por meio de Gás.

Nesse caso, por que não usamos contratos inteligentes para implementar um protocolo de inscrição que tenha as características acima? Então tentei usar o Move para implementar o protocolo Movementscriptions. Primeiro, é um protocolo de ativos semifungíveis expresso por meio do Move. A expressão de ativos baseada em estrutura de dados do Move é ideal para expressar este protocolo. 1. Use tick, um nome globalmente exclusivo, para expressar as lições de desenho do BRC20, ele está em conformidade com o princípio KISS e é simples e intuitivo. 2. O valor pode ser usado para expressar o saldo do FT ou o valor chave no NFT. 3. Os metadados podem ser anexados a qualquer tipo de dados. Em segundo lugar, apoia a distribuição de activos através do PoW, garantindo que a distribuição de activos seja mais justa e mais descentralizada. Eu chamo isso de inscrição inteligente.

-jolestar

expressão de ativos

“O método de expressão de ativos do Move baseado na estrutura de dados é muito adequado para expressar esse tipo de acordo.” Como devemos entender o que Jolestar disse?

Em primeiro lugar, a linguagem Move introduz o conceito de Recurso, que também é a maior diferença entre Solidity e Move. Ela enfraquece os atributos digitais e enfatiza os atributos dos ativos, tornando o Move seguro e poderoso.

Os ativos no sistema de linguagem Solidity são codificados no EVM como um mapeamento de "endereço -> ativos". Os ativos só podem ser transferidos adicionando ou subtraindo valores em endereços diferentes. Eles não podem ser passados ​​como parâmetros, retornados de. funções ou armazenado em outro local em um ativo, esse método de contabilidade pode ser facilmente usado por hackers para encontrar brechas para ataques de reentrada e gasto duplo. Conforme mostrado na figura abaixo, é assim que funciona um token erc20 típico.

No sistema de linguagem Move, os ativos são definidos como recursos de primeira classe, traduzido literalmente como recursos são cidadãos de primeira classe, o que significa que os recursos precisam ser o principal objeto de programação a ser considerado e têm duas restrições, nomeadamente escassez e direitos de acesso. .

Na vida real, a escassez é um atributo importante dos activos físicos. Por exemplo, o ouro não será emitido do nada nem desaparecerá repentinamente, mas não há escassez física inerente aos activos digitais. Portanto, o Move acredita que os ativos digitais devem reforçar essa escassez de alguma forma programática; portanto, o Move abstrai quatro atributos para vários tipos: cópia (copiável), chave (indexável), dropável (descartar) e armazenável (armazenar).

Porém, uma vez que a variável é declarada como tipo de recurso, ela só pode usar atributos Key e Store, e não pode ser adicionada com atributos Copy e Drop. Isso garante a escassez do tipo de recurso de uma estrutura gramatical.

Um recurso simples é mostrado na figura abaixo, que explica o que o autor chama de forma de expressar ativos com base em estruturas de dados.

Vamos dar uma olhada em como os recursos são transferidos no sistema Move. Em primeiro lugar, todos os dados de Recursos devem ser armazenados na conta, porque somente quando a conta for atribuída, os ativos de Recursos correspondentes existirão. Em segundo lugar, desde que cada Recurso seja retirado da conta, ele deverá ser "usado" usando. o move_to integrado Depois que o método retira o ativo da conta, ele o passa como um valor de retorno para a nova conta ou o destrói. Como mostrado abaixo:

composibilidade de ativos

Como mencionado anteriormente, Resource é uma estrutura especial. No Move, as estruturas podem ser aninhadas umas nas outras. Veja o Movescription como exemplo. . Da mesma forma, o MoveScription também pode ser aninhado em outros recursos, assim como os blocos de Lego.

Desta forma, o MoveScription quebra a maldição de que muitas inscrições no Brc20 só possuem narrativas Meme, podendo construir diversas aplicações ecológicas, como como ativo em jogos, como garantia em Defi, etc.

Resumir

Neste ponto, acredito que você já possa entender que o conceito de design da inscrição Movescription é semelhante ao do BRC20. Na carteira, cada Movescription é um NFT (análogo ao Inscription). Cada Movescription possui um Object id (análogo ao Inscription id). Mas a sua vantagem é que ela faz bom uso da vantagem da linguagem Move na expressão de recursos e realmente alcança "semelhança na forma e no espírito".

Referências:

1. https://medium.com/@ThreeDAO/%E4%B8%87%E7%89%A9%E7%A0%94%E7%A9%B6%E9%99%A2-sui%E4%B8% BB%E7%BD%91%E4%B8%8A%E7%BA%BF%E5%9C%A8%E5%8D%B3-%E4%B8%80%E6%96%87%E4%BA%86 %E8%A7%A3%E5%85%B6%E8%83%8C%E6%99%AF-%E7%89%B9%E6%80%A7%E5%92%8C%E4%B8%8Eaptos% E7%9B%B8%E6%AF%94%E4%BC%98%E5%8A%A3%E5%8A%BF-c1c75c94c9b5

2.https://medium.com/huobi-research/move%E8%AF%AD%E8%A8%80%E7%9A%84%E5%88%9B%E6%96%B0%E5%92% 8C%E6%9C%BA%E9%81%87-409f01d4d51b

3.https://mirror.xyz/bocaibocai.eth/q3s_DhjFj6DETb5xX1NRirr7St1e2xha6uG9x3V2D-A

4.https://jolestar.com/why-move-1/