1、一致性问题 一致性问题是分布式存储系统一个比较难解决的问题,通常这一个环节起容灾备份功能,同步操作大多放在“闲时”,是一种后台操作。区块链采用“前置”的同步操作,当一个块生成,块链的更新需要所有副本完成内容一致的复制。如果内容存储在块内,那么更新的数据量为更新的内容乘以副本的数量,再加上副本间的传输距离和带宽,整个操作是耗时的,整体的效率体现在系统中最长的同步时间,如图。 因此采用这种方式,将影响对高频应用的响应,例如诸多的交易场景。所以解决一致性问题的办法一是控制更新内容的大小,二是限定副本的数量。比特币系统的实现是采用前者,私有链是应用了后者。

3、 智能合约的衔接 智能合约的核心是利用程序算法替代人执行合同,从这个概念上理解合约的执行可以类比“支付宝”。当买家和卖家在淘宝网达成了某笔交易,钱货两讫将按照支付宝程序执行,买卖双方更多是配合程序执行的贯彻。因此,智能合约的前提就必须是签订的交易在执行前不能被篡改。区块链因此成为智能合约在去中心环境下的天然基石,该机制保证了智能合约执行程序前能得到“原汁原味”的合约。 通常对智能合约的“触发”有两种自然的解决方式,模式A和模式B,如图。前者通过数据本身的内容形成触发事件来驱动智能合约的执行,因此在执行之前需要验证数据内容和哈希值是否匹配。如果不匹配,就意味原始数据被篡改后续需要匹配容灾恢复机制。而采用模式B,则需要智能合约实现对哈希值的解读。如果说降维哈希是“压缩”,那么与智能合约之间的衔接就需要执行“解压”,需要从数字串列的特征值上进行解读,实现执行算法的“事件触发”。因此,区块链和智能合约的应用需要对数字资产内容进行标准化,通过标准的组件配置实现资产从注册、确权、转移等功能的量身定制。
