Bitcoin Forum
June 14, 2024, 11:46:28 PM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: A Visual Explanation of Subchains -- Secure 0-conf and massively scale Bitcoin  (Read 744 times)
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
December 25, 2015, 07:38:53 PM
 #1

A Visual Explanation of Subchains

Subchains are a practical application of "weak blocks," which add security to zero-confirmation transactions and permit massive scaling of Bitcoin.




Fig. 1.  Each time a block that satisfies the weak target is found, the subchain is extended.   When a block satisfying the strong target is found, the subchain is closed, becoming a strong block, and a new subchain begins.




Fig. 2.  Miners cooperate to build subchains in order to process more transactions and claim more fees without incurring additional orphaning risk.  This illustration visualizes "idealized" ¼-difficulty subchains (also referred to as 4x subchains).  In practice, each strong block may contain more or less than four weak blocks, due to randomness.




Fig. 3.  Miners build subchains layer by layer (a – c), where each layer corresponds to the solution of a weak block.  To propagate blocks (weak or strong), miners need only send their Δ-block and a reference to the subchain’s tip (f), reducing the quantity of transmitted bytes.  When a nonce that satisfies the strong target is found, the subchain is closed thereby becoming a strong block (d), and miners begin working on a new subchain (e).


For further reading, please refer to "Reduce Orphaning Risk and Improve Zero-Confirmation Security With Subchains."

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
Amph
Legendary
*
Offline Offline

Activity: 3206
Merit: 1069



View Profile
December 25, 2015, 07:45:29 PM
 #2

this is an incentive for miners right? to reduce orphan block? or it carry anything useful for the average joe?

on reddit they say that it will not require neither an hard fork or soft fork, this is good it's basically there, need consensus only
Jet Cash
Legendary
*
Offline Offline

Activity: 2730
Merit: 2462


https://JetCash.com


View Profile WWW
December 25, 2015, 07:50:49 PM
 #3

Please could you explain the difference between a weak target and a strong target.

Offgrid campers allow you to enjoy life and preserve your health and wealth.
Save old Cars - my project to save old cars from scrapage schemes, and to reduce the sale of new cars.
My new Bitcoin transfer address is - bc1q9gtz8e40en6glgxwk4eujuau2fk5wxrprs6fys
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
December 25, 2015, 07:55:18 PM
 #4

Please could you explain the difference between a weak target and a strong target.

If you watch the animation carefully, you'll see that to hit the weak target requires two fewer leading zeroes.  This makes the weak target four times easier to hit than the strong target (in this example).  How much easier the weak target is to hit control how many small gray circles (weak blocks) you'll get per large purple circle (strong block) in Fig. 2.

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
Peter R (OP)
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
December 25, 2015, 07:59:07 PM
 #5

this is an incentive for miners right? to reduce orphan block?

Correct.  It allows miners to build larger blocks and process more transactions per second (to claim more fees) without increasing their orphaning risk.  

Quote
or it carry anything useful for the average joe?

Assuming the block size limit is also raised, it will help to keep fees down.  It also adds measurable security to zero-confirm transactions that have been verified in a subchain.  

Quote
on reddit they say that it will not require neither an hard fork or soft fork, this is good it's basically there, need consensus only

Yes, it requires neither a hard nor soft fork; however, it is only useful if a significant fraction of the network hash power participates.  

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
franky1
Legendary
*
Offline Offline

Activity: 4256
Merit: 4523



View Profile
December 25, 2015, 08:08:49 PM
 #6

my limited understanding is:
transactions are hashed together as clusters (weak blocks) before then being incorporated into the main blockchain blocks.

that way while miners are hashing the main blockchain block, the pool is organising the transactions (clusters/subchain/weakblocks) ready for the next block
that way transactions can effectively be locked into the memory pool which could help reduce malleability attacks
also by hashing the transactions it pre-validates the transactions and so when the blocks are solved, the system knows the tx's are valid and thus other pools can just stale their attempts as soon as they see a winner because they know there wont be any invalids found in the winning block.. and its this staling other attempts instead of pushing on which will reduce orphans because the fight is over as soon as a first block is solved. rather than another pool continuing to solve a block and then both competing.

im more excited about the effective locking in of transactions into the 'weak blocks' as that will reduce peoples fear of accepting tx's that have not yet been confirmed by the main blockchain. as these 'weak blocks' are a pre-checked.

think of it as debiting funds out (locked in, making them unable to be used twice) before they are then credited to the recipient(confirmed on blockchain)

and yes by pre-checking tx's, miners dont have to worry as much about other miners having bad data, so can easily stop mining(stale) when a block is solved by someone else as they trust it has been checked. thus reducing orphans by not continuing mining even after a block has been solved.

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
StarenseN
Legendary
*
Offline Offline

Activity: 2478
Merit: 1362



View Profile
December 26, 2015, 01:07:07 AM
 #7

Brilliant addition for comprehension.
johnyj
Legendary
*
Offline Offline

Activity: 1988
Merit: 1012


Beyond Imagination


View Profile
December 27, 2015, 12:46:21 AM
 #8

If I understand it correctly, it split the broadcasting of the block data into 4 small pieces so that they don't arrive at the same time. So instead of one block which is 1MB, you have 4 weak blocks, each 250KB, broadcasted at 2.5 minutes interval

The question is, if both node A and node B mined a weak block at the same time, I suppose that they would continuously build on their own subchain while ignore the other's subchain, at the same time, they need to keep other's subchain just in case a new full block is mined from that chain. And I think a smaller block interval will dramatically increase the orphan rate due to lower difficulty (Who has the orphan rate data of litecoin?), so there will be several different subchains coexisting before the full block is mined

I think IBLT is a cleaner approach since it does not have such small check points




franky1
Legendary
*
Offline Offline

Activity: 4256
Merit: 4523



View Profile
December 27, 2015, 02:42:03 AM
Last edit: December 27, 2015, 04:17:08 AM by franky1
 #9

the problem i see is that every time the weak hash is found. more tx data is added and the hashing has to start again. which would make strong hashing very hard to achieve if it keeps needing to change data every couple minutes.. effectively starting from scratch from the hashing point of view

bitcoin mining does not instantly add tx's.. there is a lag of one blocklength(~10mins). where the tx's sit in the mempool and get preselected as to which tx's should be allowed in the very next block.

once one block is solved the large lump of pre-selected txdata is then hashed, never changing until a hash solution is found.

thats why i cant invision weakblocks being hashed instantly while miners are hashing that same everchanging data to get a strong solution..

i think it would work better if the weak blocks were dealt with separately and when a main block is solved the miners grab whatever amount of solved weakblocks there are to then hash out a fixed dataload of weakblocks until a strong solution is found

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
shorena
Copper Member
Legendary
*
Offline Offline

Activity: 1498
Merit: 1520


No I dont escrow anymore.


View Profile WWW
December 27, 2015, 07:09:45 PM
Last edit: December 28, 2015, 08:18:22 AM by shorena
 #10

the problem i see is that every time the weak hash is found. more tx data is added and the hashing has to start again. which would make strong hashing very hard to achieve if it keeps needing to change data every couple minutes.. effectively starting from scratch from the hashing point of view

bitcoin mining does not instantly add tx's.. there is a lag of one blocklength(~10mins). where the tx's sit in the mempool and get preselected as to which tx's should be allowed in the very next block.

once one block is solved the large lump of pre-selected txdata is then hashed, never changing until a hash solution is found.
-snip-

That should not matter much as there is no progress anyway. Adding more transactions to the block can also be a method to allow a new round of nonces.


There are other things though that can happen, e.g. what if 5 weak blocks of 250KByte are found before the next 1MB full block? With the variance its certainly possible. Are there no limits for the weak blocks? Are they set at the average rate they are found?

See franky1's answer below, I will read the pdf before asking further questions.

Im not really here, its just your imagination.
franky1
Legendary
*
Offline Offline

Activity: 4256
Merit: 4523



View Profile
December 27, 2015, 07:15:01 PM
 #11


That should not matter much as there is no progress anyway. Adding more transactions to the block can also be a method to allow a new round of nonces.


There are other things though that can happen, e.g. what if 5 weak blocks of 250KByte are found before the next 1MB full block? With the variance its certainly possible. Are there no limits for the weak blocks? Are they set at the average rate they are found?

yea the new round of nonces is where i said it resets the hashing.. which is bad for trying to get a strong hash if you keep resetting at weak hashes.

and there are other things i came across that im still throwing into scenarios. but if 5 weakblocks are found while the miners are solving the previous main block.. they simply grab 4 and leave 1 for the next block..
just the same as having 1.25mb of tx data in mempool.. they just grab 1mb and leave 0.25 for the next block

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
spartacusrex
Hero Member
*****
Offline Offline

Activity: 718
Merit: 545



View Profile
December 27, 2015, 08:14:46 PM
Last edit: December 27, 2015, 08:42:06 PM by spartacusrex
 #12

Isn't this the same as P2Pool ?

Miners search for easier blocks (weak target), each building on the last, until someone finds a block that satisfies the actual network difficulty (strong target).

The sending of only the 'delta' per block is interesting..

Life is Code.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!