owned this note
owned this note
Published
Linked with GitHub
MMT: Tools for Transparency & Accountability
===
Already with MMT we have developed an understanding of our needs to manage crypto as a group in a way that's functional and accountable. It seems no existing tool is purpose-built for this task, so we will need to either connect some together, build our own, or use some kind of manual process.
Below I've listed our needs and a range of existing tools. I think we could connect with an existing open source project with a similar ethos and build out crypto functionality for their tool, or build something ourselves, or focus on creating a "how to" guide making use of multiple existing tools.
I'm assuming we're going to use some kind of quick-and-dirty interim solution now for ourselves, and work toward something more developed that other groups could use effectively.
### Our Use Case
We want to manage a pool of crypto currency together, giving everyone access to see transaction data and make payments (I think).
Relatively static info:
- List of people to be paid
- How much to pay them (days per week each works)
- Receive address
Dynamic info:
- BTC/EUR rate
- Transaction IDs
- Pay dates
- Co-signers
- Wallet balance
- Payment description/note
BTC is mostly designed for (pseudo) anonymity, but our needs include accountability, which is a tension.
We have some data that will be fully public on the blockchain (amount, transaction ID), and other data that we need to be transparent to group members but private from the world (receive addresses, pay rate, names).
### What do we need?
* People make mistakes and we need opportunity to correct errors
* Build trust among group members and feel a sense of collective ownership over our transactions
* We will forget what we did (just now, or some time ago) or who did what
* Totals might turn out different than expected, and we need a way to find the problem
* We need detailed data to learn if our process is working, and work to improve it
* May need to match transactions with invoices, to do accounting or pay taxes
* Can't have conflicting info, such as two mutually exclusive descriptions for one transaction
### Questions
* Do we need an offline solution?
* Do we need a decentralised tool?
* Do we want to make something really user-friendly or is a hacked together solution with a guide enough?
# Overview of Existing Systems
### electrum-plugin
There is an Electrum plugin that lets you add description data to transactions. However, it appears to be designed for single users signing on multiple devices. It does not appear fit for our purposes, because you can't share one set of transaction descriptions among all group members.
### [Open Collective](http://www.opencollective.com)
Transparent crowdfunding and budgets for collaborative projects. Mostly open source projects. Optimised for ongoing collaborations among groups, not a one-off project or product (like Indiegogo/Kickstarter) or a individual person (like Patreon).
See [example collective](https://opencollective.com/mochajs).
Pros:
* Built in processes for receiving funds and paying out expenses.
* Automatic transparency, built for community accountability.
* Open source, and focused on supporting the whole FOSS community.
Cons:
* Currently not set up for crypto, but they are very interested to do so.
* All transactions are fully public.
* Requires you to go through Paypal and connect a bank account.
* Centralised software (can be cloud hosted or self-hosted).
* Optimised for sometimes irrelevant legacy accounting requirements - requires receipts/invoices, signoff by person with authority over host legal entity.
* Lacks any tools for group decision-making. Most collecives have benevolent dictators who decide where the money goes, or combine with Loomio or another governance tool.
Open Collective is not currently built for what we want to do, but they are aligned with the MMT ethos and would be very open to collaborating on extending their tool for crypto-currency. I think what MMT wants to build will end up pretty close to a crypto-powered Open Collective... perhaps we could build that part, and plug into their existing systems for when MMT groups want to engage with fiat?
A key difference between MMT and OC thinking is OC is built with the presumption that a group doesn't have money and wants to raise some. Its main functionality is like a crowdfunding page. MMT is starting from the assumption that a group has crypto and wants to collaborate with it.
Things for us to consider:
* Open Collective requires receipts/invoices because that's needed for accounting and tax purposes. Is there an analog in the MMT world? Or are self-entered transaction descriptions and multi-sig wallet signoffs enough?
* Open Collective is designed for full transparency. Why might MMT want or not want this?
* The biggest pain for Open Collective has been building the interface into fiat systems (they've automated transactions in the user's paypal and bank accounts showing up on their OC page, and actions on OC triggering fiat transactions) - no small task! But MMT could skip these hard problems entirely since it's crypto-powered.
### [Cobudget](http://cobudget.co)
A tool for groups to make decisions about spending collective funds, by distributing a portion to individuals who can then fund what they want. Users can put up 'buckets' (funding requests) and discuss them with the community. A tool for emergent funding (lots of independent decisions add up to the overall budget, with no need to reach consensus).
Cobudget is redundant if you already know what you want to spend your money on (eg, people get paid $x per week). It has no functionality around actually moving money around - it's virtualized and requires someone doing admin after the decisions are made to make actual transfers (eg, in a bank account).
Pros:
* Activity is transparent to group members but not outside.
* Makes it easy to see how much money you have, how much the group has, and what the competing priorities for funding are.
* Removes any need for coordination in financial decision-making (once you decide who to give the money out to and any constraints or goals for raising buckets).
* The process of moving money from your "wallet" to buckets is super easy.
* Open source software, team interested in collaborations.
Cons:
* Doesn't have functionality to move money between "wallets" (ie, individual's pots of money), only to buckets (so far).
* Easy to see who is involved, how much money they control, and what they do with it.
* Automatic transparency in terms of where money is directed. Options for qualitative transparency (eg, reporting back later how a funded project went).
* Because the money is virutal, it's easy for the Cobudget funds and the actutal funds in the bank account to get out of sync. Admin headache.
* Centralised, cloud-hosted app.
So far, the actual moving money around stuff has been in the "too hard" basket for Cobudget. Perhaps MMT could engage and hook up crypto, solving that problem for them, and having our interface and accountability problems solves for us.
### [Social Wallet API](https://github.com/Commonfare-net/social-wallet-api) (a.k.a [freecoin](http://freecoin.dyne.org/))
SWAPI is made to facilitate the integration of blockchain functions into existing front-end applications.
SWAPI is the product of 5+ years of research and development by [dyne](http://dyne.org) in the context of some major European partnerships funded by major EU grants. Here is the participatory action research: [Design of Social Digital Currency](dcentproject.eu/wp-content/uploads/2015/05/D4.4-final_v4.pdf)
Pros:
* There is a [ruby client](https://github.com/Commonfare-net/social_wallet_ruby)
* mmt folk have run some experimentation with the codebase ([notes here](https://hackmd.io/nxjC6RpnSjKMpphWcJAfCw?view#))
* Activity is transparent to group members but not outside.
* SWAPI is maintained and developed by artisan accomplices at dyne. Closely aligned and world class software house.
* Open source software, team interested in collaborations.
* Other communities using this software to try to socialise blockchain technologies
Cons:
* Unclear right now exactly how this might look
* Centralised, cloud-hosted app.
### [MMT Transaction Log](https://github.com/blockades/mmt)
**TODO: Kieran and Dan to input infos here**
### My.Enspiral
This system is now deprecated, but it was in use for many years as Enspiral's "internal bank". People had accounts, which they would get paid into (minus an agreed % that went to the collective). They could then decide what to do with thier funds: pay themselves (at which point tax was taken out, etc), transfer to another person or project's account, claim reimbursement for business expenses, or leave it there.
It's old software and had a lot of bugs and problems. However, a *lot* was learned about how to hook up such a system to the world of taxes, employment contracts, business expense claims, etc. I believe that's some of the biggest value to come out of the project.
### Accounting Software
Pretty much every organisation dealing with money in the legacy world has to do accounting, and there are a ton of tools out there. The one I'm most familiar with is Xero, which has [recently added Bitcoin support](https://www.coindesk.com/accountancy-platform-xero-adds-veems-bitcoin-powered-payments/). Xero is waaaay overkill for the featureset we need, and is designed to connect to bank accounts.
There are some tools specifically built for accounting bitcoin, like [this one](https://www.node40.com/balance/) - but it seems their main use case is single users trying to work out income tax, so might not have the functionality we need.
Pros
* High quality accountable ledger with lots of transaction details.
* Lots of existing tools to choose from.
* Many cloud-hosted options will allow us to give our group members access but keep data private.
Cons
* Way overkill in terms of the details we need for transactions - in fact some tools don't work without invoices/receipts and actual bank transactions.
* Pretty much all centralised, proprietary software.
* Not really built with crypto in mind so there will be friction.
### Spread Sheet
We could easily manually input the data we need to log on Google Sheet, and have the privacy permissions we want. However, I'm guessing we don't want to use a centralised cloud product made by Google. There are open source alternatives like [Collabra](https://www.collaboraoffice.com/) and [EtherCalc](https://ethercalc.net/). If the main output of MMT is going to be a "howto" guide for collaboratively managing a pool of crypto, then we could evolve a good process and then just tell people to copy the spreadsheet and have a guide for how it works.