diff --git a/README.md b/README.md index 7d97b3f..c9459c8 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ detailed explanation. # Available BSIPs Number | Title | Owner | Type | Status ------------------- | --------------------------- | -------------- | -------------- | ------- +------------------ | ---------------------------------- | -------------- | -------------- | ------- [1](bsip-0001.md) | BSIP Purpose and Guidelines | Fabian Schuh | Informational | Draft [2](bsip-0002.md) | Refund Create Order Fees on Cancel | Daniel Larimer | Protocol | Draft [3](bsip-0003.md) | Maker / Taker Market Fees Flag | Daniel Larimer | Protocol | Deferred @@ -20,3 +20,4 @@ Number | Title | Owner | Type [6](bsip-0006.md) | Market Maker Incentivization | Daniel Larimer | Protocol | Draft [7](bsip-0007.md) | Fee Backed Assets (FBA) | Daniel Larimer | Protocol | Draft [8](bsip-0008.md) | Privacy (STEALTH) Mode | Daniel Larimer | Protocol | Draft +[9](bsip-0009.md) | Benefit Society | Fabian Schuh | Protocol | Draft diff --git a/bsip-0009-Benefit-Society.md b/bsip-0009-Benefit-Society.md deleted file mode 100644 index 02ecfb5..0000000 --- a/bsip-0009-Benefit-Society.md +++ /dev/null @@ -1,112 +0,0 @@ - BSIP: 0001 - Title: BSIP Purpose and Guidelines - Authors: Fabian Schuh - Status: Draft - Type: Informational - Created: 2015-12-16 - - -Benefit Society on a Blockchain -------------------------------- - -This improvement would allow individuals to form benefit societies on a blockchain. - -A benefit society, fraternal benefit society or fraternal benefit order is a society, -an organization or a voluntary association formed to provide mutual aid, benefit, -for instance insurance for relief from sundry difficulties. - -The premise of this feature is to be an organizational tool for groups of individuals -working toward a common cause. The benefit of implementing this on a blockchain is to -enable the formation of of benefit societies that may be difficult or impossible to -operate in the traditional manner. - -This feature would not change any existing behavior on the BitShares blockchain and would -only add new operations. - - -## Society State - -| Field | Description | -|-------------------------------------------|----------------------| -| Creator | Account ID of the creator of this society. This account has permission to modify the properties of this society until the first membership account is funded and Karma has been issued. After Karma has been issued, the creator permissions are set to the top P membership accounts by total Karma vote. | -| P | The number of members who have joint control over the creator account. | -| Name | Used to identify the society. The name can be any UTF8 string up to 60 characters. | -| Description | Defines the high level purpose of the society | -| Decay Rate | Defines the rate at which karma in a society decays (% per day) | -| Karma Ratio | Defines the amount of karma each member earns per BTS of commitment | -| Vesting Period | Defines the rate in seconds at which Karma vests | -| URL | Defines a URL where more information about the society can be found | -| Total Karma | Tracks the total karma issued to all members of this society | -| Approval Threshold | The percent of karma voting required to approve a payment request | -| Total Approved Requests | The total amount of Karma that has been approved for donations, this number can be calculated by summing the requests | -| Total Payouts | Total BTS given to active requests. | -| Charity Percent | The percent of donations that may be given to charity requests | -| Active Charity Requests | The number of active charity requests that are allowed. The top N charity requests by Karma approval voting may receive donations from member's charity account. | - -## Membership State - -| Field | Description | -|------------------------- |------------------------| -| Membership ID | Unique Identifier for this Membership | -| Account ID | The BTS account which has control over this Membership | -| Society ID | The society this membership is a part of | -| Total BTS Given | Tracks the life-time total of how much BTS has flowed through this membership | -| Membership BTS | BTS held in reserve that may only be given to other members | -| Charity BTS | BTS held in reserve that may be given to charity or other members | -| Karma | Current Karma within this society | - - -## Request State - -| Field | Description | -|------------------------- |------------------------| -| Membership ID | The society member making the request | -| Karma Committed | The total Karma being being used by this request | -| Total Karma For | The total amount of Karma voting to approve this request | -| Total Karma Against | The total amount of Karma voting against this request | -| Subject | An 80 character title for the request | -| Summary | A brief summary of the request | -| Details | A detailed descirption of the request | -| Total BTS Received | The total BTS that has been given to this request | - - -New Operations --------------- - -*Create Society* - This operation is similar to create asset. It defines a new society including -a name, description, and any configurable parameters. - -*Join Society* - This operation ties an existing BitShares account to a particular society and -defines any relevant information associated with society membership. This information may include -the user's real name, age, location, etc. - -*Commit Funds to Society* - This operation will transfer BTS from an account to a society membership. -It may be performed by any account. 1% of the BTS transferred will be paid to the BTS reserve pool, -2% of the BTS transfered will be allocated to the referral program, and 2% of the BTS transferred will be -used to buy back a Fee Backed Asset dedicated to this feature. The society membership will earn Karma within -the society proportional to the BTS contributed. - -*Request Payout from Soceity* - This operation will create a payout request. A payout request includes Karma from -the membership account requesting the payout and requires permission of the membership owner. The request includes a -subject, summary, and detailed description explaining the justification. - -*Update Payout Request* - This operation can be used to update mutable properties of an existing payout request. - -*Approve or Reject Payout Request* - This operation is used to vote for or against paying out a particular request. -Each member of a society can vote with a weight equal to the amount of karma the account has earned. - -*Update Membership Info* - This operation is used to update mutable membership information such as nominating -a proxy to vote on your behalf. This is designed to simplify the amount of voting the average member must worry about. - -*Fund Payout Request* - This operation will transfer BTS held in the membership account reserve to an approved payout request. - - -Maitenance Operations ---------------------- -The following actions will be performed on a daily basis during a mainteanance interval block. - -1. Tally all relevant votes -2. Update management account authority for each society -3. Update management account authority for the fee backed asset -4. Decay all Karma by the configured percentage - diff --git a/bsip-0009.md b/bsip-0009.md new file mode 100644 index 0000000..21dc728 --- /dev/null +++ b/bsip-0009.md @@ -0,0 +1,470 @@ + BSIP: 0009 + Title: Benefit Society + Authors: Fabian Schuh + Daniel Larimer + Status: Draft + Type: Protocol + Created: 2015-12-16 + +# Abstract + +This proposal allows individuals to form *benefit societies* on the BitShares +blockchain. + +A benefit society, fraternal benefit society or fraternal benefit order is a +society, an organization or a voluntary association formed to provide mutual +aid, benefit, for instance insurance for relief from sundry difficulties. + +# Motivation + +The premise of this feature is to be an organizational tool for groups of +individuals working toward a common cause. The benefit of implementing this in a +decentralized business (e.g. on a blockchain) is to enable the formation of of +benefit societies that may be difficult or impossible to operate in the +traditional manner. + +Prior to blockchain technology any attempt to set up such a cooperative society +would get shut down. The resources pooled by the members would be seized. The +creation of such an organization would involve incorporating a business or +nonprofit with the permission of the government. Such an organization would +become a "single target" that was far easier to attack than going after all of +its members individually. If you attempted to create such an organization +without incorporating then individual members would have incentive to defect +when they are needed (it would be the prisoner's dilemma all over again). + +Now that we have blockchain technology we can create a system where the +individual members cannot "defect" because all funds are managed by smart +contracts. Meanwhile, the government would not have a single target to attack +and take down the entire operation by stealing the reserves. Taking down this +system would have to go after all of the members individually which we have already +established as being politically inviable. + +# Rational + +## The Prisoner's Dilemma + +As a society we are caught in what is known as the prisoner's dilemma. The +prisoner's dilemma is a canonical example of a game analyzed in game theory that +shows why two purely "rational" individuals might not cooperate, even if it +appears that it is in their best interests to do so. Here is an example of the +prisoner's dilemma: + +Two freedom fighters are arrested, but prosecutors lack sufficient evidence to +convict them on the principal charge with a 2 year prison sentence. The +prisoner's hope to get sentenced to a lesser charge with just a 1 year prison +sentence. So the prosecutor offers each of them a deal, if they turn on the +other then they will be set free. So the options are as follows: + +They both turn on each other and get a 2 year sentence They remain loyal and +both get a 1 year sentence One of them defects, and gets set free leaving the +other to rot in jail for 2 years + +## Discussion + +It is implied that the prisoners will have no opportunity to reward or punish +their partner other than the prison sentences they get, and that their decision +will not affect their reputation in the future. Because betraying a partner +offers a greater reward than cooperating with him, **all purely rational +self-interested prisoners would betray the other**, and so the only possible +outcome for two purely rational prisoners is for them to betray each other. + +## Solution + +To break the cycle of violence and passive acceptance we must change the rules +of the game and **offer incentives for people to cooperate** for mutual self +defense. What if the freedom fighters had a policy of paying for the legal +defense of its members and compensating them for any time spent in prison? +Under such a system, the incentive to defect would be dramatically reduced. It +would be completely eliminated if defection disqualified a member from future +benefits. This would leave the following potential outcomes: + +Neither defect, and both members are paid to spend 1 year in jail One defects, +goes free, but loses protection of his fellow activists, and the other is paid +to spend 2 years in jail. Both defect, both spend two years in jail, and +neither get paid. + +The rational actor under these choices will risk 1 paid year in jail rather than +2 unpaid years. + +# How Benefit Society Work + +1. Commit to supporting others within a society +2. Vote on which people qualify for help according to your societies policy +3. Give your pre-committed funds to authorized requests for help +4. Request help from the society when a qualifying event happens in your life +5. Receive donations from the members of the society you have supported + +Each month you publicly commit funds to be given to other members of your +society. These funds are held in a Smart Contract that will only allow them to +be given to other members of your society with approval by a large minority (3%) +of the society. + +When a member experiences an unexpected burden they request help from their +society. Members of the society will then vote to approve or reject the request. +If the request is approved then individuals with pre-committed funds may choose +to give to their cause. The more you give to a society, the more it will give +back to you many times over. + + +# Specifications + +This proposal will not change any existing behavior on the BitShares blockchain +and only adds new operations, states and smart contracts. Furthermore, all +parameters given as suggestions can be chosen individually for each society and +are voted for within each society. + +## Overview + +Every member of a society commits money to their own individual gift reserve on +a regular basis to earn *karma* in that particular society. The ultimate +strategy for an individual is to contribute money on a monthly basis so that he +or she can maintain their desired level of karma. + +By adding money to this gift reserve the user is committing to +donate that money to future claims of **other** members of the society and the +blockchain enforces that the money can only be used for that cause. + +A claim must be verified by one or more elected oracles of the society. Oracles +are elected via karma weighted votes. Users can either be their own Oracle +(voting themselves) or they can delegate their power to someone else. Oracles +can vote for or against a claim and their vote is used **only** to certify the +facts of the claim are true. Among those facts are things like the person making +the claim is the owner, that they are in good standing, and that they had +sufficient karma at the time of the event in question. + +To have a claim "approved" it must have a net positive vote greater than the +total karma held by the top 10 individual accounts by total karma. This measure +is designed to be high enough to prevent obvious fraud, but low enough that it +doesn't require every oracle to review and approve of every case. + +Once approved by the oracles it is up to individual members of the society to +transfer funds from **their** individual gift reserve to the individual in +question. This ultimately means that even if the oracle is "gamed", you must +still convince the users with money to give it to your claim. This is the final +check on the system and ensures that manipulating the voting for qualification +is independent of actually receiving a payout. In the end, all an oracle can do +is give a recommendation and prevent spam. + +When a user chooses to fund a claim they receive karma for every dollar +they give to someone who has filed a claim. This is designed to incentivise +individuals to actually pay out claims rather than just lock up money in their +gift reserve. This karma have no vesting requirements because the funds in +the gift reserve vested along with the karma earned. + +## Karma + +When a user contributes to a society they earn Karma in that society. Karma is +what qualifies a user to receive benefits from that society. Karma fades over +time if a user does not maintain regular donations. The default half life for +Karma is about 6 months. This means that giving a fixed amount every month will +eventually result in a maximum Karma level around 10 times the monthly +contribution. + +![Karma over time](bsip-0009/karma.png) + +If after 12 months of consistent contributions a member stops making +contributions their Karma will gradually fall off, but will never quite hit 0. + +![Karma over time with exit after 6 months](bsip-0009/karma-exit.png) + +Karma is also what gives members voting power over which requests for help are +qualified and which ones are not. Members earn half their Karma at the time +they contribute to their gift account and the other half of their Karma at the +time they allocate their gift to an approved request. In this way members are +encouraged to actively fulfill requests with their donations instead of letting +them accumulate for ever. + +When a user files a request they use their Karma to request donations. There is +a ratio of the average donation received per Karma claiming donation. + +## States + +We propose to add three new states to the protocol that need to be tracked and +evaluated: + +* **Society State**: +* **Membership State**: +* **Request State**: + +### Society State + + | Field | Description | + | ------------------------ | ---------------------- | + | Name | Used to identify the society. The name can be any UTF-8 string up to 60 characters. | + | Description | Defines the high level purpose of the society | + | Creator | Account ID of the creator of this society. This account has permission to modify the | + | | properties of this society until the first membership account is funded and Karma has | + | | been issued. After Karma has been issued, the creator permissions are set to the top P | + | | membership accounts by total Karma vote. | + | nControl | The number of members who have joint control over the creator account. | + | Decay Rate | Defines the rate at which karma in a society decays (% per day) | + | Karma Ratio | Defines the amount of karma each member earns per BTS of commitment | + | Vesting Period | Defines the rate in seconds at which Karma vests | + | URL | Defines a URL where more information about the society can be found | + | Total Karma | Tracks the total karma issued to all members of this society | + | Approval Threshold | The percent of karma voting required to approve a payment request | + | Total Approved Requests | The total amount of Karma that has been approved for donations, this number can be | + | | calculated by summing the requests | + | Total Payouts | Total BTS given to active requests. | + | Charity Percent | The percent of donations that may be given to charity requests | + | Active Charity Requests | The number of active charity requests that are allowed. The top N charity requests | + | | by Karma approval voting may receive donations from member's charity account. | + +### Membership State + +| Field | Description | +| ------------------------- | ------------------------ | +| Membership ID | Unique Identifier for this Membership | +| Account ID | The BTS account which has control over this Membership | +| Society ID | The society this membership is a part of | +| Total BTS Given | Tracks the life-time total of how much BTS has flowed through this membership | +| Membership BTS | BTS held in reserve that may only be given to other members | +| Charity BTS | BTS held in reserve that may be given to charity or other members | +| Karma | Current Karma within this society | + +### Request State + +| Field | Description | +| ------------------------- | ------------------------ | +| Membership ID | The society member making the request | +| Subject | An 80 character title for the request | +| Summary | A brief summary of the request | +| Details | A detailed description of the request | +| Karma Committed | The total Karma being being used by this request | +| Total Karma For | The total amount of Karma voting to approve this request | +| Total Karma Against | The total amount of Karma voting against this request | +| Total BTS Received | The total BTS that has been given to this request | + +## New Operations + +* *Create Society* - This operation is similar to create asset. It defines a new + society including a name, description, and any configurable parameters. +* *Join Society* - This operation ties an existing BitShares account to a + particular society and defines any relevant information associated with + society membership. This information may include the user's real name, age, + location, etc. +* *Commit Funds to Society* - This operation will transfer BTS from an account + to a society membership. It may be performed by any account. 1% of the BTS + transferred will be paid to the BTS reserve pool, 2% of the BTS transfered + will be allocated to the referral program, and 2% of the BTS transferred will + be used to buy back a Fee Backed Asset dedicated to this feature. The + society membership will earn Karma within the society proportional to the BTS + contributed. +* *Request Payout from Soceity* - This operation will create a payout request. A + payout request includes Karma from the membership account requesting the + payout and requires permission of the membership owner. The request includes a + subject, summary, and detailed description explaining the justification. +* *Update Payout Request* - This operation can be used to update mutable + properties of an existing payout request. +* *Approve or Reject Payout Request* - This operation is used to vote for or + against paying out a particular request. Each member of a society can vote + with a weight equal to the amount of karma the account has earned. +* *Update Membership Info* - This operation is used to update mutable membership + information such as nominating a proxy to vote on your behalf. This is + designed to simplify the amount of voting the average member must worry about. +* *Fund Payout Request* - This operation will transfer BTS held in the + membership account reserve to an approved payout request. + +## Maintenance Operations + +The following actions will be performed during a maintenance interval block +(e.g. once a day): + +1. Tally all relevant votes +2. Update management account authority for each society +3. Update management account authority for the fee backed asset +4. Decay all Karma by the configured percentage + +## Smart Contract + +A smart contract will be integrated that will deal with the new operations, +derive the members karma and execute the proposals protocol as defined above. + +# Charity Program + +Every day there is need for money for individuals and charitable organizations +that haven't paid into the system. These individuals often get significant +organic donations to their cause. By allocating a portion of all funds +contributed to those high-profile victims the network can also gain good will +and free advertising. A suggested rate of 5% of all gifts should be allocated to +non-contributing high-profile needs. + +## Referral Program, Fees and Monetization of this Proposal + +All insurance-like systems depend upon having a large number of people pooling +risk. The more people involved the more evenly the risk is spread and the more +money there is available for funding claims. All insurance companies must charge +enough to cover not only the claims made, but also the advertising campaigns +that they run continuously on TV and Radio stations across the country. + +A peer to peer society systems demands a decentralized, peer-to-peer +advertising campaign. This means that part of every dollar contributed toward +helping others is paid the person who referred you to the program. Everyone +paying into the system benefits from funding marketing campaigns targeted at +finding new users. A suggested rate of 10% of all gifts are paid to your +referrer until you become a life time member and qualify for referring others. + +We propose to distribute the fees as follows: A donation (i.e. funding of the +personal gift reserve) of 100 BTS results in 5 BTS in fee. Of this 5 BTS fee, +the usual 20% go to the BitShares shareholders as burned shares and the other +80% are management fees. These are given 50%/50% to the holders of a +society-specific [fee backed asset](bsip-0007.md) and the referral program. + +![Fee distribution](bsip-0009/fee-dist.png) + +# Applications + +## Injustice Sharing + +Injustice occurs anytime an innocent person is harmed by the government or +anyone else. In this case, innocent means someone who has not committed fraud +nor initiated aggression against someone else. This means that everyone accused +of a victimless crime is suffering an injustice. + +In the most general sense injustice is not always black and white and varies in +the eyes of every individual. Some people would see drunk driving as initiating +aggression even if no one was actually hurt and no property was damaged. In +other words, some people subscribe to the theory that harm can be ascribed to +mere endangerment. If driving drunk increases the chances of harm by 5% then +the damage caused by driving drunk is 5% of the average damage caused people who +drive drunk and actually do harm people. Regardless of which stance you happen +to hold, it is clear that justice is subjective and therefore, so is injustice. + +Some injustices are universal and endured by everyone. In these cases the cost +of sharing the injustice would equal the cost of everyone paying their own way. +One example that everyone suffers from is payroll taxes. Almost everyone suffers +from this and it is almost universally enforced. + +The point of injustice sharing is to distribute the burden of injustice that is +somewhat randomly or selectively applied to particular individuals. Examples of +this include regulatory violations, getting audited, traffic tickets, getting +caught with certain substances, copyright violations, asset forfeiture, etc. In +all of these cases there are thousands of people who escape the injustice for +every individual who is caught and suffers. + +The primary goal of Injustice Sharing is to motivate individuals to commit to +helping one another in the face of injustice. What qualifies as injustice and +how much help each individual should receive and from whom is all subjective, +but this does not necessarily interfere with achieving the desired objective. + +You motivate people to help one another by requiring them to commit money in +advance so that they can qualify for help from others. Then you only allow them +to allocate the money they have committed to other members when a qualified +injustice claim has been filed. Then you limit the maximum payout for a claim +to be a function of total funds committed by a user, total users who have filed +a claim, and the total amount paid out via claims. The exact equations will be +provided later. + +## Cooperation via Mutual Aid Society + +Prior to the welfare state individuals would organize in voluntary societies +where they would all contribute to helping one another. The amount of help +someone would receive from such a society depended upon how much they +contributed. Someone who contributed a lot would be helped a lot, whereas +someone expecting a handout would not get much help. In many ways these Mutual +Aid Societies were like insurance companies where the insured would directly +help each other with more than just money. + +Before the government got involved and regulated them out of existence to be +replaced by modern insurance companies and the welfare state, the majority of +the population participated in one or more of these societies. People got the +help and care they needed at affordable costs without the need for violence. + +I believe that it is through this type of organization that we can come together +as free men and women to defend our life, liberty, and property. Most government +abuses have a distribution among members of society similar to cancer. Most +people don't get it, but when you do the medical bills can bankrupt you. Like +cancer, some people have higher risks of getting caught and suffering as a +result but it can and does affect the most health conscious individuals. People +spend hundreds of dollars each month to defend themselves against health issues +that are less likely than becoming the victim of their own government. + +# Discussion + +## BTS denominated + +Funds given to your gift reserve are denominated in BTS (the core asset in +BitShares), a *volatile* currency. The question as to whether societies should +be allowed to be denominated in other assets is unanswered and requires further +discussion. + +## Preventing Fraud + +Like traditional insurance, measures must be taken to prevent fraud and equalize +risk. The most basic measure is that only the individual who contributed funds +can file a claim. This prevents selling the benefits of being a member to +someone after an society-covered event has occurred and payout is guaranteed. + +Next all claims must have their facts certified by one or more trusted (elected) +entities. These entities are responsible for verifying whether or not the claims +are accurate, complete, and whether the individual is currently in good standing +with the community. Good standing requires that individuals have no open claims +against them and have not harmed or defrauded anyone. + +Once a claim has been approved and assigned a maximum payout, the other members +must choose to fund the claim from their own contributions. This means that +members must find sympathy within the community for their case. These other +members have funds pre-allocated that they can only spend funding claims. When +they do fund a claim, they gain extra "lottery tickets" which means that those +who fund claims can make larger claims than those who merely fund their policy +and never pay a claim. In a properly balanced "insurance" market that does not +build up a reserve, total income in any given month should equal the total +claims in that month. If a reserve is built up then either people are +over-paying or under claiming. Some reserve is useful because not all months are +equal, but the principle remains that on average today's income must equal +today's claims. + +Users can be assured of payout anytime there are ample reserves because there +are more people looking to pay a claim than there are claims. In other words, +for every person with a claim there are 1000 people who are looking for someone +to help. + +The result of this structure is that all payouts are governed by the subjective +approval of fellow users and all funds flow directly from one user to another. +This avoids the creation of a pool of funds held in a centralized location with +centralized decision making power. If most users don't want to support +reimbursement of a drunk driving ticket then the drunk driver may have a harder +time getting that covered than someone caught for a more sympathetic crime such +as whistle blowing. + +## Unpleasant Societies + +This proposal adds a means to create arbitrary societies that follow a particular +*goal* or *motivation* that does not require shareholders' approval. Hence, we +may see societies that individual shareholders may find unpleasant, offensive or +disturbing. However, BitShares is dedicated to finding free market solutions to +secure life, liberty, and property to all and as such highly values freedom of +speech. Hence, it holds: + +> "I may not like your society, but I will defend your right to have it." +> -- Daniel Larimer + +# Summary for Shareholders + +This proposal adds a new feature to BitShares that runs independently of other +features and requires [BSIP-0007](bsip-0007.md) to be implemented and available. + +The proposed feature allows to create and grow arbitrary mutual benefit +societies within the BitShares Decentralized Autonomous Company and probably +draws attention and fresh capital into BitShares. + +Shareholders of BitShares profit from an increased exposure to the public, +increased usage of the platform and higher demand for BTS on external exchanges +and/or the internal decentralized exchange (assuming proper gateway +infrastructure). + +The regulatory risks have been solved by letting BitShares, a decentralized +entity, execute the smart mutual aid contract and issue karma according to a +mathematical formula. + +Since societies can be creates without shareholder approval, we may also face +negative PR created from societies that do not find much support among people. + +# Copyright + +This document is placed in the public domain. + +# See Also + +* https://bitsharestalk.org/index.php/topic,20640.0.html +* https://bitsharestalk.org/index.php/topic,20431.0.html diff --git a/bsip-0009/fee-dist.png b/bsip-0009/fee-dist.png new file mode 100644 index 0000000..efd711f Binary files /dev/null and b/bsip-0009/fee-dist.png differ diff --git a/bsip-0009/karma-exit.png b/bsip-0009/karma-exit.png new file mode 100644 index 0000000..7397ade Binary files /dev/null and b/bsip-0009/karma-exit.png differ diff --git a/bsip-0009/karma.png b/bsip-0009/karma.png new file mode 100644 index 0000000..49aa72f Binary files /dev/null and b/bsip-0009/karma.png differ