Pular para o conteúdo

    Aperte / para buscar e [ ou ] para ir à página anterior ou à próxima.

    Como funciona por dentro

    Preços: a precompilada BBO

    O Exchange lê os preços direto do livro de ofertas da própria Hyperliquid por meio de uma precompilada da EVM. Sem oráculo off-chain, sem robô de preços, sem assinante de preços.

    Implementação técnica da precompilada BBO

    Uma exchange de perpétuos precisa de preços para duas tarefas: executar operações e decidir quando as posições são liquidadas. Na maioria das redes, isso significa confiar num operador de oráculo, ou num feed descentralizado lento e caro, ou conviver com o risco de que quem publica os preços possa congelar o mercado simplesmente parando de publicar.

    A HyperEVM oferece outro caminho. A HyperCore, a camada que roda os livros de ofertas da Hyperliquid, pode ser lida pelos contratos da HyperEVM por meio de precompiladas de leitura: contratos de sistema em endereços fixos que devolvem o estado ao vivo da HyperCore, preços incluídos. O Exchange usa a precompilada BBO em 0x000000000000000000000000000000000000080e. Dado um índice de ativo da Hyperliquid (na mainnet, BTC é 0 e ETH é 1), ela devolve a melhor oferta de compra e a melhor oferta de venda atuais desse perpétuo:

    (ok, bid, ask) = HyperCore.readBbo(assetIndex, precompileGas)   // a static call with a fixed gas allowance
    require(ok && bid != 0 && ask != 0 && ask >= bid)                // an empty or crossed book reverts
    

    O preço de execução é o ponto médio, arredondado para baixo, nas unidades brutas de preço do mercado (o preço da Hyperliquid vezes uma escala própria de cada mercado):

    price = (bid + ask) / 2
    

    Esse é todo o processo de formação de preço. Todas as leituras de um bloco veem a mesma foto, e o Exchange guarda em cache o preço de cada mercado pelo resto da chamada, então toda abertura, fechamento e liquidação de um mercado num bloco usa o mesmo preço.

    O que se perde e o que se ganha

    O custo é claro: só podem ser listados mercados que já são negociados no livro da Hyperliquid. Nada que a Hyperliquid não liste pode ser negociado aqui.

    Em troca, a formação de preço não tem nenhuma parte off-chain. O BBO é estado da HyperCore, verificado pelo consenso da Hyperliquid como os saldos do registro dela. Não há assinante de preços nem comitê de oráculos; o preço que o Exchange vê é o que os formadores de mercado da Hyperliquid cotam naquele bloco, e qualquer contrato pode lê-lo.

    Sem disjuntor de desvio

    Alguém pode tentar mexer no livro da Hyperliquid durante um bloco, abrindo o spread ou deslocando as melhores cotações, e operar aqui contra o preço médio distorcido. Esse é um risco real de usar o BBO diretamente.

    Uma leitura reverte a operação quando a precompilada não responde, quando um dos lados do livro é zero ou quando o livro está cruzado; um livro travado, com compra igual à venda, é aceito. Os contratos também têm proteções de preço: um spread máximo e faixas que comparam o preço médio com os preços de marcação e de oráculo da Hyperliquid. Elas estão desligadas na configuração implantada, que mantém de propósito as execuções no preço médio bruto, então um livro manipulado, mas diferente de zero e não cruzado, é aceito. A zona morta, a curva de impacto, os tetos de contratos em aberto por lado e a curta retenção do relayer sobre fechamentos de posições recém-abertas (6 segundos) reduzem alguns ganhos e limitam a exposição; eles não tornam a manipulação não lucrativa nem limitam a perda do LP. Veja Riscos.

    A única alavanca em tempo real: retirar um mercado

    Uma ação administrativa sobre preços tem efeito imediato: retirar um mercado. O guardião chama pauseMarket(instrumentId), que grava o BBO atual como compra e venda congeladas e marca o mercado como retirado. A partir daí:

    • novas aberturas nesse mercado são revertidas;
    • fechamentos e liquidações continuam funcionando, no livro congelado em vez do livro ao vivo.

    A retirada é permanente: ninguém, nem mesmo o dono, pode reabrir esse id de mercado. Se um mercado retirado pudesse voltar, os detentores poderiam escolher entre o preço congelado e o preço ao vivo posterior, e o próprio momento da reabertura viraria algo a ser explorado. Se o mercado voltar, ele é listado de novo com um id novo. O preço congelado permite parar um mercado sem deixar as posições presas: elas ainda podem ser fechadas a um preço que fazia sentido no momento da intervenção. A retirada é por mercado, então um problema com um ativo não interrompe os outros.

    Se o próprio livro estiver inutilizável ou pouco confiável naquele momento, o guardião pode, em vez disso, retirar o mercado ao preço de marcação ou de oráculo da Hyperliquid (retireMarket com essa fonte); uma leitura de BBO que falha recorre automaticamente ao preço de marcação. O guardião também pode pausar o trading em todos os mercados com setTradingPaused(true), sem congelar preços: fechamentos e liquidações continuam usando o livro ao vivo, e só o dono pode suspender a pausa.

    Fora os tetos de contratos em aberto e os mínimos de operação do keeper de mercados, a escolha do keeper de fora do horário entre as duas curvas de pagamento e a remoção de um builder pelo multisig de governança, todas as outras ações administrativas (taxas, parâmetros de impacto, listagens, keepers, atualizações) são ações do dono pelo timelock.

    Última atualização: