【区块链知识】以太坊:不可窜改的匿名公共通讯软体
在上一篇文章中我们讨论了如何在区块链上发送文字讯息,但老实说就算是侧链或L2 ,谁没事会为了发文付出一堆手续费,我是这么想着,于是在找资料的时候意外发现了一篇Medium 上的文章,讲述关于区块链上文字讯息种类与用途,我觉得很有启发就想来分享一下,会加入我的一些阅读感想,不会完全照着原文走,该原文的出处网址是: https://medium.com/etherscan-blog/ethereum-the-messaging-app-51423e16061f
延伸阅读: 【区块链知识】代价昂贵的区块链聊天室? !
作者将这种透过钱包与世界交流的方式分成三大类:
1. Input Data Messages (IDMs)
2. Non-Standard IDMs
3. Verified Signatures
IDMs | Etherscan 开发好的IDM 追踪工具
在开始之前我想先介绍个小工具,是由Etherscan 开发的工具,让我们可以透过钱包地址来查询链上的IDMs,就像是在查询交易或区块那样方便,网址可以参考: https://bi.etherscan.io/
左上角的地方可以输入地址,追踪后下方的表格就会是该钱包发出过的IDMs。
而若您没有接触过区块链浏览器,也可以参考之前写的这篇文章研究研究: 【区块链知识】我用一万块买了最后一个Traveloggers | 区块链浏览器
一、Input Data Messages (IDMs)
IDM 就是上一篇文章提到的方式,大致上在做的事情是我们可以在一笔交易内放入一些由文字转换的十六进位Binary data 作为IDM,发送这笔交易到区块链的同时,文字就顺利地被放到区块链上了!
作者在这里举了实际上在链上出现的五大种类IDM 使用场景,还蛮有意思的:
1. Transaction receipts/notes
例如使用Anyswap 跨链桥将资产在两个链之间交换时,Anyswap 会在发送给用户的交易中将另一个链的交易纪录转换为IDM 的形式,这样类似笔记或收据的功能,使用者只要复制该笔Hash 就能到另一个链的浏览器上直接搜寻到该笔存款纪录。
Anyswap 在Etherscan 上的参考网址、Anyswap 的IDMs 参考网址。
2. Description of properties (in JSON)
这大概就是把一些给智能合约要使用的验证讯息或是log 档之类的放到区块链上吧,可以参考原文附上的网址。
实际上拿这个钱包去IDMs 的小工具查询后发现,这个钱包看起来每天都会发送一笔json 格式的资料作为纪录,虽然不能确定它真正的用途,但可以推测这些内容应该是要对已注册的智能合约进行日常验证。
3. Crypto begging
这个东西很好理解,就是加密版的乞讨文,一般在路边乞讨你大概只能跟路人乞讨,几乎不可能有机会可以向那些有权有势的人乞讨,但由于我们能知道那些加密大佬的钱包地址,所以区块链乞讨可以直接发送讯息给他们,一想到就觉得超酷的啦!
4. Advertising
利用IDM 来发送广告讯息,这个跟加密乞讨的概念有点相似,可以向日常不可能接触到的人们推拨发送广告讯息。
另外如果要推一个新的协议或专案,由于区块链上的交易纪录都是公开透明的,我们很容易就能捞出竞争对手的用户,并且直接发起广告攻击或是空投代币给他们(传说中的吸血鬼攻击),会是一种很棒的行销手段,就像当初Sushiswap 对上Uniswap;LooksRare 对上OpenSea 的精采好戏。
5. Conversations
发起一个双边沟通对话,在原文中提到的故事相当有意思,两个套利的竞争对手彼此是从未见面过的陌生人,但却透过钱包传递IDM 的方式,只花了30 条讯息交流就能变成合作关系,这在现实世界实在是蛮难做到的,因为你甚至不知道你的竞争对手是谁,如何联络到他。
这张图的大意大概是:
交易机器人A:嘿,兄弟!我知道我们是竞争对手,但是再这样竞争下去谁都赚不到钱,不然你别跟我争了,未来每次赚到的钱我都分你一半。
交易机器人B:给我个方式让我可以相信你,这样我可以放弃竞争,甚至可以彼此合作。
交易机器人A:其实很简单,如果你先放弃下一轮竞争,我会直接把赚到的钱分你一半,这样你就可以知道我有没有守信了,之后我会写一个新的合约把你应得的那一半获利自动发送给你,到时候也会发布程式码让你验证内容。
交易机器人B:好,我会暂停下轮的交易。我会帮你看看有没有新的竞争者,而你所有交易所花费的Gas 我也能帮你分担一半!
后续就是交易机器人A 写了一段智能合约,让分对方一半获利这件事自动化,他还发了一条IDM,内容为该合约的程式码。
这里附上他们对话的IDMs 网址连结。
二、Non-Standard IDMs
这里指的是非标准的IDM,也就是我们无法透过UTF-8 编码直接转译出原文,通常会需要额外的工作去解码让它变成人类看得懂的文字讯息。
1. Encrypted messages
这种讯息是已经先被加密过了,透过区块链公开透明结合密码学的技术,拥有私钥的人才能将该笔讯息解码出来。
这里先附上该笔交易纪录的网址连结。
2. Event logs
看起来是对某个东西所发生的事件储存成记录档的形式,但我实在看不太懂它的例子,如果照字面的意思来看的话就是THORChain 的攻击者发送讯息给它要攻击的目标,这笔讯息需要读入六笔不同交易纪录的IDM,接着把他们由16进制格式转换为文字档? !
原文有附上一个网址在讲述当时被攻击时的内容,可以参考看看。
3. Bytes
这个就相对容易理解了,前面说过IDM 是透过UTF-8 的编码方式将文字转换成Binary data,若将这些Binary data 视为文字的话,不就可以再次转换成Binary data 了吗?
举个例子,假设要输出文字「hello」的话,经过一次转换可以变成「68656c6c6f」,以「68656c6c6f」作为文字再次转换就会变成「36383635366336633666」,而这个结果又可以让我们再次转换….
总之,对于接收的人而言,只要传送的人告诉你他转码了几次,我们只要反过来进行转码就可以看到原文了哦!
转码的小工具可以参考这个网址。
三、Verified Signatures
这是一种验证机制不会存在区块链上,发送讯息者透过钱包的私钥对该笔讯息进行签章,借以证明这个讯息确实是这个钱包地址所发出的。
而这些签章验证过的讯息可以透过Etherscan 或MyCrypto 之类的工具来进行讯息验证签名或浏览过往纪录,网址分别是:
Etherscan: https://etherscan.io/verifiedSignatures
MyCrypto: https://app.mycrypto.com/verify-message
使用验证签名(Verified Signatures)与IDM、Non-IDM 最大的差异就是不需要有一个目标地址让你发送讯息过去,也不需要上链,这样就不会因为要发送一笔交易而产生费用。
签名验证最有趣的就是在它的用途,大致可以分成:
1.验证社群媒体上的帐户讯息
2.验证钱包地址的所有权是本人
3.在快递服务中作为货物交付时的签章
4.验证钱包地址并寻求交易所帮助
5.发布智能合约的许可证
……
反正还有很多应用啦,有了这套验证工具以后,要怎么使用就看大家的创意发挥了。
看完这篇文章后我其实蛮受到启发的,在以太坊或是其他区块链上除了可以让我们在上面发行代币与NFT、发布一些智能合约进行DeFi 服务、建立一些去中心化自治组织等等功能,现在可以说我们又多了解了它也可以拿来当作文字讯息传递与验证的功能,目前这方面的资讯很少,也许未来会有人想到可以把它拿来做出一些更有意思的应用,使其发挥更大价值。
最后,谢谢你在百忙之中愿意抽空来花时间来看我的文章,如果还喜欢这些内容的话希望能获得你的追踪及小额赞助支持,让我更有继续写下去的动力,EVM 兼容钱包地址为0xae1dd06d57f582999a9c50b86ba913eecd7155ce。
也欢迎加入Line 社群或Telegram 群组一起讨论相关话题
我们下次见噜o((>ω< ))o~
原文连结ITechNote 科技随笔
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐