专栏名称: 申龙斌的程序人生
分享可繁殖的知识与技能:GTD时间管理、读书心得、个人成长、财富自由之路
目录
相关文章推荐
OSC开源社区  ·  深度实测Manus,我依然认为这就是AI ... ·  2 天前  
OSC开源社区  ·  Linux内核往事 ·  3 天前  
OSC开源社区  ·  听说技术大V们都被"manus"喂饱了,求邀 ... ·  4 天前  
51好读  ›  专栏  ›  申龙斌的程序人生

区块链上存证,只需这四步

申龙斌的程序人生  · 公众号  · 程序员  · 2018-08-28 21:03

正文

区块链具有许多特性(详见《 区块链技术在数字油田的应用构想 》),这些特性正在逐步应用于一些实际场景,虽然现在看来效率不高、操作不便,但它仍在不断进化和完善中。


区块链里的信息具有不可篡改性,比如中本聪在创世区块中写的一段话:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,用来讽刺中心化银行的困境。这种不可篡改性是把双刃剑,好处是写入的内容有时间戳,可以作为证据,坏处是如果写入了不合伦理的内容,也无法删除。

结合公开可查性和去中心化等特性,区块链可用于 存证 业务,当你的一件作品(画作、专利、文章等)被他人抄袭或侵权,你如何证明这件作品最早出自你之手?


现在你可以把作品生成一份签名,再保存在区块链上,当发生纠纷时可以作为重要的证据。现在类似的网站服务已经很多了,比如访问https://proofofexistence.com,拖入一份文件,再支付少量BTC,存证就完成了。


这种事情在我国也有成功案例了,2018年6月28日, 全国首例区块链存证案在杭州互联网法院一审宣判 ,法院支持了原告采用区块链作为存证方式并认定了对应的侵权事实。


当然也有人把情书或爱的誓言写在区块链上,比如下面这笔交易中隐藏着一封情书。

https://blockchain.info/block/0000000000000000016f615859ca5cb88bb3983777df6f9f5ecbd57261cad454


写这封信的人用一堆收款地址拼出了这封信,还花了0.00314159 BTC的手续费,看来不仅是黑客,还是个数学迷。信的内容是这样的:

“Dayah Dover, your personality is unmatched. Your intelligence justshines. You can do things few people can. And you’re always just gorgeous. You are really my entire world, givingmy life meaning and fun. Dayah, I love you.”


另外一种写入比特币的区块链的办法是利用OP_RETURN的功能特性,这个特性从2014年的0.9.0版本就引入了,曾经可以返回80个字节的内容,比特币的核心开发者认为这个功能可能会被滥用,可能会被写入太多与交易无关的内容,又限制在40个字节以内。



Bitcoin Core存证步骤


如果使用Bitcoin Core客户端,不用编程也可以在区块链里写上一些内容,当然需要会使用Bitcoin Core钱包,手里还要有一点点BTC。


第一步:listunspent

在Bitcoin Core的客户端输入listunspent命令,找出一笔未花费的BTC记录。

{

"txid": "709259267029aa453ed862baab542af46598518c7002bccd18a1eb3660e868de",

"vout": 1,

"address": "1Lyyh5SC4bm51hjyuKhG8D69WCJn4RXnT7",

"account": "",

"scriptPubKey": "76a914db3101ca50be7e128579e1c0da14af1e764c362688ac",

"amount": 0.00075062,

"confirmations": 32289,

"spendable": true,

"solvable": true,

"safe": true

}


第二步:createrawtransaction

这一步用于构建一笔交易,输入项就是刚才选好的txid和vout。

输出项的第一个参数是data,这里是将要写入的内容,需要把ASCII码转换为十六进制。随后需要一个输出地址和数量。

createrawtransaction '[{"txid":"709259267029aa453ed862baab542af46598518c7002bccd18a1eb3660e868de","vout":1}]'  '{"data":"4557207368656e6c6f6e6762696e","3FLiKnEipFW9kVZoWrPxGaT2LEo5vc9xFq":0.0007}'


如果构建成功,返回一串十六进制数值。

0200000001de68e86036eba118cdbc02708c519865f42a54abba62d83e45aa2970265992700100000000ffffffff020000000000000000106a0e4557207368656e6c6f6e6762696e701101000000000017a91495bac022b4431ae2f232e328e4dad52a1f9c3c9d8700000000


第三步:signrawtransaction

这一步需要把刚才的交易数据签名,需要用到钱包的私钥,先把钱包解锁一段时间,比如60秒。

walletpassphrase 'shenlongbin password' 60

然后运行签名的命令。

signrawtransaction ' 0200000001de68e860**********3c9d8700000000 '


签名如果成功,返回如下内容。


第四步:sendrawtransaction

把交易数据广播到全网络。

sendrawtransaction '0200000*************0000000'


整个过程对于明白比特币原理的程序员来说,并不太复杂,但对于普通用户来说相当有难度,有许多网站提供了类似的服务,比如搜索eternitywall。



我以前在发币的时候把最后一个数字拼接起来,也可以实现 区块链刻字 。有兴趣的朋友可以访问:

http://www.sxrzsd.com/html/lettering.html


用BTC进行存证的代价相对较高,现在出现了各种区块链,你完全可以把文章发表在steemit上,也有存证的效果,不仅不用花钱,如果文章写得好还可以赚点STEEM。







请到「今天看啥」查看全文