neoburger / code

neoburger smart contracts
GNU General Public License v3.0
6 stars 4 forks source link

BurgerDAO #6

Open vang1ong7ang opened 2 years ago

vang1ong7ang commented 2 years ago

BurgerDAO

BurgerDAO is the owner of all smart contracts of project NeoBurger.

Of course, BurgerDAO is the owner of BurgerDAO smart contract itself.

Fundamental Ideas

NeoBurger Governance Token

Distribution and Release Plan

Contributors Release Plan

total amount 461168601.8427387904

everyone who continuously contribute to NeoBurger project for at least 256 days is able to claim its NoBug reward. (The list of contributors and their rewards will be public on github.)

The contributor reward for the first claimer is 14411518.8075855872 (0.78125%)

The contributor reward for the n-th claimer is 96.875% of the contributor reward for the n-1-th claimer.

On-chain Release Plan

The release amount of the first year is 345876451.3820540928.

The release amount of the n-th year is 75% of The release amount of the n-1-th year.

BurgerDAO starts to distribute the token since the second year.

Distribution ways:

For Investors

NoBug is designed as a sober governance token without explicit values for investment. That means the token is not regarded as an asset to be traded publicly and massively.

Besides, we do not offer any explicit incentive in the NoBug system. No built-in reward is offered for voting or delegating.

TEE Based DAO

To ensure cheap costs, high efficiency and authentic execution, we deploy a Neo wallet on github actions with open-source codes to be an impartial TEE. No one will be able to access to the private key of the TEE wallet, because the private key is mined by github actions itself to meet certain criteria on the wallet address. TEE has the permission to count votes on the testnet and execute proposals on the mainnet.

Testnet, IPFS and other decentrilized storage platform is considered to temporarily store the users' voting payload and the payloads will be collected and counted by the github TEE. The execution will be submitted to mainnet once the proposal is bypassed.

Execution on mainnet

When TEE finds that a proposal has been passed, it first calls submitApprovedExecution(UInt256 digest) to submit the digested SHA256 of the proposal. The submitted proposal is publicized for at least 4 days before it can be executed by TEE. After the waiting period for publicity, TEE can call execute(BigInteger id, UInt160 scripthash, string method, object[] args) on the mainnet to actually execute the proposal.

Countermeasure on emergency

Using github actions as a TEE is an efficient solution, but in case the TEE is suspected to be misbehaving, NoBug holders have the power to call pauseContract on the mainnet, which temporarily prevents the mainnet contract to execute any proposal.

Additionally, anyone who holds more than 50% of the total supply of NoBug can submitExecution(UInt256 digest) on mainnet without having to win a vote.

The delegation system

You can delegate your votes to anyone you trust. And if your delegate votes for a proposal, you automatically vote for it. Call the methoddelegate(UInt160 from, UInt160 to) on testnet to delegate your votes to someone. To cancel delegating, you can delegate to yourself or to a zero scripthash.

The relationship of delegation is not transmissible. For example, when A delegate to B, and B delegate to C, then C's voting for a proposal does not lead to A's automatic voting.