As a brief introduction, I recently graduated from Flatiron Access Labs (a 15-week immersive Web Development Bootcamp). While I was attending, Anthony Albertorio, a developer at Consensys, invited me to participate in a blockchain hackathon (as always, thanks Anthony!!).
The purpose of the hackathon was to come up with an idea of a DAO that could be implemented in the Bushwick Generator, an emerging, decentralized, blockchain innovation space.
What is a DAO?
A Decentralized Autonomous Organization that encompasses a decentralized and self governed infrastructure. It utilizes smart contracts to regulate the actions and constraints of the organization. Just think of it as a decentralized voting system for anything that needs to come down to a consensus.
One thing that helped me understand DAOs was an example provided by Pat Rawson, a DAOStack team member, who described a use-case for a vending machine. Members could vote on what sodas and snacks would be available in the vending machine — and as small and unimportant people might argue that is, it shows that anything can be voted on, and therefore deploy the idea of a true global opinion.
Being fairly new to the idea of the blockchain and never even hearing the term DAO (and tooling around it), I did not know what to expect. Thankfully, I teamed up with a diverse and talented group of people:
- Jonathan — Attorney by day, self taught coder by night.
- Gabby — Student at Byte Academy with a finance background.
- Chance — Front end and Blockchain engineer.
- Francis — Former student at Byte Academy, currently a front end developer.
Jonathan, Chance and Francis were the back end team of our group, and Gabby and I were the front end. And together, the GEN COMMUNE was born.
Formulating our idea for the Dapp
While we were formulating an idea, we knew we wanted it to be something that the members of the community would appreciate. Jonathan came up with an idea of creating a DAO to handle voting for the artist that would be featured at a community event, like a rooftop or holiday party. We then expanded on that idea to utilize the same DAO to vote for anything that might happen at a shared common space, some other examples being what food would be served on a given day, or even what charity funds would be donated to. And one of the main intents of this was the vision of supporting local artists/businesses.
After getting that initial idea, we had to start thinking about a couple of key features:
- How it would also benefit the winning proposal (e.g. the artist)
- How to attest the truthiness of a winning proposal (e.g. did the artist perform?)
- How would reputation (think of it as a numerical value of ones vote) be implemented into this?
- Utilizing the Holographic Consensus Mechanism (having a prediction market where members can stake the outcome of a certain proposal) and if it will be beneficial to the voting process
If someone is providing a service, they should be rewarded in some way. Therefore, we decided that the winning proposal would be payed out through the Central Treasury of the DAO, but only after a sufficient amount of members “attest” to the given proposal, a.k.a. declaring if it was completed (exact logistics have not been decided, only a broad idea).
One of the biggest issues of a decentralized governance system is how to get people to vote. More specifically, the issue that not everyone is going to vote — and so absolute majority (where consensus is met after everyone under a given DAO votes) isn’t a realistic outcome. DAOStack has announced a solution to this problem, the Holographic Consensus Mechanism.
There are a number of aspects that go under this mechanism: One of which active members and organizations get rewarded with reputation, which shows their influence and value to the whole. Other ways to get more reputation is if they stake tokens to their predicted outcome (pass or fail) of the proposal and the outcome is true to their prediction, they receive more tokens (and lose tokens if they predicted wrong). Once a proposal gets enough stakes, this is essentially “boosting” the proposal based on importance in the queue of proposals, in other words promoting what they believe should be priority. This will help with showing the rest of the community what events are currently more sought after, therefore give it more attention.
Rewarding constant activity is a great way to encourage participation.
Building the prototype
Splitting the development with back end and front end sub-teams, I would say we had a great work dynamic. After finalizing the design, we were able to build a functional decentralized application using Solidity and React.
For our DAO, which we have named The Bushwick Generator Digital Commune (credit to Gabby for the legit name), we came down to the main components of this dapp being registry as a member using Metamask, the ability to view existing initiatives/creating new ones (you can think of initiatives as categories, e.g. Music, Food, Charity), and viewing/voting on existing proposals to those initiatives/submitting new ones. For the client/user side, we envisioned an easy user flow from registry to viewing/submitting initiatives and proposals (Single Page Dapplication), as well as providing the user with information about the status of the proposal.
Communication was one thing that was constant and essential to the building process. One thing we discussed was if we wanted to showcase multiple proposals for each initiative. Due to the time limitations, we went with just showing one proposal for each initiative. However, pushed the idea that multiple proposals could be introduced.
We tried to be more efficient by implementing Semantic UI (a framework) to the front end. Gabby and I were not as exposed to it, so it ended up taking a longer time to learn and apply it. From this, I learned to just use the tools in your toolbox, and if you think another tool might be useful, learn it before the hackathon. That way, you’ll be more prepared and maximize productivity.
Combining the back end and front end was exciting. I had never worked with Web3.js and Metamask, but I learned how they can be used to pull a user’s account information.
Overall, I had a great experience, and learned not only about decentralized governance, but also best practices regarding development. When you run into a problem, don’t spend more than an hour for a single solution. Sometimes its better to think of other possible solutions. From all of us being first introduced to what a DAO even was, we ended up winning and leaving with a working prototype.
From this great first experience, I’m definitely going to participate in more Hackathons going forward. We, as a team, are also going to continue working on our DAO (follow progress here). I have also joined the DAOStack Pollinators program, an initiative to help spread the word about DAO and blockchain, to be more involved in the space.
Thanks for reading!
Linnia Protocol (a.k.a. Stow Protocol) — a spoke of Consensys, is a decentralized protocol that facilitates the secure storage and sharing of sensitive data.
NYC Blockchain Devs (Meetup) — organized by Anthony Albertorio, one of first places where I learned about the Blockchain.