DAOstack – The Toolkit for Distributed Governance

in #ico6 years ago (edited)

main.jpg

DAO stands for Decentralized Autonomous Organization. To put it simply, it's an idea that governing structures, whether it's corporate governance or ruling elite of a country, can be replaced by algorithms. The algorithms are immutable and incorruptible; there's no possibility that a hacker can alter their code, so they would do something different than they were initially intended for, benefiting the attacker. This immutability and protection are guaranteed by the architecture of blockchain smart contracts. Once the code of a smart contract is submitted to the blockchain and validated, it cannot be altered afterward. This would lead to inconsistency of the code with its hash, and trying to tweak the hash is pointless as well, because it's implicitly used to calculate all the hashes of all the subsequent blocks on the blockchain. In other words, the hacker can spend a billion years recalculating all the chain hashes and still not achieve the desired result.

While this idea of organizations, self-governed through algorithms, is viable, there is a number of problems with such systems. One of them is well illustrated by the fate of the first DAO prototype project that had been given a surprisingly original name "The DAO". The main purpose of the project was to create a venture fund that wouldn't have any formal organizational structure, like, when we talk about online platforms we always know that there are developers, moderators, and admins, controlling everything that's going on there. In wasn't the case with "The DAO". The platform included a set of algorithms that defined the rules of its participants' actions and interactions. Then it had been let loose in the wild, and from that moment no one was able to manually control it; neither it was possible to change those pre-programmed rules. This is basically the paradigm of DAO; if somebody would be able to somehow control its processes, it would mean human governance, apart from automatic algorithmic governance, which would defeat the initial purpose. So the platform didn't allow it. Meanwhile, the investors started to pour money into the project.

Fast-forwarding to what happened next; the algorithms governing the platform were solid, well-written, balanced, and all that. It could really be a first shining example of the successful self-governing organization, but it turned out differently. Namely, there was a small bug in the code that allowed a hacker to slowly drain the project's funds, transferring them to her own wallet. The most interesting aspect of that situation was that the hack was going on for quite a while. Everybody saw what was going on, but nobody was able to do anything to stop it. Because, well, the platform was built in a way that effectively prevented human intervention. And it perfectly aligned with the DAO concept, in that case with somewhat disastrous consequences. Well, several hundred million dollars were stolen. And another interesting aspect of the story is that the hacker refused to admit that she did anything wrong. Well, technically she didn't. All her actions were based on exploiting a loophole in the platform's algorithms. But the thing is, according to DAO principles everything that's done within the platform, which doesn't contradict the rules written in smart contracts, is perfectly legit. And it's technically impossible to do anything contradicting those rules. This is the beauty of the system. Well, sort of.

1.png

This example raises the question of what the participants of DAO should do if its algorithms reveal technical flaws, and the whole system starts to run amok. There's a dilemma. Allowing somebody to get involved in such case would completely undermine the principle of technical governance autonomy. If a person can change the rules by which the system operates in a moment of crisis, what does prevent him to do it any time he wishes? We get a situation when the authority of some platform participants supersedes an authority of the autonomous algorithms, and it completely defeats the purpose of the whole system. On the other hand, it's hard to imagine algorithms that are flawless from the start; more likely than not they will contain some implicit mistakes and potential loopholes. So it leads to the idea that there needs to be some protocol, allowing to change the initial rules, for example, if the majority of platform participants agree to do so.

The ideas and theoretical ruminations on how such protocols should be organized, as well as discussions on how to make self-governing systems more robust and less prone to errors, are numerous, and all this is a bit beyond the point of my current topic. Because the point I'm going to make here is that DAOs are cool despite all their shortcomings. The point about participants' ability to reach consensus in altering the protocol will surface later.

Right now let's mention that we have the DAOstack project that develops the platform that is somewhat a meta-platform or a “construction kit” for DAOs. The main idea is that it's hard to implement a DAO from scratch even for seasoned and experienced developers. To do that apart from everything else, like strictly technical aspects, one should understand the underlying ideology, philosophy, and economy of platform participants' interactions. The key objective is to achieve a fragile state of balance, in which everybody's interests are aligned in such a way that nobody can take advantage of specific rules. So, considering the difficulty of implementing such a system, a construction kit with pre-programmed blocks and architectural elements is a fairly good solution. To put it simply, it provides a general DAO framework that can be modified and customized to suit the purposes of specific projects.

d.jpg

Speaking of DAOstack key features; it includes a holographic consensus model that allows its participants to make decisions regarding the development and changes in protocol. (As I promised, the point of consensus-based alterations of rules, governing DAOs, emerges here again) The key objective of holographic consensus is to organize a vote based system of decision making that at the same time wouldn't be drowned in "noise," generated by all the multitude of platform users. More on that later.

Technically the platform includes the server-side and client-side components: The former is Arcs or smart contracts written in Solidity, representing the server-side logic and comprising the core framework of the system, and the latter are Arc.js client-side procedures, allowing the developers to create a user interface on top of the platform core logic.

Now let's get a deeper look at what's holographic consensus, and how it works. First, let's consider a general situation with the governance of a big organization. With the growth of the organization, it becomes more difficult and costly to manage and control it. The reason is that most of the decisions need to pass through a single command and control center. So the bigger the organization, the more decisions need to be made, and, at some point, the single control center cannot handle in time all that mass of accumulating problems.

Another possible approach to organizational governance is by passing resolutions based on the majority vote. But this also is not an ideal solution since the sheer amount of big and small proposals can quickly dilute public attention. Basically, everybody would spend most of their time reading and voting on proposals and won't have time for anything else. The project's idea is to replace the concept of the absolute majority vote in the decision-making process with the relative majority vote. In essence, it means that decisions are voted into action by a small group of people who just care to take a look at what has been proposed and express their opinion.

So how can we be sure that this system won't be hijacked by a small group of people, trying to advance their interests on everybody else's account? For example, I can organize my friends, and then we pollute the system with a flood of meaningless proposals, and among them, I insert the one that proposes to transfer all the organization's funds to my personal wallet. Then while everybody's attention is distracted by a flood of garbage, we vote for this proposal of mine, and, voila, all the funds are transferred to my wallet and then probably we can share the loot.

The first most obvious thought in regard to preventing such situation is to establish the quorum, so if there are fewer votes for the proposals than an established threshold, the vote wouldn't be considered legitimate. The problem with this approach is that it's very hard to tell how large the quorum should be so that it would be sufficient against gaming the system, and at the same time won't dilute platform users' attention. In other words, if the quorum is too large, we will return to the situation when the significant number of users will be spending most of their valuable time considering and voting on various proposals, most of them meaningless anyway. What makes the situation even worse is that even a large enough quorum doesn't give a guarantee against a successful attack on the system.

distribution.png

The project X approaches this problem differently. First of all, not all the proposals that might emerge in the self-governing system are equally important. So the first sensible step is to channel more meaningful proposals into a separate heap. In project's terminology, it's called "boosting." The rules for "boosted" proposals are different from the rules that apply to the rest. Namely, the principle of relative majority vote only applies to "boosted" proposals. Here the chance of a successful attack is much less. Why? Well, in order to "boost" a proposal some of the platform's participants need to be interested in its success to the degree when they stake tokens on it. The platform provides all its users with special GEN reputation tokens that specifically serve that purpose. The GEN tokens are not transferable, so it's not possible to corrupt the system by buying them in order to increase voting power. The promoters take a risk; in case the proposal is voted down they lose their reputation tokens. At the same time, this personal involvement stimulates them to promote the proposal they staked their tokens on among other platform participants. Another important thing to note here is how the deadline for decision making is organized in this case. Namely, it can be configured as a fixed period of time, but the important thing is that it requires at least one "quiet" day at the end of the voting period. It means nobody during that day votes for or against the proposal in question. It's done in order to prevent another type of attack, namely when a group of people conspires to cast their votes at the last possible moment. If nobody paid much attention to the proposal before, then the last moment vote doesn't leave much time for anybody to counteract. So the protocol stipulates that if any votes are cast during the last "quiet" day, the voting period is increased by a certain number of days.

Speaking of proposals that are not "boosted", they require the absolute majority vote to be accepted. In other words, all or the most of the platform's participants need to vote to create a sufficient quorum. Which is very unlikely, and, at the same time, it prevents diluting public attention among the mass of insignificant things.

partners.png

Partners

All in all, the DAOstack project explores an interesting concept and is moving forward pretty fast. Apart from implementing the core idea of DAO "construction kit", which is quite an impressive achievement by itself, the startup already has a number of use-cases, projects built on top of its core infrastructure, including Alchemy, a user interface for budgeting and resource allocation.

In May 2018 DAOstack will conduct a public token sale, aiming to distribute 40% of its fund of 100,000,000 GEN Tokens.


Useful links

Website | ANN | Whitepaper | Telegram | Twitter | Medium | Forum | Youtube | Github | Reddit

Authored by: faragly (@popeye_the_sailor)
ETH address: 0x269023f7c6b9624A93F317484E9CB0cD0F3bcd1C

resteem.gif

Sort:  

Resteemed by @resteembot! Good Luck!
Curious? Read @resteembot's introduction post
Check out the great posts I already resteemed.

ResteemBot's Maker is Looking for Work

This post has received a 0.15 % upvote from @drotto thanks to: @cryptotaofficial.

Resteem bot Service! Promote Your New Post.Find New Freinds - Followers - Upvotes. Send 0.400 SBD and your post url in memo and we will resteem your post to 9000+ followers from two different account.@stoneboy and @vimal-gautam.

You just received a Tier 0 upvote! Looking for bigger rewards? Click here and learn how to get them or visit us on Discord

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.029
BTC 60320.14
ETH 3373.37
USDT 1.00
SBD 2.51