Proposal: Generic contest rules
Summary
The present document represents the rules that must be applied to all the contests started by the ForMet SG after 10/19/21 unless the other is explicitly stated. This set of rules is a supplement to the Charter and Charter Update 07/07/21. If the present document contradicts, in any of its part, with any of the documents mentioned above, the statements of the present document prevail and shall be used.
Motivation
The rapidly increasing number and complexity of contests conducted by ForMet leads to different cases that originally were not planned and there is no precooked solution for them. Attempts to resolve such cases often end up with conflicts, scandals, significant waste of time etc. The goal of the present document is to try to describe as many cases as possible and reduce the risk of necessity to resolve them before their appearance and not after.
Generic Contest Terms
All the contestants must submit their work as :
-
Original - at least 80% of the code and the text must be original and developed specifically for the present contest (not including reusable software, developed either by the submitter or by 3rd party, assuming that this software is not judged itself). Any clear plagiarism must immediately lead to the rejection of the submission. Any LICENSE violations must lead to a rejection.
-
Public - all the jurors must have access to reports and to the most part of the code without any restriction. However, participants can use proprietary software (both their own or 3rd party). In this case:
-
The submitter must provide the jurors with source codes (possibly with NDA prepared beforehand) and all the documentation upon their request
-
this proprietary software should not:
1. Prevent the code from being compiled
2. Should be documented
3. Can not be considered as a part of the submission
- Compilable - if the submission contains some code, it should be compilable according to the instruction provided. The penalty must be applied in case of violation
- Documented - the detailed documentation must be provided for the submission
- Proof-readed - all the reports, documentation, comments must be checked at least against spelling errors
- English - all the submitted materials must be in English (unless other is explicitly required by the specific contest terms)
Reward process
Special cases
- Any rejected submission gets no reward. The submission is considered as rejected in case more than 50% of participated jurors either rejected the submission or assigned 0 points to it
- Any submission that gets 5+ points considered as good enough and gets the full award immediately (within a reasonable timeframe) upon voting completion
- Any accepted submission that gets 4- points are not awarded.
The Jury
The Jury shall be formed from acknowledged experts in the fields of security, smart contract audit, and formal verification fields, whereby:
- The affiliated jurors shall lose their right to vote in this contest
- Each juror shall vote by rating each submission on a scale of 0 to 10 (0 equalling rejection of the proposal); a juror may abstain from voting if they do not see themselves sufficiently qualified to judge such proposal . The juror gets his award only in case he voted for all the submissions
- A juror that has voted on a submission shall:
-
Clearly demonstrate that the judge has a very good comprehension of the submission
-
Provide actual feedback on the work essence, such as: suggestions for improvement, found errors, comments regarding the content, found divergence from the contest requirements, etc
-
Provide justification for the score.
AMA and communications
- AMA session is not planned by default but each participant and each juror may suggest it at least three days before the end of the voting.
- In case of suggestion the team of jurors MUST either accept or reject it by one of the following ways:
- Informal voting at among eligible ForMet SubGov initial members and jurors
- In case of acceptance:
- AMA session MUST be organized (the time should be defined after some census/voting among the planned participants, the Secretary is supposed to do his best to find the mostly appropriate time, however weekends, late nights or early mornings can be the final appointments)
- When the AMA time is set all the jurors should do their best to attend it
- At their turn, participants are free to decide if they attend this meeting or not fully understanding that skipping can negatively affect their final scores (not because of the fact of skipping, but rather due to lack of understanding their submissions by the jurors)
- Each juror has a right to request any additional information / private AMA session / run a discussion with any participant. In case the participant avoids this kind of communication the juror has a right to treat any doubts in a way negative for the participant. Interaction between jurors and participants should be carried out during the normal working hours (9am - 6pm, Mon-Fri, respecting the state holidays in participant’s location). Requests that are made outside this timeframe may be ignored by both parties, with the outcome treated in a favour of the participant…
Jury Rewards
The total budget for jury rewards is defined by the specific type of contest or the contest itself.
This amount shall be distributed between jurors who have voted and provided feedback on submissions. Votes with a little to none feedback will not be acknowledged.
The proportion of the total budget assigned to a juror shall be defined according to the extent of this juror’s participation in the contest, i.e. the count of votes cast by this juror divided by the total votes cast count for this contest.
Extensions and respins
- The contest can be extended when and only when:
- No submissions are provided by the deadline - in this case the contest MUST be extended by two weeks
- It was a system outage for the last eight hours of the contest (such as a mainnet downtime, lack of funds on the voting contract etc.) - in this case the contest MUST be extended for one day
- The scope and/or conditions of the contest has been changed throughout the contest - it MUST be handled by a separate formal proposal
- The voting can be extended when and only when:
- Less than three votes were received by the deadline - in this case the voting MUST be extended for one day
- It was a system outage for the last eight hours of the voting (such as a mainnet downtime, lack of funds on the voting contract etc.) - in this case the contest MUST be extended for one day
- In case that no submissions were accepted :
- Jurors and administrators get their payments
- If somebody request a full respin from scratch within three days the full respin should be conducted if approved by a special Formal Proposal
- Otherwise, a short fix-up sprint with the same prices as original and duration not longer than 2 weeks MAY be overtaken with further “go”/”no go” simple voting
- Both kinds of respins are supposed to be approved by the initial members so in case they think the contest should be fully canceled they can simply reject the proposals
- In case no submissions got “5+” the contest is supposed to be restarted from scratch depending on the voting against a Formal Proposal. The original submitters who received any awards throughout the original contest still can participate, but their awards MUST be decreased by the amount of the already received awards. The jurors, however, get their awards in full.
Procedural Limitations
- Only one submission per contestant shall be accepted. Multiple submissions, including but not limited to updated versions of the initial submission, are not allowed.
- All submissions shall contain the contestant’s contact information (preferably a Telegram ID) to ensure that the jury can match the submission to the specific contestant. If such contact information is missing, the submission shall be rejected.
- If the submission contains links to external material (reports on further work by the contestant), this material shall have the contestant’s contact details (preferably a Telegram ID), to ensure that the jury can match the material to the specific contestant. If such contact information is missing, the submission shall be rejected.
Recommendations for newbies
If you never participated in the ForMet SG contests before it’s strongly recommended to follow the suggestions below, otherwise it’s easy to find your submission rejected:
- Identify yourself as early as possible (using ForMet SubGov Community Chat). While the SG members are either your competitors or jurors you’ll still get a number of generic hints that may be critical for your understanding of the contest
- Provide the reliable and working Telegram contact to let jurors address their questions or invite you to the AMA session
- Read all the SG documents thoroughly. Don’t hesitate to ask in case something is unclear
- Only English, please. No Russian, Chinese, German, Hebrew etc.
- Deadline is a real deadline
- Activate your wallet before the submission deadline
- No cheating of any kind (including plagiarism, double submissions etc.). The punishment will be harsh and inevitable.