Author

Topic: Output in coinbase transaction (Read 367 times)

staff
Activity: 3458
Merit: 6793
Just writing some code
May 02, 2018, 10:04:26 PM
#17
No client checks for coinbase transaction outputs (we've forgotten about segwit, have we?)
Output values are checked to make sure that no more than the correct value is created. The output scripts are not checked.
sr. member
Activity: 770
Merit: 305
May 02, 2018, 10:23:49 AM
#16

It's an invalid script why is this not rejected in the first place?
It's not invalid, but nonstandard (even though it may not have been deliberate)

Coinbase transaction [output script] can not be invalid or non-standard.
(Let me forget about segwit commitment data)
Because there is no definition for "standardness" of coinbase transaction itself and its outpoints.
No client checks for coinbase transaction outputs (we've forgotten about segwit, have we?)
Either coinbase transaction is valid, or you can not see this block in blockchain because it does not exist.
legendary
Activity: 3472
Merit: 4801
April 30, 2018, 02:10:57 PM
#15
That's actually the Coinbase transaction of Block 169398
The snafu was caused by a bug in F2Pool's software

You are correct.

I didn't look close enough at the transaction. I've fixed my post, and awarded you merit for catching my mistake (thank you).


Did block reward of 50 BTC in this transaction is got distributed to multiple addresses?

Some of it did.  The rest of it was not distributed at all.  It remained unclaimed and therefore no longer exists.

sr. member
Activity: 322
Merit: 363
39twH4PSYgDSzU7sLnRoDfthR6gWYrrPoD
April 30, 2018, 02:01:26 PM
#14

For example, this transaction spending 0.02BTC is nonstandard, but not invalid, even though it's outputs can't be redeemed.
transaction is NOT a block reward transaction.
Huh
That's actually the Coinbase transaction of Block 169398
The snafu was caused by a bug in F2Pool's software
legendary
Activity: 3472
Merit: 4801
April 30, 2018, 10:49:33 AM
#13
I used to think that one miner (or one address) will get all the rewards.

The miner (or mining pool) that creates the block gets to choose how to create the outputs in the block reward transaction.

Typically they will just assign the entire reward to a single address, however they are not required to do so and can break it up into multiple outputs if they want to.
sr. member
Activity: 742
Merit: 395
I am alive but in hibernation.
April 30, 2018, 10:37:20 AM
#12
For example, this transaction spending 0.02BTC is nonstandard, but not invalid, even though it's outputs can't be redeemed.

Did block reward of 50 BTC in this transaction is got distributed to multiple addresses ? I used to think that one miner (or one address) will get all the rewards.
sr. member
Activity: 322
Merit: 363
39twH4PSYgDSzU7sLnRoDfthR6gWYrrPoD
April 24, 2018, 07:38:16 AM
#11

It's an invalid script why is this not rejected in the first place?
It's not invalid, but nonstandard (even though it may not have been deliberate)
(The script itself is invalid, but the transaction as a whole is valid because it obeys bitcoin protocol rules.
It's possible to have an invalid script but a valid transaction eg this one, and a valid script but an invalid transaction eg one whose input has been included in the blockchain)
Invalid means that it tries to break bitcoin protocol rules in some way (eg double spending, if the script stack returns false, creating more outputs than inputs --1 BTC input creating 5BTC output for example , etc)
As long as it doesn't conflict with transaction protocol rules then it's "valid"

Nonstandard transactions are the ones that don't follow the script templates of the reference software eg P2PKH, P2SH, etc.
Nonstandard transactions can be included in a block (as long as they follow the rules), but invalid transactions cannot be included in a block.
For example, this transaction spending 0.02BTC is nonstandard, but not invalid, even though it's outputs can't be redeemed.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
April 24, 2018, 07:08:15 AM
#10
Wow it's so complicated using all these inputs and outputs to see whats going on and I wonder how in the
past we ever managed to move money from one account to another without it all.

You don't think that something is fundamentally wrong with a design when it has to get this complicated do you  Cheesy
The design is pretty thoughtful IMO. It seems to be pretty complicated to implement a system which doesn't seperate Bitcoins into individual parts and UTXOs while still maintaining the difficulty of executing a double spend attack. Using the traditional accounting system to keep tab on every single address would be even more complicated.

Does an average joe need to understand how every single detail work? Probably not.
member
Activity: 210
Merit: 26
High fees = low BTC price
April 24, 2018, 07:00:10 AM
#9
Wow it's so complicated using all these inputs and outputs to see whats going on and I wonder how in the
past we ever managed to move money from one account to another without it all.

You don't think that something is fundamentally wrong with a design when it has to get this complicated do you  Cheesy

legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
April 24, 2018, 06:55:31 AM
#8
It's an invalid script why is this not rejected in the first place?
As far as I know, Bitcoin's reference nodes does not specifically check for invalid scripts for the output and the checking of address is mainly up to the wallet/software that created it. The reference nodes just checks the validty (eg. The amount of coins in the output is lower or equals to total value of output.).

The main problem is that the software wasn't tested by whoever did it and it went live on the network.

*Though as pointed out, it is nonstandard.
member
Activity: 61
Merit: 15
April 24, 2018, 05:31:17 AM
#7
For example this Coinbase transaction has an output of 0

The output script is
Quote
Null script or error decoding
52534b424c4f434b3addbf517adf8ffd4bca7751505b39c9013a0d1fd479fc4e901b39dd57b347c 624

It's an invalid script why is this not rejected in the first place?
sr. member
Activity: 322
Merit: 363
39twH4PSYgDSzU7sLnRoDfthR6gWYrrPoD
April 24, 2018, 01:47:43 AM
#6
what a waste!! a full block reward of 12.5 BTC evaporate into thin air Cry
are they doing it intentionally? or was it caused by accidental faulty script running on their nodes?
This one looks like the miner's mistake, he might have entered an invalid bitcoin address in his mining console or configuration.
Who knows.
The Output script of the transaction is
Code:
52534b424c4f434b3addbf517adf8ffd4bca7751505b39c9013a0d1fd479fc4e901b39dd57b347c624
which, when converted to ASCII gives
Code:
RSKBLOCK:Ý¿Qzß�ýKÊwQP[9É:
ÔyüN�9ÝW³GÆ$
so it may have something to do with the Rsk.co sidechain
full member
Activity: 434
Merit: 246
April 24, 2018, 01:26:18 AM
#5
The rule states that it can't be MORE than the current block subsidy, but it can certainly be less.
It can also be EXACTLY 12.5 BTC in case an empty block is mined.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
April 23, 2018, 10:18:45 PM
#4
For example this Coinbase transaction has an output of 0
This one looks like the miner's mistake, he might have entered an invalid bitcoin address in his mining console or configuration.
hero member
Activity: 1232
Merit: 738
Mixing reinvented for your privacy | chipmixer.com
April 23, 2018, 09:24:02 PM
#3
The rule states that it can't be MORE than the current block subsidy, but it can certainly be less.
For example this Coinbase transaction has an output of 0, while this one is 0.01BTC less than the block reward
In cases like this the bitcoins are lost forever.
what a waste!! a full block reward of 12.5 BTC evaporate into thin air Cry
are they doing it intentionally? or was it caused by accidental faulty script running on their nodes?
sr. member
Activity: 322
Merit: 363
39twH4PSYgDSzU7sLnRoDfthR6gWYrrPoD
April 23, 2018, 07:28:27 PM
#2
The rule states that it can't be MORE than the current block subsidy, but it can certainly be less.
For example this Coinbase transaction has an output of 0, while this one is 0.01BTC less than the block reward
In cases like this the bitcoins are lost forever.
member
Activity: 61
Merit: 15
April 23, 2018, 07:16:37 PM
#1
It appears that the output in a coinbase transaction are of the same structure as other transactions - both value and output script can be set.
I know it is of one's best interest to set output equal to current block reward plus all transaction fees, and it certainly can't be more. But can it be less? For example, current block reward is 12.5, and say all transaction fee sums to 0.5, can coinbase output just be 12.5? Or even 10? Is this valid situation and will get confirmed?
If the answer is yes, then what really happens here? Do some coins just disappeared forever? Does the total bitcoin money supply decreases also?
Jump to: