Grin目前只有命令行工具,还没有图形界面,下面以命令行工具的方式示范交易过程。不过即使之后出了图形界面工具,交易过程也仍然是差不多的。
发送文件
- 支付者发起交易,创建交易文件
比如支付10.25个币,需要运行命令
grin wallet send -m file -d my_grin_transaction.tx 10.25
创建交易文件(transaction file) my_grin_transaction.tx,并发送给收款方
- 收款方收款
获取支付者发来的交易文件后,运行命令
grin wallet receive -i my_grin_transaction.tx
生成收款文件(response file) my_grin_transaction.tx.response,发送回支付者
- 支付者确认交易
获取收款方发来的收款文件后,运行命令
grin wallet finalize -i my_grin_transaction.tx.response
此时 grin 节点将交易发送到grin网络,等待几分钟,交易上链,交易完成。运行命令grin wallet info
可以看到当前余额。
HTTP
grin wallet send -d http://ip-address:3415
交易的所有过程全部自动完成:
- 收款方不再需要手动接收transaction file、生成response file、发送给支付者。
- 付款方不再需要手动生成transaction file、发送给收款人、等待response file、确认交易。
这确实带来了很大方便,但是收款人需要暴露自己的公网IP地址,这有损grin意图达到的匿名性。而且,大部分人是没有固定的公网IP地址的。
但问题并不严重
上面说了它存在的2个问题,但Grin的匿名性确实很好,可以完全隐藏交易地址、交易记录、账户余额。上面所陈述的2个问题,很多时候也不会有问题:
- 关于第一个问题,交易文件可以通过加密传输、数字签名进行保障
- 关于第二个问题,很多时候暴露自己的IP地址也是并没有关系的,只要达到隐藏交易的目的就行了
交易纠纷
由于Grin的匿名性,交易在区块链上是查不到的。交易完成后,只是支付者、收款方各自可以看到自己的余额变动了。如果收款方赖账,说自己没收到币,付款者完全没有办法证明自己的清白。
Monero通过payment ID解决这个问题,但据我所知Grin则并没有任何途径解决这个问题。