Bitcoin Forum
April 25, 2024, 04:36:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: What the heck is Bitcoin Core thinking?  (Read 597 times)
mxnsch (OP)
Sr. Member
****
Offline Offline

Activity: 471
Merit: 252



View Profile
January 24, 2016, 12:48:01 PM
 #1

Online here http://cpgblogger.blogspot.de/2016/01/what-heck-is-bitcoin-core-thinking.html

As a system engineer and development lead in the past i think Christopher pretty much nailed it here.

What do you guys think? Maybe a kind of Bitcoin Community Manager role would help.

Quote
Yesterday, Eric Voorhees made a post on Reddit titled "IMHO BTC price will be weak until Core demonstrates competency in social consensus.". While I don't necessarily totally agree with this, I do see his point that Core (or other people that share the view of Core) can improve their communications and help build social consensus.

This blog post will be my attempt to help explain the thinking of Core. While I'm not a Bitcoin Core developer myself, I have been following this space as a Bitcoin holder for quite a while and also have 15 years experience as a software developer and software development manager. I believe I have an understanding of what the Bitcoin Core developers are thinking and will attempt to convey that.

In my experience as a developer, very frequently a product manager will come to you and say, I want you to implement X. If X is something technical, the next question is: why do you want me to implement X? In some cases, implementing X is the right solution, but in other cases it's not the best way from a development standpoint to achieve the goal that the product manager is attempting to achieve. Throughout the years, one of the frequent statements that I make to product folks is: "Just give me the requirements, don't get into implementation details". The reason that this statement is frequently useful is because it allows the product manager to focus on what they actually want and avoid dictating how to do engineering work. Engineering work is the task of the developer, not the product manager and we are trained to do it better. It's also our obligation to explain why we intend to implement the requirements the way we intend to implement them.

I believe that the Bitcoin ecosystem is focusing too much on implementation details and not on product requirements. What users are saying is: "I want a bigger block size now!". The block size is an implementation detail, not a requirement. The requirement is actually that users want to continue to have low fees. Users are also worried that Bitcoin's throughput will not keep up with demand for transactions. These are valid requirements, but the requirement is not to increase the block size, that's the implementation detail. In addition to the requirement that transaction fees stay low, there is the other requirement that Bitcoin remain decentralized. That requirement is more important than low fees because without decentralization, Bitcoin is no real different than legacy currency systems and thus has no real value.

So, given these real requirements (low fees for an increasing user base, and decentralization) we now leave it up to the engineers to come up with the solutions to these problems. That's what the two scalability conferences last year were all about. So, the engineers got together and discussed it and the solution they came up with is multi-fold:

SegWit
Lightning Network
IBLTs and Weak Blocks
A block size increase after these things are implemented A full technical discussion of the Core roadmap can be found here.
So, lets break this down. What do each of these things do? First SegWit. SegWit is a method to separate (Segregate) out part of the Bitcoin transactions called the signature (Witness). What this does is allow us to discard some of the data (the signatures) in blocks that are only needed at the time of validation over time. The benefit of this is that we can scale Bitcoin without some of the downsides of increasing the block size. The net-net of this is that we can expect somewhere between 1.7x to 2x increase in the number of transactions to fit into blocks based on the current proposal. As mentioned in the roadmap, this change is expected to be available in April, 2016. Now, this change alone does nothing, because wallets need to upgrade their code to support this change. But, several wallets have stated that they intend to roll out this change concurrently with the release of Bitcoin core's code. There is some analysis on how much of a cost reduction will be generated by SegWit that one can view here. So, once again, when we focus on what customers want (fees to remain low), all that one needs to do is upgrade to a SegWit enabled wallet (which should be available in April) and you will get somewhere near 50% reduction in cost of transactions and we're talking about a few months out.

Next, we have Lightning Network. There is a lot of technical detail to Lightning Network, but to summarize what it does is that it allows for effectively the same level of security of the Bitcoin blockchain without actually submitting most of the transactions to the blockchain. With this method, even with the current 1mb limit on block size, lightning network could allow 50 million users to do an unlimited number of transactions for very low fees. Full detail here. As seen in the link, modest increases to the block size would multiply this number such that vast number of Bitcoin users could engage in unlimited number of transactions. One of the additional benefits of Lightning Network is that payments are irreversible instantly and we no longer have to wait for multiple confirmations once you have your coins in the Lightning Network.

Next we have IBLTs and Weak Blocks. IBLT is relatively new data structure that allows for somewhat lossy data transmission. It was initially proposed for use in the Bitcoin network by Gavin Andreesen here. The basic idea is that you can compress the data into this new data structure and reconstruct the data even in the presence of partial loss of data. This is useful in the Bitcoin network because that's exactly what we have a network where some (or all) transactions may not be propagated to all nodes. Thus an IBLT allows for blocks to be transmitted much more efficiently and potentially cuts bandwidth in half. Weak blocks are a method for allowing miners to pre-send the blocks that they are working on so that when a "strong" block is discovered, the network generally knows which strong block was won and it has propagated through the network faster. These two techniques will allow for a massive improvement in bandwidth consumption of Bitcoin and when they are ready, a hard fork to increase block size could be implemented.

So, what does all of this mean? With the combination of these changes, we are looking at a MASSIVE increase in capacity of the network over the next 1-2 years which will keep transactions cheap and maintain decentralization. As I pointed out, those are the customer requirements, NOT a block size increase. That's the implementation detail only. There are also other technologies that are not included in this summary (e.g. Schnorr signatures, possibly technologies/combinations of IBLT/Weak blocks/other tech). This vision is actually much more ambitious than even a large block increase like BIP101. Even if we were able to support much larger blocks we couldn't support all the worlds transactions. Some have argued that we could come close with BIP101 (which may not be technically feasible), but I think this view is limited to something like replacing the VISA network. While replacing the VISA network sounds ambitious, if you look at all the worlds transactions (including cash payments, stock trades, etc), the VISA network is actually relatively small. With the technologies discussed in this blog entry and the Bitcoin Core roadmap, we could see a much more ambitious goal and really replace the vast majority of all transfers of value in the world. That would make the world a better place and meet the requirements of the users.

██  ███  nope ██  ███
1714019765
Hero Member
*
Offline Offline

Posts: 1714019765

View Profile Personal Message (Offline)

Ignore
1714019765
Reply with quote  #2

1714019765
Report to moderator
Remember that Bitcoin is still beta software. Don't put all of your money into BTC!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714019765
Hero Member
*
Offline Offline

Posts: 1714019765

View Profile Personal Message (Offline)

Ignore
1714019765
Reply with quote  #2

1714019765
Report to moderator
1714019765
Hero Member
*
Offline Offline

Posts: 1714019765

View Profile Personal Message (Offline)

Ignore
1714019765
Reply with quote  #2

1714019765
Report to moderator
MicroGuy
Legendary
*
Offline Offline

Activity: 2506
Merit: 1030


Twitter @realmicroguy


View Profile WWW
January 24, 2016, 01:31:21 PM
 #2

I think for now core should increase blocksize to 2MB and put all experimental implementations on back burner.
Bitcoinpro
Legendary
*
Offline Offline

Activity: 1344
Merit: 1000



View Profile
January 24, 2016, 01:40:57 PM
 #3

I think bankers should get used to high fees when laundering their drug money into bitcoin

WWW.FACEBOOK.COM

CRYPTOCURRENCY CENTRAL BANK

LTC: LP7bcFENVL9vdmUVea1M6FMyjSmUfsMVYf
shawnhcorey
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
January 24, 2016, 02:02:42 PM
 #4

The question is: When will Bitcoin increase its block size? In the original proposal for Bitcoin, Satoshi Nakamoto did mention that the block size should increase but he did not suggest a timetable. This has divide the community into two camps. Those who think Bitcoin is a monopoly and its users can be squeezed for higher transactions fees. And those who think Bitcoin should keep its popularity. In the long run, it won't matter since Bitcoin has planned obsolescence and will lose it popularity no matter what.
randy8777
Legendary
*
Offline Offline

Activity: 896
Merit: 1000


View Profile
January 24, 2016, 02:12:28 PM
 #5

The question is: When will Bitcoin increase its block size? In the original proposal for Bitcoin, Satoshi Nakamoto did mention that the block size should increase but he did not suggest a timetable. This has divide the community into two camps. Those who think Bitcoin is a monopoly and its users can be squeezed for higher transactions fees. And those who think Bitcoin should keep its popularity. In the long run, it won't matter since Bitcoin has planned obsolescence and will lose it popularity no matter what.

it can happen at any time i think. it can take a few months at best, or even longer than a year at worst. i also want to see them hurry with increasing the block size to 2 mb, but i don't want the core devs to make mistakes when they are rushing to please the community. i prefer it to take a little longer and that all goes according to plan instead of a failing fork that may cause severe damage to bitcoin.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
January 24, 2016, 02:24:22 PM
 #6

I think for now core should increase blocksize to 2MB and put all experimental implementations on back burner.

I think the OP is correct in stating that block size is not a "requirement" but just an implementation detail (so why we have a whole lot of people who are not even software engineers arguing about implementation details is strange unless those people are actually shills).

Also - Bitcoin itself is still "experimental" so increasing block size is not without potential problems as well (such as nodes not being able to actually verify all the signatures in ten minutes).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Bitcoinpro
Legendary
*
Offline Offline

Activity: 1344
Merit: 1000



View Profile
January 24, 2016, 02:25:17 PM
 #7

The question is: When will Bitcoin increase its block size? In the original proposal for Bitcoin, Satoshi Nakamoto did mention that the block size should increase but he did not suggest a timetable. This has divide the community into two camps. Those who think Bitcoin is a monopoly and its users can be squeezed for higher transactions fees. And those who think Bitcoin should keep its popularity. In the long run, it won't matter since Bitcoin has planned obsolescence and will lose it popularity no matter what.

it has the record amount of venture capital for anything in history

sit back and watch the fireworks

WWW.FACEBOOK.COM

CRYPTOCURRENCY CENTRAL BANK

LTC: LP7bcFENVL9vdmUVea1M6FMyjSmUfsMVYf
watashi-kokoto
Sr. Member
****
Offline Offline

Activity: 682
Merit: 268



View Profile
January 24, 2016, 02:28:33 PM
 #8

Evil Evil Core. How dare they develop Bitcoin for 7 years now, without a banker's permission.
mxnsch (OP)
Sr. Member
****
Offline Offline

Activity: 471
Merit: 252



View Profile
January 24, 2016, 03:14:46 PM
 #9

Evil Evil Core. How dare they develop Bitcoin for 7 years now, without a banker's permission.
Haha, gotta love conspiracy stuff ;-)

For me the key takeaway (from this blog at least) is - communication is key and instead brainlessly screaming for bigger blocks and feeding the trolls / media / banks, core and the community should focus on making clear that THERE IS DISCUSSION AND CHANGES WILL HAPPEN.

I would really hate to see a bank tv spot advertising their advanced, more effective and secure proprietary blockchain. What we currently see is exactly the same discussion (and finger pointing) almost every major open source project went through before.

██  ███  nope ██  ███
bargainbin
Full Member
***
Offline Offline

Activity: 126
Merit: 100



View Profile
January 24, 2016, 03:25:34 PM
 #10

Evil Evil Core. How dare they develop Bitcoin for 7 years now, without a banker's permission.
Pretty broad interpretation of both "core" and "develop."
Wouldn't you rather say "remnants of core who didn't rage-quit" and "did fuck-all for 7 fricking years"?
shawnhcorey
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
January 24, 2016, 03:37:10 PM
 #11

Evil Evil Core. How dare they develop Bitcoin for 7 years now, without a banker's permission.
Haha, gotta love conspiracy stuff ;-)

For me the key takeaway (from this blog at least) is - communication is key and instead brainlessly screaming for bigger blocks and feeding the trolls / media / banks, core and the community should focus on making clear that THERE IS DISCUSSION AND CHANGES WILL HAPPEN.

I would really hate to see a bank tv spot advertising their advanced, more effective and secure proprietary blockchain. What we currently see is exactly the same discussion (and finger pointing) almost every major open source project went through before.

Proprietary blockchain is an oxymoron. A blockchain is distributed or it's not a blockchain.
Blind Legs Parker
Hero Member
*****
Offline Offline

Activity: 2002
Merit: 721



View Profile
January 24, 2016, 03:43:51 PM
 #12

Quote from: Christopher Gilliard
I believe that the Bitcoin ecosystem is focusing too much on implementation details and not on product requirements. What users are saying is: "I want a bigger block size now!". The block size is an implementation detail, not a requirement.
I thought so, too. I'm always a bit amazed by the number of people asking for bigger blocks though it always felt like an implementation detail to me. Do all of them really understand what it means?
Well yeah, as said in the article, user requirements are basically low fees and decentralization. I personally value decentralization more, though. But if we can get both it's even better.
I have one more requirement though, and it's by far the most important: don't fuck the whole shit up please  Grin. No, because, I mean, all this forking stuff there, it sounds dangerous when people tell me about it.

Vous pouvez maintenant refermer ce topic et reprendre une activité normale. À ciao bonsoir.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!