做什么
正如标题所讲,将自己想要纪念或者铭刻的话或图等事物保存在以太坊的区块链上。由于区块链的机制,刻上去的东西基本上是改不了的,因此我这里用的是电子纹身这个描述,但是实际上现实中的纹身还可以洗掉,而区块链上的基本上是”洗不掉“的。
为什么
从用户角度上来说,因为想要永久保存一件事或者记忆,这就是做这件事的缘由。
从方法上来说:
- 去中心化,保存到网盘上说不定公司跑路了,当然你也可以坚信大公司大而不倒,这取决于自己。
- 公正公开,区块链上的东西大家都可以查询到。
- 理论上来说,世界上只要有一台电脑保存了所有区块,那么电子纹身就不会丢。
我纹了什么
在以太坊区块查询网站 https://etherscan.io/
其他查询网站应该也行,但是貌似其他网站查询到的信息显示不全,这个网站可能需要科学上网
我的这次“电子纹身”的Transaction Hash为:
0x084fea0a1ddfc3408c3a874ad7a248335249980a2e789f531585f126381db8dc
在这个页面可以看到我的这次eth交易信息
这些基本都是交易双方的信息和费用,不是本文的重点。
而Input Data部分的信息才是我们的“电子纹身”。
那么现在来看我纹了什么
-
首先用UTF-8编码显示,可以看到,第一句是Long may the sun shine。这个是黑暗之魂中最喜欢的一句话,也很有积极的意义,所以记了下来。
-
把这个文字部分的十六进制字符串去除掉,剩下的用十六进制字符串保存下来,放在文件里,这里我文件名举例为 pic.hex,部分内容如下(看名字应该猜到了是个图片):
由于是十六进制字符,我要将其转换为十六进制,用到简短的代码如下:
import binascii
with open('pic.hex','rb')as f:
string = f.read()
hexdata = binascii.a2b_hex(string)
with open('recover.jpg','wb')as f:
f.write(hexdata)
可以看到,恢复出来的图片结果如下:
怎么做
- 使用www.myetherwallet.com网页钱包,因为其他钱包有些不支持添加额外数据,仅支持转账。如果已经是其他钱包又不想注册新的,可以直接使用网页钱包链接就行。例如我使用的metamask,在网页钱包里直接链接metamask就行了。
- 在Send Transaction部分输入目标地址,金额,以及自己准备支付的费用,并且在Advanced部分添加自己的数据,注意只支持十六进制,这就是为什么我的图片使用十六进制保存的。
- 然后支付确认成功后,就可以在eth区块链上查询到了。
注意事项
1. 目前在eth主网络上,交易手续费价格昂贵,如果仅仅是想尝试一下的话,使用eth测试网络玩玩就行。测试网络的步骤都差不多,有什么疑问可以在下面留言。
2. 如果想要在eth主网络上玩的话,在gas费用部分一定不能设置得太低,因为目前主网络拥堵,如果gas设置太低,矿工没有积极性,交易订单会处于长时间pending状态,而由于去中心化的原因,取消这笔交易也需要写到网络中,因此也需要手续费,反正就是很麻烦的事情,后续我了解更多了再来说说。
3. 如果处于pending状态了,后续的订单会处于队列中,无法进行,所以一定不要吝啬gas,但是也不要太高了,一般钱包会有一个推荐价位的。
总结和看法
- btc仅仅只是一个大家共识的虚拟货币,除此之外做不了其他的事情。而eth能够有智能合约,附加数据,去中心化应用(DApps)等等,前景肯定是很好的。
- 但是目前由于eth网络交易的拥堵,导致手续费异常高昂,这种发展严重地遏制了智能合约和DApps的发展,这个也是eth要大版本更新到2.0的原因。至于更新之后对eth看涨还是看跌,就见仁见智了。
- 理性投资,拒绝赌博!!