关键词:
政府采购
智能合约
智能合约预言机
IPFS
摘要:
政府采购是指国家各级政府依法在规定范围内,以公开招标的方式,使用财政性资金购买货品、工程或服务的行为。随着互联网应用的普及,目前我国已经使用电子化政府采购平台来代替传统的纸质采购方式。电子化政府采购平台虽然解决了传统政府采购方式中对于人力物力的浪费并提高了采购效率,但其在执行招投标流程以及履行合同中内容时,依赖于人的决策以及可能出现差错的数据,因而会发生由于人为理解的偏差而导致招投标流程以及合同的执行过程出现差错的问题。智能合约是交易双方预先定义好的、采用区块链技术实现的计算机化合同,在指定的条件下触发后,智能合约严格按照预先定义的流程去执行操作,避免了因人为因素导致的差错,同时区块链的分布式特性能够解决中心化服务器面临的安全问题。本文中将政府采购过程中确认投标人资格、在规定时间进行开标等行为设计并实现成为智能合约,由智能合约预先指定的条件进行判断执行。将退还投标保证金、政府单位向供应商付款等操作按照采购过程进行状态以及时间作为触发条件实现为智能合约,并实现投标资格认证智能合约。具体实现过程为:通过secp256k1哈希运算以及ECDSA椭圆曲线签名算法实现基于联盟链的供应商身份认证过程,将供应商的真实身份信息与区块链中账户地址进行绑定。基于***编写政府采购系统的前端页面,与政府采购智能合约进行交互。实现政府采购中开标、评标、定标等流程,并编写基于供应商投标资格验证以及指定时间开标的智能合约。在确认中标人后,资产转移智能合约通过联盟链中信任节点提供的参数以及指定的时间节点为触发条件,拥有不同身份的以太坊账户可以向合约账户进行转账或取款操作。系统智能合约部分使用solidity语言进行编写,前端页面使用***、html、css语言进行开发,基于truffle框架进行设计实现。智能合约触发条件的真实性决定了智能合约的执行结果是否正确,本文使用chainlink智能合约预言机从区块链外获取ETH汇率等与政府采购智能合约相关的真实数据。以太坊智能合约的实现基于区块链技术,尽管区块链技术能够保证数据不被恶意篡改,但与传统的中心化数据库相比,其存在交易费用昂贵、存取速度低下等缺点,并不适合作为数据库进行数据存储。IPFS(星际文件系统)是一个能够对数据永久并分散存储、点对点文件传输的分布式文件系统。本文设计将政府采购智能合约底层区块链与IPFS分布式文件系统、Mongo DB数据库相结合,将招标文件、投标文件模板等文件在IPFS中进行存储,方便用户下载查看等操作,而区块链中存储IPFS中文件对应的Hash值并用于验证。在政府单位上传招标信息时,将招标信息同步存储在Mongo DB分布式数据库,供应商对招标信息的查看操作在Mongo DB中进行,减少了访问区块链中数据时造成的不必要开销并提高查询效率。最后,在本地私有链ganache-cli中部署智能合约,并进行功能测试以及漏洞测试。经测试符合预期要求,最后将智能合约部署在Rinkeby以太坊测试网络,可以供其他智能合约开发人员进行测试及使用。