How does Grin wallet run in practice?

Hello
Every Grin enthusiast !
I just learn that Grin transaction that both sender and receiver need to be communicated to accomplish the transaction. For example, when Alice sends 5 Grin to Bob,Bob can get 5 grin,and put the transaction to Alice for proving that he already know the amount Alice send.Then Alice would send this transaction(without amount and address) to miner.It seems a little bit complicated comparing to BTC transaction,so I want to ask how about Grin wallet in practice?Does Bob need to do anything manually to let Alice know he knows the amount? Or Grin wallet already implemented some script to run transaction?

And how about the safety of the script ?Would someone monitor or hack to know the transaction amout?

I will very appreciated if someone can recommend the Grin wallet with good experience !

Thanks for reading,guys!

Yes or No, determined by the method they transact.

Bob’s wallet need to do something

No matter how they transaction, Bob’ wallet should do something to make transaction, which means Bob should be online to receive coins. Because both Alice and Bob’s private key should be used to finish the transaction. It’s different from Bitcoin, which only need sender’s private key to finish transaction. It’s determined by the mechanism of MimbleWimble.

Grin wallet

With original Grin wallet, there’re 2 ways to make transactions:

  • Sending file: Bob needs to receive coins manually. He needs to receive the transaction file from Alice, generates a response file, and send it back to Alice. This process is described in Vite’s inviting Beta tester for Grin wallet!
  • HTTP: Bob’s wallet can receive coins automatically. Bob’s Grin wallet listen to a port. Whenever Alice sends the transaction file to this port, Bob’s wallet automatically receives the transaction file, generate a response file, and send it back. But it needs a static IP address and your client should work continually.

Grinbox

Grinbox make things much easier. The wallet’s CLI client is called wallet713, server side is called grinbox. Grinbox server records users’ IP address and public address, and act as a proxy of sending transaction files back and forth, so users can finish the transaction processes automatically without static IP address. Grinbox server and Alice, Bob’s wallet713 clients cooperate to make transaction automatically.
If both Alice and Bob run wallet713 at the same time, then Alice can send coins to Bob just by specifying Bob’s public address, the experience is like Bitcoin.

grinpurse is similar to grinbox, it has a GUI client.

1 Like

I think jasonzhouu has answered the question of how the transaction happens. Regarding whether the transaction can be hacked to know the amount - I think avoiding that is the raison d’etre of privacy crypto in general, and I think Grin is good at this; someone more technical can probably explain why more succintly. As regards your point about Alice and Bob sharing information about the amounts - imagine this:

  1. You go into a store.
  2. There is no-one there but you and the store owner.
  3. Do you suddenly hand over an envelope containing an unknown amount of money to the store owner with no prior discussion of what you are doing? (Yes/No)

If “Yes” then please send me your bank account details immediately. I am a Nigerian Prince that wants to give you $10 million. If “No” then I think you already know the answer to this part of your question.

1 Like

No body will know the transaction amount except Alice and Bob. It is ensured by Elliptic Curve and Pedersen commitments.

Tarilabs made a good explanation about it.

https://gitpitch.com/tari-labs/tari-university/master?p=/src/protocols/mimblewimble-1#/3/6

The privacy in Grin transaction is proven by ECC.It is true,but I just worried about the possibility of hackers’ listening the file Alice sending to Bob through Wallet software!

There’s not problem with it, hackers can’t get any information from the transaction file.

But there’s a possibility that hackers can know where the traction file sent from and to.

1 Like