Motivação

Os mercados de previsão estão crescendo rapidamente (volume de aproximadamente US$ 9 bilhões no Polymarket em 2024, mais de US$ 20 bilhões em 2025), mas a segurança da Oracle não está acompanhando. Os oráculos existentes (UMA, Kleros) dependem de tokens de governação para a segurança económica. Isto tem sido explorado na prática: quando mais de US$ 7 milhões em apostas dependem de um token com valor de mercado de US$ 50 milhões, a economia de ataque torna-se favorável.

As vulnerabilidades de raiz: votação linear ponderada pelas apostas (as baleias dominam), conjuntos de eleitores previsíveis (permite a coordenação) e orçamentos de segurança limitados por capitalização de mercado simbólica de governação.

Proponho uma abordagem diferente: um oráculo onde a segurança é denominada em ETH e escala de custos de ataque com o valor de mercado da ETH em vez de um token de governança.

Arquitetura

ETH Deposit -> Liquid Staking (Lido/RocketPool/cbETH) -> ~2.8-3% APY
                     |
              Validator Pool (global, single pool for all markets)
                     |
              VRF Panel Selection (per market)
                /         \
          Panel A          Panel B        <- simultaneous, independent
          (commit-reveal)  (commit-reveal)
                \         /
                 Compare
                   |
           A = B -> finalize (48h)
           A != B -> Panel C (VRF, disjoint set) -> 2-of-3 rule (96h)

O protocolo combina três primitivas: peso de votação quadrático, painéis aleatórios baseados em VRF e resolução paralela de múltiplas rodadas. Cada um é bem estudado individualmente (QV com classificação, QSort, recursos Kleros). A contribuição é a sua síntese em um protocolo oráculo onde as fraquezas de cada primitivo são cobertas pelas demais.

Projeto de Protocolo

1. Staking de ETH com Peso Quadrático

Os validadores depositam ETH (mínimo 1 ETH) no protocolo. Os depósitos são roteados por meio de um provedor de staking líquido, de modo que o ETH apostado gera rendimento (~2,8-3% APY). Distribuição: 80% para validadores, 20% para o pool de recompensas.

Períodos de bloqueio: bloqueio de entrada de 14 dias (evita ataques flash – um invasor não pode depositar e participar imediatamente), bloqueio de saída de 14 dias (garante que o corte possa ser aplicado antes da retirada).

Peso da votação:

W_i = \sqrt{S_i}

Este é o mecanismo chave contra o domínio das baleias. O custo da influência é quadrático:

Estaca Peso Linear Peso Quadrático Custo por voto
1 ETH 1 1 1 ETH
4ETH 4 2 2 ETH
25 ETH 25 5 5ETH
100 ETH 100 10 10 ETH

Um ator racional dividirá a participação entre carteiras: 100 carteiras x 1 ETH = 100 votos para 100 ETH, versus 10.000 ETH para 100 votos em uma carteira. Esta estratégia Sybil é esperada e levada em conta – ela muda o problema do invasor de “comprar tokens suficientes” para “registrar e bloquear milhares de carteiras por 14 dias”, o que é ao mesmo tempo intensivo em capital e detectável. Veja a análise de ataque abaixo para o cálculo completo do custo.

2. Seleção do painel VRF

Quando um mercado precisa de resolução, o protocolo seleciona um painel aleatório do conjunto de validadores globais:

\text{seed} = \text{VRF}(\text{marketId}, \text{roundNumber}, \text{blockHash})

A seleção é uma amostragem aleatória ponderada sem reposição – a probabilidade de seleção de cada validador é proporcional a \sqrt{\text{estaca}}.

Dimensionamento do painel escala com o volume do mercado (participações mais altas → painéis maiores → mais difíceis de manipular):

Volume de mercado Faixa de tamanho do painel Pool mínimo necessário
50-200 600
US$ 100 mil a US$ 1 milhão 100-500 1.500
> US$ 1 milhão 300-2.000 6.000

A piscina deve conter pelo menos 3 \times \text{maxPanelSize} validadores elegíveis para garantir que três painéis separados sejam possíveis (para as rodadas 1, 2 e uma possível rodada 3).

Quorum: 30% do tamanho do painel. Caso o quórum não seja atingido dentro do prazo de revelação, o prazo se estende por 24h (uma vez). Se ainda assim não for cumprido, a rodada será padronizada com o resultado da outra rodada. Se nenhuma rodada atingir o quórum, o mercado será marcado como insolúvel e todas as apostas serão devolvidas sem cortes.

Exclusão entre rodadas:

\text{Excluído}_{R2} = \text{Painel}_{R1}
\text{Excluído}_{R3} = \text{Painel}_{R1} \cup \text{Painel}_{R2}

Um validador não pode votar duas vezes no mesmo mercado. Isto garante que cada rodada seja decidida por um conjunto diferente de validadores.

3. Votação Paralela de Comprometimento-Revelação

A escolha principal do design: rodadas 1 e 2 executadas simultaneamente em painéis independentes.

Panel A:  ( Commit 24h )( Reveal 24h )
                                       -> Compare results
Panel B:  ( Commit 24h )( Reveal 24h )
 t=0                                  t=48h

Fase de confirmação: cada validador envia um hash:

\text{compromisso} = \text{keccak256}(\text{voto} \| \text{sal} \| \text{endereço})

Fase de revelação: o validador revela o voto em texto simples e o sal. O contrato verifica as correspondências de hash.

Por que o paralelo é importante: em sistemas sequenciais, o resultado de R1 é público antes do início de R2. Isto vaza informações – os eleitores do R2 podem ancorar-se no resultado do R1 em vez de votar de forma independente. Painéis paralelos são jogos de pontos de Schelling verdadeiramente independentes. Cada painel chega a um consenso sem saber o que o outro decidiu.

Finalização (regra 2 de 3):

R1 R2 R3 Resultado Final Tempo
SIM SIM SIM 48h
NÃO NÃO NÃO 48h
SIM NÃO voto 2 de 3 96h
NÃO SIM voto 2 de 3 96h

Quando R1 e R2 concordam, o resultado é definitivo às 48h – sem espera de recursos. Quando discordam, o Painel C é sorteado do grupo restante (excluindo os validadores R1 e R2) e desempate.

4. Corte em camadas

Validadores que votam contra o resultado final (em todas as rodadas) são cortados. As taxas aumentam com o volume do mercado – os mercados de maior valor impõem penalidades mais fortes:

Volume de mercado Taxa de redução
2%
US$ 100 mil a US$ 1 milhão 5%
US$ 1 milhão a US$ 10 milhões 10%
> US$ 10 milhões 15%

Os fundos cortados são distribuídos: 80% aos eleitores majoritários (proporcionalmente \sqrt{\text{estaca}}), 20% para o conjunto geral de recompensas.

Num cenário 2 de 3 (por exemplo, R1=SIM, R2=NÃO, R3=SIM → SIM final), todos os votantes do NÃO em todas as três voltas são eliminados igualmente. Isso incentiva o voto honesto, independentemente do turno ao qual você está designado.

5. Índice de Qualidade e Reputação

Cada validador mantém um índice de qualidade cumulativo:

Q_i^{(t+1)} = Q_i^{

  • Novos validadores começam em Q_0 = 0
  • Se Q < -20: redução de 10% + banimento de 90 dias
  • Retorno após banimento: Q_0 = -10novo bloqueio de 14 dias
  • Os infratores reincidentes perdem 10% de cada vez – o mau comportamento persistente é progressivamente mais caro

Corte de inatividade: validadores selecionados para um painel, mas que não votam, são cortados 0,1% de aposta por falha. Isto elimina os aproveitadores que apostam no rendimento, mas nunca participam na resolução.

6. Estrutura de recompensa

Validadores honestos ganham de três fontes:

  1. Taxa de mercado: 0,5% do volume de negociação
  2. ETH cortado: redistribuído dos eleitores minoritários
  3. Rendimento de piquetagem: 20% do APY de staking líquido direcionado para o pool de recompensas

Distribuição para validador eu na maioria:

\text{Recompensa}_i = \text{RewardPool} \times \frac{\sqrt{S_i}}{\sum_{j \in \text{maioria}} \sqrt{S_j}}

Condições de recompensa: votado (confirmar + revelar), por maioria, Q \geq -20.

7. Ciclo de vida do validador

None --stake()--> LockIn (14d) --> Active
                                      |
                  +--exit()--> ExitReq --> LockOut (14d) --> Exited
                  |
                  +-- Q < -20 --> Banned (10% slash, 90d) --> LockIn (Q=-10)

A máquina de estado garante que os validadores não possam entrar ou sair do sistema com rapidez suficiente para explorar o tempo. Um validador deve estar ativo por pelo menos 14 dias antes de poder ser selecionado para painéis e deve aguardar 14 dias após solicitar a saída antes de retirar-se – durante os quais o corte pendente ainda pode ser aplicado.

Análise de Ataque

Custo do ataque Sybil

O invasor racional usa carteiras de aposta mínima (1 ETH cada, \sqrt{1} = 1 peso por carteira – melhor relação).

Suposições: grupo honesto de 10.000 validadores, aposta média de 5 ETH.

Peso total honesto: 10{,}000 \vezes \sqrt{5} \aproximadamente 22{,}360

Para controlar >50% do peso esperado do painel, o invasor precisa A > 22{,}360 carteiras Sybil:

\text{Compartilhamento do atacante} = \frac{A}{22{,}360 + A} > 0,5 \implies A > 22{,}360

Custo: ~22.400 ETH (~$52 milhões a $2.300/ETH), todos bloqueados por 14 dias.

Cálculo do ROI (mercado de US$ 10 milhões)

Valor
Lucro potencial (50% do mercado) US$ 5 milhões
Capital necessário (participação) US$ 52 milhões
Bloqueio de capital 28 dias
ROI em caso de sucesso 9,6%
Perda em caso de falha (barra de 15%) -US$ 8 milhões

O valor esperado é negativo: o invasor arrisca US$ 8 milhões para ganhar US$ 5 milhões, com capital bloqueado por um mês. O ataque também é detectável – um influxo repentino de validadores de aposta mínima de 22 mil durante um período de bloqueio de 14 dias é uma anomalia clara.

Por que os ataques de token de governança não se aplicam

Neste protocolo, o ativo de ataque é o ETH – o ativo mais líquido do ecossistema. Você não pode alterar significativamente o preço da ETH comprando US$ 52 milhões. Compare isso com ataques de tokens de governança, onde a aquisição de 25% dos tokens apostados pode ser suficiente para manipular os resultados, e os tokens podem ser vendidos de volta após a votação. Aqui, ataques fracassados ​​resultam em cortes permanentes de ETH.

Detecção e Resposta

O bloqueio de entrada de 14 dias cria uma janela para detecção. Se o protocolo observar um aumento anômalo em novos registros de apostas mínimas, ele poderá:

  • Aumente o tamanho dos painéis para mercados pendentes
  • Alerte a comunidade
  • O grupo de validadores honestos tem tempo para responder (apostar mais, recrutar mais validadores)

Isso é fundamentalmente diferente dos ataques de empréstimo instantâneo ou de mesmo bloco – o invasor deve comprometer capital e esperar.

Perguntas abertas

Eu apreciaria feedback sobre estes pontos:

  1. Limiar de capital Sybil: $ 52 milhões + com bloqueio de 14 dias são dissuasão suficiente ou há caminhos de ataque mais baratos que estou perdendo? Um invasor poderia atingir lucrativamente apenas mercados de baixo volume onde os painéis são menores?

  2. Sementes MEV e VRF: a semente inclui blockHashque o proponente do bloco controla. Um proponente poderia manipular a composição do painel? Qual fonte de aleatoriedade forneceria proteção suficiente?

  3. Independência de votação paralela: o projeto assume que painéis paralelos produzem resultados de pontos de Schelling independentes. Os validadores do Painel B poderiam tentar antecipar o resultado do Painel A? A verdadeira independência requer projeto de mecanismo adicional?

  4. Jogos com índice de qualidade: um validador poderia votar honestamente em mercados de baixo valor (construindo P pontuação) e desonestamente nos de alto valor. Deve \Delta Q escala com o tamanho do mercado?

Parâmetros

Todos os valores numéricos são estimativas iniciais para discussão. Os valores de produção devem ser determinados através de experimentação em rede de teste e simulação económica. As restrições de design:

  • Participação mínima → a exigência de capital da Sybil permanece alta
  • Duração do bloqueio → ataques flash permanecem impossíveis
  • Tamanhos de painel → escala com valor de mercado em risco
  • Taxas de redução → votação desonesta tem EV negativo em todos os níveis
  • Limites de qualidade → filtrar maus atores persistentes, tolerar erros honestos

Especificação completa: repositório GitHub (licença MIT).

Trabalho Anterior

Este design se baseia em: QV com classificação (Vitalik, 2019), QSort, regras de votação oracle, Kleros (júris aleatórios + apelações sequenciais) e UMA DVM 2.0 (comprometer-revelar + cortar).

Fontesethresear

By victor

Deixe um comentário

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