asciilifeform: if this orphans a tree branch, it should simply fall off
asciilifeform: i.e. your vtron doesn't see it in flow any more.
mod6: so back to the model: a->b->c->d if I remove 'c', all that should show up in the flow is 'a->b' and all that is pressable is 'a->b', should never attempt to even press 'a->b->d'
asciilifeform: d is not in your universe no moar
mod6: ok ok.
mod6: got it.
asciilifeform: unless and until you put c back in play.
mod6: correct. now you get an 'a->b->c->d'
asciilifeform: this makes sense now, mod6 ?
mod6: very much so.
mod6: i'll work on something for this. will update at that point. thanks for talking me through it. :]
asciilifeform: i will add 1 thing:
asciilifeform: there is only 1 case where a vtron ~must~ barf
asciilifeform: that is if it finds a graph cycle.
asciilifeform: it is impossible to operate correctly on a cyclical vflow.
asciilifeform: if you ever see one, you gotta find and negrate the joker who closed the cycle.
asciilifeform: and fix your wot.
mod6: fwiw, i believe i've even tested this once by creating a special patch that pointed to an earlier patch in the flow.
asciilifeform: it is the ~only~ must-die condition for a vtron.
mod6: not 100% positive, but I seem to recall trying this once. i think my thing broke with a 'cyclic graph!' or something
asciilifeform: literally every other condition is recoverable.
asciilifeform: i.e. your tree is still valid.
asciilifeform: this includes empty set
asciilifeform: (no patches, no sigs, and no wot, or simply 1 or 2 of these)
mod6: also, as a note, i'll leave the anti-fuzz change in this new version -- it seems ~more~ correct than previous impl.
asciilifeform: fuzzing is wrong in all cases, aha
asciilifeform: i will rephrase again for clarity: for so long as you have 1 pubkey, which was used to make 1 seal, and that seal is for one, single patch, your only one, a genesis, you can display a flow. and literally every other file in .seals, .wot, .patches can be a lolcat.
asciilifeform: if they are ~all~ lolcats, you simply have a null flow.
asciilifeform: (no pressables)
a111: Logged on 2016-12-22 23:56 Framedragger: (mp suggested to invite him over, and here i am childishly fearing that he'll hate this place, mp will decide that he's not mp-complete/ready, and that's gonna be that. i know, sad.)
mircea_popescu: anyway, he probably WILL hate this place, what with his bizarre notions of ethics etc. but whatevs.
a111: Logged on 2016-12-22 23:57 asciilifeform: we had this with at least 1 d00d who i respected (spandrel/'bloody shovel')
mircea_popescu checks, the only time i even said the word it was used as a noun.
mircea_popescu: and that was in 2014.
a111: Logged on 2016-12-23 04:41 phf: there's no "correct" with v graphs, and every two months or so i spent some time meditating on what a v graph even is
a111: Logged on 2016-12-23 04:49 mod6: are you saying, in my flow, in these traces, when i remove a middle vpatch or sig, that it shouldn't show anything in the flow after the breakage even if there are vpatches with valid sigs that correspond to wot entities present?
a111: Logged on 2016-12-23 02:19 mircea_popescu: mod6 i read through http://www.mod6.net/v-99994-trace.txt and indeed it seems right and proper vtronics. one q though : was there any patch not signed by asciilifeform interspersed in the flow ? because that's the only not tested case i think, if you have say a->b->c->d where a, c and d are signed by x. does it stop at a ?
mircea_popescu: http://btcbase.org/log/2016-12-23#1588990 << ah, but the idea was with single guy in wot.
a111: Logged on 2016-12-23 04:52 mod6: because there are other routes everywhere else that can follow.
mircea_popescu: obv if there are alternate routes then it's ok.
mircea_popescu: http://btcbase.org/log/2016-12-23#1589025 << it's not even clear to me this is actually possible to do. the closing element has to actually break a hash.
a111: Logged on 2016-12-23 05:04 asciilifeform: if you ever see one, you gotta find and negrate the joker who closed the cycle.
mod6: yeah, if im in the wot too, and I have a valid sig to that one, then it's ok.
mircea_popescu: ie, if someone can close a cycle, it's not time to negrate, it's time to get a better hash.
mircea_popescu: mod6 yeah, if it's a (2 sigs) -> b(2 sigs) -> c(1 sig) -> d(2 sigs again) then it's a valid press.
mircea_popescu: but the idea was, put just alf in wot, cut a seal midway, see what happens.
mircea_popescu: as alf says, what happens should be all ulterior bits should fall off.
mod6: yea, a solid test.
mircea_popescu: anyway, it may feel a bit tedious/stupid/etc to keep workign these basics, but it'll pay off in time
mod6: agreed. we're getting there one bit at a time.
mod6: this next round of refactoring for this might be some work, but in the end, i aught to write a bunch of these tests into automated ones.
mod6: then once we agree that mine does what is deemed 'correct' others can use the tests to prove their own out.
mod6: at least, somewhat.
mod6: yeeep, lot of testing.
a111: Logged on 2016-12-23 05:33 mircea_popescu: http://btcbase.org/log/2016-12-23#1589025 << it's not even clear to me this is actually possible to do. the closing element has to actually break a hash.
asciilifeform: just end up with even one descendant hash that already existed.
asciilifeform: if this weren't easily detectable, vtronics would be entirely impossible
asciilifeform: but fortunately-- it is.
asciilifeform: think simply of the chess rule, that any player whk recreates a board position that existed at ANY previous point in the game -- forfeits.
davout: asciilifeform: has to be 3 times in a row iirc
davout: http://btcbase.org/log/2016-12-22#1588327 <<< guy finds a PKI on the floor, runs to show it to all the other retards...
a111: Logged on 2016-12-22 16:36 thestringpuller: asciilifeform: Emin is pushing SGX like solutions. Seems everyone is infected with security theatre these days.
Framedragger: !$ getarchive http://www.politico.com/story/2016/12/foreign-travelers-social-media-232930
Framedragger: << "The U.S. government quietly began requesting that select foreign visitors provide their Facebook, Twitter and other social media accounts upon arriving in the country"
mircea_popescu: asciilifeform let's take the simplest cycle : a->b and b->a ; to do this, a must contain the hash of b ; and b must contain the hash of a. how do you propose to accomplish this ?
mircea_popescu: Framedragger well, maybe that'll make someone somewhere believe these matter! usg doing its best to support teh economy.
shinohai: Happy Festivus Trilema!
mircea_popescu: in further news nobody cares about, "4 million letters of 'empathy, support' dropped on Mosul". this thing, which was a) going to be a war that b) was going to take two weeks twelve weeks ago (and then a month, and then two, and here we are) has now degenerated in a fucking spam offensive.
mircea_popescu: of the printed mail-order-catalogue sort, because apparently nobody cares about twitter and myspace over there natch.
shinohai: The rebels were running out of TP, so the letters may come in handy in that regard.
mircea_popescu: "In a new photo report purportedly released by the Islamic State, an ISIS suicide car bomber attacks Iraqi forces in the Intisar neighborhood of east Mosul, Iraq. The photo report was released on ISIS terrorist channels on December 22."
mircea_popescu: so far there's "fake news" channels ; "terrorist" channels ; and of course "the media" aka http://trilema.com/2016/the-war-with-the-press/
mircea_popescu: i wonder if there's going to also be a 4th.
mircea_popescu: anyway alf will prolly appreciate : https://heavyeditorial.files.wordpress.com/2016/12/photo_2016-12-22_07-09-311.jpg
mircea_popescu: they are building the armored thing after all!
mircea_popescu: (of all the weird therein included, it's of particular amusement to me that they do have the slant, but that they evidently introduced it graphically rather than numerically. nobody did the math required to see how that front apex should go ; it's just there because "that's how tanks look", forget blast flow simulations etc.)
mircea_popescu: in these parts of the world it's un travail d'argentinian.
mircea_popescu: (i suppose also lulzy, that the front wheel cover has hinges, whereas the back one is screw-mounted. why not the other way around ?)
mircea_popescu: http://blogs.timesofindia.indiatimes.com/wp-content/uploads/2016/12/002.jpg << the pet rocks are also pretty cool.
mircea_popescu: (and check out the uniforms, everyone in iraq is O-9 ?!)
mircea_popescu just checked, o-9 pay grade is from 14.5k to 18k A MONTH. it is literally a better deal to be an entry level sysadmin working in pasadena than a lieutenant-general working in baghdad.
mircea_popescu: reviewing the travail d'americain the sysadmin puts in, it should come at no surprise that the us last won a war when the europeans ran the effort for them,\
davout: what's that 0-9 thing?
mircea_popescu: O-9. pay grade.
mircea_popescu: like how much money is paid to various military positions in the us.
mircea_popescu: three stars epaulettes as seen in 2nd pic would conventionally indicate a us lieutenant-general, which is paid as an O[fficer]-9, 2nd highest.
deedbot: http://phuctor.nosuchlabs.com/gpgkey/AE6059BDD7FE61498088A210017B6C8C64175A61EA7E69D7B6EC99B5E54F9603 << Recent Phuctorings. - Phuctored: 1510...7009 divides RSA Moduli belonging to '184.108.40.206 (ssh-rsa key from 220.127.116.11 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (secure4.edt02.net. FR)
mircea_popescu: from context looks like it's prolly worth ~sergeant in iraq. which is not altogether a bad estimation of respective valor.
mircea_popescu: My heart! The light of my eyes! You are the heroes of Iraq, may God protect you. My soul, my heroes! But for Gods sake get out of the street and take cover from that sniper! << bwhahaha this is just how arabic goes, too.
mircea_popescu: "oh light of the heavens, divine dove, bring me a glass of water" "honey, i lost you at dove. you want an omlet ?"
davout: god, whoever came up with HATEOAS deserves a bullet in the head
mircea_popescu: the what now ?
mircea_popescu: o look, rest-with-gui
davout: because APIs *have* to be clever, because these people are too good for documentation
mircea_popescu: davout this goes eerily with a http://trilema.com/2016/how-the-other-half-lives-a-very-seriously-funny-article/#selection-1023.253-1023.409 style of programming
mircea_popescu: "since the link was no longer displayed, the spambots are deterred!"
asciilifeform: http://btcbase.org/log/2016-12-23#1589083 << the shortest cycle possible in v (assuming that all of the patches are valid, that is, actually produce the hashes they indicate as descendants, as outputted by gnudiff, as opposed to a hand-sewn crapolade which does not) is a->b->a. this happens if you have a patch 'c' that has 'b' as antecedent but 'a' as descendant.
a111: Logged on 2016-12-23 12:24 mircea_popescu: asciilifeform let's take the simplest cycle : a->b and b->a ; to do this, a must contain the hash of b ; and b must contain the hash of a. how do you propose to accomplish this ?
asciilifeform: and it is trivial to make, if mircea_popescu really wants, i can post an example set , with a toy key, and he can hang his vtron.
mircea_popescu: and how would it manage this ?
mircea_popescu: i suspect there's another protocol issue at stake here.
asciilifeform: i'ma post the example.
mircea_popescu: so let's examine this theoretically. in order to make c, you must have a's hash, yes ?
asciilifeform: a must exist, yes
mircea_popescu: ok. and in order to make b, you must have c's hash, yes ?
mircea_popescu: post the example i guess ?
asciilifeform: aite. gimme a few min.
mircea_popescu: davout i am fwiw satisfied the problem is as follows : that fielding schmuck is an academitard. therefore publish or perish. meanwhile for incomprehensible reasons people decided to name some obvious item "rest" and reference him, as if he had anything to do. this created the basis for an academitard position for him, and put him in the publish or perish wringer. so he came up with the other thing, because gotta come up with
mircea_popescu: something ; and the decerebrated mechanism will try to shoehorn it in, python 3 style, because IF THEY DO NOT, then academiatardism collapses altogether. they are if you will the academia fans, expending their own labour to support the fiction they enjoy.
mircea_popescu: all this would have been avoided if a) people correctly observed that roy fielding is fundamentally incapable of having ideas, through not being in the wot.
mircea_popescu: (we'll skip over the entire "waka" incident for the sake of public morals.)
davout: the first things i get when looking into this waka thing are indeed nasty
mircea_popescu: http://btcbase.org/log/2016-12-21#1587182 << speaking of this, here's a question for the eager : a diophantine equation is a multivariate polynomial, something like ax+by^2 = 0. the question is : given an arbitrary finite set of known-good equations, can you use recursion to decide whether an arbitrary equation in the same variables is good (has integer solution) or no good ?
a111: Logged on 2016-12-21 17:23 trinque trying to wrap brain around whether this is a failure mode or universally true, but will have to implement tail recursion optimization in his own head first
mircea_popescu might have just made the world's subtlest point about recursion.
mircea_popescu: asciilifeform this can't press ; 846f (genesis) is not used subsequently ?
asciilifeform: mircea_popescu: a v set consisting solely of genesis is valid
asciilifeform: (delete the other 2 patches and sigs and see this for yourself )
mircea_popescu: yes but the next patches fail to reference the genesis.
asciilifeform: it'd make no difference if they did
asciilifeform: you can make entirely similar example where they do, that still contains loop.
mircea_popescu: well, you just did my a->b b->a in three elements of which one is spurious after claiming a->b b->a is not it.
mircea_popescu: aaaanyway :
asciilifeform: i can make you another that follows whatever shape you like.
asciilifeform: or -- can make for yourself, see.
mircea_popescu: what you can't do is go back in time and agree at the juncture you actually meant to ; but the important point here is :
asciilifeform: not being an aristotelian, i dun need to!111
mircea_popescu: hm, actually, the hashes don't even check out. how was 702d... produced ?
asciilifeform: take a guess
mircea_popescu: plox to state.
asciilifeform: the hashes, first of all, check out (make the file consisting of the text line and one newline and see)
asciilifeform: but of course i made them the simple way, by vdiffing from genesis, but then deleting one link of the chain.
mircea_popescu: ah damn newline
mircea_popescu: yes. so what started all of this in my head, i been trying to lead like three times with "but the problem is :" - we may have a very bitcoin block-esque problem on our hands. specifically, the fact that the hash of a block doth not include the intended hash of its antecessor opens up to a problem we needn't be open to.
mircea_popescu: suppose we had a rule stating that "all patches must include as a comment the patch upon they are to be applied" ?
asciilifeform: but -- and i'd rather that mircea_popescu do this in his head -- you can make a 'munchausen' where both steps (or however many, it can be as long as you like) reference the genesis.
asciilifeform: mircea_popescu: there isn't a 'the patch'
asciilifeform: vpatches are not applied 'onto a patch'
mircea_popescu: they do come in a definite order, yes ?
asciilifeform: they can be applied in the legal order and strictly in the legal order, that's what v is ~for~
asciilifeform: and btw i ~solved this~ in my first vtron
asciilifeform: it will ring alarm if you run it on the munchausen.tar.gz set.
asciilifeform: i posted this as a litmus test of sorts, for vtrons.
mircea_popescu: this is fine, but the question is whether the specification as extent is correct
asciilifeform: imho it is
asciilifeform: cycles -- forbidden.
mircea_popescu: specifically whether it shouldn't include a comment requirement as above.
mircea_popescu: can you show this ?
asciilifeform: and anyone who creates one, is quite obviously in the wrong
asciilifeform: and i do not see any need for magical strings in comments.
mircea_popescu: yes but why should this be enforced at the promise level.
asciilifeform: because cycles in vflow are a Bad Thing and under no conceivable circumstances good ?
asciilifeform: and the culprit is immediately and mechanically identifiable.
mircea_popescu: so then why not make it so they are actually impossible ?
asciilifeform: give example of how, using the munchausen set.
mircea_popescu: if all patches are required to change a comment line in all files they touch, so that it contains the hash of that patch's intended antecessor ; then it is no longer possible to build cycles without deliberately hash-mining for them (because to close the cycle you will have to at one point claim as anterior an ulterior item).
asciilifeform: you can still hash-mine for them.
mircea_popescu: now whether this is actually a good idea is unclear.
mircea_popescu: well yes, but if you do hash mine for them we change the hash.
asciilifeform: and now you have a monstrous abortion that has to be 'self' aware
asciilifeform: instead of a very simple mapping.
asciilifeform: imho my solution is the correct one.
mircea_popescu: yeah it does add quite a bit of unwanted complexity doesn't it.
asciilifeform: the creator of a cycle is in all cases identifiable. kick his teeth in, negrate.
mircea_popescu: what is required to identify a cycle creator ?
asciilifeform: say at time T there is no cycle.
asciilifeform: at T+1 (after one patch) -- there is.
asciilifeform: the signator(s) of that patch is the culprit.
mircea_popescu: see, basically the fear here is that we DON'T escape the "swelf aware monstrosity" no matter what we do ; we may merely choose whether its in the comments or "somewhere else" magically.
mircea_popescu: here's an example to illustrate what i mean :
asciilifeform brb, tea
mircea_popescu: a is a genesis ; b is built on a ; c is built on b ; d is built on c ; e is built on d ; f is built on b ; g is built on d. now both g->d->e->f->b->a and g->d->c->b->a are valid presses.
mircea_popescu: suppose d->c and d->e occured within a second.
mircea_popescu: who do you negrate ?
mircea_popescu: (similarly, from a different pov - does this scheme open up cycle-negrate-arbutrage whereby an attacker could go around closing cycles and hoping we misidentify the culprit because of timing issues ?)
asciilifeform: mircea_popescu: i drew the graph, not seeing what is meant in your example: what means 'now both g->d->e->f->b->a and g->d->c->b->a are valid presses' ?
asciilifeform: the valid presses in the given graph are: a; a->b; a->b->f; a->b->c; a->b->c->d; a->b->c->d->g; and a->b->c->d->e.
asciilifeform: (notation seen here is simply the order in which patches apply.)
asciilifeform: i'll add that f, g, e ~may~ be pressable together in some combination, or may not, it depends on the actual 'patchons' inside
asciilifeform: mircea_popescu: your 'cycle arbitrageur' is precisely the same devil as my cornered-node-creator and panopticonic gossipd observer.
asciilifeform: i.e. a thing that can only exist if ~everyone~ has been catastrophically lazy/retarded for a very long time.
asciilifeform: otherwise he sits in hell playing cards with the other devils, where he belongs, and daren't stick out his nose.
asciilifeform: but in re: 'timing issue', we had a thread where i brought up 'two(+) d00dz form a cycle, who do we negrate' and specifically stated that deedbot-for-vpatches is necessary, and that any two+ folx who insist on issuing patches into same blocktime, and end up being part of a loop, are ~both~ idiots/wreckers
asciilifeform: so my cyclic(T)==false, cyclic(T+1)==true, culprit is the signator(s) of the patch closing the loop, worx great, when this condition is adhered to
asciilifeform: deedbot for patches; 1 per block.
asciilifeform: you get guaranteed well-ordering.
asciilifeform: this also would give mircea_popescu the thing he asked for, which was a litmus that'd let him reject a cycle-creating patch immediately from his light cone, before it can get into his vtron and cause headache. and that is, 'no patch may have a descendant that is also an antecedent of itself or of an earlier-blocktimed patch.'
mircea_popescu: you also get guaranteed limited production of patches to 1 per block.
asciilifeform: this is problem ?
mircea_popescu: i have nfi
mircea_popescu: i'm not making a positive argument here, and haven't throughout. just trying to examine this thing.
asciilifeform: it is eminently worth examining.
asciilifeform: if only for the n00bz.
mircea_popescu: asciilifeform so your contention here is that it is not possible to link a to g through a (b..f) set of patches such that (b..f) is a cycle and that two different paths exist from g to a ?
asciilifeform: but yes, for my simple culprit-finding algo, you DO need well-ordered set of patches.
asciilifeform: mircea_popescu: for the two paths to begin to exist, someone has to take a shit in the graph
asciilifeform: and close a cycle.
asciilifeform: and we immediately will know who.
mircea_popescu: well this immediately is problematic, because a cycle could be claimed to have been closed more than one way, is the point.
asciilifeform: not if 1 patch per blocktime.
asciilifeform: then we know the T at which no cycles, and the T+1 at which cycle exists.
mircea_popescu: this so far seems a lot like a kludge.
asciilifeform: it isn't though. it is mathematically bulletproof.
mircea_popescu: in any case i don't want to discuss problems in a marriage with proposed solutions.
asciilifeform: i contend that it isn't a problem, and that i solved it before releasing v.
asciilifeform: it is a taxidermic head of a problem hanging in my study wall.
asciilifeform: it is an ex-problem.
mircea_popescu: because a) conventionally cycle-closing patches aren't to be released and b) anyone involved in a closed cycle gets hung ?
asciilifeform: with 1-patch-per-block, there can be no ambiguity as to who is responsible for closing a cycle.
mircea_popescu: again : there's no point in discussing solutions as part of discussing problems.
asciilifeform: 'there is mud on my hands' 'faucet is right there, go wash' 'don't discuss solution, let's discuss problem!'
mircea_popescu: but in any case, turns out v actually has a previously poorly understood externality, in the sense of, requires a clock.
asciilifeform: i asked many times for the clock, and pretty sure i explained ~why~
asciilifeform: btw it does not require clock as such, only orderer.
mircea_popescu: that is what a clock is.
asciilifeform: orderer can be, e.g., a 'primus inter pares' monarch.
asciilifeform: rather than clock.
mircea_popescu: yes but this is one of those things you eminently do not wish to solve by human arbitrariety i dun think.
asciilifeform: i agree.
asciilifeform: fortunately we have a clock.
asciilifeform: that is ordered enough for this job.
asciilifeform: not sure that deedbot as-it-now-is would do the trick though
asciilifeform: it'll need a 1-patch-at-a-time hopper.
mircea_popescu: the cycle issue may require more thinking.
asciilifeform: thinking doesn't hurt.
mircea_popescu: furtunately it is not pressing.
asciilifeform: but imho the problem is thoroughly nailed.
asciilifeform: and i nailed it in 2015.
mircea_popescu: you made a blockchain dependency in 2015 ?
asciilifeform: well i do not maintain deedbot, and only could ask politely.
deedbot: http://www.contravex.com/2016/12/23/practical-trigonometry/ << » Contravex: A blog by Pete Dushenski - Practical trigonometry.
mircea_popescu: it's not altogether clear why the "hash whole thing, not just parts like fucking bitcoin blocks do" isn't a better solution. moves the clock externality to a strong hash externality
mircea_popescu: but arguably the latter we already depend on anytway
asciilifeform: there is unfortunately not an escape from the clock. as per the lamportclock thread.
asciilifeform: ordering -- matters.
mircea_popescu: yes, but ordering can be actually implemented by hashing
mircea_popescu: earlier a knowing later b's hash is equivalent to either time travel or hash breaking.
asciilifeform: you're still making use of the order.
mircea_popescu: hm ?
asciilifeform: you used the word 'later'
asciilifeform: the word 'later' implies an order.
mircea_popescu: yes. this is the point - that order can be introduced by hashing. all items are earlier than all other items whose hashes they know.
mircea_popescu: pff. all items are later than all other items whose hashes they know.
asciilifeform: notice, in the munchausen example, we had only 1 file, this is equivalent to 'hash everything'
asciilifeform: (i.e. stuffing all of, e.g., trb, into one long document)
asciilifeform: and cycle, notice, was still easy to make
asciilifeform: and if there were no time ordering, it would not be apparent who made the cycle
asciilifeform: (imagine instead of doctor mengele, each of the 3 patches had been signed by different people)
mircea_popescu: i don't actually see any of these. to start with, "hash everything" is exactly not what was done in the example. it hashed ~the text~, it did not hash ~the antecessor's hash~. this is the problem. that it doesn't hash everything, but just the text.
asciilifeform: that's what v is!!
mircea_popescu: this is turning into an abbot and costello skit.
asciilifeform: i can godelize your 'hash the patches' thing in the exact same way.
asciilifeform: and make cycles.
mircea_popescu: let me approach this matter from a different pov. do you agree that a string S consisting of computer code can be, depending on the context in which it is patched, the right thing or a deliberate subversion ?
asciilifeform: quite so, and is half the reason why v is necessary to begin with.
mircea_popescu: then therefore, do you agree with the proposition that signing S as long as S consists strtictly of computer code with no indication of context is a meaningless at best and dangerous at worst activity ?
asciilifeform: it would be a Bad Thing. if we were to do it. which we don't, because the antecedent hash gives us the context.
mircea_popescu: so then all strings S must incluide the antecedent hash. and in this definition string S = foo.txt ; nothing else.
asciilifeform: (standard gnupatch behaviour gives you precisely this contextless crapola , yes)
asciilifeform: they currently include the antecedent hash.
asciilifeform: --- a/foo.txt 846fdfb9d99724efbc97b1d2b519a221df9724dec3375c54913c1853af221c8e5ad5b5b8c38fffe4b654066071eafd8194fe7b86faa5fbadfbf1c5b872e81410
asciilifeform: +++ b/foo.txt 5ce2953ce7e2d11ce399e45eaa49aa8865af8760dd763ae5aa4298133257cf9931b2f04bdedc38a3aff52fb7a61e990d9b611d397e3db08d0449fddd887d7c27
asciilifeform: @@ -1 +1 @@
asciilifeform: +Foo Genesis, modified.
mircea_popescu: no, because when I hashed to check your hashes i went sha512("Foo Genesis, modified.")
asciilifeform: ^ for the l0gz.
mircea_popescu: i was supposed to go sha512(#846fdfb9d99724efbc97b1d2b519a221df9724dec3375c54913c1853af221c8e5ad5b5b8c38fffe4b654066071eafd8194fe7b86faa5fbadfbf1c5b872e81410 "Foo Genesis, modified.")
asciilifeform: i dun get the problem here?
mircea_popescu: this is because the "same" string (Foo Genesis, modified.) is NOT THE SAME string, depending on the contemplated context. it is a string in 846fdf... and ANOTHER string in whatever other context.
asciilifeform: mircea_popescu: the antecedent hash in this example ~is~ the entire context, because the example is so short.
mircea_popescu: actually, because of how we build the presses, ALL contexts are "so short" as this one ; in the sense the antecedent hash always suffices.
asciilifeform: for so long as you ban cycles, the graph is guaranteed to behave in the predictable and sane way i described when first released v.
asciilifeform: see knuth's discussion of garbage collector, for related example.
asciilifeform: whole thing is more or less a straight rip of it.
mircea_popescu: ~so long as we ban niggers, politics will work ok. sure, the issue is how to ban them.
asciilifeform: i described one provably-correct algo for doing so, in this thread.
mircea_popescu: but any any rate, i think this discussion's exhausted itself, we'll have to see later on what we do about this.
asciilifeform: why continue to pretend that this is an open problem ? do you see an issue with the blocktime algo ?
mircea_popescu: yes ; that it requires blocktime.
mircea_popescu: (also that it's not currently implemented anywhere, but that's minor. the reason it's not implemented is that it doesn't, at least to my eyes, make much sense.)
asciilifeform: if mircea_popescu or anybody else wants to try to 'square the circle' and make a v-prime algo that doesn't need ordering, i will helpfully show how it breaks.
asciilifeform: and this is rapidly turning into the one-time-pad thread.
mircea_popescu: you're very kind, but the problem doesn't need that redefinition.
mircea_popescu: ordering is provided by hashing ; we're currently not actually using this, no idea why, but whatever. i really mean it when i say the discussion's exhausted itself, im not gonna sit here an' retrace the same circle witcha.
asciilifeform: even d00d with cock that only fits on a spool in atlantic cable-laying ship cannot break arithmetic.
mod6: asciilifeform: hey, say I wanted to test my toposort...
mod6: (i played with this for a long time lastnight after that quick conversation)
mod6: if i take this output hash from genesis for say, net.cpp:
mod6: --- a/bitcoin/src/net.cpp false
mod6: +++ b/bitcoin/src/net.cpp b72b573ba77b095e2497e297ba5b02aa68317f67438ee070fee86e129a95b85dc9b5ca98e96441bb2b3b98263dd88630990c913affbabf890641f349d1c6da47
mod6: so 'b72b573' ... and drop this into a down-flow vpatch that touches net.cpp, that should cause the cycle right? like so:
mod6: diff -uNr a/bitcoin/src/net.cpp b/bitcoin/src/net.cpp
mod6: --- a/bitcoin/src/net.cpp c67fdd55e9d9d6b4973122b76729d7e83a456a8dc410f1c130cffbfd9f626c47ca7e8006bde912d9e0bd0a4b8457e895270d4a0efd22c4a199cd52ffd95b10dd
mod6: +++ b/bitcoin/src/net.cpp b72b573ba77b095e2497e297ba5b02aa68317f67438ee070fee86e129a95b85dc9b5ca98e96441bb2b3b98263dd88630990c913affbabf890641f349d1c6da47
asciilifeform: this is not actually a cycle, do you know why ?
asciilifeform: because it takes you back to genesis
mod6: ah. ok.
asciilifeform: notice, my vtron will not barf on it. because it does not cause a munchausening.
asciilifeform: (where an item comes to exist ex nihilo, without flowing from genesis)
mod6: im not sure if i follow. are you saying that genesis isn't a good place to test it because it is a root?
asciilifeform: returns to genesis are topologically harmless and so were legal in my vtron (they cannot cause any kind of inconsistent behaviour.) note that a deedbotted vtron as discussed in today's thread, would still ban them.
asciilifeform: mod6: take a paper and draw a loop containing the genesis.
asciilifeform: any patch in that loop is pressable without spinning in circle forever.
asciilifeform: because you can TRACE BACK TO GENESIS
asciilifeform: you never walk the entire loop, full circle.
asciilifeform: whereas in munchausen.tar.gz, you WOULD walk forever if you tried to flow
asciilifeform: or to press
asciilifeform: like ants in a circle.
mod6: well, i was trying to discern weather my toposort is correct or not.
mircea_popescu: thinking about it, is it actually possible to make a cycle where at least one element traces back to genesis ?
asciilifeform: mircea_popescu: mod6 posted one above.
asciilifeform: mircea_popescu: it is not illegal in my vtron because the toposort still provably terminates.
mod6: and when I do that above test ^, i never hit this line: death("Cyclic Graph!\n");
mircea_popescu: how is it a cycle if it terminates ?
asciilifeform: and you won't, if you copied my toposort.
mod6: it just hangs.
asciilifeform: mod6: so i guess you did not copy my toposort.
asciilifeform: mircea_popescu: it is a cycle topologically, but given as it contains the genesis, the 'ant walker' stops at the genesis, and does not walk in circles.
asciilifeform: 'the buck stops here.'
mircea_popescu: i don't get it, the genesis has an antecessor ?
asciilifeform: it does not!!
mod6: yeah, i certainly tried. and i thought i even tested this before... so maybe there was a regression. but i'll admit, that python code is very strange to me eith the for with the else.
mircea_popescu: so then how is it a cycle ?
asciilifeform: that is the definition of genesis, it has no antecessor.
asciilifeform: mircea_popescu: because dr.mengele makes a patch that ~produces~ the genesis, thinking he is oh so clever
mircea_popescu: but that is not ~the~ genesis ; that is merely the same string of code.
asciilifeform: so it would appear, if you naively drew the graph, that the genesis now has an antecedent
asciilifeform: but in fact it -- definitionally -- does not, even if someone tries to 'give' it one.
asciilifeform: the genesis, note, is not merely a string of code.
asciilifeform: it also is:
asciilifeform: --- a/foo.txt false
asciilifeform: +++ b/foo.txt 846fdfb9d99724efbc97b1d2b519a221df9724dec3375c54913c1853af221c8e5ad5b5b8c38fffe4b654066071eafd8194fe7b86faa5fbadfbf1c5b872e81410
asciilifeform: @@ -0,0 +1 @@
asciilifeform: +Foo Genesis, virginal.
asciilifeform: note the '--- a/foo.txt false'.
asciilifeform: fiat lux.
mircea_popescu: so now. how would one make a cycle whereof at least one element actually traces back to genesis ?
asciilifeform: here's one way:
asciilifeform: --- a/foo.txt 846fdfb9d99724efbc97b1d2b519a221df9724dec3375c54913c1853af221c8e5ad5b5b8c38fffe4b654066071eafd8194fe7b86faa5fbadfbf1c5b872e81410
asciilifeform: +++ b/foo.txt false
asciilifeform: @@ -1 +0,0 @@
asciilifeform: note that a correct vtron will not misbehave if you have this.
asciilifeform: returning to genesis is permitted, because the toposort still terminates.
mircea_popescu: asciilifeform i specifically want a cycle (n >1) where one element traces back to genesis. it seems to me that because one patch can only identify one antecedent, it is not possible to create cycles for the ~same reason organic chemistry doesn't work on hydrogen and oxygen only.
asciilifeform: (this was an aesthetic choice of mine, it can be revoked quite simply)
davout: why is it "returning to genesis" rather than "pressing something that happens to be equal to the genesis" ?
asciilifeform: davout: those are the same thing
asciilifeform: there is no colour of bits.
mircea_popescu: cuz shorter i guess.
mod6: <+asciilifeform> note that a correct vtron will not misbehave if you have this. << am trying this...
davout: and why is it considered an issue? i mean, what if we realize all these patches were retarded, that we roll them all back, but want to keep the flow for historical purposes?
mircea_popescu: per doctrine you're supposed to rebase. can still keep for "historical purpose"
asciilifeform: mircea_popescu: http://wotpaste.cascadianhacker.com/pastes/VZVHu/?raw=true << here is your 'cyclic ring of 3 atoms'
asciilifeform: cum genesis.
mircea_popescu: asciilifeform this goes a->b b->c c->a
asciilifeform: it is legal in my vtron, because it 'returns to earth'
mircea_popescu: what i want is a->b->c->b.
mircea_popescu: because exactly : yours is legal and fine ; mine is trouble.
asciilifeform: yours rings the alarm bell.
mircea_popescu: but ~can it actually be made~.
asciilifeform: i will post it, because i have it handy
asciilifeform: http://wotpaste.cascadianhacker.com/pastes/TwMUZ/?raw=true << this sets off the alarm.
mircea_popescu: but this is a->b->c->d(=b). the only reason d is confused with b is because we don't hash correctly.
asciilifeform: we hash correctly.
asciilifeform: and there is no confusion.
asciilifeform: the alarm -- rings.
asciilifeform: and you can prove that it will.
mod6: so i think i've tested exactly what you laid out, asciilifeform, with V99995 (the current version out there), and this is the result:
mod6: "returned to earth"
asciilifeform: which is correct.
asciilifeform: mod6: now try to get antecedents for foo-modified
mod6: any others while i'm at it?
asciilifeform: it stopped at genesis.
mircea_popescu: in point of fact, it should have looked like this : http://wotpaste.cascadianhacker.com/pastes/u51YZ/?raw=true and so following.
asciilifeform: mod6's vtron, in this respect, worx.
mircea_popescu: then there'd be absolutely no b=d ambiguity.
asciilifeform: mircea_popescu: this destroys the ability to see that we in fact returned to genesis. has it occurred to you to wonder why even to have patches at all? why not everyone just signs the entire hindenburg titanic of trb every time he changes a line ?!
mircea_popescu: we can't "return to genesis".
asciilifeform: sure we can. at least under my original vtron, this was a legal operation because it does not produce an eternal walk.
mircea_popescu: that it was supported by some implementation at some point doesn't actually provide it with cognitive content.
asciilifeform: you can ban it, as shown above in mircea_popescu's paste, by demanding that no new patch produce the antecedent of an old one.
asciilifeform: which still requires ordering.
asciilifeform: to have concept of 'new' and 'old'.
mircea_popescu: isn't ordering therein implicit ?
mircea_popescu: there's only one way to fit them all together.
asciilifeform: in mircea_popescu's paste, there is only 1 way.
mircea_popescu: right, is what i meanty
asciilifeform: what you need ordering for is if someone ~does~ break the no-old-antecedent-hashes-as-descendants rule
asciilifeform: and you want to find out ~who~
mircea_popescu: ie, if someone actually mines a hash, you mean ?
asciilifeform: mircea_popescu's solution, if i understand it, is to include a gensym in each patch body.
asciilifeform: this still requires ordering.
asciilifeform: a gensym, in case anyone forgot, is defined as a symbol that is guaranteed to be unequal to all other invocations of gensym.
mircea_popescu: nono, just previous patch hash. whenever you sit down to write a patch, you sit down to write it atop a press, or at any rate the situation resulting from a press. that has a "last item pressed" by necessity, and THAT will be your header.
asciilifeform: there is no concept of 'previous' without a time order !
asciilifeform: let's work this out :
asciilifeform: say i sit down to write a patch.
asciilifeform: and at the same time, mircea_popescu also does.
asciilifeform: we at the same time write '#Patch bfffhlerghhl' for our gensyms.
asciilifeform: and so we're nailed.
asciilifeform: in order to never do this, we have to confer.
asciilifeform: or to have an oracle.
asciilifeform: that orders for us.
mircea_popescu: look : your patch will be sha512(#Patch bfffhlerghhl\nalf's words\n) and my patch will be sha512(#Patch bfffhlerghhl\nmp's words\n)
mircea_popescu: they won't come out the same.
asciilifeform: they will if the payload is the same.
asciilifeform: which is same problem as in ordinary v.
mircea_popescu: you propose we both write the same code on the same patch ? then yes, they come out the same. this is fine.
asciilifeform: the inequality can only be enforced by an outside synchronizer.
mircea_popescu: (also why i said no above to "gensym")
mircea_popescu: i dunno if you read that ; did you ?
asciilifeform: mircea_popescu: as i understand, your solution to cycles is to demand that no two patches be equal.
mircea_popescu: well in fact, to demand that hashes cover the patch and its context, not merely the patch.
mircea_popescu: by similarity to how we'd like block hashes inbitcoin to cover the whole block and not just parts.
mircea_popescu: but yes, in the last instance, it's to demand that "same patch" can only mean, "same text" + "applied in same place".
asciilifeform: what does the string 'Patch for genesis' do in mircea_popescu's paste example ?
mircea_popescu: it's a fixed word. you could have it #Patch for false
mircea_popescu: if you prefer.
asciilifeform: for starters, a patch can antecedentize 10,001 other patches.
mircea_popescu: well, do we actually want this ? it doesn't seem to make sense ; in the sense that when you write the patch in question, you write it atop a specified code ; which is the result of a press ; which has a "last patch applied" necessarily. so that one should be the "antecedent" properly speaking.
asciilifeform: it does not in point of fact have a unique 'last patch applied', because there is no way to prevent two people who do not know about one another from both writing :
asciilifeform: --- a/foo.txt 53fedeea28a5b6608b422f90f8c28e97c4604d6da5c18b8167b10c994166d8f0b47cd07bca8a6e4e53b6a961bef75f494c70e97437b7afd2d69c4110d7c06575
asciilifeform: +++ b/foo.txt
asciilifeform: @@ -2 +2 @@
asciilifeform: -#Patch for genesis.
asciilifeform: +#Patch for 53fedeea28a5b6608b422f90f8c28e97c4604d6da5c18b8167b10c994166d8f0b47cd07bca8a6e4e53b6a961bef75f494c70e97437b7afd2d69c4110d7c06575
asciilifeform: +Foo Genesis, modified.
asciilifeform: i.e. identical patch.
asciilifeform: which takes you to the same place.
mircea_popescu: asciilifeform but when you write another one, you ~have to~ choose one of them.
asciilifeform: UNLESS we have clock.
asciilifeform: they are the same bits ! you cannot 'choose 1'
mircea_popescu: not by my model above.
asciilifeform: martians make a copy of mircea_popescu ! which mircea_popescu shoots which other !
asciilifeform: you cannot prevent the identical bitstrings, regardless of what epicycles you come up with. other than by ordering.
asciilifeform: there is no squaring for this circle, mircea_popescu .
mircea_popescu: in any case, as described v becomes an actual bitcoin , very much in the sense of "slavegirl powered btc" - each "block" ie vpatch is mined etc. this de facto allows to have things such as a "development clock" for perhaps other usage.
mircea_popescu: (it is uniquely idiotic to clock v patches by bitcoin - because for eg what happens in 2115 when v is the basis of bitcoin and a bug occurs which makes blocks not happen anymore and has to be fixed by a vpatch which can't exist because no blocks.)
asciilifeform: all bitcoin-like systems are doomed to have vaguely same shape, just like airplanes are doomed to have wings.
asciilifeform: mircea_popescu: for so long as you have the flame continuously burn, and at no point 'everyone died', it runs.
mircea_popescu: asciilifeform if you mean that you and i both sign the same patch text in the same tree context, the result here has been the very common, and very benign, MULTIPLE SEALS. which we currently have.
asciilifeform: just as bitcoin will still work when we rebake it with old balances and new clockwork.
mircea_popescu: this is not true. bitcoin blocks can stop right now.
mircea_popescu: the stoppage may require a patch
asciilifeform: what of it
mircea_popescu: except woe, you can't make it because someone already made a patch for this block and you aren't going to see another block without a patch.
asciilifeform: fortunately there are other ways of unambiguous ordering for the record.
asciilifeform: mircea_popescu takes the patch, writes it in corpses of usg soldiers in the desert, photographers come, it is printed in every paper in the world; now -- ordered.
mats: the butts are rising
mats: happy non denominational winter holiday
mircea_popescu: asciilifeform lemme state this thing from my pov for teh record here.
asciilifeform: for ze well-ordered record!
asciilifeform: http://wotpaste.cascadianhacker.com/pastes/F4SWa/?raw=true << another example of convergence
mircea_popescu: 1. all ordered sets will create cycles whenever the index repeats ; 2. tmsr uses ordered sets to resolve specific problems of code development ; the application is called v ; 3. for the purpose tmsr uses ordered sets for, cycles are intolerable (the turing problem resolves to "acyclic set graph" in this particular case) ; 4. there is no way to guarantee numbers do not repeat.
mircea_popescu: this outlines a theoretical problem, which is present. it does not have many practical implications at the present time for purely political ("thou shalt not cycle!" is an imperative) and sociological (not that many people hammering out that many patches yet) reasons. therefore its solution is not in any sense pressing.
mircea_popescu: nevertheless, two different solutions have been considered. one is to attach an outside clock to the process. this has the obvious disadvantage of attaching an outside clock to the process. the other is to modify the indexing process for the set, from the current "index is hash of textual content" to a more advanced "index is hash of textual content + its context". as an exemplary poc it was proposed that this change may be i
mircea_popescu: mplemented as introducing a comment which references the previous item in the indexed set - but this is by no means the only, or the required, or standards-candidate implementation.
mircea_popescu: now, because of a naive "repetition creates cycles" and "index=text content" joint assumption, you automatically imagine that two people signing the same (text+context) pair would create a cycle. not anymore - the situation neatly reduces to "two people sign the same patch", ie, having multiple seals for the same patch.
mircea_popescu: did i miss anything ?
asciilifeform: the example i just posted involves two people, 'a' and 'b', who follow entirely different paths, come to same place, because they do not know about one another and there is no clock. now you can give them a place to put magical comment, but again they have to have a drumbeat or agreement method of one kind or another, or they can still follow this same path.
asciilifeform: carefully note that the patches a2 and b2 are not the same.
asciilifeform: and that this sequence could be as long as one could possibly like, 10,001 if we like.
mircea_popescu: i have nfi what i'm looking at here ; none of them correctly reference their antecedent hashes, so it's just random garbage
mircea_popescu: note that "insert random garbage" has not actually been proposed as far as i know.
asciilifeform: show me what 'correctly reference their antecedent hashes' would look like.
mircea_popescu: mk a sec
mircea_popescu: http://wotpaste.cascadianhacker.com/pastes/xfuHq/?raw=true < and so following.
asciilifeform: you made b1 depend on a1
asciilifeform: which it does not
asciilifeform: a and b are on separate planets , and do not know about each other, and each was working from the genesis only.
asciilifeform: this was quite apparent from my paste.
mircea_popescu: mk lemme restate this then!
asciilifeform: b1 and a1 are in contradiction, you can apply one or the other to the genesis.
asciilifeform: b2 can only be applied on top of b1, and a2, similarly, on top of a1.
asciilifeform: (this in my original example.)
asciilifeform: they have entirely different paths, and so making them explicitly state their path, will not save you
asciilifeform: (which is what i gather mircea_popescu intended to do in his paste)
mircea_popescu: next a line will reference f1bebb8.... and next b line will reference 33529af2cb74...
asciilifeform: what does putting 74e20d520ba4ecfdb59d98ac213deccecf591c9c6bfc5996ac158ab6facd6611cce7dd22120b63ebe9217f159506f352ce0ee6c0c2a1d200841ae21635dc5f9a in two different places, give you ?
asciilifeform: it is already in
asciilifeform: --- a/foo.txt 74e20d520ba4ecfdb59d98ac213deccecf591c9c6bfc5996ac158ab6facd6611cce7dd22120b63ebe9217f159506f352ce0ee6c0c2a1d200841ae21635dc5f9a
asciilifeform: in both
mircea_popescu: adding it in the actual file makes it part of the hash for the file.
asciilifeform: of the patch..?
asciilifeform: nobody's hashing ~the patches~. mircea_popescu wants to ?
mircea_popescu: dude. adding it in the actual file makes it part of the diff of the patch which makes it part of the hash.
asciilifeform: nobody's diffing the patches, mircea_popescu
asciilifeform: you will need to describe a v-prime where patches get diffed
asciilifeform: (to produce what? patches of patches ?)
asciilifeform: if you formalize this -- we can work from that.
mircea_popescu: obstructive reading ftw.
mircea_popescu: let's indulge.
mircea_popescu: adding the hash of the antecedent to the actual file makes that hash part of the diff of the actual file, which makes it part of the hash of the patch (ie, diff of files).
mircea_popescu: happy nao or needs more pass ?
asciilifeform: i can still make you a cycle.
asciilifeform: in this system.
asciilifeform: without hash collisions, either.
asciilifeform: but now i can also make 10,000,001 paths that lead to the same press, and cannot be easily distinguished by machine. which is a headache that normal v does not suffer from.
mircea_popescu: yeah, i'm not saying this is some sort of great improvement.
mircea_popescu: i am saying however it makes cycles impossible, so let's see that part.
mircea_popescu: !!key Tribalkiller
mircea_popescu: and while he's incapacitated, http://btcbase.org/log/2016-12-21#1587343 << to briefly revisit the whole "greeks were actually smarter than you" thread : naive set theory (as expoused by, say, frege) runs into a problem known as russel's paradox : should the set of sets that don't include themselves include itself ?
a111: Logged on 2016-12-21 19:03 mircea_popescu: should be pretty evident that a dimension defined in terms of divisibility is very fundamentally not the same thing as the latin notion of dimension-as-extensibility.
mircea_popescu: at issue is, of course, the constructivist approach to sets ; ZFC (which is the predominant, if unexamined, contemporaneous basis for set theory) disposes with this naivity, and instead approaches the matter greek-style : all sets are "constructed" by criteria in the sense of carving subsets from the superset V (ie the v Neumann universe). it is perhaps worth noting that russel's own solution favoured ~fucking over logic~ rat
mircea_popescu: her than the obvious renounciation of the constructivist delusion.
mircea_popescu: so yes, monkey makes ballista, shoots man. then monkey settles down, forgets about balista for a minute, spends TWO CENTURIES trying to figure out what man had already said. a rather hollow sort of victory, at least to my eyes.
mircea_popescu: (in this application, russel = monkey.)
asciilifeform: so i hand-cranked the sequence using mircea_popescu's method, to agglomerate, forever, a record of the path through the tree. and he is right that this will keep the toposort from detecting a loop. but this is rather like whitening an rng, it confuses only the machine, but not the reader, who will see that the ~output~ resulting from following the path is identical.
asciilifeform: you still have a loop, semantically, but no mechanical means of detecting it.
mircea_popescu: no, my contention is that this "Sameness" is entirely illusory.
mircea_popescu: in the sense contemplated in http://trilema.com/2014/pro-idiotas-which-obviously-means-people-who-have-ideas-ie-idiots/
asciilifeform: a == a
asciilifeform: said your very same aristotle.
mircea_popescu: mno. "a" does not exist. mp(a) != rando(a).
mircea_popescu: ie, idiots can not have ideas. no matter what they do.
asciilifeform: the mp-ness of a is provided by his seal.
mircea_popescu: the same exact string, if said by me, is an idea - if said by rando, is nothing.
asciilifeform: so the actual bits are not in fact the same.
asciilifeform: a+mpseal(a) != a+randoseal(a)
mircea_popescu: right, which is what happens here. there's no such thing as "code", but only "x's code" even the same word "for" is not the same word.
asciilifeform: but the thing that makes it belong to somebody, and not some other, is the seal.
asciilifeform: not an imagined soul-substance.
mircea_popescu: the text ; the context ; and the ownership.
mircea_popescu: the context is not imagined, but very mach part of a corrent understanding of text.
asciilifeform: all that cannot be calculated mechanically, is, for the purpose of making a mechanism, imaginary.
mircea_popescu: this is a dubious statement.
mircea_popescu: in any case, "-if + for" is NOT the same thing wherever it appears. even if the strings are equal.
asciilifeform: let's consider what http://btcbase.org/patches would look like if we had been using this algo.
asciilifeform: is it even still possible to draw anything like a readable graph ? or would it look like a ball of yarn where it's this-here-copy-or-fuckyou, and it is not clear at all what was changed and what relied on what.
mircea_popescu: seems to me it would look exactly the same.
asciilifeform: it'd look like rigor mortis.
mircea_popescu: how would it differ ?
mircea_popescu: yes but specifically.
asciilifeform: take, say, 'asciilifeform_lets_lose_testnet'.
asciilifeform: actually, strike that;
asciilifeform: take mod6's latest, the makefiles patch.
asciilifeform: upstream from it, we have 'mod6_der_high_low_s' , 'malleus_mikehearnificarum', and 'asciilifeform_maxint_locks_corrected' .
asciilifeform: (this is a difficult process because we have multiple 'patchons' inside a patch..)
mircea_popescu: so what'd be the problem ?
asciilifeform: mircea_popescu's algo forbids sibling leaves, looks like.
mircea_popescu: how do you mean ?
asciilifeform: if each patch nails down an explicit 'and on top of THIS' press sequence, it drags the entire universe behind it, all of a sudden there is no such thing as 'sibling', i.e. a thing that goes from same ancestor to a different but nonconflicting place.
mircea_popescu: there's multiple approaches available. a) each patch nails down the whole list of direct antecedents, so it'd be 3 in this case ; b) each patch signer picks an arbitrary antecedent to reference of the list (of here - 3), others are free to "fork" it by picking a different one or w/e.
mircea_popescu: i don't see this impossibility you discuss.
asciilifeform: you will end up with massive verticals.
asciilifeform: which is same as not even using v at all, but signing the entire project again and again.
mircea_popescu: well i dunno, the idea of code kinda is to be massive verticals. it;s unclear to me whence this "Signing entire project" comes from either.
asciilifeform: i already get grumbles that trb is an asciilifeform-vertical.
asciilifeform: and asciilifeform doesn't even sit in trb-foundation!
mircea_popescu: i also dun get such grumbles ? apparently there's a lot of divergence to be discussed here lol.
asciilifeform: according to legend, once upon a time, long ago, mircea_popescu lost his house key. so the next day he ordered twenty wagons of glue, and glued everything together -- the gurlz, the keys, his keyboard, his chair, ...
asciilifeform: never lost key again!
asciilifeform: this ~is~ a solution to 'i never again want to lose the key'
mircea_popescu: according to similar legend, there was once a bee dog who saw a glass bottle. because it wasn't red it therefore was grey and because it wasn't fleecy it therefopre was toothy and so the bee dog ran to town and warned everyone of the wolf.
mircea_popescu: the next day, bee dog saw a duck. because it wasn't blue therefore it was white and because it didn't have arms it therefore had claws and the bee dog ran back to town and warned everyone of the white wolf
asciilifeform: obscurantist claptrap is not helping mircea_popescu's argument.
mircea_popescu: you started it!
asciilifeform: mircea_popescu: if your branches cannot converge (and under your algo, they cannot, because path dependence ~everywhere~) your tree gets cancer, every single patch creates a wholly separate universe that can never touch others.
asciilifeform: even if it wants to.
mircea_popescu: why can't it converge, i don't get it ?
asciilifeform: because every descendant would be stuck having to pick, arbitrarily, one or the other path. and so on for ~each~ junction where this happened.
asciilifeform: and if any two descendants pick variant paths, they create that many paths again ~squared~, and so on.
asciilifeform: it begins to resemble the popular picture of time travel.
asciilifeform: which imho is a terrible place to end up in voluntarily.
a111: Logged on 2016-12-23 19:26 mircea_popescu: there's multiple approaches available. a) each patch nails down the whole list of direct antecedents, so it'd be 3 in this case ; b) each patch signer picks an arbitrary antecedent to reference of the list (of here - 3), others are free to "fork" it by picking a different one or w/e.
asciilifeform: mircea_popescu: if (b) is available, it becomes again possible to close cycles.
asciilifeform: if you want to absolutely ban cycles, mechanistically, you are stuck with (a)
asciilifeform: (full paths)
mircea_popescu: yes, but this time a clock is no longer necessary for the beheadings.
asciilifeform: how not ?
asciilifeform: two d00dz simultaneously (as far as we know) shoot out (b)s that make cycle.
asciilifeform: which one to behead ?
mircea_popescu: "how not" is not really a good question ; an example suffices.
mircea_popescu: anyway - so you list all 3 if there's 3. fine. why does this make convergence impossible ?
asciilifeform: draw for me the converger plox
mircea_popescu: maybe we're not talking of the same thing, but isn't the very patch in question, with its 3 references, a converger ?
asciilifeform: say 'a' and 'b', after futile period of divergence, have decided to produce a common offspring 'c'. what does c look like ?
mircea_popescu: c looks like #ref a #ref b sometext
asciilifeform: mircea_popescu: with your algo, 'a' cannot produce the same thing as 'b', because their immediate antecedents were different.
asciilifeform: and there is no way to erase this fact.
mircea_popescu: but this does not prevent c from calling both of them, does it ?
asciilifeform: c cannot call both, because conflict
asciilifeform: (a and b are conflictors)
mircea_popescu: much like currently mod6's latest, the makefiles patch. takes 'mod6_der_high_low_s' , 'malleus_mikehearnificarum', and 'asciilifeform_maxint_locks_corrected' .
asciilifeform: we do not have any merged-conflictors on that graph, universe is not yet old enough for this headache to have occurred naturally
mircea_popescu: if a and b are conflictors then the resolution of their differences will be in either a or b tree ; importing code from either b or a respectively to satisfy ; and the other branch may die.
mircea_popescu: asciilifeform so this makes it a uniquely poor example, seeing how it will conceivably sink the extant scheme.
asciilifeform: it does not.
asciilifeform: because in the extant scheme, 'a == a'.
asciilifeform: you are permitted to go to the same place via 2+ paths, because the graph is mandatorily acyclic and directional.
mircea_popescu: but in practice, should prb decide to come to sanity, the only avenue open to them is to... try and get their patches on the v tree.
asciilifeform: and we take out flamethrower
asciilifeform: and cook'em
asciilifeform: problem ?
mircea_popescu: conflicts aren't liable to be resolvable in general other than through the above described avenue
mircea_popescu: asciilifeform i was discussinfg an imaginary case where "resolution" actually means what it says.
asciilifeform: i do not see this hypothetical world, where it is unclear who is who.
asciilifeform: it is the devil from earlier thread, it can only happen if we are all retarded to begin with.
asciilifeform: orthogonally, but also quite painfully, not having 'a == a' also means that 'power rangers' can make new paths and claim credit for the works of others, and there will be NO mechanical means for a n00b to determine that this was done, other than to explore the exploding phase space.
asciilifeform: (which will grow exponentially)
asciilifeform: exponential growth of bitwise-identical entities is making my bowel churn just to think of it.
asciilifeform: if mircea_popescu signs 'τῶν γὰρ φύσει συνεστώτων τὰ μέν ἐστι ...', he does not also sign his copy of aristotle, and after that, the publisher's original manuscript, and with it, the medieval copy, and with that, the arab copy, and with that, .... plus the book from which he learned greek, and its manuscript...
asciilifeform: if i had any reason to think that turning v tree into a forest of vertical stakes , exponentially crowded with IDENTICAL payloads that cannot be machine-compared , would make it easier to tell friend from foe and wisdom from folly -- i would agree with mircea_popescu's algo. but i do not.
asciilifeform: it makes it considerably harder. and, past a certain point, quite impossible.
asciilifeform: the proposal imho belongs with thomas edison's concrete furniture.
asciilifeform: great idea, from one pov, terrible from just about every other.
asciilifeform: http://www.gizmodo.co.uk/2016/12/flight-cancelled-after-moron-names-wi-fi-network-galaxy-note-7 << in unrelated lulz.
asciilifeform: '“This isn’t a joke,” said the captain, according to passenger Lucas Wojciechowski. “We’re going to turn on the lights and search everyone’s bag until we find it” ... “Ladies and gentlemen, we found the device,” said the captain. “Luckily only the name of the device was changed to ‘Galaxy Note 7'. It was not a GN7.”'
asciilifeform pictures, what if it had been an esp8266 in a bar of soap ? up an arse ?
mircea_popescu: asciilifeform in general this "make new path and claim the work of others" is always available. i can make new path and claim the work of everyone right now, what's to stop me.
asciilifeform: the fact that we have ordering.
mircea_popescu: huh ? i can just make a new patch off genesis.
asciilifeform: you can, but it will be readily apparent to be a later work than the earlier that you will presumably be 'filing the serial numbers off'
mircea_popescu: how would it be apparent ?
mircea_popescu: suppose i make an bitcoin.mp.1 which is like bitcoin.asciilifeform.1 except it includes #alf stole my girlfriend!
mircea_popescu: and just move the whole tree over there, and claim i made it. what stops me ?
asciilifeform: well yes. mircea_popescu used to teach, right ? how did he determine which idiot cribbed off which other idiot on exam
asciilifeform: or term paper.
asciilifeform: in practice it is never difficult.
mircea_popescu: so then the same thing here as there ; this attribution issue is not useful to distinguish between the two methods.
mircea_popescu: it's also not clear whence this idea of "recursive signing" comes from but anyway.
mircea_popescu: i don;'t get it, wtf is the problem with the string "Galaxy note" whatever.
asciilifeform: mircea_popescu: infamously flammable (recalled) pNoje
asciilifeform: iirc battery thermistor.
mircea_popescu: heh mkay
asciilifeform: i went on airplane in october and there were signs hanging of 'if you have this-here, put it in this fireproof rubbish bin before boarding, or go home'
asciilifeform: one possible theory is that crapple drummed up the hysteria, their headphonejackless marvel was due for release that week iirc.
asciilifeform: http://btcbase.org/log/2016-12-23#1589086 << reminds me of the (legendary) airplane that flew orthodox icon around moscow N times to ward off german encirclement
a111: Logged on 2016-12-23 12:50 mircea_popescu: in further news nobody cares about, "4 million letters of 'empathy, support' dropped on Mosul". this thing, which was a) going to be a war that b) was going to take two weeks twelve weeks ago (and then a month, and then two, and here we are) has now degenerated in a fucking spam offensive.
asciilifeform: (quite likely a pious fraud of 'let's bring back the church' idiot '90s)
mircea_popescu: nobody could possibly resist the power of modern democracy embeded in its ultimate representation, the unsolicited mailing.
asciilifeform: even in piddling civilian postbox i get aaaaalmost enough crapolade to stoke a furnace with.
mircea_popescu: pretty sure it's carefully constructed to be poisonous if burned.
asciilifeform: quite so!
asciilifeform: or i ~would~ burn it
asciilifeform: and so would everybody.
asciilifeform: http://btcbase.org/log/2016-12-23#1589092 << most likely is that they followed the contours of the existing auto
a111: Logged on 2016-12-23 12:55 mircea_popescu: anyway alf will prolly appreciate : https://heavyeditorial.files.wordpress.com/2016/12/photo_2016-12-22_07-09-311.jpg
mircea_popescu: the modern democracy gotta make items that can not be useful ; and ONLY items that can not be useful.
asciilifeform: very carefully designed 'antifeatures', aha
asciilifeform: recall 'cuecat' ?
mircea_popescu: notrly "?
asciilifeform: !#s cuecat
asciilifeform: it was a toy given out as advertising gimmick
asciilifeform: that someone found a method of converting into (at the time, rare) barcode reader. and was sued for his trouble
asciilifeform: 'consent bit'
asciilifeform: http://btcbase.org/log/2016-12-23#1589102 << it is, perhaps surprisingly, still better to be the general. he does not have to live in a 1room sv flat that costs 95% of that 18k.
a111: Logged on 2016-12-23 13:08 mircea_popescu just checked, o-9 pay grade is from 14.5k to 18k A MONTH. it is literally a better deal to be an entry level sysadmin working in pasadena than a lieutenant-general working in baghdad.
asciilifeform: (incidentally a general who steps anywhere near the battlefield, gets hazard bonus, tax-free-enablement, and several other additions to pay)
mircea_popescu: sure, as in any socialist totalitarian state, it is better to not even care about the worthless money ; and try and achieve positions of power in the necessary feudal structure.
mircea_popescu: which is why atf agents stole bitcoin ; not usd.
asciilifeform: just about every literate young d00d in usa has at one point or another turned down (or accepted, and lived to regret) 200+k usd in sv
asciilifeform: because it is 'fairy gold'
mod6: <+asciilifeform> http://wotpaste.cascadianhacker.com/pastes/F4SWa/?raw=true << another example of convergence << interesting.
pete_dushenski: http://archive.is/Q0e9f << and another example of reddit delusions not being confined to ethereum and shillary. apparently these poor kids are making up their own non-existent 90s movies now.
pete_dushenski: !~ticker --market all --currency rmb
jhvh1: pete_dushenski: BTCChina BTCRMB last: 6440.72, vol: 3095817.08510000 | Volume-weighted last average: 6440.72
mats: where do i sign up for this sysadmin job in pasadena than pays more than 200k usd
asciilifeform: mats: not literally sysadmin, you gotta be skilled labour, but nearly.
phf: back during iraq war the salaries for ~sysadmins~ were way above what you could get on the market (i remember looking at listings and vaguely contemplating doing it because it ~looked~ like fun), i.e. 100-150k for 6 month of deployment. i think now because of vc money it has switched.
asciilifeform: phf: tax-free, too.
asciilifeform: and 100k reenlistment bonus.
asciilifeform: i actually applied
asciilifeform: (rejected, 'position requires prior military experience, sorry we forgot to state in ad')
phf: you get to work from those Sun shipping containers, it was all very gibson bigend trilogy
asciilifeform: i did meet a d00d who ~did~ get the job, turns out those containers ain't bulletproof, whod'vethunkit.
phf: that's sort of part of the deal
asciilifeform: it surprised ~him~, not me...
asciilifeform: the sysadmin d00d in benghazi, i am told , was also quite surprised in his last 5min of life.
mircea_popescu: pete_dushenski hey, they're on the path of recreating a post-enlightenment history in which females actually matter, what's a movie compared.
asciilifeform: (unlike the iraq folx he wasn't getting tax-free double pay afaik)
phf: so it goes
mircea_popescu: asciilifeform bulletproof is extremely expensive logistically.
mircea_popescu had bulletproof car, cost ~3.5x what same exact car make and everything cost.
asciilifeform: cheaper to get 10 spare sysops.
mircea_popescu: you can't even hoist it, it's like 7.5 tons
asciilifeform: aha, i rode in such a car, was crudely made, i could see why it weighs.
asciilifeform: you hoist it on the same hoist used for bus, garbage truck.
mircea_popescu: in bulletproofing there's really no substitute for mass.
mircea_popescu: the reason is that same old mc^2 ; there's no better heat dampener than water nor better energy dampener than mass.
asciilifeform: (obummer's obummermobile was so laden with armour that the british could not fix it, this was a scandal a few yrs back)
asciilifeform: civilian armoured vehicle is still a joke because it has windows
asciilifeform: ever see tank with windows ?
asciilifeform: dun matter what you make them from.
mircea_popescu: nah, bulletproof glass is a thing.
asciilifeform: bullet - yes
asciilifeform: rpg - no.
mircea_popescu: bulletproof is bulletproof not flamethrowerproof.
asciilifeform: also there is bullet and then there is bullet. you can get sabot rounds for ordinary '12' shotgun.
asciilifeform: but mircea_popescu probably knew this.
mircea_popescu: still won't go.
asciilifeform: let's ask BingoBoingo to try it in his back yard and post photo, how about.
asciilifeform: i'll pitch in to cover cost.
mircea_popescu: the thing with it is it's layered, no matter the impact energy you get refraction because of the medium variance.
asciilifeform: any good armour uses this effect, yes
mircea_popescu: so no, sabot or no sabot you're not shooting through the (tiny ass btw) windows.
asciilifeform: if you can pound a tungsten carbide nail through something, you can also shoot it.
asciilifeform: just takes moar v.
mircea_popescu: you can jump into a pool ; but if you go fast enough it's concrete not water. same thing with shooting - adding speed does not actually help. even if you can drill it.
phf: hence knife and bullet vests are two different beasts
mircea_popescu: in fact the most dangeroius rounds aren't the outer (ie, very fast) but the inner (ie, just slow enough to spall the shit out of you)
mircea_popescu: the very energetic rounds just ricochet.
asciilifeform: i'd seriously like to see what happens with, say, the lexan window, vs 'lahti' antitank round from ww2
asciilifeform: (afaik american vendors of lexan armour only warranty up to 12.7mm)
jurov: lexan??? iirc sapphire is used
asciilifeform: jurov: only in golden atomic dirigibles
mircea_popescu: aluminium oxynitrite ftw.
mircea_popescu: anyway, usually it's glass laminate / policarbonate in layers.
mircea_popescu: good for up to 10-15kJ
asciilifeform: sounds expensive. probably cheaper to put steel armour, and camera on one side, plasma tv on other !
asciilifeform: (why does tank need side windows anyway)
mircea_popescu: well the cheapest thing is to not use one in the first place
mircea_popescu: fucking death trap.
mircea_popescu: use the subway like normal people.
asciilifeform: but if you gotta 'ride a tank, hold a general's rank, while blitzkrig raged and the bodies stank'
asciilifeform: btw i wonder what a 100kw laser, of the right wavelength naturally, would feel like to the occupant of the windowed tank.
asciilifeform: (alternatively, of the 'wrong' wavelength, soften the ceramic a bit, then shoot with ordinary lahti)
asciilifeform: iirc turks giving helping hand to the kurd-control exterminator crews is old noose..?
mircea_popescu: teh hot week starts ~tomorrow.
asciilifeform: wai so hot
a111: Logged on 2016-12-19 18:48 mircea_popescu: anyway, to be fair here : the russians have no interest in waiting ; putin might be uncharacteristically meek, but in general a half dozen us ambassadors starting with the resident in manilla within the next week-10days is perfectly possible. at which point obama actually having the gall to call natl emergency and set aside the transfer of power is not entirely inconceivable. after which the russians WILL sink all the us carr
asciilifeform: iirc only thing out of mr p publicly thus far is 'was provocation'
mircea_popescu: o look, trump wants dm friedman as israel ambassador.
phf: dindu notin
mircea_popescu: asciilifeform trumps bankruptcy laywer.
asciilifeform: 'Friedman, who specializes in litigation and bankruptcy law, was a key adviser to the incoming Republican president on US-Israel affairs during the presidential campaign.'
mircea_popescu: !~google friedman j street
jhvh1: mircea_popescu: In Attacking David Friedman , J Street Condemns Itself - Breitbart: <http://www.breitbart.com/jerusalem/2016/12/20/attacking-david-friedman-j-street-condemns/>; J Street Tries to Raise Money off David Friedman Nomination: <http://www.breitbart.com/big-government/2016/12/16/david-friedman-j-street-tries-raise-money/>; J Street Vehemently Opposes Nomination of David Friedman as US ...: (1 more message)
asciilifeform: 'In light of the rise of fake news on social media, the German Interior Ministry has proposed the creation of a "Center of Defense Against Disinformation," according to a report on Friday from the German news magazine "Der Spiegel."'
mircea_popescu: it's not just that the guy's ~not~ part of embassy usg. it's that he's a) pissed publicly on the very faces of the kids of the helicopter moms that make up embassy usg and b) is independently wealthy / intelligent enough to not give the slightest shit about them and their wine parties.
phf: i'd make a "my lawyer's jewish, i know, i'll make im speak to all other jews" joke, but so far trump's appointments that i heard have been very competent :o
phf: seems like the pattern with all the appointments. "competent. has strong animosity towards whatever bureaucratic apparatus he's going to be head of."
asciilifeform: 'Intelligence agencies and politicians in Germany are hoping to prevent a similar scenario next fall for the Bundestag elections. Some politicians in Germany have also proposed laws against the production and distribution of fake news.'
asciilifeform: ohnoez, unpermissioned nyooz.
mircea_popescu: phf pretty reasonable approach at that.
mircea_popescu: best way to handle bureaucracy is to force it to spend its time handling itself.
asciilifeform: the one thing i don't quite grasp is why a heavy calibre d00d like the one described, would take the job of ambassador
asciilifeform: is, e.g., mircea_popescu , burning with desire to work as american ambassador ?
mircea_popescu: he already has a house there. most of these are appointments of convenience, like making serial rapist head of rape dept.
asciilifeform: then makes sense.
mircea_popescu: (laugh but this happened - TWICE. both national socialism and leninist socialism did this.)
phf: "that was some good shooting for the revolution there. hey you're good at shooting people. you're now the head of my shooting department"
asciilifeform: !#s amtorg
mircea_popescu: the most amusing jewish joke in all this - lo, trump MADE A GOOD JEWISH JOEK. this is infinitely harder than the supposed "witty self-deprecation" imbeciles gathering in new york think funny
mircea_popescu: is "hey, israel is bankrupt, iam send halps."
mircea_popescu: also updated http://trilema.com/2016/how-to-participate-in-the-affairs-of-the-most-serene-republic/ a little.
asciilifeform: neato -- 'write a vtron!'
asciilifeform: like 'make telescope!' in 1700s, yes.
mircea_popescu: table stakes keep increasing ; but the good news is they also keep diversifying.
asciilifeform: gabriel_laddel_p ... has joined #trilema ... * gabriel_laddel_p has quit (Client Quit) << d00d lost his SECOND key, lemme guess..?
mircea_popescu: maybe power outage.
asciilifeform: or rat gnawed his cable.
asciilifeform: i dun even want to picture how the d00d lives.
mircea_popescu: eh, talk to young women more, you'll get acclimated.
a111: Logged on 2016-12-23 14:01 mircea_popescu: (we'll skip over the entire "waka" incident for the sake of public morals.)
asciilifeform: 'can't unsee!1111'
asciilifeform: mircea_popescu: http://btcbase.org/log/2016-12-23#1589135 << describe plox in slightly more detail : 1) what means 'known good' 2) what means 'same variables'
a111: Logged on 2016-12-23 14:07 mircea_popescu: http://btcbase.org/log/2016-12-21#1587182 << speaking of this, here's a question for the eager : a diophantine equation is a multivariate polynomial, something like ax+by^2 = 0. the question is : given an arbitrary finite set of known-good equations, can you use recursion to decide whether an arbitrary equation in the same variables is good (has integer solution) or no good ?
asciilifeform: (same ~number~ of variables ? )
mircea_popescu: 1) you can have a list of equations that do have solutions ; 2) that if your list only contains X Y and Z unknowns, then the arbitrary item won't contain Q unknown
asciilifeform: they ~individually~ have solutions, or list is a system ?
mircea_popescu: individually. like the list could be x^2 = 4 ; x = 1 ; x ^ 3 + 5 = 6 - in which case your arbitrary equation may be a polynomial in x but not in x y
asciilifeform: then i must say, if i knew the answer, all of the keys on phuctor would be marked 'phucked'
mircea_popescu: o ?
asciilifeform: having tall pile of these does not, via any known method, help.
BingoBoingo: <asciilifeform> if you can pound a tungsten carbide nail through something, you can also shoot it. << Why not shoot drill bit, already rifled!
asciilifeform pictures BingoBoingo's carpentry shop cum rifle range
asciilifeform: in all fairness that is what 'gyrojet' did
asciilifeform: ... fired 'drill bit'.
asciilifeform: !#s gyrojet
asciilifeform: and iirc even ordinary no-name gunshop in usa has 'rifled slug' for 12ga.
asciilifeform: same principle.
mircea_popescu: asciilifeform hey, it's why it's a problem.
asciilifeform: it is not a very promising problem as-stated imho. sorta like 'my pet mouse died, i want to resurrect it, i have this here industrial vivarium full of 10,001 live mice, how do i use them'
asciilifeform: mircea_popescu: see also hilbert's 10th.
asciilifeform: in other lulz, FUCKGOATS www is getting regular hits from places such as honduras, panama, etc. via search-engine referrer. and i am beginning to suspect that these folx were looking for material concerning the fucking of ordinary goats.
asciilifeform: i can only imagine their disappointment.
shinohai: top kek asciilifeform
mircea_popescu: asciilifeform it's exactly that, restated to discourage googling. the point being that it is difficult to correctly set the limits of recursion's utility intuitively
mircea_popescu: ie, that it ~feels~ like the problem should have a recursive solution.
asciilifeform: hilbert's 10th met disappointing end long enough ago that nobody needs to google
asciilifeform: but yes, as a student it also 'felt like must have recursive solution'.
mircea_popescu: (it was proven sometime recently omdeed diophantine sets is ~ recursively ennumerable sets, making this a semidecidable problem)
asciilifeform: that being said, there are good methods for certain special cases, if mircea_popescu's diophantines are of a particular ~kind~ i might be able to hit up my dead trees for an algo.
mircea_popescu: asciilifeform the whole thing was "extension of discussion of basic logic to set theory for the eager minds"
asciilifeform: somehow i was certain this was provoked by some alchemical problem in eulora
mircea_popescu: nah, it's just to my mind the next logical step after wtf are null sets anyway.
asciilifeform: recall that you can express turing tape as diophantine eq.
asciilifeform: so if you had a generic pill...
asciilifeform: ergo none.
mircea_popescu: the general point being, that the mind is not particularly adept to ~counting sets~ (including and especially in the sense of "Evaluating complexity") which is why it's very easy for it to misjudge the reach and power of recursive methods.
asciilifeform: mind is a slippery thing. what curious boy was not convinced that he was 'this-close' to elementary proof of fermat's.
asciilifeform: or similar unicorn.
mircea_popescu: anyway, practice of programming, especially in a reasonably clean environment, possesses one of a notion of recursion that is then a fertile ground for mathematical scamming.
asciilifeform: incidentally, since (to borrow the lament of turing's school headmaster) 'the room already stinks of mathematics', i'll share a tidbit that i promised folx some half year ago and promptly forgot:
mircea_popescu: the diophantine approach above + the "transfinite induction" / von neumann set are pretty much the scylla and charybdis of this sea.
asciilifeform: picture the following 1-dimensional automaton, that eats bitstring in sets of 2bits, and : '10' -> 'tape step left' ; '01' -> 'tape step right' ; '11' -> invert bit at current square; '00' -> terminate.
asciilifeform: it is immediately obvious that this (nonturingcomplete) automaton can be used to 'write' any integer
asciilifeform: however it is also impossible to know in less time than O(N) ~which~ integer
asciilifeform: this is the ideal rsa padding scheme that folx asked for.
asciilifeform: i will give one elementary algo for using this, here, but there are others.
mircea_popescu: so wait, the plan is a) make integer ; b) convert to automaton tape ; c) use that tape as padding ?
asciilifeform: take the bitstring to be 'padded' (that is, mixed with entropy in such a way that it destroys enemy's ability to know any part of the structure of a plaintext inside ciphertext.)
asciilifeform: then you produce some sequence of random moves for this machine, nondestructively (recall, all operations are invertible) waltzing over it.
mircea_popescu: asciilifeform would this be better if tape were circular and of size to match our blocks ?
asciilifeform: then you append a sequence of ops , e.g., '10a10b10c10d.....' for the desired a,b,c,d... that flips the mutilated bits to the desired final state.
asciilifeform: mircea_popescu: the tape size cannot be known to decoder in advance
asciilifeform: or he gets knowledge he is not supposed to have.
BingoBoingo: !~ticker --market all
asciilifeform: (the output tape size, that is. he of course knows the input tape size.)
jhvh1: BingoBoingo: Bitstamp BTCUSD last: 913.77, vol: 16658.65410701 | BTC-E BTCUSD last: 894.999, vol: 11044.32694 | Bitfinex BTCUSD last: 915.3, vol: 25751.76340946 | BTCChina BTCUSD last: 943.5888, vol: 3223688.07100000 | Kraken BTCUSD last: 918.0, vol: 4157.60534408 | Volume-weighted last average: 943.019435087
asciilifeform: let's take a ~terrible~ padding scheme just to show to n00bz what this whole matter is about.
mircea_popescu: if the message is n long, does the pad-machine tape need to be n^2 ?
asciilifeform: say i want to encipher (dun matter with what) a string, 'To: mircea_popescu Subj: thermonuke launch codes ...'
asciilifeform: and enemy knows that i always begin letter with 'To:'
asciilifeform: so one ~horrid~ padding algo would be to get a bitstring from my rng, xor the message to it, then send a message of 2x length of original consisting of: [the bitstring from rng][the result of the xor]
asciilifeform: this is superficially structure-destroying , either one of the two halves could literally be ANY bitstring of that length
asciilifeform: BUT enemy knows that plaintext(first_half) ^ plaintext(second_half) == 'T'
asciilifeform: which is nogood.
asciilifeform: we did not destroy the structure, only made a (slightly) more complicated one.
asciilifeform: [end of n00bz segment]
asciilifeform: mircea_popescu: it can in principle be as short as 3n
asciilifeform: as example,
mircea_popescu: but the space gets pretty narrow. 3n, you shoot n^(1/2) messages you're suddenly losing
asciilifeform: 100101 turns into 111010111010101100.
asciilifeform: which of course you don't want, it is quite obvious that there is no entropy in there if it only got 3x longer.
asciilifeform: (the theoretical lower limit.)
mircea_popescu: this definitely bears some thinking.
asciilifeform: the useful envelope of operation comes when you have at least ~16x the bottom limit.
mod6: <+asciilifeform> i can only imagine their disappointment. << lol
mircea_popescu: asciilifeform let me ask you this : suppose the tape is byte-sized, and the 8 bits are as follows : 2 bits x movement ; 2 bits y movement ; 2 bits z movement ; stop and flip bits for a total of 8. the tape is now a space.
mircea_popescu: is this worse or better ?
asciilifeform: very similar, and actually i began with that variant.
asciilifeform: it works out to same thing.
asciilifeform: the problem is that you have to derive a bounding box when you're done and want to turn the playing field into a bitstring for use wherever
mircea_popescu: to my mind the only reason to have 1d is if you're going to try and emulate block cyphers ie make it fixed size.
asciilifeform: and it costs slightly more in 2d
mircea_popescu: otherwise why not space.
asciilifeform: in the end you're trying to end up with a bitstring
mircea_popescu: ah thereis that.
asciilifeform: now i have not proved whether 2d gives you more sensitivity to mis-guessed bit .
asciilifeform: than 1d.
asciilifeform: if it does - then the cost is worth it.
asciilifeform: (recall, you want a maximally fragile string. it is quite the opposite of error-correction codes.)
asciilifeform: that's what 'padding' (terrible misnomer) is. the opposite of errorcode.
mircea_popescu: asciilifeform what if i use the following scheme : message padded + 60 bytes of padding key + 4 bytes of iteration count. the tape is producing by doing sha recursively on the padding key and its results iteration count times.
asciilifeform: btw i scoured the l0gz in vain for entire hour, looking for where i promised this, and cannot find.
asciilifeform: if anyone remembers - plz post link !!
asciilifeform: mircea_popescu: pretty much all of the extant schemes resolve to some variant of that. the problem is that ~all~ of them introduce structure
asciilifeform: (and i am leaving aside the fact that the use of sha may well introduce structure.)
mircea_popescu: asciilifeform but that's my question, the above is actually what rsa currently uses.
asciilifeform: 'rsa' per se uses nothing.
asciilifeform: gpg used the weakest known padding scheme iirc.
mircea_popescu: it seems to me you can ~actuyally implement~ extant padding schemes in this automaton.
mircea_popescu: !~google pkcs #14
jhvh1: mircea_popescu: PKCS - Wikipedia: <https://en.wikipedia.org/wiki/PKCS>; PKCS 12 - Wikipedia: <https://en.wikipedia.org/wiki/PKCS_12>; PKCS 11 - Wikipedia: <https://en.wikipedia.org/wiki/PKCS_11>
asciilifeform: existing padding schemes are precisely what i would like to get away from. idea is to introduce maximal uncertainty re the identity or purpose of any particular bit of unknown plaintext, and max fragility.
asciilifeform: mircea_popescu: gpg used PKCS #1 v1.5 (see rfc4880)
asciilifeform: all that does is to append a few random bytes to the payload.
asciilifeform: homeopathy, really.
asciilifeform: OAEP is slightly better from this pov but also gives you https://lists.gnupg.org/pipermail/gcrypt-devel/2011-June/001797.html .
mircea_popescu: the problem is it bloats the message to an incredible size ; which plays poorly with rsa's weakness (slow)
asciilifeform: you can split the message.
asciilifeform: it is only palpably slow if you insist on doing the entire thing in a gargantuan exponentiation.
mircea_popescu: so then you're back to blocks and a round tape.
asciilifeform: not necessarily, you have tape as long as you like and simply rsa it in chunks of (keylen/2)
asciilifeform: btw tape cannot be round unless you carry its size inside the message, which is verboten because that would be STRUCTURE
asciilifeform: alternatively you can fix it permanently, in advance.
mircea_popescu: if your blocks are of known size, then they're of known size.
asciilifeform: this -- works
mircea_popescu: the whole discussion of blocks vs whole thing is all about this.
asciilifeform: mircea_popescu and others can probably think of some useful and interesting variations on this scheme.
mircea_popescu: and the tendency is to move towards whole thingers, hence eg the keccak preference
asciilifeform: btw anyone who tries to dig in the 'official' literature re: crypto padding will barf his guts out, the subjects consists ~100% of obscurantist crapola by weight.
asciilifeform: most of the 'solutions' do not even vaguely pretend to solve the problem, and in fact expertly avoid to say what the problem even might be.
asciilifeform: it is hilarious to watch, from entomologist's chair.
mircea_popescu: i dunno, i have no actual math to show, but intuitively it seems to me the above "take 64 bytes of rng, iterate hash over the first 60 last 4-times and then use that as tape to pad message, then put padded message + 64 bytes in question in rsatron" is practically useful and theoretically strong.
mircea_popescu: other party just pads in reverse.
asciilifeform: what's 'last 4 times'
asciilifeform: i'm trying to write this as actual algo in my head
mircea_popescu: let me do a simple example with very small numbers.
mircea_popescu: message you want padded is T. i roll a random number, it comes out 1011101011 10
mircea_popescu: i will now proceed to create a string S += hash(1011101011) three times.
mircea_popescu: i will now use S as a tape for the automaton to be applied to T.
mircea_popescu: this gives me T.p
mircea_popescu: i concatenate T.p with 101110101110 and encrypt it
mircea_popescu: i will now proceed to create a string S += hash(S+1011101011) three times. << i mean.
asciilifeform: but why do you want to constrain the possible tapes thusly
asciilifeform: why make them related to the payload.
mircea_popescu: well, because this way T.p is slightly but not much longer than T.
mircea_popescu: evidently this costs in strength.
mircea_popescu: how much - i know not how to say.
asciilifeform: costs you, under some entirely possible scenarios, all of the strength.
mircea_popescu: give me one ?
asciilifeform: say i discover that sha output is 'heavy' on 1s (in the von neumann coin sense) if the input was a sha output of a sha output of a string containing word 'nuke'. etc
asciilifeform: this cannot be ruled out, because hash -- yes, all of them -- is voodoo.
mircea_popescu: but you don't know how many passes of sha i make.
asciilifeform: but i know that the number of passes is related to the payload.
mircea_popescu: that you know.
asciilifeform: fundamental problem here, is that the operation can be written as an equation
asciilifeform: yes, it will be long, but of fixed length, and i can picture its structure
mircea_popescu: this is true.
asciilifeform: whereas an arbitrary tape is nonalgebraic.
asciilifeform: sorta was whole point of this notion.
mircea_popescu: this is also true. problem with it is that it's so damned long.
asciilifeform: is to take away the algebraic relation.
asciilifeform: that enemy luuuuvvvs so much.
mircea_popescu: ok, let's go at it another insane way. suppose you pad the message by using... the message as the tape.
asciilifeform: that won't even waltz over the whole message
asciilifeform: considering that 1 step of the crank eats 2 bits.
asciilifeform: the added entropy has to be ~genuine~ to do the job.
asciilifeform: as in, it comes from a trng.
mircea_popescu: suppose you actually use the payload itself sqrt(payloadsize) times.
asciilifeform: and yes, you get elongated message. the job imho here is to show precisely how much elongation buys you ~exactly~ what strength.
asciilifeform: as in, the cost.
mircea_popescu: no, we're clear on the part where it's pretty expensive.
mircea_popescu: the thing here however is, that incremental improvement may actually be useful. ie, a ~better~ encryption scheme, even if not ~provably the best~.
asciilifeform: mircea_popescu: all schemes where the transform is of 'payload itself' and 0 entropy, suffer from immediate 'penguin problem', https://blog.filippo.io/content/images/2015/11/Tux_ecb.jpg .
asciilifeform: as in, if i have a good idea as to what is the plaintext, i can verify my guess.
asciilifeform: you gotta have the actual entropy.
mircea_popescu: let's consider the case where i want to exchange a 1kb letter. i won't actually use 1mb to feed the tape, but i will use 4kb.
mircea_popescu: i now have to a) generate 4kb of entropy (roughly enough for 8 4096bit rsa keys) ; b) complete 16k operations to pad ; c) execute a 5kb rsa exponentiation. so i'm looking at what, about an hour ?
asciilifeform: possibly we no longer bottleneck on entropy gather ?
asciilifeform: sorta was the point of FUCKGOATS.
mircea_popescu: stock rsa makes 8 keys in like 2 hours.
asciilifeform: depends on what.
mircea_popescu: so no, i wasn't counting a) for more than a few mins.
asciilifeform: 4kB is about half a second of goat fuck. 4kb is 1/8 that.
mircea_popescu: i mean 1kB throughout.
asciilifeform: a 4096b exponentiation takes about 10msec on my (dusty, old) box here.
asciilifeform: so mircea_popescu's exercise might add up to an entire ~minute~...
mircea_popescu: this is not terribru.
asciilifeform: cheap entropy makes several interesting things possible, this is only 1 of'em.
mircea_popescu: a 5x size penalty for full strength encryption is not inconceivable either.
asciilifeform: the beauty is that you can dial the strength up if you have a great deal of space and a short message .
asciilifeform: sorta like keccak.
mircea_popescu: yes. in principle you can also dial it down.
asciilifeform: aha, the closer you go to the floor (3x length of input) , the lower.
mircea_popescu: if you make the waltzer start from ~the end~ of the message, even sqrt(n) steps improves rsa enough.
asciilifeform: (the fewer possible messages)
asciilifeform: end, start, are topologically same
asciilifeform: (a tape is just as likely to go left as right , if fed from rng )
asciilifeform: btw you probably would want to mechanically ensure that every bit of the input got stepped on at least once.
asciilifeform: (because there is a nonzero probability that the whole thing is left alone, for instance. or large segments thereof, more likely.)
mircea_popescu: doesn't that introduce structure ?
asciilifeform: it introduces length only.
asciilifeform: sorta like 'hang by the neck until dead' spec.
asciilifeform: at any rate it is not a concern if using circular tape.
asciilifeform: there, you are stepping on the input regardless of where you go.
mircea_popescu: you prolly want circular tape the size of message tbh.
asciilifeform: the size of the largest permitted message, yes.
asciilifeform: or rather, 3x+Q of it
asciilifeform: Q being your added strength.
mircea_popescu: there;s a largest permitted message ?!
asciilifeform: you're stuck having such a thing if you have circular tape
asciilifeform: because, again, you cannot say 'hey first 64bits are length'
asciilifeform: nobody keeps you from sending 1,001 messages.
asciilifeform: i will point out that if your privkey is n bits, you are already talking in n/2-sized chunks.
asciilifeform: so now mircea_popescu sees why i wanted a noncircular tape -- then the enemy knows nothing about the ultimate length of the output
mircea_popescu: another problem is the observation that 1011011011 is neutral.
asciilifeform: because it is defined as simply the furthestmost '1' explored.
mircea_popescu: and other strings are also just as neutral.
asciilifeform: what means neutral here
asciilifeform: as in, 0 net effect ?
asciilifeform: it has a net effect in that it a) takes up space between non-'neutral' strings b) if enemy misguesses even 1 bit inside it, it becomes quite non-neutral, and cumulatively
asciilifeform: whole point is to minimize the information conveyed to enemy by knowing about the, e.g., 'To: mircea_popescu' inside; and to maximize the consequences of a misguessed plaintext bit in a cryptoanalysis.
asciilifeform: so, yes, e.g., '1010101001010101' does ~absolutely~ nothing to the waltz tape
asciilifeform: but it takes up space, and if even 1 of the bits gets flipped (misguessed), you get an avalanche of rubbish.
asciilifeform: btw the '00'--> stop thing is unnecessary and harmful, you stop when you run out of feed tape.
deedbot: http://phuctor.nosuchlabs.com/gpgkey/0E23ACB45163FCB09E94E5C734E0460A168FA05290C8C9FFA05F92571621F502 << Recent Phuctorings. - Phuctored: 1687...5687 divides RSA Moduli belonging to '18.104.22.168 (ssh-rsa key from 22.214.171.124 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (Unknown DE)
deedbot: http://phuctor.nosuchlabs.com/gpgkey/92A7E26365A4E78117B70413092A6D862BD142830399C4B355FCEEC0DC1EBDF7 << Recent Phuctorings. - Phuctored: 1400...2083 divides RSA Moduli belonging to '126.96.36.199 (ssh-rsa key from 188.8.131.52 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (217-72-98-119.uni.it. IT)
mircea_popescu: this prolly needs more thinking.
asciilifeform: here is improved scheme : '10' -> 'step left', '01' --> step right, '11' -> flip current and step left; '00' -> flip current and step right.
asciilifeform: this gives you entirely symmetric probabilities of motion in either direction;
asciilifeform: and also entirely symmetric probabilities of flip/nonflip.
mircea_popescu: this is an improvement.
asciilifeform: say that the first bit of every tape pair means 'left or right', and the second 'flip or noflip.'
asciilifeform: you can generalize for n-dimensions, as mircea_popescu suggested earlier, similarly.
mircea_popescu: possibly 2d would be useful because eats full byte
asciilifeform: 1d also eats full byte, puts 4 ops in it.
asciilifeform: but i presently have nfi which one wins.
asciilifeform: seems like one could do a formal , sane proof.
asciilifeform: 'This has been a production of Rubbish From asciilifeform's Desk! No actual mathematicians were harmed...'
asciilifeform: i'ma bbl, off to play with pet.
mircea_popescu: http://www.buenosairesherald.com/article/223991/%E2%80%98an-honest-conversation-is-scarier-than-sex%E2%80%99-for-millenials << in other lulz.
BingoBoingo: Well, they don't know radical honesty is best served nekkid
deedbot: http://phuctor.nosuchlabs.com/gpgkey/0E23ACB45163FCB09E94E5C734E0460A168FA05290C8C9FFA05F92571621F502 << Recent Phuctorings. - Phuctored: 1554...9267 divides RSA Moduli belonging to '184.108.40.206 (ssh-rsa key from 220.127.116.11 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (Unknown DE)
deedbot: http://phuctor.nosuchlabs.com/gpgkey/92A7E26365A4E78117B70413092A6D862BD142830399C4B355FCEEC0DC1EBDF7 << Recent Phuctorings. - Phuctored: 1386...2553 divides RSA Moduli belonging to '18.104.22.168 (ssh-rsa key from 22.214.171.124 (13-14 June 2016 extraction) for Phuctor import. Ask asciilifeform or framedragger on Freenode, or email fd at mkj dot lt) <ssh...lt>; ' (217-72-98-119.uni.it. IT)
a111: Logged on 2016-12-24 02:18 mircea_popescu: http://www.buenosairesherald.com/article/223991/%E2%80%98an-honest-conversation-is-scarier-than-sex%E2%80%99-for-millenials << in other lulz.