The History of Delegated Proof-of-Stake (DPOS)

in #blockchain4 years ago (edited)

DPOS (aka Delegated Proof-of-Stake) was invented by Daniel Larimer as a replacement for the Proof-Of-Work consensus algorithm used by Bitcoin and most other cryptocurrencies at that time. All the blockchains developed by Dan (including BitShares, Steem, and EOS) use DPOS to select their block producers.

In this post, I’m going to discuss the history that led to the invention of DPOS. I was working closely with Dan at the time of its invention, and this is how it happened, to the best of my recollection.

Before I get into the details of DPOS history, however, I’ll need to go over some background material on how blocks get added to a blockchain network.

Ordering transactions (e.g. a transfer of money) in a blockchain network

One of the most important functions of a blockchain network is to create a time-ordered list of transactions, with groups of these transactions being stored in a sequence of linked blocks called a blockchain. This time-ordering is important, because it prevents someone from spending their cryptocurrency more than once (an attack known as a “double-spend”).

In order to process new transactions, one of the computers in the blockchain network needs to decide a valid ordering for new transactions it has received, put them in a block, and then broadcast that block to all the other computers in the blockchain network. The other computers in the blockchain network can then check that block, and if it passes the rules of the blockchain network, they add it to their local copy of the blockchain. Then after some time delay (often referred to as the block interval), another computer will repeat the steps above, and another block will get added to the blockchain.

Problems with a blockchain network that uses a single computer to generate all the blocks

In theory, the rules of a blockchain could assign a single computer in the network that generates all the blocks. But there are several problems with this idea.

For one thing, it makes for a very fragile network: if that one computer crashes or loses its connection to the internet, no one’s transactions could be processed as long as that computer was unable to communicate with the other computers in the network (in other words, no one could make money transfers).

Another problem is that a single computer making all the blocks can block all transfers of anyone it pleases, effectively “freezing” money stored in an account. This is because the computer that makes a block gets to choose which transactions it puts in a block. If it doesn’t want to include a transaction, it can just pretend it never saw it. However, even this computer could only freeze funds, it can’t actually steal them (because it can only block transactions, it can’t make a fake transaction that moves money from an account it doesn’t own, because that’s against the rules of the blockchain).

Whose computer makes the next block in the blockchain?

But the ability to arbitrarily freeze funds in the network is a lot of power and you also don’t want your financial network to depend on the health of one computer, so Bitcoin, the first cryptocurrency, was designed with a feature called “mining” that allows computers in the network to compete for the right to generate the next block in the blockchain.

How Bitcoin mining (also known as “Proof-of-Work” or POW for short) works

With “mining”, each computer that competes for the right to make the next block (a miner) races against the other computers to find a brute source solution to a math problem. Because the computers must solve this math problem and prove they have the correct solution, mining-based cryptocurrencies are also known as “Proof-Of-Work” (POW) cryptocurrencies.

Generally speaking, the miners with the fastest computers will be the first to find the solution, then broadcast a block to the blockchain network that includes their solution. If the other computers in the network agree that the solution is correct, this becomes the next block in the blockchain.

At first, mining was seemingly a great solution to the problem of selecting who would produce the next block. Any miner in the network could produce the next block, so even if one miner decided not to include a user’s transactions, the transactions would likely get included by the next miner. So in the worst case, a user’s transactions might get delayed a few blocks.

But computers doing mining consume a lot of power solving those math problems, which costs money. To enable miners to cover their expenses (and to even profit from their mining), miners are paid block rewards when they successfully produce a block. This leads to an arms-race among miners, and ultimately Bitcoin miners resorted to using very specialized and expensive equipment to gain a mining advantage. Unfortunately, this made it too expensive for most people to mine Bitcoin, and over time most bitcoin blocks started getting produced by a very few people with very expensive equipment.

Steps leading to the invention of Delegated Proof-of-Stake (DPOS)

In 2013, I was working with Dan Larimer to create a new cryptocurrency called BitShares. BitShares was being designed as a blockchain-based decentralized exchange (i.e. a place where users could do peer-to-peer trading of cryptocurrencies and other commodities). My team was mainly working on the peer-to-peer network code and the command-line wallet, and Dan’s team was working on the blockchain code, including the method for determining which computer in the network gets to make the next block. Despite the separation of work, perhaps not surprisingly, we would often discuss implementation ideas, and sometimes people from my team would help out on the blockchain side when there was a problem.

Why not go with tried-and-true Proof-of-Work?

Proof-of-work consumed a lot of computing resources (so the blockchain had to pay a lot to the miners) and was relatively slow for our needs as a trading platform. The Bitcoin network had a block time of 10 minutes and we were aiming for a block time of 10s (ultimately we set the block time to 3s). So Dan ruled out using proof-of-work for selecting the next block producer.

A single block producer? A single failure point and too much trust

For fastest speed, Dan’s first idea was to just a single block producer. This does actually have some performance advantages, because everyone could send their transactions to that single block producer which allows for transactions to be included into a block faster. But having a single point of failure made this seem unworkable and you’re really placing a lot of power in one person’s hands.

What about a group of “trustees”? Still requires too much trust

Dan’s next idea was just to have a set of trustees: trustworthy individuals in the newly-born BitShares community who would be assigned to produce blocks in round robin order. The idea was that even if one trustee didn’t include a transaction, the next would. So the only way a transaction would be blocked was if all the trustees decided to block the transaction. One of the big attractions of this idea was it’s utter simplicity, which meant it could be coded very quickly, and we were under serious time pressure to get a functional blockchain network operating before funding ran out.

While the trustees idea was very feasible from a technical perspective and very attractive because of it’s easy implementation, it was also somewhat fragile in that it relied on a fixed set of computers in the network and it didn’t have any mechanism for how to change that list of users over time, except by hardforking in a new set of trustees.

It also placed a lot of trust in the trustees, and crypto-anarchists generally don’t want to place too much trust in anyone. So I and others argued that it required too much trust, and wouldn’t be acceptable by the crypto community. After a day or so, Dan conceded the point and went looking for a new method to
quickly select the next block producer.

Proof-Of-Stake (POS): an alternative way to select the next block producer based on coin stake

Dan next started looking at proof-of-stake systems. Proof-of-stake (POS) was the new up-and-coming method of selecting block producers at that time and the most well-known implementations were Peercoin and NXT. NXT was of particular interest, because it was also being designed to support a decentralized exchange similar to BitShares.

Proof-of-Stake consensus algorithms select the next block producer based on a combination of how many coins a block producer has, how long he has held the coins (a factor called “coin age”), along with some randomization.

Probably the most interesting idea about POS consensus algorithms was that they relied on the self-interest of the block producers to prevent them from colluding to block transactions. The idea is simple: by design of POS-based blockchains, the block producers hold a large proportional share of the coins. The value of those coins is supported by people who are willing to accept those coins for other goods. And if users decide that the block producers might stop processing their individual transactions, the coins will likely lose value, so block producers are incentivized to process the transactions of other users in the general case.

I honestly don’t recall why Dan chose not to implement a POS consensus algorithm. It had its detractors, including claims that it was subject to “nothing-at-stake” attacks. I do have a vague memory from the time when I was reading the POS algorithm for NXT that it seemed quite complicated (for example, use of randomization in the block producer selection process sounds a bit messy and computing coin-age would have added computational complexity), and I suspect this weighed heavily in his decision to avoid implementing a POS consensus algorithm, especially given the time pressure to get a functional consensus algorithm working quickly with limited funding.

The invention of Delegated Proof-of-Stake

But Dan has always been a strong proponent of economic analysis, especially when it comes to blockchain design, and I believe this was his main attraction to Proof-of-Stake systems.

Yet, at the same time he also liked the design simplicity of the trustee model discussed earlier (easy to implement, predictable block production, works great as long as you can trust the trustees).

So DPOS was essentially a synthesis of these two ideas, combined with a twist: instead of large stake holders directly producing the blocks, the stake holders would elect the block producers to make the blocks. Here the block producers fulfill a role similar to the trustees in his original plan for the consensus algorithm. But under DPOS, they don’t need to be trusted quite as much and the system has a defined mechanism for how the trustees are chosen and replaced, requiring no hardfork to replace them.

A final note on “freezing funds” on a blockchain

It always amazes me how business men who act as “thought leaders” and “influencers” often don’t understand the basics of the technological revolution that they purport to be leading.

One thing that inspired me to write this post was a recent tweet by Changpeng Zhao, the CEO of Binance, aka CZ Binance on twitter, that me laugh. CZ said: “Blockchains should NOT have freeze features.”

CZ was apparently upset that the Steem blockchain could freeze the funds of an account and thought that this was some special feature of a DPOS-based blockchain. Yet, as I hope you’ve learned from this post, every existing blockchain network, including the Bitcoin network, can freeze the funds in an account, as long as all the block producers on that network agree to do so. All they have to do is agree not to include the transactions into their blocks.

Note that this isn’t really a “feature” of blockchain technology, in the sense that blockchain developers didn’t all conspired to design their blockchains to work this way. It’s mostly a limitation of the technology, at least as far as we’ve been able to design blockchains so far.

The fewer the number of block producers on a blockchain, the easier it is to achieve the necessary coordination to freeze an account’s funds. This means, for example, that the top bitcoin mining pools could likely freeze an account’s funds for a very long time assuming they decided it made sense. But generally it’s assumed this won’t happen, because they are paid in Bitcoin and arbitrarily freezing someone’s funds is generally not going to be viewed favorably by the people that support the value of Bitcoin.

So a blockchain’s economics have to be designed so as to discourage the chain’s block producers from freezing an account without a good reason. I’ll probably talk about some ways to do this in my next post.

More to come

As mentioned previously, I wrote this post mainly to lay the groundwork for my next post, which will look at the economics and philosophy of DPOS, explore its advantages and weaknesses, and ideas for how to improve it. Unfortunately, I’m pretty busy lately, so it may take a while before I write the followup post on this topic. I’m publishing this one now as it was mostly written when I wrote my earlier posts, and finishing it up today was a nice way to relax and focus my thoughts.

Sort:  

Back in early 2014, the consensus mechanism that eventually became DPoS was actually the first blockchain design problem I ever attempted. At the time I was just a community member flaming the forums with my opinions on how BitShares should be built. (I'd mined a meager handful of PTS, and wanted to do what I could to help the yet-to-be-built BitShares succeed.) I just wrote a post about the early history of DPoS with my own perspective and memory of details from those days.

Yea, I also cringed when I saw the comment about blockchains having "freeze features". What you said about the "leaders" and "influencers" in the space not understanding the basics of the technology is unfortunately the sad reality.

Instead of feeling cringy and superior and trying to be mysterious, make a post and explain the concept to the community. You are a witness after all.

Keeping people in the dark is a common thing among profiteers. The dumber, the better.

Its "cringy" because it was said by CZ, not some newbie or average user. CZ is one of the most prominent participants in the crypto industry, so for him to not know blockchain fundamentals is reasonably cringy.

The idea still applies.

This post discusses many ideas, some people will read it and undressed some concepts, they will probably understand (especially the decisions) the whole situation even better now that they know a few things.

Instead of silence, witnesses should spread knowledge and educate the community about the chain. It is well known that a dumb population is easier to control, a smarter population will keep everyone in check and accountable. Guess why witnesses were posting movie reviews and streaming games instead of doing what really matters?

Just accepting the final decisions without knowing why and how is pure slavery. Treating people like if they don't have the brain for it is also pure slavery.

You're implying that the witnesses have a responsibility to educate others, but they don't. You also seem to think that the blame for others ignorance lies with the witnesses, but it doesn't. Freedom Isn't Free. Only those who Seek Shall Find, and absolutely nothing excuses the utter nonsense, idiocy, and complete ignorance that CZ displayed. You though, seem to disagree, you think that despite the voluminous and completely public and easily accessible information about everything to do with everything, people are purposefully kept in the dark. Let me ask you this, if that is the case, by what miraculous exceptions do you think that yabbamat and others came to know anything, let alone know enough that you consider them as capable to share that information and knowledge?

Loading...

Not to be argumentative, but I disagree that it still applies.

Nobody was talking about the "masses" here. Its not "cringy" for the wider community to be confused, and lots of people, including/especially witnesses will be glad to take the time to assist. That's not the issue here.

CZ is not part of the wider crowd. The man employees very smart people that can help him understand blockchain. He is one of the foremost participants in the blockchain industry, and it is cringy to not know your own industry.

Not to be argumentative, but I disagree that it still applies.

No worries, it's always better than believing in something just because it feels good.

Nobody was talking about the "masses" here. Its not "cringy" for the wider community to be confused, and lots of people, including/especially witnesses will be glad to take the time to assist. That's not the issue here.

Well, I was. Your replays to people should be based on what they said, no based on ideas you think you could have a good answer to them.

CZ is not part of the wider crowd. The man employees very smart people that can help him understand blockchain. He is one of the foremost participants in the blockchain industry, and it is cringy to not know your own industry.

Already answered that question, at least have the decency to check my comments above.

Keep on cheerleading,

Thank you,

this post by @blocktrades that you are commenting on does exactly that (explain the concept)

No shit sherlock.

Now the hard question: Why @blocktrades was the first to talk about it? Get it?

and witness that only communicate with the community 1 time in 4 months is BS.

and don't you dare start talking about "They are doing a lot of work in the BACKGROUND"

If @blocktrades is doing it, all witnesses can do it.

If you think @blocktrades is the first to talk about consensus mechanisms on this platform after reading a 2020 post, you are sadly mistaken.

The DPOS systems has been posted, blogged and commented about in countless instances on the Steem platform (and other message boards & fora for that matter). It's been subject to a LOT of debate.

Nearly all of the original top 20 witnesses have been pretty vocal about their views in general, which is only normal since before participants in this network should vote for anyone as a witness, it's nice to know their views.

I would personally say it's necessary to know their views before voting, but it seems that currently there are witnesses in the top20 that have NEVER posted anything...

YET YOU ARE VOTING FOR SOME OF THESE.

Loading...

The reality is most people are not interested in understanding the technology. I have said time and time again, when there is a crypto that can hide all the tech stuff, people will flock to it in droves.

Cg

I would call it "feature" as long as the developers of that blockchain put in place the tools to do it.
For instance, this "feature" has been more designed and elaborated in EOS.
So, from my side I don't see it's wrong to call it in that way.

It's absolutely not a feature, IMO. It's an aspect of the technology. Sure, you can put in place tools to manage that aspect of the technology. But that doesn't make it a feature, it's still just an aspect of the technology, not something that was designed by choice, which was what CZ was implying. Now you could argue that tools to manage it are a feature, but that's a different point.

Now you could argue that tools to manage it are a feature.

Exactly, this is my point.

it's still just an aspect of the technology, not something that was designed by choice

I agree that this is an aspect of the technology. But it is also true that when you design and write the code, if you put code to freeze accounts you are adding this as a plus, as something specific for that blockchain, you could summarize it as a feature.

I understand that freezing accounts could happen in all blockchains, not specific ones. But you could label those blockchains in that way when the majority of miners/producers/witnesses decide to apply a specific code to do it.

btw, I liked your article. Good to see the history behind the decision of DPoS.

Thanks for writing this brief history. I wish that your next post can address how and why some key numbers/parameters of Steem's DPOS are decided like top 20/21 witnesses, 30 witness votes per account and etc, which are very relevant to the recent controversy.

This article is for history- and textbooks. Thank you very much for taking the time to write it.

Yes, in times like these, changes (can) happen. Hopefully for the better.

The consensus was formed in the defense of the blockchain. It was an act of survival. Next steps, when the fight to survive won't be needed any longer, hopefully, is to put in place better governance, reputation system, power/wealth distribution, visibility/discoverability of the content, ... All the boring stuff :)

!BEER

Cringe indeed.
I think the most worrying comment CZ made was at the end -'but if other witnesses are inclined to remove our users’ ability to vote in the future, we may be forced to implement it now'
Power mixed with limited knowledge is a shitstorm waiting to happen...

Really looking forward to your next post for improvments

I had no idea of your history extending to those formative days! Although not sure I totally understood the fine points about POS, you explained clearly enough the motivations to seek an alternative in the form of the new dPOS that a layman should be able to grasp how it came about. Quite ingenious, actually, though we're still in somewhat "early days" of figuring out how to make the system totally trustless and resistant to different attack vectors.

Like other commenters, I wonder if we can explore in a major way various alternative options for witness voting — 1 SP, X votes (X being 1-30), the ability to vote for as many witnesses as you want, where the % of VESTs is split up between them, etc. What about an exponential curve of witness voting? Perhaps in the context of this series you might be able to enlighten us as to the decision to go with the 30x multiplication if you were around for that?

Anyway, grateful you are finding the time to keep the solid posts up in these hectic circumstances — there is still such widespread ignorance as to the basic functioning of blockchain that it's really important to have concisely-written articles like this available for people who are interested—I guess we are really all still early adopters? It feels weird to say that when we're a decade deep into BTC's life, but in the grand scheme of things that's really not so long. Be well @blocktrades :-)

you might be able to enlighten us as to the decision to go with the 30x multiplication if you were around for that

The original design of Steem had unlimited votes. The idea was that you vote for all the witnesses (however many that is) you think will do a good job and not harm the system in any way, and so does everyone else. The elected witnesses are the ones that the most stake views as doing a good job and not malicious, which is likely to be very strong and broad support indeed. In this system you don't need to choose or rank your favorite witnesses, just rate them as good (vote) or bad/unkown (no vote).

It was recognized after Steem launched that votes do not only choose the top 20 (was top 19 at the time) witnesses but also determine the weight for backup witnesses. By voting for more backup witnesses (and recall that the number of votes was unlimited), someone can direct more of the backup witnesses weight, which is arguably unfair and also exploitable. Therefore a limit of 30 was put on it, which was seen as a balance between all the good stakeholders being able to vote for enough "good" witness candidates to fill all the top slots, and making even more votes which would upset the backup weights.

@blocktrades you don't mention it directly but I assume the Ripple consensus protocol was traken into consideration.

I always thought about Bitshares as a Ripple alike system, but with the capability of being run by anonymous entities who are economically stimulated not to collude against the network.

Now because of the Tron attack thanks to the help of the centralized exchanges (Binance, Huobi, Poloniex), the STEEM network has been put in a situation that resembles the early days of Ripple, when most of the validators (witnesses) are controlled by the same entity.

The obvious difference, is that from TRONs perspective, there is no real economical incentive to protect the value of the STEEM chain. Ripple acted as a "benevolent chain dictator" until they managed to decentralize the validators.

At this point, I don't see how a fork can be avoided, because Justin Sun has no real incentive to act as a "Benevolent dictator" for the STEEM chain.

What about a group of “trustees”? Still requires too much trust

Dan’s next idea was just to have a set of trustees: trustworthy individuals in >the newly-born BitShares community who would be assigned to produce >blocks in round robin order.

"...Justin Sun has no real incentive to act as a "Benevolent dictator"..."

Profit is his most relevant feature. How can he make money from Steem? Without our help, all he can do is sell his tokens. He might recover his money, but he won't make any that way.

Steem has a lot of dapps, and particularly Splinterlands, which could spread to Tron and actually attract users to Tron. @aggroed seems like a businessman, he and Matt both. There's more like them around here too.

In fact a charm offensive full of business proposals that make Sun money, or benefit Trom some way, could be our most potent weapon to preserve our autonomy and blockchain. If he's making money from the status quo, there's no need for him to squeeze harder - unless we hold out on him. He's got money to invest and we've got business plans that need funding and a nifty tool to enable novel profit centers. We should put that to work asap IMHO.

Being an asshole to @aggroed sure isn't gonna make Sun any money. He'll catch more flies with honey than with vinegar.

How can he make money from Steem? Without our help, all he can do is sell his tokens. He might recover his money, but he won't make any that way.

Justin Sun acts like early days Microsoft, buying companies just to get some market share (and shutting down those companies). He can just use steemit.com to convert the most "non-crypto" part of STEEM community into the TRON network users.

If he invested 10M for the ninjamined STEEM stake + steemic.com website, he just needs to create +10M in value for the TRON network. It doesn't matter (for him) if STEEM value goes to 0. He still has steemit.com and just needs a mechanism that let current STEEM based users to be onboarded to TRON.

So he has no real incentive to act as a "benevolent dictator" towards the STEEM chain, he just needs to play "benevolent dictator" for steemit.com users and figure out how to replace the "chain" into TRON.

Microsoft has a history of doing this, he is trying to play that kind of game.

If he invested 10M for the ninjamined STEEM stake + steemic.com website, he just needs to create +10M in value for the TRON network. It doesn't matter (for him) if STEEM value goes to 0.

This a fine point that many scoff at. Keep in mind, steemit.com is an established alexa-ranked site with pre-existing crypto cred. Block One paid 30 million for the voice.com domain alone. He could burn the STEEM blockchain, his STEEM stake, the entire STEEM community (a few thousand active users), and still come out of the situation with exactly what he wants.

I'm afraid that's his goal. I don't see how a hard fork can be avoided at this point.

My point was we can give him reasons.

Yes, Ripple was looked at, but it's been quite a few years and I don't remember much about what consensus protocol it had back in 2013. I don't think it was particularly interesting, or I think I would recall it.

From the BitShares point of view, the ability to "ripple" a trade across multiple markets was definitely interesting, and I'm occasionally surprised that the Ripple feature was never directly implemented in BitShares (although someone wrote an arbitrage bot on BitShares that did that, but pocketed the arbitrage rewards).

@blocktrades I look at your rep and is #74 at the moment. Do you think an improvement to the STEEM DPOS could be to use the reputation as threshold for being considered for the witness election process?

The current protocol lets an user with a 25 rep become a witness, so it was pretty easy for Justin Sun to impose sockpuppets by just "brutforce". That would be ok 4 years ago, but after several years, maybe it could have been a good idea to require a certain rep treshold for any user to be elegible as witness.

That would be a "proof of human" also for witnesses.

The current rep system on Steem was developed as a quick bandaid for spam problems. It's pretty broken as a system for real reputation. It's interesting you bring this up, though, because one of the main things I want to introduce to Steem is a reputation system that really works.

The tech I'm talking about also has many implications besides reputation as well. I've spent the last couple of years kicking around the applications for it and trying to decide where to find an initial home for these ideas and the corresponding software implementation. With Steem finally having a chance to be a true decentralized platform for idea exchange, I decided this was an ideal place to introduce it and I'm looking forward to setting up a team to develop it.

@blocktrades I hope you can develop such an improved reputation system and use it to filter fake suckpuppet witnesses in the future.

The combined reputations of the voters for a witness is certainly a candidate for a signal that this isn't just a hostile take over by a single entity.

The absolute number of votes to somehow weight the net weight of the Steem Power would also make this kind of attack harder.

Since reputation is currently only really a measure of the value of the upvotes an account has received (and downvotes), the more benefit a user gets from a high reputation, the more chance there is of them buying votes and self upvoting etc.
The effects on Proof of Brain also have to be considered.
A truly effective reputation algorithm would be great, but I am not sure it can be done without some kind of KYC.

I very much believe it's possible to create a reputation system without what is traditionally known as KYC and I plan to write more on that topic in the future, once I have some free time again.

Great ok, I look forward to it. The majority of examples I have seen so far which are used to determine important (life changing) outcomes are the kind seen in the Chinese social credit system, which obviously goes too far down the route of centralisation. As soon as outcomes are based on reputation, I think there is a need to ensure that the reputation applies to a unique person or entity. I know that Voice (EOS) uses a patented system for identity involving multiple phones, but I personally don't like systems that force users to own a specific piece of hardware, especially when there are well known health risks (documented over decades by countless scientific studies) relating to elements of the tech. :/

Such ideas have been suggested in the past, but an attacker can easily distribute his Steem Power over many sockpuppet accounts to counter that.

This is interesting.

As I was reading some of the responses above, I was wondering if there was any real way to determine "good" from "bad" stake, and how that may implicate witness voting.

Based on your explorations of a potential 'reputation system that actually works', and the original comment from @argsolver above -- would using a new reputation index as a criteria for running a witness be an effective way to do it? Or would another path, such as maybe applying some kind of bonus/penalty to the effective stake being used to vote witnesses work?


Regardless.. Definitely eager to hear more background / context on DPoS, as well as your (and @theoretical's ) thoughts on future improvements / different protocols.

Here I define "REDPOS" as a DPOS protocol evolution thanks to the reputation factor.

Many witnesses create a new account for their witness (so their blog/main account is separate form their witness/alt account). The rep can be circumvented (and augmented) by one or two high-rep/high SP accounts.. so while the timing of the puppet accounts' rise to witness may take a little longer, it's still possible to bypass such a limitation.

Regardless, the best part about a blockchain is that anyone can be a witness with enough support from the "community".. limiting by rep is an arbitrary barrier to entry that may make potential adopters shy away from the "eliteist" protocol/restriction on becoming a witness..

Just my $0.02

limiting by rep is an arbitrary barrier to entry

Like any treshold is arbitrary, of course. The intention is to help constitute a "proof of human". With no barrier, it is proven that 30 suckpuppet accounts can be created by one entity and take control of STEEM just by means of SP brute-force.

STEEM is a blockchain, but it is also a 4 year old HUMAN community, so there should be ways to incorporate the human factor or the "proof of human" on the witness electoral process.

It could be a "non-issue" to create a witness account with non-rep like 4 years ago. But now in my opinion, it just doesn't make sense to allow such a thing.

If REP can be gamed as factor, at least it demands some effort/time and time is a factor that could be used to protect the chain in case of an attack.

Agree that there can/should be a barrier, but Rep is not the correct one. It's too easily "gamed" .. that's all I'm saying, which I guess I didn't explain well enough. Read the whitepaper and you'll know what I mean. It's pretty simple math for why Rep isn't a true barrier when you factor in someone with enough SP to auto-elect witnesses.

STEEM has the advantage that no witness knew they were "mining REP" for 4 years. So if you implement a better REP system (perhaps taking parameters such as account age) and then convert the current DPOS protocol into a REDPOS one you should get a stronger blockchain.

Wont be perfect, but sure better.

Ouch. I don't mean to be rude by shutting down this trail, but I can't continue. There's too much wrong with your thoughts. No one has ever "mined rep".

Reputation is purely built on who your upvotes are from (or the SP they're allocating toward your posts), and the rep of those who are commenting on your posts (or at least that was a thing way back when).. this is why voting bots were dangerous. You'd get a huge rep bump simply for having a "whale" (or voting bots) with high rep vote one time on your post.

Rep is not the right tools. Trust me. Pick something else...

Superb explanation Dan!
(Of course) I already knew about the inner technical workings of dPOS, but this was the first time I've read about the dPOS "invention process" itself, and how you were involved in the feedback and thought process.

Cool!

Thanks for this timely message. I will admit the genesis of how dpos started is an eye opener. So freezing generally just means to collectively ignore a transaction while the person funds remains theirs. And is an idle function of the blockchain.

Yep, that's it exactly. In Bitcoin, you can pay more for your transaction to encourage miners to include your transaction in preference over others when the network is busy and miners can't fit all the transactions into their blocks (if they include your transaction in their block, they get your transaction's fee).

Now I understand the cumbersome maths behind btc block trx you wrote above. The handsome the fee, the quicker it gets validated in the block.
Between thanks for putting a superb effort in breaking down the nitty gritty of what needs to be understood and worked upon in the system.

I look forward to your next post/part. Can't wait to read it.

Excellent synthesis .
At least, one advantage of this crisis is that everyone can learn something about blockchain technology.

There is nothing to be learned here that wasn't already clear as day. The only difference between now and before the attack is that now no one will label your words as "FUD" if you speak negatively about DPOS.

The only difference between now and before the attack is that now no one will label your words as "FUD" if you speak negatively about DPOS.

Certainly for certainty, like a good idiot.

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.034
BTC 63658.03
ETH 3299.99
USDT 1.00
SBD 3.90