Implement motions and transaction fee voting in Peercoin

2 things.

These are probably the most important discussions I’ve read so far about Peercoin, since I first registered here. Not only are the proposals bushing the envelope, but also we actually have some devs willing to spend time on the Peercoin source code. With new people entering the scene, keeping it vibrant this is a clear sign of the natural progression of the coin. To me this is a net positive.

1) For the sake of visibility, I suggest we create new threads, so that people that visit the forum less often don’t miss these discussions (and so that we know ourselves what we are talking about where). Perhaps make some noise on the other channels?

When I browsed through this thread, I get the feeling that there is an iceberg, i.e. small hints about pretty big things. One thing is changing the fee, another is voting, another is doing away with checkpointing in Peerunity and then there was something else.

2) Is is possible to create new threads (or link to existing threads) when hinting about changes with major implications? Perhaps its just me, but I would very much like it if it was possible to be on track on what’s on the roadmap and what happens to the code without looking at pull requests and git log. Less tech savvy Peerpoeple would also benefit.

Then we should “vote” if we want-need a voting mechanism in ppc :slight_smile:
About the fees i want something like in BTC, to choose if and what fee i include in my transaction.
If i don’t choose a fee then my transaction will take many hours? to be concluded, the larger the fee the quicker the transaction?
something like that :slight_smile:

I’m strongly opposed to modifying Peercoin’s block chain to add meta hashes that could be used for voting or anything else in the future.

Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.

No coin is doing that today. We need to be that coin that keeps things a simple and quick as possible.

We can’t spare 20 bytes per block, we can’t spare 1 extra byte for a block. In fact, we should look at minimizing the blockchain we have now. (I have ideas how that can be done, but that’s off topic)

The idea of wanting voting, is very noble, appreciated, and worthy.

The idea of putting hashes into our blockchain as meta information to support it is contrary to the purpose of why Peercoin was created. It does not need to be there. I know it would be “convenient”, but we’re not here to be convenient. We need to fulfill a particular purpose (store of wealth).

Peercoin needs to be a very simple “backbone” for the cryptocurrency industry at large. Our doors are going to be knocked on very soon for it (I can articulate why in another post, different topic).

Peercoin should not be plagued with extra features, meta data, hard forks on repeat basis over the years for those new features (ie hash algo change for votes)

If we want extra features, we should start a project like Peershares. Or similar. (oh wait, that was done, great idea btw)

Leave the chain as it is, and make only as few as possible changes to it. Keep the chain as small, and tight, as possible. Find ways to avoid things being put on to the chain, not adding new ideas to put things on to the chain.

The time is coming when people are going to search out for that coin that is small, trim, minimal, and robust like Peercoin to use it as transfer of wealth and nothing more.

VOTING: YES

BLOCKCHAIN MODIFICATION: NO

[quote=“ppcman, post:63, topic:3030”][…]
Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.
[…][/quote]

I completely agree and you have very well elaborated why ongoing votes (written into the block chain) should be avoided.

Basically we already have a voting mechanism, although the one we have is a bit more dangerous than an embedded mechanism:
in case of rivaling views different client versions might arise. People can choose which client to use.
In the end the version with the stronger securitiy (more minters on that fork) will succeed.
Until that happens there are 2 forks and depending on where you want to transfer PPC, you will encounter problems if 2 different client versions are affected.

I don’t like that version of voting, but I think that this is unlikely to happen.
And I like a bloated Peercoin block chain even less…

Everything comes at a price.
I prefer to avoid a definite bloating of the block chain if all it needs to compensate the drawbacks of not having an ongoing voting is a sound development of Peercoin that disincentivises the creation of forks.
As the risk for the value of Peercoin that is caused by such forking is quite high, it should be unlikely to let that happen easily.

So far the Peercoin protocol changes have been appreciated and people have switched to the new version. That is likely to happen with v0.5 again.
Each major change (read: protocol change) had the risk of forking the network. It didn’t happen, because it wouldn’t have been a wise choice.

I totally agree too.

Sidechains or projects like Open Transactions seem better fitted to implement new functionnalities to me.

Just my 2 cents.

[quote=“masterOfDisaster, post:64, topic:3030”]So far the Peercoin protocol changes have been appreciated and people have switched to the new version. That is likely to happen with v0.5 again.
Each major change (read: protocol change) had the risk of forking the network. It didn’t happen, because it wouldn’t have been a wise choice.[/quote]

Yes, forking a chain, by doing protocol changes, is the worst thing a coin can do, and it should be done for only extreme situations.

I consider cold minting worthy of it (also optimizing our chain another topic I’ll start). Making added space in the chain for meta data or voting hashes, definitely not.

I agree with the merits of needing a vote. But that’s an application that doesn’t need to live on the chain. There are plausible work arounds for that, that we can still have our voting capability.

Some solutions are:

a) A centralized website that collects votes

b) A separate peercoin community accepted blockchain that uses a different wallet (or can be read from the existing peercoin wallet without need to disturb our official blockchain)

c) Making use of other decentralized voting solutions. Seems like there is an entire industry of other “coins” implementing voting strategies, like bitshares, ethereum, open transactions, etc. We don’t need to reinvent the voting wheel if there is another decentralized voting solution out there that does it well.

side-chains do seem like an incredibly suitable solutions for solving the block chain bloat.

I totally agree too.

Sidechains or projects like Open Transactions seem better fitted to implement new functionnalities to me.[/quote]

I also think the blockchain should remain as small as possible.

I do like the idea that voting is in proportion to vested interest.

Sidechains, it seems to me, could become a dream come true for all kinds of innovations such as voting, smart contracts and thousands of other dynamic data uses.

Sidechains seems to be offered up as a solution to a lot of things. The problem though is that we don’t really know anything about Sunny’s sidechain solution until he starts to talk more about it. He’s already said that his focus is completely different from that of Bitcoin sidechain developers. Before we can know if Peercoin sidechains would solve the problems we face, we need to know more about Sunny’s implementation…and who knows how long it will be before we know anything more about that.

I think you’d have to spend your Peercoin to buy your holdings of a Peercoin sidechain. If you vote in the sidechain, you are voting with the weight of your holdings instead of the Peercoins you have. So voting in the sidechain is like voting in another coin which you have bought with Peercoins. Anyway whether sidechain can solve the problem needs study.

Is it possible to have two modes of a voting wallet. In the voting mode it votes and puts the metadata to the blockchain and store it locally. In the non-voting mode, you can’t vote and the wallet will strip the meta data when storing the blockchain. The stripping also happens during initial downloading of the blockchain data if the data is from a voting node so the user always has a small blockchain file. A third way is everyone can vote but the only some voluntary nodes store and process voting info (also distributed but less so. Just like the “full nodes” supports the network. ).

I’m not so sure about that…

You could create a peercoin sidechain that allows importable keys from the main peercoin chain to verify your identity.

You could, even run a duplicate peercoin chain, with LOTS of meta data and larger blocks “that actually expire after 30 days” for things like voting, chat, video conferencing, etc… all on a side chain.

It could use previous transactions, that you can verify you have signing authority to verify with your keys, on the main chain, via stake, etc

To give an example:

a) You have 1500 coins on the main chain, you find a PoS block and your keys sign it, generating coins

at that same moment:

b) Your integrated “wallet” add on, also communicates to the second chain “hey! I just created PoS block on the main chain. Please accept this block as proof of my identity, and therefore now I get voting rights”

The main chain remains as it is…

The second chain verifies your identity without needing anything from the main chain, other than proof you created a PoS block and signed it.

Now we have 2 chains.

1 chain hold funds

2nd chain is for features, voting, video conferencing, chat, encrypted email, whatever else you want to throw at it…

All blocks on the 2nd chain have a TTL (time-to-live) of 30 days, and then they are marked “expired” and can be compacted / deleted out of existence, for only the most recent 30 days means something.

New clients syncing up to the network on the 2nd feature-rich chain only have to download the previous 30 days to be current.

It’s like creating a second sandbox, where we can play in it, without affecting the main chain.

Oh, and participation in the 2nd chain is purely optional and voluntary.

@ppcman, you just complemented and detailed out nicely what I started to think in my earlier post in this thread: http://www.peercointalk.org/index.php?topic=3538.msg34331#msg34331

I think it is an interesting concept which SK tried to tell us for a long time. Peercoin is just a store of value, a token for exchange. With this token you can access other data stored in e.g. sidechains or similar concepts. At the same time we keep the main chain as lean and mean as we can.

Having said the above I don’t see a big issue with adding small pointers or references to the blockchain as long as they kept to single bytes (32 or 64bit) and just provide a secure index to other chains. Voting functionality can be one of them.

BTW Good to see you back joining the discussions here.

I’m not so sure about that…[/quote]

I am glad to know side chain is defined well enough to be so specific. Time to pay more attention.

I agree with ppcman

I'm strongly opposed to modifying Peercoin's block chain to add meta hashes that could be used for voting or anything else in the future.

Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.

[quote=“ppcman, post:63, topic:3030”]I’m strongly opposed to modifying Peercoin’s block chain to add meta hashes that could be used for voting or anything else in the future.

Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.

No coin is doing that today. We need to be that coin that keeps things a simple and quick as possible.

We can’t spare 20 bytes per block, we can’t spare 1 extra byte for a block. In fact, we should look at minimizing the blockchain we have now. (I have ideas how that can be done, but that’s off topic)

The idea of wanting voting, is very noble, appreciated, and worthy.

The idea of putting hashes into our blockchain as meta information to support it is contrary to the purpose of why Peercoin was created. It does not need to be there. I know it would be “convenient”, but we’re not here to be convenient. We need to fulfill a particular purpose (store of wealth).

Peercoin needs to be a very simple “backbone” for the cryptocurrency industry at large. Our doors are going to be knocked on very soon for it (I can articulate why in another post, different topic).

Peercoin should not be plagued with extra features, meta data, hard forks on repeat basis over the years for those new features (ie hash algo change for votes)

If we want extra features, we should start a project like Peershares. Or similar. (oh wait, that was done, great idea btw)

Leave the chain as it is, and make only as few as possible changes to it. Keep the chain as small, and tight, as possible. Find ways to avoid things being put on to the chain, not adding new ideas to put things on to the chain.

The time is coming when people are going to search out for that coin that is small, trim, minimal, and robust like Peercoin to use it as transfer of wealth and nothing more.

VOTING: YES

BLOCKCHAIN MODIFICATION: NO[/quote]

Very good points!

The day i see peercoin development starting to go in a different way i’ll sadly dump all my PPC holdings.

[quote=“arbitrageur, post:74, topic:3030”]I agree with ppcman

I'm strongly opposed to modifying Peercoin's block chain to add meta hashes that could be used for voting or anything else in the future.

Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.

[/quote]
I can agree with ppcman as well (though I previously voiced my support for this change). Both sides make good arguments.

Ironically, in order to put forward a motion to resolve this, we must first add support for motions. :))

[quote=“ppcman, post:63, topic:3030”]I’m strongly opposed to modifying Peercoin’s block chain to add meta hashes that could be used for voting or anything else in the future.

Peercoin should be as simplistic of a chain as possible, in order to be a store of wealth, and that’s it.

No coin is doing that today. We need to be that coin that keeps things a simple and quick as possible.

We can’t spare 20 bytes per block, we can’t spare 1 extra byte for a block. In fact, we should look at minimizing the blockchain we have now. (I have ideas how that can be done, but that’s off topic)

The idea of wanting voting, is very noble, appreciated, and worthy.

The idea of putting hashes into our blockchain as meta information to support it is contrary to the purpose of why Peercoin was created. It does not need to be there. I know it would be “convenient”, but we’re not here to be convenient. We need to fulfill a particular purpose (store of wealth).

Peercoin needs to be a very simple “backbone” for the cryptocurrency industry at large. Our doors are going to be knocked on very soon for it (I can articulate why in another post, different topic).

Peercoin should not be plagued with extra features, meta data, hard forks on repeat basis over the years for those new features (ie hash algo change for votes)

If we want extra features, we should start a project like Peershares. Or similar. (oh wait, that was done, great idea btw)

Leave the chain as it is, and make only as few as possible changes to it. Keep the chain as small, and tight, as possible. Find ways to avoid things being put on to the chain, not adding new ideas to put things on to the chain.

The time is coming when people are going to search out for that coin that is small, trim, minimal, and robust like Peercoin to use it as transfer of wealth and nothing more.

VOTING: YES
BLOCKCHAIN MODIFICATION: NO[/quote]

ppcman:
I am not folllowing … you start by saying you are against voting on the blockchain, but at the end you say yes - can you clarify?

[quote=“RobertLloyd, post:77, topic:3030”]ppcman:
I am not folllowing … you start by saying you are against voting on the blockchain, but at the end you say yes - can you clarify?[/quote]

I think he means voting by other means.

As I see it, this thread has fizzled because the compelling use case has been lost. Everyone recognizes the gravity and potential complications of protocol changes, and frankly, motion “polling” without any protocol-driven enactment is simply a frill that doesn’t fit well into the Peercoin value proposition.

In the original post, however, Jordan intended motion voting as a means of adjusting transaction fees. Personally, I disagree with this specific goal and strongly support maintaining the 0.01 fee indefinitely. I believe there are better solutions for facilitating microtransactions (relatively speaking) in the future such as this: http://www.peercointalk.org/index.php?topic=2973. In terms of DoS attacks, allowing the transaction fee to adjust freely according to “voter sentiment” could potentially empower attackers to disrupt the network “for free” with only the threat of attack.

But maybe there are other valuable reasons to incorporate votes into the Peercoin blockchain. I am wondering, for example, if there might be ways to utilize voting to establish decentralized checkpoints that effectively bind the protocol to a specific chain under certain conditions. Although I am confident that the planned v0.5 protocol changes sufficiently discourage promiscuous minting of all chains, checkpoints still offer protection against so-called long-range attacks. Perhaps a protocol-level voting mechanism could provide the means of addressing this remaining threat while still achieving decentralization.

The actual implementation is problematic, of course, because minting blocks already is voting for a specific blockchain, so the solution would seem to require more than simply consensus on periodic checkpoint blocks. But what if stakeholders were able to “elect” specific addresses which could be proven to belong to a variable panel of trusted individuals in the community? We might see it as a sort of Peercoin “Board of Trustees” whose known valid blocks could be overweighted in such a way that they would irrefutably represent the primary chain. For example, blocks minted from one the elected addresses could be granted substantially greater block weight in proportion to the number of votes that the address had received over the prior n blocks.

I’ll withhold belaboring this idea until I get feedback, but I wanted to put it out there just to keep the thread alive. Jordan is clearly a gifted developer, and I’d hate to see him get discouraged by the very inertia he’s trying to improve here!

[quote=“learnmore, post:79, topic:3030”]But maybe there are other valuable reasons to incorporate votes into the Peercoin blockchain. I am wondering, for example, if there might be ways to utilize voting to establish decentralized checkpoints that effectively bind the protocol to a specific chain under certain conditions. Although I am confident that the planned v0.5 protocol changes sufficiently discourage promiscuous minting of all chains, checkpoints still offer protection against so-called long-range attacks. Perhaps a protocol-level voting mechanism could provide the means of addressing this remaining threat while still achieving decentralization.

The actual implementation is problematic, of course, because minting blocks already is voting for a specific blockchain, so the solution would seem to require more than simply consensus on periodic checkpoint blocks. But what if stakeholders were able to “elect” specific addresses which could be proven to belong to a variable panel of trusted individuals in the community? We might see it as a sort of Peercoin “Board of Trustees” whose known valid blocks could be overweighted in such a way that they would irrefutably represent the primary chain. [/quote]

Good point. This is different from DPOS is that DPOS is implemented with rigid infrastructure specifcally made to suit the need of fast transaction. I think a mature ecosystem of diverse centralized payment processors will blow any blockchain-based solution out of water. So DPOS as it exist today is built too much for a requirement that won’t be there. Peercoin being a backbone currency don’t even need fast transaction. However representative democracy strikes a best balance between fairness and efficency. We are having problem getting enough votes to approve Marketing Fund. That shows how many people will vote when voting is implemented.

If we can implement representative operations with a blockchain-based common tool – voting – that can be either used to decide on a certain issue, and to to elect someone to pay constant attention, then it would get the best of both world.

Inspired by learnmore’s suggestion, I guess I could use my vote to vote on an issue or I can vote on an address. If I vote on an address, its owner will excercise discretion for me indefnitely until I explicitly retract with another vote. The voting weight of the address that gets my vote includes the voting weight of all POS block that my voting UtxO finds.