再论区块链不可篡改性
区块链目前对于普通百姓来说和p2p借贷基本算兄弟概念,这对于一个技术名词而言是可悲的。但更可悲的事情是,目前区块链也并没能有效的用于更好的地方,比如愿景中经常面描述的公证防伪,追溯货源。
一个最大的共识,99%涉及到数字货币的场景都是金钱游戏,我认为这点所有人心知肚明。无论是交易即挖矿,还是fomo3d,无数人捧着真金白银换废纸的盛况每天都在发生,我称此为‘反向民国’。
也无怪政府部门要封禁了。我身边的亲戚保守估计被不明数字货币骗掉的钱不下50万,不要笑,你可能也是那个被骗的‘聪明人’。不关注技术,满脑子快钱,是这个社会各行各业的原罪。而这个原罪对于一个新兴技术的打击毫无疑问是致命的。数字货币在中国的遭遇就是明证。
‘’区块链还没有诞生杀手级的应用。‘’
Hyperledger,TrustSQL,BaaS...许多试图发挥互联网精神和想象力的人试图抓住区块链的本质,交上一份不那么急功近利的答卷。但是千真万确,许多目前使用区块链的场景完全具备由其他技术代替的能力。
例如论文常客医疗系统+区块链,一个有签名的分布式数据库已经足够满足不同机构之间的数据互通和授权问题,区块链作为一种时间成本和经济成本同时很高的方案许多情况下都是最坏方案,甚至包括数字货币:以银行为例,传统数据库+防火墙真的未尝不可。
区块链创新和发展,其基础就在于认清区块链到底做什么行,做什么强;最优解是找到一个非区块链不可的场景。而这点就取决于区块链的特征。从其定义出发,第一类是根据区块链的历史,认为它是一种分布式系统搭载的账本。
这类论点强调uxto等区块链的金融实用特征,对智能合约尤其感兴趣。第二类则是从计算机的角度出发,认为它是一种特别的数据结构。这种结构依靠密码学的保证构建出了一种不可篡改的数据库。
无论哪种观点最后都会落脚在区块链最重要的特征上,不可篡改。这是区块链最大的特点,可能也是唯一的特点,决定了究竟什么场合应该使用这个技术: 巨大的成本,缓慢的速度,只为了提供信用。而且我们还必须意识到这个不可篡改性到底是什么逻辑,是一个字也不能改?还是能够改动一部分?
是的,区块链可以任意修改,但是修改的痕迹会被发现;对于单个交易记录/消息对,公私秘钥对签名是其内容的“证据”。对于单个区块,工作量证明是其内容的“证据”,上一个区块保存的hash是其证据。但是,区块链的不可篡改性还是有两个漏洞:最开始的第一个区块可以被修改;整个区块链可以被一起替换。
为了保证第二个问题不会出现,即区块链被整体替换,所以区块链系统会采取分布式系统的方式。如果由传统方式保存,则存在特定机构制作一个新区块链代替的可能性。但分布式系统的引入带来新的问题:p2p网络的拜占庭共识。换而言之,不可篡改性的第一个漏洞没有解决,第一个区块可以被修改。
为了保证目前的第一个区块不被更改,就应该确保在最新的区块生成之前,次新的区块有一个难以被破解的证据。这点上有一个较为巧妙的方式,时间,制作一个单纯从时间上难以破解的证据(同时也会难于生成),下个区块出现之前无法破解即可以达到“不存在第一个区块”的类似效果。因此POW成为了区块链共识最好的方式之一。
尽管区块链自身不可篡改,但是与区块链进行锚定的资产并不具有不可篡改性。同时,在外部资产信息输入区块链的时候,一方面难以保证原始信息真实性,另一方面如果输入错误也不可修改。关于区块链的价值传输和锚定能力是一个重要的课题。
为了确保不可篡改的特性,几乎注定了区块链高成本的特点。但由此给我们的启发是在于如下。判断一个区块链项目有没有前途,我认为就是在确保以上所有的不可篡改的基础上,是否能够降低经济成本和时间成本。
以dpos为例,超级节点可能会影响第二点,使得串通做出整体修改的风险提高。以pos为例,它无法有效的阻止第一个区块被修改,所以容易受到平衡攻击。如果一个偏向底层的区块链项目能在不可篡改性上做的更好,那么这个项目就是有意义的。