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

4개월 전

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.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

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?

·
·
·
·
·

You're implying that the witnesses have a responsibility to educate others, but they don't

Completely, if witnesses represent the will of the community (as some may say), then it is up to them to make decisions based on the feedback of this latter. The decision-making process shall pass by a step where they explain the changes to the community. if there are no changes planned, then it is up to them in most part to provide the community with information regarding any complex issues to help the community to form an unbiased opinion. Do you think the president of any country is an expert in every field of science? No. He has experts that help him create his strategy and elaborate opinions on different subjects. Witnesses should do the same thing since a lot of people (mostly average joe) are voting for them.

If you think it's not their job, that's another story and your opinion.

You also seem to think that the blame for others ignorance lies with the witnesses, but it doesn't.

No. Only if it's your job to educate them and provide clean data, and Blocktrades is doing it perfectly (intentionally or not).

Freedom Isn't Free.

I agree.

Only those who Seek Shall Find, and absolutely nothing excuses the utter nonsense, idiocy, and complete ignorance that CZ displayed.

I agree. If it's your job, then you are accountable and should know your shit.

I am not defending them not sure why you are bringing this btw.

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.

Yes, that's why people watch the news. Because they can't go to Irak and see what's going on live. Not everyone is an expert on blockchain development, in order for everyone to understand anything, people who are technical and have the job to scan the code before running it should use layman's terms and explain the situation to people instead of using the "just trust us, you can't understand it" approach and silence.

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?

You are here since 2016, not sure if this is a real question or sarcasm.

·
·
·
·
·
·

Completely, if witnesses represent the will of the community (as some may say), then it is up to them to make decisions based on the feedback of this latter. The decision-making process shall pass by a step where they explain the changes to the community.

If they represent the will of the community then the community does the explaining to the witnesses, not the other way around. How do you figure that the community demands the witnesses act a certain way yet the witness must educate the community about what the community demanded of them. Complete idiocy. The only thing that is required by witnesses is to Validate Blocks btw.

if there are no changes planned, then it is up to them in most part to provide the community with information regarding any complex issues to help the community to form an unbiased opinion.

Because? Why not, after all they aren't there to Validate Blocks, they are there to fret out issues, because why not.

I agree. If it's your job, then you are accountable and should know your shit.

I am not defending them not sure why you are bringing this btw.

If you're not defending them why are you saying that they should be educated by those who find their actions cringe-worthy?

Yes, that's why people watch the news. Because they can't go to Irak and see what's going on live. Not everyone is an expert on blockchain development, in order for everyone to understand anything, people who are technical and have the job to scan the code before running it should use layman's terms and explain the situation to people instead of using the "just trust us, you can't understand it" approach and silence.

People can chose to watch the news exactly like they can chose to seek any and all the information that they are unsure or not informed about, and no one has any responsibility to either publish or share the information, and there is absolutely no lack of such information, so to suggest that people are kept in the dark about ANYTHING to do with Steem is complete nonsense.

You are here since 2016, not sure if this is a real question or sarcasm.

That is a very valid question and it has nothing, fuck all nothing, to do with me:

If others have found the information for themselves, what keeps others from doing the same, or who, what, where, how and why are people kept in the dark as you try to baselessly claim (all nil explanation or evidence for)?

·
·
·
·

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.

·
·
·
·
·

Let’s start ...

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

I like to keep things precise, if you are going to dump on me everything said and done by every new and past witness on steem this is not going to work. Every witness shares an "equal" responsibility to do the same thing (I don't fucking care about a game review or what you think about life). My replay is tied to the witness above and the definition of transaction refusal. I don't remember discussing which food they like to eat. Got that?

Now that being a witness and farming the reward pool is not enough, let take a few seeps from that tasty SPS.

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.

Not sure why you are also dumping this on me, I didn't say the contrary or discuss such a point. There are unlimited resources about blockchain development and medicine online, that fact doesn't make you a B developer and neurosurgeon instantly. Yea, because not everyone has the time nor the will to dig, that's why people delegate their trust to other people, so they can do the right thing and explain the void to them FOR A PRICE.

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.

This is too vague, Their opinions about what exactly? Why are you dumping random shit on me? Precision is king. Yes, you are probably talking about all those movie and game reviews, gotchya. Are you talking about the whole picture or just the last drama? Like almost no one of them was posting monthly updates for being entrenched at the top chilling for years. Wait, I mean real updates, not some existential BS, or something like "Hey" every 6 months when they drop off the top 20.

If being vocal means to you whine and accepting the status quo for 4 years then it's, of course, your opinion. My definition of duty clearly differs from yours. It's funny to see witnesses kissing people ass for support, then when someone asks about accountability they act like if it's a POW chain.

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...

Not necessary! Yea, I voted on X just because he is funny and looks good and trusty, and also voted on me once.

No, dear friend, this is idiocracy.

Imagine having 2 countries, where the first one is represented by highly-skilled technocrats and educated population, and the second wone by a bunch of random joe (probably movie critics writers) and the population has no way to check and make them accountable for their actions. Here what's going to happen:

The first country will thrive and become a superpower, the second will be conquered by the first country and will be transformed into a back garden, or a theatre since there are enough people there who think that emotions can melt iron.

YET YOU ARE VOTING FOR SOME OF THESE.

No shit Einstein? WTF with all the dump? since you are a historian, maybe you should go back and read one of my posts to understand the WHY.


To conclude, it's sad that some people are still playing the role of cheerleaders instead of vigils. If you are going to keep the same mindset and approach as the last 4 years, you can be sure that the next 4 will be the same and nothing will improve.

·
·
·
·
·
·

I like to keep things precise, if you are going to dump on me everything said and done by every new and past witness on steem this is not going to work. Every witness shares an "equal" responsibility to do the same thing (I don't fucking care about a game review or what you think about life). My replay is tied to the witness above and the definition of transaction refusal. I don't remember discussing which food they like to eat. Got that?

Now that being a witness and farming the reward pool is not enough, let take a few seeps from that tasty SPS.

You replied to someone by making vague accusations that they are keeping people in the dark and implying that they have a responsibility to educate others, and then you tried to claim that the concept of transaction refusal has never been discussed before, and when someone referred quite correctly to transaction refusal as consensus mechanism(s) you lost your shit, accusing them of not being precise. The ridiculous part is that so far you still consider yourself correct AND precise, but you're neither, dragging the conversation from the completely valid cringe worthy reaction to vacuous idiotic nonsense of "keeping people in slavery".

Not sure why you are also dumping this on me, I didn't say the contrary or discuss such a point. There are unlimited resources about blockchain development and medicine online, that fact doesn't make you a B developer and neurosurgeon instantly. Yea, because not everyone has the time nor the will to dig, that's why people delegate their trust to other people, so they can do the right thing and explain the void to them FOR A PRICE.

He never said that the presence of resources somewhere makes one an expert in that field, instantly, or otherwise. He contended you ridiculous idiotic nonsense that people are kept in the dark regarding how the blockchain functions. He didn't say anything about what it takes to be a developer, so while you're dumping this on him as you act as if what he said had absolutely nothing of relevance to what you said please explain exactly how are people kept in the dark if the information is freely accessible to anyone? O yeah. You didn't "discuss" such a point. Dumbfuck.

There's no point to expose anything more especially seeing that it's simply a matter of vehemently disregarding, twisting and bullshiting about what was said and why.

Keep holding their toes to the flame, or whatever you think you're doing.

·
·
·
·
·
·
·

Going low? will go just a bit low.

You replied to someone by making vague accusations that they are keeping people in the dark and implying that they have a responsibility to educate others

Nice, the earth also not falt, what's the point from describing what I already said?

and then you tried to claim that the concept of transaction refusal has never been discussed before

I don't see where I claimed that transaction refusal wasn't discussed before. I tied it to the witness above.

when someone referred quite correctly to transaction refusal as consensus mechanism(s) you lost your shit, accusing them of not being precise.

Do you think the COVID-19 is as dangerous to people who are 30 and people who are 90? You know the answer. But it's the same virus ... yeah, you got the idea. Read some scientific paper, maybe you will learn how unbiased facts should be presented.

He never said that the presence of resources somewhere makes one an expert in that field, instantly, or otherwise. He contended you ridiculous idiotic nonsense that people are kept in the dark regarding how the blockchain functions.

Why so hurt, facts don't care about your emotions. Get over it. He implied that people should do the digging to understand complex terminology since information is there, I am saying that people who are voted should do this job and serve the intel on a FUCKIN GOLDEN plate to the community with a huge SMILE. But yea, you live in the world of subjectivity, where everything is elastic.

explain exactly how are people kept in the dark if the information is freely accessible to anyone? O yeah. You didn't "discuss" such a point. Dumbfuck

Why the fuck should I waste my time anymore on a whiny overly emotional ass-kisser? The respect, you earn it, same as my time retard. Never saw someone defending a witness so much jeeeez, no wonder why this place is like a dumpster full of whiny people.


You are having a menstrual crisis I think, calm down, drink water, avoid soy milk, and move on.

Next time you want to speak with me again Dumbfuck², do it with respect.

·
·
·
·
·
·
·

It's amazing to see how much patience and goodwill can be found in the Steem community, giving attention and time to people that would not particularly deserve it.

Here's an upvote :) #SteemOn

·

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.

Thank you so much for this post, for those people like me that are interested in the details but not as technically savvy as those involved in development, this DPOS history lesson is very comprehensible.

On a slightly different topic, CZ and Binance have just released their 'apology' letter to the Steem community that was less than satisfactory. It includes veiled threats to the Steem token and Steem users.

Hopefully, the STEEM community and TRON will reach a consensus in an efficient manner. If they fail to reach an agreement and it poses potential risks/damages to STEEM users on Binance, we reserve the right to take corresponding actions at the consent of our users.


So, effectively they still RESERVE the right to interfere in Steem's governance in certain cases.

Simultaneously, this seems to somewhat contradict other statements in the letter, specifically that Binance states it will,

stay neutral and has no interest in on-chain governance beyond the Binance ecosystem.


As a community member, I find this troubling as CZ also recently tweeted that Binance is considering integrating some form of off-chain 'voting' mechanism from their website.

Interestingly, if we implement this vote feature, Binance users collectively will have, by far, the deciding vote. People who care may need to deposit to Binance to vote.


This thread includes statements, such as "we don't want to do this.." but "we may be forced to implement this now".

These are clear and continued threats to Steem's governance structure by a centralized entity and outside party.

Personally, I'm completely against this as it poses yet another clear threat to on-chain governance and decentralized protocols. I don't trust binance or investors with no 'skin in the game' to have undue influence over any blockchain. In order to vote, users should stake their tokens directly to the blockchain, imo.

As someone who operates a crypto-exchange what are your thoughts on this?



CZ March 8 VOting.png

·

First, exchanges voting with custodial stake without permission is completely unacceptable, in my opinion. People deposit coins on exchanges to trade, not to have the exchange make governance decisions for them.

Exchanges are typically not stakeholders of a chain, so they should not have influence in the governance of the chain, because their interests are not likely to be aligned with the chain's stakeholders and giving them influence only opens up an avenue of abuse, similar to what we saw recently by Binance.

Given the point above, it makes no sense to me that most informed voters would want to proxy their votes to an exchange, so I think that a plan like that proposed by CZ will only be used to take advantage of uninformed voters who don't understand the potential risks associated with giving power to the exchange they hold funds on.

I am utterly opposed to his suggested plan.

·
·

I'm glad you feel so strongly about this issue.

I think the Steem community should make this abundantly clear to Binance and all other exchanges that these proposals are completely unacceptable and will be vehemently opposed.

Thanks

·

The obvious logic error in his argument lies here:

  1. It's not clear that all of our users want to give up their ability to vote.
  2. Interesting, if we implemented this vote feature, Binance users collectively will have, by far, the deciding vote. People who care may need to deposit to Binance to vote.

He's conflating two opposing ideas here: In one, he's suggesting users may still want to vote their stake while on an exchange. I can a case for that, but no simple mechanism for doing so unless the chain allows for partial voting and only if the chain "trusts" exchanges to only vote as their user's direct. That's too much trust, in my opinon.

Then in two, he's talking about Binance users collectively having the deciding vote. But this is deception at it's finest: he's implying that whatever Binance decides to vote is the actual voting wish of the users on Binance. This makes no sense. For example, it should be obvious on the face of it that many Binance users will want to vote in different ways. His proposal doesn't allow for this, so it directly contradicts his point 1: users would in fact be giving up their "right to vote", they can't make their own decisions in this case, they've handed over that "right to vote" to Binance instead.

·
·

I agree, this is why I wanted to raise the issue because these statements are, first off, illogical and second, they are contradictory.

While I cannot speak for Cz intentions in these statements, I feel they certainly imply that Binance has a desire to retain rights to influence/participate in voting/governance - as you correctly point out - as they see fit.

This statement refers to elevating the interests of the exchange over the interests of the Steem token holders and the community as a whole.

·

Binance Terms of Use:

https://www.binance.com/en/terms

The perfect trap.

They have the upper hand because they know how the law function. If people want to understand what Binance can do or not, they just need to know what the law allows or not.

All the rest is just public relations and chit-chat.

·
·

Oh joy, if this is anything like the altered Steemit.com TOS this should be a treat to read.

Joking aside, I did follow the link and looked at their terms of service as I was curious as to what jurisdiction Binance TOS applies to.

Apparently, in most cases it applies to wherever jurisdiction the user happens to reside/operate from.

From the Binance end of things they seem to change their base of operations quite frequently: Hong Kong, Malta, Singapore...

From your link though, it would appear that they settle disputes following the rules of the Singapore International Arbitration Centre (SIAC) and the Small Claims Tribunals of Singapore (“SCT”).

So, that's interesting...

·
·
·

So, taking hostage their customers' Steem should be illegal in Singapore? And a ground for criminal charges?

·
·
·
·

I wasn't specifically referring to this, just that I was curious what laws apply to exchanges.
Nevertheless, Binance clearly misappropriated user funds, some have called their actions embezzlement and there's certainly a case to be made in both instances.

I'm not advocating legal action, here. I think Binance / Poloniex and Tron are seriously damaging their reputations and businesses with their recent actions that have led to this fiasco. They're getting caught in their own web of lies and have to continue spinning more lies to continue on this charade. We'll see how long they can keep it up.

·
·
·
·
·

I am not advocating anything either. Just asking ...

By the way, it's just a rumor gleaned from various Twitter tweets but it seems that this seizing of funds and voting is a regular praxis on EOS.

·
·
·
·
·
·

I'm familiar with the EOS governance issues, so I can say that it isn't exactly the same situation we're observing on Steem.

EOS funds are not "seized", misappropriated might be the word, but exchanges such as Huobi powerup user tokens in order to vote themselves into the top Block Producer (BP) positions and in many cases they vote in a 2nd proxy BP in order to maximize their BP producer daily earnings.

Both DPOS systems are, in essence, under sybil attack (sock puppets).

The main difference that I see is that Justin Sun and Tron are attempting to control ALL of the witness positions with their proxies under the control of 1 entity. Thus, Steem's situation is currently more hazardous in my estimation.

·
·
·
·
·
·
·

Thanks for this insight about the EOS BP situation.

And yes, Steem is facing de facto centralization. Would already be centralized...

·

The whole thing CZ did was tricky, from posting a screenshot of partial SF222 code, to the delay of powering down, apology letter.

I was unaware of your deep roots in DPoS and early work with Dan. While you may further enlighten me with your next post, I am also interested in knowing more about your genesis as well. How did you get involved with peer to peer work with Dan? From whence did you come to it?

Thanks!

·

My genesis is a long story (I'm over 50), but I can share the highlights of how I got into cryptocurrency...

For many years (starting in 1991) I've run a self-funded company that specializes in creating and selling software for the electrical engineers that design digital circuitry (think smartphones, computers, digital radios, gps systems, and most of the other modern marvels of electronics). The company began with just me and my partner, Donna, then we began hiring part-time students, then later full-time professionals, to help develop our products.

Around 2012, we decided to venture into custom software development contracts. Over the years, we had built up a team of extremely talented software programmers and we saw an opportunity to market those skills to companies with programming teams that were struggling with difficult software problems.

One of our earlier contracts was with another software company in Blacksburg, Va (the town where I live). The company was attempting to design software to solve complex engineering problems with the work being distributed across a network of computers. Multiple internal teams had already failed at the project, the current team they had assigned to solve the problem was behind schedule and struggling badly, and no one else at the company wanted to be associated with an apparently doomed project. We were contracted to help get the team back on schedule, which we did.

The tech lead for that project was a relatively new hire there named Dan Larimer. While working together, Dan and I began talking about our outside interests including politics and economics, and Dan shared his interest in developing a cryptocurrency that supported stable coins (a cryptocurrency that tracks the price of a fiat currency) and also allowed for shorting of a cryptocurrency (betting against the value of a coin).

During the middle of the project, Dan was able to obtain funding for his cryptocurrency ideas from a wealthy Bitcoin entrepreneur (he received his initial funding in Bitcoin), so he quit and began coding. He hired me directly on a part-time basis and later contracted for some of my company's other programmers as well, to develop his project. The peer-to-peer network for BitShares was one of the tasks assigned to our team.

Eventually his funding for BitShares began to run out, and he could no longer afford to pay us, but I wanted to stay in cryptocurrency, so I started a second company called BlockTrades to focus on cryptocurrency projects, with our first product being the web site you're probably aware of.

So it's fair to say that Dan is directly responsible for me getting into cryptocurrency.

·
·

Putting so much details about yourself, certainly wins a lot of trust and respect.

·
·

TYVM

I am greatly intrigued by your journey. I have so many interests regarding improving interfaces, but no skills.

·
·

Thanks for letting us know your Genesis.

Very good post, but downvoted due to disagreement on rewards, since Author is early miner and permanently top witness for four years. A lot of the minnows would prefer that such posts would be 100% Burn Posts.

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.

So during the time when 22.2 was active for many top-20 witnesses, if the steemit account did some of the transactions that 22.2 was designed to block like issuing a transfer, would the transactions have eventually gone through because one of the non-22.2 witnesses (either in the top-20 or the timeshared backups) would have eventually encountered them and processed them (having no reason not to under the code they were running at the time)?

·

A lower-ranked witness not running the softfork code could have produced a block that contained such transactions. But the witnesses running the softfork would have rejected that block itself (they wouldn't have added it to their local chain of blocks).

This would have resulted in two different chains on the network: one with the block and one without. These two chains would then compete and eventually the longest chain wins (which would have been the softfork chain, because far more active witnesses were running the softfork).

So the block would have become "orphaned" in the terminology of blockchains and the transaction would not be recognized as valid by the network.

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.

You are comparing Bitcoin to Steem which I think is a bit misleading considering the scale of both chains and different mechanisms they operate on. It's not that easy.

If something similar to SegWit (theoretically speaking) would happen on Steem, the implementation would be instant because there is a huge centralization of power. This means a simple culture war could lead many people to lose their stakes by a HF/SF.

However, on the Bitcoin chain, SegWit transactions are yet to reach 100%, even after years of its implementation.

·

You're talking about the ease of hardforking Steem versus Bitcoin. You are correct that it's much easier to hardfork Steem.

But freezing of transactions has nothing to do with hardforking. The block producers just have to agree not to put the transaction in the blocks they make and the funds are frozen. No hardfork is required.

So the technical ability to do this is simply a function of the number of block producers that need to agree to do it. Because of pooled mining on Bitcoin, there's not a lot of coordination required (there's just a few major mining cartels or at least that was true last time I checked). Now you could argue that someone could fire up a huge mining pool of their own and get their transaction published that way, but that's not a small undertaking.

·
·

I was speaking about the first version of "SegWit" which did not require a hard fork. The second one "SegWit2x" does, but wasn't pushed because of a lack of consensus and other technical disagreements.

Which lead us to my point. Even though there are concepts and technical similarities as you stated between the chains, one can mistakenly conclude that our situation is the same as the one on the bitcoin chain.

We should not, in my opinion, deal with the issue with an approach that plays more on the similarities of technical concepts, but rather on the different values and effectiveness of these concepts on different architectures and blockchain models.

That transaction consensus constitutes a higher threat to chains that are highly similar to our chain, thus, such technicals characteristics need to be taken into consideration while approaching the question of freezing stakes or any other form of transaction refusal. As you can see, a technical concept can carry different weights according to which environment you put it in hence why a precision could be made when writing about such a thing.

·
·
·

No need for any such consideration, this feature of refusing to interact/transact exists in all manners and shapes and it all comes from people forming a consensus/agreement to not transact or ignore certain funds/users or transactions. It doesn't matter what the agreement forms over, the point is, as he's made it again and again, that regardless of the protocol people can form agreements preceding any protocols, rules or stipulations.

·
·
·
·

I beg to differ, such consideration is important to anyone who wants to invest or build a new blockchain. If specific types of chains are more prone to the abuse of "transaction refusal" or other attacks, then yes I think it's important to mention it even if the technical definition of such mechanism is the same on all types of chains.

You can't just add a DPOS and POW chains in the same bin when it comes to the potential risks such a mechanism could represent.

·
·
·
·
·

The point is that there's absolutely nothing to consider that would make a difference because in either system it wouldn't take anything but the agreement of a few people.

·
·
·
·
·
·

That "few of people" can be easily achieved on Steem than Bitcoin. That's my point. Think about it in terms of risk management for example.

·
·
·
·
·
·
·

The number of block producers that need to coordinate to refuse a transaction is about the same both for Steem and Bitcoin.

On Bitcoin 15 mining pools control 91.8% of the hashrate vs the 15 top witnesses positions in Steem that are needed for consensus.

So in terms of the number of actors that need to coordinate the risk is about equal...the difference is in the cost to carry out such an "attack".

·
·
·
·
·
·
·

No it can't. Heck, the distribution of coins is still better on Steem than Bitcoin, and considering that the trend is for ever increasing concentration of coins into fewer and fewer hands and the same for hash power I don't know what you think "fewer" people means, and that's despite the fact that regardless of protocol or coin, people can cooperate to ignore transactions without any problems what so ever.

Hey @blocktrades, some friends redirected me to this article and told me that a Spanish translation might be a good idea, so I made a voluntary Spanish translation, I hope there is not a problem with it.

In the next article do you plan to talk about the "promises" that certain entities can make in a DPOS network? I think it would be interesting to read a bit about it from your perspective

·

Sure, you're welcome to do a Spanish translation.

I'm not sure yet what my next article will cover, but I'm certain I will be covering the topic of promises before too long. In my own life, a person's ability to respect promises is one of the main criterion I use to judge people and make decisions about whether I want to work with them or not.

·
·

Translation done, ty.

In my case, I believe that the ability to respect a promise is something that defines how I will see that person from that moment on. Keeping a word is something I simply respect a lot and something I pay a lot of attention to and with everything that's been going on lately, talking about it would not be a bad idea.

Is blocktrades back open for trading?

·
·
·

Awesome! Thanks for what you do.
~RESPECT~

Superb and timely! This should be required reading.

Please don't take too long with the next edition! :-)

Thank you for your time posting this article. It is truly great if everyone knows about the blockchain.

This is awesome thanks for the little history lesson. I’m still learning about the environment and this was cool to know and understand. Look forward to the next edition!

You were in a great place of history. We support you.
Thanks for the very useful post.

Can we have an update on the negotiations with Tron?

I understand it's a sensitive subject and not everything can be said publicly, but a rough picture would be nice.

Is he listening? Will he remove the witness votes? Do you believe hardforking is now the most likely outcome?

Thanks for sharing, very cool historic info.

Just for my own curiosity, I see you will be doing an updated post. Did you guys ever have any discussions on the economic aspect of how this blockchain functions, did anyone ever say, hey wait a minute, this is just a functional form of oligarchy...?

I really enjoy the social media aspect of the STEEM blockchain, but after I joined and learned how it works it became apparent to me, that the coded rules are exactly how an oligarch government of a country would function.

·

I think it was generally understood by all the devs how DPOS functioned economically, at least to some extent. It was certainly examined for attack points, and we were well aware of the potential for attack by an exchange with a lot of stake, for example. It was considered an acceptable risk at the time, but time has shown that to not be true, I think.

But for a full analysis of the socio-economics of DPOS, I need a full post, like the one I'm promising eventually. A lot of people do get the wrong ideas about it, and I don't consider it as bad as you're implying, because there are economic limits on abuse that may not be obvious at first glance. But again, it's a longer discussion for another time.

·
·

Thanks, looking forward to your post, maybe there are some rules in the software I am not aware of. I have always had an interest in economics and how currency flows through economic system, so I guess maybe I saw this flaw more clearly than most...

Great Compilatión of General know about the fuction of Blockchain world.
Thank you so much.

Thanks for sharing your experience, and I'm looking forward to hearing your thoughts more specifically related to strengths / weakness.

It's definitely interesting to see into the evolution of DPoS.

Awesome blog. Even a newbie in tech like me could understand most of the things mentioned.
I'll be on the lookout for part 2 .

Thanks for this wonderful update, I think by now everyone should understand some of the things and the implications about keeping large amount asset to exchange.🙏💓🙏

Posted using Partiko Android

Dear @blocktrades, could I translate this article into Indonesian language?

·

Sure, you have my permission to translate it.

·
·

Thank you for permission. I am going translate in next two days🙏

·

I hope he replies and says yes, I can't imagine he won't!

·
·

I hope so, thank you for your kindly support.

DPOS = Cosmos network

I enjoy reading it. History always interest me.. Very cool post..

~ Thanks for very clear explaining and lovely history lesson

I look forward to your next post. =)

Scholarly article. One for the textbooks!

hi @blocktrades, would like to check when the buy/sell will be enabled?

When you say that all witnesses can agree to freeze an account transaction. So, you mean that every transaction in the chain is identified by the account name? Is that how you know which transaction to freeze or ignore? Forgive my ignorance, but I'm having a hard time understanding this.

·

When you make a coin transfer, your wallet creates a transaction that includes the "account id" that holds the money. In the case of bitcoin, this is a bitcoin address. In the case of Steem, it's an account name like "mballesteros".

So yes, all the block producers can see this account id (they have to be able to see the account id in order to process the transfer) and they can decide to not put the transaction in their block if they have decided to ignore transactions from that account id.

·
·

Thanks for the prompt response, I thought each transaction was just a string of numbers with no identification or relationship to any account, I thought that was untraceable.

·
·
·

Numbers can be very traceable.

In cryptocurrency networks like Bitcoin and Steem, that don't have "privacy" features built in, you should assume your transactions are traceable if someone wants to put sufficient effort into the task.

In part this is true because most people use exchanges and exchanges are mostly required now to collect identity information from their customers.

·
·
·
·

Now I understand a little more. I'll be looking forward to the next posts to continue learning. Thank you very much, you have the patience of a teacher. 👍


Hey @blocktrades, here is a little bit of BEER from @ervin-lemark for you. Enjoy it!

Learn how to earn FREE BEER each day by staking.

I was considering DPOS as a alternation of the LMAX Disruptor ..

A really excellent post laying out the groundwork and history of the system.

Hey @blocktrades. Thanks for the good breakdown not only explaining the algorithms, but in relating to how they were developed at the beginning stages. It was a good 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

I thought it was hilarious when he said blockchains shouldn't be able to freeze accounts. Like... really? Could you explain how the super-majority on Steem can stop the other 3 witnesses from including those transactions? There is like some kind of veto round and their block doesn't get included if they try to process it?

·

Just like witnesses can choose not to include transactions in their blocks, they can also choose not to include blocks in their blockchain.

In such a case, witnesses that agree the block shouldn't be included will build the same local chain on their systems. Witnesses that don't agree will build a different chain on their computers that includes it.

At some point, there's code that tells the witness to switch to the longest of the two competing chains (although even that can be changed via software).

Really cool to read and understand bit more about the history.

Very interesting!

Posted using Partiko iOS

Very inspiring and motivating to keep the spirit of work, with the best ideas. Thank for sharing.. you'r the best forever @blocktrades.. and success is always for you

!giphy awesome

Posted using Partiko Android

·




giphy is supported by witness untersatz!

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.

No, it is not that. Right now, if all the major pools censor your transaction, you can simply go to Nicehash and buy enough hash for producing a block, which will include your transaction. That will have a cost that is slightly above 12.5btc, but you get 12.5btc back, and you will get exposed to some variance risk. However, this means that, essentially, any significant enough amount of funds cannot be freezed. At least, not just by policy.

Now, the only option to effectively freeze the funds in pow chain would be to explicitly fork them out, to make a soft fork that explicitly considers your transaction invalid. However, that protocol change needs to get adopted by everyone, not just by the major pools, because otherwise, with any miner-only enforced softfork, it pays off to drop it and trick competing miners to get stuck in a shorter subchain.

This, the fact that miners are competing with each other, is the thing that protects against censorship in pow chains, and not any economic based common goods consideration.

·

Nicehash is a centralized entity. They may be acting as a broker for buying hash power, but they can stop at any time. And the very act of selling hashpower is an economic based consideration (as is miners competing with each other). Note, I agree that it is a plus for bitcoin that a market such as nicehash exists now.

@blocktrades, Thank you for sharing all these very important Point Of Concepts. In recent days many questions raised upon DPOS System. Hope that going forward some important measures will be taken to strengthen it so that we can put a full stop to Potential Takeover Attempts. Stay blessed team.

Posted using Partiko Android

·

There's definitely work being done to address that :-)

·
·

Good to know that team. Stay blessed.

Felicitaciones por entregarnos sus experiencias y esta interesante historia, sobre todo ahora que bitcoin comienza a bajar. La experiencia es muy útil. Esperaré la próxima publicación.

@blocktrades I'm very curious if you have discussed the current situation with Dan Larimer, and if you have, what are his thoughts on it from a blockchain development perspective?

·

I haven't. Dan and I stopped working together a while back. It wasn't for technical reasons, but I wasn't happy with some of the choices he was making, so I decided to take a step back from working with him and other people he was working with, and go my own way.

At this point, I think Dan's and my philosophies have probably diverged a lot. I wouldn't rule out ever working with him again, but I don't really anticipate it at this time. But the one thing I can say about Dan is that he is "ever changing", and there could come a day when we were in better alignment.

·
·

Cool. Thanks for your reply. It's interesting how things work out.

Would you be able to shed any light on accounts were made to allow voting on so many witnesses? Understanding that hindsight is 20/20, doesn't allowing multiple votes allow a similar effect as having only 1 witness?

Very informative, @blocktrades, I’m still learning what blockchain is and what it can be, so this was an important lecture. Thank you.

Hi Blocktrades,
trying to sign in my blocktrades, to sell some steem, i got
this "funny" Consent again (for giving up all my rights), that
i got last year already. Back than it was a bug y'all wanted to fix.
It asking for all rights so i had to deny. Please tell me how to proceed..?
Thank you

·

It's not asking you to give up all your rights, but I understand it can be a scary message. Try clearing your browser cache or using a different computer to login.

Appreciate your work. You made it easy to understand even for a non technical guy.