Bitcoin Forum
May 15, 2024, 03:35:31 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Development & Technical Discussion / Some questions about Nakamoto consensus. on: January 09, 2022, 03:56:37 AM
It might be bit too elementary to ask here, but let me ask some questions. I am learning about Bitcoin. Currently, I’m learning about distributed consensus on chapter 10 of mastering Bitcoin by Andreas Antonopoulos.

As far as I read, you can summarize this with 3 parts for Nakamoto consensus. The first is for full nodes to validate transactions. They make sure conditions including AcceptToMemoryPool, CheckTransaction, and CheckInputs in Bitcoin Core. Once transactions are ok, each node put them into a transaction pool.

Then, miners make a candidate block and do mining. (I think every node is independent, so transaction pool is slightly different among nodes so each miner mines a block consisting of different transactions, but mostly likely with the same previous block hash on the longest chain. I hope I'm getting it right.)

Once a block is mined by some miner, the miner propagates to its neighbor nodes, and each node checks. If a block is correctly mined satisfying conditions like CheckBlock and CheckBlockHeader in Bitcoin core, they put it on the ledger, and propagate and other nodes also check it if they haven't yet.

To fully understand, I should probably need to run a node and see, but I’m thinking about the risk of a majority of full nodes not doing jobs right. The first and the last step where full nodes validate, they could simply validate an invalid block to be valid and propagate to its neighbors. And, I totally understand an argument like other nodes will not validate and won’t talk to that bad node. However, we never know that if some malicious groups trying to break Bitcoin’s consensus system especially because it doesn’t cost a lot to be a full node.  To get 51% of hash rate is very expensive, but say you make so many bad full nodes and trying to mess up the ledger sounds reasonable.. Like run 100000 nodes and validate poorly. (Quick search shows 15000nodes currently)

Now, if so many nodes are bad, then miners will stop talking to them and only good nodes will hear new blocks, but my point is that the health of the network is not obvious. Therefore, some attacks could be possible here, what's making it not to be attacked? (Miners also can lie, but if their blocks get rejected, they lose money. Nodes try to be honest if they make transactions themselves to make sure their transactions went ok, so some incentives for nodes to act well.)
2  Bitcoin / Development & Technical Discussion / Research topics in Bitcoin on: June 09, 2021, 06:25:04 AM
Hi all, I would like to hear about research topics in Bitcoin. For instance, https://ieeexplore.ieee.org/document/7163021 breaks down to 3 parts: Network, Transactions, Consensus. There are some literatures which carefully studies Nakamoto's consensus from a careful mathematical argument, for instance https://eprint.iacr.org/2019/943.pdf

Obviously, there are IOHK research, Ethereum research for their own consensus and scaling, but I would like to work on Bitcoin. Hence I would like to ask for your opinions for some topics which really solve challenges in Bitcoin. I am not an expert in Crypto at all, in fact, I am learning now as I am very fascinated by Bitcoin, but I thought it would be more effective to learn with some mete problems in my mind. (My back ground is math with PhD, and have been publishing papers in graph theory and topology. I am mainly interested in layer 1, but open to stuff like lightning project.) If you could let me know, that would be amazing. Please let me know!
3  Bitcoin / Development & Technical Discussion / Beginner's question on consensus. on: June 03, 2021, 03:34:43 AM
Hi, I have a question regarding consensus. Perhaps it is  It’s related to the double spending problem. So, I will speak in this context.

Let’s say bitcoin network only has 5 nodes. Jon has 10 bitcoin, and trying to give 10 bitcoin to Mike and Lisa, intending the double spending.

Q1)So firstly, I wonder whether this action is even practical in usual circumstances, like having a hot wallet. When Jon sends 10 bitcoin to Mike, it should deduct 10 bitcoin from his hot wallet immediately. So, how could Jon even try to double spend? No bitcoin…(Now, if Jon is trying to go to a public ledger, and redo the block by adding or deleting particular transactions, I get it this type of activity leads to the double spending. For the longest chain, I understand 51% hash power is necessary to do so.)

In short, I understand that Jon can send Mike and Lisa 10 bitcoin each at the very same time to do double spending, but is it even possible in a hot wallet situation (which I think is a usual circumstance for many people).

Q2)In any case, if Jon tries to send bitcoin, other four will check if this transaction is valid or not. Exactly, are they checking if Jon has enough founds by going back to the public ledger, and Jon is not doing the double spending also by going back to the public ledger? I suppose the answer is yes, but here I am starting to get confused because this is the point which PoW is coming in as two of four nodes could be Jon's, and they might lie. In my understanding, PoW plays a role to choose a representative who puts a block. I understand that it is a hashing race to get a certain value where inputs are all transactions to be included in a block, the past information from the previous block, and a nonce which you choose to get an ideal output. Hence, anyone who is participating to this hash race already knows which transactions they should include into the block. So, there should be a consensus before PoW that would check which transactions to be included?

Sorry it was a bit long and perhaps basic to some of you all, but if you could help me to clarify, that would be great.
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!