sipa changed the topic of #bitcoin-wizards to: This channel is for discussing theoretical ideas with regard to cryptocurrencies, not about short-term Bitcoin development | http://bitcoin.ninja/ | This channel is logged. | For logs and more information, visit http://bitcoin.ninja
c0rw1n has joined #bitcoin-wizards
AaronvanW has quit [Ping timeout: 252 seconds]
Alopex has quit [Remote host closed the connection]
<Taek>
I've said a few times in this channel that I don't think it's possible to do a fee pool because the miners can get paid out of band
<Taek>
but, I thought that maybe you could have the miners commit to the entire mempool
<Taek>
and then based on the hash of their block, a deterministic algorithm selects randomly from the mempool, weighted by tx/byte or something
<Taek>
for incentive compatibility, you need:
<Taek>
<Taek> 1. it's always to your benefit to include a tranasction with real fees
<Taek>
<Taek> 3. it's never profitable to add your own bogus transactions with fees to yourself
<Taek>
<Taek> 2. it's never more rewarding to receive those fees out-of-band
<Taek>
with maybe some minimum required fee/byte based on Fn(mempool_size)
<Taek>
I think you can achieve #1 & #2 with a flexcap, where larger mempool means a bigger block is accepted
<Taek>
and then #3 is not so bad either, becuase if your own transaction is randomly selected, your effective fee gain is 0 where it could have been some other non-zero-fee transaction
instagibbs has joined #bitcoin-wizards
<Taek>
so you just have to make sure that adding your own transactions does not grow the allowed block size by too much
<andytoshi>
i think it's hard -not- to get #3 in any scheme
rusty has joined #bitcoin-wizards
rusty has quit [Changing host]
rusty has joined #bitcoin-wizards
<andytoshi>
does setting a "100% chance of inclusion" threshold then having every transaction independently selected with fee/byte / threshold probability, do it?
<Taek>
hmm that's an interesting thought. A miner wouldn't know how big their block might end up being
<Taek>
which I think is totally fine
<andytoshi>
true. so the mempool they commit to would maybe have to be capped in size
<andytoshi>
but ya, i think this is fine
MoALTz has quit [Ping timeout: 248 seconds]
<Taek>
I think min_fee would need to be exponential in the size of the mempool to guarantee safety
<andytoshi>
what does min_fee do specifically?
<Taek>
caps the mempool size
<Taek>
so, if mempool is 100MB, min_fee for each transaction would be (for example) 10 satoshis per byte
<Taek>
hmm
<andytoshi>
mm i think this makes miners able to make DoS blocks
<Taek>
yeah that's why I was saying it'd need to be exponential in the size of the mempool
<andytoshi>
better to just keep the 4Mb weight cap and apply this to "if every transaction was selected" i think
<andytoshi>
maybe you could be a bit smarter than that
<Taek>
If you don't flexcap it I don't see how you achieve #1
<andytoshi>
well if the block is full i don't see that you can get #1
<Taek>
if your mempool consists of the 4MB of highest-fee txns, you can only lose money by adding lower fee txns
<andytoshi>
yeah, i think that's intrinsic to a system with a blocksize cap
<Taek>
but with flexcap you've got some wiggle room
<Taek>
except you have to watch out for DoS blocks now
<Taek>
some miner throwing 5000 BTC into fake fees with the intention of making 15MB blocks
<andytoshi>
right
<andytoshi>
but i see what you're getting at now
<Taek>
Depending on how happy people are to have a deep mempool...
<Taek>
you could make the cap scale very slowly
<Taek>
e.g. 10MB mempool -> 50kb block
<Taek>
hmm at 100 sats/byte minimum that's still only 1 Bitcoin per MB of mempool.
<Taek>
Someone with 5000 BTC could afford a 5 GB mempool at that rate
<Taek>
Maybe the numbers do not work out so well
snthsnth has quit [Ping timeout: 260 seconds]
DigiByteDev has joined #bitcoin-wizards
AaronvanW has joined #bitcoin-wizards
DigiByteDev has quit [Ping timeout: 260 seconds]
AaronvanW has quit [Changing host]
AaronvanW has joined #bitcoin-wizards
jannes has quit [Quit: Leaving]
Ylbam has quit [Quit: Connection closed for inactivity]
AaronvanW has quit [Ping timeout: 252 seconds]
AbelianGrape has joined #bitcoin-wizards
AbelianGrape has quit [Quit: leaving]
AbelianGrape has joined #bitcoin-wizards
<AbelianGrape>
Let's say I want to build some software that looks at the confirmed balance of a given address; what is a good Bitcoin node implementation with a convenient API for doing that? The address will not be known in advance, but the node software can also expect that any transactions to that address will only happen *after* the node has been made aware of the address.
<AbelianGrape>
The use-case is for an automated payment platform. I just need to write some software that provides an address it's expecting to receive money at, and gets a notification when a transaction sending money to that address is confirmed.
<Taek>
#bitcoin-dev
Sleepnbum has joined #bitcoin-wizards
<AbelianGrape>
Ah, my mistake. What is this channel for?
<Taek>
!topic
<gribble>
This channel is for discussing theoretical ideas with regard to cryptocurrencies, not about short-term Bitcoin development | http://bitcoin.ninja/ | This channel is logged. | For logs and more information, visit http://bitcoin.ninja
<AbelianGrape>
Whoops! Thanks
<andytoshi>
Taek: they also can double spend within the mempool to save fees, and get away with it with nontrivial probability
<andytoshi>
this needs some calcs.
v20100 has quit [Ping timeout: 260 seconds]
windsok has quit [Ping timeout: 250 seconds]
btcdrak has quit [Quit: Connection closed for inactivity]
WungFu has quit [Ping timeout: 252 seconds]
Burrito has quit [Quit: Leaving]
jtimon has quit [Ping timeout: 268 seconds]
v20100 has joined #bitcoin-wizards
CrazyLoaf has quit [Quit: Connection closed for inactivity]
snthsnth has joined #bitcoin-wizards
AbelianGrape has quit [Quit: leaving]
_whitelogger has joined #bitcoin-wizards
CrazyLoaf has joined #bitcoin-wizards
adlai has quit [Ping timeout: 258 seconds]
snthsnth has quit [Ping timeout: 260 seconds]
resultsmayvary has quit [Ping timeout: 260 seconds]
adlai has joined #bitcoin-wizards
NewLiberty has joined #bitcoin-wizards
aalex has joined #bitcoin-wizards
mol has joined #bitcoin-wizards
airbreather_ has joined #bitcoin-wizards
molz has quit [Ping timeout: 260 seconds]
airbreather has quit [Ping timeout: 260 seconds]
aalex has quit [Ping timeout: 260 seconds]
snthsnth has joined #bitcoin-wizards
DigiByteDev has joined #bitcoin-wizards
DigiByteDev has quit [Ping timeout: 250 seconds]
v20100 has quit [Ping timeout: 260 seconds]
r0ach has quit []
windsok has joined #bitcoin-wizards
Alopex has quit [Remote host closed the connection]
Alopex has joined #bitcoin-wizards
shesek has joined #bitcoin-wizards
snthsnth has quit [Ping timeout: 256 seconds]
DigiByteDev has joined #bitcoin-wizards
legogris has quit [Remote host closed the connection]
legogris has joined #bitcoin-wizards
btcdrak has joined #bitcoin-wizards
pro has quit [Quit: Leaving]
TheSeven has quit [Ping timeout: 260 seconds]
TheSeven has joined #bitcoin-wizards
snthsnth has joined #bitcoin-wizards
<Taek>
I don't think that matters
<Taek>
*andytoshi
<Taek>
If you double spend in the mempool and don't get caught, the canonical blockchain is still valid
<Taek>
And if you do get caught, your block is tossed
<Taek>
Err, you're guaranteed to get caught if both sides of the double spend are selected
<Taek>
Unless you are suggesting that one might be able to boost the selection probability/value for high-value transactions by having them included multiple times
<Taek>
In which case perhaps that is a valid attack
DigiByteDev has quit [Quit: DigiByteDev]
<aj>
Taek, andytoshi: if you have "mempool is 100MB -> 1e9 satoshis must be paid to "CLTV 1008 blocks"" you get an okay flexcap.
<aj>
err, "block is 100MB" i mean... i don't see how mempool commitments would work; how would you convince anyone to actually send the mempool contents that match the commitment?
<rusty>
aj: I think the idea is you select some "randomly" and those get confirmed too, IIUC.
<rusty>
(randomly == via block hash)
<aj>
rusty: right, but then you just hide some high fee paying ones to yourself and keep selecting randomly until they're not found?
<rusty>
aj: discarding blocks is expensive.
<aj>
rusty: oh, you mean the mined block, interesting
<aj>
rusty: decent chance there's a reasonable tradeoff to make there: if it's profitable to mine 1MB blocks at 50s/byte, then it's more profitable to mine 2MB blocks at 40s/byte even if you discard 35% of them (assuming all income is fees)
<rusty>
aj: I think numbers are acutely effected by how many txs you have to reveal.
<aj>
rusty: i don't see how you'd reveal any txes that aren't included in the block
<aj>
rusty: (if you did, they'd be essential to verify the block was valid, so... include them in the block?)
<rusty>
aj: no, you have to send the merkle proofs and txs with the block.
<aj>
rusty: so, all the txes you mine (and actually collect the fees from), you include in the block, along with a merkle proof that they match the random subset of the merkle tree you committed to in the block
<rusty>
Basically, yeah. Which means you drop fees for those proven ones, interestingly.
<aj>
rusty: which proven ones? why would you prove extra transactions, without also mining them (ie, confirming them and collecting their fees)?
<aj>
rusty: otherwise you'd need eg 1.5MB of data for a 1MB block, then the .5MB might get confirmed in the next block but would have to be repeated?
<aj>
weird
<rusty>
NM, I didn't read the backscroll and was thinking of something else.
<aj>
also, if you're randomly selecting transactions, that'd make it hard to do fee price discrimination based on how urgent people wanted to get their transactions in...
Chris_Stewart_5 has quit [Ping timeout: 245 seconds]
Sleepnbum has joined #bitcoin-wizards
Sleepnbum is now known as Guest59258
Noldorin has joined #bitcoin-wizards
BashCo_ has quit [Remote host closed the connection]
btcdrak has quit [Quit: Connection closed for inactivity]
BashCo has joined #bitcoin-wizards
Chris_Stewart_5 has joined #bitcoin-wizards
NewLiberty has quit [Ping timeout: 258 seconds]
BashCo has quit [Ping timeout: 260 seconds]
DigiByteDev has joined #bitcoin-wizards
WungFu has joined #bitcoin-wizards
abpa has quit [Ping timeout: 260 seconds]
CubicEarth has joined #bitcoin-wizards
BashCo has joined #bitcoin-wizards
WungFu has quit [Ping timeout: 258 seconds]
WungFu has joined #bitcoin-wizards
CubicEarth has quit [Remote host closed the connection]
Chris_Stewart_5 has quit [Ping timeout: 250 seconds]
chjj has quit [Quit: WeeChat 1.6]
CubicEarth has joined #bitcoin-wizards
<maaku>
Taek: you should talk to gmaxwell
<maaku>
he presented basically exactly that idea to a few people a while back, but I don't know if he's written publicly on it
<maaku>
so congrats on scooping him, and also he might have some extensions or details beyond what you've worked out
btcdrak has joined #bitcoin-wizards
<maaku>
it seems reasonable to me, and I'll also note that a compact blocks-like protocol would let you elide most of the merkle branches not taken
v20100 has joined #bitcoin-wizards
abpa has joined #bitcoin-wizards
Transisto2 has joined #bitcoin-wizards
rusty has joined #bitcoin-wizards
CubicEarth has quit [Remote host closed the connection]
CrazyLoaf has joined #bitcoin-wizards
snthsnth has joined #bitcoin-wizards
CubicEarth has joined #bitcoin-wizards
priidu has joined #bitcoin-wizards
ThomasV has joined #bitcoin-wizards
ipwn has quit [Read error: Connection reset by peer]
DigiByteDev has quit [Quit: DigiByteDev]
ipwn has joined #bitcoin-wizards
c0rw1n has joined #bitcoin-wizards
chjj has joined #bitcoin-wizards
ThomasV has quit [Ping timeout: 250 seconds]
lmatteis has quit [Read error: Connection reset by peer]
snthsnth has quit [Ping timeout: 240 seconds]
funkenstein_ has quit [Quit: Leaving]
rusty has left #bitcoin-wizards [#bitcoin-wizards]
xissburg has quit [Excess Flood]
blkdb has quit [Write error: Broken pipe]
blkdb has joined #bitcoin-wizards
xissburg has joined #bitcoin-wizards
murch_ is now known as murch
jannes has quit [Quit: Leaving]
Davasny has joined #bitcoin-wizards
laurentmt has joined #bitcoin-wizards
laurentmt has quit [Client Quit]
CrazyLoaf has quit [Quit: Connection closed for inactivity]
Guest99174 is now known as [Derek]
[Derek] has joined #bitcoin-wizards
[Derek] has quit [Changing host]
priidu has quit [Ping timeout: 258 seconds]
xissburg has quit [Quit: leaving]
xissburg has joined #bitcoin-wizards
xissburg has quit [Client Quit]
xissburg has joined #bitcoin-wizards
belcher has quit [Ping timeout: 260 seconds]
Guyver2 has quit [Quit: :)]
belcher has joined #bitcoin-wizards
JHistone has joined #bitcoin-wizards
v20100 has quit [Ping timeout: 240 seconds]
MoALTz has quit [Quit: Leaving]
<Taek>
"gmaxwell did it" is Bitcoin's "Simpson's did it". Lol
rusty has joined #bitcoin-wizards
<Taek>
At this point I'm not too optimistic about where it's going, would be very interested if gmaxwell got further
nooblord has joined #bitcoin-wizards
<rusty>
Taek: gmax was interested in it as proof of fee pressure to drive blocksize cap heuristics. It's an interesting new class of solutions for that problem I think.
davec has quit [Ping timeout: 260 seconds]
laurentmt has joined #bitcoin-wizards
laurentmt has quit [Client Quit]
laurentmt has joined #bitcoin-wizards
Davasny has quit [Read error: Connection reset by peer]