Bitcoin Forum
June 16, 2024, 08:07:31 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: ASIC for transaction signature validation?  (Read 466 times)
quakefiend420 (OP)
Legendary
*
Offline Offline

Activity: 784
Merit: 1000


View Profile
August 17, 2015, 06:59:42 PM
 #1

We all saw the difference when PoW migrated from general purpose CPUs to GPUs and finally to ASICS, could we see a similar transition for signature validation?

Could some clever code and a GPU be the difference between it taking a node with an average CPU 12 hours to start from scratch and 12 minutes?
achow101
Staff
Legendary
*
Offline Offline

Activity: 3430
Merit: 6705


Just writing some code


View Profile WWW
August 17, 2015, 07:06:14 PM
 #2

Signature validation does not take 24 hours. What exactly are you talking about? Are you talking about validating the blockchain?

quakefiend420 (OP)
Legendary
*
Offline Offline

Activity: 784
Merit: 1000


View Profile
August 17, 2015, 07:43:19 PM
 #3

Signature validation does not take 24 hours. What exactly are you talking about? Are you talking about validating the blockchain?

Yes, isn't most of the indexing\reindexing overhead due to signature validation?
achow101
Staff
Legendary
*
Offline Offline

Activity: 3430
Merit: 6705


Just writing some code


View Profile WWW
August 17, 2015, 08:02:11 PM
 #4

Signature validation does not take 24 hours. What exactly are you talking about? Are you talking about validating the blockchain?

Yes, isn't most of the indexing\reindexing overhead due to signature validation?
No. I don't think it is because the only thing with signatures are transactions. I think it is actually verifiying each block and transaction to match the consensus rules. Everything must be in the right format, and then the client uses the data given in each block and transaction to calculate the hashes and checks if it matches. For example (overly simplified), in a transaction, it must verify the signatures match. Then it must hash the entire transaction and the hash should come out to be the transaction id. If it doesn't match, the transaction doesn't validate. Then for blocks, it must hash every transaction together, which in some blocks can be more than 1000, and it gets the merkle root. Then it must combine the data in the header such has timestamp, nonce, and whatever else and get the block hash. If the hash it gets matches the hash it was given, the block validates.

The reason this takes so long is not because hashing is slow, but because of the sheer size of the blockchain. It must validate every single block it receives, from block 0 to 370298 and beyond. This is what takes the most time. The process can be sped up with faster processors to do all of that hashing, which is why different computers take different times to validate and index the blockchain.

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!