Why would the balance chain need to be shared on the network? It can easily be computed using the transaction chain, since each balance block specifically covers "up to" a certain transaction block. Only the nonce values would have to be shared on the network for the balance blocks.
Hmm interesting.
So the node solving the balance block just broadcasts the balance block header and every node constructs and verifies the balance block locally. Once a balance block is deep enough in the balance blockchain it for all intents and purposes can become the genesis block and data prior to it (both balance blocks and tx blocks) can be truncated to save space.
I would make the balance block more like tx block difficulty x 1000. Since you need to record all unspent outputs having too many balance blocks simply increases the workload on the network. At block difficulty x 1000 there would be a new balance block ~ once every week.
So the next question becomes how do you bootstrap a new node if not all nodes have blocks going back to the genesis block?
Boostraping a new node could be done something like this:
Node requests the oldest active balance block (say balance block 6** blocks deep.
Node downloads this block and considers it an unverified "genesis balance block".*
Node requests and downloads all tx blocks since the "genesis balance block".
Node requests headers for the newer balance blocks.
Node constructs and verifies the subsequent balance blocks.
Node now has a complete history from the balance block to now. To spoof this would require work equal to (balance block depth)*(balance block difficulty)
* This new node will never have any tx history prior to this block. From this node' point of view the network began here.
** 6 was chosen arbitrarily but some number would provide sufficient assurance that the block is legit. If a BB is 100x harder than normal block then verifying a chain 6 deep represents 600 blocks worth of hashing power.
A very interesting idea.