00:04:38 yanmaani I also wonder if the mechanism described with enable a dirt-cheap spam attack. Normally to raise the block median you need at least 50+% of blocks to pay a penalty. In this case, you could maintain a high block median with 51% blocks at the median, and 49% of blocks way below the median collecting scrip. Then, to raise the median you now make 49% of blocks using max blocks + collected scrip 00:04:38 (avoiding penalty) and 2% paying penalty. 00:16:27 UkoeHB_: Isn't the marginal penalty 0 for everything up to the limit? 00:17:26 My claim is that they will keep blocks at the limit, because it costs nothing to do so, but only push it if people pay for it. So the median block size is a floor on block size 00:18:18 Sure, but suppose you have 11 tx, 10 with fee=tiny, 1 with fee=big, and the block limit is 10 tx. Now, will the miner add all 11 tx to the block? No, he will only add 10, and leave out one tx with tiny fee, since it isn't enough to offset the marginal penalty. 00:18:32 sure 00:18:43 but if the block limit is 10 tx, and there is 1 with fee=tiny 00:19:14 then the miner will create 9 new txns, with fee = whatever 00:19:17 and pay himself 00:19:47 as for the spam attack: you'd need to pay money for the scrip 00:20:14 and you lose opportunity costs from all that 00:20:28 so, avoiding profitable txns to gather scrip equals buying scrip 00:20:44 and buying scrip to do a spam attack is the opposite of profitable 00:21:55 fundamentally, scrip will never allow you to bload the blockchain, since you can never take out more than you put in 00:22:11 you can't 'borrow' from a central bank, "I'll make this one very big but a future block small" 00:22:29 you have to first cut, then increase 00:22:43 Ok suppose we have a stepwise function in the tx volume: 20 tx/min, 10 tx/min, 20 tx/min. Originally the penalty free zone is 20 tx, and all tx have tiny fees to fill it up. Then honest volume falls to 10 tx/min, and fee revenue falls in half (still tiny fees). If the miner fills the gap, with 10 fake tx, he doesnt gain anything now. Then tx volume goes back to 20tx/min and fee revenue doubles again. 00:22:43 Consider the alternate case where he didnt add fake tx. The penalty free zone falls to 10tx/min, then tx volume rises to 20tx/min again. Suddenly tx authors must pay big fees to push into the penalty zone. Miner revenue will be higher since 20tx with high fee will be in sum higher than the marginal penaltyQ 00:23:32 It takes 4x the block reward to fill blocks with tx all the way to the max block size 00:23:36 in fees 00:23:43 But he doesn't get it, does he? 00:23:49 Why not? 00:23:50 TX authors pay big fees, but this goes to the block stuff 00:23:59 It goes to miners? 00:24:12 there's always multiple miners. And for the collective of miners, block penalties are a net drain 00:24:26 No, the block reward goes down, that's what the penalty does 00:24:32 else miners could just pay themselves and shit 00:24:47 Sure, and it is more than offset by fees 00:25:01 Yes. But they don't get it. 00:25:21 If you need to pay $100 of penalty to get a transaction in, and your TXN fee is $100, then that's $0 for the miner. 00:25:30 So miners have no incentive to keep penalties high, the contrary. 00:26:00 That's just the marginal penalty. All other tx in a block must also pay that same fee 00:26:15 so it's more like 400$ in fees, and miner gets 300$ 00:26:26 above the original block reward of 100$ 00:26:43 Wait, do all transactions in a block all pay the same fee? 00:27:00 They must at least all pay the marginal penalty, to get into the penalty zone 00:27:11 Assuming miners are not altruistic 00:27:41 All? Surely only some of them do, although they can't know which beforehand? 00:28:07 Miners as I see it have no incentive to have high penalty fees. That's just money going from users to deflation. 00:28:24 Why would a miner add a tx if its fee isnt enough to offset the marginal penalty from adding it? He can iterate through all potential tx to test it 00:28:39 If we define net txn fee as (gross txn fee - penalty required to include), then miners seek to optimize net txn fees 00:28:48 So if the penalty goes up, that is bad 00:28:52 and if penalty goes down, that is good 00:28:54 for them 00:29:40 it wouldn't, but penalties are still a drain for the miners. Miners don't have incentive to keep penalties high 00:30:08 since they don't get any of the money from them. You can see penalties as a "fee on the fees" if you will 00:30:19 Hm how to say this better lol 00:31:14 the net penalty will always be lower than the net fees, and the higher the penalty, even higher will be the net fees 00:31:33 since the marginal penalty is linear and not constant 00:32:05 wait what? 00:32:26 you can think of filling up a bucket, the heaviest tx fee will always fall to the bottom, and lowest fees sit on top 00:32:29 The gross penalty will always be lower than the gross fees you mean? 00:32:35 As in, the net fee will always be positive 00:32:42 As in, miners will not light their money on fire 00:32:43 if the lowest fee in a set of tx can't offset the marginal penalty, it wont be included in a block 00:32:52 right 00:33:30 but as the penalty gets higher, the lowest fee for a marginal tx gets bigger and bigger, so the sum of fees also grows with the marginal penalty 00:33:47 while the total penalty is the integral, and hence lower 00:35:06 this seems unintuitive. It's a straight optimization problem. Were the penalty lower, then miners could also fill the blocks better. 00:35:31 Like, you have an infinite supply of widgets, and people are willing to buy. How many do you sell? 00:35:41 The answer isn't 'all of them', because then the price goes to 0 00:35:53 the answer isn't 'none', because then the volume is zero 00:37:49 As a reductio ad absurdum: if what you're saying is true, then shouldn't miners wish to crank up penalties to infinity? 00:38:43 (no, since they'd price out otherwise perfectly good txns) 00:39:39 for a set of tx to 'buy' additional space in a tx, all its component tx must have higher fee than the marginal penalty of that space. tx_set_total_fee = num_tx*largest_marginal_penalty, while total_penalty = sum[marginal_penalties], where those marginal penalties are all smaller than the bought space. So the next largest marginal penalty grows the tx set another delta(marginal_penalties)*tx_set_size 00:39:46 it reduces to a collective bargaining problem which is just generally messy - a selfish miner would want to cash out as much as it can as fast as possible, a cooperating miner would want to keep the block reward high enough to collect many fees, but low enough to cause congesion. 00:40:11 Right. So why don't miners want for the penalty algorithm to be 2^(2^(excess size))? 00:40:29 big penalties = big profits, no? 00:40:50 Well I doubt anyone has thought this far into it lol 00:41:08 But it's not that easy to manipulate penalties in the first place 00:41:30 yeah but if they could 00:42:02 are you saying the greatest profit would be in just raising them to infinity? 00:42:43 Greatest profit is raising penalty to the block reward, in which case total fees are at minimum about 3-4x the block reward 00:43:04 how do you know this? 00:43:09 Excel 00:43:20 doesn't this assume demand inelasticity? 00:43:44 If there's an infinite number of people who want to pay fees, and the penalties are zero, the profits would be infinity. 00:43:50 Well yes 00:43:54 at minimum I said 00:43:59 If the penalties are anything higher than zero, the profits would not be infinity 00:44:20 so it seems as if you can create some scenarios in which it is not beneficial. And it depends on the shape of the demand curve. 00:45:35 You'd have to convince a lot of miners to forego fees for many blocks (at least 51% usually) 00:45:56 No, in a hypothetical scenario when they can just make it up 00:46:01 So the dynamic effect does not kick in, quite hard to coordinate 00:46:09 then it would be best for them, in that scenario, to have 0 penalty 00:47:18 So what you have is a collective bargaining problem, price optimization, all that stuff 00:47:23 classical economics basically 00:48:05 Seems that way 00:50:34 Basically you'd be forcing static block rewards lol 00:50:40 block size* 00:54:07 Which can be independent of the penalty itself. Why not just force the static size to be the penalty free zone? Then you get block reward AND fees, just like bitcoin. 00:57:19 Actually no, still better to fill as many blocks as possible. Although the price point on fees would be different if available block size fell by 1/3, which may actually increase total income. 01:14:22 Maybe the most interesting dynamic is a miner cabal that enforces a fixed block size will raise profits for new blocks, inviting new miners in who will reduce the cabal's share of blocks and reduce the profitability of their hash power. In the end, profits will always stabilize at the standard profit rate, making the cabal's effort mostly useless (especially given how rapidly hash rate can respond to 01:14:22 changes in profit margins)! 03:04:46 When it comes to miner incentives, miners already have a strong incentive to keep locks small because they profit from the penalty 03:04:57 I covered this in my talk at the CDC in 36c3 https://frab.riat.at/en/36C3/public/events/125.html 03:07:05 Basically it comes down to the interaction between rational miners and users 03:08:18 So I do not see the need for additional miner incentives to keep blocks small 03:08:50 Monero is very different from Bitcoin in this 03:09:40 In Bitcoin it can e very profitable for miners to spam the network in order to force fees higher and this does occur 03:10:04 This type of spam attack does not work in Monero 03:10:42 It seems a large cabal of miners could artificially and temporarily force fixed block rewards, driving up fees. 03:10:46 fixed block sizes* 03:11:26 How does this incentive work? 03:11:53 Since fees can go quite high without dynamic changes to size 03:12:30 Although new miners would break the cabal, I wonder about a cyclic enforcement of fixed sizes. Although loss of profits on the downswing could counteract profit gains on the upswing 03:15:10 The long-term consequences on purchasing power might be dramatic though, if the network is suspected to be malicious 03:16:05 A large cabal of miners this sounds like a 51% attack 03:16:18 Yeah a new kind of 51% attack 03:19:06 and for starters 1) They have to pay the penalty upfront in order to create the large blocks 2) They loose the profit on the penalty on natural growth 3) There is a large incentive to break ranks and simply profit from the fees and penalty payments 03:20:26 and yes they loose also on the downside 03:22:40 An interesting thought experiment anyway 16:18:07 Some _very_ early work on a C++ test implementation of Triptych: https://github.com/SarangNoether/monero/commit/d8063577eaca7fae7a1b07a72b536a21be3a35fa 16:18:21 Please don't use it for anything even remotely important 16:18:35 brb launching a new coin 16:19:05 Goal is to do a practical verification complexity comparison with CLSAG and MLSAG 16:19:23 But this commit lacks a lot of optimizations, as well as a bunch of basic checks and tests 16:27:25 kind of cool that it's only like 600 loc 16:39:47 sarang: make sure to add a license header :) 16:40:27 Yep, haven't added that either ! 16:50:15 selsta: done 22:02:27 sarang in your timelock construction, is the difference between the locktime of the input and output recorded in a similar fashion to the current transaction fee? 22:35:04 do you mean the hidden timelock construction? 22:45:20 yes 22:49:07 hm I think a tx records for its outputs: pedersen commitment to timelock, encoded timelock (similar to encoded amount); for its inputs' timelocks it records for each: pseudo timelock commitment, and a new reference timelock t' in cleartext which is >= the original timelock 22:51:30 the scheme might update timelock to be on a per-output basis, instead of per-tx basis, in which case the timelock commitment and encoded timelock would be one per output 22:55:14 ah, there would only be one reference timelock for the entire tx 23:45:12 What do you mean with "reference timelock"?