behavioral-state-analysis

Behavioral State Analysis (BSA)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "behavioral-state-analysis" with this command: npx skills add quillai-network/qs_skills/quillai-network-qs-skills-behavioral-state-analysis

Behavioral State Analysis (BSA)

Audit smart contracts by extracting behavioral intent, then systematically breaking it across security dimensions.

When to Use

  • Smart contract security audits

  • DeFi protocol threat modeling (DEXs, lending, staking, vaults)

  • Cross-contract attack surface analysis

  • Vulnerability prioritization with confidence scoring

When NOT to Use

  • Pure context building (use audit-context-building)

  • Entry point identification only (use entry-point-analyzer)

  • Single-dimension only (use semantic-guard-analysis or state-invariant-detection)

Token Budget Rules

Follow these strictly to avoid context exhaustion:

  • Be terse. Use bullet points and tables, not prose. No filler sentences.

  • Smart scope first. Classify the contract type in Phase 1, then run ONLY relevant engines in Phase 2 (see engine selection matrix below).

  • Tiered output depth:

  • Critical/High findings → full detail + PoC code

  • Medium findings → root cause + exploit scenario (no PoC)

  • Low/Info findings → one-line description only

  • No redundant analysis. If a dimension has no attack surface (e.g., no value flows = skip ETE), say "N/A" and move on.

  • Cap Phase 1 output to ≤30 lines per contract. List invariants and states, skip verbose specification documents.

  • PoC generation only for Critical and High severity findings. For others, describe the exploit path in ≤3 steps.

  • Combine phases in output — don't repeat findings across phases. Each finding appears once with all metadata inline.

Pipeline

Phase 1: Behavioral Decomposition (keep brief)

Extract intent from code and docs. Output per contract:

Contract: <Name> Type: <DeFi/Token/Governance/NFT/Utility/Proxy> States: [list] Key Invariants (≤5):

  • <invariant> Privileged Roles: [list] Value Entry/Exit Points: [list or "none"]

Then select engines:

Contract Type Run ETE Run ACTE Run SITE

DeFi (DEX/lending/vault/staking) Yes Yes Yes

Token (ERC20/721/1155) Yes Lite Lite

Governance/DAO Lite Yes Yes

NFT marketplace Yes Yes Lite

Utility/Library No Lite Lite

Proxy/Upgradeable No Yes Yes

Lite = check only the top-priority item for that engine (see below).

Phase 2: Threat Modeling (selected engines only)

Run only the engines selected above. For each engine, analyze in this priority order — stop if contract surface is exhausted:

Economic Threat Engine (ETE):

  • Value flow tracing — where can value enter/leave? Any sinks or circular flows?

  • Economic invariant verification — does deposits == withdrawals + balance hold?

  • Incentive analysis — any rational actor exploits (MEV, sandwich, griefing)?

Access Control Threat Engine (ACTE):

  • Unprotected privileged functions — any admin/owner actions callable by anyone?

  • Role escalation paths — can User → [actions] → Admin ?

  • msg.sender vs tx.origin confusion; signature replay

State Integrity Threat Engine (SITE):

  • Non-atomic state updates — partial updates before external calls?

  • Sequence vulnerabilities — initialization bypass, unexpected call ordering?

  • Cross-contract stale data or reentrancy vectors

Lite mode = run only item #1 from that engine's list.

Phase 3: Exploit Verification

For each hypothesis from Phase 2:

  • Build attack sequence (≤5 steps)

  • For Critical/High: generate minimal Foundry/Hardhat PoC (keep code short — test the specific vuln, not a full test suite)

  • Quantify impact: Critical (all funds/system) | High (significant loss/privesc) | Medium (griefing/DOS) | Low (info/best practice)

Phase 4: Score & Prioritize

Score: Confidence = (Evidence × Feasibility × Impact) / FP_Rate

Factor 1.0 0.7 0.4 0.1

Evidence Concrete path, no deps Specific state needed Pattern-based Heuristic

Feasibility PoC confirmed Achievable state External conditions Infeasible

Impact: 5=total loss, 4=partial loss, 3=griefing, 2=info leak, 1=best practice FP_Rate: 0.05 (known pattern) → 0.15 (moderate) → 0.40 (weak) → 0.60 (heuristic)

Prioritization: Report findings ≥10% confidence. Never suppress Impact ≥4.

Finding Format (use for every finding)

[F-N] Title

Severity: Critical|High|Medium|Low | Confidence: X% Location: contract.sol#L10-L25, functionName() Root Cause: <1-2 sentences> Exploit: <numbered steps, ≤5> Impact: <1 sentence with quantified risk> Fix: <code diff or 1-2 sentence recommendation> PoC: <only for Critical/High — minimal test code>

Advanced Checks (run only if relevant to contract type)

  • Cross-contract: Map external call chains A→B→C , test transitive trust

  • Time-based: block.timestamp manipulation, expired signatures, replay

  • Upgradeable: Storage collisions, re-initialization, migration atomicity

Mindset

  • "Standard function" → can behave non-standardly in context

  • "Admin is trusted" → model admin compromise, check excessive powers

  • "Known pattern" → novel interactions in specific contexts

  • "Small value" → compounds; griefing scales

  • "Trusted external contract" → trust boundaries shift; verify actual code

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

semantic-guard-analysis

No summary provided by upstream source.

Repository SourceNeeds Review
Research

reentrancy-pattern-analysis

No summary provided by upstream source.

Repository SourceNeeds Review
General

state-invariant-detection

No summary provided by upstream source.

Repository SourceNeeds Review
Research

learn-anything-in-one-hour

Teach users any new skill/knowledge X in ~1 hour using a fixed 4-step workflow optimized for complete beginners, focusing on 80/20 rule for maximum value in minimum time. Triggers when user asks to learn something new quickly, or mentions "learn X in one hour".

Archived SourceRecently Updated