区块链与热点新闻
如果你关注前几日的热点新闻(当前时间: 2018年04月26日),可能会听说以太坊有了一个重要的落地实践,记录不允许讨论的内容。
区块链这种匿名+不可篡改的特性的确也非常适合这样的场景,一开始这样的特性仅仅用于记录货币交易。比如比特币尽管拥有记录文字的能力,当时的构想也只是为了交易本身的备注信息。
但是随着区块链的发展,智能合约出现了。人们渐渐也想把区块链应用于各行各业,区块链上记录的东西就不仅仅表示某个交易的备注,而是被赋予更实际的业务场景含义。
比如,在这次的热点新闻里,区块链就像是个匿名论坛,这个论坛上记录的文字无法得知是谁记录的,也不能被轻易销毁。这样的技术让一些能力不足的恶人慌了神,删帖不再像在知乎和微博那样容易。
毕竟这是一篇正经的技术文章,那么简单聊聊以太坊区块链上信息记录的几种方式。
区块链信息记录
记录在交易里
本次的热点新闻中,信息是被记录在了交易中,像这样:
图中的信息就是一个以太坊交易所包含的信息,其中最后一项输入信息(Input Data)就是每次交易的时候我们可以自定义的信息。当这个交易被打包进区块进入区块链后,交易里的这个信息自然永久存储在了区块链上。
这个具有历史纪念意义的交易哈希值是:0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2,你可以在以太坊平台上查询到这个交易。
如果你不会查,那就点击这个URL吧:https://etherscan.io/tx/0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2 。这个交易的信息是以Unicode-8编码的,如果你想查看原始信息,可以点击一下信息下方的<Convert to UT8>
,就能看到原始信息:
担心被删帖所以贴个小小的
事实上,当你用一些以太坊钱包的时候,并没有提供给你写入信息的接口,毕竟信息过多只会增加矿机的负担,你就需要支付更多的Gas费。Gas费你可以理解为手续费,就如同你做饭使用燃气需要交燃气费一样,矿工们为你工作存储信息自然也要获得相应的报酬。
在上面的交易中,交易的发起人和接收人是同一个,发送金额是0。如果你想在区块链写入信息,也可以这么做:自己发送给自己0个以太币。这样只需要支付少量Gas费即可写入信息到区块链上。
由于很多人不太具备开发能力,所以最近也出现很多提供这种服务的小工具。但是使用这些小工具的时候千万要谨慎,我查阅了其中一些工具,他们发起的交易是你向他们支付xx金额的以太币。这里推荐一位大佬前辈开发的小工具:http://dapdap.io/#/onChain ,这个工具可以无需使用账户就能够在区块链上写入信息,像这样:
毕竟每次写入信息是需要支付Gas费的,所以这个交易是在以太坊公开的测试链ropsten
链上进行的,让我们愉快地把前辈账户上的钱花光吧!
记录在合约里
以太坊的账户实际上是分为两种:普通账户和合约账户。普通账户就是上述提到的这些账户,跟比特币账户的性质是一样的。合约账户存储的其实就是一段代码,我们可以用自己的账户和合约账户发起交易,进而调用其某个接口,从而实现特定功能。
前面我们提到的ERC20代币就是使用合约账户发行的。合约账户本身可以公开代码(也可以不公开),对于公开的代码我们就能审查其合约是否真实,而非欺诈。
这个就是EOS的合约账户:
合约本身有一部分接口可以被指定为只读的,这些接口不会改变合约的状态,仅读取合约本身的数据。这样的好处是调用这些接口无需对合约账户发起交易,因此无需支付Gas费就能查询。
利用智能合约的特点,我们可以很轻松搭建一个匿名论坛合约。在存储信息的时候只需支付少量Gas费,在读取信息的时候是免费的。相比于把信息存储在交易中,这样的方式可以拥有更加强大的功能。