
區(qū)塊鏈與熱點新聞
如果你關(guān)注前幾日的熱點新聞(當(dāng)前時間: 2018年04月26日),可能會聽說以太坊有了一個重要的落地實踐谎痢,記錄不允許討論的內(nèi)容棋返。
區(qū)塊鏈這種匿名+不可篡改的特性的確也非常適合這樣的場景,一開始這樣的特性僅僅用于記錄貨幣交易蒸甜。比如比特幣盡管擁有記錄文字的能力棠耕,當(dāng)時的構(gòu)想也只是為了交易本身的備注信息。
但是隨著區(qū)塊鏈的發(fā)展柠新,智能合約出現(xiàn)了窍荧。人們漸漸也想把區(qū)塊鏈應(yīng)用于各行各業(yè),區(qū)塊鏈上記錄的東西就不僅僅表示某個交易的備注恨憎,而是被賦予更實際的業(yè)務(wù)場景含義蕊退。
比如,在這次的熱點新聞里憔恳,區(qū)塊鏈就像是個匿名論壇瓤荔,這個論壇上記錄的文字無法得知是誰記錄的,也不能被輕易銷毀钥组。這樣的技術(shù)讓一些能力不足的惡人慌了神输硝,刪帖不再像在知乎和微博那樣容易。
畢竟這是一篇正經(jīng)的技術(shù)文章程梦,那么簡單聊聊以太坊區(qū)塊鏈上信息記錄的幾種方式点把。
區(qū)塊鏈信息記錄
記錄在交易里
本次的熱點新聞中,信息是被記錄在了交易中屿附,像這樣:

圖中的信息就是一個以太坊交易所包含的信息郎逃,其中最后一項輸入信息(Input Data)就是每次交易的時候我們可以自定義的信息。當(dāng)這個交易被打包進區(qū)塊進入?yún)^(qū)塊鏈后挺份,交易里的這個信息自然永久存儲在了區(qū)塊鏈上褒翰。
這個具有歷史紀(jì)念意義的交易哈希值是:0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2,你可以在以太坊平臺上查詢到這個交易。
如果你不會查优训,那就點擊這個URL吧:https://etherscan.io/tx/0x2d6a7b0f6adeff38423d4c62cd8b6ccb708ddad85da5d3d06756ad4d8a04a6a2 错邦。這個交易的信息是以Unicode-8編碼的,如果你想查看原始信息型宙,可以點擊一下信息下方的<Convert to UT8>
,就能看到原始信息:

擔(dān)心被刪帖所以貼個小小的
事實上伦吠,當(dāng)你用一些以太坊錢包的時候妆兑,并沒有提供給你寫入信息的接口,畢竟信息過多只會增加礦機的負(fù)擔(dān)毛仪,你就需要支付更多的Gas費搁嗓。Gas費你可以理解為手續(xù)費,就如同你做飯使用燃?xì)庑枰蝗細(xì)赓M一樣箱靴,礦工們?yōu)槟愎ぷ鞔鎯π畔⒆匀灰惨@得相應(yīng)的報酬腺逛。
在上面的交易中,交易的發(fā)起人和接收人是同一個衡怀,發(fā)送金額是0棍矛。如果你想在區(qū)塊鏈寫入信息,也可以這么做:自己發(fā)送給自己0個以太幣抛杨。這樣只需要支付少量Gas費即可寫入信息到區(qū)塊鏈上够委。
由于很多人不太具備開發(fā)能力,所以最近也出現(xiàn)很多提供這種服務(wù)的小工具怖现。但是使用這些小工具的時候千萬要謹(jǐn)慎茁帽,我查閱了其中一些工具,他們發(fā)起的交易是你向他們支付xx金額的以太幣屈嗤。這里推薦一位大佬前輩開發(fā)的小工具:http://dapdap.io/#/onChain 潘拨,這個工具可以無需使用賬戶就能夠在區(qū)塊鏈上寫入信息,像這樣:

畢竟每次寫入信息是需要支付Gas費的饶号,所以這個交易是在以太坊公開的測試鏈ropsten
鏈上進行的铁追,讓我們愉快地把前輩賬戶上的錢花光吧!
記錄在合約里
以太坊的賬戶實際上是分為兩種:普通賬戶和合約賬戶茫船。普通賬戶就是上述提到的這些賬戶脂信,跟比特幣賬戶的性質(zhì)是一樣的。合約賬戶存儲的其實就是一段代碼透硝,我們可以用自己的賬戶和合約賬戶發(fā)起交易狰闪,進而調(diào)用其某個接口,從而實現(xiàn)特定功能濒生。
前面我們提到的ERC20代幣就是使用合約賬戶發(fā)行的埋泵。合約賬戶本身可以公開代碼(也可以不公開),對于公開的代碼我們就能審查其合約是否真實,而非欺詐丽声。
這個就是EOS的合約賬戶:

合約本身有一部分接口可以被指定為只讀的礁蔗,這些接口不會改變合約的狀態(tài),僅讀取合約本身的數(shù)據(jù)雁社。這樣的好處是調(diào)用這些接口無需對合約賬戶發(fā)起交易浴井,因此無需支付Gas費就能查詢。
利用智能合約的特點霉撵,我們可以很輕松搭建一個匿名論壇合約磺浙。在存儲信息的時候只需支付少量Gas費,在讀取信息的時候是免費的徒坡。相比于把信息存儲在交易中撕氧,這樣的方式可以擁有更加強大的功能。