I wanted to know if is there a block property in ethereum that (is not determined) no one knows (even the miner of that block) before publishing it to the network?
A way of describing the process of mining, is calling it 'sealing blocks'.
Simply put, PoW mining is the process of finding a nonce
n such that a block
H(b) and the nonce put into a certain function
PoW(n, H(b)) outputs a value that is higher (or lower, depending on the implementation) than the difficulty,
As the difficulty
d increases, finding the correct nonce
n takes more and more computing power, also called 'hash power'. In Ethereum, the difficulty is set such that all hashing power in the world combined can find blocks in around 15 seconds, the block time.
It takes up a lot of hashpower to mine a block, and as such, it's not economically viable to do so. From this property comes the safety of Proof of Work mined blockchains.
b contains all of it's properties, like the timestamp, the coinbase, and all of the transactions contained in it. Changing any element of
b will result in
H(b) to totally differ. Therefore, finding the nonce has to be done over again: the block was 'sealed'.
As a result, the block properties that are contained in
b cannot be altered once mined, unless an enormous amount of hashpower is put into doing so.
Any property that is not contained in
b, is not secured by the proof of work and therefore is not relied upon, it's content is not trusted to be correct. In a peer-to-peer network where no-one can be trusted, these properties have no value.
The new block shall be pointed to by the following blocks, but shall not be modified in any part or field after validation.
On the other side, all properties are just fixed when the block is proposed for “publication”, so after the proposed publication it is not changed anymore and it is completely readable.