创建区块链实训报告总结 大学区块链金融实训报告

快讯指南 今日快讯 2023-01-27 200 0

今天给大家聊到了创建区块链实训报告总结,以及大学区块链金融实训报告相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。

什么是区块链,区块链有什么作用?

什么是区块链?会对以后的生活带来什么样的改变?

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

比特币白皮书英文原版其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书中文翻译版中,将 chain of blocks 翻译成了区块链。这是“区块链”这一中文词最早的出现时间。

国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行。

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

其实非常简单和形象的理解我们可以想象为把生活的一切事情都以数字化的形式实现,衣食住行,看病,教育等等的一切,以互联网为基础,在家就可以轻松搞定,不论去哪里办事还是交易,手机就可以完全操作完成,随着不断的发展我们的万事万物都可以在网上轻松完成,比容工作,生产,种植等等,当然5g的崛起带来的到底是什么现在也没有人可以精准的预测,但是肯定会给生活和 社会 形态带来翻天覆地的变化!

区块链诞生自中本聪的比特币,自2009年以来,出现了各种各样的类比特币的数字货币,都是基于公有区块链的。

数字货币的现状是百花齐放,列出一些常见的:bitcoin、litecoin、dogecoin、OKcoinetc,除了货币的应用之外,还有各种衍生应用,如NXT,SIA,比特股,MaidSafe,Ripple,Ethereum等等。

2016年1月20日,中国人民银行数字货币研讨会宣布对数字货币研究取得阶段性成果。会议肯定了数字货币在降低传统货币发行等方面的价值,并表示央行在 探索 发行数字货币。

可以用区块链的一些领域可以是:

▪ 智能合约

▪ 证券交易

▪ 电子商务

▪ 物联网

▪ 社交通讯

▪ 文件存储

▪ 存在性证明

▪ 身份验证

▪ 股权众筹

可以把区块链的发展类比互联网本身的发展,未来会在internet上形成一个比如叫做finance-internet的东西,而这个东西就是基于区块链,它的前驱就是bitcoin,即传统金融从私有链、行业链出发(局域网),bitcoin系列从公有链(广域网)出发,都表达了同一种概念——数字资产(DigitalAsset),最终向一个中间平衡点收敛。

区块链体系结构的核心优势包括:

任何节点都可以创建交易,在经过一段时间的确认之后,就可以合理地确认该交易是否为有效,区块链可有效地防止双方问题的发生。对于试图重写或者修改交易记录而言,它的成本是非常高的。区块链实现了两种记录:交易(transactions)以及区块(blocks)。交易是被存储在区块链上的实际数据,而区块则是记录确认某些交易是在何时,以及以何种顺序成为区块链数据库的一部分。交易是由参与者在正常过程中使用系统所创建的(在加密数字货币的例子中,一笔交易是由bob将代币发送给alice所创建的),而区块则是由我们称之为矿工(miners)的单位负责创建。

所以终上所述,这无疑是一个改变生活的新技术,未来的整个 社会 的生产活动都会以区块链作为底层逻辑展开进行,很多事情我们都可以触手可及,加上人工智能和大数据的融入,能让我们轻松搞定现在看来貌似比较繁琐的事情,比如一些证券市场的交易,和理财活动的智能化匹配。

通俗易懂的说区块链是将人财物,人机物、人场货一体化,打包做成一个整体;把它放在一个基础设施上来运行的网络计算中心。

现在笔者的脑洞不够大,无法想象未来的世界会是什么样子的,很期待!

这个问题,我了解一二,下面我们就认识一下这个神秘的东东-区块链。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块

越是热潮,越要去伪存真。首先,我们先得搞清楚什么是真正的区块链技术。

举例说明, 以网上购买水果为例。

以网购买水果的流程如下 :

使用区块链技术,去中心化的形态后,购买水果的流程如下:

小结:

1、我们发现,原有的交易流程是:买家跟卖家做交易,所有的关键流程都是在跟支付平台打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过平台寻求帮助,让平台做出仲裁。但平台发生重大bug或被黑客攻击,导致一段时间内的转账记录全部丢失,损失怎么处理是一个麻烦事。

2、使用区块链技术的交易流程是:所有人的账本上都有着完全一样的交易记录,即使支付宝的账本服务器坏了,卖家的账本还存在,买家账本还存在。这笔交易一旦发生,就再也抹不去痕迹。

这就是区块链的核心,就是“记账+认账”四个字。

区块链技术的发展与成熟离不开以上新一代互联网技术的基础和铺垫,区块链不单单是一种技术,更是提供了一种服务模式和解决方案,为互联网产业的进一步发展起到了极其重要的推动作用。

1、区块链+金融

2、区块链+供应链管理

3、区块链+智能制造

4、区块链+公共服务

5、区块链+教育就业

6、区块链+文化 娱乐

7、区块链+支付

8、 区块链+发票{深圳已启用}

区块链的可追溯性及不可篡改性,与金融行业天生本质及需求,恰好结合到一起,这使得区块链在金融服务领域的应用,是到目前为止最为深入、相对成熟的领域。区块链技术有着广泛的应用前景。未来的 科技 竞争,也必将是属于区块链的竞争。

理解区块链很重要,这对于识破各种伪区块链骗术很重要。

如果别人用一堆专业术语来解释区块链,您很难听懂,他自己也未必真懂。

所以,我们首先建立起一道心理防线。给您兜售概念、讲一大堆不明觉厉专业术语的人,可能就是骗子。要千万小心!

理解区块链要知道区块链最核心的诉求是什么。您想象,当今互联网高度发达的世界,最担心什么?

隐私,对就是隐私。如何保护隐私?您随时可能被监控着,您个人的任何资料随时都有可能被人窃取。如果个人隐私得不到绝对保护,那互联网就会变成另一个权力金子塔。站在金子塔顶的是谁?是最聪明的技术高手,是平台提供者,是信息监管者。您我,可能是这个金子塔底的人。

最初发明区块链的人怀着个人被互联网完全吞噬的严重忧虑,试图创造一种绝对安全的加密技术,把个人隐私锁起来。这种技术完全颠覆了传统的加密技术。实际上,与其说是把隐私锁起来,还不如说是把隐私撕碎,然后把各个碎片分配到不同人手里私下保管。除非所有人都同意把碎片拿出来拼出完整的密码,否则真相无法再现。这也就是区块链的第一个机制,即去中心化。

但是光去中心化还不够,还必须让那些偷密码碎片的人无处遁形,让小偷的每一个动作都被无法擦除的记录下来,并在互联网中随处扩散,公之于众。这就是区块链的第二个机制,即不可匿机制。您想,哪个窥探隐私的人不是鬼鬼祟祟的?

总结起来,区块链就是要把隐私分散地藏起来,把任何再现这个隐私的行动记录起来并公之于众。看到这,您可能要为区块链拍手叫绝了。先别急,世上哪有那么好的事?存在绝对安全的乌托邦吗?如果真能实现绝对意义上的区块链,政府的存在还有意义吗?不错,区块链最初就是无政府主义的化身。它的终极意义注定不会实现。它的生存可能必须依附权力,注定成为另一个被精致包装的谎言,骗人的幌子。从这个意义上讲,政府必然也必须为区块链的发展指定框架,对区块链的价值进行重构,将区块链里面裹挟的反政府、反国家企图驱逐出去。区块链的一些技术能够具体应用,但绝不能宣扬什么去中心化。总之,对区块链要保持高度警惕。美丽的外表下面往往藏着毒刺。绝对理想化的配方往往成了毒药。那个说能绝对保护你隐私和资金安全的人,才是真正的偷窥狂和吸血魔。

我们最能保护隐私的方法或许只能是不要有任何隐私,完全坦荡地生活,要么活成一轮太阳,要么活成一个酒神。

观点:1.区块链概念最早起源于比特币技术属性(分布式数据存储记账、去中心化、无法篡改交易记录、点对点信息传输、共享机制…),但后来有人把概念继续延伸和扩展到很多商业领域便于资本炒作,2.现实中的区块链(目前市面上的区块链非常混乱),炒作概念在股市圈钱的居多,还存在缺乏监管漏洞,法律法规问题等,甚至存在洗钱的情况(区块链产品实际运作是一回事,背后资本运作是另一回事),就目前而言全世界的计算机体系无法满足区块链属性特征的技术要求(比如分布式数据存储记账,去中心化……,),网络带宽以及存储技术和计算机运算体系都无法实现交易运行要求(很容易通过计算机技术手段让你的网络堵塞或无法完成分布式数据存储或交易随时中断或延迟等实际应用产生的风险,另外就目前全球的计算机体系而言很容易破解区块链底层程序(这是目前全球的计算机存在的致命缺陷,0和1二进制逻辑,另外如果采用逆区块链模式运算算法非常容易破解区块链,这种逆运算模式也完全可以篡改所有交易记录,如果未来真正意义的量子计算机面市,更可以直接秒破所有区块链计算机体系,比特币挖矿就是庞氏骗局,3.目前全球市面上的区块链大多基本都是资本炒作概念圈钱,

区块链的提法已经有几年了,去年初听一个区块链大佬说,2018年是区块链最好的发展之年,过了这一年,外发展就落后了。 什么是区块链?影响的说,就像猪大肠,一节一节连在一起。区块链就是要把这些区块连在一起,固定下来,采用计算机和互联网加密技术,防止向外泄露秘密。 这项技术不能通过专业术语讲给非专业人士听,一般情况下听不懂。只能打比方来说明。我来举两个例子:

1.甲乙丙丁四个人在麻将馆打麻将赌钱,每局用筹码,散伙的时候一次性结账,甲输了1500元,乙输了300元,丙赢了200,丁赢了1600。结果,甲只有1000元,其他人都理清了,但甲还欠丁400元。这件事,只有这四个人都知道,这四个人就是一个区块。 口说无凭,这种事也不会写欠条,今后甲不还钱,怎么办?这事除了甲乙丙丁4人在场,其他人都不知道,如果甲要赖账,说根本不欠钱,也只有乙丙丁这3人知道甲赖账,其他人不好判断甲是否欠钱不还。 所以,区块链的价值需要扩大参与面,如果这4个人当时打麻将的时候,有十几个朋友围观呢?这甲赖账的成本就大了吧?这是现实生活的区块。延伸到互联网呢?那就有无限可能了,场景就多了。

2.假如甲乙丙丁四个人是在一个500人的生意群里面做生意,这500人的群就是一个大区块。有一次,甲向乙要了一万元的货,但是没有及时打钱给乙,甲当时说3天内就打钱给乙。这事在群里大家都知道,如果甲在3天内没打钱给乙,那这个群里的其他498位生意伙伴都知道了,甲如果要赖账不还,自己在这个生意圈里面的声誉就受到影响。这是一个区块。

后来,甲又想丙做生意,丙向甲要货,甲说,你先打5000定金,马上就发货,丙打了5000块钱给甲,结果甲迟迟不发货,这事群里面的人都知道,这又是一个区块。两个区块连在一起,大家对甲的信誉就怀疑了。这样搞几次,甲先生今后还玩得下去吗?这就是区块链的价值。

区块链,看似复杂,其实也不复杂;看似简单,其实真要操作起来也很难。区块太小,没有什么意义。区块想要做大,会涉及隐私和商业秘密,比如谈恋爱这事,就不方便在大群里说;比如合作做大生意,就不方便事前在群里(区块)公开讨论。不过,区块链技术使用的场合还是有的,比如扶贫工作、救灾资金管理等,晒在阳光下,大家都知道,相互来监督。 举了这两个例子,不知道大家了解了一点没有?

【关于区块链最核心、易懂的简介】

一、区块链是如何创造信任的?我们以 “1”、 “2”、 “3”来总结区块链的特点:

- “1”句话概括区块链:可信的分布式数据库;

- “2”大核心性质:分布式、不可篡改;

- “3”个关键机制:密码学原理、数据存储结构、共识机制。

“分布式”与“不可篡改”的性质保证了区块链的“诚实”与“透明”,这是区块链能够创造信任的基础。

二、行业方面,预计未来3-5年将以金融行业为主,逐渐向其他实体行业辐射,更切合实际的场景加速落地,行业从“1到N”发展到包括 娱乐 、商品溯源、征信等。

未来,区块链除了自身运用侧链、闪电网络、跨链等技术外,更需要与5G、人工智能、大数据、物联网等新兴信息技术深度融合,从而提升技术性能和链下数据质量并减少资源浪费。

三、智能合约可能是区块链上最具革命性的应用。如果智能合约在区块链上实现广泛运用,经济分工将在互联网时代进一步细化,全球范围内的各网络节点将直接对接需求和生产,更广泛的 社会 协同将得以实现。

如果上述愿景实现,区块链技术与行业的结合有望迎来“从1到N”的爆发时刻,它的爆发或将不是线性的而是非线性的,区块链也才可能从“信任机器”升级成为引领产业浪潮的重要“引擎”。

去中心化。防止作弊。原来一个人记账,可以改,现在是50个人,每个人记录一笔,每个人都账本都有记录,你能把50个都改了吗?50个账本是通的,除非都改掉。所以用处很大。

看到很多人回答,普通人不能直观地理解。我简单明了地解释一下,区块链就是去中心化,发生一件事的时候,大家都记下,且有自己的密码,不可篡改。

就是黑客想改,也得一个一个来,累死他,事实上不可能,至少目前。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。

区块链起源于比特币,是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。

区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。

看了这么多高人的精心指点,本人还是一脸懵,就只记得好像以前有人利用这个所谓的“区块链”做传销……

区块链一般概念摘要

虽然是个前端开发创建区块链实训报告总结,但是阻挡不了创建区块链实训报告总结我八卦各种热门的心。下面简单汇总下一些学习到的概念性东西。

1、区块链技术随比特币诞生,因此先了解比特币概念

2、比特币是什么

(1)、基于分布式网络的数字货币

3、比特系统运行原理

(1)、所有节点都会保存完整账本

(2)、账本保持一致性

4、区块链记账原理

hash函数在区块链技术中有广泛的运用

(1)、哈希函数hash:任何信息hash后会得到一个简短的摘要信息

(2)、hash特点:简化信息、标识信息、隐匿信息、验证信息

(3)、区块链记账会把时间节点的账单信息hash,构成一个区块

(4)、比特币系统约10分钟记账一次,即每个区块生成的时间间隔大约10分钟

(5)、记录下一个账单时,会把上一个区块的hash值和当前账单的信息一起作为原始信息进行hash

(6)、每个区块都包含了之前区块的信息,这些区块组合成了区块链

5、比特币的所有权-非对称加密应用

比特币系统使用了椭圆曲线签名算法,算法的私钥由32个字节随机数组成,通过私钥可以计算出公钥,公钥经过一序列哈希算法和编码算法得到比特币地址,地址也可以理解为公钥的摘要。

(1)、转账是把比特币从一个地址转移到另一个地址

(2)、地址私钥是非对称的关系,私钥经过一系列的运算(其中包含两次hash),就可以得到地址,但是从地址无法得到私钥

(3)、转账成功后广播其他节点,其他节点验证成功后再转发到相邻的节点,广播的信息包含了原始的信息和签名信息

(4)、验证,其他节点验证签名信息是不是付款方用私钥对交易原始信息签名产生的,如果是才记录(再验证有足够余额)

6、比特币如何挖矿

(1)、完成记账的节点可以获得系统给予的一定数量比特币奖励(这个奖励过程也就是比特币的发行过程,因此大家把记账称为挖矿)

(2)、一段时间内只有一人可以记账成功,因此需要收集没有被收集的原始交易信息,检查有没有余额、正确签名

(3)、为了提高记账难度,十分钟左右只有一人可以记账,hash结果需要若干0开头,并且进行hash时引入随机数变量

(4)、随着更多矿工的加入,游戏难度越来越大,计算难度加大,电力损耗等加大,国内电力成本低,中国算力占整个网络的一半以上

(5)、网络中只有最快解密的区块,才会添加到账本中,其他的节点复制,保证账本的唯一性。如果有节点作弊,导致整个网络不通过,则会被丢弃再也不会记录到总账本中。因此所有节点都会遵守比特币系统的共同协议。

【关于区块链会延伸到那些领域的思考】:

由以上的概念可以总结出,区块链技术存在这安全性、唯一性、去中心化。

原则上是可以避免部分信息泄露,让确认方既可以确认创建区块链实训报告总结你的身份,又无需暴露自己的真是用户信息等。

目前区块链技术集中被运用再比特币,我觉得后续更大的意义应该在需要数据私密性、安全性的领域。

【关于区块链目前发展的瓶颈和局限性思考】:

由于每个节点都参与了整个账本记录活动,难免造成资源的浪费和损耗。以及加大了每个节点的计算难度,后续的发展和普及需要每个节点的硬件提升。

第4课 区块链中的密码学 学习总结

这是加入公Ulord深度学习第四课,杨博士给大家主讲区块链中的密码学问题,本期课程令让创建区块链实训报告总结我弄懂创建区块链实训报告总结了一个一直困扰着我的关于公钥和私钥的问题,他们之间到底是什么关系创建区块链实训报告总结?再这次学习中我得到了答案,现在我把我学习到的内容跟大家分享一下。

区块链里的公钥和私钥,是非对称加密里的两个基本概念。

公钥与私钥,是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥是非公开的部分。公钥通常用于加密会话,就是消息或者说信息,同时,也可以来用于验证用私钥签名的数字签名。

私钥可以用来进行签名,用对应的公钥来进行验证。通过这种公开密钥体制得到的密钥对能够保证在全世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密数据,则必须用它对应的另一个密钥来进行解密。

比如说用公钥加密的数据就必须用私钥才能解密,如果用私钥进行加密,就必须要对应的公钥才能解密,否则无法成功解密。另外,在比特币的区块链中,则是通过私钥来计算出公钥,通过公钥来计算出地址,而这个过程是不可逆的。

企业如何建立自己的区块链?

你好,谢邀!

企业如何建立自己的区块链?

随着各种币交易的流行,从而带动了交易所行业的发展,那么作为想要跨行业的小白,如何建立一个区块链交易所开发公司?链软网络为你总结了以下几点。

请点击输区块链入图片描述

1.确定交易所开发公司的运营范围

确定公司的运营范围很重要,这关乎到公司是否有盈利的可能。每天区域的相关法律法规都不一样,因此第一步是要先了解当地法律法规,并且需要获得必要的许可和批准,以便根据您的运营范围开设比特币交易所,避免触犯当地法律法规,带来不必要的麻烦。

2.查看国家/地区的法规和合规性要求

几乎所有政府都要求参与货币兑换业务的实体遵守“ 了解客户”(KYC)规范。KYC是企业通过政府颁发的身份证或护照验证其客户身份的过程。这里的主要目的是防止洗钱。确保遵守您所在国家/地区的KYC规范,并在您的交易所中集成合适的客户验证程序。

3.与银行或付款处理方合作

您需要与银行或支付提供商合作,通过法定货币处理付款。可以选择一家拥有大量在线设施的值得信赖的银行。

4.在您的交易所创造流动性

任何交易所都需要流动性才能成功运作。客户在下订单甚至存入资金时犹豫不决,除非他们看到完整的订单和交易活动。新交易自然会遇到流动性问题。

5.确保交易和客户数据的高级别安全性

任何交易所开发公司都需要一流的安全性,以确保交易所运营商和交易员的资金保持安全。这也应该适用于您的客户的私人数据,包括他们的KYC详细信息和银行帐户信息。多年来安全漏洞未被注意到的Gox漏洞导致当时流通的比特币总数的近1%被盗。据链软网络获悉,在2009年至2019年期间,所有比特币交易所中有三分之一被黑客入侵。因此安全性必须是您交易中的首要任务。

6.建立客户支持渠道

最后,客户支持是成功交换的另一个重要组成部分。需要工作人员来批准KYC请求,回答客户投诉,处理存款和提取法定货币等。快速的客户支持机制可确保您的客户从签署之日起开始交易并为您的交换创造收入。

希望有帮助帮助到你解决相关问题,更多问题详情欢迎随时咨询探讨!

区块链项目分析报告一般包括哪几个板块?

区块链的分析报告目前有两种,一种是评级报告,一种是跟踪报告。基本板块都会包括有项目基础信息、团队情况、社区媒体情况、技术进展、市场趋势这四大部分,唯一不同的就是评估报告会给出项目评分比如大炮评级,跟踪报告则采取长期跟踪的方式持续关注,比如头等仓就是以一周两更的方式进行分析。

区块链之加密原理总结(一)

    先放一张以太坊的架构图:

    在学习的过程中主要是采用单个模块了学习了解的,包括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 1.2的伪随机函数使用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的整个的加密,认证,签名模型如下:

创建区块链实训报告总结的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于大学区块链金融实训报告、创建区块链实训报告总结的信息别忘了在本站进行查找喔。

评论