libingchen7 / BlockChain

综述
0 stars 1 forks source link

项目申请 #3

Open libingchen7 opened 6 years ago

libingchen7 commented 6 years ago

基于区块链的智能合约构建及执行分为如下几步:

1、多方用户共同参与制定一份智能合约;

2、合约通过P2P网络扩散并存入区块链;

3、区块链构建的智能合约自动执行。

“多方用户共同参与制定一份智能合约”的过程,包括如下步骤:

(1)首先用户必须先注册成为区块链的用户,区块链返回给用户一对公钥和私钥;公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙。

(2)两个以两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;这些权利和义务以电子化的方式,编程机器语言;参与者分别用各自私钥进行签名;以确保合约的有效性。

(3)签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。

“合约通过P2P网络扩散并存入区块链”的过程,包括如下步骤:

(1)合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。

(2)共识时间到了,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一个区块结构,扩散到全网;其它验证节点收到这个区块结构后,会把里面包含的合约集合的Hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给其它的验证节点;通过这种多轮的发送和比较;所有的验证节点最终在规定的时间内对最新的合约集合达成一致。

(3)最新达成的合约集合会以区块的形式扩散到全网,如下图所示,每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其它描述信息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都会对每条合约进行验证,验证通过的合约才回最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

libingchen7 commented 6 years ago

区块链中的零知识证明是如何应用的?

许多基于区块链的技术都在使用Zk-Snarks。事实上,以太坊在大都会阶段就计划引入Zk-Snarks,并且将其加入以太坊的功能库。Zk-Snarks是“零知识简洁无交互知识认证”的简称,是一种在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。

以上内容可用来生成一个证明,通过对每笔交易创建一个简单的快照来验证其有效性。这足以向信息接收方证明交易的有效性,而无需泄露交易的实质内容。

这就实现了以下两种情况:

实现了交易的完整性和隐私性。

实现了系统的抽象性。由于无需展示整个交易内部的工作方式,因此系统非常易用。 因此,以上就是区块链使用的一些重要的加密函数。现在,让我们观察其第二个支柱,经济学。

libingchen7 commented 6 years ago

一个za-SNARKs是一个简洁的非互动性零知识证明,其中的证明非常简短,很容易验证。可以将它们看做是一个逻辑回路,这个逻辑回路需要生成一个证明声明来验证每一个交易。他们通过对每一个交易进行快照来实现这些目的,生成一个证明,然后来让接收方相信计算是正确的,而且不会泄露证明之外的其它任何数据。一个SNARK执行的基本操作就是将能够解密的数据编码到回路中。

因为zk-SNARKs能够很快被验证,证明非常小,因此他们可以保护运算的完整性,而且不会给非参与者带来负担。需要知道的是该技术正在成熟,还有很多局限性。它们是激励CPU来生成证明,需要1分钟才能生成新的证明,因此规模化仍然是需要解决的一个问题。

libingchen7 commented 6 years ago

http://8btc.com/article-3758-1.html

libingchen7 commented 6 years ago

https://blog.csdn.net/u012412689/article/details/73010695

libingchen7 commented 6 years ago

https://wenku.baidu.com/view/5cf354fd31b765ce04081463.html

libingchen7 commented 6 years ago

基于账户模型的私有链数据模型构建 使用Hyperledger(超级账本)构建海战场系统体系,使用区块链分布式技术及智能合约技术实现海上作战系统任务调度。并引入权限控制和安全保障对接入的节点和客户端的能力进行限制。搭建具有权限控制的海战场系统的私有链,实现实时数据记录,任务制定发布,单位调度,用户认证授权等功能。并保证数据的隐私性,安全性,有效性以及功能自动化运行。另外Hyperledger具有松耦合性,适于对海战场形势变化而重构模型,便于二次开发和维护。 基于图灵完备的私有链作战数据智能合约 基于solidity/go/Java 语言的智能合约设计搭建,实现海战系统任务发布,任务对接,具备执行条件单位自动匹配任务等功能。 1、多方用户共同参与制定一份任务合约; 2、合约通过P2P网络扩散并存入区块链,通过共识机制更新合约,实现海战编排等任务的发布。 3、链上匹配节点自动执行智能合约,实现符合条件执行单位的任务匹配,部署。

基于零知识证明的私有链隐私保护及访问控制 Zk-Snarks(零知识简洁无交互知识认证)是一种利用同态加密技术在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。保护区块链数据隐私,在不透漏任何隐私的情况下,实现高效的数据合法性验证,实现了交易的完整性和隐私性。Zk-SNARKs能够很快被验证,证明非常小,因此他们可以保护运算的完整性,而且不会给非参与者带来负担,适于实时性高,要求响应快的海战场系统。 利用区块链的数据不可篡改性,分布性。利用智能合约以可执行格式设计访问控制策略,在区块链中保存策略。实现基于角色的访问控制,保证策略的防篡改性,可用性。 Fiat-Shamir身份认证算法及其改进算法实现海战场系统角色权限访问控制策略的机密性,合法用户的个人信息看作是证明方的知识,用户通过零知识证明向验证方证明自己身份,从而获得执行相应行为的权限。

libingchen7 commented 6 years ago

http://www.sohu.com/a/232441336_374240

libingchen7 commented 6 years ago

https://wenku.baidu.com/view/5cf354fd31b765ce04081463.html

libingchen7 commented 6 years ago

https://blog.csdn.net/mist99/article/details/79645751

libingchen7 commented 6 years ago

(二)研究内容 (研究内容应完整、清晰、重点突出,分条列出并描述。) 1.作战数据私有链隐私保护机制研究 海战场环境不仅是进行战斗的依托和舞台,同时也是战术运用的客现条件和依据,加强数字海战场建设,建立海战场环境信息化保障体系是未来作战的必然要求。针对战场系统的数据隐私保护显得尤为重要,以指挥部为中心的作战系统(中心化作战系统)暴露出部分缺陷,其中最严重的就是数据集中存储,一旦敌方攻破中心节点防线,作战系统将全部瘫痪,数据隐私也就荡然无存。 以私有链为基础的海战场作战系统是军事研究的一个新课题,通过利用区块链的去中心化分布式、数据不可篡改、数据隐私保护等特性,建立一种以私有链为基础的海战场系统体系是当前需要迫切探索的方向。 零知识证明是作战数据私有链隐私保护的基础,在区块链中由于链上的节点互不信任,在不泄露信息本身内容的情况下,解决数据传递,身份验证问题。 零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。证明的一般过程如下:  假设有两方人,甲方是证明者,乙方是验证者。他们在一个工作环境内有相同的一组函数和一组数值。证明如下: 1.甲方先发送满足条件的随机值给乙方,这个称为承诺。  2.乙方发送满足条件的随机值给甲方,这个称为挑战。  3.甲方执行一个不让乙方知道的计算,并把计算结果给乙方,这个称为响应。  4.乙方对响应进行验证,验证失败就退出,验证成功回到1,然后继续顺序执行n次。  如果每一次乙方验证都是成功的,那么乙方就相信了和甲方之间的共识。在整个过程中没有透露任何相关秘密信息。 零知识证明使区块链中的应用数据的来源与流向信息完全保密,全网节点可以在不接触任何有用隐私信息的情况下验证数据传输过程的存在,也无法对数据流向进行跟踪。私有链上的节点在海战场系统中可以利用零知识证明的原理进行信息传递、战场信息记录、信息更新、单位调度等行为而不透露过多细节,其他无关节点将无法通过区块验证过程获得有用数据,可以防止攻击者攻击单个节点导致信息泄露。 在海战场系统中各个节点拥有不同权限,他们所能执行的功能也有所不同,利用零知识证明原理实现各个节点的身份验证,不同的角色分配不同的角色信息,通过对角色特定信息的验证实现在互不透露角色信息的情况下的角色访问控制。在使用智能合约进行任务匹配等情况下,利用零知识证明向合约发起人证明自己所在的位置范围而不透漏具体位置细节,以达到模糊定位验证等功能。 HyperLedger支持多种加密工具和方法,确保满足相应的加密和隐私管理需求。这些工具用于确保诸如身份识别、交易属性、智能合约状态等信息的真实性,同时不会侵犯信息的私密性。其中身份识别服务负责管理身份识别需求,策略管理服务负责系统策略配置和管理。对于海战场私有链中各个角色对象,可以配置他们所需的权限,在配置时对于权限级别高的角色给予更多的访控权限,而对于低级别的对象可以定义更多的限制条件。定义了各个角色访问权限后,可以在策略管理服务中进行权限授权、访问控制等,通过策略验证、身份注册等过程,对各个节点发放角色认证证书,各个节点可通过该证书进行权限访问等。 HyperLedger这种安全策略新特性符合海战场环境数据隐私保护的需求,可以通过这种技术构建一种海战场私有链数据隐私保护模型而进行深入研究。

2.×××研究 ……。 (三)关键技术 (填写具有重要影响的关键技术并加以分析,关键技术应体现项目的难点和特色。) 1.Hyperledger(超级账本) 由多个参与者共享,每个参与者都在系统中拥有权益。账簿只有在所有参与者达成共识的情况下才能够更新,并且信息一旦记录就永远不能修改。每个记录的事件都可以基于参与者的共识证明使用密码学进行验证。 构建海战场系统体系,使用区块链分布式技术及智能合约技术实现海上作战系统任务调度。并引入权限控制和安全保障对接入的节点和客户端的能力进行限制。搭建具有权限控制的海战场系统的私有链,实现实时数据记录,任务制定发布,作战指挥调度,作战部门认证授权等功能。并保证数据的隐私性,安全性,有效性以及功能自动化运行。另外Hyperledger具有松耦合性,便于对海战场形势变化而重构模型,便于二次开发和维护。 2.图灵完备的私有链作战数据智能合约 基于solidity/go/Java 语言的智能合约设计搭建,实现海战系统任务发布,任务对接,具备执行条件单位自动匹配任务等功能: 1、多方用户共同参与制定一份任务合约; 2、合约通过P2P网络扩散并存入区块链,通过共识机制更新合约,实现海战编排等任务的发布。 3、链上作战单位节点自动匹配智能合约,实现符合条件执行单位的任务匹配与部署。 3.zk-SNARK(零知识简洁无交互知识认证) 一种利用同态加密技术在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。其特点如下: 1.使用零知识证明原理。 2.证据信息较短,方便验证
3.几乎没有交互,证明者基本上只要提供一个字符串义工验证,意味着可以把该消息放在链上公开验证。 4.证明过程是计算完好的,证明者无法在合理的时间内造出伪证。 5.对于一个证明者来说,在不知晓特定证明的前提下,构建一个有效的零知识证据是不可能的。 zk-SNARK基础过程使用同态隐藏原理,实现零知识证明。在区块链中使用zk-SNARK能够提供完全隐私化和加密化的价值转移。在区块链应用上利用zk-SNARK技术能够实现诸如海战场系统,某一作战单位可以在不暴露具体位置的情况下证明其处于某一片海域等场景。 zk-SNARK技术能够保护区块链数据隐私,在不透漏任何隐私的情况下,实现高效的数据在不泄密情况下的合法性验证。该技术能够很快被验证,证明过程消耗非常小,因此可以在保护运算的完整性的前提下,不会给非参与者带来负担,适于实时性高,要求响应快的海战场系统。 但是由于zk-SNARK需要验证一个较为复杂的多项式性质,算法目前的性能较差,计算复杂度主要来自于底层依赖的椭圆曲线配对运算,故和传统的验证相比消耗了更多的计算资源,所以对其进行计算的优化仍需要进一步研究。 利用零知识证明实现海战场系统角色权限访问控制策略,合法用户的个人信息看作是证明方的知识,用户通过零知识证明向验证方证明自己身份,从而获得执行相应行为的权限。 将访问控制策略写入智能合约,通过 利用区块链的数据不可篡改性、分布性,智能合约以可执行格式设计访问控制策略,在区块链中保存策略,通过密码学手段进行身份认证,访问请求时执行针对当前访问上下文的策略评估所需的组件。实现基于角色的访问控制,保证策略的防篡改性,可用性。