Pacote de Chaincode CBDC de atacado confidencial

A Edição de Ativos Digitais do Oracle Blockchain Platform inclui código de cadeia de amostra para a versão confidencial do cenário de moeda digital do banco central atacadista (CBDC).

O pacote de chaincode confidencial CBDC grossista implementa métodos para o mesmo cenário que o pacote de chaincode CBDC grossista original, com a adição do recurso de pagamentos confidenciais. O chaincode usa o padrão Token Taxonomy Framework estendido, aprimorado para trabalhar com pagamentos confidenciais e personalizado para o cenário de CBDC de atacado. Tokens que representam moeda fiduciária são mantidos em instituições financeiras e são emitidos e gerenciados por instituições financeiras regulamentadas. Você pode usar o Blockchain App Builder para gerar esse chaincode com base no arquivo de especificação WholesaleCBDC-Confidential.yml em TypeScript.

O pacote chaincode de CBDC de atacado pode ser baixado na console do Oracle Blockchain Platform e inclui os componentes a seguir.
  • WholesaleCBDC-Confidential.zip, um arquivo compactado que contém o chaincode empacotado para implantação.
  • WholesaleCBDC-Confidential.yml, um arquivo de especificação que você pode usar com o Blockchain App Builder para organizar o chaincode WholesaleCBDC Confidential.
  • WholesaleCBDC-Confidential_postman_collection.json, uma coleção Postman que permite testar as APIs no chaincode.
  • README.md, um guia passo a passo para trabalhar com o código da cadeia.

Para obter o pacote de chaincode de CBDC de atacado, no console Ativos Digitais do Oracle Blockchain Platform, clique na guia Ativos Digitais e selecione CBDC de Atacado - Aplicativo Confidencial.

Arquivo de Especificação

O arquivo de especificação CBDC de atacado confidencial (WholesaleCBDC-Confidential.yml) é baseado no arquivo de especificação do Token Taxonomy Framework estendido. Inclui um atributo model, que gera o chaincode específico do aplicativo. Nesse caso, o model: wcbdc cria métodos adicionais para o aplicativo CBDC de atacado quando o chaincode é gerado. Também inclui um atributo confidential, definido como true, que gera o chaincode no modo confidencial. O arquivo de especificação a seguir mostra os atributos confidential e model, bem como os comportamentos necessários.

Observação:

O chaincode de modo confidencial usa compromissos Pedersen, que podem fazer commit somente de valores inteiros. Internamente, os valores de entrada são multiplicados por um expoente de 10, com base no valor decimal no arquivo de especificação, e o resultado é armazenado como um inteiro. Para evitar cálculos inconsistentes ao usar o pacote chaincode, não modifique a linha decimal no arquivo de especificação e sincronize o chaincode.
#
# Copyright (c) 2025, Oracle and/or its affiliates. All rights reserved.
#
confidential: true # Privacy-preserving feature to enable transaction-level confidentiality
assets:
 
# Token asset to manage the complete life cycle of Wholesale CBDC token.
 
    - name: CBDC # Asset name
      type: token # Asset type
      standard: ttf+   # Token standard
      events: true # Supports event code generation for non-GET methods
      model: wcbdc # Supports creation of additional methods for Wholesale CBDC application
 
      anatomy:
          type: fungible # Token type
          unit: fractional # Token unit
 
      behavior: # Token behaviors
          - divisible:
                decimal: 2
          - mintable:
                mint_approval_required: true
          - transferable
          - burnable:
                burn_approval_required: true
          - holdable
          - roles:
                minter_role_name: minter
                burner_role_name: burner
                notary_role_name: notary
                mint_approver_role_name: notary
                burn_approver_role_name: notary
 
      properties: # Custom asset attributes for wholesale CBDC token
 
          - name: Currency_Name # The digital form of the national currency issued by a central bank for wholesale transactions between financial institutions
            type: string
            mandatory: true
 
customMethods: