Mon 15 Jan 2018 2:42AM

[MIP-002] Updated MVP towards multi-sig, sharded social backups and a p2p exchange coordination space

DU Dan Hassan Public Seen by 314

Adapting the mmt MVP

Am writing this in a rush to get at least a draft out before nova wakes from her nap so that there is something up before the meeting.


There are things which we can work on now and extend the mmt software so that it is useful for existing participants of the crypto-circle. My gut is that if we can solve the problems listed below then we will also have a really valuable prototype to offer the Athens project for how to manage these types of things....

Think it is important for us to gather feedback from the Crypto Circle participants. From this we can figure out what worked for folks and what didn't.

From my perspective the following things worked:

  • offering folks risk-free IOUs in crypto helped to onboard people into the system who might not have otherwise have made the leap
  • increase in fiat value of holdings has opened up new worlds of possibility for all participants. some really rad projects now have funding.

What did not work?

  • me being responsible for peoples private keys has been a real strain / stress / risk.
  • by doing so I am not sure the full ramifications of the potential of blockchain tech has had a chance to sink in for people.
  • a large amount of time was needed to teach people about how to manage their private keys so that risk of loss is reduced.
  • people who could not attend the workshops are left exposed to mismanagement due to not being trained. This is a strain for them but also for me (the issuer of the IOU) as it would REALLY SUCK if a person lost their private key (been there, done that, this stuff is really unforgiving)
  • Turning crypto to cash has been an ongoing pain (me cashing out for people adds a lot of work for me)

Problem spaces:

  • keeping private keys secure
  • allowing people to be responsible and in custody of their own funds (encouraging self-sovreignty and reliance and decreasing dependent/paternalistic models)
  • helping folks to leverage the social relations to help create liquidity

After many hundreds of hours of discussion with people I think that it is possible for us to shift the MVP to resolve the main downsides. I personally think that if we solve these issues there will be overlap with the experimental prototype that the athens crew are working on.

I suggest the following as a provocation for a starting point

  1. I think we should come up with some questions that can be given to all crypto circle participants to gather feedback
  2. I think we need to find a way to issue conditional IOUs
  3. Where the responsibility of the private keys does not stay with a single person.
  4. I think setting up a peer-to-peer exchange to aid coordination in exchnage of crypto for cash would be immensely useful.

A number of our crew are academically trained in this type of research. I think this is a well defined ask that we can get help with to gather then type of info which would help us to make sure we are building something which speaks to the experiences (good and bad) of participants.

  1. An idea which I have been researching and developing is the prospect of socially backed up, sharded custody of condiotionally IOUd private keys.

Example (how it used to work):
- This is how I actually did it:

  • When someone agreed to an IOU I then created a new spreadsheet line (a BUY order). I set the date, the USD amount of the loan and set the crypto price in USD at time of loan issue. Based on this and the split (medium or high risk) I then assigned the number of crypto. In some cases people gave me cash, so it was noted if this was paid upfront or a loan.
  • After an amount of increase in the crypto (NEO) I then sold an amount of NEO which cancelled out the initial IOU. Roughly this was when the fund had doubled in value.
  • It is worth noting here that I did not send each persons crypto to a new public key. All the crypto stayed put.
  • This has meant the getting people off the spreadsheet has been a lot of work of calculating (and more).

Example (how I think it SHOULD work):
- This is an idea for how it could have worked differently

  • After someone has agreed to the IOU, the funds should be moved to a multi-sig wallet. 2 out of 3 signatories should be needed to move the funds.
  • We need to research if it is possible to set some conditions about the movement of funds. i.e. is it possible to automate the process of being alerted when the fiat value has doubled and corresponding amount moves to a pre-determined wallet.
  • Private keys should not be in any one individuals sole custody. This means we need to look into how to socially back this up so that all parties have an exncrypted back up of funds which can also be further shared securely.

This is an extension of ideas about socially backed up private keys from point 2 above.

Example (how it used to work)
- This is how I actually did it:

  • Someone would contact me with their public keys. I would then send them their funds.

Example (how I think it SHOULD work):
- This is an idea for how it could work differently

  • People get their funds and also 5 encrypeted copies of the data (using secrets.dyne.org) which they can share with friends.
  • If they lose their private key, then they can recover the data with 3 of 5 of the secrets.
  1. Just what it says on the tin.

I am more and more of the opinion that we should stay as far away from banks and other such as possible. If we just write and release free software we avoid a world of pain. There are many exchnages which people can use to exchnage crypto -> fiat and visaverse. What we CAN do is help coordination of folks who know eachother to be able to connect with others in their social network who may want to sell crypto for cash or other way around.


Dan Hassan Tue 16 Jan 2018 2:11AM

The Why

Some feedback has come in that this MVP jumps to the how rather than focusing on the why. I will try to focus on the what and why in the post.

I'd like to build something which improves financial/crypto responsibility, sovereignty & literacy amongst a community of participants.

I think it is possible to design and build software which empowers participants in this learning journey.

Success would look like small groups of people managing their own crypto value system in concerte with eachother.

IMO the appreciating value of crypto currencies is an incentive for folks to intially get involved as it 'pays for peoples attention and energies' but it is not the POINT of the work. The point is community empowerment of the governance, management and control of their own value system (of course the extra money is a massive help - but easy come, easy go - learning how to manage a crypto fund together is a valuable skill which will be useful regardless of the price).

Review of the spreadsheet experiment within this context

- some folks have learnt how to keep their own private keys secure
- folks have made some money (not main point, but a positive)
- people have been onboarded into the process

Not so Good:
- folks have not learnt how to manage funds in collaboration with eachother - requires a central admin
- not sure that folk have come away from the experiement feeling empowered or reliant on an 'expert'
- not sure if folk would feel confident to go and repeat this within their own communities / friendship groups
- alot of people are struggling with the question of when / how to cash some out


Dan Hassan Tue 16 Jan 2018 2:42AM

After the meeting (meeting minutes can be found here )

I suggest the following as a next step forward:

  1. We all take our hands off the code for 4 weeks.
  2. We set up and run what we have. This will be a fresh install. I will then donate some crypto. Each of us can then find some friends to add to the new system and make some loans with conditions to. We all buddy up to help administer the spreadsheet and the system together.
  3. I will concurrently run an offline version against the existing spreadsheet with those left in the system and report back.

This experiment should run for 4 weeks. We can then regroup after this point and review the next steps.



peg Tue 16 Jan 2018 3:38PM

@danhassan I think this is a great idea and im excited to start playing around with this for real.

edit - i just wrote this and see that keiran has just posted below....

However Kieran has suggested we first finish and merge the three open pull requests we have. I also think this is important that the work that has been started gets finished. He has said he would like some support with 'feature/widthdrawals' and 'feature/equity' but somehow we never got around to talking about that in the meeting.

My suggestion is that we first focus on this at the mumbling tomorrow before going on to talk about practicalities of the 4 week experiment.


Dan Hassan Tue 16 Jan 2018 10:23AM

Although this is slightly different to us setting up a new round of IOUs... this question by @thecp hints at a related question:


That of a group of people / organisation wanting to collectively manage cryptocurrency... As @davidmercer mentioned previously - there is no super easy to use multisig stuff out there...


Kieran Tue 16 Jan 2018 3:27PM

@danhassan I think taking hands off the code is a good idea, but I don't think it should be done until 3 outstanding pull requests have been committed into the dev branch. Docker will make all future deployments and setting up development environments easy. The Equity feature changes the event system model arrangement and moving live data at a later date would be an unnecessary pain since its close to completing, especially since its the actual transaction data. Withdrawl requests needs reviewing and polishing. I don't particularly want these to be just left for 4 weeks, because returning to them at a later date requires re-learning the problem.

They're still outstanding because I need a second pair of eyes on all of them.


Dan Hassan Tue 16 Jan 2018 7:07PM

Hey folks,

Agree we need to finish code which has been started. @mixmix @nikolai2 @williammoxdrossard can you help in that?

It does seem like we agree running the software with hands off code whilst we do it is an emergent plan. I wasn't suggesting immediately, but it does give us a deadline aim. Perhaps the framing should be: let's list the features which are needed to be complete before we can run the experiment. Perhaps we can have a new thread for planning the experienment and then recording our findings.



Nikolai Wed 17 Jan 2018 2:54PM

@kyphae I agree about Docker and Equity but with the Withdrawl pull I'm less sure.
Also I'm worried about momentum so although making sure we know what we want to build is the most important thing, I'm less happy with an arbitrary 4 week wait. I don't believe we are on the same page but if we are sooner (or later) than 4 weeks away then I don't see the need to wait.

Seems like what is being suggested is a system where:
* Dan to be able to send crypto to a multi sig wallet, and then for MMT to own that wallet (with its own and with Dan's private keys)
* Then Dan can use the MMT to allocate IOUs to members
* When the member accepts, MMT to create a new multi sig wallet with the member so the member and MMT have to both agree before the crypto is released (this could be based on a condition i.e. the crypto rate doubles in value or something)
* There is an unspecified backup procedure if the member loses their private key
* No fiat involved

Would it allow members to buy in themselves? I guess anyone could load crypto as a Dan but generally if I had £100 then I'd have to convert it to BTC myself before I could join in.

For it to allow members to exchange crypto then MMT would have to actually have that crypto in a wallet which is very complicated (automating trading of crypto sounds like a headache) so we'd only be dealing with one currency.

This probably has very little or even no code shared with the system that has been built (which was around creating a shadow crypto market and allowing users to buy crypto, exchange crypto, and cash out to fiat)


Dan Hassan Fri 19 Jan 2018 2:29AM

Have been doing a bit more reading and thinking about the new MVP.

@nikolai2 might be good if you put your understanding of this here also.

Basically we are looking for a way to deposit funds into a collectively controlled wallet and for funds to be distributed to participants through a collectively determined process.

To this end, I think the following are worth reading and investigating:


which is based on the following participatory ethnographic/technical research:


And the following expands on the technical implementation:


Exciting times!

Full disclosure is that this is all built and maintained by the crew at http://dyne.org and I love what they do & think it's awesome.


Dan Hassan Fri 2 Feb 2018 1:57AM

Pasting this from keybase:

@danhassan : "Hey folks, what's on the schedule for meeting on monday???

Should we start to think about how to go about thinking about next MVP?"

@mixmix : "@danielsan would love calrity about whether you've got a plan and we're exploring how to do it,
or whether we want to propose ideas and then how to test them in a 1-2 week period.
Either is fine, it's just that not everyone is as interested in the later"

@danhassan : "FWIW I am keen for us to explore the social-wallet (freecoin) applications with regards to multisig and genesis invoking of funds in the system. I am not sure the best way to proceed with this as a group, or indeed if this is what others want to do. I have spoken with kieran and we seem to be on the same page. I have also spoken with nikolai who seems to think it's acheivable (though we didn't look into the specifics)

One of the outcomes I was wondering if would happen off the back of the testing of the currnent mmt accounting software is if anyone else would lazer in the invocation of funds from 'meatspace' into the app.... @phonebox certainly did and I know this has been a point of concern for @kyphae (and perhaps @nikolaib ?)

my gut is that it's on the one hand useful if we're all on the same page (is this a direction we're all happy to focus our attention on?)

on the other hand I am wary of yet more nebulous space where we're not focused on a specific problem together (i.e. the risk with solliciting everyones views is that we actually can't find a middle ground and we spend more time on meetings about meetings and about directions)...

I am also reticient to be a benevolent dictator and say 'this is what we're doing now' - I have to admit by this point I have become quite invested / attached to focusing on the collective managment of private keys....

Would be interesting to hear other folks thoughts on this before the meeting so that we can arrive at the meeting having had time to reflect on our own and others positions.

I think the best place to do this is here:

https://www.loomio.org/d/izHukXb7/-mip-002-updated-mvp-towards-multi-sig-sharded-social-backups-and-a-p2p-exchange-coordination-space "


peg Fri 2 Feb 2018 10:41AM

This is all exciting stuff and im really happy things are moving in this direction.

However, before discussing major changes to the project in the monday meeting which has generally been referred to as 'the developer meeting', i would really like to hear some feedback from the meetup in london last weeked so that we can bring onboard ideas and viewpoints from other members of the group.

Unrelated, but it would also be great to hear how the workshop at afrotech fest went, what was covered and if there was any feedback from participants. Cos it would be great to do similar workshops in the future...

Load More