Let me introduce my idea.

Given:

  • sizeof( Blockchain ) = 16Gb
  • Downloading of one avi film 16GB from the pirate bay ( 5mb/s ) = 2-3 hours
  • Downloading of bitcoin's blockchain ( 5mb/s ) = 2-3 days
  • One day = 6 * 24 = 144 blocks.
  • Drag - cryptography.

Task:

  • Accelerate boot of fresh client to the torrent speed. Similar to Bootstrap.

As I can see, downloading of blockchain is the same hard as mining, because there is every time recalculation of hash, comparing, checking of signs, etc...

What if client will only download this 144 blocks for a day and one super block with 144 hashs of the last valid blocks, thereafter only compare current wallet's addresses with addresses in this 144 blocks without any calculation of its hash.

Is there any alt-coin with such accelerator?


E.g. this super blocks might be archived into another ultra-block for a month. Than we have similar to sha(sha(text)) cascade shield against bruteforce attack.

Downloading of blockchain should takes at max the same time as downloading of 16GB avi from the pirate bay. Say, 5mb/s internet channel + p2p / 16 Gb = 2, may be 3 hours ( in the no peers case ), but I spent 2 - 3 days, and I see that this is no internet speed reason, it is CPU + harddisk very very hard job.

  • I think I understand your question now: Do you mean that there should be two parallel blockchains, one with single blocks and one with consolidated large blocks that are compatible to each other, so that for synchronization one can only validate the chain of consolidated blocks, but end up being compatible to the single block blockchain? – Murch Mar 26 '14 at 11:52
  • Methinks, I have meet such alt-coins, there was a super blocks. This block must be in the blockchain like any other. Ofcouse, this is hard fork from current blockchain. – Anomalous Awe Mar 26 '14 at 12:22
  • I don't think there is such an altcoin although a neat idea. – John T Mar 27 '14 at 3:39
  • Another potential improvement: merge a QT client with bittorrent so no machine had the obligation to store the whole blockchain if undesired, rather requesting different parts of it from the network and paying the storers as they consume. And of course, receiving payments in the coin for the "service" of storing copies of the blockchain when it fulfills such a request. It could even be expanded to a DAC that provides anonymous cloud data storage, and you get paid for renting an amount of your hard disk space to it. My 2 satoshis. – Joe Pineda Mar 27 '14 at 17:03

Your premise is wrong. The work required to download and validate the blockchain has nothing at all to do with the work required to mine it.

As far as the block hash goes, validating it requires just one hash while mining the block requires quintillions of hash calculations.

Validating the block also requires computing the hashes of the Merkle tree but the main work is validating ECDSA signatures. Your method is not going to help with that.

(On a meta note, it's rude to offer "improvements" when you don't understand well enough what currently exists.)

  • Could you please clarify than, why downloading of blockchain ( 16GB ) in 24x more slower than downloading the same blob file, like avi movie? – Anomalous Awe Mar 27 '14 at 14:23
  • @AnomalousAwe: 1. Verifying all the ECDSA signatures (CPU) 2. Looking up previous outputs for each transaction input (Hard drive) Having an SSD can greatly help with #2. – Meni Rosenfeld Mar 27 '14 at 16:45
  • Once read at bitcointalk a proposal to integrate the code to hash in the GPU (e.g. taken from cgminer) into the QT client and have the GPU run the validations in parallel with the CPU, potentially yielding a big speed boost but to day there's no implementation. But then if the biggest speed block is #2 (is it? sounds reasonable to me) then accelerating #1 to almost zero won't do much to improve times. – Joe Pineda Mar 27 '14 at 16:59
  • 1
    @JoePineda Hash != ECDSA verification. Possibly GPU is suitable for ECDSA verification as well but it wouldn't be related to any of the existing mining software. – Meni Rosenfeld Mar 27 '14 at 18:44
  • 1
    @AnomalousAwe: If you want to skip ECDSA verification, you can do so already (but then you're trusting others to do the verification for you). It has nothing to do with hashes, computing all hashes in the Merkle trees of all blocks is cheap. – Meni Rosenfeld Mar 27 '14 at 21:09

Downloading the blockchain is several orders of magnitude easier than mining. Validating is just taking the blocks, hashing them and verifying that the proposed solution a) matches such hash and b) at the specified difficulty level. If a received block passes these validations, it's accepted as valid an the next one is requested, and so on.

Per comparison, downloading a movie or software implies no validation until the very end, when you check the archive is not corrupted. In case it indeed is, you have to download the whole big mess again .

As you correctly assume, most of the time is spent in verifying blocks. That's why even if a friend lends you a DVD with the blockchain, loading it for the 1st time won't be instantaneous but will take (depending on your PC's speed) from half an hour to several hours.

Your idea of creating a "resume" block at the end of the day (why not weekly/monthly/annually as well?) looks promising, I've heard of no coin implementing any such idea. It's not without potential problems, but it could be.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.