Ion Audit Competition- rewards up to $40K in USDC

HatsFinance
8 min readJan 22, 2024

--

Starting Jan 22nd , 2024, at 15:00 GMT to Feb 5th, 2024, at 15:00 GMT

We invite all white hat hackers to join the hunt on Ion protocol audit competition

All experience levels are welcome; whether you are a seasoned security veteran or an amateur, show us what you got! Prizes will be given based on the severity level of each vulnerability found.

About the Competition

Starting Jan 22nd, a new vault will open in the Hats dApp — “Ion Protocol”.
Participants can check the contracts in scope and start searching for bugs.

Ion Protocol is a liquidity platform that allows users to lend and borrow against any staked or restaked asset without the risk of price-based liquidation. It supports a variety of assets, including Liquid Staking Tokens (LSTs), EigenLayer Restaking Positions, and exotic validator-backed assets.

The platform employs a zero-knowledge machine learning framework to underwrite credit risk efficiently, minimizing liquidation risk. Ion Protocol enables users to deploy their staked capital across the DeFi ecosystem securely.

The competition code language is Solidity and the SLOC estimation for this competition is ~3000 SLOC. You can view the competition audit docs here

Additionally, the competition includes Formal Verification powered by Certora, the guide for the Formal Verification is added to this article.

To reduce transaction costs, we’re shifting our audits vault to Layer 2 networks. Specifically, this competition is hosted on Arbitrum for more efficient fee management.

Stay up-to-date with the competition, chat with the team, and get your questions answered by joining the dedicated Discord channel on the Hats server.
All audit reports will be published in our Discord on the day of the competition. Don’t miss the latest updates and insights — join now and be the first to know!

Audit competition rewards

  • Deposited Amount: The deposited ~$50K in USDC, making the available prize pool ~$40K in USDC.
  • Service Fee: All rewards mentioned in this article and on the Hats dApp UI have already deducted a 20% Hats service fee.
  • Severities: Low, Medium, High, Formal Verification (FV)

Rewards and calculation

25% of the Max vault rewards is allocated to FV
75% of the Max vault rewards is allocated to the audit review: Low, Medium, and High

Each severity level issue has points allocation, the maximum payout per point is 1% of the total reward. both used to calculate the rewards.

Points Allocation per Severity:

  • Low: 1 point
  • Medium: 12 points
  • High: 25 points

Points are consistently awarded within the same severity level unless the committee decides to adjust this. For instance, both the first and second low-severity findings will earn 1 points each. This standard applies to medium and high severities as well.

Calculating the Winner’s Reward:

The formula for a winner’s reward is as follows:

Point Value= Prize Pool / Total Points*

*Awarded for the entire competition

Examples for Clarity:

Example #1:

  • 163 Low Severity: 163 points
  • 1 Medium Severity: 12 points
  • 1 High Severity: 25 points

Total points: 200

In this scenario:

  • Value of 1 Point = 30,000 USDC/200 Total points = 150 USDC
    The rewards for this example will be as follows:
  • Low (163 points): $150 each
  • Medium (12 points): $1,800 in total.
  • High (25 points): $3,750 in total.

Example #2

  • 50 Low Severity: 50 points

Total points: 50

In this scenario:

  • Value of 1 Point = 30,000 USDC/50 Total points = 600 USDC
    The the results exceed the max reward per point (1% of the total reward) so the value of a point is adjusted to 1%
  • The rewards for this example will be as follows:
  • Low (50 points): $333.333 each

Severities

High Severity

Issues that will be qualified for this bracket will be assigned with 25 points.
Maximum Payout per Point: 1% of total reward.

High-severity vulnerability description:

For a submission to be considered a HIGH-risk vulnerability, issues must:

  • Direct theft of any user funds, whether at rest or in motion
  • Long-term freezing of user funds
  • Theft or long-term freezing of unclaimed yield or other assets
  • Protocol insolvency

Medium Severity

Issues that will be qualified for this bracket will be assigned with 12 points.
Maximum Payout per Point: 1% of total reward.

Each new issue gets 12 points. The total Medium-severity reward will be calculated as described in the rewards calculation above.

Medium severity vulnerability description:

Issues that lead to an economic loss but do not lead to direct loss of on-chain assets. Examples are:

  • Gas griefing attacks (make users overpay for gas)
  • Attacks that make essential functionality of the contracts temporarily unusable or inaccessible
  • Short-term freezing of user funds

Low severity

Issues that will be qualified for this bracket will be assigned with 1 point.
Maximum Payout per Point: 1% of total reward.

Each new issue gets 1 points. The total Low-severity reward will be calculated as described in the rewards calculation above.

Low severity vulnerability description:

  • Issues where the behavior of the contracts differs from the intended behavior (as described in the docs and by common sense), but no funds are at risk.

Limitations

Reporters will not receive a bounty for any known issue, such as:

  • Issues mentioned in any previous audit reports
  • Vulnerabilities that were already made public (either by HATs or by a third party)
  • “Centralization risks” that are known and/or explicitly coded into the protocol (e.g. an administrator can upgrade crucial contracts and steal all funds)
  • Attacks that require access to leaked private keys or trusted addresses
  • Issues/contracts mentioned in the out-of-scope section

Submission Guidelines — High/Medium/Low severities:

General Information:

  • The Hats team will create a new repository called “Ion protocol audit competition” under the Hats.finance organization on GitHub. The repository will be kept private until the competition starts. Hats bot will fork it on the first submission. To participate, security researchers must submit their findings on-chain, and an automatic GitHub issue will be generated in the forked repository.
  • How it Works: Video Explanation

SUBMISSION GUIDELINES:

  • Submissions should be made using our Dapp.
  • You can submit one on-chain submission mentioning all issues found on the repo.
  • All new submissions will be created on Hats forked repo on Hats: Hats GitHub

Report Format:

  • Please send a plain ASCII description in the following format:
  • [TITLE]: A short description of the issue.
  • SEVERITY: Either High, Medium, or Low (as per the rules).
  • Submission should contain at least one test demonstrating the problem and, if possible, a possible fix.

Report Template:

  • Description: Describe the context and the effect of the vulnerability.
  • Attack scenario: Describe how the vulnerability can be exploited.
  • Attachment:
  • Proof of Concept (PoC) File: Provide a file containing a proof of concept (PoC) that demonstrates the vulnerability.
  • Revised Code File (Optional): If possible, provide a second file containing the revised code that offers a potential fix for the vulnerability. This file should include:
  • Comment with a clear explanation of the proposed fix.
  • The revised code with suggested changes.
  • Add any additional comments or explanations clarifying how the fix addresses the vulnerability.
  • Recommendation: Describe a patch or potential fix for the vulnerability.

***Due to the nature of the audit competition mechanism, the report will not be encrypted.***

Evaluation:

  • The first participant to submit an issue following guidelines gets a bounty for that issue (issues already received or out of scope will not receive a reward).
  • The competition starts on Jan 22nd at 15:00 GMT and ends on Feb 5th at 15:00 GMT.
  • Issues that we are aware of (as witnessed by any open issues in the repository) will not be eligible for the bug bounty.

Formal verification

Researchers are given the opportunity to utilize the Certora Prover to find bugs and prove properties regarding the predefined contracts that have been setup within the codebase. Specs will be evaluated based on the properties below.

25% of the total prize pool will be allocated for formal verification.

Getting Started

Get access to the Prover:

  • First time participants, Register to receive an access key.

Update expired key:

Tool Installation: Follow installation instructions to download the `certora-cli` tool. Use the latest version of the tool available at the start of the contest, throughout the whole contest.

Learning Resources:

  • Complete the tutorials.
  • Search the docs for any additional information.

Contest Participation:

  • Import the public repository into a new private repository at the contest’s commencement.
  • Conduct verifications on the main branch.
  • Grant access to `teryanarmen` and `nd-certora` for judging.

Support Channels:

  • For tool-related issues, send a detailed message with a job link in `help-desk` channel in Discord. Remove the anonymousKey component from the link if you wish to limit viewing to Certora employees.
  • For FV contest questions, use the relevant community verification channel in Discord.

Incentives

The FV pool is split into three categories

Participation:

  • 10% of pool awarded for properties identifying public mutants.

Real Bugs:

  • 20% of pool awarded for properties uncovering actual bugs.

Coverage:

  • 70% of pool awarded for properties identifying private mutants.

Participation and coverage reward can be calculated as follows:

  • Each mutant’s is worth 0.9(n-1)n points where n is the number of participants that caught the mutant.
  • If we let P be the pool amount and T be the sum of all mutants’ points, and n the number of participants that caught the mutant, we can define each participant’s reward as PT0.9(n — 1)n

Real bug rewards will be awarded for properties that are violated because of the bug. Only the bug submitter can submit a spec for that bug. 25, 12, or 1 points will be allocated based on the severity of the bug (H/M/L).

Submission Guidelines

Development Constraints:

  • Participants are allowed to create and modify configuration, harnesses, and specification files.
  • All coverage and participation submissions must pass on the unaltered original codebase.
  • Source code modifications are prohibited.
  • Evaluations are based on the original code; configurations reliant on code changes will be disregarded.
  • Utilize the latest version of `certoraRun` available at contest start.
  • Avoid updates during the contest, even if new versions are released.
  • Submissions with tool errors, compilation errors, or timing-out rules will not be considered.
  • Ensure configurations do not time out; retest to confirm consistency.

Configuration Naming:

  • For coverage and participation: Name configuration files as ContractName_[identifier]_verified.conf. The identifier is optional and should be used when multiple configurations exist per contract.
  • Example: `ERC20_summarized_verified.conf`.

Real bug submissions:

  • Real bug submissions must include, detailing the impact, specifics, violated rule, and a solution.
  • Properties for real bugs will only be accepted if the underlying issue is accepted.
  • Submission must explain the property that catches the bug.
  • A link to the bug submission or the title of the bug submission on Hats.
  • A link to a violated run of the property must be included.
  • A proposed solution must be included as a diff between the buggy and fixed code.
  • A verified run of the property on the fixed version must be included.

Compensation and Impact

A prize pool of ~$40K USDC and NFT rewards from our hacker collection will be distributed among security researchers who submit eligible vulnerability disclosures.

Compensation payment timeline:

  • Ten days after the competition ends, we will announce a winner list.
  • Alongside the winner announcement post, submitters can send disputes to the committee team and request clarification. They can also involve the Hats security team in the process. The goal is to facilitate honest and professional debate regarding disputed submissions.
  • Between 7–14 days after the announcement, we will publish a split contract where the winners can claim their rewards.
  • HATS Service Fee: A 20% deduction from the payout will always be allocated as the service fee.

Security researchers play a crucial role in fostering trust and confidence in Web3 technologies, paving the way for mass adoption. By participating in this competition, security researchers can gain recognition for their work, raise their profile, and make valuable connections in the Web3 security ecosystem. Ultimately, they can contribute to creating a more secure and equitable community.

JoinIon protocol Audit Competition today and participate in the movement to secure the future of Web3 and decentralized finance. Check the Hats Finance dApp for more information and in-scope contracts.

Stay tuned and check Hats dApp:https://app.hats.finance/audit-competitions

--

--

HatsFinance

Hats.Finance a decentralized smart bug bounty marketplace. Permissionless, scalable, and open bug bounty protocol that allows anyone to provide liquidity.