All contributions to PropChain-contract must pass our rigorous security pipeline:
- Static Analysis:
cargo clippyand custom linters run on all modules. - Dependency Scanning:
cargo audit&cargo denyensure no vulnerable/unapproved dependencies. - Formal Verification:
cargo contract verifyandcargo kanirun for formal theorem proving of our smart contracts. - Fuzzing Tests:
proptestensures fuzzy inputs handle edge cases safely. - Gas Optimization Analysis:
security-audit-toollimits expensive structures (e.g. nested loops, vectors). - Vulnerability Scanning:
slitherhandles general checks andtrivyscans structural dependencies.
- NEVER use
unsafe { ... }blocks unless fundamentally necessary (e.g. zero-copy serialization optimizations), and ensure thorough fuzzing limits access. - Avoid large allocations (
Vec) - use mappings instead when scaling data points. - Implement explicit integer size conversions or
saturating_mul/checked_addto prevent overflows, even outside ofoverflow-checks = truebounds. - Always include explicit assertions for input validations.
If you discover a security vulnerability, we would appreciate if you could disclose it responsibly.
DO NOT open a public issue! Instead, follow these steps:
- Email our security team at
security@propchain.io(or the repository owner). - Write a detailed description of the vulnerability, including reproduceable steps.
- Wait for our acknowledgement (typically within 48 hours).
- Our team will triage the issue and respond with a timeline for fixing.
- Once resolved and merged, we will coordinate public disclosure if needed.
Thank you for helping keep PropChain secure!