Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: mtomcdev on July 26, 2014, 04:20:49 PM



Title: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 04:20:49 PM
This is just a question to understand the underlining technology and concept. If I understood correctly transactions (such as sending Bitcoin from an existing address to another address) must be included by miners in a newly mined block. What's going to happen when no one is mining any more, so there is no new block, in what block will be the transaction included? I have been reading the wiki and tried to understand the concept before posting here this noob question but I don't understand how payments will be made if there are no new blocks, for example when all blocks are mined. I read on the wiki that in Bitcoin new blocks will be created even after the last block is minted, but I am having difficulty to understand how that will happen. I guess at the time when all blocks are created in bitcoin then it will be incredible difficult to create a new block or is there some way to create a block just to include the transaction?


Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 04:44:08 PM
Just to clarify what I have been wondering about, the Bitcoin wiki states

"Bitcoin transactions are broadcast to the network by the sender, and all peers trying to solve blocks collect the transaction records and add them to the block they're working to solve."

At the same page it also appear that

"Transactions will still occur once all the coins have been generated, so blocks will still be created as long as people are trading Bitcoins."

So where those blocks will be coming from once all the coins have been generated? Similarly, how the bitcoin based POW altcoins handle this scenario when the POW period is finished, from where that altcoins gets the new blocks?


Title: Re: Transactions without new blocks
Post by: KriszDev on July 26, 2014, 05:07:01 PM
There is a TXPool that contains all transaction that are currently not in any blocks. Miners solve blocks. When a block is found the miner generate the merkle root from the TXs in the TXPool (sign the block) after the merkle root is calculated nobody can modificate the block without modificating the header. So after the block is finished miner send it to the network and the network add it to the chain (orphane or not it will be added). The TXPool is not final so if you think u not wanna send your BTC then you just delete the TX and then it never will be sended (in that TX).


Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 05:12:36 PM
There is a TXPool that contains all transaction that are currently not in any blocks. Miners solve blocks. When a block is found the miner generate the merkle root from the TXs in the TXPool (sign the block) after the merkle root is calculated nobody can modificate the block without modificating the header. So after the block is finished miner send it to the network and the network add it to the chain (orphane or not it will be added). The TXPool is not final so if you think u not wanna send your BTC then you just delete the TX and then it never will be sended (in that TX).

I am sure my question was completely unclear, and probably that's why you have misunderstood what I am asking.

My question was about that what kind of new block the transaction will be included when there isn't a new block anymore? You said "Miners solve blocks", but precisely that's what I have been wondering, where the block will be coming from when there are no miners, in the scenario when all coins have been created?


Title: Re: Transactions without new blocks
Post by: TimS on July 26, 2014, 05:16:57 PM
There is no "last block". Miners will continue mining indefinitely (which is to say, as long as there is non-zero interest in Bitcoin). As the block reward (currently 25 BTC) shrinks to nearly-nothing and then goes away completely (circa 2140), it is transaction fees that will be the incentive for miners to continue.


Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 05:32:43 PM
There is no "last block". Miners will continue mining indefinitely. As the block reward shrinks to nearly-nothing and then goes away completely, it is transaction fees that will be the incentive for miners to continue.

Thanks! Yes, right now I can see that's what the wiki say as well that there is no last blocks. As per today, a relatively large processing power is required to mine a block and I assume at the time when the reward will shrink to zero the block creation will be more difficult, so the transaction fee must increase dramatically to provide the miners with incentive to continue creating new blocks. But of course this is not an issue right now at all and I just wanted to understand the concept.
Which is more current that there are Bitcoin based new altcoins (some of them scam some of them not) with POW period that is already ended, how those POW completed altcoins handle the new block generation? Similarly to the future of Bitcoin, as you said the miners generate new blocks for the transaction fee? Or those one which are POS coins generate the new block by rewarding the staking?


Title: Re: Transactions without new blocks
Post by: KriszDev on July 26, 2014, 05:50:34 PM
There is no "last block". Miners will continue mining indefinitely (which is to say, as long as there is non-zero interest in Bitcoin). As the block reward (currently 25 BTC) shrinks to nearly-nothing and then goes away completely (circa 2140), it is transaction fees that will be the incentive for miners to continue.

There is a last block. The larges values of the variable that they use to store block ids.(this is very large)


Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 05:59:52 PM
There is no "last block". Miners will continue mining indefinitely (which is to say, as long as there is non-zero interest in Bitcoin). As the block reward (currently 25 BTC) shrinks to nearly-nothing and then goes away completely (circa 2140), it is transaction fees that will be the incentive for miners to continue.

There is a last block. The larges values of the variable that they use to store block ids.(this is very large)

I think in the sense of block creation there is no last block, so Tims was completely right saying that there is no last block. Please see the wiki.

I appreciate you are making effort to help me to get answer for my question, and I fully realize that my question must be not worthy to answer for an experienced user/developer so I probably should be grateful whatever answer I get, on the other hand you had two inputs but none of them has anything to do with the original question of this thread, so it would be really great if you could address the original question of the thread :-)) I hope it is not impolite from my part to ask this :-))


Title: Re: Transactions without new blocks
Post by: jbrnt on July 26, 2014, 06:09:44 PM
The "last block" is not actual the last block in the blockchain. It meant the last block with a block reward.

There is no final block because in event of no active miners, anyone who wants to make a transaction can mine a block himself using basic CPU, since the difficulty will be very low.


Title: Re: Transactions without new blocks
Post by: KriszDev on July 26, 2014, 06:12:18 PM
I found what i was searching for
bitcoin source code "main.cpp" line 40:
Code:
map<uint256, CBlockIndex*> mapBlockIndex;
This code line makes a map with and uint256 index this is equals to 2^256-1 blocks (115792089237316195423570985008687907853269984665640564039457584007913129639935 block)


Title: Re: Transactions without new blocks
Post by: KriszDev on July 26, 2014, 06:13:32 PM
The "last block" is not actual the last block in the blockchain. It meant the last block with a block reward.

There is no final block because in event of no active miners, anyone who wants to make a transaction can mine a block himself using basic CPU, since the difficulty will be very low.

Well if all GPU or ASIC will stop mining on the same day then the difficult will stay hight. The only way to make it low is if they stop slowly.


Title: Re: Transactions without new blocks
Post by: jbrnt on July 26, 2014, 06:21:10 PM
Well if all GPU or ASIC will stop mining on the same day then the difficult will stay hight. The only way to make it low is if they stop slowly.

Yes, you are correct. Difficulty only adjusts every 2000 blocks (2016 I think). My presumption is a slow decline in miners.


Title: Re: Transactions without new blocks
Post by: cr1776 on July 26, 2014, 06:24:11 PM
There is no "last block". Miners will continue mining indefinitely (which is to say, as long as there is non-zero interest in Bitcoin). As the block reward (currently 25 BTC) shrinks to nearly-nothing and then goes away completely (circa 2140), it is transaction fees that will be the incentive for miners to continue.

There is a last block. The larges values of the variable that they use to store block ids.(this is very large)

I think in the sense of block creation there is no last block, so Tims was completely right saying that there is no last block. Please see the wiki.

I appreciate you are making effort to help me to get answer for my question, and I fully realize that my question must be not worthy to answer for an experienced user/developer so I probably should be grateful whatever answer I get, on the other hand you had two inputs but none of them has anything to do with the original question of this thread, so it would be really great if you could address the original question of the thread :-)) I hope it is not impolite from my part to ask this :-))

If there is ever a "last block" (and no one begins mining again ever) then bitcoin will cease to function because there will be no transactions occurring.  All the coins will be where they were and none will be able to move.  In all likelihood, it mining would ramp down slowly and so would difficulty.  Perhaps even low enough that someone might begin mining on a CPU again (or a lightbulb if it had enough CPU power in the future).

As far as rolling over the value of integer for nblockheight, with a 32 bit unsigned integer, at a 10 minute block interval we have more than 80000 years, so plenty of time to switch to a 64 bit integer.  ( (2^32)/(6*24*365) = 81715 if I didn't make a typo. )

:-)




Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 06:24:55 PM
The "last block" is not actual the last block in the blockchain. It meant the last block with a block reward.

There is no final block because in event of no active miners, anyone who wants to make a transaction can mine a block himself using basic CPU, since the difficulty will be very low.

I see, that make sense. As the target changed by the network time to time the difficulty will be very low, because when there is no incentive for mining the target will be adjusted and as you said everyone will be able to create a block with a CPU miner in order to have a place holder for the transaction. I think finally I understand :-))) Happy days :-))


Title: Re: Transactions without new blocks
Post by: mtomcdev on July 26, 2014, 06:26:36 PM
There is no "last block". Miners will continue mining indefinitely (which is to say, as long as there is non-zero interest in Bitcoin). As the block reward (currently 25 BTC) shrinks to nearly-nothing and then goes away completely (circa 2140), it is transaction fees that will be the incentive for miners to continue.

There is a last block. The larges values of the variable that they use to store block ids.(this is very large)

I think in the sense of block creation there is no last block, so Tims was completely right saying that there is no last block. Please see the wiki.

I appreciate you are making effort to help me to get answer for my question, and I fully realize that my question must be not worthy to answer for an experienced user/developer so I probably should be grateful whatever answer I get, on the other hand you had two inputs but none of them has anything to do with the original question of this thread, so it would be really great if you could address the original question of the thread :-)) I hope it is not impolite from my part to ask this :-))

If there is ever a "last block" (and no one begins mining again ever) then bitcoin will cease to function because there will be no transactions occurring.  All the coins will be where they were and none will be able to move.  In all likelihood, it mining would ramp down slowly and so would difficulty.  Perhaps even low enough that someone might begin mining on a CPU again (or a lightbulb if it had enough CPU power in the future).

As far as rolling over the value of integer for nblockheight, with a 32 bit unsigned integer, at a 10 minute block interval we have more than 80000 years, so plenty of time to switch to a 64 bit integer.  ( (2^32)/(6*24*365) = 81715 if I didn't make a typo. )

:-)




That make sense, thanks very much for the reply!