本发明涉及互联网上区块链系统的智能合约的数据处理,为一种分布式网络的可靠数据源的实现方法。
背景技术:
在量子链系统中的区块链合约注重合约在商业社会中的实用性,量子链系统中的合约可能会需要和现实社会中的数据来做交互。量子链系统中合约的执行需要查询链外的数据,来从链外取得数据可以把数据供给区块链合约的系统、程序、技术机制。另外,所有基于区块链的智能合约都需要所有节点执行相同的智能合约代码,也造成了智能合约会花费巨大计算资源,也变得异常昂贵。考虑到实际商业中用途,在量子链系统中,迫切创建一种链下合约的执行机制,以解决可靠数据源的获取方法。
技术实现要素:
有鉴于此,本发明提供一种解决或部分解决上述问题的分布式网络的可靠数据源的实现方法。
为达到上述技术方案的效果,本发明的技术方案为:一种分布式网络的可靠数据源的实现方法,包含以下几个步骤:
从智能合约获取数据采取oracles,oracles为智能合约与外部数据的入口,连接量子链的区块链账本与外部的机制;
具体地,oracles使用jsonfile存储数据,数据中包含当前的汇率;
创建oracles被分为两步:
第一步,创建oracles交易;
第二步,通过数据文件写入区块链存储;
oracles交易的创建需要:
交易类型(transactiontype),分别用于创建交易;
oracles的提供者(oracleproviderid),存储oracles所有者的公共密钥;
oracleid,用于独有的身份辨别;
create-payment,用于oracles的支付;
fee-collection-ricipient,用于oracles的具体使用;
datahash,用于存放具体数据的哈希形式;
oracles的数据文件包含两个部分:数据以及验证方案;读写oracles的过程如下:
智能合约不允许通过区块链账本而与外部直接接触,在智能合约读取数据之前,oracles必须将数据写入区块链账本;当oracles创建后,就可以向其写入新的数据,可以周期地对oracles进行写入;对于同一份数据,可能会存在多个副本,周期性地由oracles的提供者给予;
在读的过程中,oracles的读文件中只包含数据,不存在验证方案;在oracles创建的过程中数据被验证方案进行检查,如果数据不通过检查,交易不被接受,写操作也不被允许;
oracles的可靠性依赖于两个条件:确切的数据供给时间以及数据的授权;oracles对于数据的处理方式有延迟提供一个数据、不会提供一个数据、oracles一直持有数据并且会对智能合约造成影响。
本发明的有益成果为:本发明提供了一种从量子链区块链账本外获取数据的方式,量子链系统通过智能合约来管理参与者的身份信息,为基于量子链系统的金融服务供更好的支持,在此基础上,设计了oracles,可以让区块链的智能合约更实际,更符合商业规则,搭建了从现实世界到区块链之间的桥梁。
附图说明
图1为oracles写入方案的过程图;
图2为oracles的交易周期性写入的流程图;
图3为oracles的概念模型图;
图4为oracles验证数据的图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:
实施例1:oracles
用jsonfile存储数据,数据中包含当前的汇率。oracles的提供者拥有写功能,可以为任意对象。创建oracles被分为两步:1.创建oracles交易2.通过datafile写入区块链存储。oracles交易的创建需要交易类型(transactiontype)、oracles的提供者(oracleproviderid)、oracleid、create-payment、fee-collection-ricipient、datahash,分别用于创建交易、存储oracles所有者的公共密钥、独有的身份辨别、oracle的支付、oracles的具体使用、存放具体数据的哈希形式。
oracles中数据的读写
智能合约不允许通过智能合约账本而与外部接触。在智能合约读取数据之前,oracles必须将此写入账本。当oracles创建后,就可以向其写入新的数据。oracles的写入区块链的过程如图1。可以周期地对oracles进行写入。对于同一份数据,可能会存在多个副本,周期性地由oracles的提供者给予,过程如图2。
oracles的数据文件:包含两个部分:数据以及验证方案。在读的过程中,oraclesfile中只包含数据,不存在验证方案。数据被验证方案进行检查在oracles创建的过程中,如果数据不满足交易不被接受,写操作也不被允许。oracles的提供者只能适应于人为的、可读的。
oracles的可靠性
智能合约依赖oracles作出金融决定,因此需要满足确切的数据给予时间、数据的授权两个条件。
oracles对于数据有三种方法:延迟提供一个数据、不会提供一个数据、oracles一直持有数据并且会对智能合约造成影响。如果oracles延迟给予数据,那么汇率可能会发生变化,特别是智能合约对于汇率很敏感的情况下。oracles是一种连接量子区块链账本与外界的桥梁,它允许智能合约从智能合约区块链的领导事件得到有关外界的信息。
oracles对智能合约来说,是从外界得到数据的途径。智能合约不能通过区块链账本与外界相互作用,如果能相互作用,可能会带来安全问题。在智能合约读数据之前,oracles必须要将数据写进账本。
智能合约作金融决定时依赖于数据,智能合约必须对数据的正确性进行确认。在构建oracles时提供的数据用于写于账本。每个被oracles写入的数据通过计划的验证,只有验证通过,才能被传递。这个过程用于验证数据的正确性。
oracles供给机制
数据供给的时间对智能合约会造成影响,衍生金融工具可能会将基础资产的变化反复作为重要的依据。每天比特币总量的10%可能存在变化反复,针对这种变化反复,必须违反无法预测的边界调用。当消费者数据预计数据的到来,oracles能详细化计划参数。
oracles的数据供给机制的规范描述如下:
实施例2:在量子链系统中,oracles的数据可以是jsonfile的形式在创建和存储。
oraclesdatafile的一个例子如下:
{
rate:{
"usd/euro":"1.10351",
"usd/gbp":"1.31930",
"usd/jpy":"0.00954"
}
这是一个智能合约引用的利率的例子。在智能合约中可以被引用:
functionunlock(oracles,inputs){
if(oracles.currency.rate["usd/euro"]>1.10){
//makedecision#1
}else{
//makedecision#2
}
考虑到安全因素,智能合约不会直接调用外部的数据,在智能合约读取数据之前,oracles需要把相应数据写入到公开账本中。
我们可以通过oracles的“创建交易”,来创建oracles,在量子链系统中分为以下两个步骤
1.通过oraclecreattransaction,发起一笔交易;
2.把数据写入到公开账本。
oracles创建交易
{
"id":"hashoftransaction,excludingsignatures",
"transactiontype":"oraclecreatetransaction",
"oraclename":"nameoforacle",
"oracleproviderkey":"myuemkt4rarppjhdwd9myzbbnt9qawkhc",
"oracleid":"oracle_myuemkt4rarppjhdwd9myzbbnt9qawkhc"
"creation‐payment":"transactionid",
"name‐payment":"transactionid",
"fee‐collection‐recipient":"@oracleprovideraccount",
"datahash":"myuemkt4rarppjhdwd9myzbbnt9qawkhc",
}
s:
为了发行新的资产,资产所有者必须支付以下类型的付款:
|#|payment|value|obligatory/mandatory|description||-------|--------|--------|--------||1|issuepayment|10,000-fiat.usd|mandatory|paymentforissuenewasset|2|namepayment|specification|mandatory|paymentfornameoftheasset|3|collateral|-|optional|mandatoryforassetratedeclinerisk
因为资产付款会吸引那些没有资源以正确方式支持资产的玩家,所以它不能便宜。资产问题绝不仅仅是一个很酷的游戏,而是严重的业务。资产所有者必须从一开始就理解资产问题,并准备花钱支持这项资产。因此,我们将创建入口障碍,将允许系统吸引只有强大的准备发行强大的资产的投资者。
支付名称详细描述了资产名称规范。抵押支付使用户对资产更为信任。
以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。
本发明的有益成果为:本发明提供了一种从量子链区块链账本外获取数据的方式,量子链系统通过智能合约来管理参与者的身份信息,为基于量子链系统的金融服务供更好的支持,在此基础上,设计了oracles,可以让区块链的智能合约更实际,更符合商业规则,搭建了从现实世界到区块链之间的桥梁。