一、区块链的特点及应用趋势 作为区块链技术最有代表性的应用,近年来比特币的持续火爆使人们逐渐认识了区块链。区块链是指通过一定的共识机制建立分布式节点信任关系,基于密码学算法及独特的遗传式链状数据结构保证数据不被篡改和伪造,在多个分布式节点传递账本信息,通过链上参与节点确认的方式形成共识的一种分布式账本。它具有去中心化、去信任、集体维护和不可篡改的特点,但也有交易性能偏低、数据延迟、存储资源消耗大的缺点,基于区块链的技术特性,它适用于多方参与、价值链条长、沟通环节复杂、交易频次低的场景。《2018年中国区块链产业白皮书》指出,区块链已在金融服务、消费零售、医疗健康、政务服务等领域的数字资产、交易清算、供应链金融、征信、票据、资产托管、物流溯源、版权、投票、电子存证等方面得到应用。 按参与主体维度,区块链分为公有链、私有链和联盟链。公有链面向所有用户开放,任何人都可以成为节点参与记账,账本内容完全公开;私有链是在私有环境下写入,权限仅限于某个组织;联盟链是两者结合的产物,面向接入联盟的组织和企业,其节点准入需要由预选可信节点进行审核控制,节点网络与外部互联网隔离。笔者认为“完全去中心化”是实践区块链分布式思想的最高境界,但从实际的商业需求分析,联盟链则更适合于对隐私保护、交易速度和参与主体内部管理有更高要求的场景,能够更好满足市场主体对实际商业应用的落地要求,提升跨主体协作的效率,降低成本,并将在未来一段时间内获得更大的发展机遇。本文所述的区块链审计是基于私有链及联盟链所面临风险而开展的审计研究。 二、审计在区块链治理中的定位与价值 区块链技术是否可信?区块链上运行的业务和数据是否真实可靠?如何让利益相关各方在联盟链方式下能够足够了解和信任区块链?这是区块链更大规模推广及成熟应用需要解决,也是区块链生态规范治理亟待回答的问题。 审计是一种独立、客观的确认和咨询活动。从区块链生态治理角度来看,独立的公众审计角色将成为链上治理不可或缺的一环,公众审计的监督和披露有利于增进区块链参与各方的信息共享以及对区块链的信任;从区块链参与者角度来看,企业内部审计应关注本公司、供应商及客户所采用的区块链技术及其应用情况,识别区块链技术与现有业务流程的结合以及区块链设施与现有上下游系统之间的关系,缓释区块链技术的应用风险,护航企业的发展;从技术发展的角度来看,区块链所依赖的分布式存储、共识机制、不可篡改等技术并不完美,技术的不完美可能导致数据不可依赖,所以可通过持续的审计工作及反馈,降低区块链开发和应用过程中的技术风险,促进技术发展和完善。可见,审计的作用并不会随着区块链去中心化的实践大幅减弱,相反它的功能性和价值将随着区块链的发展而增强。 截至2019年底,与区块链相关的国际标准共计22项,主要是由国际标准化组织、电气和电子工程师协会、国际电信联盟三个国际组织提出。国内发布1项区块链国家标准、16项团体标准、13项行业标准。总体来看,目前与区块链相关的标准规范集中在基础概念、通用技术、场景应用等方面。审计领域当前更多机构侧重于探索运用区块链技术开展审计工作以及基于区块链的审计工具建设,而如何审计区块链,包括审计方法、程序和具体内容,尚未形成标准化或规范化的指引。 三、区块链审计的方法及内容 (一)审计的目标和策略 审计区块链的目标是对区块链及其应用的合理性、可靠性、合规性、安全性进行评价,获取足够且充分的证据,验证和评估区块链上数据和交易的真实性、完整性和准确性,给予区块链信息使用者信心。与传统审计不同,实施区块链审计的策略应包括: 1.关注区块链运行的控制设计与执行。区块链各类数据分布式存储于链式数据库中,按时间戳进行排序,数据由所有节点共同记录和存储,数据的完整和准确通过技术手段保障,设法控制51%的算力继而攻击全链的成本较高,单个节点的数据篡改无法改变全链的共识,因此针对区块记账结果的实质性测试可适当减少,应将区块链运行各环节控制的合理性和有效性作为测试重点。 2.关注“去中心”的中心单点风险。区块链的节点数量一定程度决定了区块链固有风险的大小,对于不同类型的区块链,应当采取差异化的审计方法。私有链和联盟链并非完全去中心化,对其开展审计有着更高的要求,审计实施过程中应当梳理和重点评估区块链可能存在的功能性中心节点,实施差异化的审计程序。 3.关注区块链应用场景与技术的结合。区块链是应用和数据库的结合,智能合约被嵌入到区块链中自动执行预先设定的商业规则,在区块链环境中“Code is law”,底层的商业协议、交易安排通过智能合约代码实现,一旦写入达到触发条件便可自动执行,因此需关注智能合约应用与现行法律法规的关系和遵循性、代码与业务逻辑的一致性、业务代码的变更控制等方面,重视应用控制审计。 (二)审计的方法和内容 首先,对区块链技术本身及其应用的具体场景展开风险分析;其次,基于风险分析结论,对区块链技术的基础架构、安全性以及可信性开展审计,判断其数据所依赖的基础系统是否可靠;再次,结合区块链应用的商业场景,从控制设计的适当性及执行的有效性两方面开展控制测试;最后,在完成基于架构及控制测试并获得数据可靠性保证的基础上,对区块链应用场景中的虚拟资产执行实质性测试。