Bitcoin Forum
December 05, 2016, 04:32:36 AM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: What are the best alternatives to SHA256 ?  (Read 2856 times)
pusle
Member
**
Offline Offline

Activity: 89


View Profile
April 28, 2011, 04:54:45 AM
 #1


I'm wondering if there are hashing algorithms out there which would favor CPU's with general computing power  (intel, amd ,arm)
Motivation here is for normal peoples computers to be more competitive against custom hardware like GPU's, FPGA's , ASIC's
This could make the donation of CPU power from regular clients a much more effective way to help secure the network.

A while back I vaguely remember reading something about algorithms which was not easy to make into small blocks of logic and then massively copy them on a chip. 

Does such hashing algorithms exist?
If not could  and additional layer be added to facilitate this goal?  (arithmetic coding?)




1480912356
Hero Member
*
Offline Offline

Posts: 1480912356

View Profile Personal Message (Offline)

Ignore
1480912356
Reply with quote  #2

1480912356
Report to moderator
1480912356
Hero Member
*
Offline Offline

Posts: 1480912356

View Profile Personal Message (Offline)

Ignore
1480912356
Reply with quote  #2

1480912356
Report to moderator
1480912356
Hero Member
*
Offline Offline

Posts: 1480912356

View Profile Personal Message (Offline)

Ignore
1480912356
Reply with quote  #2

1480912356
Report to moderator
The network tries to produce one block per 10 minutes. It does this by automatically adjusting how difficult it is to produce blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1480912356
Hero Member
*
Offline Offline

Posts: 1480912356

View Profile Personal Message (Offline)

Ignore
1480912356
Reply with quote  #2

1480912356
Report to moderator
purplezky
Newbie
*
Offline Offline

Activity: 29


View Profile WWW
April 28, 2011, 05:17:12 AM
 #2

I'd love to see http://en.wikipedia.org/wiki/BLAKE_(hash_function) used instead of SHA256.
I don't think a more complex algorithm could favor general CPU's, custom ASIC's will always be faster.
pusle
Member
**
Offline Offline

Activity: 89


View Profile
April 28, 2011, 10:13:51 AM
 #3


Yes they will always be faster but it's a question of closing the gap.

Example:
Memory ram/flash is "expensive" on die and external memory has bandwidth/latency limitations.
With very large s-boxes/tables you could make general cpu's with few cores much more competitive.


You could also add additional processing stage of the block data before hashing.

Example:
http://en.wikipedia.org/wiki/Context-adaptive_binary_arithmetic_coding   ->  "It is also difficult to parallelize and vectorize"
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526


View Profile
April 28, 2011, 11:12:58 AM
 #4

Why would you want to do that?

Having big concentrations of specialized hardware makes it much harder to attack using large botnets. The BitCoin network is not very large today but would already need around 250,000 CPUs to attack. Imagine if there needed to be 250,000 distinct miners to achieve that strength instead of relying on particular types of graphics cards. It'd take years to build up that many.

Having smaller numbers of larger scale, more professional miners has other advantages too - like they upgrade their software to keep up with changes in the network, new script types and so on. The recent sendmany changes show a good example of that - just a few people with a good understanding of mining had to upgrade for the new functionality to become available.


pusle
Member
**
Offline Offline

Activity: 89


View Profile
April 28, 2011, 12:42:06 PM
 #5


I see your point and right now SHA256 might be ideal.

The problem is government agencies who can afford to make a custom ASIC and then fill a whole building with them.

Some people on this forum predict a drastic decline in miners/hash nodes when their income only comes from fees, but this may or may not happen.

If all nodes including clients help out with CPU power to secure the network, then all treats would decline as the number of users grows.

I'm asking if somebody has alternatives making the security by "user/client CPU donations" more feasible.


ByteCoin
Sr. Member
****
expert
Offline Offline

Activity: 416


View Profile
April 28, 2011, 02:34:29 PM
 #6

Having big concentrations of specialized hardware makes it much harder to attack using large botnets.

So that's the problem with a proof-of-work suitable for PCs.

The problem is government agencies who can afford to make a custom ASIC and then fill a whole building with them.

And this is the problem with the current proof-of-work suitable for ASICs (and GPUs).

The solution is to alternate between the two and maintain two independent difficulty targets, one for even blocks (PCs) and one for odd blocks (GPUs). Anyone wanting to take over the network would have to be able to generate both types of work.

Even better would be having an altruistically useful proof of work like protein folding or finding Mersenne primes so we could even have people supporting bitcoin incidentally, even though their primary motivation was folding proteins or finding large primes.

A useful proof-of-work would have to have the properties enumerated in the following post
http://bitcointalk.org/index.php?topic=203.msg3669#msg3669

ByteCoin
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526


View Profile
April 28, 2011, 02:46:31 PM
 #7

Well, actually I'd say ASICs are better if you're afraid of government takeover too.

It's much harder for an intelligence agency to acquire and install large quantities of specialized hardware without being noticed, whereas the x86 CPU market is so large that buying up a few hundred thousand CPU cores can be done without really being noticed. Especially if you are not in a hurry.

Changing the proof of work is tricky. ByteCoins list is a good start, but I think there are some aspects of BitCoin that require altering the block contents to invalidate the proof of work. I haven't thought about it much but it feels like separating the proofs of work from the block contents would lead to problems.
pusle
Member
**
Offline Offline

Activity: 89


View Profile
April 28, 2011, 06:13:58 PM
 #8

Having big concentrations of specialized hardware makes it much harder to attack using large botnets.

So that's the problem with a proof-of-work suitable for PCs.

The problem is government agencies who can afford to make a custom ASIC and then fill a whole building with them.

And this is the problem with the current proof-of-work suitable for ASICs (and GPUs).

The solution is to alternate between the two and maintain two independent difficulty targets, one for even blocks (PCs) and one for odd blocks (GPUs). Anyone wanting to take over the network would have to be able to generate both types of work.

Even better would be having an altruistically useful proof of work like protein folding or finding Mersenne primes so we could even have people supporting bitcoin incidentally, even though their primary motivation was folding proteins or finding large primes.

A useful proof-of-work would have to have the properties enumerated in the following post
http://bitcointalk.org/index.php?topic=203.msg3669#msg3669

ByteCoin

Wow, nice! thank you Smiley

Alternating is a good idea.
Or perhaps one could find a system where different types of work can exist side by side.
Nodes could be free to choose if they wanted the added security or not.


Jim Hyslop
Member
**
Offline Offline

Activity: 98


View Profile
April 30, 2011, 03:58:34 PM
 #9

Alternating is a good idea.
Or perhaps one could find a system where different types of work can exist side by side.
Nodes could be free to choose if they wanted the added security or not.
Security is not an option.

One of the big difficulties with different types of work is the added complexity it introduces. Complexity is the enemy of security. The primary goal for Bitcoin must be security, otherwise the entire system can collapse.

Like my answer? Did I help? Tips gratefully accepted here: 1H6wM8Xj8GNrhqWBrnDugd8Vf3nAfZgMnq
pusle
Member
**
Offline Offline

Activity: 89


View Profile
April 30, 2011, 06:23:55 PM
 #10


What I meant was Additional security, not optional.
Think of it as another way to verify the transactions/block/chain on top of the existing one. (using different proof-of-work)


So far it seems prime number search is the best for general CPU's people have at home.
From the benchmarks I've found the Core i7 is actually beating GPU's easily.

Folding proteins etc would also be okay. At present GPU's have about 10x advantage on CPU's.
This is way better than the approx 300x advantage they have with SHA256.

Suggestion, Proof-of-not-a-prime:
difficulty could be set by the size/length of the factor found to be part of the test number.
Feasible?  Undecided




Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526


View Profile
May 01, 2011, 10:45:06 AM
 #11

You need something that allows chaining. The reason SHA is used isn't anything to do with the types of hardware that can do it. It's because the hash of the previous block can be embedded in the next, forming a chain that cannot be altered without requiring the whole chain to be redone.

If you just search for a prime number, anyone can rewrite the chain and reverse transactions by altering the contents of an old block and rebroadcasting all the rest with modified prevBlockHash fields.

pusle
Member
**
Offline Offline

Activity: 89


View Profile
May 01, 2011, 12:21:20 PM
 #12



What I meant was to replace the amount of leading zero's "work" with a prime problem instead, but keep the hashing chain. Or have it's own signature hash and piggyback this onto the existing chain.

I have to admit my understanding of how bitcoin works isn't 100% solid.
I would not be surprised if this would not work and unravel in some way, but hopefully somebody could come up with way to do it right  Smiley
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!