Author

Topic: Bitcoin protocol violation (Read 130 times)

legendary
Activity: 3472
Merit: 10611
May 13, 2024, 11:30:13 PM
#9
It is said that the entire network much reach a consensus before a transaction can take place.
You probably misunderstood what that says.
The entire network doesn't have to reach a consensus on individual transactions. The entire network reaches a consensus on the rules that are used to verify each transaction then each individual node validates the transactions/blocks they receive using those rules.

Quote
Must a full network consensus be required to verify a proof of work result?
Similar to above, any rules in the Bitcoin protocol is first decided by the entire network then individual nodes verify blocks based on those rules. So for example if the rules say current difficulty in PoW has to be X then all nodes are computing the same X value locally and verify the received block based on that.
hero member
Activity: 714
Merit: 1010
Crypto Swap Exchange
May 13, 2024, 04:21:51 PM
#8
2. Nodes will need to confirm that the total value of inputs (bitcoin) is equal to the total value of outputs.

That is an edge case that by default won't be transmitted from node to node as equal amount of coins of inputs and outputs of a transaction means there's no transaction fee paid.

Nodes will validate and enforce that the amount in the transaction's outputs is never larger than the amount of coins in the inputs because this would create coins out of thin air.

The "normal" case is: amount in outputs is lower than amount in inputs, the difference is the transaction fee.
sum(inputs) = sum(outputs) + transaction fee
hero member
Activity: 868
Merit: 952
May 12, 2024, 06:14:23 PM
#7

A majority of these things are done by the node softwares. I think it requires individual Miners to do this meaning for a node to add a confirmation to a transaction it must first confirm that the coins have a valid origin as well as proof of work or else they won't fit into the next block since every single Bitcoin ever mined has it's unique digital footprint.

I will say the phrase nodes adding confirmation to a transaction is wrong, nodes do not add confirmation rather the number of blocks build on on top of the block in which the transaction is included in is the number of confirmations which is the work of miners. What nodes does is validation of the transaction.

1. One of the validation methods is that a bitcoin has never been spent before in past transactions.
2. Nodes will need to confirm that the total value of inputs (bitcoin) is equal to the total value of outputs.
3. Another consensus is node goes with the block with the longest chain (most work) when two or more miners mined a block at same time.

So the third consensus actually tells you that validation and confirmation is quite different. A transaction can be validated but still yet not confirmed due to the block it belongs to.

Also one of the ways nodes secure the network is when a miner actually includes an invalid transaction into a block it will be rejected immediately and tag a dishonest node and then loses all the energy used to create that block. This is one area where even if a miner controls 51% power they can’t control the or change the mechanism of the network.
full member
Activity: 280
Merit: 110
Eloncoin.org - Mars, here we come!
May 12, 2024, 01:45:13 PM
#6
I stand  to be corrected but from my understanding about how the bitcoin protocol  works. If  a transaction violates the rules of the bitcoin protocol, such transaction is treated as void and is ignored.
It is said that the entire network much reach a consensus before a transaction can take place. Must a full network consensus be required to verify a proof of work result?
I don't think so that there is any harm in it. If you're using services offered by a project then you have to obey all the rule and regulation that has been set in order to fulfil any transaction.

Now if you don't follow any rule intentionally or unintentionally then the project owner have the complete right to ignore these kinds of transactions and it's totally justified.
sr. member
Activity: 448
Merit: 560
Crypto Casino and Sportsbook
May 12, 2024, 03:50:18 AM
#5
I stand  to be corrected but from my understanding about how the bitcoin protocol  works. If  a transaction violates the rules of the bitcoin protocol, such transaction is treated as void and is ignored.
Of course such a transaction would be dropped and discarded. Now before a transaction is confirmed my adding to the next block, the nodes have to check that the transaction obeys all the Bitcoin protocols. Now to start with, to my level of understanding, one of the rules is that every coin being sent or broadcasted via a Bitcoin transaction must have an origin and must be from a valid origin. Therefore for a transaction to be confirmed, its coins must have a proof of work origin which simply means that every Bitcoin that is authentic was mined. Since it's the proof of work origin that allows the coins to be confirmed and thus spent.

Quote
It is said that the entire network much reach a consensus before a transaction can take place. Must a full network consensus be required to verify a proof of work result?

A majority of these things are done by the node softwares. I think it requires individual Miners to do this meaning for a node to add a confirmation to a transaction it must first confirm that the coins have a valid origin as well as proof of work or else they won't fit into the next block since every single Bitcoin ever mined has it's unique digital footprint.
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
May 11, 2024, 11:56:32 PM
#4
It is said that the entire network much reach a consensus before a transaction can take place.
Must a full network consensus be required to verify a proof of work result?
That's only one of the set of consensus rules.
Here are the consensus rules nicely organized in the Bitcoin code: github.com/bitcoin/bitcoin/tree/master/src/consensus

Think of the "Bitcoin Network" as a number of nodes that follow the same set of rules, thus there's a "consensus" since they are following those exact rules.
If a node isn't following a rule, like for example; if its mining and broadcasting larger than 4WU blocks to its peers,
Then its peers will reject it and will ban that node from connecting to them, in doing so, it wont be part of the network.

As for the protocol, a node wont "quack" like a Bitcoin node without following it since it what makes a node a Bitcoin node.

If a transaction violates the rules of the bitcoin protocol, such transaction is treated as void and is ignored.
This could also fall under 'policies' which is just the "standards", not a set of strict rules to follow unlike consensus and nodes can set their own standards.
Like consensus, policies are also well organized and commented: github.com/bitcoin/bitcoin/tree/master/src/policy

For example: if someone is trying to spend a SegWit Output with uncompressed public key (which is "non-standard" | SCRIPT_VERIFY_WITNESS_PUBKEYTYPE).
Then that someone wont be able to broadcast that transaction to nodes with default policies.
But since it's not breaking any protocol, it can be broadcasted to a node or a miner that set their node to accept such transaction.
When a miner added it to their block, that block is still valid since it doesn't break any consensus rules.

Here's one example of that scenario: https://blockstream.info/tx/fd02fd81790a05ea2ab07bbcf5cdcb2cfd21f3f5676a5c0e8f7f5ca2ac75e694?expand
See that the input is P2SH-P2WPKH but with an uncompressed public key, the block where it's included is valid even though the transaction is non-standard.
legendary
Activity: 3024
Merit: 2148
May 11, 2024, 06:03:10 PM
#3
Nodes are by default refusing to propagate invalid transactions to other nodes and might even disconnect from a node that makes too many invalid transactions. So it's not like even the whole network rejects an invalid transaction - it doesn't get the chance to spread through the network at all.

Mining works similarly. When miners find a block, they send it to the nodes, and then the nodes spread it further. If a block is invalid for some reason - it has an invalid transaction or miners tried to cheat with pow - the nodes would refuse to accept and propagate it. So miners have a huge incentive to make sure that everything is correct, otherwise they'll just waste a lot of money.
legendary
Activity: 3374
Merit: 3095
Playbet.io - Crypto Casino and Sportsbook
May 11, 2024, 05:42:18 PM
#2
Based on what I understand any transaction should be verified by nodes if the transaction didn't follow the consensus rules or the majority of the network didn't agree on that transaction then the transaction would end up being rejected by the network.

I think all you need to understand this is to read the whole of Satoshi's whitepaper because it explains better than where you read it. Check the link below.

- https://bitcoin.org/en/bitcoin-paper
member
Activity: 73
Merit: 31
May 11, 2024, 04:06:15 PM
#1
I stand  to be corrected but from my understanding about how the bitcoin protocol  works. If  a transaction violates the rules of the bitcoin protocol, such transaction is treated as void and is ignored.
It is said that the entire network much reach a consensus before a transaction can take place. Must a full network consensus be required to verify a proof of work result?
Jump to: