/spec

This is the repository for fixing on the core architecture of components of the app and hosting servers.

Primary LanguageTeX

#I Got U

I Got U is a peer to peer ledger system using cryptographically signed IOU statements. The idea is similar to that of popular apps like Splitwise but distributed and peer to peer.

In this you can issue an IOU saying you owe someone a specific amount of money. Currently supporting only regular currencies, but in future will support anything that the two people agree on (For e.g. I owe you 100 coconuts)

###Registration

Before you can do an IOU you have to establish a relationship with your friend. This step gets their Public Key and signing it and storing it. Ideally this should be done in a manner such that you can verify the authenticity of the public key.

####Steps Involved

  1. Get the users public key through a trustable communication method (SMS, QRCode, Manual Entry - Not it does NOT involve Communication Servers)
  2. Verify and sign the public key and store locally.

###Transacting

Currently the only transaction supported is requesting for and issuing IOUs. In future we will be looking at Group IOU (like Splitwise), loans, and derivatives. The steps involved are.

####Steps Involved

  1. (Optional) Alice requests for a IOU from Bob
  2. Bob creates a signed IOU, and depending on the amount and communication. For example SMS based communication uses RSA 512 and MD5 and hence is supported only for amount below the small amount limit (Rs. 100 in INR). He is free to use any of his key pairs Alice knows about.
  3. Bob transfers the message to Alice without encryption in case of trustable communication methods (SMS, QRCode) or encrypted with Alice's key in case of untrustable communication methods (Email and Communication Servers)
  4. Bob's device records the transaction and the signature.

###Trusted Group

ToDo: We need to come up with steps to transact in a group that is easier.

###Circular Settlement

The idea is that as the ledger system grows if we could look at the global state we will see that there are circular loops in the system. It would be an ideal if circular flows could be detected and removed.

####Steps Involved

  1. Detect circular flows.
  2. Use cryptocurrency to keep settling debts and finally the crptocurrency ends up with the person who started the flow itself.