Guia de referência de parâmetros do protocolo Cardano
Os parâmetros do protocolo no Cardano são as várias configurações que definem o comportamento da blockchain. Alguns parâmetros do protocolo são estáveis e não atualizáveis, enquanto outros podem ser ajustados para se adaptarem às condições em mudança ao longo do tempo.
Exemplos de parâmetros do protocolo Cardano importantes incluem o tamanho máximo do bloco, a estrutura da taxa de transação, o cronograma de produção de blocos e o saldo mínimo de ada necessário para staking (leia mais nas seguintes seções). As escolhas de parâmetros podem ter um impacto significativo no desempenho, segurança e usabilidade da rede, e suas alterações devem ser cuidadosamente consideradas.
O sistema de governança Voltaire para o Cardano visa fornecer uma estrutura flexível e adaptável que pode evoluir ao longo do tempo. Isso inclui monitorar e alterar os vários parâmetros do protocolo. A colaboração de entidades fundadoras (Input Output Global, a Fundação Cardano e EMURGO) com a comunidade permite uma abordagem descentralizada à governança e tomada de decisões. O Cardano pode então responder às condições em mudança e otimizar seu desempenho e funcionalidade para atender às necessidades de seus usuários.
Além disso, o uso de parâmetros do protocolo permite agilidade e inovação dentro da rede, pois novas ideias e propostas podem ser testadas e implementadas sem exigir um hard fork ou outras mudanças disruptivas na arquitetura da rede. Isso permite que o Cardano permaneça na vanguarda da tecnologia blockchain e forneça uma infraestrutura robusta e sustentável para aplicativos (DApps) e serviços descentralizados.
Tipos de parâmetros do protocolo no Cardano
Os parâmetros do protocolo Cardano são classificados da seguinte forma:
- Parâmetros de rede – afetam as propriedades de conectividade e desempenho do Cardano. Exemplos incluem o número máximo de conexões permitidas por nó, algoritmo de descoberta de pares, velocidade de propagação da rede, tamanho do corpo e cabeçalho do bloco, tamanho da transação, etc.
- Parâmetros econômicos – afetam os aspectos econômicos das operações da blockchain. Exemplos incluem parâmetros como a estrutura de taxas de transação, o saldo mínimo de ada necessário para staking ou transações, taxas de Stakepool, configurações de tesouraria, etc.
- Parâmetros técnicos – afetam propriedades técnicas do protocolo como o algoritmo de consenso ou modelos de custo, por exemplo. Estes incluem a influência da promessa de Stakepool, um número-alvo de Stakepool, percentual de garantia, e outros.
- Parâmetros de governança – conforme o Voltaire é implementado, uma nova classe de parâmetros será introduzida para definir o processo de governança.
Os parâmetros do protocolo são atualizáveis ou não atualizáveis:
- Os parâmetros atualizáveis podem ser ajustados por meio de processos de governança. Esses parâmetros podem ser usados para mudar a operação do protocolo produtor de blocos, variar as taxas de transação, definir a influência da promessa, etc.
- Os parâmetros não atualizáveis afetam os fundamentos do protocolo Cardano e são estáveis, o que significa que não podem ser alterados exceto via um hard fork. Parâmetros não atualizáveis incluem aqueles que definem o bloco gênese ou propriedades básicas de segurança, por exemplo. Alguns parâmetros não atualizáveis podem estar embutidos no código-fonte ou implementados como software. Cada versão principal do protocolo define seu próprio conjunto de parâmetros atualizáveis e não atualizáveis.
Os parâmetros atualizáveis são projetados para serem flexíveis e adaptáveis, permitindo que a rede evolua ao longo do tempo em resposta a condições em mudança e necessidades da comunidade. Os parâmetros não atualizáveis, por outro lado, geralmente são definidos no lançamento da rede ou ao introduzir mudanças importantes no protocolo e são destinados a fornecer uma base estável e segura para as operações da rede.
Uma lista de parâmetros atualizáveis do protocolo
Parâmetro | Categoria | Descrição |
---|---|---|
maxBlockBodySize | Rede | Tamanho máximo de um corpo de bloco. Limita o tamanho de armazenamento da blockchain e os custos de comunicação. |
maxTxSize | Rede | Tamanho máximo de uma transação. Embora várias transações possam ser incluídas em um bloco, o tamanho máximo da transação deve ser estritamente menor que o tamanho máximo do bloco. |
txFeePerByte aka minFeeA | Econômico | Taxa adicional por byte de dados de transação (em lovelace). |
lovelacePerUTxOWord aka utxoCostPerWord | Econômico | O depósito cobrado por palavra de armazenamento de UTXO. Este parâmetro define o custo para armazenar UTXOs e protege contra ataques de negação de serviço de baixo custo. |
stakePoolDeposit aka poolDeposit | Econômico | Depósito de pool (em lovelace). |
treasuryCut aka tau | Econômico | Taxa da tesouraria (0.2 = 20%). A proporção de recompensas totais alocadas para a tesouraria a cada época antes que as recompensas restantes sejam distribuídas para os pools. |
minPoolCost | Econômico | Custo mínimo de pool por época (em lovelace), que permite o efeito de promessa. |
txFeeFixed aka minFeeB | Econômico | Taxa base de transação (em lovelace). |
stakeAddressDeposit aka keyDeposit | Econômico | Depósito cobrado por chaves de stake (em Lovelace), que garante que chaves não utilizadas sejam devolvidas, liberando assim recursos. |
monetaryExpansion aka rho | Econômico | Taxa de expansão monetária por época, que governa as recompensas que são retornadas das reservas para o ecossistema (tesouraria, Stakepools e delegadores). |
executionUnitPrices aka executionPrices | Econômico | Os preços de execução são especificados em frações de lovelace por passo de execução de CPU Plutus ou unidade de memória. Eles foram definidos para serem consistentes com o custo de uma transação completa que não contém scripts Plutus. |
poolRetireMaxEpoch aka eMax | Técnico | Número máximo de épocas em que uma pool pode ser anunciado para se aposentar a partir da próxima época. |
collateralPercentage | Técnico | Percentual de taxa usado como garantia para uma transação falhada. |
stakePoolTargetNum (k parameter) aka nOpt | Técnico | O número alvo de Stakepools, também conhecido como k, impacta o limiar de saturação e incentiva o crescimento de Stakepools. |
maxCollateralInputs | Técnico | Número máximo de entradas de garantia em uma transação. |
maxValueSize | Técnico | O limite no tamanho serializado do valor em cada saída. |
costModels | Técnico | Modelos de custo Plutus. |
maxBlockExecutionUnits/exUnitsMem | Rede/Técnico | Número máximo de etapas de execução de Plutus que podem ser usadas em um único bloco. |
maxBlockHeaderSize | Rede/ Técnico | Tamanho máximo do cabeçalho do bloco, que deve ser significativamente menor que o tamanho máximo do bloco. |
maxTxExecutionUnits/ exUnitsMem | Rede/ Técnico | Número máximo de unidades de memória Plutus que podem ser usadas em uma única transação. |
maxTxExecutionUnits/ exUnitsSteps | Rede/Técnico | Número máximo de etapas de execução Plutus que podem ser usadas em uma única transação. |
protocolVersion | Técnico/ Requer um hard fork | Versão do protocolo. As principais versões são "hard forks" como Byron (1), Shelley (2), Allegra (3), etc. |
poolPledgeInfluence aka a0 | Econômico/ Técnico | O 'fator de influência' que governa quanto impacto a promessa tem sobre as recompensas. |
Você pode encontrar uma lista de parâmetros do protocolo não atualizáveis aqui.
CIP-09, CIP-28, e CIP-55 fornecem uma visão geral dos parâmetros do protocolo nas eras Shelley, Alonzo e Babbage.