Ethereum usa uma constante BLOB_BASE_FEE_UPDATE_FRACTION Ao atualizar a taxa base do blob a cada bloco, com a mudança proporcional na taxa calculada como:

math.exp((blob_gas_used - TARGET_BLOBS * GAS_PER_BLOB) / BLOB_BASE_FEE_UPDATE_FRACTION)

Um novo valor para essa constante foi incluído em cada EIP que altera o gás Blob de destino. Acontece que existe uma generalização simples para calcular a constante, consistente com o valor definido no EIP-4844 e EIP-7691, que seria apropriado apenas para o parâmetro BLOB (BPO) Hardforks do EIP-7892. Este cálculo generalizado de fração de atualização, também especificado aqui, é:

BLOB_BASE_FEE_UPDATE_FRACTION = round(MAX_BLOBS * GAS_PER_BLOB / (2 * math.log(1.125)))

Matematicamente, podemos expressar o valor ideal (não arredondado) como

b = \ frac {m} {2 \ ln (1.125)},

onde m é o gás máximo por bloco por bloco. Para ver por que isso generaliza o EIP-4844 e o EIP-7691, agora configuraremos as equações usadas por esses eips e derivaremos a fórmula generalizada deles.

Exposição

Definir t como o gás de blob alvo por bloco. Sob EIP-4844, o alvo está na metade do máximo: t = m/2e a taxa base do blob foi projetada para aumentar ou diminuir em um máximo de 1,125 e 1/1,125 por bloco quando o uso do blob está no seu máximo ou mínimo, respectivamente. Na Max Blob Gas consumida, a equação para a mudança proporcional na taxa se torna

e^{\ frac {mt} {b}} = e^{t/b} = 1.125.

Levando o logaritmo natural de ambos os lados e reorganizando para bentão substituindo t = m/2produz a equação especificada:

b = \ frac {t} {\ ln (1.125)} = \ frac {m} {2 \ ln (1.125)}.

Sob o EIP-7691, o BLOB_BASE_FEE_UPDATE_FRACTION é derivado como “o ponto médio entre manter a capacidade de resposta a blobs completos e sem blobs constantes”. O b Isso mantém a resposta à constante “Blobs completa” é

b_ \ text {completo} = \ frac {m – t} {\ ln (1.125)}.

O b Isso mantém a resposta à constante “sem blobs” é

b_ \ text {empty} = \ frac {-t} {\ ln \ left (\ frac {1} {1.125} \ right)},

que através da regra do logaritmo: \ ln (1/x) = -\ ln (x)torna -se

b_ \ text {empty} = \ frac {t} {\ ln (1.125)}.

O “ponto médio” (b_ \ text {completo}+b_ \ text {empty})/2 simplifica para a equação generalizada:

b = \ frac {1} {2} \ esquerda (\ frac {m – t} {\ ln (1.125)} + \ frac {t} {\ ln (1.125)} \ direita) = \ esquerda (\ frac {m – t + t} {2 \ 2 \ 2 \ 2 \ l (\ \ \ frac {m – t + t} {2 \ 2 \ 2 \ l (\ \ \ frac {m – t + t} {2 \ 2 \ \ frac {m} {2 \ ln (1.125)}.

Aplicativo

A equação generalizada fornece alterações percentuais satisfatórias em qualquer razão. A Tabela 1 descreve alguns exemplos.

Max: TargetCompleto %Vazio %Fator completo 1.125^kFator vazio 1.125^k
5 {:} 4+4,82 \%-17,18 \%k = \ tfrac {2} {5}k = -\ tfrac {8} {5}
4 {:} 3+6,07 \%-16,19 \%k = \ tfrac {1} {2}k = -\ tfrac {3} {2}
3 {:} 2+8.17 \%-14,53 \%k = \ tfrac {2} {3}k = -\ tfrac {4} {3}
2 {:} 1+12,50 \%-11,11 \%k = 1k = -1
3 {:} 1+17,00 \%-7,55 \%k = \ tfrac {4} {3}k = -\ tfrac {2} {3}
4 {:} 1+19.32 \%-5,72 \%k = \ tfrac {3} {2}k = -\ tfrac {1} {2}
5 {:} 1+20,74 \%-4,60 \%k = \ tfrac {8} {5}k = -\ tfrac {2} {5}

Tabela 1. Impacto para blocos cheios e vazios em vários índices máximos: alvo com a fração de atualização generalizada.

Nota nas colunas 4 e 5 que a taxa básica muda por um fator de 1.125^konde k é uma função do gás de blob consumido g:

k (g) = \ frac {2 (g – t)} {m}.

Há uma simetria de razão complementar em torno de 2: 1. A magnitude de k é preservado quando o alvo é movido uma distância igual acima ou abaixo do ponto intermediário (m/2). Especificamente, k_ \ text {completo} (m {:} t) = -k_ \ text {empty} (m {:} (mt)) e k_ \ text {completo} (m {:} (mt)) = -k_ \ text {empty} (m {:} t)que, por exemplo, se aplica aos índices complementares 3 {:} 1 e 3 {:} 2 assim como 4 {:} 1 e 4 {:} 3.

Extensão para a normalização do gás

A equação generalizada se estende naturalmente à abordagem de normalização do gás descrita no EIP-7999. Essa abordagem dissocia a fração de atualização de qualquer limite específico de recurso por ser mais direto: normaliza o delta de gás (GT) Dividindo -o pelo gás máximo m (referido no EIP-7999 como o limite) ao atualizar a execução excess_gas. Isso permite uma única fração de atualização universal – independente de m – Ser usado para todos os recursos, independentemente de seus limites individuais.

As duas abordagens diferem apenas em quando a divisão por m ocorre. Na equação generalizada, m é colocado no numerador da fração de atualização b. Desde b O próprio é usado como denominador no expoente de atualização de taxas, (GT)/bisso efetivamente coloca m no denominador do cálculo geral.

Por fim, o fator final de mudança de taxa:

1.125^{\ frac {2 (gt)} {m}}

permanece o mesmo. No entanto, a normalização torna a arquitetura mais robusta, garantindo que o preço permaneça estável se o limite de um recurso for alterado, pois esse limite já é parte do normalizado excess_gas atualizar.

Pontos finais

O objetivo deste post foi o seguinte:

  1. Para expor por que A equação proposta generaliza os EIPs anteriores.
  2. Apresentar o efeito da equação proposta em várias taxas max: alvo, ilustrando alterações percentuais razoáveis ​​e a simetria de proporção complementar.
  3. Para preparar o cenário para otimização adicional no EIP-7999. A peça final do quebra -cabeça é aproveitar as propriedades de generalização da equação, mas aplicar m em um estágio anterior, já ao atualizar o excess_gas.
  4. Durante o último ACDE, vários participantes reconheceram apenas as propriedades gerais após a conclusão da discussão (via bate -papo). Esta postagem pode servir como um local para uma conversa mais informada sobre o estabelecimento da equação proposta como padrão para a fração de atualização daqui para frente.

Fontesethresear

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *