Dan Larimer and Satoshi's 2010 Interaction: Does Steem Solve Bitcoin's Scaling Problems?

in bitcoin •  8 years ago  (edited)

dansatoshi.jpg

image art by @stellabelle

As of January 2017, the number of daily transactions on the Bitcoin network have reached nearly 300,000.

Compare this to the number of Bitcoin transactions happening in 2010, the time this thread was created: 813. A lot of discussion is revolving around solving the scalability issues with Bitcoin, especially after the recent frenzy when Bitcoin went over $1,100 and some people experienced long delays with their transactions.

If you do a Google search for "unconfirmed Bitcoin transaction" you start to get an idea about the scalability issues that we are currently experiencing. Here's a common question that arises:

"For whatever reason, I have been waiting forever for my transaction to confirm. Why is it taking so long for my transaction to confirm?" -Bitcoinstackexchange

Six and a half years ago, developers in a forum were discussing this exact thing we're currently experiencing today. We can learn a lot about the origins of Steem from this discussion between Dan Larimer, co-founder of Steemit and anonymous creator of Bitcoin, Satoshi Nakamoto.

Dan said he didn't know for absolute sure if the user named satoshi on bitcointalk.org was the real Satoshi Nakamoto, but he and everyone else assumes it to be him/her/them. Correct me if I'm wrong on this point.

The question that was posed by a user named Red on the thread in Bitcointalk was as follows:

I'm curious about the developers feelings on scalability. For example, could the system handle a million users, doing say 5 transactions each per day. 5 million transactions per day is roughly 35,000 transactions per 10 minute period? Is there a bottle neck in propagating 35,000 transactions to a million nodes for block generation? Or has that issue been designed for?

Here's one of Dan's responses:

dancode_small.jpg

I am convinced that bandwidth, disk space, and computation time necessary to distribute and "finalize" a transaction will be prohibitively expensive for micro-payments. Consider for a second that the current banking industry is unable to provide a reasonable micropayment solution that does not involve depositing a reasonable sum and only allowing a withdraw after a reasonable sum has been accumulated.

Besides, 10 minutes is too long to verify that payment is good. It needs to be as fast as swiping a credit card is today.

Satoshi's answer:
satoshi_sm.jpg

The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don't generate.

Quote from: bytemaster:
"Besides, 10 minutes is too long to verify that payment is good. It needs to be as fast as swiping a credit card is today."

See the snack machine thread, I outline how a payment processor could verify payments well enough, actually really well (much lower fraud rate than credit cards), in something like 10 seconds or less. If you don't believe me or don't get it, I don't have time to try to convince you, sorry.

Here's Dan's response:
dancode_small.jpg

I fully believe you and came to conclusion you did. I read the snack machine post after posting by earlier comment.

So, what's Satoshi's snack machine concept?

If you've ever wondered why someone cannot spend the same Bitcoin 2 different times, here's your answer below from Satoshi:

satoshi_sm.jpg

The network nodes only accept the first version of a transaction they receive to incorporate into the block they're trying to generate. When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it's a race to propagate to the most nodes first. If one has a slight head start, it'll geometrically spread through the network faster and get most of the nodes.

A rough back-of-the-envelope example:
1 - 0
4 - 1
16 - 4
64 - 16
80% 20%

So if a double-spend has to wait even a second, it has a huge disadvantage.

The payment processor has connections with many nodes. When it gets a transaction, it blasts it out, and at the same time monitors the network for double-spends. If it receives a double-spend on any of its many listening nodes, then it alerts that the transaction is bad. A double-spent transaction wouldn't get very far without one of the listeners hearing it. The double-spender would have to wait until the listening phase is over, but by then, the payment processor's broadcast has reached most nodes, or is so far ahead in propagating that the double-spender has no hope of grabbing a significant percentage of the remaining nodes.

The conversation between Satoshi Nakamoto and Dan from 2010 on Bitcointalk is definitely worth reading through and it leads me to the following question:

As a newbie, I do not understand the differences between the Bitcoin blockchain and the Steem blockchain.

Does Dan's Steem technology solve the scalability issue that is currently making Bitcoin transactions slow? If so, how? If this is truly the case, then it would be good to understand the fundamental differences between the Bitcoin blockchain and the Steem blockchain. If you have the answers, please add them or point me to a link. More understanding of this will help people see Steem's advantages.

If you're a newbie, and still not sure how Bitcoin actually works, watch this video. It cleared up the concept of hashrate which I didn't fully understand until now:

follow8f3ef.jpg

You just never know what I will write about next...........

thanks to @donkeypong who gave me the Bitcointalk.org link.

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!
Sort Order:  

Would be nice if Proof of Work could be kicked out of cryto for good. It is such a waste of energy.

do you know what the differences between steem and bitcoin are?

I guess the proof-of-work model was devised because it was a simple solution at the time? Usually innovative ideas don't have every aspect perfectly fleshed out....that comes later, as others refine the first innovation. So, proof of stake is the answer then?

POW was needed to distriubute coisn based on hash power.... POS and DPOS can build on that original Hash distribution

BUT POW distribution wasnt perfect, Steem was woprse, EOS can be better, PIXEOS distribution is one model...

I don't know. Perhaps? We will see. Definitely it works with way less power, thats sure. Without UI you can run a staking wallet on a Pi.

run a staking wallet on a Pi

you lost me on this one.

Bitcoin runs Proof of work. You "mine" a block by solving a hash. LOTS of power needed to make the network secure.

Proof of Stake: Every coin has a chance to "mine" the next block. Power needed? Basically the verification of that mining, nothing artificially hard to do. Thats why you can do this verification on low-power computers. Every smartphone can do that.

one could say that the cost of proof of work adds physical value to the coin, while proof of stake the value is 100% speculative

ah ok, thanks

Both methods have advantages and disadvantages. I think Dan is probably the best placed to explain.

I don't think that is going to happen. I used to believe that too but the BTC extremists will never allow it.

As far as I can understand, putting into simpler words, Bitcoin's proof-of-work (POW) consensus mechanism requires a much larger portion of the network to consolidate the ledger/truth. STEEM on the other hand is based on delegated proof-of-stake (DPOS) - generally requiring smaller portion of the network to consolidate the ledger/truth - which is why there are 19 main elected witnesses and backup witnesses.

Dan has more stuff down the line, and I think the new proposed fork is to streamline the code for further scalability. Here's one of the related writeups: https://steemit.com/blockchain/@dantheman/how-to-process-100m-transfers-second-on-a-single-blockchain

STEEM also seems to be more resistant to gov interventions - check this out: https://steemit.com/blockchain/@dantheman/the-real-proof-of-consensus

As it is, it's already 10 minutes blocktime vs. 3 seconds blocktime (which is why we can do social stuff on Steemit)

Here's what you can check out: www.steemd.com/@stellabelle - look at the number of pages you have and multiply it by the number of activities per page (for total lifetime transactions). We definitely do transact way more per day than anyone in other crypto networks.

(anyone reading this, please correct me if i'm wrong with the simplification)

And btw.. that's an epic pic of Dan lol.

that helps a lot. Thanks for the links. I'll digest them shortly.
What happens when/if Steem reaches like 300,000 daily transactions? I guess the 19 witnesses can handle that?
Hmmm...... I do see that STeem is much more centralized. I didn't really think about that, but it adds more cohesion and a community focus instead of a decentralized-any-stranger-can-be-a-miner Bitcoin model. I guess more witnesses would be added if the 19 were stressed?
One more thing I don't understand: what's the bandwidth limits? I noticed my account has bandwidth, does that determine how much I can transact on steem blockchain?

FYI i'm looking at http://steemstream.com graph. at the current rate the amount of TX per minute on a slow sunday (I imagine) is 50 TX per minute which is 3000 per hour which is 72000 transactions daily. I'm sure on busy days steem must have already hit the 300K marker.

For 300K tx the needs are 10.3 operations every block (3 seconds) to reach. that is not that much.

ok, thanks for this info. So the Steem blockchain has already solved the Bitcoin blockchain's scaling errors.

Every transaction needs to be uploaded (and verified by others). If the transactions exceed the bandwith it does not work anymore.

so does each user have a different bandwidth that determines what they can and cannot do on Steemit?

First you have the bandwith of your ISP. For example 10Mbit.

Im no crypto expert and definitely not for steem, but I read just a few days ago that there is a limit for steemit "transactions" based on your steam(power).
Anyway you can not do more then one transaction per block (3 seconds). You probably got the error message yourself when you tried to vote on 2 posts at once.
And I think there is a 20 second limit on posting (maybe frontend only, not steem-chain).

oh, i thought there was perhaps some other limit that i was unaware of......guess not. hmmm...if i am a minnow with nothing, are my actions limited?

Will reply this first thing when I wake up - it's 4 am now! lol

*anyone reading this please fill in if you're free :)

get some sleep! thanks for your answers, looks like i have more education to do now...

Yup as @roelandp pointed out 300k dailies are not a problem.

Hmmm...... I do see that STeem is much more centralized. I didn't really think about that, but it adds more cohesion and a community focus instead of a decentralized-any-stranger-can-be-a-miner Bitcoin model. I guess more witnesses would be added if the 19 were stressed?

Yup in a way, but I wouldn't really consider it as more centralized. Basically if powerful forces somehow manage to remove a large portion of the witnesses from ever being able to operate their nodes, the community will just vote on another set of witnesses (if they ever find out that certain transactions are being censored, witnesses not acting like the genuine witnesses etc). But this part I'm really not very sure because I still only have a rough overview of DPOS.

One more thing I don't understand: what's the bandwidth limits? I noticed my account has bandwidth, does that determine how much I can transact on steem blockchain?

This is just to rate-limit transactions, basically anti-spamming for low-SP accounts :)

good points. I think you're right about having the community vote on witnesses, etc. It's a good model as far as witnesses go.

rate-limit transactions

I have no idea what this means.

It means that user can only make certain amount of transactions per day. How many? It depends how much SP user has. More SP, more transactions allowed. This is because it makes spamming the blockchain expensive. Spammer has to buy SP to really be able to spam.

Another solution is transaction fees, like other cryptocurrencies have.

There's so much good info here btw the post itself and comments by smart people that basically...

this is one of my favorite gifs!!!!! Thanks !

LOL, it is a beaut.

there are something i never tire of.....that is one, this is another:

Wow! lol

He sounds like Kip from Napoleon Dynamite LOL

Steve Sutton is my favorite YouTuber!

this was fun to read, great blog post

glad you liked it. I remembered Dan saying that he communicated with satoshi in a forum, and it was really bugging me that i didn't remember the link or any details! i thought others would want to know about this amazing discussion!

That is some legendary stuff there, you have mentioned it the last couple days and it is really something to think about now.

exactly. i am curious how far ahead of the history curve....

It's just not the number of transactions, but also which transactions to process. In BTC, it is the miners who decide which transactions to process. They charge a fee for the processing. Steem uses a different method of Consensus. I haven't been very interested in the topic of Consensus, but you have pointed out to me that this is murky and gray area for me. So ty, and I'll become more knowledgeable.

yeah so is it true that the miners will pick the higher reward transactions before the lower ones?

Not only that, but it leads to censorship/corruption on the part of miners. You migh also want to check out another post.

I've gone back and read al lot of these discussions. It has given me a lot of confidence in Dan as I am continually impressed by what he is doing and what he is thinking about. Glad you posted this so more see how he was figuring out these problems years ago!

Yes, I think many of us don't know or have any real knowledge about this stuff.
With better knowledge, it is easier to see how much of an invention we have on our hands. Humans have a tendency to harbor grudges and rely on their lizard brains to make decisions, at least I would say that I think 80% of the population is like this. The question remains, was this built for those who make decisions based on Zipf's law, probability models and math, or is it built to attract everyone eventually?

Steemit was the first way that I ever earned any crypto. I do think Steemit or something very similar to it will bring crypto to the masses. I have been thoroughly impressed by STEEM and that it has held at its current price range. I am currently accumulating what I can!

Great comment posts by you today Richard. +1 man

@richardcrill you are correct that either SteemIt or something very similar to it will surely be adopted by the masses. Steemit was the beginning. But if I were to place my bets its the Hollywood/Streaming/OTT space that will produce a mass consumer adoption of blockchain tech. The industry is ripe for it in so many ways.

SteemIts to me is at least a $1 Billion market cap project if they can figure out some business model kinks. But Hollywood is the industry that will produce a blockchain with a higher market cap than Bitcoin. Right now there are a bunch of projects including ours placing bets with different flavors of disrupting Hollywood.

Finally I don't know much about the gambling or online gaming industry but you should check out a project called PeerPlays. It is also another avenue that could gain mass adoption of a consumer market. It is also started by an original Bitshares member. We all are. And have worked with Dan. Part of the original vision of Bitshares was to enable these different flavors of the technology to various industries. This is now being accomplished through Graphene technology. Hope this info helps.

People will go where the money is. Right now I've worked out 5 economic strategies to increase you account value. Also questions like these can be somewhat answered on steem Q&A proposal using the stackexchange. It would be nice if we could have something like that on steemit, where we could increase our reputations.

interesting article with satoshi's notes

The network nodes only accept the first version of a transaction they receive to incorporate into the block they're trying to generate. When you broadcast a transaction, if someone else broadcasts a double-spend at the same time, it's a race to propagate to the most nodes first. If one has a slight head start, it'll geometrically spread through the network faster and get most of the nodes.

The double spending exploit would be done by the same person. There's been an update to Bitcoin called replace-by-fee which means you can replace an earlier, unconfirmed transaction with one that has a higher fee. https://bitcoincore.org/en/faq/optin_rbf/

I love when you use regular person language to explain things to your Minnows @dan lol

why was this comment flagged?

Because next gen crypto is on a flagging rampage

what, seriously - thanks for that info - never knew bout it

Excellent post, @stellabelle. I love that you're diving into this highly technical stuff from a non-technical perspective. We certainly need more of that as we need more non-technical people to essentially become technical people. Keep prodding and asking great questions. :)

There's literally no one digging into technical stuff from a newbie's perspective. Newbies need a guide..........and technical people don't like or know how to explain things. I've learned that from my experience working with an inventor.

  ·  8 years ago (edited)

ok thanks. I'll read that. I think I'm ready now.

Great post, good to have you back on steemit.com.

I didn't leave, I took a Steemit vacation........cleared my head a bit, too.

@stellabelle. Steem Blockchain is different from Bitcoin Blockchain in many ways.
1- Bitcoin is to energy (electric) power and can easily lead to centralization. And who owns electric grid? This is mainly because of Bitcoin Consensus mechanism (PoW - Proof of Work - which define how the the database are updated).
2- It's take 10 min (for now) for Bitcoin to validate transactions while it's take 3 sec in Steem.
3- Bitcoin process 7 trx/s (for now) while Steem process 10 000 txs/s and can scale up to 100 000trx/s

I will share with you some educational video of Dan's explanation on how we were able of bringing performance in Bitshares 2.0 (Steem's Brother) and from there you can easily understand why Steem Blockchain is far ahead of the curve regarding performance, scalabily and viability. It can be to technical for non tehnical user.

(4 min)

Thks

yes, this is the exact answer i was hoping someone would provide. thanks for that. what a great response! thanks.

Cool post! I'd love to see you write more about crypto. In fact I'd love to see you concentrate on it.

I think you should read about DPOS to understand the difference between Steem and Bitcoin.

I think you might know enough about Bitcoin to understand if you read about DPOS. I'll link some article to read about it later.

I'm just going to say this again @stellabelle --- your constant supply of easy to read 101-type content is stellar.

We should start calling you @stellarbelle.

jeeeezzzz....thanks! I am very happy that YOU appreciate it. Every creator needs an active reminder that they are actually having an impact. Glad you care!