Contest proposal: DGO SMV Smart Contract System

Motivation

We need a system of voting contracts to regulate governance and decision making in Free TON. Those contracts are a principal tool of decentralization. It is supposed to be used in many aspects of the Free TON blockchain to provide mechanisms for community governance.

As such it should meet the following requirements:

Transparency — everyone in the community should be able to verify the results of the Voting, review proposal and links to its description and how results are implemented.

Participation — the voting should work even in case of low participation by the community members

Ease of use — every community member should be able to participate even without a deep technical knowledge

Security — the highest level of security should apply

Flexibility — it should be flexible enough to serve many applications requiring voting mechanism in Free TON, it should be able to manage voting on different group levels and for different use cases

Composability — it should be possible to use smart contracts in the system with other contracts on Free TON blockchain, thus providing internal methods with a clear interface designed to access contract features.

Formal Verification — all governance contracts dealing with Funds must be formally verified. Therefore only contracts in Solidity and C++ will be accepted.

Type:

Contest

Contest entry period:

December 8, 2020, 11:59 PM UTC - January 8, 2021, 23:59 PM UTC.

Requirements:

  • To develop a Soft Majority Voting smart contract system.
  • Should support the ability to vote with TON Crystal tokens as well as any other TIP-3 Token or DePool Stakes.
  • Should be able to grant voting rights to a subset of users identified with another token or PubKeys.
  • Should notify voting results by emitting both external and internal events.
  • Should generate “Voting Finished” events if voting is finished early with these votes.
  • Should be able to deploy Proposal Smart Contract and Collect votes for it
  • Should support a voting for Multiple Proposals using same TON Crystal or other TIP-3 Tokens
  • Should support Soft Majority, Super Majority settings of the SMV
  • Should include Group membership smart contract with user rights
  • Should support the ability to Add, Exclude New member, change rights of an existing member by Proposal result event
  • Should be able to Deploy a Contest from the Proposal if the Proposal is approved
  • Should be able to change parameters of the Contest (such as Voting period, Jury Groups etc.)
  • Contest should include: Start of the contest time; End of the contest time; Time for jury voting; Set of jurors or Juror Groups pubkeys and addresses
  • Should include a Contract that can store a list of some SMV Proposals, Contests and their voting results
  • Should include DeBots for all system user interfaces
  • Should include auto-tests designed as a smart contract or a script to test scenarios.
  • A solution should have a Free Software license (https://www.gnu.org/licenses/license-list.html).
  • A system should be deployed and tested on the DevNet and Jury should be able to access it for testing.

Evaluation criteria and winning conditions:

  • A solution should pass attached tests
  • If some scenarios from requirements are not covered by a test, then jurors can develop their own tests, but it should reduce the score of such a submission.
  • Solution should be scalable to thousands of participants
  • Tools for SMV state analysis are welcomed
  • Using Auth TIP-3 “as a plug” for SMV is welcomed since it will increase the Governance set of contracts composability.

Voting:

  • Only qualified jurors, able to understand, rub and evaluate smart contract on Free TON should judge. Jurors whose team(s) intend to participate in this contest by providing submissions lose their right to vote in this contest.
  • Jury from other sub-governance groups could be added to this contest to provide additional technical expertise.
  • Each juror will vote by rating each submission on a scale of 1 to 10 or can choose to reject it if it does not meet requirements, or they can choose to abstain from voting if they feel unqualified to judge.
  • Jurors will provide feedback on your submissions
  • Duplicate, sub par, incomplete or inappropriate submissions will be rejected.

Reward:

1st prize…………………………………………… 300,000 Tons

2nd prize…………………………………………… 150,000 Tons

3rd prize…………………………………………… 75,000 Tons

4th place …………………………………………. 50,000 Tons

5th place …………………………………………. 25,000 Tons

Total prizes: 600,000

Note: If the number of winning submissions is less than the number of rewards available, any remaining rewards are not subject to distribution and are considered void.

Jury rewards:

An amount equal to 7% of the sum total of all total tokens actually awarded will be distributed equally between all jurors who vote and provide feedback. Both voting and feedback are mandatory in order to collect the reward.

Contributor rewards:

As part of the support for administrative work being performed by various sub governance members the DGO will reward contributors to the creations, organisation, follow up and other activities around the execution of its contests.

An amount equal to 1% of the sum total of all total tokens actually awarded will be distributed equally between all contributors:

Mitja Goroshevsky
Pavel Prigolovko
Nikita Denisov

Please add people who have contributed to this Contest in the comments

Procedural remarks:

● Participants must upload their work correctly so it can be viewed and accessible in the formats described. If work is inaccessible or does not fit the criteria described, the submission may be rejected by jurors.

● Participants must submit their work before the closing of the filing of applications. If not submitted on time, the submission will not count.

Disclaimer:

Anyone can participate, but Free TON cannot distribute Tons to US citizens or US entities.

19 Likes

Wow! :clap::+1:
Could you explain, please, what is “Group membership smart contract”?
Auth TIP-3 “as a plug” - is it a contract or interface for contract?
When they will be ready and published?

3 Likes

Wow :grinning: :smiley: :flushed:!!! Excellent)) If realized, there will be - fire :fire: :fire: :fire: :rocket: :rocket: :rocket:

4 Likes

@Mitja, I apologize in advance for my amateurish questions and off-topic, but can you tell more on the following points:

  • is voting with tokens obligatory or optional? If optional, who will pay for processing?
  • who will be able to vote in general in a voting with default parameters? Every deployed address?
  • is there a (request for) mechanism to prevent multiple votings from different addresses by same person?
  • what can we understand under “user rights”?

Thank you.

Voting is the most important feature in Free TON blockchain ecosystem for which community is demanding as a right that comes with DoD signing.

  • Decentralisation is the revolution for which Free TON community developing a community-driven and community-controlled blockchain ecosystem.
  • Community-governance is most important attribute of a real decentralised network and Free TON already have an aim of 100% decentralisation.

Developing a Soft Majority Voting Smart Contract and giving voting rights to users for different purposes will gives a democratic power to Free TON for a better future of community-controlled internet.

3 Likes

Glad to see it is happening finally. It is the most important contest for the Governance development

2 Likes

I suggest adding one more condition. (optional)

  • Ability to filter out applications (spam) that are not related to the contest.

We need to find a way to block such participants.
For example these Submission 1

This is a contract that can regulate membership in a group, for example a sub-governance

Interface

You need to allow the interface, no need for them to be published or written.

1 Like

You need to have that. You can optionally suggest other mechanism, whatever it is, if you wish.
You need to have options for payment – by Author, by Group or by a participant.

Everyone who has tokens… quite obviously.

In “one token = one vote” you don’t need any such mechanisms. This is precisely why it is the only anonymous decentralized mechanism that works.

Whatever Group Membership rights you can propose, I guess.

2 Likes

It should cost money to submit a Proposal or a Submission to a Contest. That will prevent spam. Jury must detect such submissions and reject them. Rejected submissions that costs money – there you have a mechanism. But you can suggest any other in your implementation.

4 Likes

The whole Free TON idea circulates around voting. This is really great and inspiring as I see the mirage of decentralization passing by dozens of blockchains is becoming real in Free TON.

As voting is very critical for the successful development of the community, imho, we better think of decentralizating the process itself too.

We have jury members (JMs) here and we plan to “recruit” more. Is it possible to automate the the process of choosing (JMs) before a contest?

Let’s say in an SG we gathered 50 people having the right to vote as a jury.

If we then have a smart contract that randomly chooses 15 from those 50 JMs to cast their votes in the nearest voting, we will have a much more decentralized way of voting than it is now. This minimizes tensions too but this one is a long story:)

Does this make any sense?

Can SMV cover this too or a separate contract is required?

That being discuss in DGO group and it even had a contest for that/ You are welcome to join the discussion.
This is not covered by this contest. It should assume there is a group of Judges it should just attache these groups. There should be another contract dealing with Jury group selection, management and voting.

Voting equals human factor. The big question is, how to marry human factor with a system supposed to exclude the need for trust?

Many thanks for the reply, I see now the idea reqires another contract. There some other details, don’t wont to go deep off-topic here.
Could you please direct me to DGO group, I am new here, now reading&discovering

Yes, you are correct, human factor is the main issue here.

I wouldnt like to go deeper into details in this proposal discussion, there are several points here and i have been reflexing on one them - removing human factor from selecting JMs just before a contest voting.

We already have JMs in different SGs and if we have a contract that automatically selects a JMs group from them randomly, imho, we go decentralized/trustless reducing the human factor to minimums and removing many reasons for tensions within community.
I suppose we better discuss this further in DGO group, maybe in a new discussion

You may want to follow this thread and proposals submitted there:

Could you clarify, please, what you mean by “SMV state analysis”?
Contract method giving the current voting status will be enough or you mean something else?

Here will be Submission #1.

With this post, I declare my intention to participate in this contest.
Here is a repo: https://github.com/asnov/SMV-Smart-Contract-System

We are recruiting a team!

Also because this is a big project but timeframe is very limited I am looking for other developers and Free TON specialists to join me in this project and share reward with me.
Please, find details in the repo.

Real-time development

We are going to develop this open source project publicly. So all commits, issues and pull requests will be available for community immediately. This will be kind of show. Be prepared! :wink:

Idea authorship

P.S. I know Mitja could say it was his idea about public development but I decided to go this way on Friday. I was waiting for this contest proposal to be approved. So when I’ve heard the same idea from Mitja on weekly zoom on Tuesday I was surprised how similarly we think. And I decided to make announcement a bit earlier. :smile:

3 Likes

This contest is one of the most important. I will wait for the opportunity to test participants contracts.