Reasons to keep Bitcoin Core as the main Bitcoin software

19 replies 283 views
t0ny.vectorSenior Member
Posts: 110 · Reputation: 814
#1Jul 25, 2019, 03:41 AM
Bitcoin’s foundation is all about decentralization, immutability, and security, and right now, these traits depend heavily on Bitcoin Core. As Bitcoin grows, some folks ask: Should Bitcoin Core continue to be the go-to software? I took a shot at outlining the pros and cons of sticking with Bitcoin Core and also touched on some challenges that come into play. Kept my thoughts brief and to the point. With the whole OP_RETURN situation and other drama, Bitcoin Core is facing a lot of negativity, which I think is pretty harmful. More positive discussions would really help counter that, so hopefully I didn’t mess this up too badly. 1. Security Security is one of Bitcoin’s top features, and Bitcoin Core is regularly reviewed by a bunch of contributors, engineers, auditors, and others. Over the years, its code has been thoroughly examined by loads of people from all over the world we can’t even know the exact number. Thanks to its diligent review process for code updates and releases, it has become the most secure version of Bitcoin. Other implementations might have their own strengths and weaknesses, but they just can’t match the security or the extensive field-testing of Bitcoin Core. The software is pretty reliable, especially when it comes to handling tricky situations like mempool pressures and reorganizations. Keeping Bitcoin Core for security reasons is a very strong move.
3 Reply Quote Share
hodler_b34rFull Member
Posts: 121 · Reputation: 453
#2Jul 25, 2019, 08:31 AM
Bitcoin project is a decentralized one that opens space of developments, contributions from everyone. Bitcoin blockchain is decentralized and Bitcoin community are decentralized too so Bitcoin Core is only one of many choices. Whether Bitcoin Core remains its leading role in this industry will depend on itself, and it's not right to say we should keep using Bitcoin Core just because of its wallet software name. Its quality since its beginning till now is importand decisive reason why most Bitcoin users are prefer Bitcoin Core if they manage to use it, but it is not like a forever shield for Bitcoin Core. If it is like this, it will restrict developments and growths of other Bitcoin wallet softwares, that is not good for Bitcoin community.
6 Reply Quote Share
LuckyCoinLegendary
Posts: 832 · Reputation: 4795
#3Jul 25, 2019, 10:41 AM
There is simply no other reference client with the same degree of maintenance and code review. In fact, it is quite telling that the only two types of nodes people are running are Core and Knots (which is just Core with a few patches on top of it). There has never truly been a popular reference client with a different architecture.
1 Reply Quote Share
HumbleC01nFull Member
Posts: 41 · Reputation: 360
#4Jul 25, 2019, 11:10 AM
Nice thread!! Although, I think  for bitcoin core to become a dominant implementation is not the goal here, the goal should be to work with the implementation that protects Bitcoin's properties the most and Bitcoin core is no doubt the best at this. To add to what you have said so far, I will say core's security is not only about review and time, I think its predictability has also played a major role (i.e We all know how it can behave under stress, how it handles mempool related pressures, reorg, etc). This operational knowledge is largely underrated IMO. Come to think of it, even if a technically neater version is introduced it will be risky because node operators, miners and users may not understand its failure modes yet. May I add that multiple implementation do not automatically result to a split rather, it is when there are inconsistencies in the interpretation of consensus rules that results to split. Theoretically speaking, we could have multiple implementations so long as they are bit to bit compatible on behaviour, not so? However, this may be different in reality if we consider historical quirks, soft-fork edge cases that are present in the consensus rules and replicating this is extremely difficult. Let's make this clear, One of the reason bitcoin is surviving is because of its boring nature.
3 Reply Quote Share
t0ny.vectorSenior Member
Posts: 110 · Reputation: 814
#5Jul 26, 2019, 02:04 AM
That is true and I tried to say it in some points. If someone wanted to replicate that with intent it would be very hard, cost a lot and it may not even get close to what Core is. Bitcoin Core is very important to Bitcoin! Thank you. You are right about the goal, maybe we could say that same thing just differently. Bitcoin Core became the dominant implementation because it protects Bitcoin's properties the most! Maybe I should have been more explicit or extended that point, but I mention that no other implementation has the same level of security or time that they have been field-tested. Some people may see time too simply and assume if 2 implementations have been released 10 years ago that they have the same amount of time in field-testing, but I don't agree that it works this way. What has been more time tested an implementation ran by 1000 users over 5 years or an implementation ran by 10 users over 10 years? I think these things should be cumulative otherwise they don't show the full store. You may, but that is not what I have said here. I said that there would be a much bigger risk, this does not mean that it would automatically happen. Strictly speaking, even having 2 different versions of the same implementation increases the risk of a split. This is why Bitcoin Core works so hard to ensure backwards compatibility with changes that are more risky, rolling them out gradually and other stuff that they do for that. So if you have different implementations each with its own different versions running on the network, then the risk of a split here in huge compared to the case when you have 1 implementation of a few versions or even bigger when we talk about only 1 implementation and 1 version. I will elaborate it a bit more in the points.
8 Reply Quote Share
chris.altHero Member
Posts: 458 · Reputation: 2287
#6Jul 27, 2019, 03:58 AM
Excellent thread, I agree with most points. But I draw a slightly different conclusion. For me, Core is the best implementation right now, and I would not want a majority to switch to another one, because all other implementations are very much amateurish projects. Even if implementations like Knots are based on Core, they may add significant other features, and they also don't necessarily follow the same protocol history. What if for example the Knots devs lose a lot of devpower due to some personal incident, and Core just has decided to implement a major upgrade like Taproot which would require all other implementations to follow as fast as possible? They may stay behind, or worse: implement the changes without proper testing. The power imbalance point is for me also very important. If we're thinking about 2017, there was always the looming danger of an implementation managed by miners or major economic players. Core is sponsored by some companies (mainly Blockstream afaik) but in general has a quite transparent decision making process, and if there was any corruption it would be very easy to detect. (And no, the probability that the OP_RETURN limit was lifted due to corruption is extremely low.) But if there was an alternative implementation sponsored by BlackRock and miners, with massive funds to flood social media with propaganda if necessary, that one could get more power I'd be comfortable with. I think also the argument of development efficiency is important. A single main implementation with some "satellite forks" which do not change that much or are more aimed at home users instead of miners and big cold wallet operators, needs much less total dev work than a group of several major implementations which are also aimed at miners and big wallets and thus need extreme security measures. Anyway, where I slightly disagree is that I think that maybe the current model is not 100% ideal. And that in the future, a slightly more open model with more competing implementations could be advantageous. In the current model, Core does not only provide a "core implementation", like a "kernel" of the Bitcoin ecosystem, but also a full-fledged client with a massive feature set. And "protocol" and "client" are not separated. This means that most alternative implementations (those based in some way on Bitcoin Core but doing some things differently) must fork the whole code and then carefully select which parts to keep and which not, which can be quite of a time consuming task. Everybody who wants for example add a change which would greatly increase usability must do that process. For example, if someone wants to provide a client with ZeroSync- (a fast sync technology) or Utreexo- (a system to improve utxo set management, alredy BIPped for Core) functionality, or a client which can work as a full node or a light client but with the same config file, etc. In my opinion the ideal would be a kind of "microkernel" architecture. Where Core maintains the very much "Core of the Core" as a separate project, with the most important protocol values (21 million limit, 4 MB max weight, ...), the main messaging functionality etc. in a library, and all the user interface and auxiliary features in another project. That would retain the security advantage that the main protocol is maintained by a single team, but would open the less important features to more teams which could implement them in their own ways -- let the best interface win! This also includes policy decisions (OP_RETURN limit ), for example. And yes, some may try to attack the "microkernel" approach with the argument: "If all clients used the microkernel and were thus as safe as Core, but all have a different policy, then that would lead either to chaos in block propagation or to some "popular but shallowly justified" - e.g. "anti spam" policy - opinion to win!". I think while I don't really agree that this has to happen, this is a valid argument and in the case we move into that direction it should be taken into account. An idea to try to "unify" policy could be a discussion space similar to BIPs but for policy. That's my two cents ... was much longer than I thought but maybe somebody likes to read it
1 Reply Quote Share
matrix365Senior Member
Posts: 184 · Reputation: 1104
#7Jul 27, 2019, 04:39 AM
Bitcoin is a decentralized project with White paper stored decentralized on many sites. There is no official website for Bitcoin project. There is no only centralized Bitcoin wallet software for Bitcoin users. As a decentralized project, for its good developments, there are necessary to have different Bitcoin wallet softwares including ones that can be used for running Bitcoin full nodes. Bitcoin Knots have problems and I don't attack Bitcoin Knot or Luke Dashjr but let's see It's Knot a serious project. Bitcoin developer @lukedashjr's wallet was hacked. Luke seems to be careless and his moderator role in the forum was revoked after that hack too.
0 Reply Quote Share
hash_bossLegendary
Posts: 1166 · Reputation: 5261
#8Jul 27, 2019, 10:02 AM
FWIW, there are few other Bitcoin full node implementation. Jameson Lopp even regularly made sync benchmark[1] and i've tried 2 other implemtation[2-3]. But aside from being far less popular, my personal experience all others are less user friendly. [1] https://blog.lopp.net/2025-bitcoin-node-performance-tests/ [2] https://bitcointalk.org/index.php?topic=5407675.0 [3] https://bitcointalk.org/index.php?topic=5417193.0
5 Reply Quote Share
t0ny.vectorSenior Member
Posts: 110 · Reputation: 814
#9Jul 27, 2019, 12:42 PM
Maybe I can adjust the conclusion, sometimes not everyone is so good with describing things with details. Clearly there are cases and more optimal setups, but this is the best that we have right now. If I remember correctly, was there not some kind of work in order to separate this? I would also welcome this. For people that just want to run a node it does not need any of the client code. I think there are also security benefits that can be harnessed there and the overall thing would require less resources, even if it does not use significantly more if the client is not actively doing things I guess. This is what I was talking about above, was not something like this attempted and called Libbitcoin Consensus or was it the libbitcoinkernel or something like that? I don't know what is the state with that, this is one of the things that I do not like about the state of how things are set up. One must really read a lot of information or very long posts on dev mailing lists to find sometimes very specific information that is important. I remember this project being more active in the past and then it became a bit more quiet so I don't know what is going on with it. I found this wiki page while looking for it again https://en.bitcoin.it/wiki/Libbitcoin_Consensus. I don't think that anyone could argue against this aside from the development costs to get it going and to keep it maintained. It would be a welcome addition to Bitcoin Core and it would make forking much easier as you have said. Thank you, I was aware of some of them already. In this case the part you quoted is referring to a simpler solution of refusing to update Bitcoin Core to a version that includes things that are undesirable. Alternative clients help but they require their own evaluation and scrutiny, so this alternative is always good to have even if it is a bit more costly as a solution. The problem besides a lack of user friendliness is also relevance. It would probably be best if Bitcoin Core retains its lead with some implementations being viable alternatives at some real percentages each.
4 Reply Quote Share
chris.altHero Member
Posts: 458 · Reputation: 2287
#10Jul 27, 2019, 06:11 PM
Thanks, interesting! So the bases for the approach are already there (well ... were already there, if the project was more active in the past). It seems however that Bitcoin Core is currently not working directly with this library project. They're continuing to develop the full Core client in a single repository, instead of providing libbitcoin-* in a repo and the interface etc. in other repos. But as libbitcoin seems to be very close to Core it should not have that much development overhead. PS: I just saw at delvingbitcoin that there is a discussion to make Core more modular and even perhaps abandoning its GUI: https://delvingbitcoin.org/t/the-future-of-the-bitcoin-core-gui/2253 It's possible that the microkernel/library approach would mean some more development effort to cleanly separate both projects. And workflows etc. would have to be changed. But otherwise a few separate repos may become even easier to maintain as a single giant repo. Regarding the "BIPs for policy" I think this would not really mean much development work (I don't know if you meant that). Perhaps delvingbitcoin could add a policy subforum as a first step
4 Reply Quote Share
hash_bossLegendary
Posts: 1166 · Reputation: 5261
#11Jul 27, 2019, 09:03 PM
Based on client of full node[1-2], 99% run either Bitcoin Core or Bitcoin Knots. So other implementation have no relevance if we use that metric. But looking at Lopp blog, at least gocoin, btcd and libbitcoin have been around for long time and still actively updated. It's not surprising, when Bitcoin Core GUI have separate repository since few years ago[3]. But i don't expect GUI will be abandoned, since Bitcoin Core wallet migrated to SQLite/descriptor some time ago and i expect many people use GUI to interact with their wallet. [1] https://coin.dance/nodes [2] https://luke.dashjr.org/programs/bitcoin/files/charts/software.html [3] https://github.com/bitcoin-core/gui
2 Reply Quote Share
defi_whaleFull Member
Posts: 140 · Reputation: 461
#12Jul 28, 2019, 12:42 AM
No need discouraging or resisting possible replacements or stronger alternatives, a software that stick more to Bitcoin core values can easily replace "Core" since Bitcoin is permissionless, decentralized, and the values are more community-centered than individualistic. This doesn't equates to communism vs capitalism debate since both ideologies are actually restrictive. Just go take a look at capitalist software/application and tell me how that is worth importing into this space or isn't antifreedom, while the communist ones, although rare to find, are expected to be under direct government control and as well restrictive. So, an informed community would naturally align with someone/thing that protect their interest or does not sideline them. It's important to understand that fiat system mentality won't work on this space as both are incompatible. Community has to be truly carried along, their interest protected. But if you think this could slow things down then just stick to the Bitcoin values/principles and there will be almost no legitimate opposition from the community
4 Reply Quote Share
t0ny.vectorSenior Member
Posts: 110 · Reputation: 814
#13Jul 28, 2019, 04:30 AM
I tried to do some more research about this topic and here is what I have found, I realized that I was actually confused. Libbitcoin Consensus is quite old but it seems the last release was in 2023, separate from Core and it was abandoned https://github.com/libbitcoin/libbitcoin-system. I wanted to refer to libbitcoinkernel which is a completely different thing, here it is https://github.com/bitcoin/bitcoin/issues/24303. Sometimes the changes that Bitcoin Core does and the lack of communication that reaches users makes things a bit hard, but it may not be their fault because a lot of the communications these days about not so important things and some important information is lost. Following comments and links I have found this project to be here. Current pull request: https://github.com/bitcoin/bitcoin/issues/27587 Project tracking page: https://github.com/orgs/bitcoin/projects/3 So it does seem that this is still active, I am glad about that. What are your thoughts on this one? I see it as very important and it has been in development for a really long time, I do not know if there is even an estimate to completion. I am not sure whether I welcome that because I know that many people use this wallet and like it, even if the GUI maybe lacks on some features? I don't know which they are referring to specifically right now, but I never had big issues with that. Occasionally I'd go with Electrum for things that I needed and that it didn't have. I think this would make Bitcoin Core unusable for many users, some things are tricky when done manually like making transactions with commands because it can easily lead to money loss. Some users won't be able to use that at all, they just don't have the skills. What do you think? It is good that they have been around for a long time and actively updated because that makes them probably viable candidates in case there is ever a need for an alternative in such a situation. I do hope that we do not have that issue though. The use of the word easy here is very misplaced as it makes your post very untrue. Time has proven that even building a software that is comparable to Bitcoin Core is very hard and it did not happen. Worse it would be to build one that is much better than Bitcoin Core, that is definitely harder. Also even if it were, many people would resist to change for various reasons unless they really had to say if Bitcoin Core was compromised. So it is definitely not true that it can easily be replaced, it is very hard when all is considered.
5 Reply Quote Share
Posts: 11 · Reputation: 134
#14Jul 28, 2019, 05:09 AM
Here is why core should be deprecated and thrown in the garbage: - Core lost the plot. They don't think there is anything such as spam. Instead they refer to spam as "user cases we have today" and they are getting bussy blowing up spam filters after doing nothing about spam for 5 years. - The nodes exist to regulate users and miners and enforce the rules of the network. But when miners misbehave and start filling their bllocks with spam, core decides it's a good idea to align mempool policy with what miners want to mine. That is like saying we should adjust the posted speed limit with the speed people are driving at. - Core, for the most part, does not allow their nodes to decide on their own what they can filter and relay. Core has a centralized mempool policy they impose on all their nodes. - It's clear code does not intend to protect Bitcoin as money. They have been compromised as the following link clearly shows: https://bitcoinknotsforum.com/showthread.php?tid=2
6 Reply Quote Share
lonewhaleSenior Member
Posts: 328 · Reputation: 1624
#15Jul 30, 2019, 03:58 PM
There is data war that begins since new update will raise data space on some of deals and so critics such as Nick Szabo have warned that this would lead to blockchain clutter and help large groups at cost of normal people. I think that only way is to stick to rules such as sharing power and keeping it simple to prevent pushback as too many features are added to make whole company more profitable and developers start to act like central bank. Although I agree with you that capitalism and communism are both the systems that can be limiting, fact that Bitcoin is free to see code with bold way does not need people to trust anyone but instead allows them to pick software that can better protect their needs. So you are correct that an informed community has power to pick what values will last by choosing what software will be run on their own computers.
0 Reply Quote Share
Posts: 11 · Reputation: 134
#16Jul 30, 2019, 06:22 PM
What gets me is that you are all cheering for a single entity - core - to maintain the code. Even after they have repeatedly disgraced themselves and often.lied to Bitcoiners. And you can't tolerate any completion at all. As soon as the nodes start leaving code, you all freak out with your hair on fire. The nodes have been asking for code to do something about spam for the last 5 years since the spam attack starrted. It only keeps getting worst and all code could repeat again and again is "We can't do anything, and even if we could, we shouldn't." Than core did the unthinkable and actually blew open a spam filter. And all the excuses for doing it were ridiculous and lazy. Core has been marked as deprecated.
2 Reply Quote Share
t0ny.vectorSenior Member
Posts: 110 · Reputation: 814
#17Jul 30, 2019, 07:31 PM
From what I see it seems that Bitcoin Core is by far the most favorable pick, and you can say that they have lost the plot or whatever but that does not impact reality. Most users and other network participants are in agreement with Core. You can adjust the mempool policy yourself, that is what it means to be open source. Other clients can have different policies as long as they adhere to the consensus rules. This link only shows that my family is bigger than the whole Knots community.   This was hysteria and misinformation, so this claim is not true. I think there was some post by d5000 somewhere that has data since the latest Core update. There has been no notable increase in the OP_RETURN or other data storage that some may call spam. Very few nodes have cross over to the competitors, the percentage is not important as it is not significant enough to do anything about any of this. You can fork to your own shitcoin if you want and become the next Bitcoin Jesus cult if you want. It has been tried before by 2 big names, but you can try again with Knots and Luke. After this answer I consider this diversion of the topic to be closed. Please do not make any more off topic posts about your rants and promoting Bitcoin Knots.
5 Reply Quote Share
Posts: 11 · Reputation: 134
#18Jul 30, 2019, 11:40 PM
You are sadly mistaken. Over half of the network has not upgraded to anything and still running an old out of date client. And almost 25% of the nodes switched to Knots or BIP110. Only around 19% of the nodes have updated to core 30. And it's suspected that many of them were actually auto-updated in Casa. So clearly, core spamware is loosing popularity. At first, core attempted to completely remove the filter, without user configurability.And after some community pressure, they decided to allow user configurability and mark it as deprecated. That caused too much push back, so they removed the deprecated label. In any case, you can change the default if you know how to navigate and edit .config files. Most uses don't know how to do that. And don'5 count on core offering an easy tab with a slider to configure it easily. Defaults matter, defaults tell you core is trying to promote spam. More nodes have switched to Knots than nodes have updated to core 30. And it's a soft fork, not a hard fork. There won't be two separate coins.
3 Reply Quote Share
im_guruMember
Posts: 3 · Reputation: 131
#19Jul 31, 2019, 03:22 AM
😊 Bitcoin Core's the OG implementation, battle-tested and widely adopted 🔒 Maintains network stability and security 💪 What's your thought?
5 Reply Quote Share
chris.altHero Member
Posts: 458 · Reputation: 2287
#20Jul 31, 2019, 03:51 AM
That really looks good and is exactly what I was wishing I think it has active support from Core devs and thus has some chance to materialize. It seems however still WIP and I either haven't found an ETA. It's interesting that some Core devs, like the new maintainer "sedited" (aka TheCharlatan), think that this could even be a step towards "solving" disagreements over policy decisions like the "spam" debate. Maybe even PepeLapiu approves it See https://blockspace.media/insight/a-conversation-with-bitcoin-cores-newest-maintainer/ I think there should be definitely some GUI for Core, but the idea as far as I remember was to leave the GUI issue to third-party devs. On the other hand, the Core GUI is well known and maybe if third party devs change it too much it could force people to change workflows. It's however very likely someone would continue to maintain the traditional GUI.
0 Reply Quote Share

Related topics