Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

P3-6.2: Adversarial, collusion, and Sybil test suite

Aberta
#154 4 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@robertocarlous já está trabalhando nisso.

Desde 5/10/2026.

  • #218 de @robertocarlous — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
solidity

Direção de pesquisa

The issue specifies a Forge test file, P3Adversarial.t.sol, and names PRs #146 and #149 as prerequisites. Read those contracts after they are merged, then map each listed collusion, Sybil, liveness, and dispute scenario to its relevant contract behavior. Done means every listed scenario has an attack narrative comment and the full test suite passes.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

Context

Raised as a blocker in discussion #150. Roadmap ref: P3-6.2.

The adversarial test suite has not been started. It cannot be written meaningfully until PRs #146 (S1/S2/S5/S6 slashing) and #149 (S4 dispute second phase) are reviewed and merged — those contracts are what the tests exercise. Once they land, estimated one week to produce the full scenario suite.

Scope

The test suite should cover at minimum:

Collusion scenarios

  • Model owner + aggregator collude to suppress a dispute: owner steers the recomputation subgroup (tests the BL-11 commit-reveal fix from issue #151)
  • Auditor colluding with aggregator to pass a bad T2 model: S1 slash path

Sybil scenarios

  • Single operator spinning up multiple validators under different keys to capture a subgroup
  • Sybil validators all voting the same way in an audit to pass a bad model

Liveness attack scenarios

  • Aggregator consistently missing T1/T2 submission deadlines (S2 slash)
  • Auditor consistently missing vote deadlines (S1 slash)
  • Recidivism escalation to full slash + jail (S5)
  • No-participation counter threshold (S6)

Dispute lifecycle edge cases

  • Dispute raised, recomputation confirms original result (settleRecomputation(confirmed=true)) — disputer bond forfeited
  • Dispute raised, recomputation overturns result (settleRecomputation(confirmed=false)) — aggregator slashed, disputer bond returned
  • Resolution window expires before settleRecomputation is called (expireDispute) — disputer bond partially refunded
  • Frivolous dispute (disputer forfeits bond)

Acceptance criteria

  • Forge test file P3Adversarial.t.sol (or equivalent) covering all scenarios above
  • All tests pass with PRs #146 and #149 merged
  • Scenarios are documented with attack narrative comments so future readers understand what is being tested

Blocked on

PRs #146 and #149 must be reviewed and merged before this work can begin.

Related

  • Discussion #150
  • PR #146 (S1/S2/S5/S6 slashing)
  • PR #149 (S4 dispute second phase)
  • Issue #151 (BL-11 commit-reveal)
Linguagem predominante
Python
Estrelas
4
Forks
7
Merge médio
3d 4h
PRs com merge (30d)
34

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de InfiniteZeroFoundation/DevNet

Todas as issues de InfiniteZeroFoundation/DevNet

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.