Attached Chat Log from November 16th (US) | 17th (EU) 2013 —Uncensored. Scroll down to 01:05:01 for the more interesting part

[17.11.13 00:04:19] Yanislav: hey

[17.11.13 00:04:24] vbuterins: hey

[17.11.13 00:05:04] Yanislav: i have found this little nice program for importing ‘a block chain’ into mongodb… https://github.com/thelinuxkid/bitcoinquery

[17.11.13 00:05:13] Yanislav: should work also with primecoind or any other

[17.11.13 00:05:19] vbuterins: nice

[17.11.13 00:05:56] Yanislav: now it is just creating a nice front end

[17.11.13 00:06:08] vbuterins: not quite so easy

[17.11.13 00:06:09] Yanislav: … not sure about the reorganizations

[17.11.13 00:06:15] vbuterins: you also need to organize transactions by address

[17.11.13 00:06:39] vbuterins: well, actually, if you import into mongodb then you can just query it

[17.11.13 00:06:47] Yanislav: yes

[17.11.13 00:06:50] vbuterins: but it won’t be a nice query

[17.11.13 00:06:52] Yanislav: it is just a query

[17.11.13 00:06:59] Yanislav: why?

[17.11.13 00:07:09] vbuterins: you would need to check if any of the outputs or any of the inputs have a given address

[17.11.13 00:07:16] vbuterins: there’s no way mongo can index that

[17.11.13 00:07:23] vbuterins: so the runtime would be O(n )

[17.11.13 00:07:32] vbuterins: which is prohibitive for any scale

[17.11.13 00:07:45] Yanislav: hmm

[17.11.13 00:07:48] vbuterins: you need a tree structure by address to get O(log( n)) queries

[17.11.13 00:07:52] Yanislav: we can also use a graphdb

[17.11.13 00:07:54] vbuterins: sure

[17.11.13 00:07:58] Yanislav: which should make it easier

[17.11.13 00:08:00] Yanislav: right?

[17.11.13 00:08:25] vbuterins: I was about to suggest we make our own tree, but that would be easier

[17.11.13 00:08:47] Yanislav: https://github.com/BlueMeanie/bitcoingraphdb

[17.11.13 00:08:50] Yanislav: here it is

[17.11.13 00:09:33] Yanislav: but have not tried it out

[17.11.13 00:09:35] Yanislav: yet

[17.11.13 00:09:54] vbuterins: > with a powerful traversal framework for high-speed graph queries

[17.11.13 00:10:02] vbuterins: okay, sounds like it’s good enough

[17.11.13 00:10:39] Yanislav: where did you read this?

[17.11.13 00:10:50] vbuterins: neo4j database

[17.11.13 00:10:57] vbuterins: http://www.neo4j.org/learn/neo4j

[17.11.13 00:11:00] Yanislav: ah… sure

[17.11.13 00:11:12] Yanislav: everybody should know about graph databases :D

[17.11.13 00:12:16] Yanislav: a friend of mine in berlin build the worlds fastest graph database http://www.directededge.com

[17.11.13 00:12:27] Yanislav: they are also ycombinator alumni

[17.11.13 00:13:43] Yanislav: are you interested in helping me with building block explorers for prime coin? any maybe other coins (will be analogous and very easy)

[17.11.13 00:14:03] vbuterins: I’m a bit busy right now to be honest

[17.11.13 00:14:12] Yanislav: yep, i understand

[17.11.13 00:14:28] Yanislav: not sure why i do it actually

[17.11.13 00:14:54] vbuterins: for the glory of Sunny King?

[17.11.13 00:15:11] Yanislav: i regret having invested in prime coin :/

[17.11.13 00:15:16] Yanislav: right now at least

[17.11.13 00:15:24] vbuterins: ah, there’s a reason to do it

[17.11.13 00:15:32] vbuterins: make primecoin the first altcoin with a real blockexplorer

[17.11.13 00:15:36] vbuterins: increase the value of your investment

[17.11.13 00:15:44] vbuterins: you can even speculate around the announcement

[17.11.13 00:15:58] Yanislav: hmm

[17.11.13 00:16:07] Yanislav: is there really no alt coin with a real blockexplorer?

[17.11.13 00:16:19] vbuterins: well, ripple does

[17.11.13 00:16:22] vbuterins: and maybe msc

[17.11.13 00:16:30] vbuterins: none of them have a pushtx interface though

[17.11.13 00:16:51] Yanislav: a pushtx interface is the most simple thing

[17.11.13 00:16:56] vbuterins: I know

[17.11.13 00:17:00] vbuterins: and yet no one does it

[17.11.13 00:17:25] Yanislav: maybe because it is easy to run a own node with altcoins

[17.11.13 00:17:32] vbuterins: true

[17.11.13 00:17:43] Yanislav: what about this? http://block-explorer.com/

[17.11.13 00:17:49] vbuterins: yep, just saw that

[17.11.13 00:17:53] vbuterins: okay, ltc has one then

[17.11.13 00:18:35] Yanislav: even with charts http://block-explorer.com/charts

[17.11.13 00:20:16] Yanislav: do we still need alt block chains? i somehow missed the development of ‘the protocol layer’ on top of bit coin like msc

[17.11.13 00:20:49] vbuterins: well, coins like xpm and ppc are there to experiment with mining

[17.11.13 00:20:58] vbuterins: so they can’t pull an msc

[17.11.13 00:21:24] vbuterins: in fact, I actually think msc might benefit from moving onto xpm

[17.11.13 00:21:41] Yanislav: the tx fees in btc are so high…

[17.11.13 00:21:46] vbuterins: indeed

[17.11.13 00:23:09] Yanislav: maybe we should do a fork of mastercoin

[17.11.13 00:23:15] Yanislav: on the xpm blockchain

[17.11.13 00:23:31] Yanislav: and everybody can issue msc

[17.11.13 00:23:42] Yanislav: simply use this protocoll

[17.11.13 00:23:57] vbuterins: hmm, fork MSC without the centralized MSC

[17.11.13 00:23:59] vbuterins: maybe

[17.11.13 00:24:06] Yanislav: are there any good ‘msc 2.0’ proposals?

[17.11.13 00:24:12] Yanislav: why maybe?

[17.11.13 00:24:16] vbuterins: http://vbuterin.com/ultimatescripting.html

[17.11.13 00:24:26] vbuterins: trying to get that into msc 1 now ☺

[17.11.13 00:24:29] vbuterins: but if not, msc 2

[17.11.13 00:24:46] Yanislav: i also do not like the name of mastercoin

[17.11.13 00:24:47] vbuterins: > [6:24:00 PM] Yanislav: why maybe?

because without the centralized msc there’s not much funds to pay for development

[17.11.13 00:24:53] Yanislav: sounds like enslavement

[17.11.13 00:24:59] vbuterins: right

[17.11.13 00:25:51] Yanislav: as if there is a lack of opportunity for cryptocoindevs…

[17.11.13 00:26:15] vbuterins: well, historically, projects without funding have had a reduced amount of progress

[17.11.13 00:30:03] Yanislav: how much btc (in master coins) did the people get who gave a btc to the exodos address?

[17.11.13 00:30:20] vbuterins: exodus address collected 5000 btc

[17.11.13 00:30:26] vbuterins: investors got 100 msc per btc

[17.11.13 00:30:32] vbuterins: (1 msc == 0.2 btc now)

[17.11.13 00:30:55] Yanislav: no, i mean how much btc is a master coin? not how much it is worth

[17.11.13 00:31:10] vbuterins: a mastercoin isn’t like a colored coin

[17.11.13 00:31:18] vbuterins: you can send 100000 msc in 6000 satoshis

[17.11.13 00:31:24] vbuterins: the data is encoded in output addresses

[17.11.13 00:31:33] vbuterins: sort of like what we did with keidom

[17.11.13 00:32:04] Yanislav: ah… thanks for this explanation

[17.11.13 00:32:34] Yanislav: how does the verification of the msc transactions happen?

[17.11.13 00:32:47] vbuterins: there’s an algorithm which parses them

[17.11.13 00:32:58] vbuterins: looks through the blockchain essentially

[17.11.13 00:33:09] vbuterins: transactions which are invalid simply don’t count

[17.11.13 00:34:08] Yanislav: hmm… so it is possible to include invalid transactions in the block chain… does not sound so good

[17.11.13 00:34:29] vbuterins: nothing wrong with that

[17.11.13 00:34:40] vbuterins: mastercoin clients just pass over them and don’t care

[17.11.13 00:35:52] Yanislav: > you can send 100000 msc in 6000 satoshis how do you ‘own’ master coins if it is not like colored coins?

[17.11.13 00:36:17] vbuterins: say you get a mastercoin tx going to you

[17.11.13 00:36:29] vbuterins: mastercoin client parses it, says it gives you 20 msc

[17.11.13 00:36:37] vbuterins: then you send a msc tx of 10 msc to Bob

[17.11.13 00:36:46] vbuterins: mastercoin client parses it

[17.11.13 00:36:55] vbuterins: now says you have 10 msc and bob has 10 msc

[17.11.13 00:37:02] vbuterins: you send another msx tx of 15 msc to charlie

[17.11.13 00:37:05] vbuterins: mastercoin client parses

[17.11.13 00:37:11] vbuterins: notices that you don’t have 15 msc

[17.11.13 00:37:13] vbuterins: and passes over it

[17.11.13 00:37:19] vbuterins: you have 10 msc, charlie has 0 msc

[17.11.13 00:37:24] vbuterins: etc

[17.11.13 00:38:49] Yanislav: hmm ok. i prefer the colored coins approach very much

[17.11.13 00:39:00] vbuterins: yeah it is nicer in some ways

[17.11.13 00:39:08] vbuterins: the msc approach is much more powerful though

[17.11.13 00:39:21] vbuterins: since you can do on-chain decentralized exchange, contracts, etc

[17.11.13 00:40:27] Yanislav: i have to read more about it…

[17.11.13 00:43:10] Yanislav: i think you can do the same with colored coins but the difference is that you track the amount of ‘items’ you own directly with the amouth of satoshis you have got this specific colored address

[17.11.13 00:43:24] vbuterins: nope you can’t do decentralized exchange with colored coins

[17.11.13 00:43:26] vbuterins: you can do p2ptrade

[17.11.13 00:43:31] vbuterins: but you can’t make an order

[17.11.13 00:43:48] vbuterins: you can’t make a tx to say “anyone can take my 3 blue coins for 10 red coins”

[17.11.13 00:46:24] Yanislav: and who decides who gets the deal with msc? with colored coins you could publish somewthink like this in the block chain too but you have to send them actively after the condition is fulfilled. with msc the ‘algorithm’ does this for you, as far as i understand

[17.11.13 00:46:36] vbuterins: exactly

[17.11.13 00:46:46] vbuterins: you publish an order

[17.11.13 00:46:51] vbuterins: anyone can claim it

[17.11.13 00:46:57] vbuterins: by making a claim transaction

[17.11.13 00:47:12] Yanislav: what if there are two claims?

[17.11.13 00:47:33] vbuterins: there’s some ordering rule by which one takes precedence

[17.11.13 00:47:38] vbuterins: probably alphabetic by hash or something

[17.11.13 00:49:03] Yanislav: what if there are two competing algorithms? one which accepts a claim and another which rejects it for whatever reason?

[17.11.13 00:49:33] vbuterins: that’s like asking what if there are two different algorithms for interpreting btc

[17.11.13 00:49:43] vbuterins: the _definition_ of mastercoin is one specifiic algorithm

[17.11.13 00:51:16] Yanislav: well.. there are competing versions of btc

[17.11.13 00:51:23] Yanislav: and there where forks

[17.11.13 00:51:36] vbuterins: okay, suppose that there’s a fork of btc

[17.11.13 00:51:41] vbuterins: which does not actually change the code

[17.11.13 00:51:43] vbuterins: but

[17.11.13 00:51:58] vbuterins: says that all coins coming from DPR’s address are worth 0.1x as much

[17.11.13 00:52:02] vbuterins: that’s not a protocol change

[17.11.13 00:52:04] Yanislav: but there is no concept of ‘the longest chain’ in msc…?

[17.11.13 00:52:09] vbuterins: that’s an interpretation change

[17.11.13 00:52:11] vbuterins: no

[17.11.13 00:52:20] vbuterins: since msc just uses the bitcoin blockchain for transaction order consensus

[17.11.13 00:54:06] Yanislav: hmmm

[17.11.13 00:55:55] Yanislav: so it uses bit coin only as a distributed timestamping service for it’s own protocol. and for authorization…

[17.11.13 00:56:24] Yanislav: okay, makes sense

[17.11.13 01:00:16] Yanislav: ok… you have written meanwhile a colored coin whitepaper

[17.11.13 01:00:30] vbuterins: yep

[17.11.13 01:02:46] Yanislav: i wonder… is bit coin already scalable enough to cope with all those new transactions?

[17.11.13 01:05:01] Yanislav: if msc could encode itself in the bit coin block chain… that would be cool!!

[17.11.13 01:05:27] Yanislav: i mean: if algorithm changes are also embedded into the block chain…

[17.11.13 01:05:33] vbuterins: okay, that would be cool

[17.11.13 01:05:42] vbuterins: although I would rather exploit an altcoin for that

[17.11.13 01:05:43] Yanislav: can we do this with the xpm block chain please?

[17.11.13 01:05:45] vbuterins: xpm maybe

[17.11.13 01:05:53] Yanislav: (y)

[17.11.13 01:06:02] Yanislav: let’s work together on this

[17.11.13 01:06:25] vbuterins: so, mastercoin on xpm with superadvanced features and source code updates in chain

[17.11.13 01:06:34] vbuterins: also, proof of stake voting on source code updates in chain

[17.11.13 01:06:43] vbuterins: okay, we might have the first real DAC here

[17.11.13 01:06:46] vbuterins: well, okay, the second real DAC

[17.11.13 01:06:50] vbuterins: #1 was bitcoin

[17.11.13 01:07:35] Yanislav: mihai said the same about the micro crowd funding platform i will make out of thenewsbits… the second real dac

[17.11.13 01:07:43] vbuterins: hehe

[17.11.13 01:07:50] vbuterins: guess you’re in competition with yourself

[17.11.13 01:07:52] Yanislav: proof of stake voting looks promising

[17.11.13 01:09:31] Yanislav: yeah… this could even be the foundation of a new democratic algorithmic system

[17.11.13 01:09:35] Yanislav: demoalgorithmic

[17.11.13 01:10:46] Yanislav: if ‘the algorithm’ gets also embedded into the blockchain with all it’s future changes. the problem with msc is that it is a more or less proprietary algorithm located somewhere on centralized servers

[17.11.13 01:11:04] vbuterins: well, no, the msc algorithm is open source

[17.11.13 01:11:08] vbuterins: everyone runs it

[17.11.13 01:11:20] vbuterins: but hmm, the algorithm on the block chain

[17.11.13 01:11:26] Yanislav: but we have a master

[17.11.13 01:11:34] vbuterins: what do you mean?

[17.11.13 01:11:43] Yanislav: the inventor of mastercoin

[17.11.13 01:12:04] vbuterins: his position isn’t really more privileged than that of gavin

[17.11.13 01:12:15] vbuterins: well, now it is in practice since it’s a tightly linked community

[17.11.13 01:12:23] vbuterins: but in theory the mscorg will have roughly the same role

[17.11.13 01:12:57] Yanislav: how can we embed an algorithm into the block chain?

[17.11.13 01:13:09] vbuterins: 1. pick a programming language

[17.11.13 01:13:18] vbuterins: ideally it should be simple, but powerful

[17.11.13 01:13:23] vbuterins: and concise

[17.11.13 01:13:53] vbuterins: but it gets very problematic potentially

[17.11.13 01:14:00] vbuterins: what if someone publishes infinite loop code

[17.11.13 01:17:12] Yanislav: …or a trojan horse. but that’s not the way it will work. there needs to be also a genesis tx from which the algorithm starts and from which coins are emitted which allow changes — like diffs (in git)

[17.11.13 01:17:49] Yanislav: if accidentally an infinite loop gets published then this needs to be reversed with another tx

[17.11.13 01:18:30] vbuterins: but the other tx will get interpreted according to the new rules, which will not accept anything since they’ll just loop forever

[17.11.13 01:18:42] vbuterins: so it can get stuck

[17.11.13 01:19:06] vbuterins: otherwise, you would have to have some kind of core “constitution” that can’t be changed

[17.11.13 01:19:13] vbuterins: or maybe takes 10k blocks to change

[17.11.13 01:23:14] Yanislav: when the algorithm gets updated the execution of the old one stops and the new, updated version gets executed. in fact this can not be encoded in the blockchain but that is the only thing i think

[17.11.13 01:23:30] vbuterins: actually, that has to be editable as well

[17.11.13 01:23:38] Yanislav: this meta algorithm which starts and stops the execution

[17.11.13 01:23:39] vbuterins: what if there’s a massive discovery in crypto?

[17.11.13 01:23:55] vbuterins: so even the update process becomes insecure

[17.11.13 01:24:03] vbuterins: then it would have to be changed

[17.11.13 01:25:49] Yanislav: i assume that a massive discovery in crypto will lead to special measures which can not be foreseen today

[17.11.13 01:26:30] vbuterins: right, but it’s better to foresee as much as possible

[17.11.13 01:26:35] vbuterins: if it requires direct human intervention

[17.11.13 01:26:44] vbuterins: then it’s an opportunity for a hostile takeover

[17.11.13 01:27:38] Yanislav: any suggestions?

[17.11.13 01:27:42] Yanislav: i do not have

[17.11.13 01:28:18] vbuterins: I like the idea of having a core which requires, say, 90% consensus or 60% consensus + 10000 blocks to edit

[17.11.13 01:28:25] vbuterins: minimizes the risk

[17.11.13 01:28:35] vbuterins: most edits would not be to the core

[17.11.13 01:28:42] vbuterins: so there’s a nice separation of concerns

[17.11.13 01:29:04] Yanislav: a constitution

[17.11.13 01:29:11] vbuterins: yep

[17.11.13 01:31:39] Yanislav: hard to choose the best approach