BitShares Forum

Main => General Discussion => Topic started by: bytemaster on December 05, 2014, 02:32:46 pm

Title: Proposal Voting for User Issued Assets
Post by: bytemaster on December 05, 2014, 02:32:46 pm
In my quest to finish off the Version 1.0 protocol for BitShares I have spent a lot of time working on the feature set of User Issued Assets (UIA).  In particular I wanted them to be sufficiently flexible to be used by real companies to issue their shares.   When I was talking with Overstock one of their primary considerations was the ability for shareholders to vote with their stake.

Yesterday I added the necessary features to allow every UIA creator to generate proposals that can be voted on by the UIA holders.    This process leverages the same infrastructure as BTS uses to vote for delegates.   Every balance of a UIA can vote for up to 110 proposals by specifying a "slate" in the same way they specify a delegate slate.    Instead of voting for delegate it will now vote for proposals.

There is still a lot of work to be done to make this functionality available to the end users, but that kind of work can be done after protocol version 1.0 is finalized.  Specifically the format and representation of a proposal is merely an ID and its meaning is defined by an unspecified convention in the object graph.   

Other updates to UIA: 
   Issuers can freeze all markets in UIA (unless they revoke that permission)
   Issuers can freeze all balances of UIA (unless they revoke that permission)
   Issuers can cancel bids to buy the UIA returning the BitUSD/BTS to the bidder.

Title: Re: Proposal Voting for User Issued Assets
Post by: oldman on December 05, 2014, 02:40:08 pm
Wow.  +5%

Bitshares is going to hit financial world like a tsunami.

Thank you for your work!
Title: Re: Proposal Voting for User Issued Assets
Post by: BTSdac on December 05, 2014, 02:44:15 pm
 +5%
HI BM ,you said vote take much size in translation , have find any mothods to reduce the size and vote frequency.
Title: Re: Proposal Voting for User Issued Assets
Post by: matt608 on December 05, 2014, 02:52:43 pm
Great!  This will by useful material for my article series on UIA's.
Title: Re: Proposal Voting for User Issued Assets
Post by: bytemaster on December 05, 2014, 02:53:49 pm
This feature takes no more size in trx than was already used by bts delegate voting.   
Title: Re: Proposal Voting for User Issued Assets
Post by: clout on December 05, 2014, 02:54:39 pm
are they limited to approval voting?
Title: Re: Proposal Voting for User Issued Assets
Post by: bytemaster on December 05, 2014, 02:56:10 pm

are they limited to approval voting?

How the data is interpreted is up to the company
Title: Re: Proposal Voting for User Issued Assets
Post by: emski on December 05, 2014, 03:11:03 pm
"Issuers can cancel bids to buy the UIA returning the BitUSD/BTS to the bidder."
Can this be revoked by the issuer too?
How exactly is it supposed to work?
Title: Re: Proposal Voting for User Issued Assets
Post by: Agent86 on December 05, 2014, 03:15:41 pm
Just tossing around additional fun ideas...

- Allow the current asset holders to vote by majority approval to allow a new public key to be authorized to hold this asset (sort of like members of the club who must vote to let in a new member)

- Non-binding polls (don't need to be tracked by delegates) only open to those asset holders (maybe this is all you are saying with proposals?).

- Asset holders use approval voting to elect workers paid via dilution of the asset with new assets.  Or paid with a central fund controlled by the asset holders as a whole, like this: https://bitsharestalk.org/index.php?topic=5030.0

- If the asset holders exercise group control over a central fund, you could send money to the group as a whole instead of to any individual…
Title: Re: Proposal Voting for User Issued Assets
Post by: arhag on December 05, 2014, 08:39:07 pm
In my quest to finish off the Version 1.0 protocol for BitShares I have spent a lot of time working on the feature set of User Issued Assets (UIA).  In particular I wanted them to be sufficiently flexible to be used by real companies to issue their shares.   When I was talking with Overstock one of their primary considerations was the ability for shareholders to vote with their stake.

Great.

Yesterday I added the necessary features to allow every UIA creator to generate proposals that can be voted on by the UIA holders.    This process leverages the same infrastructure as BTS uses to vote for delegates.   Every balance of a UIA can vote for up to 110 proposals by specifying a "slate" in the same way they specify a delegate slate.    Instead of voting for delegate it will now vote for proposals.

Can you please cut that down to 55 proposals and allow stakeholders to voice three opinions on any proposal: neutral (default), approval, and disapproval. I think it is incredibly useful to understand the breakdown of approval vs disapproval in the sample of stakeholders who are interested enough to bother voting.

Also, if I understand correctly there is only 2 bytes used per delegate in a slate (or in this case ID of a proposal). Meaning the full slate would take up 220 bytes, correct? This allows for addressing only 65,536 proposals. This might be large enough for delegate candidates (but even that can be easily exhausted in the future, what happens then by the way?), but it seems too constraining for all the proposals a company will want to do in its lifetime. So is there a way of killing off old proposals and reassigning IDs to not put a bound on the total number of proposals a UIA can vote on in its lifetime?
Title: Re: Proposal Voting for User Issued Assets
Post by: Ander on December 05, 2014, 08:45:14 pm

Can you please cut that down to 55 proposals and allow stakeholders to voice three opinions on any proposal: neutral (default), approval, and disapproval. I think it is incredibly useful to understand the breakdown of approval vs disapproval in the sample of stakeholders who are interested enough to bother voting.

I agree, this would be much more useful information, and thus increase the utility for whoever was trying to conduct a poll of their shareholders.
Title: Re: Proposal Voting for User Issued Assets
Post by: bytemaster on December 05, 2014, 08:46:07 pm
In my quest to finish off the Version 1.0 protocol for BitShares I have spent a lot of time working on the feature set of User Issued Assets (UIA).  In particular I wanted them to be sufficiently flexible to be used by real companies to issue their shares.   When I was talking with Overstock one of their primary considerations was the ability for shareholders to vote with their stake.

Great.

Yesterday I added the necessary features to allow every UIA creator to generate proposals that can be voted on by the UIA holders.    This process leverages the same infrastructure as BTS uses to vote for delegates.   Every balance of a UIA can vote for up to 110 proposals by specifying a "slate" in the same way they specify a delegate slate.    Instead of voting for delegate it will now vote for proposals.

Can you please cut that down to 55 proposals and allow stakeholders to voice three opinions on any proposal: neutral (default), approval, and disapproval. I think it is incredibly useful to understand the breakdown of approval vs disapproval in the sample of stakeholders who are interested enough to bother voting.

Also, if I understand correctly there is only 2 bytes used per delegate in a slate (or in this case ID of a proposal). Meaning the full slate would take up 220 bytes, correct? This allows for addressing only 65,536 proposals. This might be large enough for delegate candidates (but even that can be easily exhausted in the future, what happens then by the way?), but it seems too constraining for all the proposals a company will want to do in its lifetime. So is there a way of killing off old proposals and reassigning IDs to not put a bound on the total number of proposals a UIA can vote on in its lifetime?

You already have 3 opinions:  +/- or "none" so that is done.

You can change the meaning of a proposal at will so once everyone has removed their vote from an old proposal the ID can be reused.
Title: Re: Proposal Voting for User Issued Assets
Post by: arhag on December 05, 2014, 08:55:40 pm
You already have 3 opinions:  +/- or "none" so that is done.

Great. Thanks.

You can change the meaning of a proposal at will so once everyone has removed their vote from an old proposal the ID can be reused.

And as far as non-binding proposals (which I understand that is what this topic is about), the person counting the vote for a particular proposal could always ignore transaction balances voting on that proposal ID that are older than the block the new proposal was submitted. This could allow them to safely change the meaning of a proposal even if someone was too lazy to stop voting for it and not count their old votes as votes for the new proposal. That's a good solution for non-binding proposals.
Title: Re: Proposal Voting for User Issued Assets
Post by: bytemaster on December 05, 2014, 08:56:55 pm
You already have 3 opinions:  +/- or "none" so that is done.

Great. Thanks.

You can change the meaning of a proposal at will so once everyone has removed their vote from an old proposal the ID can be reused.

And as far as non-binding proposals (which I understand that is what this topic is about), the person counting the vote for a particular proposal could always ignore transaction balances voting on that proposal ID that are older than the block the new proposal was submitted. This could allow them to safely change the meaning of a proposal even if someone was too lazy to stop voting for it and not count their old votes as votes for the new proposal. That's a good solution for non-binding proposals.

All proposals will be "non binding" until smart contracts exist with scripting that may care about the result.
Title: Re: Proposal Voting for User Issued Assets
Post by: arhag on December 05, 2014, 09:04:54 pm
- Allow the current asset holders to vote by majority approval to allow a new public key to be authorized to hold this asset (sort of like members of the club who must vote to let in a new member)

Yes please! I assume you mean the public key of the issuer of the UIA (who also gets to freeze funds and manage the whitelist), which would accomplish what you want. I was asking for that in this post (https://bitsharestalk.org/index.php?topic=11921.msg157122#msg157122) (see last paragraph). It is a necessary component of my larger proposal discussed here (https://bitsharestalk.org/index.php?topic=11349.msg149430#msg149430) to make UIAs into shares of side/child DACs.

Edit: Here is how it can be done. Proposal ID 0 can be reserved for a panic button (see my proposal linked above). If enough (say >10%) of UIA upvotes proposal ID 0, the UIA is put in a state of panic (more details about what this does included in my proposal, but for simplicity just assume that it temporarily makes it so that all activity dealing with the UIA freezes except for changing votes, this especially includes all activity by the issuer). If enough (say >50%) of stake downvotes proposal ID 0, the panic is lifted as a false alarm (later implementations would also tax the 10% UIA that voted for the panic in the first place). On the other hand if enough (again >50%) of stake both upvote proposal ID 0 and also choose the same hash of the condition to satisfy to authenticate UIA issuer transactions (single payer or multisig), which would be an optional value that could be attached to the transaction during states of panic, then the panic would be lifted as a legitimate panic (no taxing the people who sounded the alarms, instead the new issuer would reward them), and the issuer is changed to the one who satisfies the conditions that hash to the value the stakeholders agreed to.

- Asset holders use approval voting to elect workers paid via dilution of the asset with new assets.  Or paid with a central fund controlled by the asset holders as a whole, like this: https://bitsharestalk.org/index.php?topic=5030.0

- If the asset holders exercise group control over a central fund, you could send money to the group as a whole instead of to any individual…

Seriously, you should check out the proposal in my post (https://bitsharestalk.org/index.php?topic=11349.msg149430#msg149430). It is very similar to your proposal in that Community Funding post, but I make the mechanics a little more concrete.
Title: Re: Proposal Voting for User Issued Assets
Post by: clayop on December 05, 2014, 09:05:18 pm
Is a kind of "letters to shareholders" combined with mail system possible?
Title: Re: Proposal Voting for User Issued Assets
Post by: Ander on December 05, 2014, 09:19:59 pm
Is a kind of "letters to shareholders" combined with mail system possible?

So...mail info to shareholders, have them vote on proposal, and have the proposal be enforced by smart contracts...all on the bitshares blockchain.

Wow.
Title: Re: Proposal Voting for User Issued Assets
Post by: matt608 on December 05, 2014, 09:49:15 pm
Idea to take BTS to the stars by creating direct a democracy on top of BTS with 1 'government delegate'

1.  Vote in 100% pay delegate who creates a UIA and uses the VOTE features not yet implemented to allow 1 person 1 vote.  Each token of the UIA is a voting token with the power to vote on what the delegate's pay is spent on.  This could be locked in via smart contract or if there's no contracts then a pledge (btw how can people be prevented from making contracts within BitShares?)

2.  Create physical passport-like document with a QR code that contains the voting token.

3.  Post the passports in physical mail to 5000 people.  Target geographically so their money can be spent on something useful to them, e.g. target one big city.  They recieve a passport in the mail welcoming them to a new digital government where they can vote and make proposals to decide where the money is spent themselves.  A new government is born. 

Citizens' of that government are guaranteed the budget of their delegate, providing their delegate is not voted out by stakehodlers, who would choose not to due to financial incentive (in theory).  Citizens of that government get whatever benefits they have voted for themselves to have.

But doesn't this suck money out of BTS?

In theory, no, it brings money in, because all these new voters are now BTS users and can be contacted and informed that they can increase the budget of their government by using bitUSD.  Then they start using bitUSD to increase their personal power by making the government they are a part of more powerful.  They are basically taxed by using bitUSD which comes with extra risk over USD. 

BTS should then increases due to new group of users buying bitUSD to increase their government budget and people are empowered with real voting power at the same time.

Massive press storm about a new 'startup government' with a real budget.

Costs per passport could be cut by doing it digitally to reach more people but it may or may not be more effective as people would have to then vote for benefits that are only transferable online rather than local real world benefits.  Or a press release could go out calling for people to sign up to a new government rather than sending out any passport, there are different ways to do it.  Or passports could just be sent to targeted individuals such as journalists on hpenvy's list after contacting them about the idea in advance.

Downside is it does cost a delegate spot who, if ever voted out, could create backlash.  But word about this digital paradise could spread and create a worldwide phenomenon.  The UIA should have enough voting tokens created to give each person 1.  All this huge potential gain for just 1 delegate spot sounds like a good deal.  A government delegate.  If done digitally rather than with physical passports it would be the first world government.  That's the kind of thing that gets mainstream press attention the world over.  It would make marketing so easy.  Everyone would be interested to learn about it.

This is at least an explosively powerful marketing strategy, among other things.  Thoughts on this idea?
Title: Re: Proposal Voting for User Issued Assets
Post by: arhag on December 05, 2014, 09:49:28 pm
By the way, you probably already knew this, but this UIA voting system means a lot of the code for hard fork voting is done. The code just needs to support the ability to create a new UIA based on a snapshot of the BTS stake at a particular block. Then BTS holders can use their same keys to vote on proposals with their UIA stake and they can even sell it on the decentralized exchange for assets that will hold their value after the voting process such as BTS, BitUSD, etc.

So, the delegates could be allowed to create a new (temporary) UIA based on a chosen snapshot. Then they can create a single proposal on whether the hard fork changes should apply. People vote and trade with their UIA and eventually the (75%) consensus either settles to yes or no. At that point when the stakeholders approve of the hard fork, the delegates are allowed to (and in fact have to) activate the new features and the UIA is killed (since it is worthless at that point anyway).
Title: Re: Proposal Voting for User Issued Assets
Post by: mike623317 on December 06, 2014, 03:03:51 am
... allow every UIA creator to generate proposals that can be voted on by the UIA holders.    This process leverages the same infrastructure as BTS uses to vote for delegates.   Every balance of a UIA can vote for up to 110 proposals by specifying a "slate" in the same way they specify a delegate slate.    Instead of voting for delegate it will now vote for proposals.

Voting for asset proposal to replace corporate shares seems like a great leap forward to me. I love this new feature.
Nice one guys  +5%
Title: Re: Proposal Voting for User Issued Assets
Post by: jae208 on December 06, 2014, 03:41:03 am
are we able to re adjust the supply of user issued assets if none have been issued? or is that still something that is broken?
Title: Re: Proposal Voting for User Issued Assets
Post by: bytemaster on December 06, 2014, 04:23:57 am

are we able to re adjust the supply of user issued assets if none have been issued? or is that still something that is broken?

You can update every field if supply is 0
Title: Re: Proposal Voting for User Issued Assets
Post by: jae208 on December 06, 2014, 04:34:56 am

are we able to re adjust the supply of user issued assets if none have been issued? or is that still something that is broken?

You can update every field if supply is 0

 +5%

thanks!
Title: Re: Proposal Voting for User Issued Assets
Post by: matt608 on December 06, 2014, 09:36:17 am
No thoughts on my 'government delegate' idea?
Title: Re: Proposal Voting for User Issued Assets
Post by: nomoreheroes7 on December 06, 2014, 11:43:13 am
No thoughts on my 'government delegate' idea?

Maybe try it in its own thread...I think the idea sounds crazy awesome, but I'm not sure if BitShares/society is ready yet...lol
Title: Re: Proposal Voting for User Issued Assets
Post by: underwun on December 19, 2014, 07:25:19 am
In my quest to finish off the Version 1.0 protocol for BitShares I have spent a lot of time working on the feature set of User Issued Assets (UIA).  In particular I wanted them to be sufficiently flexible to be used by real companies to issue their shares.   When I was talking with Overstock one of their primary considerations was the ability for shareholders to vote with their stake.

Yesterday I added the necessary features to allow every UIA creator to generate proposals that can be voted on by the UIA holders.    This process leverages the same infrastructure as BTS uses to vote for delegates.   Every balance of a UIA can vote for up to 110 proposals by specifying a "slate" in the same way they specify a delegate slate.    Instead of voting for delegate it will now vote for proposals.

There is still a lot of work to be done to make this functionality available to the end users, but that kind of work can be done after protocol version 1.0 is finalized.  Specifically the format and representation of a proposal is merely an ID and its meaning is defined by an unspecified convention in the object graph.   

Other updates to UIA: 
   Issuers can freeze all markets in UIA (unless they revoke that permission)
   Issuers can freeze all balances of UIA (unless they revoke that permission)
   Issuers can cancel bids to buy the UIA returning the BitUSD/BTS to the bidder.

Some thoughts:

A ratio parameter be considered, meaning that BTS can be attributed to a shareholding as defined in the UIA, e.g.. 10 BTS for every 1 UIA

Consider an enforced link between the holding in BTS to the commensurate shareholding as defined in the UIA.

Along with the above it would be necessary to have a First Right of Refusal feature where the UIA would have to notify other UIA holders of the intent to sell supported by a time period parameter. The result being that if sold before the First Right of Refusal had expired then the UIA would be distributed pro-rata to existing shareholders.

The objective here being that, as new shareholders come onboard and BTS are allocated to the shareholder they would be locked in to the shareholding and if the shareholder were to sell their BTS they would in effect be selling their UIS. This would protect all shareholders from the selfish actions of an individual shareholder.

In addition to the above it might be desirable to attach new issuance conditions to include pro-rata allocation to existing UIS of the new issuance to protect, under certain conditions, the dilution of the shareholder's relative position in BTS.

Ultimately the suggestions above are designed to ensure relative relevance of the UIA and its association to the core asset.