Avançar para o conteúdo principal

Metadados e Reivindicações

Como o recurso de metadata and claims do protocolo Celo possibilita a conexão on-chain com identidades off-chain.


Casos de uso

  • As ferramentas desejam apresentar metadados públicos fornecidos por um validador ou grupo de validadores como parte de uma lista de grupos de candidatos ou uma lista de validadores eleitos atuais.
  • As UIs do Governance Explorer podem querer apresentar metadados públicos sobre os criadores de propostas de governança
  • A Fundação Celo é notificada de uma vulnerabilidade de segurança e quer contactar os validadores eleitos para os facilitar a tomada de uma decisão sobre a aplicação de uma atualização.
  • Um DApp faz uma solicitação para o Celo Wallet para informações da conta ou para assinar uma transação. O Celo Wallet deve fornecer informações sobre o DApp para permitir que o usuário tome uma decisão assinando a transação ou não.

Além disso, estas ferramentas podem incluir informações escolhidas pelo usuário, tais como nomes ou imagens de perfil que seriam caras de armazenar na cadeia. Para este propósito, o protocolo Celo suporta metadados que permite que as contas façam reivindicações verificáveis e não verificáveis. O design está descrito em CIP3.

No contrato inteligente de Accounts, qualquer conta pode registrar uma URL sob a qual seu arquivo de metadados está disponível. O arquivo de metadados contém uma lista de reivindicações não ordenadas, assinadas pela conta.

Tipos de Reivindicações

ContractKit atualmente suporta os seguintes tipos de reivindicação:

  • Name Claim - Uma conta pode criar um nome legível. Esta reclamação não é verificável.

  • Reivindicação de URL do Serviço de Atestado - Para a camada de identidade leve, os validadores podem fazer uma declaração sob a qual seu Serviço de Atestado é acessível para fornecer atestados. Esta reclamação não é verificável.

  • Keybase User Claim - Contas podem reivindicar nomes de usuário do Keybase. Esta reivindicação é verificável através da assinatura de uma mensagem com a conta e hospedando-a no caminho acessível ao público do sistema de arquivos Keybase.

  • Domain Claim - Contas podem fazer reivindicações em nomes de domínio. Esta reivindicação é verificável assinando uma mensagem com a conta e incorporando-a em um registro TXT.

No futuro ContractKit pode apoiar outros tipos de reivindicação, incluindo:

  • Twitter User Claim - Contas podem reivindicar nomes de usuários no Twitter. Esta reivindicação é verificável ao assinar uma mensagem com a conta e postá-la como um tweet. Qualquer cliente pode verificar a reivindicação com uma referência ao tweet na reivindicação.

Handling Metadata

Você pode interagir com arquivos de metadados facilmente através da CLI, ou em seus próprios scripts, ferramentas ou DApps através de ContractKit. A maioria dos comandos requer que um nó esteja disponível em http://localhost:8545 para fazer chamadas de visualização, e para modificar os arquivos de metadados, você precisará que a conta relevante seja desbloqueada para assinar os arquivos.

Pode criar um arquivo de metadados vazio com:

celocli account:create-metadata ./metadata.json --from $ACCOUNT_ADDRESS

Você pode adicionar reivindicações com vários comandos:

celocli account:claim-attestation-service-url ./metadata.json --from $ACCOUNT_ADDRESS --url $ATTESTATION_SERVICE_URL

Você pode exibir as reclamações em seu arquivo e seu status com:

celocli account:show-metadata ./metadata.json

Assim que você estiver satisfeito com suas reivindicações, você pode enviar seu arquivo para seu próprio site ou um site que hospedará o arquivo (por exemplo, https://gist. ithub.com) e, em seguida, registrá-lo com o contrato inteligente Accounts executando:

celocli account:register-metadata --url $METADATA_URL --from $ACCOUNT_ADDRESS

Então, qualquer um pode pesquisar suas reivindicações e verificá-las executando:

celocli account:get-metadata $ACCOUNT_ADDRESS