Bitcoin Forum
April 26, 2024, 05:37:00 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Possible solution to 51% attack?  (Read 1269 times)
youbobcat (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 14, 2014, 03:42:58 AM
 #1

I was just thinking of a solution to the 51% mining attack but unsure if it would work. The idea would be to implement what I would call a validation chain which would be a duplicate of the block chain but without the added complexity aka just strait hashing. This chain would not have any rewards but could be run on every full client. The transaction would be validated by most of the peers which could be used to limit double spending as verification should be quicker. At the same time the transaction is sent to the miners to enter into the block chain which once the block has been found it is checked by the clients against the validation chain to see if it is valid i.e. not double spent or faked etc. Thus it would be more appropriate for a miner to only use transactions that are already in the validation chain. I know this would use up more HDD space and full clients may not wont to effectively rehash the whole block chain again. Thus you could say at block x in the blockchain it is valid so we will fork the chain here and continue to just hash.  
 Just a thought would like to know peoples thoughts.
1714153020
Hero Member
*
Offline Offline

Posts: 1714153020

View Profile Personal Message (Offline)

Ignore
1714153020
Reply with quote  #2

1714153020
Report to moderator
Even in the event that an attacker gains more than 50% of the network's computational power, only transactions sent by the attacker could be reversed or double-spent. The network would not be destroyed.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714153020
Hero Member
*
Offline Offline

Posts: 1714153020

View Profile Personal Message (Offline)

Ignore
1714153020
Reply with quote  #2

1714153020
Report to moderator
1714153020
Hero Member
*
Offline Offline

Posts: 1714153020

View Profile Personal Message (Offline)

Ignore
1714153020
Reply with quote  #2

1714153020
Report to moderator
1714153020
Hero Member
*
Offline Offline

Posts: 1714153020

View Profile Personal Message (Offline)

Ignore
1714153020
Reply with quote  #2

1714153020
Report to moderator
DannyHamilton
Legendary
*
Offline Offline

Activity: 3374
Merit: 4606



View Profile
December 14, 2014, 04:42:43 AM
 #2

I was just thinking of a solution to the 51% mining attack but unsure if it would work.

I've got a strong feeling that this "solution" doesn't have a good grasp of how or why the bitcoin consensus system works.  I suspect that this isn't going to increase security or prevent double spending attacks any more that the current system already does.

The idea would be to implement what I would call a validation chain which would be a duplicate of the block chain but without the added complexity aka just strait hashing.

What complexity are you removing?  The current blockchain is nothing more than a list of transactions and "straight hashing".

This chain would not have any rewards but could be run on every full client.

With no rewards, there isn't much incentive for anyone to bother spending their own money on electricity to do the hashing.

The transaction would be validated by most of the peers which could be used to limit double spending as verification should be quicker.

In what way would this "validation" limit double spending?  Peers already refuse to relay any double spend transaction.  How would a second blockchain improve on this?  If some of the network receives one transaction and adds it to their "validation chain", and the rest of the network receives a different "double spend" transaction and adds it to their "validation chain", then how does the system determine which is the "original" transaction and which is the "double spend"?

At the same time the transaction is sent to the miners to enter into the block chain which once the block has been found it is checked by the clients against the validation chain to see if it is valid i.e. not double spent or faked etc.

What happens if the transaction in the miners block and the transaction in the "validation chain" don't match?  Which is the "correct" transaction?

Thus it would be more appropriate for a miner to only use transactions that are already in the validation chain.

How does the miner know if they have the correct "validation chain"?

Since all peers already keep a full list of unconfirmed transactions and nearly all peers already refuse to relay a transaction that double spends a transaction that they already know about, I'm not sure what improvement we get from peers "hashing" their unconfirmed transaction list.

I know this would use up more HDD space and full clients may not wont to effectively rehash the whole block chain again. Thus you could say at block x in the blockchain it is valid so we will fork the chain here and continue to just hash.  
 Just a thought would like to know peoples thoughts.

I think this doesn't provice any improvement over the current system, and has some rather large holes that haven't been thought through yet.
jonald_fyookball
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
December 14, 2014, 04:55:37 AM
 #3

In what way would this prevent a mining monopoly or stop transactions from being excluded from blocks?

In what way would this prevent re-orgs?

dabura667
Sr. Member
****
Offline Offline

Activity: 475
Merit: 252


View Profile
December 14, 2014, 08:13:01 AM
 #4

Won't work.

Reasons explained above by other people.

My Tip Address:
1DXcHTJS2DJ3xDoxw22wCt11FeAsgfzdBU
youbobcat (OP)
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
December 14, 2014, 12:54:24 PM
 #5

Doesn’t the blockchain require hashes to look a certain way? ie so many zeros at the start. The validation chain would remove this. As hashing is very simple and quick the bottle neck I hope would be the latency in the network. Thus I am proposing a global chain as like the blockchain and the first peer to receive x transactions will get to post a block of the transactions. The longest chain is accepted and distributed the chain should then be dictated base on location. As for no incentive well it shouldn’t require large amounts of power than just running the client. I would hope that the tiny bit more used would help hopefully increase the networks security.

Ok as for the double spend it probably doesn’t solve this but it should be cheaper to create the validation chain and so when that last block has been mined it could be possible to just rely on the validation chain.

As for miners knowing which transactions to use this would be a bit harder more of a gamble but the older the transaction the safer it should be i.e. wait for the average round trip latency of the network.
bcearl
Full Member
***
Offline Offline

Activity: 168
Merit: 103



View Profile
December 14, 2014, 01:51:35 PM
 #6

How do you define which chain is valid if no mining is done?

What does "longest chain" even mean if you have no mining?

What does that have to do with 51 % at all?

Misspelling protects against dictionary attacks NOT
steeveGrube
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
December 14, 2014, 02:04:42 PM
 #7

remember...

chain validation is done by miners!!!
if you do not do validation via miners how do you can understand what is the correct chain!!!

and again...

if you need to validate 2 chain you can just double the work and the power consumption!!!
DannyHamilton
Legendary
*
Offline Offline

Activity: 3374
Merit: 4606



View Profile
December 14, 2014, 02:52:54 PM
 #8

Doesn’t the blockchain require hashes to look a certain way? ie so many zeros at the start.

Not exactly, but yes the hash is insufficient unless it exceeds a specific difficulty. This difficulty serves a very specific need and purpose.

The validation chain would remove this.

Then why bother hashing at all?  What is the difference between storing a list of unconfirmed transactions, and storing a list of hashed unconfirmed transactions?

As hashing is very simple and quick the bottle neck I hope would be the latency in the network. Thus I am proposing a global chain as like the blockchain and the first peer to receive x transactions will get to post a block of the transactions.

How will you know which peer is "first"?

The longest chain is accepted and distributed

If the hashes don't need to meet a particular difficulty, then how will you prevent anyone from creating an alternative longer chain?

the chain should then be dictated base on location.

Location?  How will the system know where any peer is located?

As for no incentive well it shouldn’t require large amounts of power than just running the client. I would hope that the tiny bit more used would help hopefully increase the networks security.

Please understand that when creating a monetary system you MUCH assume that EVERY peer is going to act in a dishonest way if it will benefit them.  Please explain how this additional chain with no difficulty monetizes the desired behavior and discourages the undesired behavior.

Ok as for the double spend it probably doesn’t solve this

Then what is its purpose?  You said that this is a "solution to 51% attack".  The problem with the "51% attack" is that it allows the person that has 51% of the hash power to double-spend their own transactions.  If your "solution" doesn't prevent this, then how is it a solution to anything at all?

but it should be cheaper to create the validation chain and so when that last block has been mined it could be possible to just rely on the validation chain.

There is no "last block".  As long as bitcoin exists, blocks will continue to be created.  If the "validation chain" doesn't prevent double-spends, then it doesn't serve any purpose at all and can't be relied on for anything.

As for miners knowing which transactions to use this would be a bit harder more of a gamble

A gamble?  I don't think a monetary system should be based on a successful gamble.

but the older the transaction the safer it should be i.e. wait for the average round trip latency of the network.

It is impossible to know the age of a transaction.  Transactions don't have timestamps.  The blockchain is the "timeserver" that determines the order that transactions occur.
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!