[bisq-network/bisq-docs] [WIP] Add dao reference doc (#123)

Manfred Karrer notifications at github.com
Sat Apr 6 18:53:42 UTC 2019


ManfredKarrer approved this pull request.

Beside the comments utACK. Very well written!

> +
+For user convenience, the built-in Bisq wallets for BTC and BSQ share the same seed.
+
+More details are in the <<dao/specification#,technical specification>>.
+
+### BSQ Genesis Distribution
+
+As you may have noticed, the Bisq DAO did not launch with a supply of zero BSQ tokens. So where did the initial supply of BSQ tokens come from?
+
+In short, the initial supply of BSQ tokens was created to account for all the contributions to the Bisq project before the mainnet launch of the Bisq DAO.
+
+These contributions can be divided into 2 segments.
+
+1. _Before October 2017_
++
+In the early days of the project, before Bisq tracked compensation requests and voting results, Bisq collected donations. Over time, about 25 BTC was collected from 144 people. In October 2017, as part of the implementation of the <<dao/phase-zero#the-bsq-token,Phase Zero>> plan, it was decided that 2.5 BTC of the total would be distributed back to these past contributors as BSQ where each person would receive an amount proportional to their prior contributions.

"about 25 BTC was collected from 144 people." that is wrong. We got donations from anybody (dont know hwo many) it is not related to the  144 contributors from the orig. genesis.... 

> +
+For user convenience, the built-in Bisq wallets for BTC and BSQ share the same seed.
+
+More details are in the <<dao/specification#,technical specification>>.
+
+### BSQ Genesis Distribution
+
+As you may have noticed, the Bisq DAO did not launch with a supply of zero BSQ tokens. So where did the initial supply of BSQ tokens come from?
+
+In short, the initial supply of BSQ tokens was created to account for all the contributions to the Bisq project before the mainnet launch of the Bisq DAO.
+
+These contributions can be divided into 2 segments.
+
+1. _Before October 2017_
++
+In the early days of the project, before Bisq tracked compensation requests and voting results, Bisq collected donations. Over time, about 25 BTC was collected from 144 people. In October 2017, as part of the implementation of the <<dao/phase-zero#the-bsq-token,Phase Zero>> plan, it was decided that 2.5 BTC of the total would be distributed back to these past contributors as BSQ where each person would receive an amount proportional to their prior contributions.

I think the 25 BTC  from the donation are not relevant here as number, maybe just mention that we fund the genesis tx from our donations. 

> +
+In short, the initial supply of BSQ tokens was created to account for all the contributions to the Bisq project before the mainnet launch of the Bisq DAO.
+
+These contributions can be divided into 2 segments.
+
+1. _Before October 2017_
++
+In the early days of the project, before Bisq tracked compensation requests and voting results, Bisq collected donations. Over time, about 25 BTC was collected from 144 people. In October 2017, as part of the implementation of the <<dao/phase-zero#the-bsq-token,Phase Zero>> plan, it was decided that 2.5 BTC of the total would be distributed back to these past contributors as BSQ where each person would receive an amount proportional to their prior contributions.
++
+2. _After October 2017_
++
+In October 2017, the Phase Zero plan went into effect. Subsequent contributions to Bisq were https://github.com/bisq-network/compensation/issues[documented on GitHub^] and votes were cast https://docs.google.com/spreadsheets/d/1xlXDswj3251BPCOcII-UyWlX7o7jMkfYBE-IZ5te5Ck[on this spreadsheet^] by stakeholders.
+
+The genesis BSQ distribution was the sum of both segments of past contributions.
+
+Ultimately, the genesis transaction issued https://explorer.bisq.network/[6,157,480 BSQ to 202 contributors^].

"6,157,480 BSQ" is too high. It will be likely about 3.5-4M will know exact number soon 

> +
+In short, the initial supply of BSQ tokens was created to account for all the contributions to the Bisq project before the mainnet launch of the Bisq DAO.
+
+These contributions can be divided into 2 segments.
+
+1. _Before October 2017_
++
+In the early days of the project, before Bisq tracked compensation requests and voting results, Bisq collected donations. Over time, about 25 BTC was collected from 144 people. In October 2017, as part of the implementation of the <<dao/phase-zero#the-bsq-token,Phase Zero>> plan, it was decided that 2.5 BTC of the total would be distributed back to these past contributors as BSQ where each person would receive an amount proportional to their prior contributions.
++
+2. _After October 2017_
++
+In October 2017, the Phase Zero plan went into effect. Subsequent contributions to Bisq were https://github.com/bisq-network/compensation/issues[documented on GitHub^] and votes were cast https://docs.google.com/spreadsheets/d/1xlXDswj3251BPCOcII-UyWlX7o7jMkfYBE-IZ5te5Ck[on this spreadsheet^] by stakeholders.
+
+The genesis BSQ distribution was the sum of both segments of past contributions.
+
+Ultimately, the genesis transaction issued https://explorer.bisq.network/[6,157,480 BSQ to 202 contributors^].

I mean total 2.5M + about 1 - 1.5 M

> +=== Technical Overview
+
+There are 2 key points to note about how the Bisq DAO works.
+
+1. **Every DAO action is an on-chain Bitcoin transaction.** Every DAO action requires BSQ, and since BSQ is bitcoin, every DAO action is also recorded on the Bitcoin blockchain. As noted above, this does NOT mean you should try to form your own BSQ transactions. But it does mean that every action you take on the Bisq DAO is immortalized on the Bitcoin blockchain, publicly verifiable, and virtually impossible to reverse.
+
+2. **Bitcoin provides transaction integrity, and Bisq's own P2P network provides storage.** DAO actions such as making proposals and voting include extra data such as text and links that don't belong on the Bitcoin blockchain. This extra data is stored on Bisq's own P2P network (literally, Bisq users' hard drives). A hash of that extra data is included in the `OP_RETURN` output of the corresponding Bitcoin transaction. Then, the Bitcoin transaction ID is added to the extra data and broadcast to peers on the Bisq network.
+
+You can visualize it like this:
+
+.How Bisq stores data
+image::bisq-dao-data-model.png[How Bisq stores data]
+
+Storing a hash of the extra data on the Bitcoin blockchain ensures any attempts to manipulate it will fail, since the hash of the manipulated data will change and then not match the hash recorded in the corresponding Bitcoin transaction.
+
+NOTE: There's a bit of a chicken-and-egg problem here, since the Bitcoin transaction ID can only be known after the Bitcoin transaction is made, and the hash of a data object can only be made once the Bitcoin transaction ID is known. To get around this, the data object is hashed with a blank string in place of the Bitcoin transaction ID, and the Bitcoin transaction ID is added afterward. Later, when the integrity of the data object needs to be validated, the Bitcoin transaction ID is replaced with a blank string before the data object is hashed.

"is hashed with a blank string" - sorry, that info from myself was wrong. it is set to null instead an empty string.

> +
+The genesis BSQ distribution was the sum of both segments of past contributions.
+
+Ultimately, the genesis transaction issued https://explorer.bisq.network/[6,157,480 BSQ to 202 contributors^].
+
+You can verify the calculation of the final issuance amount yourself. The portion allotted for contributors from before October 2017 was 2.5 million BSQ. The remainder was for contributions made afterward, which are all documented on GitHub and the spreadsheet (both linked above).
+
+== Bisq DAO
+
+=== Technical Overview
+
+There are 2 key points to note about how the Bisq DAO works.
+
+1. **Every DAO action is an on-chain Bitcoin transaction.** Every DAO action requires BSQ, and since BSQ is bitcoin, every DAO action is also recorded on the Bitcoin blockchain. As noted above, this does NOT mean you should try to form your own BSQ transactions. But it does mean that every action you take on the Bisq DAO is immortalized on the Bitcoin blockchain, publicly verifiable, and virtually impossible to reverse.
+
+2. **Bitcoin provides transaction integrity, and Bisq's own P2P network provides storage.** DAO actions such as making proposals and voting include extra data such as text and links that don't belong on the Bitcoin blockchain. This extra data is stored on Bisq's own P2P network (literally, Bisq users' hard drives). A hash of that extra data is included in the `OP_RETURN` output of the corresponding Bitcoin transaction. Then, the Bitcoin transaction ID is added to the extra data and broadcast to peers on the Bisq network.

Very well explained!!!!

> +
+Voting cycles are timed to last about 1 month. Duration is measured in blocks, so actual times may vary.
+
+==== Proposal Phase
+
+_3600 blocks, about 24 days_
+
+During this time, Bisq stakeholders (contributors and traders) can make proposals. It is not possible to edit a proposal, but it is possible to remove a proposal and submit a corrected one (only during this phase).
+
+There is a small fee to make proposals to discourage spam. Fees for proposals that are removed are not reimbursed.
+
+Proposals requesting the issuance of new BSQ will also require a small amount of BTC to be included in the proposal transaction so there is BTC to 'color' into BSQ. The spec requires 100 satoshis per BSQ token, so a request for 1000 BSQ will require 1000 Ă— 100 = 100,000 satoshis.
+
+Keep in mind that the actual BSQ you end up with will be net the proposal fee: if your request for 1000 BSQ is approved, and if the proposal fee is 2 BSQ, you will end up with 998 BSQ in your wallet.
+
+For compensation requests, please make sure you follow <<compensation#, established conventions and recommendations>>.

"<<compensation#, established conventions and recommendations>>"  is compensation# intended?

> +
+Votes cannot be changed once they are published.
+
+===== Voting Stake
+
+Your voting weight is determined by 2 factors: _reputation_ (how much BSQ you've earned), and _stake_ (how much of your owned BSQ you allot to your vote) that you specify in your vote transaction.
+
+_Reputation_ is the amount of BSQ earned by doing work for the Bisq network, independent of the amount of BSQ spent or sold. So if Alice earns 10,000 BSQ by working on Bisq, and she sells 8,000 BSQ for BTC to pay her bills, her reputation value remains 10,000 BSQ. Caveat: reputation decays over time. BSQ earned decays linearly over a period of 2 years as soon as it's earned. So the reputation value of Alice's 10,000 BSQ is 5,000 BSQ one year after she earns it, and zero two years later.
+
+Reputation cannot be specified when making a vote transaction—it's automatically calculated for the user from their past contributions.
+
+_Stake_ is the literal amount of BSQ specified for the vote transaction. This is BSQ you own that you would like to devote to your vote. The more BSQ you allot, the more weight your vote will hold. BSQ specified for stake is unspendable for the duration of the voting cycle.
+
+**Total voting weight is the sum of reputation value and specified stake.**
+
+Reputation is worth more than stake. The idea is that there is no better measure of good-will and dedication to the project than actually working on the project. The arrangement still allows people who buy into the project considerable influence, while hopefully minimizing the potential of whales with bad intentions from buying their way in and sabotaging the project.

"Reputation is worth more than stake." not sure if that is really correct. Maybe "earned BSQ gives you more advantage than bought BSQ" ? or just leave it out it becomes clear with all the rest i think 

> +
+Reputation is worth more than stake. The idea is that there is no better measure of good-will and dedication to the project than actually working on the project. The arrangement still allows people who buy into the project considerable influence, while hopefully minimizing the potential of whales with bad intentions from buying their way in and sabotaging the project.
+
+===== Other Details
+
+Votes are published on the Bitcoin network and _encrypted_ vote data objects are broadcast on the Bisq P2P network (hence the term 'blind' vote). The Bitcoin transaction includes a hash of the vote data object. BSQ specified for voting stake is also specified in this transaction, and cannot be spent until the vote reveal transaction is published.
+
+Following the end of the blind voting phase, there is a break of 10 blocks to protect against reorgs.
+
+==== Vote Reveal Phase
+
+_450 blocks, about 3 days_
+
+No action is required of the user during this phase aside from having the Bisq software online at some point during the phase so the vote reveal phase so it can publish the vote reveal transaction.
+
+You should see a pop-up in the UI when the transaction has been published.

-> You will see

> +
+Reputation is worth more than stake. The idea is that there is no better measure of good-will and dedication to the project than actually working on the project. The arrangement still allows people who buy into the project considerable influence, while hopefully minimizing the potential of whales with bad intentions from buying their way in and sabotaging the project.
+
+===== Other Details
+
+Votes are published on the Bitcoin network and _encrypted_ vote data objects are broadcast on the Bisq P2P network (hence the term 'blind' vote). The Bitcoin transaction includes a hash of the vote data object. BSQ specified for voting stake is also specified in this transaction, and cannot be spent until the vote reveal transaction is published.
+
+Following the end of the blind voting phase, there is a break of 10 blocks to protect against reorgs.
+
+==== Vote Reveal Phase
+
+_450 blocks, about 3 days_
+
+No action is required of the user during this phase aside from having the Bisq software online at some point during the phase so the vote reveal phase so it can publish the vote reveal transaction.
+
+You should see a pop-up in the UI when the transaction has been published.

reports from users who have not seen it was because they did not publish the vote

> +
+If a user fails to make their vote reveal transaction, their vote is rendered invalid.
+
+Again, for protection against reorgs, there is a break of 10 blocks after this phase is over.
+
+==== Vote Result Phase
+
+_10 blocks, about 100 minutes_
+
+This phase is more of a trigger, so allotting 10 blocks is more for consistency than a hard requirement.
+
+In this phase, Bisq nodes calculate vote results from proposals, voting stake, and votes (which can now be decrypted from the vote reveal transactions).
+
+===== Determining Consensus
+
+We can trust that all Bisq nodes will get the same data from the the Bitcoin blockchain. However, we cannot be sure that all Bisq nodes have obtained identical data from the Bisq P2P network. It is critical that any potential inconsistencies be handled before determining vote results, otherwise, vote results may differ.

"obtained identical data" -> it only about if u have received all data. the data need to be indentical as hash is in tx.

> +
+==== Vote Result Phase
+
+_10 blocks, about 100 minutes_
+
+This phase is more of a trigger, so allotting 10 blocks is more for consistency than a hard requirement.
+
+In this phase, Bisq nodes calculate vote results from proposals, voting stake, and votes (which can now be decrypted from the vote reveal transactions).
+
+===== Determining Consensus
+
+We can trust that all Bisq nodes will get the same data from the the Bitcoin blockchain. However, we cannot be sure that all Bisq nodes have obtained identical data from the Bisq P2P network. It is critical that any potential inconsistencies be handled before determining vote results, otherwise, vote results may differ.
+
+This is why each Bisq node includes a hash of the list of the voting data objects it has received in its vote reveal transaction. While a hash of vote data objects is recorded on the Bitcoin blockchain for integrity, it's not guaranteed that every _voting data object itself_ is actually delivered to every Bisq node.
+
+So, when calculating vote results, the majority hash from the vote reveal transactions (majority by voting stake) is considered to be the authoritative representation of votes for the whole network. Vote result calculations are based on this uniform determination, ensuring consensus across the network.

Maybe add: The majority hash need to have at least 80% of the total vote stake otherwise the whole voting cycle is considered invalid and all proposals are rejected. Inconsitency should be exceptional and if there is more then 20% of the network inconsistant it shows either a big problem with the P2P network stability. Beside that the 80% requirement protects against potential attacks as only an attacker with 80% of total stake could succeed. 

> +
+===== Determining Consensus
+
+We can trust that all Bisq nodes will get the same data from the the Bitcoin blockchain. However, we cannot be sure that all Bisq nodes have obtained identical data from the Bisq P2P network. It is critical that any potential inconsistencies be handled before determining vote results, otherwise, vote results may differ.
+
+This is why each Bisq node includes a hash of the list of the voting data objects it has received in its vote reveal transaction. While a hash of vote data objects is recorded on the Bitcoin blockchain for integrity, it's not guaranteed that every _voting data object itself_ is actually delivered to every Bisq node.
+
+So, when calculating vote results, the majority hash from the vote reveal transactions (majority by voting stake) is considered to be the authoritative representation of votes for the whole network. Vote result calculations are based on this uniform determination, ensuring consensus across the network.
+
+== Note on Unexpected Situations
+
+Great care has been taken to make sure that there are no opportunities for the Bisq DAO to be exploited by scammers, hackers, or others with bad intentions.
+
+Much expertise and theory went into the Bisq DAO's conception, implementation was careful, and testing was thorough. The resulting software is the best expression of the intention of these collective efforts, but it may not be infallible.
+
+We say this to establish that Bisq DAO code is not law. It has clear intentions, and every effort will be made to fix unintended results. While we hope nothing will be catastrophic enough to require it, hard forks, confiscation, and new issuances are options to deal with extreme scenarios.

Maybe add:
In emergency case trading BSQ can be interrupted as well the DAO operation can be halted. 

> +
+===== Determining Consensus
+
+We can trust that all Bisq nodes will get the same data from the the Bitcoin blockchain. However, we cannot be sure that all Bisq nodes have obtained identical data from the Bisq P2P network. It is critical that any potential inconsistencies be handled before determining vote results, otherwise, vote results may differ.
+
+This is why each Bisq node includes a hash of the list of the voting data objects it has received in its vote reveal transaction. While a hash of vote data objects is recorded on the Bitcoin blockchain for integrity, it's not guaranteed that every _voting data object itself_ is actually delivered to every Bisq node.
+
+So, when calculating vote results, the majority hash from the vote reveal transactions (majority by voting stake) is considered to be the authoritative representation of votes for the whole network. Vote result calculations are based on this uniform determination, ensuring consensus across the network.
+
+== Note on Unexpected Situations
+
+Great care has been taken to make sure that there are no opportunities for the Bisq DAO to be exploited by scammers, hackers, or others with bad intentions.
+
+Much expertise and theory went into the Bisq DAO's conception, implementation was careful, and testing was thorough. The resulting software is the best expression of the intention of these collective efforts, but it may not be infallible.
+
+We say this to establish that Bisq DAO code is not law. It has clear intentions, and every effort will be made to fix unintended results. While we hope nothing will be catastrophic enough to require it, hard forks, confiscation, and new issuances are options to deal with extreme scenarios.

Maybe it requires more: This can be done by an alert message sent out from the lead developer. Such messages can be ignored by users if they have reason to think that this is abused. Though ignoring it in justified situation would exclude a user from reimbursement and support in case of losses.  

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq-docs/pull/123#pullrequestreview-223551342
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190406/ca7c8e76/attachment-0001.html>


More information about the bisq-github mailing list