轻舞飞扬庆庆
区块链是一种分布式账本,具有不可变性,匿名性和可审计性,无需信任第三方。 为了提供数据交换以形成这样的账本,区块链网络使交易和区块的传播达到共识,主要由附着策略和沟通策略组成。 当前,它是使用对等覆盖网络来实现的,但是,它受到流量与底层网络拓扑之间不匹配的内在问题的困扰。 为了解决这个问题,我们采用了以信息为中心的网络(ICN)方法来设计去中心化的以信息为中心的区块链网络(DIBN),其中命名类别以使流量能够被去中心化,并且 在每个类别的所有区块链节点(BN)之间建立任意的一对多类别传播结构(CDS)。 对于CDS,一个BN可以有效地将数据发送到所有其他BN,以使流量与基础网络保持一致,从而解决了不匹配问题。 性能分析表明,提出的DIBN可以大大减少区块链数据分发的平均路径长度。 大量移动设备生成大量的大数据,区块链网络的现有工作主要针对数据和面向数据传播的攻击,但是,对于区块链网络本身仍缺乏研究关注。 P2P上层网络中,流量和底层网络拓扑之间存在不匹配问题:现在的BC网络主要基于P2P上层网络技术的应用层多播(ALM)实现,其性能受到上层流量和基础物理网络拓扑之间不匹配问题的影响,从而导致大量冗余流量。 提出DIBN,命名类别使流量分散;建立any-to-all类别传播结构。在DIBN中,类别、交易和数据块被命名用于数据转发,并通过交易记录高性能区块链节点(HPBN),以选择根设备,即指定的区块链节点(dBN)。 DIBN包含三个过程:类别通信结构(CDS)形成,双向附件策略和任何对所有通信策略。 为每个类别构建一个包含所有BN的双向数据分发树,其中考虑负载平衡,选择一个HPBN作为该树的根dBN。 通过CDS,可以实现任何所有人的通信策略,其中任何BN都可以有效地将数据分发到所有其他BN,从而使流量与基础网络保持一致。 我们分析了DIBN的性能,这表明与区块链网络中现有的典型ALM相比,DIBN可以大大缩短平均路径长度。 为了缓解流量集中程度,将对交易和块进行分别命名。交易,语义上有意义的命名。块,无意义的名称标记类别,在负载均衡时分散流量。交易和块通过类别标识符进行分发,并通过数据标识符进行检索。 即,类别,交易和区块具有类别标识符(CID),交易标识符(TID)和区块标识符(BID)的标识符。CID是二进制的 < Category Name (CN) | DIBN Domain > ,TID的格式为 < CN | Transaction Name | DIBN Domain > ,BID的格式为 < CN | Block Name | DIBN Domain > 。 DIBN域:由BN和具有ICN功能的路由器构成的用于数据转发的管理区域。 所有的交易和块都包含在不同类别中。每种流量类别对应一个CDS,它是指一组链路,用于在一个特定类别的BN之间传播交易和块。根据类别和CDS,可以将流量分布在不同交易和块的不同链路上。 为了避免过度依赖中心化的RN(组播中的交汇节点),HPBN通过区块链交易记录自己(HPBN作为dBN的次数)(HPBN可以主动宣布自己愿意作为dBN)。在选择dBN时,当一个BN想形成一个CDS树时,会在区块链中找到HPBN的记录,选择作为dBN次数最少的HPBN作为本CDS树的dBN,并且更新该HPBN作为dBN的次数。 确定dBN后,BN将向所有其他BN广播选出的HPBN的id。然后,那些收到公告的BN向该dBN发送CDS形成请求,并以所请求的类别CID构造一个以该dBN为根的双向到所有通信树。在所有BN向dBN发送请求的过程中,数据包会被路由器记录到FIB表中,生成关于端口组和类别名称的关联映射。当从端口组中的某一个收到该类别的数据后路由器将自动转发给其余端口。如下图建立了蓝色线的CDS树。同时这些映射关系具有一定的TTL生存时间,过期后需要重新构建新的CDS树。 当一个新节点需要加入CDS时,需要向邻近节点查询负责该类流量的HPBN的id,然后向该dBN发送请求,请求会在路由表中建立相应项形成新的CDS树。路由器定期检查与BN的连接。 如果相邻的BN不可访问,则可以将该BN视为击败“离开”状态。 当检测到相邻BN的“ LEAVE”状态时,如果剩余两个或更多个接口,则删除检测到的具有未连接的BN的接口。 一个DBIN域中形成一个类别的CDS时,该CDS树的dBN会和其他域相同类别的dBN组件CDS树形成多级域间数据分发。 在CDS形成之后,事务和块可以将类别的已建立通信结构传递到所有BN。 在基于DIBN的场景中,每个BN都可以与区块链网络之间收发事务和区块。 中间路由器的基本转发策略是路由器在数据包头中的CID和FIB中的CID之间执行完全匹配,然后将数据转发到相应FIB条目中的其余接口(传入接口除外)。如下图所示分别由BN2向所有节点分发了交易1,由BN6向所有节点分发了区块1。 ICN本质上允许隐藏底层设备和网络协议中的异质性,并支持基于名称的转发和网络内缓存[16]。 因此,由于ICN的这些有前途的功能,因此所提出的DIBN具有ALM的优点,例如即时可部署性和易于维护。 此外,它还具有使流量与基础网络基础结构保持一致的优点。 此外,通过采用区块链的基本账本功能,也可以避免使用集中式集合点。 文中并未对所述方法进行实验,只是进行了简单分析和推导。使用平均路径长度作为指标,对比了所提出的DIBN与典型的ALM协议Narada[11]和NICE[12]。与典型值相比,因为DIBN中的CDS将流量与基础网络拓扑对齐,相比于ALM协议,即Narada的O(M log(K))和NICE的O(log(M)log(K)),拟议的DIBN【O(log(K))】可以大大减小将数据从一个BN传播到另一个BN的平均路径长度。 显然,如果BN的数量变得更大,则DIBN可以大大减小平均路径长度。 此外,由于缩短了平均路径长度,因此可以极大地减少通信开销。
吃货高老师
课题研究的背景: 随着现代科技与信息产业的发展,现阶段,第四次工业革命初见端倪,全球即将进入一个以互联网、人工智能等新技术为核心的科技时代,同时,区块链技术应运而生,成为国际众多政府与行业关注的热点对象。区块链技术已经被视为继蒸汽机、电力、信息和互联网科技之后,最有潜力触发第五轮颠覆性革命浪潮的核心技术。过去10年,在政府与政策的大力支持下,我国公益慈善事业的发展形势较为乐观。然而随着慈善规模不断发展扩大,我国公益事业逐渐显露了一些弊端。传统的公益事业存在的最大问题是公信力不足,存在慈善组织内部管理不健全、成本高等问题,但目前许多互联网公益服务公司正积极利用区块链这一新技术解决该问题。区块链技术具有去中心化、信息可追溯且不可篡改、公开透明、智能合约等特点,能够弥补传统公益事业中存在的信息不透明、管理效率低等不足, 区块链技术进入公益事业,将为慈善行业带来新的发展契机。课题研究的主要内容: 本课题主要包括以下三个方面的内容: [if !supportLists]一、[endif]区块链技术与公益结合会出现的问题并解决。 [if !supportLists]二、[endif]基于区块链技术做一个公益查询网页 [if !supportLists]三、[endif]对该查询系统应用问题及阐述课题研究的目的: 我国公益规模不断的发展扩大,随之而来我们的弊端也被显露出来,公信力不足,慈善组织缺乏管理,而利用区块链技术可以达到解决这问题的效果。该技术会在捐赠流程中实行数据和行为的全程跟踪,存证,实现公益链的完整公开,使捐赠者进行有效监督,避免了效率低,资金流向明确等缺点,为公益项目控股风险,提升公信力和公益项目的透明度,促进公益项目的发展与进步,增强了人与人的信任。公益性企业根据区块链系统的属性与特点,可以在公益流程中实行数据与行为的全周期跟踪、存证与审计,使公益项目参与各方能够对该项目进行全程跟踪及有效监督, 避免公益中因人为降低效率的缺点,从而为公益项目提供控制风险、判断效果的理性方法, 提升公益事业的透明度,促进公益发展。 课题研究的意义: 本课题拟在区块链技术的基础上,结合我国公益事业发展实际,做出关于公益事业捐赠的追踪,公开透明的系统。通过对区块链技术和慈善事业业务的深入分析, 我们发现区块链技术对解决公益透明性问题有着天然优势。区块链技术可理解为是一种分布式的记账方式,可记录所有交易信息并确保无法篡改,这就决定了凡需要公正、公平、诚信的地方,区块链都有很大的技术发挥空间。同时,智能合约的加入直接解决了专款专用这一业务难题。 最终将会实现公民之间信任增强,捐赠渠道速度加快,推动社会捐助事业的发展 二、文献综述 (国内外相关研究现况和发展趋向) [if !supportLists] (一) [endif] 国外区块链相关产业现状 中欧在区块链产业政策中逐渐占领全球,欧盟在2018年2月已成立欧洲区块链观察论坛,主要职责包括:政策确定,产学研联动,跨国境BaaS (Blockchain as a Service)服务构建,标准开源制定等,组在Horizon2020投入 500万欧作为区块链研发基金(在2018年12月19日前),预计三年内(2018-2020) 区块链方面投资将达到亿欧元。美国则由于各州之间政策不一,虽然区块链在美国初创企业中仍然是热潮,产业政策推动-直较慢。中东地区以迪湃为首在引|领区块链的潮流,由政府牵头,企业配合以探索区块链的新技术应用。亚太区域日韩也相对活跃,日本以NTT为主,政府背后提供支撑,韩国以金融为切入点探索区块链应用。主义也时刻在威胁着中国社会的各个领域。综观国外主要发达国家新媒体文化的发展现状,总结经验,吸取教训,对中国新媒体文化发展有一定的启示。[if !supportLists] (二) [endif] 国内新媒体研究现状 中国国务院印发《“十三五”国家信息化规划》,区块链与大数据、人工智能、机器深度学习等新技术,成为国家布局重点。中国人民银行印发了《中国金融业信息技术"十三五”发展规划》,明确提出积极推进区块链、人工智能等新技术应用研究,并组织进行国家数字货币的试点。在2017年10月,工信部发布《中国区块链技术和应用发展白皮书》,这是首个落地的区块链官方指导文件。各地政府,特别是沿海地区纷纷成立区块链实验地、研究院。前,深圳、杭州、广州、贵阳等地政府都在积极建立区块链发展专区,给予特别扶植政策。中广州在2017年12月正式发布广州区块链10条策略,在黄浦区和开发区打造区块链企业技术创新区。深圳在2018年3月由深圳市经济贸易和信息化委员会发布《市经贸信息委关于组织实施深圳市战略性新兴产业新一代信息技术信息安全转型201 8年第二批扶持计划的通知》,区块链在扶持方向之列,这是继广州、贵阳、鸽杭州之后,国内第5个地方政府,出台的关于区块链的扶持政策。 ( 三)区块链在开源领域的现状 超级账本(Hyperledger) 超级账本(Hyperledger)是由Linux基会于2015年发起的推进区块链数字技术和交易验证的开源项目,吸引了包括IBM,英特尔,Fujitsu,UPS,Cisco,华为,Redhat,Oracle,三星,腾讯云,百度金融等众多公司参与,目前已经有超过200家会员单位,Aache基金会创始人BranBehlendorf担任账本项目的执行董事。 超级账本项目的目标是让成员共同合作,共建开放平台,满足来自多个不同行业的用户案例并简化业务流程。流程账本旗下有多个区块链平台项目,包括BIM贡献的Fabric项目,Intel贡献的Sawtooth项目,以及Iroha,Burrow,Indy等。 区块链在标准领域的发展现状 ITU-T ITU-T (国际电信联盟标准化组织)于2016至2017年初,SG16 (Study Group)、SG17和SG20分别启动了分布式账本的总体需求、安全,以吸在物联网中的应用研究。成立三个焦点组Focus Group (分布式账本焦点组(FG DLT)、数据处理与管理焦点组(FG DPM) )、法定数字货币焦点组(FG DFC) ), 分别针对区块链与分布式账本技术应用与服务研究,基于区块链建立可信任的物联网和智慧城市数据管理框架,基于数字货币的区块链应用展开标准化工作。华为担任分布式账本焦点组(FG DLT)架构组主席和数据处理与管理焦点组(FGDPM)区块链组主席。 CCSA (中国通信标准化协会)两个委员会分别成立了子组和项目: CCSA TC10 (物联网技术工作委员会) 2017年10月成立物联网区块链子组:负责区块链技术在物联网及其涵盖的智慧城市、车联网、边缘计算、物联网大数据、物联网行业应用、物流和智能制造等领域的应用研究与标准化,由中国联通技术专家担任组长,华为技术专家担任副组长。 CCSA TC1 (互联网与应用技术工作委员会)下区块链与大数据工作组完成两个区块链行业标准:《区块链: 第1部分区块链总体技术要求》和《区块链:第2部分评价指标和评测方法》,华为积极参与其中。 JPEG 201 8年2月第78届JPEG会议期间,JPEG委员会组织了关于区块链和分布式账本技术及其对JPEG标准影响的特别会议。考虑到区块链和分布式账本等技术对未来多媒体的潜在影响,委员会决定成立一个特设小组在多媒体环境下探索与区块链技术相关的用例和标准化需求,歧持专注于图像和多媒体应用的标准化工作。 IETF 在2017年6月lETF99会议上成立"Decentralized Internet Infrastructure ProposedRG (Research Group),计划研究区块链架构和相应的标准,201 8年IETF在区块链上将可能更多的关注区块链的互联互通的标准的落地发展。 三、拟采取的研究方法(方案、技术路线等)和可行性论证 本课题主要研究区块链技术的应用于慈善捐赠的结合采取的研究方法: 1、以文献资料法收集相关理论,以信息检索、筛选等方法收集文献资料及其相关理论,来了区块链技术的现状,掌握区块链去中心化技术。 2、以理论与实际相结合的方法,将该技术与公益事业结合起来。完成对系统的改进。 3、采用对比分析的方法,从国内外两个方面讨论新媒体运营发展现状,以及我国新媒体运营模式发展的现存问题,并展望该技术领域的发展前景。 可行性论证: 1、技术可行性,本课题所涉及的研究目标,在国内外已经有相当多的理论基础。通过文献调查,可以了解到实际的、可靠的、有用的信息数据,实际要求的难度不大。 2、经济可行性,本课题的研究,可以通过网络和图书馆查阅文献资料,方便可行,不需要很多的经济消耗,所以,从经济的角度,完全可行。 3、操作可行性,本课题要求对区块链技术与公益的结合特别是追溯这些方面应用,对关于此课题的毕业设计的系统的全面解析,能够通过对既有文献的学习和既有资料文档的研习,利用自己搜集的数据,进行整理和分析,学以致用,完整的完成本次课题。从可操作性的角度来讲,完全可行。四、预期结果(或预计成果) 1、通过对资料的研究,明确区块链技术的相关概念,熟练运用dapp,制作出网页。 2、通过对分布式应用,制作出可以使大众快速浏览与了解公益进程的系统为我国公益事业进一步发展增加便利。 3、希望我能够从这次论文的撰写的过程中不断学习,不断进步。能够掌握区块链的相关的知识,对自己以后的事业能有所帮助。
火山红虎
先放一张以太坊的架构图: 在学习的过程中主要是采用单个模块了学习了解的,包括P2P,密码学,网络,协议等。直接开始总结: 秘钥分配问题也就是秘钥的传输问题,如果对称秘钥,那么只能在线下进行秘钥的交换。如果在线上传输秘钥,那就有可能被拦截。所以采用非对称加密,两把钥匙,一把私钥自留,一把公钥公开。公钥可以在网上传输。不用线下交易。保证数据的安全性。 如上图,A节点发送数据到B节点,此时采用公钥加密。A节点从自己的公钥中获取到B节点的公钥对明文数据加密,得到密文发送给B节点。而B节点采用自己的私钥解密。 2、无法解决消息篡改。 如上图,A节点采用B的公钥进行加密,然后将密文传输给B节点。B节点拿A节点的公钥将密文解密。 1、由于A的公钥是公开的,一旦网上黑客拦截消息,密文形同虚设。说白了,这种加密方式,只要拦截消息,就都能解开。 2、同样存在无法确定消息来源的问题,和消息篡改的问题。 如上图,A节点在发送数据前,先用B的公钥加密,得到密文1,再用A的私钥对密文1加密得到密文2。而B节点得到密文后,先用A的公钥解密,得到密文1,之后用B的私钥解密得到明文。 1、当网络上拦截到数据密文2时, 由于A的公钥是公开的,故可以用A的公钥对密文2解密,就得到了密文1。所以这样看起来是双重加密,其实最后一层的私钥签名是无效的。一般来讲,我们都希望签名是签在最原始的数据上。如果签名放在后面,由于公钥是公开的,签名就缺乏安全性。 2、存在性能问题,非对称加密本身效率就很低下,还进行了两次加密过程。 如上图,A节点先用A的私钥加密,之后用B的公钥加密。B节点收到消息后,先采用B的私钥解密,然后再利用A的公钥解密。 1、当密文数据2被黑客拦截后,由于密文2只能采用B的私钥解密,而B的私钥只有B节点有,其他人无法机密。故安全性最高。 2、当B节点解密得到密文1后, 只能采用A的公钥来解密。而只有经过A的私钥加密的数据才能用A的公钥解密成功,A的私钥只有A节点有,所以可以确定数据是由A节点传输过来的。 经两次非对称加密,性能问题比较严重。 基于以上篡改数据的问题,我们引入了消息认证。经过消息认证后的加密流程如下: 当A节点发送消息前,先对明文数据做一次散列计算。得到一个摘要, 之后将照耀与原始数据同时发送给B节点。当B节点接收到消息后,对消息解密。解析出其中的散列摘要和原始数据,然后再对原始数据进行一次同样的散列计算得到摘要1, 比较摘要与摘要1。如果相同则未被篡改,如果不同则表示已经被篡改。 在传输过程中,密文2只要被篡改,最后导致的hash与hash1就会产生不同。 无法解决签名问题,也就是双方相互攻击。A对于自己发送的消息始终不承认。比如A对B发送了一条错误消息,导致B有损失。但A抵赖不是自己发送的。 在(三)的过程中,没有办法解决交互双方相互攻击。什么意思呢? 有可能是因为A发送的消息,对A节点不利,后来A就抵赖这消息不是它发送的。 为了解决这个问题,故引入了签名。这里我们将(二)-4中的加密方式,与消息签名合并设计在一起。 在上图中,我们利用A节点的私钥对其发送的摘要信息进行签名,然后将签名+原文,再利用B的公钥进行加密。而B得到密文后,先用B的私钥解密,然后 对摘要再用A的公钥解密,只有比较两次摘要的内容是否相同。这既避免了防篡改问题,有规避了双方攻击问题。因为A对信息进行了签名,故是无法抵赖的。 为了解决非对称加密数据时的性能问题,故往往采用混合加密。这里就需要引入对称加密,如下图: 在对数据加密时,我们采用了双方共享的对称秘钥来加密。而对称秘钥尽量不要在网络上传输,以免丢失。这里的共享对称秘钥是根据自己的私钥和对方的公钥计算出的,然后适用对称秘钥对数据加密。而对方接收到数据时,也计算出对称秘钥然后对密文解密。 以上这种对称秘钥是不安全的,因为A的私钥和B的公钥一般短期内固定,所以共享对称秘钥也是固定不变的。为了增强安全性,最好的方式是每次交互都生成一个临时的共享对称秘钥。那么如何才能在每次交互过程中生成一个随机的对称秘钥,且不需要传输呢? 那么如何生成随机的共享秘钥进行加密呢? 对于发送方A节点,在每次发送时,都生成一个临时非对称秘钥对,然后根据B节点的公钥 和 临时的非对称私钥 可以计算出一个对称秘钥(KA算法-Key Agreement)。然后利用该对称秘钥对数据进行加密,针对共享秘钥这里的流程如下: 对于B节点,当接收到传输过来的数据时,解析出其中A节点的随机公钥,之后利用A节点的随机公钥 与 B节点自身的私钥 计算出对称秘钥(KA算法)。之后利用对称秘钥机密数据。 对于以上加密方式,其实仍然存在很多问题,比如如何避免重放攻击(在消息中加入 Nonce ),再比如彩虹表(参考 KDF机制解决 )之类的问题。由于时间及能力有限,故暂时忽略。 那么究竟应该采用何种加密呢? 主要还是基于要传输的数据的安全等级来考量。不重要的数据其实做好认证和签名就可以,但是很重要的数据就需要采用安全等级比较高的加密方案了。 密码套件 是一个网络协议的概念。其中主要包括身份认证、加密、消息认证(MAC)、秘钥交换的算法组成。 在整个网络的传输过程中,根据密码套件主要分如下几大类算法: 秘钥交换算法:比如ECDHE、RSA。主要用于客户端和服务端握手时如何进行身份验证。 消息认证算法:比如SHA1、SHA2、SHA3。主要用于消息摘要。 批量加密算法:比如AES, 主要用于加密信息流。 伪随机数算法:例如TLS 的伪随机函数使用MAC算法的散列函数来创建一个 主密钥 ——连接双方共享的一个48字节的私钥。主密钥在创建会话密钥(例如创建MAC)时作为一个熵来源。 在网络中,一次消息的传输一般需要在如下4个阶段分别进行加密,才能保证消息安全、可靠的传输。 握手/网络协商阶段: 在双方进行握手阶段,需要进行链接的协商。主要的加密算法包括RSA、DH、ECDH等 身份认证阶段: 身份认证阶段,需要确定发送的消息的来源来源。主要采用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA签名)等。 消息加密阶段: 消息加密指对发送的信息流进行加密。主要采用的加密方式包括DES、RC4、AES等。 消息身份认证阶段/防篡改阶段: 主要是保证消息在传输过程中确保没有被篡改过。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。 ECC :Elliptic Curves Cryptography,椭圆曲线密码编码学。是一种根据椭圆上点倍积生成 公钥、私钥的算法。用于生成公私秘钥。 ECDSA :用于数字签名,是一种数字签名算法。一种有效的数字签名使接收者有理由相信消息是由已知的发送者创建的,从而发送者不能否认已经发送了消息(身份验证和不可否认),并且消息在运输过程中没有改变。ECDSA签名算法是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。 主要用于身份认证阶段 。 ECDH :也是基于ECC算法的霍夫曼树秘钥,通过ECDH,双方可以在不共享任何秘密的前提下协商出一个共享秘密,并且是这种共享秘钥是为当前的通信暂时性的随机生成的,通信一旦中断秘钥就消失。 主要用于握手磋商阶段。 ECIES: 是一种集成加密方案,也可称为一种混合加密方案,它提供了对所选择的明文和选择的密码文本攻击的语义安全性。ECIES可以使用不同类型的函数:秘钥协商函数(KA),秘钥推导函数(KDF),对称加密方案(ENC),哈希函数(HASH), H-MAC函数(MAC)。 ECC 是椭圆加密算法,主要讲述了按照公私钥怎么在椭圆上产生,并且不可逆。 ECDSA 则主要是采用ECC算法怎么来做签名, ECDH 则是采用ECC算法怎么生成对称秘钥。以上三者都是对ECC加密算法的应用。而现实场景中,我们往往会采用混合加密(对称加密,非对称加密结合使用,签名技术等一起使用)。 ECIES 就是底层利用ECC算法提供的一套集成(混合)加密方案。其中包括了非对称加密,对称加密和签名的功能。 ECC 是 Elliptic Curve Cryptography的简称。那么什么是椭圆加密曲线呢?Wolfram MathWorld 给出了很标准的定义: 一条椭圆曲线就是一组被 定义的且满足 的点集。 这个先订条件是为了保证曲线不包含奇点。 所以,随着曲线参数a和b的不断变化,曲线也呈现出了不同的形状。比如: 所有的非对称加密的基本原理基本都是基于一个公式 K = k*G。其中K代表公钥,k代表私钥,G代表某一个选取的基点。非对称加密的算法 就是要保证 该公式 不可进行逆运算( 也就是说G/K是无法计算的 )。 ECC是如何计算出公私钥呢?这里我按照我自己的理解来描述。 我理解,ECC的核心思想就是:选择曲线上的一个基点G,之后随机在ECC曲线上取一个点k(作为私钥),然后根据k*G计算出我们的公钥K。并且保证公钥K也要在曲线上。 那么k*G怎么计算呢?如何计算k*G才能保证最后的结果不可逆呢?这就是ECC算法要解决的。 首先,我们先随便选择一条ECC曲线,a = -3, b = 7 得到如下曲线: 在这个曲线上,我随机选取两个点,这两个点的乘法怎么算呢?我们可以简化下问题,乘法是都可以用加法表示的,比如2*2 = 2+2,3*5 = 5+5+5。 那么我们只要能在曲线上计算出加法,理论上就能算乘法。所以,只要能在这个曲线上进行加法计算,理论上就可以来计算乘法,理论上也就可以计算k*G这种表达式的值。 曲线上两点的加法又怎么算呢?这里ECC为了保证不可逆性,在曲线上自定义了加法体系。 现实中,1+1=2,2+2=4,但在ECC算法里,我们理解的这种加法体系是不可能。故需要自定义一套适用于该曲线的加法体系。 ECC定义,在图形中随机找一条直线,与ECC曲线相交于三个点(也有可能是两个点),这三点分别是P、Q、R。 那么P+Q+R = 0。其中0 不是坐标轴上的0点,而是ECC中的无穷远点。也就是说定义了无穷远点为0点。 同样,我们就能得出 P+Q = -R。 由于R 与-R是关于X轴对称的,所以我们就能在曲线上找到其坐标。 P+R+Q = 0, 故P+R = -Q , 如上图。 以上就描述了ECC曲线的世界里是如何进行加法运算的。 从上图可看出,直线与曲线只有两个交点,也就是说 直线是曲线的切线。此时P,R 重合了。 也就是P = R, 根据上述ECC的加法体系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0 于是乎得到 2*P = -Q (是不是与我们非对称算法的公式 K = k*G 越来越近了)。 于是我们得出一个结论,可以算乘法,不过只有在切点的时候才能算乘法,而且只能算2的乘法。 假若 2 可以变成任意个数进行想乘,那么就能代表在ECC曲线里可以进行乘法运算,那么ECC算法就能满足非对称加密算法的要求了。 那么我们是不是可以随机任何一个数的乘法都可以算呢? 答案是肯定的。 也就是点倍积 计算方式。 选一个随机数 k, 那么k * P等于多少呢? 我们知道在计算机的世界里,所有的都是二进制的,ECC既然能算2的乘法,那么我们可以将随机数k描 述成二进制然后计算。假若k = 151 = 10010111 由于2*P = -Q 所以 这样就计算出了k*P。 这就是点倍积算法 。所以在ECC的曲线体系下是可以来计算乘法,那么以为这非对称加密的方式是可行的。 至于为什么这样计算 是不可逆的。这需要大量的推演,我也不了解。但是我觉得可以这样理解: 我们的手表上,一般都有时间刻度。现在如果把1990年01月01日0点0分0秒作为起始点,如果告诉你至起始点为止时间流逝了 整1年,那么我们是可以计算出现在的时间的,也就是能在手表上将时分秒指针应该指向00:00:00。但是反过来,我说现在手表上的时分秒指针指向了00:00:00,你能告诉我至起始点算过了有几年了么? ECDSA签名算法和其他DSA、RSA基本相似,都是采用私钥签名,公钥验证。只不过算法体系采用的是ECC的算法。交互的双方要采用同一套参数体系。签名原理如下: 在曲线上选取一个无穷远点为基点 G = (x,y)。随机在曲线上取一点k 作为私钥, K = k*G 计算出公钥。 签名过程: 生成随机数R, 计算出RG. 根据随机数R,消息M的HASH值H,以及私钥k, 计算出签名S = (H+kx)/R. 将消息M,RG,S发送给接收方。 签名验证过程: 接收到消息M, RG,S 根据消息计算出HASH值H 根据发送方的公钥K,计算 HG/S + xK/S, 将计算的结果与 RG比较。如果相等则验证成功。 公式推论: HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG 在介绍原理前,说明一下ECC是满足结合律和交换律的,也就是说A+B+C = A+C+B = (A+C)+B。 这里举一个WIKI上的例子说明如何生成共享秘钥,也可以参考 Alice And Bob 的例子。 Alice 与Bob 要进行通信,双方前提都是基于 同一参数体系的ECC生成的 公钥和私钥。所以有ECC有共同的基点G。 生成秘钥阶段: Alice 采用公钥算法 KA = ka * G ,生成了公钥KA和私钥ka, 并公开公钥KA。 Bob 采用公钥算法 KB = kb * G ,生成了公钥KB和私钥 kb, 并公开公钥KB。 计算ECDH阶段: Alice 利用计算公式 Q = ka * KB 计算出一个秘钥Q。 Bob 利用计算公式 Q' = kb * KA 计算出一个秘钥Q'。 共享秘钥验证: Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q' 故 双方分别计算出的共享秘钥不需要进行公开就可采用Q进行加密。我们将Q称为共享秘钥。 在以太坊中,采用的ECIEC的加密套件中的其他内容: 1、其中HASH算法采用的是最安全的SHA3算法 Keccak 。 2、签名算法采用的是 ECDSA 3、认证方式采用的是 H-MAC 4、ECC的参数体系采用了secp256k1, 其他参数体系 参考这里 H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:在 以太坊 的 UDP通信时(RPC通信加密方式不同),则采用了以上的实现方式,并扩展化了。 首先,以太坊的UDP通信的结构如下: 其中,sig是 经过 私钥加密的签名信息。mac是可以理解为整个消息的摘要, ptype是消息的事件类型,data则是经过RLP编码后的传输数据。 其UDP的整个的加密,认证,签名模型如下:
区块链是一种分布式账本,具有不可变性,匿名性和可审计性,无需信任第三方。 为了提供数据交换以形成这样的账本,区块链网络使交易和区块的传播达到共识,主要由附着策略
课题研究的背景: 随着现代科技与信息产业的发展,现阶段,第四次工业革命初见端倪,全球即将进入一个以互联网、人工智能等新技术为核心的科技时代,同时,区块链
论文主要提出了一种针对共识机制PoS的多重签名算法Pixel。 所有基于PoS的区块链以及允许的区块链均具有通用结构,其中节点运行共识子协议,以就要添加到分类账
论文主要提出了一种针对共识机制PoS的多重签名算法Pixel。 所有基于PoS的区块链以及允许的区块链均具有通用结构,其中节点运行共识子协议,以就要添加到分类账
区块链技术被认为是第五大最有可能引发颠覆性革命的核心技术,在经历了阶段性的混乱以及泡沫期后,随着国家政策的介入以及相关监管的落实,会逐渐+B39步入正轨,往健康