昨天我的帖子中提到可以通过转账或者取现操作给别人发送信息,我使用了“私信”这个词,结果有朋友纠正我“公开的信息不能叫私信”,所以决定单独发个帖子,专门聊聊HIVE的私信功能。
(图源 :pixabay)
“私信”顾名思义,应该是私下里的信息(不是发给公众),私密的信息(除了发送者和接收者,别人应该看不到),如果不符合这两点,那么肯定不应该叫私信。
公开的信息
比如我转账0.001 HIVE给刘美女 @deanliu, 并附加MEMO:“明天一起去台北看雨可好?”,命令行钱包指令如下:
transfer oflyhigh deanliu "0.001 HBD" "明天一起去台北看雨可好?" true
转账成功后,打开钱包链接,就会在我的钱包或者刘美女的钱包中看到如下信息:
但是问题来了,这条信息不光我自己或者刘美女能看到,任何人打开我俩的钱包链接,都可以看到这条信息。这就囧了,本来想悄咪咪地约刘美女去台北看雨,结果地球人都知道了。
其实不光是通过钱包链接,在HIVE区块链浏览器,也可以轻易发现这条信息:
或者这条信息原始的Operation信息:
所以这种情况,显然,不能叫做“私信”了,如果通过这样的“私信”来传达一些“私密信息”,就可能出现我约刘美女去台北看雨,被全部地球人知道的囧事。
私密信息
说到这里,你可能会问:“你这不是自己打脸嘛?信息都公开了,你还好意思说是私信?” 好吧,我这个人脾气比较暴烈,愤怒的时候连自己的脸都打。
额,开玩笑了,别急,上边只是说通过转账(或者提款)可以附带公开的信息,但是没说不可以附带私密信息呀。
而发送私密信息的魔法就是一个#
:
只需在要发送的信息前边加上一个#号,那么发出去的就是私密信息啦!
让我们来测试一下,因为之前的信息已经被地球人知道了,所以这次我换个时间地点:
transfer oflyhigh deanliu "0.001 HBD" "#后天一起来沈阳看雨可好?" true
现在随意打开我的或者刘美女的钱包链接,看到的会是类似如下的信息:
在HIVE区块链浏览器上也只能看到一堆乱码:
所以,你知道我发给刘美女什么私密信息了嘛?晕,我自己也忘记自己发的是啥信息了,这可咋办?
别急,想看到自己收到的或者发给别人的私信(或者更正式一点,叫“加密MEMO"),那么只需用Memo KEY登录钱包账户即可。
比如当我用@oflyhigh 的Memo KEY(Memo 私钥)登录我的HIVE网页钱包,就将会看到如下信息:
所以说,只有掌握发送者Memo 私钥或者接收者Memo 私钥的人,才能查看解密后的信息,不考虑私钥泄露的情况,也就只有发送者和接收者才能看到对应信息啦,所以叫做”私信“,当之无愧了。
私信的原理
通过以上学习,我们了解到HIVE有“私信”亦即“加密Memo”这个功能,但是你可能很好奇,这个功能是如何实现的呢?
其实这个也很简单,其核心机制,就是: shared secret,具有如下特性:
Pub(Alice) * Priv(Bob) = Pub(Bob) * Priv(Alice)
实际应用中:
发送者利用发送方的私钥和接收方的公钥生成共享密码,而接收者用接收方的私钥和发送方的公钥同样可以获取共享密码。
至于更多的细节,说起来就太复杂了,能说上三天三夜,我就不多说啦。总之,知道HIVE能发“私信”,私信和Memo密钥相关,这些就足够啦。
(图源 :pixabay)
好了,现在你学会了使用这个功能嘛?要不要给O哥发一条私信来试试呢?
还有就是,我约刘美女去台北或者来东北的事,不要乱传啊,不然传到刘美女老公耳朵里,麻烦就大啦!😰