Básico
Spot
Opera con criptomonedas libremente
Margen
Multiplica tus beneficios con el apalancamiento
Convertir e Inversión automática
0 Fees
Opera cualquier volumen sin tarifas ni deslizamiento
ETF
Obtén exposición a posiciones apalancadas de forma sencilla
Trading premercado
Opera nuevos tokens antes de su listado
Contrato
Accede a cientos de contratos perpetuos
TradFi
Oro
Plataforma global de activos tradicionales
Opciones
Hot
Opera con opciones estándar al estilo europeo
Cuenta unificada
Maximiza la eficacia de tu capital
Trading de prueba
Introducción al trading de futuros
Prepárate para operar con futuros
Eventos de futuros
Únete a eventos para ganar recompensas
Trading de prueba
Usa fondos virtuales para probar el trading sin asumir riesgos
Lanzamiento
CandyDrop
Acumula golosinas para ganar airdrops
Launchpool
Staking rápido, ¡gana nuevos tokens con potencial!
HODLer Airdrop
Holdea GT y consigue airdrops enormes gratis
Launchpad
Anticípate a los demás en el próximo gran proyecto de tokens
Puntos Alpha
Opera activos on-chain y recibe airdrops
Puntos de futuros
Gana puntos de futuros y reclama recompensas de airdrop
Inversión
Simple Earn
Genera intereses con los tokens inactivos
Inversión automática
Invierte automáticamente de forma regular
Inversión dual
Aprovecha la volatilidad del mercado
Staking flexible
Gana recompensas con el staking flexible
Préstamo de criptomonedas
0 Fees
Usa tu cripto como garantía y pide otra en préstamo
Centro de préstamos
Centro de préstamos integral
Centro de patrimonio VIP
Planes de aumento patrimonial prémium
Gestión patrimonial privada
Asignación de activos prémium
Quant Fund
Estrategias cuantitativas de alto nivel
Staking
Haz staking de criptomonedas para ganar en productos PoS
Apalancamiento inteligente
New
Apalancamiento sin liquidación
Acuñación de GUSD
Acuña GUSD y gana rentabilidad de RWA
Juego de cadena completa 101: contratos precompilados
**¿Qué es un contrato precompilado? **
Los contratos precompilados son un método de compromiso que se utiliza en EVM para proporcionar funciones de biblioteca más complejas (normalmente se utilizan para operaciones complejas como el cifrado y el hash). También se puede entender como un contrato especial, y estas funciones no son adecuadas para escribir códigos de operación. Son adecuados para contratos que son simples pero que se invocan con frecuencia, o contratos que son lógicamente fijos pero computacionalmente intensivos. Los contratos precompilados se implementan mediante el código de cliente de nodo y, dado que no requieren un EVM, se ejecutan rápidamente. También es menos costoso para el desarrollador que usar funciones que se ejecutan directamente en el EVM.
Como se puede ver en el siguiente código, la función de ejecución en el contrato evm.go tiene dos ramas: la primera rama es para instanciar el parámetro de índice a través del índice precompilado para especificar el contrato precompilado, y la segunda rama es para especificar el precompilado. contract si no es un contrato precompilado Ese evm se llamará.
// run ejecuta el contrato dado y se encarga de ejecutar precompilaciones con un respaldo al intérprete de código de bytes. func run(evm *EVM, contract *Contract, input []byte, readOnly bool) ([]byte, error) { if contrato.CodeAddr != nil { precompila := PrecompiledContractsHomestead si evm.ChainConfig().IsByzantium(evm.BlockNumber) { precompila = Contratos Precompilados Byzantium } if p := precompila[*contrato.CodeAddr]; p != cero { devuelve RunPrecompiledContract(p, entrada, contrato) } } for _, interprete := rango evm.intérpretes { if interpreter.CanRun(contrato.Código) { if evm.intérprete != intérprete { // Asegurarse de que el puntero del intérprete se restablezca // a su valor actual al regresar. diferir func(i Intérprete) { evm.intérprete = i }(evm.intérprete) evm.intérprete = intérprete } devolver intérprete. Ejecutar (contrato, entrada, solo lectura) } } devuelve cero, ErrNoCompatibleInterpreter }
Si se expresa gráficamente, la lógica específica es la siguiente:
Entonces, ¿dónde está el cuello de botella del contrato precompilado?
Ethereum actualmente tiene ocho contratos precompilados:
Puede ver que los contratos precompilados del primero al cuarto brindan firma básica, hash y otras funciones de encriptación, y del quinto al octavo brindan operaciones de curva elíptica, que están relacionadas con zk-snark.
Entonces, la pregunta es, ¿por qué la precompilación de Ethereum solo admite ocho contratos precompilados?, ¿los contratos precompilados no reducen el consumo de gas? ¿Y por qué no implantar directamente ECS (el marco de todo el juego en cadena) en el contrato precompilado de Ethereum?
De hecho, hay tres razones principales:
En primer lugar, el código del contrato precompilado debe integrarse en el código del nodo del cliente, lo que aumenta la complejidad del cliente. En segundo lugar, los nodos de verificación pueden filtrar el cálculo de los contratos precompilados por razones de seguridad, por lo que la mayoría de las solicitudes de contratos precompilados se completan con nodos completos. Actualmente, solo hay entre 4000 y 6000 nodos completos de Ethereum en el mundo y hay 500 000 de verificación. nodos, que de hecho es mucho más centralizado que los contratos no precompilados.
El soporte de contratos precompilados requiere el proceso EIP, por ejemplo: EIP-196 agrega dos contratos precompilados, ECADD() y ECMUL(), en la curva alt_bn128. EIP-197 agrega la función de emparejamiento en la curva alt_bn128. Básicamente, es hacer que la privacidad esté disponible en Ethereum para soporte, y todo el proceso de EIP es largo y elegante, y esperar a que pase EIP no es un problema realista.
Esto no es mucho para explicar, es muy intuitivo.
¿Qué papel juega el contrato precompilado en todo el juego de la cadena?
Los contratos precompilados omiten EVM y se ejecutan directamente a través de nodos, lo que puede mejorar la eficiencia informática, pero al mismo tiempo reduce el grado de descentralización de toda la cadena. La precompilación de la lógica central de los juegos de uso frecuente puede optimizar el rendimiento de dichos juegos. Los diferentes tipos de juegos tienen diferentes lógicas de teclas. Por lo tanto, para la cadena dedicada de un determinado tipo de juego, su diseño precompilado puede optimizar en gran medida las necesidades de este tipo de juego. Durante el proceso de iteración del juego, se optimizará gradualmente la combinación de contrato precompilado más eficiente.