ELI5: how does Burst actually work?



  • So, Burstcoin sounds super interesting to me due to the low power consumption and kinda cheap one-time investment for reuseable hardware.

    There's one thing that's bugging me. I haven't read the whitepaper yet and I'm trying to avoid reading it.

    So I'm plotting a huge chunk of data. Later on, I'm "mining" by reading just a portion (?) of it and with some luck I return a deadline. This is the part I don't understand.

    • Where does this deadline come from? I mean, they're in my plots, but how are they calculated? Random numbers out of thin air?
    • Why is it good to have the lowest deadline beside being the one winning the block?
    • How does the network benefit from someone having a low deadline?

    I have to admit I haven't found a guide explaining these things. Most of the time they explain how to get started and all that, which was super easy.



  • I found this really difficult when I was try trying to look into it. There is a flowchart about half way down here which explains it pretty well - https://www.burst-team.us/index.php/about/ - from memory I believe some of the things which are defined as 32-bytes are actually 64 in the current implementation. I had to take a look at source to confirm a couple of things.

    In essence:

    • A plot file contains a number of nonces
    • Each nonce has 4096 scoops in it - this is just 64 bytes of data within it
    • When a mining round starts various information (the block height and previous block) determine which scoop we look at
    • Consequence of this is we only ever mine 1/4096th of total plot space
    • Each nonce in each plot looks at just that specific scoop
    • For each scoop examined the data is combined with a hash of previous block and then hashed. This hash is then divided by a "base target" that also comes in with the block headers from the network. This gives a deadline in seconds.

    So huge amount of upfront work generates some bytes on disk then 1/4096th of them are then hashed each round with current round information and divided by a network-calculated number to give a deadline in seconds. So your same block/scoop will give a different deadline each round - there's no benefit to having a particular account #, nonce or scoop # other than in that very round.

    Benefit of having lowest deadline? Simply you win - it's a bit like a lottery ticket valid for a single use but with added benefit that there are a large amount of winners and only the person that hands it in first can win - so if you have a low deadline you hope you get yours submitted first.

    Benefit to network? Not sure deadlines themselves offer a particular benefit (or at least I've not seen anything about it) but it is a way to "prove" capacity and to give different miners different results. If this step didn't occur how would you decide who had won? It's this step that, in effect, adds the random-winning potential to your generated data.

    0_1498559993356_diagram.jpg