阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

为什么区块链不拦住我篡改数据

发布时间: 2020-07-07 17:24:37文章作者: 网站编辑阅读量: 196
  有人会问:“为什么区块链不能立刻发现、并且阻止我篡改数据?也许我只是无意手误呢”。坦率说,这有点对区块链期望过高了。
  
  区块链系统并非无所不能,也不会包办一切,区块链并不会阻止用户对自己的服务器、软件、数据库等施加操作,就像法律不能也不应去阻止你打碎家里的杯子一样。
  
  本质上,区块链的一致性、难以篡改性是面向“全局”的,是由多方博弈和协作达成的,当链上交易牵涉错误数据时,共识机制可以检测并拒绝已被篡改的数据,保证链上剩余的大多数健康节点继续共识出块。而节点本地不参与共识的数据,共识机制鞭长莫及。
  
  那么,区块链为什么不能主动检测和纠正错误,保证每个节点上的数据一致性?首先,链上的数据非常庞杂,用户直接登入数据库手动修改少量数据,区块链节点并不知道哪一条数据被修改了,无法触发检查。
  
  如果区块链系统定期巡检所有数据,并将所有数据和其他节点进行比对,可想而知,这样做的话,网络、磁盘和计算开销会非常大。
  
  关键是,这并不解决问题,因为从数据被篡改后到检测出来的时间窗里,哪怕脏数据只存在了几十毫秒,但这时如果不幸有应用来查询数据,依旧会得到篡改后的结果。对要求苛刻的业务来说,事后检测未必是最佳选项,因为有可能已经造成了业务损失,届时能做的最多就是告警和冲正了。
  
  当然,也可以结合数据库的操作监控、binlog 等辅助机制,加速响应速度和检测效率。方法还是有的,如上所述,只是性价比较低,也不彻底解决问题,只有对数据修改极其敏感,且业务上接受延时发现和修订的特定场景,才会考虑将其作为补救措施。我们把这部分归类到运营管理工具里,根据场景需求来实现。
  
  还有一种方法,可以部分解决查询问题:f+1 查询。即查询数据时,无论是查区块数据,还是合约的状态数据,不妨多查几个节点,查询节点数多于 f 即可。
  
  如链上有个 7 个节点时,f=2,用户查询自己节点之外,继续发出网络请求去查询其他机构的 2 个节点,共查询 3 个节点,如果得到的数据都是一致的,则表示数据一定是正确的,反之,一定是这 3 个节点里出了问题。
  
  为什么区块链不拦住我篡改数据
  
  但是,要执行 f+1 查询,前提是其他机构开了查询接口权限,让你连接上去查询。在很多安全防护严密的联盟链上,一般只打开节点之间 P2P 互联的网络端口,不会轻易给其他机构提供数据查询权限。再则,在网络上发起多次查询,其异步性、时效性、成功率和性能表现都会带来更多变数。
  

  综上所述,对节点本地的数据,就像打地鼠,冒头的(发出交易参与共识,或进行 f+1 查询),区块链全局共识和容错机制能发现,没有冒头仅蹲在用户硬盘里的,只能用户自己负责了。

区块链面临的挑战

  区块链面临的挑战
  
  从实践进展来看,区块链技术在商业银行的应用大部分仍在构想和测试之中,距离在生活、生产中的运用还有很长的路,而要获得监管部门和市场的认可也面临不少困难,主要有:
  
  (一)受到现行观念、制度、法律制约。区块链去中心化、自我管理、集体维护的特性颠覆了人们生产生活方式,淡化了国家、监管概念,冲击了现行法律安排。对于这些,整个世界完全缺少理论准备和制度探讨。即使是区块链应用最成熟的比特币,不同国家持有态度也不相同,不可避免阻碍了区块链技术的应用与发展。解决这类问题,显然还有很长的路要走。
  
  (二)在技术层面,区块链尚需突破性进展。区块链应用尚在实验室初创开发阶段,没有直观可用的成熟产品。比之于互联网技术,人们可以用浏览器、APP等具体应用程序,实现信息的浏览、传递、交换和应用,但区块链明显缺乏这类突破性的应用程序,面临高技术门槛障碍。再比如,区块容量问题,由于区块链需要承载复制之前产生的全部信息,下一个区块信息量要大于之前区块信息量,这样传递下去,区块写入信息会无限增大,带来的信息存储、验证、容量问题有待解决。
  
  (三)竞争性技术挑战。虽然有很多人看好区块链技术,但也要看到推动人类发展的技术有很多种,哪种技术更方便更高效,人们就会应用该技术。比如,如果在通信领域应用区块链技术,通过发信息的方式是每次发给全网的所有人,但是只有那个有私钥的人才能解密打开信件,这样信息传递的安全性会大大增加。同样,量子技术也可以做到,量子通信——利用量子纠缠效应进行信息传递——同样具有高效安全的特点,近年来更是取得了不小的进展,这对于区块链技术来说,就具有很强的竞争优势。

联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠