Re: decentralized wallets and payment processors

On 29 April 2015 at 13:47, Dave Raggett <> wrote:

> On 29 Apr 2015, at 13:37, Melvin Carvalho <>
> wrote:
> Dave, I've been thinking a lot about sync lately, during my testing phase.
> I think traditional methods for sync here are not going to meet my needs.
> I'm thinking more along the lines of UNIX IPC.  In particularly, shared
> memory and messaging.
> In the case of shared memory, two wallets will have the same URI and then
> merge when connections allow.
> In the case of messaging wallets allow information to flow like water in a
> network.  This becomes more spontaneous.  I envision a web of wallets, a
> user may have many wallets all talking to each other and triggering
> things.  Your fridge may order food on your behalf when it gets low.  A
> family may have a shared area for photos and video, with payments triggered
> as more files are uploaded.  A person may track their work locally for
> analysis, then send a summary to employers and accountants etc.
> Importantly, I no longer see a distinction between payment processor and
> wallet.  A payment processor to my mind is just a multi user wallet.  I
> like the wallet metaphor in this context.  It's not hard to create and
> destroy wallets spontaneously, to add block chain technology over the web,
> to deploy smart contracts in javascript and to have personal coinbases (aka
> currency mints) regulated via a ripple-like web of trust.
> As Patrick recently pointed out the W3C Web Payments Activity is seeking
> to create a level playing field for many payment solutions. I see a
> distinction between wallets and the things they contain. Joerg Heuer
> provided a nice list of the different kinds of things that a wallet could
> contain. When it comes to synchronising a pair of wallets, an object
> oriented approach seems reasonable, where objects define and own their
> properties and methods. The wallet can merge its contents, but when it
> comes to merging payment instruments of the same kind, then this is
> something that the payment instrument should be responsible for handling,
> including resolving any conflicts that may occur.

I agree the wallet is a container.  And it can contain anything.  My main
distinction is that the wallet software can provide one for one person,
many for one person, or many for many people.

Consider the real world, you have a pocket, which may contain notes and
change.  You have one or more leather wallets, sometimes you'll take money
from one and put it into another.  You have a bank account which you'll
periodically put money into.  You may have a digital wallet too.  What
coins you put in your pocket doesnt matter, in fact you can put anything in
your pocket.  The wallet software handles these cases (and I think should
handle these cases) interchangeably.  It's a case of giving the wallet a
URI then key value pairs like an object, then what I do is add hooks when a
payment is made, or have daemon processes making payments, or triggers when
a smart contract is fulfilled the payment is made.

Conflicts are interesting and that's what Im testing now.  The most common
failure case is to test balance goes below zero.  But in the case of agreed
overdrafts, that can sometimes be relaxed, in certain cases.

> The reason I take the UNIX analogy is because I see the next gen of the
> web becoming much more like an operating system, than a browsing space.
> Some of this may probably be suitable for v2.0 of the web payments spec.
> But I probably will have it all coded up and working in an MVP by the time
> v1.0 is out.
> It sounds like you are implementing a multi-user wallet for a specific
> payment solution. That would seem to be very different from the personal
> wallet with multiple payment instruments that the W3C Web Payments IG is
> chartered to work on.
> Best regards,
> —
>    Dave Raggett <>

Received on Wednesday, 29 April 2015 12:25:18 UTC