基于以太坊的数据交易平台制造技术

技术编号:20449583 阅读:25 留言:0更新日期:2019-02-27 03:22
本发明专利技术提出了一种基于以太坊的数据交易平台,包括数据提供方(卖方)和数据需求方(买方)。以太坊是一个开源的具有智能合约功能的公共区块链平台,数据提供方和数据需求方通过以太坊节点加入到交易平台的底层以太坊平台中,用户双方通过操作自己的以太坊节点,在以太坊平台中通过智能合约完成交易过程。数据交易平台通过以太坊平台的智能合约实现交易规则的制定,数据提供方通过智能合约注册所提供的数据的描述信息,并将其保存在区块链上;数据需求方通过智能合约查询当前平台中已经注册的数据信息,选择自己想要的数据进行交易;买家、卖家双方通过智能合约完成交易流程。数据交易平台引入IPFS系统作为源数据的存储系统,IPFS是一个点对点的分布式版本文件系统,它提供了极大的存储空间,节点间拥有极快的下载速度,同时保证了数据的安全性。由于区块链去中心化、匿名性、不可篡改的特点,本发明专利技术的数据交易平台没有第三方控制机构,解决了交易数据存储的安全问题,保证了参与用户的个人隐私安全,且交易记录是永久保存的,数据交易平台具有可追溯性。

【技术实现步骤摘要】
基于以太坊的数据交易平台
本专利技术属于互联网
,涉及一种数据交易平台,特别是涉及基于区块链和IPFS的数据交易平台。
技术介绍
近几年来,随着互联网的高速发展和信息技术的普及应用,各个行业和机构所产生的数据呈爆炸性增长,但是在数据量呈几何级数增加的同时,大型企业对数据的垄断和机构间信息孤岛的情况也亟待破局。“将数据交换起来”,这背后蕴含着巨大的生产效率提升空间和商业价值,于是产生了数据交易市场。目前,国内数据交易平台根据功能与定位、平台运营管理、以及相关交易规则的制定情况可以简单划分为两类:一类是作为交易过程中的第三方中介,其定位是数据提供方和数据需求方的中介,其功能比较清晰,只提供交易的场所,数据提供方上传数据至第三方平台,数据需求者通过第三方平台查询数据并付出代价获取;另一类的交易平台更多的是为用户提供处理数据的服务,这类平台往往是和数据拥有者、技术平台合作,对原始数据进行清洗、脱敏、加工,最终指向特定的应用场景或者形成可视化的数据产品。这两种类型的平台的划分界限并不是完全明确的,许多交易平台是二者的整合,只是在业务平台的搭建中有所侧重。由于这些数据交易平台都有“数据沉淀”的行为,即原本数据交易平台自身是没有数据的,通过代理销售数据源的数据,销售一条缓存一条,慢慢就形成一个较大规模的缓存数据库。这种行为,会导致发生严重的数据泄露问题,很多数据交易平台的安全意识较薄弱,缓存数据库容易被黑客窃取,造成数据泄露。
技术实现思路
本专利技术的目的是提出基于以太坊的数据交易平台,提供一个保障数据隐私和安全、保护个人隐私、去中心化的数据交易平台,保护了数据交易参与方的数据安全和隐私信息,同时交易记录不可篡改且可追溯。为解决上述技术问题,如图一所示,本专利技术提供的数据交易平台包括参与交易的用户节点,以及区块链系统模块(以太坊)、数据传输模块(IPFS)、控制模块(Node.js);在以太坊平台中完成用户节点之间的交易与通信并记录交易,通过IPFS完成数据传输,使用Node.js给用户提供操作交易行为的环境。所述区块链系统模块采用以太坊平台搭建,参与交易的用户通过以太坊节点连接进入以太坊网络,在以太坊中完成交易,分为区块链交易模式和智能合约两个部分。区块链系统中的交易,利用区块链不可篡改和去中心化的特点实现了用户间交易记录的永久保存和不可篡改,同时解决了平台沉淀数据的问题:a)不可篡改:区块链系统模块中,每产生一次交易,就会将交易记录写入链中,且不可篡改重写。这是由于区块链里的每个块都存储有前一个块内容的哈希值,如果有任何块的内容被篡改,被篡改的块之后所有块的哈希值也会随之改变,这样我们就很容易检测出区块链的各块是否被篡改了。所以数据交易平台中的每一笔交易的记录都是保存在区块链上的,并且这些交易记录是不可篡改的。b)去中心化:区块链系统就是点对点的连接,中间无需第三方服务器,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。区块链系统只记录交易数据集的描述信息和交易记录,用于交易的数据集hash通过智能合约直接发送给数据需求者。因此数据交易平台只是为参与交易的用户提供一个作为中介的交易场所,平台中不存在中心化的机构或数据库,且平台自身并不存储沉淀数据。区块链系统模块中的智能合约,用于制定数据交易平台的交易规则,智能合约允许在没有第三方的情况下进行可信交易,这些交易可追溯且不可逆转。在所述数据交易平台中,买卖双方通过以太坊的智能合约来完成交易的流程。这里使用Solidity语言来编写业务逻辑/应用代码(智能合约),然后将合约代码编译为以太坊字节码,并将字节码部署到区块链上。在所述数据交易平台中,这里编写了三个部分的合约函数:a)数据集注册函数:数据提供者通过调用该函数接口,按照平台定义的格式上传所提供的数据集的描述信息。b)交易函数:用户之间采用订单的模式完成交易,模块中定义了订单的模型,从建立订单到确认订单、锁定订单、完成订单的流程。c)数据传输函数:数据提供者将数据上传至IPFS获取的hash值上传至智能合约,数据需求者通过该函数获取。进一步的,本专利技术所述的数据传输模块是为了解决大数据文件的传输,以太坊对于大型数据文件的传输存在两个问题:一是由于区块链存储空间有限,在以太坊上存储大型数据集十分昂贵,以太坊每一笔交易都会根据数据大小计算手续费gas,一个256kb的数据手续费可达到7599992(0.3以太币,即当前市值188美元);二是由于以太坊虚拟机的限制,一个块可以使用的gas是有上限的,这个值是7984452(0字节消耗4个gas,非0的字节消耗68个gas,每个交易要支付21000个gas),一旦gas超出上限,交易是无法创建的,经计算得出超过256kb的数据就无法创建交易。本专利技术采用去中心化的IPFS作为数据文件的存储系统,IPFS将上传的文件内容经过哈希算法算出一个hash值,通过该hash值在分布式哈希表中查询到该文件并下载下来;本专利技术将IPFS的API与数据交易平台的底层区块链系统以太坊连接,数据提供者通过将数据上传至IPFS获取hash值,再经过以太坊点对点传输给数据需求者,数据需求者获取hash值,并通过IPFS下载源数据。所述数据交易平台的控制模块用于给用户提供便利的操作环境,控制模块选择Node.js环境搭建。采用Node.js中的web3模块与以太坊平台连接,使用web3.jslibrary提供的web3对象去实现对交易行为的控制。底层实现上,它通过RPC调用与本地以太坊节点通信,web3.js可以与任何暴露了RPC接口的以太坊节点连接,从而可以与以太坊交互。进入交易平台的用户通过自己的web3对象去连接到自己的以太坊节点,连接成功后,使用Node.js的JavaScript环境对自己的以太坊节点在以太坊平台中的交易行为进行操作,通过JavaScript控制台进行命令操作。同时,本专利技术通过web3对象使用watch()方法,编写了一段代码对智能合约中定义的交易事件进行监听;底层以太坊平台中交易流程的每一步的交易发生,参与交易的用户都会通过web3对象实时监听到,对交易事件进行实时操作。所述数据提供者注册上传数据集信息的步骤如下:a)用户按照平台定义的数据信息格式,组装所提供的数据集描述信息,通过以太坊节点调用智能合约上传数据集信息。b)以太坊智能合约进行数据记录,将数据集信息存入合约存储空间,每一份上传的信息会通过一个序列号ID来标识,以便查询,并且每上传一次数据集信息,以太坊会根据共识算法(工作量证明)挖矿产生新的区块。数据需求者进行数据查询并发起交易的步骤如下:a)用户通过以太坊节点调用智能合约查询接口,查询目前已经注册的数据集信息b)智能合约根据函数功能,按照序列号ID顺序依次返回数据集信息c)用户选择数据集,通用智能合约建立交易订单的函数接口,选择数据集序列ID发起交易。买卖双方交易的步骤如下:a)数据需求者(买家)选择可查看的数据集的序列号ID建立订单。b)建立订单后,买家支付数据集价格的2倍资产至智能合约账户,然后确认订单(支付2倍资产为了防止恶意买家不确认收货的行为)。c)数据提供者(卖家)监听到订单确认消息,发送数据hash本文档来自技高网...

【技术保护点】
1.一种基于以太坊的数据交易平台,其特征在于:所述数据交易平台的参与用户包括数据提供者和数据需求者,两者通过交易平台底层区块链系统完成交易和通信,所述数据交易平台包括三大模块:区块链系统模块,该模块是采用以太坊平台作为数据交易平台的底层系统,数据提供者与数据需求者的交易流程是在以太坊平台中完成的;该模块分为以太坊节点和智能合约两部分:智能合约建立了数据交易平台的交易规则;每个用户都会创建一个本地的以太坊节点,通过该以太坊节点来实现与智能合约的交互,以及与其他用户之间的通信,同时以太坊节点通过在以太坊网络中调用智能合约完成用户之间的交易;数据传输模块,该模块用来存储和发送交易数据集的原始数据;该模块采用IPFS(InterPlanetary File System)作为文件存储分发系统,当数据提供者将所提供的数据集上传至IPFS节点,就得到基于该文件内容计算出的唯一加密哈希值,数据需求者可通过该hash值下载数据;交易平台控制模块,该模式为参与交易的用户(买卖双方)提供一个操作交易行为和监听交易事件的环境,该模块采用Node.js实现;用户通过Node.js中的web3模块与以太坊平台连接,使用web3.js library提供的web3对象,就可以在Node.js的JavaScript控制台中对自己节点的交易行为进行控制;本专利技术通过Node.js的web3模块编写代码实现对交易进程的实时监听,用户会在JavaScript控制台中实时接收到监听信息。...

【技术特征摘要】
1.一种基于以太坊的数据交易平台,其特征在于:所述数据交易平台的参与用户包括数据提供者和数据需求者,两者通过交易平台底层区块链系统完成交易和通信,所述数据交易平台包括三大模块:区块链系统模块,该模块是采用以太坊平台作为数据交易平台的底层系统,数据提供者与数据需求者的交易流程是在以太坊平台中完成的;该模块分为以太坊节点和智能合约两部分:智能合约建立了数据交易平台的交易规则;每个用户都会创建一个本地的以太坊节点,通过该以太坊节点来实现与智能合约的交互,以及与其他用户之间的通信,同时以太坊节点通过在以太坊网络中调用智能合约完成用户之间的交易;数据传输模块,该模块用来存储和发送交易数据集的原始数据;该模块采用IPFS(InterPlanetaryFileSystem)作为文件存储分发系统,当数据提供者将所提供的数据集上传至IPFS节点,就得到基于该文件内容计算出的唯一加密哈希值,数据需求者可通过该hash值下载数据;交易平台控制模块,该模式为参与交易的用户(买卖双方)提供一个操作交易行为和监听交易事件的环境,该模块采用Node.js实现;用户通过Node.js中的web3模块与以太坊平台连接,使用web3.jslibrary提供的web3对象,就可以在Node.js的JavaScript控制台中对自己节点的交易行为进行控制;本发明通过Node.js的web3模块编写代码实现对交易进程的实时监听,用户会在JavaScript控制台中实时接收到监听信息。2.根据权利要求1所述的一种数据交易平台,其特征在于:区块链系统具有不可篡改和去中心化的特点,数据提供者和数据需求者通过以太坊节点在以太坊平台中完成交易过程,所述数据交易平台具有以下特点:a)买卖双方之间数据交易的每一步流程就是一笔区块链上的交易,每一次区块链上的交易,以太坊会通过共识算法挖矿产生新的区块,并将该次交易产生的数据记录下来放入区块中,一旦信息经过验证并添加至区块链,就会永久的存储起来;除非能够同时控制系统中超过51%的节点,否则单个节点上对数据库的修改是无效的;因此数据交易平台的数据稳定性和可靠性极高,用户之间的交易记录不可篡改且可追溯;b)由于区块链系统使用分布式架构,不存在中心化的硬件或管理机构,任意节点的...

【专利技术属性】
技术研发人员:刘媛妮李垚焬张建辉赵国峰
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1