Open tomerGD opened 4 years ago
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
This issue now has a funding of 50000000.0 G$ (10000.0 USD @ $0.0/G$) attached to it.
please use compound BAT, instead of compound DIA for your smart contracts.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work for 50000000.0 G$ (10000.0 USD @ $0.0/G$) has been submitted by:
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work for 50000000.0 G$ (10000.00 USD @ $0.0/G$) has been submitted by:
@tomergd please take a look at the submitted work:
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work for 50000000.0 G$ (10000.00 USD @ $0.0/G$) has been submitted by:
@tomergd please take a look at the submitted work:
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
The funding of 50000000.0 G$ (10000.0 USD @ $0.0/G$) attached to this issue has been cancelled by the bounty submitter
Hello
I reported two critical vulnerability to Hadar@gooddollar.org , but no replay., its very very critical .
thank you
@abison1 I didnt get any emails. you can also reach me on telegram, see README.
GoodDollar Bounty
Description
GoodDollar has recently launched its basic income protocol (you can learn more via our White Paper and Lite Paper published here). This bug bounty challenge serves to stress-test the GoodDollar smart contracts. Successful submissions are at the discretion of the GoodDollar CTO, and will require evidence and documentation of any hack
Information
GoodDollar is a people-powered framework to generate, finance, and distribute global basic income via the GoodDollar token (“G$ coin”). Its goal is to provide a baseline standard of living and reduce wealth inequality through the creation of a universal basic income (UBI).
GoodDollar - gooddollar.org, White Paper - https://whitepaper.gooddollar.org/ LitePaper - https://litepaper.gooddollar.org/
Scope
The Gooddollar Bug Bounty is limited to vulnerabilities affecting the gooddollar smart contracts: DAO Contracts Staking model contracts
Awards
The severity of bugs will be assessed under the CVSS Risk Rating.
Critical (9.0–10.0): Up to $10,000 High (7.0–8.9): Up to $5,400 Medium (4.0–6.9): Up to $2,800 Low (0.1–3.9): Up to $1,000
Disclosure Requirements
Any vulnerability or bug discovered must be reported only to the following email: Hadar@gooddollar.org
The bug must not be disclosed publicly or to any other person, entity or email address other than Hadar@gooddollar.org
Please include as much detail about the vulnerability as possible including:
Eligibility
To be eligible for a reward in the Gooddollar Bounty, you must:
Other Terms
All reward decisions, including eligibility for and amounts of the rewards and the manner in which such rewards will be paid, are made at our sole discretion.
Staking Model Contracts Docs
Terms
UBI Supporters
People who are staking their crypto to Goodstaking, willing to accept G$ instead of the originally used crypto
GoodStaking Smart Contract
a smart contract who: (a) receives cryptocurrencies from the Stakers and sends it to the third party protocol; (b) issue the GoodStaking record to the Stakers and accept the transactions from the stakers and sends them the principle deposited; (c) receive the Interest out directly from the thrid party protocols and automatically transfer it to the Reserve.
For now - the interest can only be donated to the reserve, and no G$ is minted in returen
Third party protocol
an existing algorithmic autonomous interest bearing protocol developed by third parties where Stakers can deposit cryptocurrencies and earn interest.
Bancor™ Formula
An automatic pricing formula which balances supply and demand for the Smart Token while holding a constant ratio between a Smart Token’s total value (market cap) and its connector token balances (see more here).
Claimers
users of the GoodDollar wallet who claim daily GoodDollar Token(G$).
GoodDAO
decentralized and autonomous entity, eventually owned 100% by the community of GoodDollar users.
GoodDollar Token (G$)
a digital currency, built initially on ETH blockchain technology and comply with ERC20 standard, with a reserve token attached to it - Initially CDAI.
Reserve
a smart contract with valuable foreign (not G$) cryptocurrencies in it. Users of the Gooddollar can buy or sell Gooddollar by depositing or withdrawing cryptocurrencies directly into or from the reserve (based on Bancor Formula, see above)
UBI scheme
A smart contract that collects the total minted Gooddollar, and distributed between all claimers that day.
Architecture Diagram
Money flow in the GoodDollar ecosystem
Supporter stake his crypto currency to GoodStaking
Goodstaking deposits the crypto currency to a third party DEFI protocol
The third paty issue a staking Token (CDAI)
Goodstaking issues a non transferable record to the staking wallet. (supporter can withdraw at anytime)
FundManager(GoodDao) triggers a daily request to GoodStaking to collect earned interest
Goodstaking sends interest to good reserve
FundManager triggers the Reserve to mint and send the new minted G$ to the FundManager (Interest + UBI)
The interest is Sent back to the GoodStaking - not active at the moment
FundManager send G$ to the UBI scheme smart contract via Fuse token bridge
The G$ in the UBI scheme is divided between all "active" whitelisted users. Each user need to claim his share in the 24 hours window.
Contracts-&-API
GoodDollar protocol is deployed both on Ethereum mainnet and on Fuse as a sidechain. Some contracts like the Reserve are only on mainnet and some contracts like the UBIScheme are only on the sidechain. The DAO and Token are deployed on both networks.
Core Contracts
GoodDollar ERC20
The GoodDollar token follows the erc20 standard and also supports erc677.
Identity
The identity contract controls which addresses are whitelisted to "Claim" UBI.
Face Verification
Currently the GoodDollar Foundation is whitelisting users based on user prooving he signed up with a live and unique face. Since the user facial details are anonymized in order to allow the user to create a new account in case he is unable to recover his wallet, facial details are deleted after
authenticationPeriod
and users are required to perform face verification again everyauthenticationPeriod
days.Social Profile
Each address is linked to the user public profile as created in the wallet. The DID is the node id in the public p2p GunDB database. Mappings from wallet address to DID are held in
addrTODID
GoodStaking
UBI Supporters can stake crypto which is then invested in DEFI protocols. The FundManager has permissions to collect gained interest from this contract.
GoodReserve
The reserve mints G$ based on interest transfered from the FundManager, only the FundManager can trigger minting. The reserve also acts as the GoodDollar liquidity pool and AMM (Automatic Market Maker) and exposes methods to buy and sell G$s.
GoodFundManager
Has permissions to collect interest from the GoodStaking contract and permissions to tell GoodReserve to mint. Anyone can trigger the collection and minting process
UBIScheme
Holds all the G\$s that were transfered via bridge from the FundManager. The pool of G$s is divided daily by the amount of current active users. Each active user can then "claim" his quota. If a user fails to claim his quota it becomes part of the next day UBI pool.
OneTimePayments
Payments on the GoodDollar wallet are done via payment links. G$s are held in escrow and the recipient can retrieve the funds if he has the key. While the money is in escrow the sender can choose to cancel the payment and retrieve the funds. Based on Celo's payments contract
GoodMarketMaker
Helper contract for the GoodReserve.
ContributionCalculation
Helper contract for calculating the exit contribution (ie when selling G$ back to the reserve)
FirstClaimPool
Helper contract for UBIScheme. Manually funded by the Foundation to give 1G$ for "inactive" users when they claim. Since a new user (inactive) becomes active and eligible to claim UBI only in the next UBI epoch. So for new users not go empty handed on their first claim we give out a 1G$.
AdminWallet
Helper contract for our backend servers to whitelist users and to fill their Fuse network gas.
Token Bridge Contracts
Bridge contracts were developed by Fuse
DAO Contracts
DAO contracts were developed by DAOStack