Venmo/Cashapp product planning

Lightning compared to Venmo. https://x.com/layertwolabs/status/1936072045210542146

How does Grin compare?

Grin is:

  • slower :white_check_mark:
  • more prone to catastrophic loss of funds :red_question_mark:
  • infinitely more cumbersome unless used custodially :cross_mark:
  • less private :cross_mark:
  • in practice, as custodial
  • introduces meta complexity to users via taxable events :cross_mark:
  • in many cases, not even using Bitcoin❌

Ok so Grin is slower than venmo and has the same potential with loss of funds as Lightning I guess (both interactive though).

Other than that, Grin is on-chain and the main chain has privacy. So there’s those benefits.

What’s the real data on speed of interactive transactions?

Payment channels, we have NRD Kernels for a reason.

1 Like

I’m not sure payment channels are really necessary for normal commerce like checking out at a convenience store. How long does it take for 0 confirmation or 1 confirmation?

Needless to say, slower transactions are fine for venmo type transactions. As long as the user doesn’t have to keep their screen open the whole time it’s doing its thing.

60 secs in average for finalization, this time client can drink coffee

1 Like

Grin has the lowest risk of loss of funds from all crypto I know because it is interactive. If you safely store your backup seed and use a properly secure password, there is less chance to lose funds compared to Venmo or any banking App. Banks can fall, Grin can only fall if some major mistake is made, like with the inflation bug. The chance of that ever happening again is very small.

Only downside is the need for grin to unlock your wallet to receive. Using a hardware wallet makes grin much more safe. I wish we had an oficially suported HW wallet

MimbleWimble is one single transaction, we can exchange outputs, like mwixnet did for fast txs maybe, privacy is must have for Grin, at usual blockchain POW is in the last place..

Is there less chance to lose funds compared to Lightning? I would assume the risk is the same. Both interactive.

Do you think I’d have to stand there with my phone screen unlocked and waiting?

If yes, channels will be needed for in-person commerce

This thread is about Venmo though, not e-commerce.

Then channels should be perfect solution for fast txs while we have no DAG or Blockchain with 1sec blocks, seems like cause memory is not fast enough yet.

Lightning is a bit riskier. Transaction channels work like a 2/2 multisig with both users having a revokation key. Quite similar to Grin on chain transaction, but in grin when both parties have signed and the transaction is broadcasted and appears online, its final. The difference with Grin is that the transaction directly appears on chain, making it final. In lightening, only when a channel is closed, all transactions are truly finalized and all parties receve their share on-chain. In the mean time, disputes can occur. Attacks are possible and your wallet (or watch towers) need to stay vigilant and setle any disputes within the dispute setlement time (normally 24 hours). Lets say someone does a DOS attack on your lightning node bringing it offline, funds in your channel can be stolen by the other party broadcasting an old state.
Also, if you lose your lightning node, regaining access to opened channels is hard. If you restore your wallet from seed, you do not automatically see opened channels. Lightning is therefore much more complex than Grin on chain transaction because your wallet has to mitigate all the potential attacks. Also there are privacy concerns with lightening, options to block or sensor transactions, centralization concerns etc. Hopefully all these challenges will be solved over time.

1 Like

In this case, Grin is honestly just slightly better than Venmo because it offers privacy.

The slower speed is negligible when just sending money to friends because it can happen asynch.

There’s a slight UX annoyance compared to Venmo because of the round robin stuff that needs to happen to finalize transactions, but that can be turned into a benefit with a good UI (swipe to finalize / accept with a fun animation)

yeah, accept is water, send is fire

1 Like

The new MDK (evolution of MLS protocol on top of Nostr) was announced earlier this summer. Introducing Marmot: The Future of Secure Messaging - JeffG

The reference implementation is in rust. Would probably mesh nicely with Grin slatepack sending seeing that MLS hides metadata. GitHub - parres-hq/mdk: Marmot Development Kit

Other Language bindings are planned as well.

Combining something like this with grin slatepacks would give us static messaging addresses to send slatepacks too. Basically something equivalent to venmo / cash app addresses.

2 Likes

I love the idea of a Grin wallet being able to interact with what is essentially a decentralised username. People could use NIP-05 to create user-friendly aliases like myname@mydomain.com. Using Nostr also means that messages can be buffered for offline users, storing events until polled. We should focus hard on this.

2 Likes

MDK on Nostr is essentially what Grinbox was Grinbox deserves more love. It makes transactions so much easier

Except

  1. MLS encryption has forward secrecy and
  2. Nostr is a generic protocol (not only for grin) that is super easy to spin up servers for
  3. Addresses (pubkeys) remain separate from servers

Two aspects to this.

  1. Combine nostr pubkey MDK messaging with Grin slatepack wallet. The messaging would really just be used for slatepacks and transaction history only. Maybe with little notes similar to Venmo / Cash app. Users can pay pubkeys in their address book.
  2. Spin up nostr relay and let people pay your relay’s pubkey to get access to use the relay server. Self sustaining ecosystem.
1 Like

Slatepack addresses ar an ed25519 public keys from the wallet that is bech32 encoded with grin added in front for human readability.
Nostrs npub key’s are bench32 encoded ed25519 public keys. So essentially you can already use your slate-pack address for Nostr (just remove grin from the front of the address to get you npub).

So what would actually be needed to create a Venmo App like experience:

  • Have a Nostr App that recognizes slates by them looking like BEGINSLATEPACK ... ENDSLATEPACK, clicking on them will open a certain App, e.g. Grim wallet?
  • Or should a NostR chat App be integrated in Grim wallet, like an extra tab?
  • Something else, if so, tell us?

I am still wondering about the downsides of carelessly sharing your slatepack address pub-key. E.g. if you use your npub address that uses the same pub-key as your slatepack address. Does this not make it easier for people, especially relays, to collect pubkeys from which they can derive grin slatepack addresses? Can this be used to attack or track Grin users, e.g. spamming them either on NostR or on Tor?
An alternative is to either generate a separate npub key and not use the same key as in a slate-pack address.
At the least I think we should only allow the use Nostr on Tor in such a case to avoid making it to easy to link slate-pack addresses to people’s IP.

Yeah I think this is the move for multiple reasons. Another reason is that you can generate a really readable short name from your npub (and that should definitely be separate from your grin slatepack address).

in terms of what to do, there’s a lot of routes to go. Lots of experimenting that we can do. If we literally just want Cash App though, we would primarily create a Grin wallet app then use MDK (MLS on Nostr) for ferrying slatepack transactions back and forth (and nothing else). So the “messaging” would only be slatepacks and some short message about what the transaction is for, not for arbitrary “hey what’s up?” messaging.

Does that make sense?

1 Like

Yeah i think the slatepack address needs to be shared inside of an MLS encrypted message then.

The spam can be buffered in this Nostr layer. New messages to you get put in the “spam folder” by default. These spam messages might be sending you their slatepack address, but your address would only get shared after you also initiate contact. (This whole processes can be automated and wouldn’t need to be “real” messages like “hi hello”)

1 Like

Which API or reference market should be used to convert the grin to USD? Definitely need USD conversion for a mainstream cash app style experience.

btw @Anynomous @waynegeorge how should we go about making this bounty?

Probably it should go something like a) us drafting a product description and requirements for such a bounty, b) discussing this draft Bounty proposal, with the whole community, c) then putting an amount on it.

It sounds like something that we explicitly want to link to a wallet, e.g. Grim wallet. In such a case we should also specifically discuss it with the relevant developer, see if it meets their vision for the wallet.

1 Like