Futuros
Aceda a centenas de contratos perpétuos
TradFi
Ouro
Plataforma de ativos tradicionais globais
Opções
Hot
Negoceie Opções Vanilla ao estilo europeu
Conta Unificada
Maximize a eficiência do seu capital
Negociação de demonstração
Introdução à negociação de futuros
Prepare-se para a sua negociação de futuros
Eventos de futuros
Participe em eventos para recompensas
Negociação de demonstração
Utilize fundos virtuais para experimentar uma negociação sem riscos
Lançamento
CandyDrop
Recolher doces para ganhar airdrops
Launchpool
Faça staking rapidamente, ganhe potenciais novos tokens
HODLer Airdrop
Detenha GT e obtenha airdrops maciços de graça
Launchpad
Chegue cedo ao próximo grande projeto de tokens
Pontos Alpha
Negoceie ativos on-chain para airdrops
Pontos de futuros
Ganhe pontos de futuros e receba recompensas de airdrop
Investimento
Simple Earn
Ganhe juros com tokens inativos
Investimento automático
Invista automaticamente de forma regular.
Investimento Duplo
Aproveite a volatilidade do mercado
Soft Staking
Ganhe recompensas com staking flexível
Empréstimo de criptomoedas
0 Fees
Dê em garantia uma criptomoeda para pedir outra emprestada
Centro de empréstimos
Centro de empréstimos integrado
Centro de Património VIP
Aumento de património premium
Gestão de património privado
Alocação de ativos premium
Fundo Quant
Estratégias quant de topo
Staking
Faça staking de criptomoedas para ganhar em produtos PoS
Alavancagem inteligente
New
Alavancagem sem liquidação
Cunhagem de GUSD
Cunhe GUSD para retornos RWA
Jogo Full Chain 101: Contratos pré-compilados
**O que é um contrato pré-compilado? **
Os contratos pré-compilados são um método de compromisso usado no EVM para fornecer funções de biblioteca mais complexas (geralmente usadas para operações complexas, como criptografia e hash), e também podem ser entendidas como um contrato especial que não é adequado para escrever opcodes. Eles são adequados para contratos que são simples, mas invocados com frequência, ou contratos que são logicamente fixos, mas computacionalmente intensivos. Os contratos pré-compilados são implementados usando o código do cliente do nó e, como não exigem um EVM, são executados rapidamente. Também é mais barato para o desenvolvedor do que usar funções executadas diretamente no EVM.
Como pode ser visto no código a seguir, a função run no contrato evm.go tem duas ramificações: a primeira ramificação é instanciar o parâmetro de índice por meio do índice pré-compilado para especificar o contrato pré-compilado e a segunda ramificação é especificar o pré-compilado contract se não for um contrato pré-compilado Esse evm será chamado.
// run executa o contrato fornecido e cuida da execução de pré-compilações com um fallback para o interpretador de código de byte. func run(evm *EVM, contract *Contract, input []byte, readOnly bool) ([]byte, error) { if contract.CodeAddr != nil { pré-compila:= PrecompiledContractsHomestead if evm.ChainConfig().IsByzantium(evm.BlockNumber) { precompiles = PrecompiledContractsByzantium } if p := pré-compila[*contract.CodeAddr]; p != nil { return RunPrecompiledContract(p, entrada, contrato) } } for _, interpreter := range evm.interpreters { if interpreter.CanRun(contract.Code) { if evm.interpreter != interpreter { // Certifique-se de que o ponteiro do interpretador está definido para trás // ao seu valor atual ao retornar. defer func(i Interpretador) { evm.interpreter = i }(evm.interpreter) evm.interpreter = interpretador } return interpreter.Run(contract, input, readOnly) } } return nil, ErrNoCompatibleInterpreter }
Se expressa graficamente, a lógica específica é a seguinte:
Onde está o gargalo do contrato pré-compilado?
Atualmente, a Ethereum possui oito contratos pré-compilados:
Você pode ver que do primeiro ao quarto contratos pré-compilados fornecem assinatura básica, hash e outras funções de criptografia, e do quinto ao oitavo fornecem operações de curva elíptica, que estão relacionadas ao zk-snark.
Portanto, a questão é: por que a pré-compilação do Ethereum suporta apenas oito contratos pré-compilados? Os contratos pré-compilados não reduzem o consumo de gás? E por que não implantar diretamente o ECS (a estrutura de todo o jogo da cadeia) no contrato pré-compilado do Ethereum?
Na verdade, existem três razões principais:
Em primeiro lugar, o código do contrato pré-compilado precisa ser integrado ao código do nó cliente, o que aumenta a complexidade do cliente. Em segundo lugar, os nós de verificação podem filtrar o cálculo de contratos pré-compilados por motivos de segurança, portanto, a maioria das solicitações de contratos pré-compilados são concluídas por nós completos. Atualmente, existem apenas 4.000-6.000 nós completos Ethereum no mundo e existem 500.000 verificações nodes, que é de fato muito mais centralizado do que contratos não pré-compilados.
O suporte de contratos pré-compilados requer o processo EIP.Por exemplo: EIP-196 adiciona dois contratos pré-compilados, ECADD() e ECMUL(), na curva alt_bn128. EIP-197 adiciona a função Pairing na curva alt_bn128. Basicamente, é disponibilizar privacidade no Ethereum para suporte, e todo o processo EIP é longo e elegante, e esperar que o EIP passe não é um problema realista.
Isso não é muito para explicar, é muito intuitivo.
Qual é o papel do contrato pré-compilado em todo o jogo da cadeia?
Os contratos pré-compilados ignoram o EVM e são executados diretamente através dos nós, o que pode melhorar a eficiência da computação, mas ao mesmo tempo reduz o grau de descentralização de toda a cadeia. A pré-compilação da lógica principal de jogos usados com frequência pode otimizar o desempenho desses jogos. Diferentes tipos de jogos têm diferentes lógicas de chave. Portanto, para a cadeia dedicada de um determinado tipo de jogo, seu design pré-compilado pode otimizar muito as necessidades desse tipo de jogo. Durante o processo de iteração do jogo, a combinação de contrato pré-compilada mais eficiente será gradualmente otimizada.