Grin使用方法及安全风险

2019-02-12  本文已影响38人  周宇盛

Bitcoin等现有的数字货币转账,只需要支付者获知收款人地址,然后转账即可,不需要收款方做任何事情。但是Grin不一样,它没有交易地址[1]
什么?没有交易地址?是的,那怎么转账?
使用Grin需要观念上稍微转变一下,转账时,支付者、收款方是通过互传交易文件的形式进行,而不是通过交易地址,而且双方都需要操作。不需要同时在线,但都需要操作。

Grin目前只有命令行工具,还没有图形界面,下面以命令行工具的方式示范交易过程。不过即使之后出了图形界面工具,交易过程也仍然是差不多的。

发送文件

转账需要用grin wallet进行以下几个步骤[2]

  1. 支付者发起交易,创建交易文件

比如支付10.25个币,需要运行命令

grin wallet send -m file -d my_grin_transaction.tx 10.25

创建交易文件(transaction file) my_grin_transaction.tx,并发送给收款方

  1. 收款方收款

获取支付者发来的交易文件后,运行命令

grin wallet receive -i my_grin_transaction.tx

生成收款文件(response file) my_grin_transaction.tx.response,发送回支付者

  1. 支付者确认交易

获取收款方发来的收款文件后,运行命令

grin wallet finalize -i my_grin_transaction.tx.response

此时 grin 节点将交易发送到grin网络,等待几分钟,交易上链,交易完成。运行命令grin wallet info可以看到当前余额。

交易过程需要发送2次文件,可以通过任何途径传输——U盘拷贝、微信/邮件。但是如果transaction file被中间人拦截了[3],或者他假冒收款人获取transaction file,就可能导致钱转到别人账上了。

HTTP

还有另外一种交易方式,收款人通过命令grin wallet listen使钱包监听通过网络传输过来的transaction file。支付者只需要知道收款人grin钱包的IP地址,并执行一次命令[4]

grin wallet send -d http://ip-address:3415

交易的所有过程全部自动完成:

这确实带来了很大方便,但是收款人需要暴露自己的公网IP地址,这有损grin意图达到的匿名性。而且,大部分人是没有固定的公网IP地址的。

但问题并不严重

上面说了它存在的2个问题,但Grin的匿名性确实很好,可以完全隐藏交易地址、交易记录、账户余额。上面所陈述的2个问题,很多时候也不会有问题:

交易纠纷

由于Grin的匿名性,交易在区块链上是查不到的。交易完成后,只是支付者、收款方各自可以看到自己的余额变动了。如果收款方赖账,说自己没收到币,付款者完全没有办法证明自己的清白。
Monero通过payment ID解决这个问题,但据我所知Grin则并没有任何途径解决这个问题。


  1. https://blockonomi.com/grin-mimblewimble/

  2. https://github.com/mimblewimble/docs/wiki/How-to-use-the-Grin-wallet

  3. https://medium.com/@lopp/satoshi-roundtable-v-recap-151dab7548bb

  4. https://www.coingecko.com/buzz/how-to-use-grin-wallet-to-send-receive-grin-coins?locale=en

上一篇下一篇

猜你喜欢

热点阅读