I see a lot of resentment here for this software. But it’s perfectly possible to make your own implementation of the bitcoin protocol.
Like Luke, who made Knots. And other versions exist too.
The real pain comes from the choices in the past to keep bitcoin inclusive. Smaller blocks mean the ability to download and verify on simple cheap hardware.
Have a look at ETH, SOL or EOS. What kind of server park do you need to run those chains?
The only resentment I have with Bitcoin and any other crypto is that they try to be "decentralized", but the moment the developers of your main node/wallet app are under a payroll, funded by a business, crypto is no longer decentralized.
Bitcoin Core, long ago, was "purchased" by Blockstream and they started pushing their own agenda for the protocol, and Luke Jr is one of the devs on their payroll.
Yes, of course, you can create your own wallet or node but unless 51% of the network uses it, your protocol changes will never reach the whole network.
It's blatantly false that "Bitcoin Core was purchased by Blockstream".
It's absolutely not the case. It's more like a conspiracy theory that keeps getting pushed into Bitcoin-related threads at Hacker news (maybe to tilt future analysis?)
When you say "long ago", it likely points to the "Bitcoin Cash" incident. Almost every person that knows of Bitcoin Cash thinks that Bitcoin is a scam; almost everyone else laughs at the idea of Bitcoin Cash working.
It’s actually pretty easy to run Ethereum nodes. Also, statelessness and verkle trees will enable Ethereum to be validated on cell phones eventually. That’s not going to happen with Bitcoin.
Also, funny to see Bitcoiners talk about running censoring client implementations for Ordinals.
Stop spreading FUD about Ethereum (SOL and EOS, valid).
Ethereum shares the same philosophy of ensuring that clients are capable of being used on lower end hardware to ensure diversity of nodes.
Ethereum nodes can and are being run on Raspberry PI's + SSD drives.
You can even validate the Ethereum network on a Raspberry PI.
In Ethereum you "validate" instead of "mine" like in bitcoin, this is what keeps the network secure and validating is much more power efficient (99.995% less power use than Bitcoin for). See Proof of Stake vs Proof of Work.
My question to you is: Look at BTC. What kind of specialized, expensive, environmentally unfriendly, ASICS do you need to secure the chain?
Ethereum's clients (execution and consensus) are only really concerned about a sufficiently fast SSD, more specifically in terms of random IO. Any mid-tier SSD should work though: stick it to a Raspberry Pi (or a Rock 5B) and you'll be validating on a low-power arm board. Or grab a used micro-PC/NUC, as most people running home nodes do.
I have read the whitepaper and followed discussions about the protocol for quite some time, but never looked into the actual software landscape.
Bitcoin Core is a "Node", right? A software you run if you want to have the whole history of all Bitcoin transactions of your own hard drive? Therefore I would think it is only used by researchers and analysts?
Your node (or the node you choose to connect to) defines what is bitcoin, according to you.
Everyone gets a vote on what bitcoin is, but the definition of bitcoin that you vote for is that defined by the code running on the node you choose to connect to the network through.
Running your own node let's you speak for yourself. If you connect to someone else's node you're effectively saying "I vote for whatever they're voting for".
The two parties calling toilet roll "bitcoin", are not actually using the bitcoin network. They're using the "toilet roll" network and simply calling it bitcoin.
Their transaction would not appear on my node, or the vast majority of any other bitcoin nodes and therefore it's not bitcoin by consensus.
If you don't run your own node, you're trusting that the node you're connecting to isn't actually running the "toilet roll" network and you didn't just sell your car for a 6 pack of Andrex. With Bitcoin you never have to trust - you are always able to (and encouraged to) verify, and this is what running your own node allows: verification, with no trust required.
The way I understand it: If another person's node connects to your node, your node can stop relaying certain blocks to them. And if everybody stops relaying those blocks to them, then those blocks will not reach them. So in a way, your node can do something a bit similar to "voting" in this situation.
But does a node on a lonely notebook have any real world impact? Do actors who accept Bitcoin payments connect to random nodes?
If so, what prevents someone from running one million nodes on a single laptop and "encircle" such an actor? There is no proof of work involved in running a node, right? So what gives a node any meaning or voting rights?
If someone some how manages to encircle your node with a million of their own (i.e. your node is only connected to theirs) then what are they going to do? If they try to filter blocks or tamper with blocks then your node will detect that and disconnect from them. Ultimately, your node is hard coded with a list of IP addresses, so that if all else fails when trying to obtain good connections with other node (DNS etc) then it can connect to those.
Regarding the impact of a single node on the network, that node is a way that _you_ can vote on what bitcoin is. You could equally shut it down and vote by connecting through someone else's node, but then you'd be trusting that their node defines bitcoin the way you want to.
In other words, the people decide what bitcoin is, not individual nodes, but the nodes that people connect through define what they are voting for. If you want to be _sure_ that your vote isn't being misdirected, that what the node is reporting as bitcoin really is bitcoin then connect to the network through your own node.
If Blockstream wants to change the protocol in a way that Coinbase, Binance, Trezor, Electrum, Metamask, the miners, El Salvador, Grayscale and Microstrategy don't like, they will probably have a hard time pushing it through.
>Therefore I would think it is only used by researchers and analysts?
The idea is that every single user, even Grandma buying groceries, has a full copy of the Blockchain to buy her groceries. So no, it is supposed to be used by everyone. This is the reason why the block size is kept small. If it grows too big it is no longer decentralised.
How is the block size relevant for that? Grandma won't carry around half a terabyte of block chain, and it doesn't help that the blocks are tiny at all.
If the block size was made substantially bigger, you'd begin to need very expensive equipment to be able to verify transactions yourself. Grandma is probably able to trust her grandchildren's nodes, but with bigger blocks her grandchildren wouldn't be able to afford a node and would have to trust someone else (who is rich) and the definition of the network would become more and more centralised amongst the richest as the size of the block chain grew exponentially faster than the £/HW is reducing.
Once you've verified the half TB tx history, you can stop carrying it around and just keep the much smaller and fully verified UTXO set of spendable coins, which is all you need to verify future blocks.
I have read that before, that nodes are a force in keeping the Bitcoin ecosystem stick to the rules. But I never understood it.
What does running a node on your laptop achieve? If two parties out there agree to call some roll of toilet paper a "Bitcoin", how will your laptop stop them from doing so? One of the two will hand the other one the roll, the other one will say "Thanks for the Bitcoin" and thats it, right? Why would they send TCP/IP packets to your laptop and ask for permission?
It is only when receiving money you can affect the validity of that payment, you can refuse to send them the alpaca socks they "paid" for using invalid address outputs.
You can call an avocado a Dollar, and someone might accept exchanging it for an actual dollar, but try to walk into a shop and pay for your beer with that. That’s what consensus is for.
You want to be mining at the tip of the blockchain, otherwise you risk losing the block you're mining as others will not include its digest in their header (and not base the blockchain through your block. it'd be just a leaf in the chain). So you need at least to be aware of the latest blocks. I believe this is achievable with client only. You'd get the block reward, but not the fees.
If you want the fees, you need to be aware of potential transactions; and also verify that these are valid (at pain of seeing your block be seen as invalid). So you need to receive that information.
Also if you want to publish a block you found, you need to not only listen to information but also publish it to others as well. So yeah, you kind of need to run an up-to-date full node to get both reward and fee.
Now, this does not mean that your miners need to be full nodes. These only need the block to be mined (digest of previous block, header, transactions, your public address to giver the reward to) and then they can vary the nonce at the end to start mining. But this block information has to be up quite to date, otherwise you're mining aimlessly. I've read that while switching to a new block, miner setups send block data empty of transactions to be mined: so as not to waste the few tenths of seconds it takes to upload new block data to miners.
So you can run an operation with a single central full node that sends blocks to individual miner devices.
The Bitcoin Core GitHub repo was long ago hijacked by the for profit company, Blockstream. Every update made since their takeover has hurt the core principal of Bitcoin, which is to be peer to peer digital cash, a replacement for Visa-like daily payments.
The main bitcoin network at least. Bitcoin can still be used as digital cash (and one that holds it's value better than any other), but transferred on a different network e.g. lightning
Does your recent bankruptcy as a result of a multimillion dollar court judgement against you make you feel emboldened to make maliciously false ( https://news.ycombinator.com/item?id=38549409 ) claims on hacker news?
Do your bankruptcy creditors know about your 'investments' in Bitcoin competitors that you're promoting here?
Anyone know what is (or isn’t) being done to secure Bitcoin against quantum attacks? Last I heard it was still “quantum isn’t a problem yet” but I have reasons to believe that even at that time the assertion was untrue.
> Anyone know what is being done to secure Bitcoin against quantum attacks?
Do you mean that anyone will be concerned with bitcoin saftey after our banking system collapses along with other https dependent traffic (as its no longer http'S' ?
Just going to drop in here that we need to be working on these solutions faster than is commonly known. The SOTA in breaking large swaths of our security infrastructure, including SHA, is much farther along in certain rarified environments than is commonly understood.
This is a maliciously false and baseless lie. Were it true, you could simply link to an example of it in the repository.
I've read all the changes to the project for essentially its entire life and there is nothing like that nor would anything like that be accepted by many users or the ordinary review process.
Are you referring to the, Blockstream hijacking of the GitHub repo?
It was one of the oddest stories in Bitcoin history how a for profit company led by Greg Maxwell and Adam Back wrestled the keys away from the one legitimate contributor Gavin Andresen, then put every remaining coder on the payroll.
As you say, Bitcoin Core is Not open source in the normal meaning.
This claim is maliciously false and from prior comments I see that you know it. Particularly since it names me by name I must insist that you withdraw it.
I mean legal obfuscation, that’s why so many commits are made in an application of a little bit functions so that no one can figure it out how it works. I've worked with a lot major forks of Bitcoin Core since 2010, DASH, PIVX, Komodo, etc. All of them using obfuscation techniques. The same technology is used by many corporations for "open source" JS, for example. I was downvoted by BTC owner bots for my experience, which means I'm right. Not many people in the world know how the BTC works.
How do you expect them to do that? Also I highly suspect a large portion of people on Github are aware that Bitcoin and other crytpo projects use a lot of energy.
even better idea, github should charge repos that have huge environment impact shit load of money, and subsidize those who are good(and probably vote for the right people)
Like Luke, who made Knots. And other versions exist too.
The real pain comes from the choices in the past to keep bitcoin inclusive. Smaller blocks mean the ability to download and verify on simple cheap hardware.
Have a look at ETH, SOL or EOS. What kind of server park do you need to run those chains?
Bitcoin Core, long ago, was "purchased" by Blockstream and they started pushing their own agenda for the protocol, and Luke Jr is one of the devs on their payroll.
Yes, of course, you can create your own wallet or node but unless 51% of the network uses it, your protocol changes will never reach the whole network.
It's absolutely not the case. It's more like a conspiracy theory that keeps getting pushed into Bitcoin-related threads at Hacker news (maybe to tilt future analysis?)
If we take a look at the past month of commits from https://github.com/bitcoin/bitcoin/pulse/monthly, the top ten authors are:
- MarcoFalke
- fanquake
- hebasto
- ajtowns
- glozow
- ismaelsaadeq
- TheCharlatan
- instagibbs
- brunoerg
- mzumsande
None of them works at Blockstream.
When you say "long ago", it likely points to the "Bitcoin Cash" incident. Almost every person that knows of Bitcoin Cash thinks that Bitcoin is a scam; almost everyone else laughs at the idea of Bitcoin Cash working.
Long ago, that was also the case: https://old.reddit.com/r/Bitcoin/comments/61blfg/blockstream...
(edited for format)
(I am the longest serving engineer at Blockstream).
Also, funny to see Bitcoiners talk about running censoring client implementations for Ordinals.
It looks like that is going to happen with https://zerosync.org/ steadily progressing...
??? That has been possible for years: https://github.com/greenaddress/abcore
Ethereum shares the same philosophy of ensuring that clients are capable of being used on lower end hardware to ensure diversity of nodes.
Ethereum nodes can and are being run on Raspberry PI's + SSD drives.
You can even validate the Ethereum network on a Raspberry PI.
In Ethereum you "validate" instead of "mine" like in bitcoin, this is what keeps the network secure and validating is much more power efficient (99.995% less power use than Bitcoin for). See Proof of Stake vs Proof of Work.
My question to you is: Look at BTC. What kind of specialized, expensive, environmentally unfriendly, ASICS do you need to secure the chain?
Bitcoin Core is a "Node", right? A software you run if you want to have the whole history of all Bitcoin transactions of your own hard drive? Therefore I would think it is only used by researchers and analysts?
Everyone gets a vote on what bitcoin is, but the definition of bitcoin that you vote for is that defined by the code running on the node you choose to connect to the network through.
Running your own node let's you speak for yourself. If you connect to someone else's node you're effectively saying "I vote for whatever they're voting for".
The two parties calling toilet roll "bitcoin", are not actually using the bitcoin network. They're using the "toilet roll" network and simply calling it bitcoin. Their transaction would not appear on my node, or the vast majority of any other bitcoin nodes and therefore it's not bitcoin by consensus.
If you don't run your own node, you're trusting that the node you're connecting to isn't actually running the "toilet roll" network and you didn't just sell your car for a 6 pack of Andrex. With Bitcoin you never have to trust - you are always able to (and encouraged to) verify, and this is what running your own node allows: verification, with no trust required.
But does a node on a lonely notebook have any real world impact? Do actors who accept Bitcoin payments connect to random nodes?
If so, what prevents someone from running one million nodes on a single laptop and "encircle" such an actor? There is no proof of work involved in running a node, right? So what gives a node any meaning or voting rights?
Regarding the impact of a single node on the network, that node is a way that _you_ can vote on what bitcoin is. You could equally shut it down and vote by connecting through someone else's node, but then you'd be trusting that their node defines bitcoin the way you want to.
In other words, the people decide what bitcoin is, not individual nodes, but the nodes that people connect through define what they are voting for. If you want to be _sure_ that your vote isn't being misdirected, that what the node is reporting as bitcoin really is bitcoin then connect to the network through your own node.
As long as you work for Blockstream Inc. If not you have effectively no say.
(I work for Blockstream, and we have no current employees in the top 10 contributors for this release AFAICT)
The idea is that every single user, even Grandma buying groceries, has a full copy of the Blockchain to buy her groceries. So no, it is supposed to be used by everyone. This is the reason why the block size is kept small. If it grows too big it is no longer decentralised.
What does running a node on your laptop achieve? If two parties out there agree to call some roll of toilet paper a "Bitcoin", how will your laptop stop them from doing so? One of the two will hand the other one the roll, the other one will say "Thanks for the Bitcoin" and thats it, right? Why would they send TCP/IP packets to your laptop and ask for permission?
But to me it looks like people think just running a node is like voting for the rules on that node. Even if you do not do any business.
If you want the fees, you need to be aware of potential transactions; and also verify that these are valid (at pain of seeing your block be seen as invalid). So you need to receive that information.
Also if you want to publish a block you found, you need to not only listen to information but also publish it to others as well. So yeah, you kind of need to run an up-to-date full node to get both reward and fee.
Now, this does not mean that your miners need to be full nodes. These only need the block to be mined (digest of previous block, header, transactions, your public address to giver the reward to) and then they can vary the nonce at the end to start mining. But this block information has to be up quite to date, otherwise you're mining aimlessly. I've read that while switching to a new block, miner setups send block data empty of transactions to be mined: so as not to waste the few tenths of seconds it takes to upload new block data to miners.
So you can run an operation with a single central full node that sends blocks to individual miner devices.
Do your bankruptcy creditors know about your 'investments' in Bitcoin competitors that you're promoting here?
Cash transactions are more or less irreversible. Visa is very much not final until at least months after the fact.
Do you mean that anyone will be concerned with bitcoin saftey after our banking system collapses along with other https dependent traffic (as its no longer http'S' ?
Just going to drop in here that we need to be working on these solutions faster than is commonly known. The SOTA in breaking large swaths of our security infrastructure, including SHA, is much farther along in certain rarified environments than is commonly understood.
I've read all the changes to the project for essentially its entire life and there is nothing like that nor would anything like that be accepted by many users or the ordinary review process.
It was one of the oddest stories in Bitcoin history how a for profit company led by Greg Maxwell and Adam Back wrestled the keys away from the one legitimate contributor Gavin Andresen, then put every remaining coder on the payroll.
As you say, Bitcoin Core is Not open source in the normal meaning.
[why should I upgrade such a simple protocol?!]
That's quite revolutionary.
I am still running 0.12.1 [last reliable non segwit bitcoin node release]