DXdao Vote Dapp

DXdao recognizes the need to change, build and adapt new systems and strives to reach consensus in a scalable, decentralized and effective way.

- DXdao Manifesto.

But…

Right now our mainnet governance has very few votes and active proposals, most of them are worker proposals. It is not decentralized, we rely on one company to host an app on a server for us to vote and use third party services to communicate with the blockchain. And it is clearly not effective since after a year and a half of being created we haven’t interacted with any DEFI protocol.

So…something needs to be done, right?

We can lay down minimum requirements that we need to start walking towards the governance system we always wanted:

Be Decentralized

DXdao governance platform should be independent from any other service or company, having complete control over itself.

Be Efficient

DXdao governance should be cheap to interact for the user and for the DXdao to maintain.

Be Flexible

DXdao governance should have the ability to quickly interact with new DEFI protocols and dapps.

Can we do this without affecting our currently infrastructure?

Basically the “user facing” smart contracts that are used by DXdao voters are the schemes and the voting machines, we use the Genesis Protocol voting machine for all our schemes just because is the only choice, but if we want we can use a new one with new features that still uses the very cool holographic consensus.

This is the Daostack architecture:

This modular design will allow us to have our own schemes and voting machines outside Daostack official architecture and use the same reputation and avatar contracts, allowing DXdao to operate trough Alchemy and DXdao voting dapp at the same time.

Everything will continue working the same way it always did, but we will have two apps using DXdao smart contracts at the same time, in a future alchemy can integrate features from the voting-dapp and the voting dapp can do the same from alchemy, an open-source win-win.

The biggest change that we will bring will be in the voting machine contract, where we will use a fork of Genesis Protocol we have been using on alchemy but with the following features:

  • Use DXD as staking token.

  • Refund create proposal, vote and stake gas costs on chain in the same transaction.

  • Sign votes, as a voter I will be able to sign a vote to be used in a proposal A for an amount R of reputation before T time.

  • Share signed votes, as a proposal creator or voter I will be able to gather all the signed votes and execute them on chain.

This changes will make the voting process a bit more complex since we are adding concept of signed votes, you can understand it better if you think on how “valid” your vote is, the ultimate validation of your vote is when is on chain, in the storage of the smart contract and is not very “valid” when you just signed it and share it to another voter, because there is only you and the other voter who knows your decision. But signing votes cost nothing and the signature can be used later to execute the vote on chain and reach full on-chain validation.

What would I be able to do in the first version of the governance dapp?

  • Create proposals with multiple ETH transfers, DXD transfers and any other ERC20 approved tokens and REP mint/burns.
  • View all proposals created in the only scheme that will be used (this mean that you can see just the proposals created in the dapp).
  • Stake for yes or no in proposals, in one or multiple proposals at the same time.
  • Vote for yes or no in proposals, in one or multiple proposals at the same time.
  • Sign votes for yes or no in proposals, in one or multiple proposals at the same time.
  • Signal votes for yes or no in proposals, in one or multiple proposals at the same time.
  • Send one or multiple signed votes in a proposal.
  • Receive on chain refunds of the gas spent on governance actions.

Steps to our minimal governance dapp

1.- Design and implement new DXD Voting Machine.

2.- Modify the current founding and voting power scheme to execute multiple cryptocurrency transfers and REP minting/burning in one proposal, besides that the scheme will keep track of created proposals information in the smart contract state and provide the necessary methods to fetch all proposals information directly form the blockchain.

3.- Build a decentralized application that will connect with our mainnet infrastructure but use only the new founding and voting power schemes with the DXD voting machine.

4.- Audit the smart contracts and the dapp.

5.- Deploy to mainnet.

Is this governance platform 1.x or 2.0?

Technically speaking is 1.x, we are not introducing any breaking changes, just adding more features over the classical Genesis Protocol voting machine and creating a new dapp that we will use this features, I would call it governance platform v1.1.

The next features that can be added on governance platform 1.x are:

  • Better integration with alchemy, list and show information of all proposals created in dxdao.
  • Use of multicall and constraint schemes, allowing more powerful and flexible smart contracts interactions.
  • Use distributed networks to share signed information across voters.
  • Multiple networks support, use Rinkeby, xDai and Mainnet in the same dapp.

How long would it take?

Lot of work has already been done in step 1 and 2, and I have a local fork of dxtrust dapp ready to start the development of step 3, so I expect to have a beta version ready for December and a final stable version for end of the year.

I want to be the tech-lead of this project till it reaches an stable version and then we can decide on the next features and how the dapp would be managed, I will be adding the development of the governance dapp as goal in my next worker proposal.

So whats the goal in the end?

The goal is to recognizes the need to change, build and adapt new systems and strives to reach consensus in a scalable, decentralized and effective way. The first version of our voting dapp might not be as fast as centralized systems and may not as easy to use as other voting platforms, but it will be ours, under our control, built around the needs of the the hardcore decentralized organization we are, in the end we will buidl what we need and best for us.

11 Likes

Sounds awesome @AugustoL!
One thing that I thought about, since yesterday or the day before in a call we were talking about how information is currently pretty scattered around Keybase, DAOTalk etc (so it might not be super easy to keep track of everything), is to actually move the DAOTalk chats inside the governance dapp, in a specific section. So you’d have both proposals and discussions about proposals in the same kinda spot, with easy access.
Plus, I don’t think DAOTalk is really decentralized right, so that would be a plus?

Waiting for someone to jump in and eventually give feedback on it.

The thing could also be part of a subsequent iteration of the dapp, obviously, since it is not required to have the actual governance started, I just think it’s a more efficient way to handle things, and efficient discussion is definitely a part of governance.

4 Likes

Defenitely, Ive been thinking about that too, thats should be a future feature and regarding what to use will have to do some research around it, I know that swarm has a messaging protocol that we might be able to use.

DAOtalk is not decentralized at all, it is hosted in the ip 66.220.12.139, next to +1500 domains 66.220.4.0/25 Netblock Details - Hurricane Electric LLC - IPinfo.io :slight_smile:

3 Likes

This * :100:

information is currently pretty scattered around Keybase, DAOTalk etc (so it might not be super easy to keep track of everything), is to actually move the DAOTalk chats inside the governance dapp, in a specific section. So you’d have both proposals and discussions about proposals in the same kinda spot, with easy access.

Forum and voting integration is incredibly important, particularly in how we could use new tools for polling and signalling and also just increasing engagement overall.

7 Likes

1 Like

@AugustoL Your gif game is STRONG.
image

4 Likes

I love the idea! Doubling down on our governance system that we use to operate as DAO can bring so much benefits and efficiencies. I have belief that wave after DEFI can be a DAO wave and this can be perfect app for that!

4 Likes

@AugustoL It is an important part of DXdao operations for voters to be able to see ALL proposals. I don’t think it’s a good idea to have some schemes on one interface and some schemes on another. I think at least one interface (and ideally all interfaces) should show all the schemes and open proposals.

1 Like

Yep we will have to find a way to cache/aggregate/redirect alchemy proposals.

1 Like

The guys of DAOstack are working on new DAOstack tools. I think the dxDAO could collaborate with them in order to avoid duplicate work and let the developed tools be usable by other DAOs.

2 Likes

Realized I should put my thoughts here as well as what I said on the group call.

I think a lot of important points are raised here! I do worry, though, that we’re trying to stick a bunch of new stuff that doesn’t go together into one project idea.

Some of the areas I see being touched here:

  1. Decentralization of infrastructure: it would be great to avoid total dependence on The Graph, since there have been pretty frequent outages recently. I wonder: if there are things we can do here, and it seems there are, should we implement them as back ups in Alchemy directly?
  2. Improvements to the voting machine: there can definitely be improvements made here, though we should be careful with them. Obviously, DAOstack wants to avoid changing the staking token, as removing it really impacts our incentive to help with development. My hope is that we can align more on this over time. A conversation to continue elsewhere :slight_smile:
  3. Voting and conversation together: it seems straightforward that putting the forums / chats and the proposals closer together could be a better experience. Figuring out the UX isn’t trivial, though.

Does it make sense to do all these things at once, and to do them in a new app, separate from Alchemy?

I think it could make sense to do a separate app for the first issue, 1) decentralization of the infrastructure, because to me, that plays a similar role to the watchdog bots we’re using: a more resilient backup in case the main service fails. It could also just be done by giving Alchemy a back up way of displaying proposals when the regular services are down, couldn’t it?

Right now, I think issues 2) and 3) make more sense to wrap into Governance 1.X or 2.0 (the main versions of the governance app). Because DAOstack is invested in DXdao’s success, why not create a vision for Alchemy that matches almost exactly DXdao’s governance 1.X/2.0 needs? DAOstack provides essentially free resources to help build this, as long as we align on the needs. I’ve been working on some proposals along these lines, hoping to share next week.

1 Like

I want to echo removing GEN for Prime. We don’t want to use it as the staking token either. So we’d be very happy with a token neutral version of HC as a voting machine.

I think the easiest way for DAOstack to align incentives would be to work on proposals for DAOs who have funding. That effectively accomplishes the same thing. Right now GEN is sort of a forced top-down system none of us really want or benefit from.

@AugustoL in general this proposed dApp would be awesome for Prime as well. And once Prime is post-IDO maybe aligning roadmaps / splitting costs could help both DAOs.

3 Likes

Hey guys, I
I’ve been away for the past few days, but I would like to weigh in my thoughts on this.

I can try and be objective and wear only my DXdao “hat”, but that would be impossible as I do work for DAOstack.

@AugustoL I think what you’re describing is awesome and a wonderful kit that will improve DXdao’s governance, but executing this will require DXdao to pour significant resources only on this, likely most of the DXdao dev focus.
I think you underestimate the complexity and time it takes to develop and maintain a governance system such as this, and I say this because I tend to do the same :man_shrugging:

Nearly everything that we have planned in DXdao over the past couple of months, from DXswap to Multi-Generic Scheme has at the least quadrupled in time from estimation to actual execution. This isn’t criticism but the nature of development for decentralized systems / Ethereum in General. I also think that when it comes to governance the complexity is even more significant. Oren and Adam’s support and years of expertise here are extremely valuable and forking out from the system will make it very difficult to build on.

My inference from this is that DXdao shouldn’t develop governance but instead collaborate with DAOstack, while DAOstack does most of the heavy lifting. What you have mentioned in this doc is extremely valuable information and I personally mentioned most of those features internally. (I’ve been calling for a DAOtalk embed tab for over a year :slight_smile: )

On the GEN token staking, I said multiple times internally and externally that unless there is real utility and value proposition for GEN to the DAOs using Alchemy, they will fork it out.
This is relevant for @papa_raw as well, but currently what you are getting for using GEN staking is the support and maintenance of DAOstack and Oren / Adam / Ezra / myself.

I might get crucified for this, but I’m skeptical of the “GEN staking network” narrative and I think we should focus on other utilities like Alchemy Governance which I have been pushing for in the form of Genesis DAO revival. Staking GEN via Continouslocking4Reputation gives reputation in the DAO (Also staking a curve pool token composed of the different Ecosystem DAO tokens). This will create an additional utility for GEN and Ecosystem DAO tokens while decentralizing Alchemy to the community and aligning incentives of DAOstack and the Ecosystem DAOs.

To conclude we are far better off collaborating than competing, IMO DXdao and PrimeDAO have enough things to worry about over rebuilding their governance system. DAOstack needs to listen to your needs, and collaborate on building Alchemy moving forward.

5 Likes

Really thoughtful and sublime post!

I think this is where DX/Prime could help out. If this is what is “compensating” DAOstack (the team) at this time, then forking it out and compensating DAOstack directly in ETH/DAI/etc. is a valid substitute, no? I think the issue here is GEN is being positioned as first among equals, but other tokens like DXD/PRIME will have or do have bigger network effects at this point, and their decentralized governance is more developed (right now DAOstack the team is functioning as a legacy business — there was never a successful dogfooding of the software).

So there’s an incoherence and a tension there that is yet to be resolved — that tension will either be resolved swiftly by platform DAOs forking out GEN, or through some sort of organized transition, where (a revived, perhaps DAOstack-team centric) Genesis sits equal instead of first among its peers. But I agree that in the absence of the latter, the former will occur, as you’ve posited.

4 Likes

@papa_raw @nylon @ezra_w Thanks for taking the time to write those replies and sorry for the delay, busy days with swapr and work on dxtrust.

I think we can all agree that there is a lot to gain from both sides in the development of the DXVotingDapp, for dxdao, daostack and other daos such as prime, one will gain more than the other but this being an open-source project that follows the current daostack architecture (something that we have all in common) that I intent to make it flexible and easy to develop with friendly developer operations and code in one place with no dependencies that will allow dxdao and any developer to instantly develop and integrate features that might take more time in alchemy or there are no interest daostack to support.

I want to highlight the importance of this paragraph:

Everything will continue working the same way it always did, but we will have two apps using DXdao smart contracts at the same time, in a future alchemy can integrate features from the voting-dapp and the voting dapp can do the same from alchemy, an open-source win-win .

Yes, there will be some conflict of interest such as staking token that is used in holographic consensus, we can even implement a voting machine in a future that uses not one but multiple tokens.

And yes I might underestimate the work ahead but It does not mean that I should back up, I wont do all the work alone and suddenly appear from nowhere with a voting dapp, that is not what is going to happen but based on what I talked with fellow dxers most of them acknowledged the need of something like this and I want to take the torch at the beginning.

I will keep you guys and everyone in the community up to date on the development of the dapp and let you know when is ready for review and playing so you can be the first ones to try it as soon as I have smth usable.

2 Likes

@nylon @ezra_w @papa_raw @leojoon and others

I am all for DXdao and DAOstack doing all they can to collaborate on improving Alchemy and making better governance systems. And to be clear, DXdao and DAOstack have very open lines of communication and have participated in many meetings together. Since spring of this year I have participated in over a dozen calls with various members of the DAOstack team, including @matan and Adam, discussing plans and coordinating development efforts and audits.

Beyond building the platform DXdao runs on, DAOstack has helped DXdao in adding new schemes and also by running and maintaining Alchemy. However, since DXdao was launched almost a year and a half ago, Alchemy has not seen much improvement. As I understand it, DAOstack has had other priorities during this time. I sincerely hope that DAOstack refocuses on Alchemy and can deliver the improvements to the system that DXdao very much needs. And in my opinion, if DAOstack is maintaining a great platform, then it makes sense for DXdao to continue using GEN as a staking token in holographic consensus.

That said, I completely support @AugustoL’s proposal and effort. His ideas outlined in this post are great. And more importantly, he has a proven track record of delivering for DXdao.

While building a suite of DeFi products is DXdao’s primary focus, governance and decentralization are simply too critical to the success of DXdao for it to stand by passively in hopes that trends reverse and development picks up on Alchemy. I am excited to see Augusto leading DXdao forward on these critical efforts.

3 Likes

Well…looks like I managed to deploy the DXvote dapp on rinkeby! https://gateway.pinata.cloud/ipfs/QmbbwKJsWqxeeoN9zJ7Z1Uiy1waguF1cxiX8HqnNX2JcPw/#/

I will do a demo of dxtrust v0.3.0 and dxvote v0.1.0 on the weekly dev call today.

I am going to share a more detailed update about the dxvote dapp status and next steps soon, my intention is to continue working over it, I will submit that in my next worker proposal.

4 Likes