时间:2024-12-21 04:12:43 点击:
本篇文章给大家谈谈区块链交易信息高度加密,以及区块链的加密对应的知识点,tp钱包致力于为用户带来全面可靠的币圈信息,希望对各位有所帮助!
区块链的三大特征
相比于传统的中心化方案,区块链技术主要有以下三个特征:
1、区块链的核心思想是去中心化
在区块链系统中,任意节点之间的权利和义务都是均等的,所有的节点都有能力去用计算能力投票,从而保证了得到承认的结果是过半数节点公认的结果。即使遭受严重的黑客攻击,只要黑客控制的节点数不超过全球节点总数的一半,系统就依然能正常运行,数据也不会被篡改。
2、区块链最大的颠覆性在于信用的建立
理论上说,区块链技术可以让微信支付和支付宝不再有存在价值。《经济学人》对区块链做了一个形象的比喻:简单地说,它是“一台创造信任的机器”。区块链让人们在互不信任并没有中立中央机构的情况下,能够做到互相协作。打击假币和金融诈骗未来都不需要了。
3、区块链的集体维护可以降低成本
在中心化网络体系下,系统的维护和经营依赖于数据中心等平台的运维和经营,成本不可省略。区块链的节点是任何人都可以参与的,每一个节点在参与记录的同时也来验证其他节点记录结果的正确性,维护效率提高,成本降低。
一句话概括,区块链触动的是钱、信任和权力,这些人类赖以生存的根本性基础。
区块链的价值源泉,一是效率。区块链既能降低信任成本,也能提高价值转移的效率,但同时又带来了额外的成本,区块链效率的价值要对几方面综合考量。
提高效率表现之一,在于区块链在降低信任成本上具有极大的优势。英国经济学家杂志称区块链是信任的机器,陌生人之间建立信任的成本接近于零。主要包括:区块链降低了搜索成本,反复验证的成本,以及基于区块链技术的智能合约极大降低了合约签署、管理及支付成本等等。比如,2018年麦肯锡公司对90多个区块链应用进行测算,应用70%的潜在价值在于降低成本,包括取消中间商,取消交易记录保存、核对流程等节约了成本。
提高效率表现之二,是区块链通过重新定义价值,使得价值点对点快速转移成为可能,让价值流动。传统互联网通过复制信息得以快速便捷地传播信息,但互联网无法解决账本变动和确权等问题,不能进行点对点的价值转移,必须依赖于第三方机构记账实现价值转移。区块链的分布式账本技术以及共识机制,使价值首先在参与者之间得以确权,并且在点对点转移的整个过程中,所有参与者都能同步进行账本更新,加上独一无二的时间戳,避免重复支付的问题,令价值点对点转移成为可能。
但是另一方面,区块链的分布式账本技术与中心化数据库相比,还有很多低效率的特征。主要包括信息吞吐量低,交易确认延迟时间长,区块链容量有限,POW(工作量共识算法)能耗高,以及区块链上链信息不可修改、数据难以回滚等。
因此,评判一个区块链应用是否能提高效率,既要做加法,也要做减法,区块链并非适用于所有场景,更适合于信任成本很高的行业或场景。
区块链的价值源泉,二是公平。首先,区块链带来的公平在于数据归属与使用权利的重新分配。传统的互联网平台模式下,形成很多互联网巨头,无论是个人或企业的数据,上网后的归属与使用,往往不再由数据所有者决定。引入区块链技术后,区块链上交易信息公开,但账户身份信息会被高度加密,只有通过数据拥有者授权才能访问,数据拥有者真正拥有了数据的使用权利,区块链把以前的数字资源变成了数字资产,成为一种财产权益,区块链使得数据市场“谁拥有、谁受益;谁使用、谁付费”的合理机制得以建立。
其次,区块链使得参与区块链的用户个体表达有了实现渠道。去中心化、自治、开放、透明是区块链的底层逻辑,特别是在公有链项目中,每个个体都是一个节点,通过参与社区治理,每个节点都可以表达自己的意见,输出影响力。
一、去中心化。
区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。
二、开放性。
区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
三、独立性。
基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
四、安全性。
只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更 。
五、匿名性。
除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
拓展资料:
1、什么是区块链一句话概括。
答:区块链是加密的数据库链条,即在多个时间戳/事件内交易数据加密后关联在一起,数据不可篡改可共享。
2、表现及逻辑:
a、外部操作表现形式:银行存取款汇款、记进出账、购物等。
b、内部逻辑处理(软件程序):人为操作后数据会先加密后存储到数据库,经过程序对数据进行划分区域,比如根据事件、时间戳内发生的数据进行归类放在一起为一个区域的数据。多个事件、时间戳内发生的数据相关联就是区块链。这样加密的数据可共享,但不可篡改。
c、共享表现形式:查询个人信息、查账等。查询权限/共享权限:权限不同查询的数据不同,如银行可以查所有人信息,个人只能查个人。
3、举的例子大多不同,但逻辑处理的思路是一致的,只不过实现方法和操作不一而已。
4、区块链:具有加密数据、不可篡改数据、共享数据特点。
5、区块链技术:即用编辑的程序对数据进行加密、分区、共享等运用的技术。
开放,共识,任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝,节点之间基于一套共识机制,通过竞争计算共同维护整个区块链。
去中心化、去信任机制,区块链由众多的节点共同组成一个点对点的网络,不存在中心化的设备和管理机构,节点之间数据交互通过数字签名技术进行验证,不需要信任,只需要按照设置好的规则就行,节点之间不存在欺骗不信任的问题。
交易透明,双方匿名,区块链的运行规则是公开透明的,所有的数据信息也是公开的,每笔交易都是对所有节点公开可见,由于节点之间是去信任的,因此节点不需要公开身份,每个参与的节点都是匿名的。
不可篡改,可追溯,单个节点甚至多个节点对数据库的修改无法影响其他节点的数据库,区块链中的每一笔交易都通过密码学方法与两个相邻的两个区块串联,因此可以追溯每一笔交易的所有记录。
先放一张以太坊的架构图:
在学习的过程中主要是采用单个模块了学习了解的,包括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的整个的加密,认证,签名模型如下:
被盗币和被攻击应该是交易所很头疼又很难避免的问题,大的交易所一般会自己组建技术团队开发交易支付系统,中小型交易所可以对接第三方技术服务商,这样研发和运维成本比较低。
我熟悉的交易所使用的是币付企业版,是一个数字资产安全支付系统,大致原理就是把私钥本地化存储,多重加密绑定交易所唯一客户端,系统本身不保存私钥,从源头杜绝数字币被盗的可能。操作起来也比较方便,多链多币种统一管理,对账方便。
望采纳。
都看完了嘛相信现在您对区块链交易信息高度加密有一个初级的认识了吧!也可以收藏tp钱包页面获取更多区块链的加密知识哟!区块链、虚拟币,我们是认真的!
www.4p3.cn 版权所有 赣ICP备2024038979号-2
本网站内容由互联网收集整理,目的在于研究学习传递之用 如有不妥请联系删除 gg.e@163.com