--- Log opened Tue Mar 10 00:00:19 2020 01:28 < jeremyrubin> 1. No CTV can't help Arwen because Arwen targets a minimum viable blockchain protocol, so CTV can only help with CTV compatible chains 01:29 < jeremyrubin> However, CTV could help by allowing you to open contracts with many arwen exchange instances simultaneously with one root 01:31 < jeremyrubin> 2. I haven't been able to understand what statechains are so can't answer. 01:32 < jeremyrubin> But to the extent I do understand it, you could create lots of smaller change value UTXOs in a state change (e.g., imagine a tree of 0.00001 UTXOs) where at each level they combine up by whatever radix. Then you can separately trade parents and child using statechain updates and allow people to own higher interior nodes as leafs, eliminating some state 01:33 < jeremyrubin> will fix typo 01:33 < jeremyrubin> 4. CTV is used to issue the payment to all miners in a tree saving block space. 01:34 < jeremyrubin> Miners can also be paid out in non-interactive setup channels, allowing them to eliminate payouts and collapse the state down to a single utxo per miner when withdrawing from the pool, or do a trustless withdraw if the other miner(s) are offline. 01:36 < jeremyrubin> CTV is needed because you want to be able to elide the state from the chain, which allows you to pick a number bigger than 5 (e.g., 10000) so that the variance can be brought down enough without dominating block space 01:36 < jeremyrubin> It's also needed to initialize non-interactive layer 2 protocols 01:37 < jeremyrubin> The data for the construction (redeemscript) does not need to be propagated to the other miners, because the CTV hash is deterministically derived from the last N blocks 01:37 < jeremyrubin> So all miners in the pool would already have it 09:18 < bsm117532> Yep. (that occurred to me later too...) 09:18 < bsm117532> However, given N previous blocks that *might* be part of the pool, you have a combinatoric explosion in computing the number of CTV outputs. 09:18 < bsm117532> e.g. N previous blocks with a single coinbase output that looks like it could be part of the pool. 09:18 < bsm117532> Now I have to do choose(N, N-1), then choose(N, N-2) until I find the right redeemScript/address, which is a factorial, and a pretty serious DDoS vector. A competing miner/pool could create just a couple look-alike blocks to DDoS the pool and force all miners into a factorial computation. 12:42 < jeremyrubin> No it's not 12:43 < jeremyrubin> Because you start the protocol at a known block height (e.g., when you write the code and release it) and then no blocks prior to that participated. 12:44 < jeremyrubin> Then, the first block of the pool is a hardcoded "genesis" signifier. This is the first block in the pool, and is desirable to mine because there are zero predecessors and you'll get revenue share 12:45 < jeremyrubin> The next block now has to include a CTV tree based on a deterministic rule that would include the genesis block 12:45 < jeremyrubin> If it doesn't you tag it as not participating 12:45 < jeremyrubin> If it does, you tag it as participating 12:45 < jeremyrubin> You keep on doing this as you go on. 12:46 < jeremyrubin> When you look back, you have cached these tags on the headers if they conformed or not 12:46 < jeremyrubin> so no need to recompute --- Log closed Wed Mar 11 00:00:21 2020