<p>That's a pretty general contract: As long as more than two thirds of the shareholders agree, you can change every single storage entry. This enables to add or remove shareholders, change the program itself (as it's part of the storage as well), and store arbitrary additional data.</p>

<hr>

<p>To extend the description in the white paper a little, here's how a voting could look like:</p>

<p>1) One shareholder proposes a change of some storage bytes using the second transaction type (<code>[1,k,L,v0,v1...vn]</code>). <code>k</code> is a kind of ID to refer to this suggestion later, <code>L</code> is the first storage address that will be changed and <code>v0, v1, ...</code> is the data to store. As you can see, arbitrary changes of storage entries are allowed.</p>

<p>2) Now, the other shareholders can vote to implement the change with the first transaction type (<code>[0,k]</code>, where <code>k</code> refers to the previously registered proposal). The number of votes in favor of this proposal is stored at a storage location given by the hash of <code>k</code>.</p>

<p>3) As soon as enough votes have been received, a shareholder can send the third transaction type to apply proposal <code>k</code>, i.e. write the data to the storage.</p>

CC BY-SA 3.0
2014-03-21T10:09:34.493Z
2014-03-21T10:09:34.493Z
jnnk
<p>I've had a look at the <a href="https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper#decentralized-autonomous-organizations">white paper</a> but I fail to understand exactly what is happening on the code shown on the page.</p>

<p>As far as I understand this example manages shareholders. But, is it possible to store organisation data somewhere? I (honestly) don't understand this. </p>

CC BY-SA 3.0
2014-03-20T17:15:01.043Z
You will find more information in the forums of the [ethereum site](http://forum.ethereum.org/).
Jonathan Rogiest
CC BY-SA 3.0
2014-03-21T11:44:53.193Z
Please provide sufficient information that the question can be understood from the question's text. Please, don't make us read another resource in order to be able to understand your question, but rather provide a link additionally as the source in case somebody wants to get more background information.
Murch
<ethereum>
What actually happens in a basic DAO in ethereum?
TheMightyLlama
# What actually happens in a basic DAO in ethereum?

(Asked by: username_0 on 2014-03-20)

I've had a look at the [white paper](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-White-Paper#decentralized-autonomous-organizations) but I fail to understand exactly what is happening on the code shown on the page.

As far as I understand this example manages shareholders. But, is it possible to store organisation data somewhere? I (honestly) don't understand this.

**Tags:** ethereum

> **Comments:**
> **username_1**: You will find more information in the forums of the [ethereum site](http://forum.ethereum.org/).  
> **username_2**: Please provide sufficient information that the question can be understood from the question's text. Please, don't make us read another resource in order to be able to understand your question, but rather provide a link additionally as the source in case somebody wants to get more background information.  

---

## 1 answers

### Answer by username_3 on 2014-03-21. Score: 3

That's a pretty general contract: As long as more than two thirds of the shareholders agree, you can change every single storage entry. This enables to add or remove shareholders, change the program itself (as it's part of the storage as well), and store arbitrary additional data.

---

To extend the description in the white paper a little, here's how a voting could look like:

1) One shareholder proposes a change of some storage bytes using the second transaction type (`[1,k,L,v0,v1...vn]`). `k` is a kind of ID to refer to this suggestion later, `L` is the first storage address that will be changed and `v0, v1, ...` is the data to store. As you can see, arbitrary changes of storage entries are allowed.

2) Now, the other shareholders can vote to implement the change with the first transaction type (`[0,k]`, where `k` refers to the previously registered proposal). The number of votes in favor of this proposal is stored at a storage location given by the hash of `k`.

3) As soon as enough votes have been received, a shareholder can send the third transaction type to apply proposal `k`, i.e. write the data to the storage.


---

