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
pozitrono has joined #bitcoin-wizards
jojva has joined #bitcoin-wizards
Quanttek has quit [Ping timeout: 240 seconds]
<jojva> Hi. In his AMA, Mike Hearn said sidechains are not composable. Is this something desirable? And second, the first thing that pops up in my head is that there would be obviously compatible features (e.g. faster blocks + bigger blocksize + anonymity), incompatible features (e.g. current bitcoin economy + demurrage), others probably more subtle than that. Is there work I can read somewhere about how different consensus rules woul
<jojva> d be mergeable or not? Has work been done on that?
<kanzure> "mergeable" into what?
<jojva> between themselves. Like a git merge.
<sipa> from the "feature" point of view they are completely independent
<sipa> every blockchain has its own consensus rules
<jojva> sipa: what if consensus rules are compatible?
<sipa> you can create a new one with rules composed of things from two other ones
<sipa> not sure what you mean
<jojva> sipa: I'm thinking about ways to determine whether 2 or more features are mergeable (read: compatible) or not. An interesting thing I could imagine with sidechains would be choosing several features as a user for your transaction. Like plugins on Firefox.
<sipa> if you're talking about script features, that's usually trivally
<sipa> if you don't want to use a feature, dob't use it in the scripts you create/hand out
<sipa> but they still need to be rules enforced by the consensus system
<sipa> adding new rules requires soft ot hard forks, just as with bitcoin itself
<sipa> or
<jojva> i understand
<sipa> it's not so much that sidechains are easier to change
<sipa> they're mostly easier to create and adopt, and switch between
<jojva> I was wondering if creating a new sidechain could be automated by somehow selecting from a set of proposed feature.
rusty has joined #bitcoin-wizards
<jojva> sipa: are you sure about that?
<sipa> i don't believe that building a new interesting cryptosystem from scratch will ever be easy
<jojva> i mean, the adoption part. Once a userbase is established, why would they switch? the inertia could get big
<sipa> if we're able to create a new chain and easily pick from features A B and C... why don't we just create a single chain that has all thoae features, and use it instead?
<sipa> jojva: as opposed to adopting an altcoin
<sipa> there is of course still inertia
<sipa> what sidechains allow are more easy experimentation with features of a consensus system without needing to first beat a currency's network effect
<jojva> sipa: I guess I'm dreaming a bit. I'm wondering if it's possible to have *some* features, not all
<sipa> why would you not want all?
<sipa> ... apart from political disagreements
<jojva> hmm
alex__ has quit []
<jojva> You have that great experimental feature
<sipa> i guess if you're talking about introducing features that have high cost for some users of the system
<jojva> it's not ready to be pushed into production
<jojva> yep
<sipa> but those are imho more appropriate for private deployments
<jojva> i guess so
<jojva> so we would basically have master, develop and topic sidechains
<sipa> yes :)
<jojva> Well that was quick and enlightening. Thanks :) I guess the answer is sidechain composition is not really useful.
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 244 seconds]
<sipa> they're just one tool
<sipa> they're not a solution to all problems related to feature changes
<sipa> in particular, a large proportion of feature are easily softforked into bitcoin itself
<jojva> like what?
<jojva> so?
TBI_ has joined #bitcoin-wizards
frankenmint has joined #bitcoin-wizards
<gmaxwell> Any script related features which do not have high verification costs, for example.
<jojva> I have to admit I see the future of sidechains as more than testing. They could be used to play with real BTC money with features that would never be merged into Core (for political reasons as you said)
<gmaxwell> Elements alpha has several script related features, and one of them is about to be soft-forked into the bitcoin network (CLTV), and several others are in the pipeline at varrious stages.
<gmaxwell> Other than the external costs of verification someone's script related features are no one elses business-- users should decide how they control their own coins.
TBI has quit [Ping timeout: 240 seconds]
<gmaxwell> P2SH set up the standard for that where, without coperation by the reciever, a sender can't even tell what the specific rules a reciever of funds will be using to control their spending.
Keefe has quit [Ping timeout: 252 seconds]
<jojva> i'm not very well versed in the scripting system..
<jojva> i'll have to read about it a bit more
spinza has joined #bitcoin-wizards
<jojva> It's a shame because it seems to be 90% of a feature's implementation :p
<jojva> Gotta go to bed. Thanks for the clarifications.
<sipa> yw
CodeShark has joined #bitcoin-wizards
Piper-Off is now known as Monthrect
CodeShark has quit [Client Quit]
CodeShark has joined #bitcoin-wizards
bedeho has quit [Ping timeout: 255 seconds]
pozitrono has quit [Ping timeout: 246 seconds]
<jgarzik> jojva, Creating a new sidechain can certainly be automated with a point and click. That's the easy part. The difficult part is rolling out _validation_ of new features -- the checks-and-balances where everybody checks everybody else's work, to make sure there are no shenanigans.
<jgarzik> jojva, Some side chains will indeed be temporary - created one day, then collapsed/composed/merged back into the bitcoin main chain at the end of the week.
<jgarzik> There will be chain analogues to git repo branching and merging.
prosodyvVerreabC has quit [Quit: Connection closed for inactivity]
CodeShark has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
CodeShark has joined #bitcoin-wizards
CodeShark_ has joined #bitcoin-wizards
Monthrect is now known as Piper-Off
CodeShark is now known as Guest88917
CodeShark_ has quit [Client Quit]
Guest88917 has quit [Client Quit]
<phantomcircuit> jgarzik, agreed (also insert OP_X86 joke)
snthsnth has joined #bitcoin-wizards
<jgarzik> In RE the original purpose of side chains...
<jgarzik> I would like to see a cross-vendor side chain with experimental features being tested
<phantomcircuit> as in constructed by multiple groups or run by multiple groups?
<jgarzik> M-of-N as in Liquid is cheesy but easy to implement
<jgarzik> run by multiple independent orgs
<jgarzik> s/run/validated/
<phantomcircuit> jgarzik, elements alpha is sort of already like that, everybody who runs a signer is running it as an individual
<jgarzik> I would like to participate in some 1-of-N agreements with other bitcoin companies
<phantomcircuit> (something something testnet)
dEBRUYNE__ has quit [Ping timeout: 265 seconds]
<phantomcircuit> jgarzik, 1 of n?
<jgarzik> phantomcircuit, my org joins with N other orgs, where no org holds more than 1 validation vote/node/trust nexus
<jgarzik> similar to Liquid IIUC
frankenmint has quit [Remote host closed the connection]
p15 has joined #bitcoin-wizards
Yoghur114 has quit [Remote host closed the connection]
<phantomcircuit> jgarzik, oh i was thinking you meant the signing threshold would be 1/n which provides no security over 1/1
<phantomcircuit> so i was confused
<bramc> In new working on a merkle set data structure I figured out that it's a good idea at each node to give the values of both children locally, because that reduces cache misses on invalidation because you don't have to look up sibling values because they're always local
Piper-Off is now known as Monthrect
Ylbam has quit [Quit: Connection closed for inactivity]
prosodyvVerreabC has joined #bitcoin-wizards
<bramc> Rather than special case this for exits from blocks I'm propagating it through everything. It's a lot cleaner that way.
<bramc> Leads to the actual hash root of everything having to be a special variable.
<jgarzik> phantomcircuit, yeah 1-of-N from my org's PoV, M of N from user's PoV
<jgarzik> Also want to research some more egalitarian validation schemes... can PoS (BTC CLTV) be employed as alternative to M-of-N?
digitalmagus has joined #bitcoin-wizards
<jgarzik> (ok, maybe egalitarian is not the best word for PoS... looking for a less permissioned entry/exit system)
<jgarzik> All this is strictly within the context of a BTC sidechain
digitalmagus8 has quit [Ping timeout: 272 seconds]
frankenmint has joined #bitcoin-wizards
frankenm_ has joined #bitcoin-wizards
digitalmagus8 has joined #bitcoin-wizards
frankenmint has quit [Ping timeout: 264 seconds]
digitalmagus has quit [Ping timeout: 240 seconds]
kgk has joined #bitcoin-wizards
SwedFTP has joined #bitcoin-wizards
archobserver has quit [Remote host closed the connection]
kgk has quit [Ping timeout: 255 seconds]
archobserver has joined #bitcoin-wizards
frankenm_ has quit [Remote host closed the connection]
Monthrect is now known as Piper-Off
<bsm117532> Reading the Bitcoin-NG paper again. What prevents someone from discovering the current leader, and DDoSing them off the network? Then discovering the next one, and DDoSing them of the network...rinse lather repeat.
<bsm117532> Seems to me you can shut down the entire network this way, where with bitcoin you'd have to DDoS every single mining node since you don't know where the next one is coming from. (Ignoring mining centralization problems for the moment)
roxtrongo has joined #bitcoin-wizards
archobserver has quit [Quit: :(){ :|: &};:]
JackH has quit [Ping timeout: 265 seconds]
jgarzik has quit [Quit: Leaving]
<phantomcircuit> bsm117532, you can make it hard to identify the leader by ip address
<phantomcircuit> (but yes that would almost certainly turn into a problem)
<bsm117532> I can identify him by looking at my own peers and who sent me the last block.
<bsm117532> And work my way up the tree...
<bsm117532> The not-knowing-who-makes-the-next-block is really important to Bitcoin's byzantine resiliency, it seems to me...
<phantomcircuit> bsm117532, im actually constantly surprised that miners aren't ddos'ing each other and taking out large chunks of the internet
<bsm117532> I'm surprised too. We really have to fix the miner centralization problem. Sooner or later someone will start DDoSing competing miners.
kgk has joined #bitcoin-wizards
TheSeven has quit [Disconnected by services]
[7] has joined #bitcoin-wizards
<rusty> bsm117532, phantomcircuit: my understanding was that it happens on a regular basis, at least to pools.
<bsm117532> Yes I'm aware of a couple attacks...
kgk has quit [Ping timeout: 252 seconds]
roxtrongo has quit [Remote host closed the connection]
<phantomcircuit> rusty, it's happened multiple times but isn't the norm
<kanzure> jgarzik: current m-of-n fedpeg implementation is sorta buggy and needs eyelooking
<kanzure> er, at least for networking reasons
<phantomcircuit> kanzure, replace the zmq stuff with something else and it wouldn't be too bad
<kanzure> zeromq isn't that bad :-)
<kanzure> just needs some parameter tweaks
<kanzure> set highwater line parameter (HWM or something)
<phantomcircuit> ehhhh
roxtrongo has joined #bitcoin-wizards
binaryatrocity has quit [Quit: No Ping reply in 180 seconds.]
<bramc> After posting to the bitcoin-dev list my post on transaction fees has gotten some more coverage, mostly positive. The negative responses have mostly been from people not understanding that monopoly pricing is higher than efficient pricing.
<bramc> Thanks kanzure for asking me to post there
<kanzure> yeah was figuring would be good to send where people would know to look for such a thing
* bsm117532 reads...
<bramc> Notably none of the people being dismissive of what I proposed actually suggested a concrete algorithm to use instead. Going through the exercise of trying to do that makes the problems come to the surface.
<kanzure> would there be any utility to manually working examples of expected scenarios?
<bsm117532> Anyone ever suggesting a concrete algorithm is a rare thing in the bitcoin world. :-/
gribble has quit [Remote host closed the connection]
<kanzure> also; miners will tend to use simple (good) software if made easily available, so eventually writing good transaction pickers would also be a good thing to do
sparetire_ has quit [Quit: sparetire_]
<kanzure> from the miner angle it's more of an integration detail rather than algorithmic, of course...
bedeho has joined #bitcoin-wizards
<bsm117532> You know, I posted my same complaint about Bitcoin-NG to bitcoin-dev 3 weeks ago and no one replied (I just re-had the thought while re-reading the paper). We've got a pretty serious communications breakdown in this community. :-/ Bram not being on the mailing list too... :-/
<bramc> kanzure, The lack of a reference wallet in core is a big problem.
<bramc> bsm117532 I haven't evaluated bitcoin-ng but my general thought is that we should simply assume that there's a scaling limit for bitcoin and plan appropriately.
<bsm117532> Their analysis is quite good. Question is: What's the plan? ;-)
<bramc> I'm not on the mailing list because (a) I'm not on mailing lists generally, as a productivity thing (b) there's a lot of humdrum bitcoin dev work which involves stuff which I haven't touched and have no plans to touch, and (c) I'm still a bit of a tourist in cryptocurrency space and don't want to make a pretense otherwise
p15 has quit [Max SendQ exceeded]
<bsm117532> bramc: I can understand that, I wasn't trying to single you out personally. You're only a tourist if you want to be. I *really* want to know more about how you're implementing Merkle sets. ;-)
Giszmo has quit [Quit: Leaving.]
gribble has joined #bitcoin-wizards
Piper-Off is now known as Monthrect
Monthrect is now known as Piper-Off
<bramc> bsm117532 That will be forthcoming. It will be easier to simply read my code than a human language explanation of it.
CodeShark has joined #bitcoin-wizards
digitalmagus has joined #bitcoin-wizards
digitalmagus has quit [Changing host]
digitalmagus has joined #bitcoin-wizards
frankenmint has joined #bitcoin-wizards
digitalmagus8 has quit [Ping timeout: 272 seconds]
Keefe has joined #bitcoin-wizards
kyuupichan has quit [Read error: Connection reset by peer]
chmod755 has joined #bitcoin-wizards
p15 has joined #bitcoin-wizards
rusty has quit [Quit: Leaving.]
Piper-Off is now known as Monthrect
Ylbam has joined #bitcoin-wizards
snthsnth has quit [Ping timeout: 255 seconds]
<fluffypony> bramc: I don't think that very specific criticism, or finding a flaw in the fundamentals, necessarily has to be accompanied by a suggestion
<fluffypony> but if they're just generally being dismissive that's unhelpful
<bramc> fluffypony, The criticism is mostly 'using past price information to set prices now immediately is faster'
<bramc> If the claim is that there's something better, then that supposedly better thing should be suggested.
<fluffypony> yeah that's needless
NLNico has joined #bitcoin-wizards
mjerr has joined #bitcoin-wizards
matsjj has joined #bitcoin-wizards
bramc has quit [Quit: This computer has gone to sleep]
Monthrect is now known as Piper-Off
DougieBot5000 has quit [Quit: Leaving]
digitalmagus has quit [Ping timeout: 255 seconds]
ThomasV has joined #bitcoin-wizards
kyuupichan has joined #bitcoin-wizards
alferz has joined #bitcoin-wizards
ThomasV has quit [Ping timeout: 240 seconds]
damethos has joined #bitcoin-wizards
kgk has joined #bitcoin-wizards
alferz has quit [Ping timeout: 244 seconds]
kgk has quit [Ping timeout: 264 seconds]
JackH has joined #bitcoin-wizards
frankenmint has quit [Remote host closed the connection]
frankenmint has joined #bitcoin-wizards
CoinMuncher has joined #bitcoin-wizards
c0rw1n has quit []
ThomasV has joined #bitcoin-wizards
NLNico has quit [Quit: Leaving]
alferz has joined #bitcoin-wizards
c0rw1n has joined #bitcoin-wizards
nivah has joined #bitcoin-wizards
alferz has quit [Ping timeout: 244 seconds]
dEBRUYNE__ has joined #bitcoin-wizards
frankenmint has quit [Remote host closed the connection]
bedeho has quit [Ping timeout: 260 seconds]
ThomasV has quit [Quit: Quitte]
sparetire_ has joined #bitcoin-wizards
melvster has quit [Ping timeout: 272 seconds]
rubensayshi has joined #bitcoin-wizards
rusty has joined #bitcoin-wizards
alferz has joined #bitcoin-wizards
melvster has joined #bitcoin-wizards
jtimon has quit [Read error: Connection reset by peer]
kgk has joined #bitcoin-wizards
hazirafel has joined #bitcoin-wizards
jrayhawk has quit [Ping timeout: 240 seconds]
kanzure has quit [Ping timeout: 250 seconds]
heath has quit [Ping timeout: 260 seconds]
AaronvanW has joined #bitcoin-wizards
kgk has quit [Ping timeout: 240 seconds]
gnusha_ has quit [Ping timeout: 260 seconds]
alferz has quit [Ping timeout: 244 seconds]
rht___ has joined #bitcoin-wizards
hazirafel has quit [Remote host closed the connection]
GAit has joined #bitcoin-wizards
melvster has quit [Ping timeout: 260 seconds]
spinza has quit [Excess Flood]
melvster has joined #bitcoin-wizards
spinza has joined #bitcoin-wizards
dEBRUYNE_ has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 246 seconds]
melvster has quit [Ping timeout: 272 seconds]
atgreen has quit [Ping timeout: 265 seconds]
ThomasV has joined #bitcoin-wizards
melvster has joined #bitcoin-wizards
jrayhawk has joined #bitcoin-wizards
heath has joined #bitcoin-wizards
dEBRUYNE__ has joined #bitcoin-wizards
kanzure has joined #bitcoin-wizards
gnusha has joined #bitcoin-wizards
dEBRUYNE has joined #bitcoin-wizards
atgreen has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 265 seconds]
dEBRUYNE_ has joined #bitcoin-wizards
kyuupichan has quit [Read error: Connection reset by peer]
dEBRUYNE__ has quit [Ping timeout: 244 seconds]
dEBRUYNE has quit [Ping timeout: 265 seconds]
dEBRUYNE has joined #bitcoin-wizards
rusty has left #bitcoin-wizards [#bitcoin-wizards]
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 265 seconds]
dEBRUYNE has quit [Ping timeout: 255 seconds]
dEBRUYNE has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 255 seconds]
kyuupichan has joined #bitcoin-wizards
melvster has quit [Ping timeout: 244 seconds]
bramc has joined #bitcoin-wizards
GAit has quit [Quit: Leaving.]
pozitron has joined #bitcoin-wizards
melvster has joined #bitcoin-wizards
eudoxia has joined #bitcoin-wizards
GAit has joined #bitcoin-wizards
dfdfdfdfd has joined #bitcoin-wizards
dfdfdfdfd has quit [Client Quit]
rht___ has quit [Quit: Connection closed for inactivity]
atgreen has quit [Ping timeout: 240 seconds]
roxtrongo has quit [Remote host closed the connection]
atgreen has joined #bitcoin-wizards
rustyn has quit []
Giszmo has joined #bitcoin-wizards
atgreen has quit [Ping timeout: 265 seconds]
damethos has quit [Remote host closed the connection]
bramc has quit [Quit: This computer has gone to sleep]
kgk has joined #bitcoin-wizards
p15 has quit [Ping timeout: 265 seconds]
kgk has quit [Ping timeout: 260 seconds]
damethos has joined #bitcoin-wizards
bit2017 has joined #bitcoin-wizards
King_Rex has joined #bitcoin-wizards
roxtrongo has joined #bitcoin-wizards
GAit has quit [Quit: Leaving.]
nivah has quit [Ping timeout: 264 seconds]
Guest91590 has quit [Ping timeout: 255 seconds]
bit2017 has quit [Ping timeout: 250 seconds]
GAit has joined #bitcoin-wizards
roxtrongo has quit [Ping timeout: 244 seconds]
pozitron has quit [Ping timeout: 264 seconds]
pigeons has joined #bitcoin-wizards
pigeons is now known as Guest51134
ratbanebo has joined #bitcoin-wizards
ratbanebo has quit [Read error: Connection reset by peer]
ratbanebo has joined #bitcoin-wizards
atgreen has joined #bitcoin-wizards
lclc has quit [Ping timeout: 272 seconds]
Meeh has quit [Ping timeout: 260 seconds]
Meeh has joined #bitcoin-wizards
lclc has joined #bitcoin-wizards
kgk has joined #bitcoin-wizards
waxwing has quit [Read error: Connection reset by peer]
Quanttek has joined #bitcoin-wizards
kgk has quit [Ping timeout: 240 seconds]
waxwing has joined #bitcoin-wizards
GAit has quit [Quit: Leaving.]
damethos has quit [Quit: Bye]
GAit has joined #bitcoin-wizards
lclc has quit [Ping timeout: 240 seconds]
bsm1175321 has quit [Ping timeout: 240 seconds]
<amiller_> whooo, asynchronous BFT experiments
<amiller_> im running BFT experiments across 64 ec2 nodes in eight regions, with maximum fault tolerance n=3f+1.... and achieving thousands of transactions committed per second
eudoxia has quit [Quit: Leaving]
<nsh> BFT?
bsm1175321 has joined #bitcoin-wizards
<nsh> oh, byzantine fault tolerance
lclc has joined #bitcoin-wizards
DougieBot5000 has joined #bitcoin-wizards
foobar_ has joined #bitcoin-wizards
lclc has quit [Ping timeout: 260 seconds]
lclc has joined #bitcoin-wizards
roxtrongo has joined #bitcoin-wizards
roxtrongo has quit [Ping timeout: 240 seconds]
kyuupichan has quit [Read error: Connection reset by peer]
matsjj has quit [Remote host closed the connection]
roxtrongo has joined #bitcoin-wizards
King_Rex has quit [Remote host closed the connection]
kgk has joined #bitcoin-wizards
nwilcox has joined #bitcoin-wizards
foobar_ has quit [Ping timeout: 246 seconds]
damethos has joined #bitcoin-wizards
kgk has quit [Ping timeout: 272 seconds]
gribble has quit [Remote host closed the connection]
damethos has quit [Quit: Bye]
matsjj has joined #bitcoin-wizards
gribble has joined #bitcoin-wizards
MoALTz has joined #bitcoin-wizards
damethos has joined #bitcoin-wizards
StephenM347 has joined #bitcoin-wizards
GAit has quit [Quit: Leaving.]
GAit has joined #bitcoin-wizards
King_Rex has joined #bitcoin-wizards
GAit has quit [Quit: Leaving.]
ThomasV has quit [Ping timeout: 260 seconds]
hazirafel has joined #bitcoin-wizards
Dizzle has joined #bitcoin-wizards
roxtrongo has quit [Remote host closed the connection]
zooko has joined #bitcoin-wizards
kyuupichan has joined #bitcoin-wizards
jgarzik has joined #bitcoin-wizards
jgarzik has quit [Changing host]
jgarzik has joined #bitcoin-wizards
darmou has joined #bitcoin-wizards
bobke has quit [Remote host closed the connection]
nwilcox has quit [Ping timeout: 250 seconds]
bobke has joined #bitcoin-wizards
kgk has joined #bitcoin-wizards
spinza has quit [Excess Flood]
kgk has quit [Ping timeout: 240 seconds]
hazirafel has quit [Ping timeout: 264 seconds]
GAit has joined #bitcoin-wizards
matsjj has quit [Remote host closed the connection]
el33th4x0r has joined #bitcoin-wizards
CoinMuncher has quit [Quit: Leaving.]
mjerr has quit [Ping timeout: 255 seconds]
spinza has joined #bitcoin-wizards
rubensayshi has quit [Remote host closed the connection]
<kanzure> well at least they admit that you still have to wait for actual confirmations? http://hackingdistributed.com/2015/11/09/bitcoin-ng-followup/
<el33th4x0r> hi Brian
<el33th4x0r> a merchant's transaction acceptance policy depends on their risk profile. this is true for any protocol, NG included.
<el33th4x0r> but 1-confirmations in NG offer strictly stronger guarantees than 0-confs in Core, and come much faster than 1-confirmations in Core.
roxtrongo has joined #bitcoin-wizards
GAit has quit [Read error: Connection reset by peer]
GAit has joined #bitcoin-wizards
zooko has quit [Read error: Connection reset by peer]
zooko has joined #bitcoin-wizards
roxtrongo has quit [Ping timeout: 255 seconds]
orik has joined #bitcoin-wizards
iddo has quit [Ping timeout: 240 seconds]
dEBRUYNE_ has joined #bitcoin-wizards
dEBRUYNE has quit [Ping timeout: 244 seconds]
iddo has joined #bitcoin-wizards
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 255 seconds]
zooko has quit [Ping timeout: 240 seconds]
mrkent has joined #bitcoin-wizards
dEBRUYNE_ has joined #bitcoin-wizards
matsjj has joined #bitcoin-wizards
dEBRUYNE has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 255 seconds]
dEBRUYNE_ has quit [Ping timeout: 255 seconds]
erasmospunk has joined #bitcoin-wizards
dEBRUYNE_ has joined #bitcoin-wizards
atgreen has quit [Ping timeout: 250 seconds]
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE has quit [Ping timeout: 276 seconds]
gribble has quit [Remote host closed the connection]
dEBRUYNE_ has quit [Ping timeout: 244 seconds]
dEBRUYNE has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 244 seconds]
iddo has quit [Ping timeout: 240 seconds]
iddo has joined #bitcoin-wizards
dEBRUYNE_ has joined #bitcoin-wizards
Yoghur114 has joined #bitcoin-wizards
gribble has joined #bitcoin-wizards
dEBRUYNE has quit [Ping timeout: 265 seconds]
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 265 seconds]
dEBRUYNE_ has joined #bitcoin-wizards
damethos has quit [Quit: Bye]
dEBRUYNE has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 265 seconds]
darmou has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
dEBRUYNE_ has quit [Ping timeout: 265 seconds]
skyraider has joined #bitcoin-wizards
Doge_Funnie has quit [Quit: Leaving]
matsjj has quit [Remote host closed the connection]
jojva has quit [Ping timeout: 255 seconds]
King_Rex has quit [Remote host closed the connection]
dEBRUYNE_ has joined #bitcoin-wizards
dEBRUYNE has quit [Ping timeout: 255 seconds]
kgk has joined #bitcoin-wizards
kgk has quit [Ping timeout: 240 seconds]
AaronvanW has quit [Ping timeout: 246 seconds]
dEBRUYNE__ has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 255 seconds]
<Taek> the idea is only half-baked at this point, but could you achieve similar goals to bitcoin-ng by using near-blocks instead of assigning a leader?
<Taek> set a rule that transactions in a particular block must have been seen in near-blocks building off of one of the previous N blocks
<gwillen> Taek: if you're talking about blocks that nearly have enough work, but not quite, people talk about that under the name "weak blocks" I believe
zooko has joined #bitcoin-wizards
<Taek> I thought we settled on the term 'near blocks', I know there's been some back-and-forth on the term. I'm content with either, but though we chose 'near blocks'
<gwillen> ahhh okay
<Taek> *thought
<gwillen> I have been wrong before :-)
<gwillen> I've definitely heard these kinds of schemes talked about as an alternative to NG-like stuff though
<gmaxwell> Taek: I am of the belief that block preforwarding and efficient transmission can give the same benefits, yes. Though I've not yet convinced myself it's precisely the same benefits.
smk has quit [Quit: Page closed]
dEBRUYNE_ has joined #bitcoin-wizards
tulip has joined #bitcoin-wizards
<Taek> a proposal with similar goals that I've not seen discussed here is the 'Helix blockchain'
<gavinandresen> I agree with gmaxwell. I’ve had a little back-and-forth email conversation with Ittay and Gun about weak blocks versus NG.
<gavinandresen> Taek : re: helix: fragmenting a user’s wallet’s UTXOs into multiple pieces that can’t be spent all at once is a terrible, horrible, no-good idea. Extra complexity for illusory benefit.
<Taek> gavinandresen: I believe a user would want to set up their wallet so that all utxos inside of it are on a single part of the helix
dEBRUYNE__ has quit [Ping timeout: 276 seconds]
<gavinandresen> Taek : fragmenting the user base is an even worse idea.
<gavinandresen> “oh, you’re on helix.3 ? I use helix.2 ….”
<Taek> it would need to fragment the user base. You can send an output from any helix segment to any helix segment, it's just that you can only spend from 1 at a time
<Taek> You can send from helix2 to helix3, it's just that you can't send from helix1 AND helix2 to helix3 in the same txn
<Taek> the major advantage is that miners can mine without needing to have validated the most recent block
<gavinandresen> and if I’ve got a fully-validating wallet on helix.3 how do I know transactions from helix.2 are valid, unless I’m watching the chain? Might as well run with SPV security….
<Taek> you still have to validate the whole chain
<Taek> the construction is to improve the orphan rate, which means bigger or more frequent blocks are possible
<gavinandresen> weak/near blocks can give the same benefit
<Taek> I haven't spent too much time looking at it, but I'm guessing that combining the two could produce a compounded benefit
<Taek> (maybe not, haven't looked at it yet)
<gavinandresen> e.g. miners announce a weak block along with a zero-POW “here’s the block I’ll build on top of that”
jojva has joined #bitcoin-wizards
darmou has joined #bitcoin-wizards
dEBRUYNE__ has joined #bitcoin-wizards
damethos has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 276 seconds]
zooko has quit [Ping timeout: 276 seconds]
dEBRUYNE_ has joined #bitcoin-wizards
dEBRUYNE has joined #bitcoin-wizards
dEBRUYNE__ has quit [Ping timeout: 240 seconds]
Jeremy_Rand has quit [Ping timeout: 272 seconds]
matsjj has joined #bitcoin-wizards
dEBRUYNE_ has quit [Ping timeout: 276 seconds]
chmod755 has quit [Quit: Ex-Chat]
matsjj has quit [Ping timeout: 240 seconds]
ratbaneb_ has joined #bitcoin-wizards
orik has quit [Quit: Textual IRC Client: www.textualapp.com]
Eliel_ is now known as Eliel
ratbanebo has quit [Ping timeout: 255 seconds]
nwilcox has joined #bitcoin-wizards
<bliljerk101> https://forum.bitcoin.com/dev-tech-talk/unobtrusively-anonymizing-the-u-s-postal-service-with-smart-contracts-t2003.html#p6048 - I proposed a way to anonymously assimilate, decentralize, and manage inventory without trust and physical interaction using smart contracts. I think this could work. Thoughts?
derpderp has joined #bitcoin-wizards
AaronvanW has joined #bitcoin-wizards
derpderp_ has quit [Ping timeout: 272 seconds]
Quanttek has quit [Remote host closed the connection]
Quanttek has joined #bitcoin-wizards
rusty has joined #bitcoin-wizards
Quanttek has quit [Remote host closed the connection]
roxtrongo has joined #bitcoin-wizards
<amiller_> bliljerk101, i dunno, i think that post is full of fallacies (or at least unsatisfactorily resolved problems) that aren't that much different in the different scenarios (whether it's about inventory, postal service or whatever)
Quanttek has joined #bitcoin-wizards
<bliljerk101> amiller_ could you elaborate? i'm happy to examine
<amiller_> the main one i'm picking at there is the idea that if both a buyer and seller both put in a bunch of collateral,
paveljanik has quit [Quit: Leaving]
<amiller_> that it's now incentive compatible for both of them to be honest
<amiller_> i don't think that's the case because of coercion (there's some other better name for this scenario but i forget)
<el33th4x0r> I can see how block preforwarding and efficient transmission are complementary to NG. For them to provide the same benefits, you need a lot more mechanism around them.
<amiller_> if the seller says "hey i'm absoluetly not sending you an item, and if you want any of your collateral back at all, you should just liie and say the transaction went ok"
snthsnth has joined #bitcoin-wizards
<bliljerk101> amiller_ collusion? what coercion?
<amiller_> then it's in the buyer's personal best interest to comply with the seller
Quanttek has quit [Read error: Connection reset by peer]
Quanttek has joined #bitcoin-wizards
<bliljerk101> amiller_ so in the case you propose, it would cost the sender money and the peer would gain the commission
<gmaxwell> el33th4x0r: the primary benefit of NG is that none of the intensive work of verifying things happens at the time of the mastership race.
<bliljerk101> this would be enforced in the contact
<bliljerk101> contract*
<bliljerk101> so the incentive here seems correct to me. thoughts?
<gmaxwell> el33th4x0r: the efficient transfer and perforward schemes have the same benefit, at least in the absense of adversarial authorship.
<amiller_> bliljerk101, my point with this example is that once the malicious seller has revealed that he's malicious and won't send the package, it's in the buyer's best interest to release their collateral anyway.. this is a bad outcome for the victim buyer
darmou has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<bliljerk101> amiller_ correct me if i'm wrong, but i think you're confusing my algo with the marketplace itself. because there would not be a reason to even establish a DNIS chain if the seller was not going to send the package. there would be absolutely no point to that. the seller would lose commission for at least 1 peer, so he'd only be putting himself at additonal loss
<bliljerk101> the buying/selling isn't a part of my algo
<bliljerk101> my algo is the trustl-less transference of real world assets through a chain
<el33th4x0r> gmaxwell: agreed on the main benefit.
darmou has joined #bitcoin-wizards
<el33th4x0r> gmaxwell: but for weak blocks to serve the same purpose, miners would have to agree prior to mining. and that seems difficult. esp without a punishment mechanism for misbehavior.
zooko has joined #bitcoin-wizards
<el33th4x0r> gmaxwell: so a fully worked out solution that gets close to the same benefits may or may not be possible. if possible, it might be very complicated.
<el33th4x0r> gmaxwell: nevertheless, i'd be thrilled to see such a solution worked out. is this something you are planning to work on?
damethos has quit [Quit: Bye]
<bliljerk101> amiller_ also the buyer can't release any collateral. in the case that DNIS chain was used to transfer an asset that was purchased in a marketplace. only the seller would be able to release the last (i.e. recipient's) contract. and again, he'd be foolish to do this as he would lose all the collateral tied up in all previous peers' contracts' transactions
<bsm1175321> The NG guys didn't address my concerns that the current master is discoverable, and therefore DDoSable... :-(
<gwillen> bsm1175321: what's the procedure for discovering the master's IP? Just watch blocks and see where they're coming from?
<bliljerk101> i realize this is intricate system (it's hard, even for me as the designer to have fast conversation about it), but i think that's all the more reason we should review it seriously. i really tried to design this carefully, taking into account every possible incentive i could conceive
damethos has joined #bitcoin-wizards
<bsm1175321> gwillen: yes.
<gwillen> that seems like it would also lead to possible DDoS against current mining pools, if that were a simple procedure to follow.
<bsm1175321> ex-post-facto block publication adds significant byzantine protection.
<bsm1175321> gwillen: It does, and it is.
<gmaxwell> el33th4x0r: they do not have to agree prior to mining, in fact, thats where the efficient transmission comes in.
<gmaxwell> el33th4x0r: I've been working on efficient transmission on and off for a long time.
dEBRUYNE_ has joined #bitcoin-wizards
<gmaxwell> el33th4x0r: it's weird that you seem to regard something that requires _no_ changes in the bitcoin consensus rules as a long shot relative to bitcoin-ng!
<el33th4x0r> gmaxwell: i know all about the efficient xansmission work, had a hand in initiating that discussion and pointing towards some of the early strategies
<el33th4x0r> gmaxwell: so if there are multiple weak blocks, which ones can i as a merchant believe to look like the next block, given that i cannot know who will get the block?
<gmaxwell> This has nothing to do with merchants.
rusty has quit [Ping timeout: 240 seconds]
<el33th4x0r> ok how would weak blocks work? is there a spec i should read?
dEBRUYNE has quit [Ping timeout: 276 seconds]
erasmospunk has quit [Ping timeout: 272 seconds]
zooko has quit [Ping timeout: 244 seconds]
dEBRUYNE_ has quit [Read error: Connection reset by peer]
<gmaxwell> el33th4x0r: There are posts but it is not complex. miners announce candidate blocks, using POW 'weak blocks' to rate limit the process. Efficient differential transmission (including referencing earlier weak blocks) is used, so the amount of data transfer is small. Blocks commit to two sets of transactions, one for use as a weak block, and a subset for use if it is an actual block.
dEBRUYNE_ has joined #bitcoin-wizards
<gmaxwell> When an actual block is found, it is transmitted using a prior weak block (decided on a per hop basis, whatever shared context is most efficient) as a differential starting point.
<el33th4x0r> ok, that's what i thought. do you think this can achieve xput comparable to ng?
<gmaxwell> If blocks are selected to look like prior weak blocks, the amount sent at the latency critial time is just a constant (a weak block reference, nonce, etc.)
<gmaxwell> I believe it can.
<gmaxwell> It has some nice deployment benefits, including even blocks produced by non-participants benefit from it. (to the extent their blocks are similar to participant blocks)
<gmaxwell> It does not get you 'soft confirmations' (beyond perhaps being able to monitor weak blocks 'true' transaction sets, to gauge hashpower support); but I think that benefit in bitcoin-ng is mostly an illusion because the fee spliting scheme is not incentive compatible. (it's in everyone's interest to pay fees 'out of band' to bypass the split)
<bliljerk101> amiller_ are you the guy from zero cash?
<instagibbs> Thinking of it the other way, it's in everyone's own interest to stick just enough fees in the split to incentivize someone to build on top of the microblock. I have no idea how much that is.
<el33th4x0r> how does one reconcile and keep track of the N different weak block announcements from N different miners?
<gmaxwell> instagibbs: well the users would leave all fees out, and then the miner themselves would pay into that.
AaronvanW has quit [Ping timeout: 246 seconds]
<instagibbs> I had that thought too. :)
<instagibbs> but yeah, the fee sharing seems like "suggested donation" to me
frankenmint has joined #bitcoin-wizards
<gmaxwell> el33th4x0r: one can keep track of many, as they're relatively cheap (just a list of indexes for member transactions)-- but they do not have to be globally consistent, because the reference point chan change from hop to hop. (though with some efficieny loss if the reference isn't the one the miner used). So for example, one can keep the nearest block so far, and the N nearest misses more than N s
<gmaxwell> econds old from your perspective.
mpmcsweeney has joined #bitcoin-wizards
<gmaxwell> And you communicate to your peers which reference points you know, so they can use an acceptable one.
mpmcsweeney has quit [Client Quit]
* gmaxwell steps out for a bit
<kanzure> oh some of this deprecates previous weak-block talk
bramc has joined #bitcoin-wizards
Jeremy_Rand has joined #bitcoin-wizards
<el33th4x0r> gmaxwell: so every miner must send an updated weak block for every new xaction that modifies their block. this would scale as T*M with the number of miners (M) and transactions (T).
<el33th4x0r> gmaxwell: so the throughput benefit isn't comparable to NG.
<el33th4x0r> gmaxwell: and if you're not suggesting trusting weak blocks in some way, they don't help with latency.
jgarzik has quit [Quit: hotel-ward]
snthsnth has quit [Ping timeout: 252 seconds]
el33th4x0r has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
hashtag has joined #bitcoin-wizards
el33th4x0r has joined #bitcoin-wizards
Dizzle has quit [Quit: Leaving...]
kgk has joined #bitcoin-wizards
malte- is now known as malte
AaronvanW has joined #bitcoin-wizards
<instagibbs> I am under the impression you'd set some diff thresshold and discriminate based on that. Not based on number of peers mining. So T will be there, but instead of M it's relative to that threshhold you pick.
erasmospunk has joined #bitcoin-wizards
Jeremy_Rand has quit [Ping timeout: 250 seconds]
nabu has quit [Ping timeout: 260 seconds]
<gmaxwell> el33th4x0r: I disagree. There is no need for an updated week block for each additional transaction. New transactions can simply wait until the next block.
<gmaxwell> el33th4x0r: I think two distinct benefits are being conflated. The improvement in network convergence and fairness, which I believe weak blocks plus efficient transmission provide.
zooko has joined #bitcoin-wizards
<gmaxwell> And "soft confirmations", which bitcoin-ng claims to provide but I believe could not provide in practice, because the soft confirmation depends on the fee sharing scheme which is not incentive compatible and I believe would be bypassed in normal operation.
<gmaxwell> (weak blocks could provide for a different kind of 'soft confirmation', e.g. letting people measure the share of hashrate that would immediately commit to their transaction)
King_Rex has joined #bitcoin-wizards
rusty has joined #bitcoin-wizards
darmou has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
zooko` has joined #bitcoin-wizards
rusty has quit [Ping timeout: 246 seconds]
zooko has quit [Ping timeout: 260 seconds]
StephenM347 has quit []
<el33th4x0r> gmaxwell: i see. you're suggesting a 2x increase in xaction latency. 20 min for 1 conf.
rusty has joined #bitcoin-wizards
<el33th4x0r> gmaxwell: on the fee sharing scheme,there's a lot of misunderstanding -- NG does not depend on that particular fee splitting for correctness. Described here: http://hackingdistributed.com/2015/11/09/bitcoin-ng-followup/
<el33th4x0r> gmaxwell: the soft confirmation from weak blocks is better than nothing but not as strong as NG.
davec has quit [Read error: Connection reset by peer]
devrandom has quit [Ping timeout: 250 seconds]
devrandom has joined #bitcoin-wizards
zooko` is now known as zooko
<bramc> What are 'weak' blocks?
<gmaxwell> el33th4x0r: I'll read! I realize the fee sharing is not fundimental, but I think it is strictly necessary for the weak confirmation to have force. E.g. you mine a weak block and then you can produce an unbounded amount of fradulent single confirmations during that window, and later too if you have a partitioned victim.
<gmaxwell> e.g. it was the threat of losing the fees if you got caught that prevents you from signing multple blocks but if there are no 'fees' visible to the system, that threat does not exist.
<gmaxwell> (at least not in the long term with zero subsidy)
<bramc> My guess as to what weak blocks are is that they're blocks which almost but not quite passed muster to form a new block, so they're deemed worthy of propagating and a real successful new block can shorthand what transactions it's accepting by referring to a chain of weak blocks to reduce propagation latency
<gmaxwell> bramc: yes.
davec has joined #bitcoin-wizards
<bramc> Sounds like a decent idea but doesn't change anything fundamental
<gmaxwell> bramc: in particular, start with the observation that if you have a consensus system in advance of mining, you can reduce mining latency to nothing, and so fairness impacts from latency go away. Then (maybe) observe that consensus is actually stronger than you need for that effect.
ThomasV has joined #bitcoin-wizards
<gmaxwell> bramc: I think it renders orphan rate largely independant from transaction load, which is pretty substantial.
<bramc> gmaxwell, Sort of depends on how weak you let the weak blocks be
<el33th4x0r> gmaxwell: you lose the block subsidy as well as the fees.
nanashi has joined #bitcoin-wizards
<gmaxwell> you can adapt what you'll accept based on how many you are seeing.
<bramc> Also, do you propagate all weak blocks or only the longest chain?
<gmaxwell> el33th4x0r: if you are assuming subsidy, then you are assuming an inflationary currency-- as bitcoin subsidy is only temporary.
<el33th4x0r> gmaxwell: the premise that there will be no fees is flawed here, or at least, "remains to be shown"
<bramc> If you have utxo commitments you probably want the rule that they don't have to be validated for weak blocks, otherwise that's a lot of computation for a whole lot of nothing.
<gmaxwell> el33th4x0r: in the ng scheme as I understand it a miner should _always_ accept a lower fee from a transaction that bypasses the fee system and pays them directly, because they get 100% of it. So users should always be willing to pay fees that way (and get half off on their fees).
<gwillen> gmaxwell: that's only true if users value cheaper transactions over earlier weak confirmations
<gmaxwell> (I'm not arguing that there won't be fees; I'm arguing that no rational party would participate in the 'official' fee scheme in bitcoin-ng, that instead they'd pay fees via additional outputs; and we've already had miners in bitcoin that accept fees that way in hte past)
<el33th4x0r> gmaxwell: no. as a user, you can always partition the fee F any which way you like, including 100 to 0, for the two miners surrounding the microblock. But 100-0 would be a bad idea, as it undermines the incentive to build on top.
<bramc> Come to think of it, weak blocks can be built into the peer protocol without touching the blockchain format at all
<el33th4x0r> gmaxwell: so a user would be hurting himself by going that route.
<gwillen> I think you have to make an argument about some kind of attackers doing that, not ordinary users -- their incentive to pay directly comes from wanting to get the earlier confirms from the microblocks
<bramc> It's just a form of compression of a block: "This block is that other weak block plus this delta"
<gmaxwell> el33th4x0r: Why would a user not pay 100%/0%, and leave it to the miner to decide to pay some fees forward?
<gmaxwell> gwillen: not earlier, but stronger weak confirmation, no? I would accept that argument.
<el33th4x0r> bramc: in a truly decentralized world where there are N miners, where N is large, there are N weak blocks. Not the most bandwidth efficient idea.
<el33th4x0r> gmaxwell: they would not, that's my point.
<gwillen> gmaxwell: well if the payor bypasses the fee split and pays directly to the miner who's working on the next keyblock, then there's no incentive for them to get any weak confirmation
<gwillen> the current keyblock holder will have no reason to mine them at all
<gmaxwell> el33th4x0r: There do not need to be N weak blocks, and the bandwidth costs of the weak blocks are only proportional to the difference between state.
<bramc> el33th4x0r, No the number of weak blocks is stochastic and a multiplier of the number of strong blocks depending on where you set your threshold
<nanashi> interesting to the testnet3 flip over to BIP101
<bramc> As long as the number of weak blocks is substantially smaller than the number of transactions accepted the overhead of them is no big deal
<nanashi> any idea what will happen next? is this good or bad?
darmou has joined #bitcoin-wizards
<el33th4x0r> bramc, "number of strong blocks"?
<bramc> el33th4x0r, If you set the threshold for 'accepting' weak blocks at six bits less than the threshold for a new block being minted (a 'strong' block) then you'll have about 64 times as many weak blocks as strong blocks
<el33th4x0r> for N outstanding transactions, and T transactions per block, there are N choose T possible weak blocks
<el33th4x0r> bramc: thanks, indeed, weak blocks require such measures to deter spam.
<el33th4x0r> here's another problem with weak blocks: smaller miners will not be able to mine them effectively, so they will be at a disadvantage when they discover a real block.
<bramc> It's also a good sanity measure to only propagate the longest chain of weak blocks you've seen
<bramc> How are smaller miners at a disadvantage for mining weak blocks effectively?
<bramc> Weak blocks should help everyone by making latencies be reliably lower
<el33th4x0r> when weak blocks require a PoW (which they would, to deter spam), small miners are likely to experience high variance when discovering a valid PoW.
<nanashi> whats a weak block
<gmaxwell> el33th4x0r: I'm not sure if you followed my earlier point that we've been talking about a system where the weak block commits to two transaction sets: one which is used if it is a weakblock, and another which is used if its is a block. This means that even if you have not produced a weak block, if your 'If I am a block set' matches a weak block then you get the perfect speedup, even though you d
<gmaxwell> id not create it.
<gwillen> gmaxwell: I missed the explanation of what you gain by separating the two transaction sets -- is there a quick summary?
<gmaxwell> gwillen: you do not suffere a disavantage if you find a real block before a weak block which reflects your preferences exists.
<gmaxwell> el33th4x0r: N choost T is not a useful model. As there is a logical selection criteria: highest fee-per-limit, so on average (and in the absense of adversarial behavior) the discrepencies will be small.
GAit has quit [Quit: Leaving.]
<el33th4x0r> gmaxwell: how do you protect the network from miners spamming weak-block-preferences. (and thx, btw, I hadn't quite caught on to prefs!)
erasmospunk has quit [Ping timeout: 276 seconds]
<el33th4x0r> gmaxwell: N choose T is indeed the number of possible weak blocks. one might prune them down, but that requires additional assumptions about which weak blocks are important.
<el33th4x0r> gmaxwell: that is to say, i agree that you could argue that we would not encounter as many in practice, iff you make some assumptions.
erasmospunk has joined #bitcoin-wizards
<gmaxwell> el33th4x0r: the spamming is prevented via the same POW mechenism. (in theory you could use any other functional mechenism -- but using POW has the property of sharing influence there equal to the actual finding of blocks)
<rusty> bramc: indeed, this is what I'm working on now for HK. Simulations seem to make it work quite well.
<rusty> gmaxwell: I have been using a 20x ratio for weak block threshold (ie. 30 seconds avg) but a 16x extra boost for the first weak block seen. This helps in the "full blocks" case.
<rusty> gmaxwell: of course, the "first weak block" heuristic is imperfect in a distributed system.
AaronvanW has quit [Ping timeout: 246 seconds]
rusty has left #bitcoin-wizards [#bitcoin-wizards]
<bramc> rusty, I don't understand what you're saying about first weak block. Also, are you judging the quality of weak blocks by the length of their chain and only accepting the longest one?
<gmaxwell> bramc: one _could_ use weak blocks to perform a pre-consensus; but I think it is not actually needed for the fairness benefits (though it may help soft confirmations)
ThomasV has quit [Ping timeout: 250 seconds]
<bsm1175321> If weak blocks were allowed to contain the same transaction in different weak blocks, and have multiple parent weak blocks, then I think this proposal is identical to my proposal of using a DAG instead of linked list (/chain)
<bramc> gmaxwell, What are the fairness benefits other than pre-consensus?
<bramc> It looks like a great trick for consistently reducing latency, not sure what else it buys.
<bsm1175321> While the chain can be removed in favor of a DAG, there's an intermediate state required for Bitcoin where the DAG results are checkpointed back to the chain.
<bramc> bsm117532 It's possible to use weak blocks without changing the blockchain format at all. You just 'compress' a block by saying 'apply this delta to that weak block'
ratbanebo has joined #bitcoin-wizards
ratbaneb_ has quit [Ping timeout: 240 seconds]
<bsm1175321> bramc: true. However then you can have weak block orphans, no?
<gmaxwell> bramc: the more latency there is in block transmission the less fair the bitcoin network is (larger miners get excess profits). When latency goes up with block size this is bad news for increased throughput.
King_Rex has quit [Remote host closed the connection]
<bramc> Yes you can have weak block orphans, but so what? In some sense they're all orphaned when a new real block comes out.
<bramc> gmaxwell, Right. I don't understand what you mean about pre-consensus and fairness though.
<gmaxwell> by preconsensus above I mean that a weak block scheme could be 'very strong' in the sense that later weakblocks and blocks are required to agree with prior weakblocks. And I was just saying that I don't believe a system this strong is actually needed to gain most of the fairness benefit.
<bsm1175321> bramc: I want to additionally divide the block reward among weak block publishers.
<bsm1175321> Doing that decreases miner centralization by making more frequent, smaller block rewards.
orik has joined #bitcoin-wizards
<bramc> gmaxwell, The reason for only using the longest chain is to encourage everybody to use older weak blocks when making newer weak blocks, because that reduces latency.
<bramc> I'm assuming that weak blocks are themselves a chain
damethos has quit [Quit: Bye]
<bramc> bsm117532 That's a bit hard with the current blockchain. This other stuff we're talking about requires no blockchain changes whatsoever.
<gmaxwell> bramc: right and what I'm pointing out is that I think that making a weak block chain ("pre consensus") is actually more than is needed.
<bramc> gmaxwell, Yes more than is needed, but is there any downside to it?
<bsm1175321> Well people are honing in on the idea of having a smaller, faster layer between 10m bitcoin blocks. (e.g. Bitcoin-NG does the same thing) One has the opportunity to make this new layer be anything we want, why duplicate the blockchain with its problems (orphans, centralization) in that layer?
<gmaxwell> complexity/overhead, perhaps. Unclear.
<bramc> gmaxwell, I think it's if anything simpler, because weak blocks 'want' to be a chain, because regular blocks are expressed as a diff off a weak block, so why not make weak blocks be diffs off of weak blocks?
<bramc> bsm117532 There are deep issues with getting the time until a transaction is 'safe' down, regardless of blockchain format. Even when it's really working, it's going to be like 3 minutes instead of 30 minutes, which is still problematic. Micropayment channels are a much better approach.
<bsm1175321> A faster layer doesn't mean a transaction is "safe" faster. Just that it gets transmitted faster.
GAit has joined #bitcoin-wizards
Newyorkadam has joined #bitcoin-wizards
<sipa> transactions are transmitted instantly if you're not using the blockchain as a communication mechanism, but just send it directly to the receiver
<mrkent> gmaxwell: based on the above convo, it sounds like weak blocks take work to produce, but also benefits those who do not put work in. If this is true, what is the incentive to produce weak blocks?
<gmaxwell> bramc: you would make weak blocks diffs of weak blocks for sure, but the observation I made is that how you transmit and what you commit to can be completely orthorgonal.
<gmaxwell> E.g. you can make a weak block X and then differentially transmit it relative to X, or Y, or Z and do so all at once to different peers.
GAit has quit [Client Quit]
<bramc> gmaxwell, Having peers use the longest weak chain maximizes the chances that they'll all be working off the same thing
<bsm1175321> gmaxwell: would X, Y, Z have independent proofs of work?
<bramc> It has the same benefits as it does for the regular blockchain
GAit has joined #bitcoin-wizards
<gmaxwell> bsm1175321: NO
atgreen has joined #bitcoin-wizards
<bsm1175321> gmaxwell: then they share the same PoW but you're sending different sets of transactions to different peers?
<gmaxwell> bsm1175321: again, the commitment and the transmission have no reason to be at all connected that I'm aware of. When you transmit something to a peer you should do so with the most efficient means available for doing so.
<bramc> My guess for the best time between weak blocks is about 30 seconds, same as rusty's
<bsm1175321> I see.
<gmaxwell> bsm1175321: no, its the same transactions, but you can use different basises for them.
<bramc> Oh duh, when you're making a new block it doesn't have to explicitly reference a particular previous weak block, you can express any of them as diffs off any others. Took me a bit to realize that.
<gmaxwell> Say you know peer Y knows weak block Z which happens to be exactly the same as Z2, so you'd use Z to Y as the reference for Z2. But peer Q does not know Z, it knows M and N and M is closer, so you use that.
<gmaxwell> now sure, it's best if everyone is using a common thing to go off of, you get more efficiency; but it is not strictly required.
<bsm1175321> Now I'm confused. I thought the weak block *was* a delta (and that was it's point) and contained a PoW. But now you're saying you're going to transmit deltas relative to weak blocks and they don't require a new PoW?
<bramc> You can also potentially do a diff off a combo of two weak blocks. Take block A, then everything in block B which is still allowed, then do this diff
<gmaxwell> and it may be good to not strictly require it so that you punish different policies less. E.g. big miners are censoring some transaction, a small miner is not, you don't want to punish the small miner by requiring he work only be differentially referenced to the big miners, rather than other non-censoring miners and himself.
<bramc> bsm117532 A weak block is a partial - it's a regular block which didn't make the PoW cut
<sipa> bsm1175321: a weak block is an almost-valid block, it's not different from a real block (except not meeting the PoW)... but you can use the same differential transfer mechanism for them
<bsm1175321> Gotcha.
<gmaxwell> bsm1175321: all weak blocks are commits to sets of transactions above and beyond the blockchain. And you use differential transmission to efficiently transmit weak blocks between peers (as normally the weak blocks are almost all the same)
<bsm1175321> And unfortunately that scheme isn't going to allow partial block rewards very easily. :-/
<bramc> Since transaction removals can be expressed with a very compressed bitfield, it should never be all that inefficient to transmit a bunch of weak blocks to a peer compared to transmitting just the biggest weak block to them.
<bramc> bsm117532 Right, that's a different problem
GAit has quit [Quit: Leaving.]
Newyorkadam has quit [Quit: Newyorkadam]
<gmaxwell> In any case, there are hidden costs to worry about; it's not all puppies and unicorns. :)
<bsm1175321> This is an excellent opportunity to address it -- at the point we're adding a smaller faster mining-based communicatoin layer.
darmou has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nanashi has quit [Quit: Leaving]
ratbanebo has quit [Read error: Connection reset by peer]
<bsm1175321> e.g. the block reward could be divided among the weak block publishers, weighted by the hash they generate relative to the difficulty.
<sipa> how so? there is no strong consensus about weak blocks
c-cex-yuriy has quit [Quit: Connection closed for inactivity]
<bramc> bsm117532 That makes orphaning be a serious issue and opens up the whole can of worms which the blockchain is designed to solve in the first place.
<sipa> you can't prove that a weak block existed
ratbanebo has joined #bitcoin-wizards
<sipa> exactly, if you do that, you could just as well turn the weak blocks into full ones
<bsm1175321> bramc: That's the reason to use a DAG and get rid of the orphaning issue.
Newyorkadam has joined #bitcoin-wizards
<bsm1175321> sipa: Good point. Not sure how to address that.