区块链密钥几位
① 什么是区块链钱包
区块链钱包就是保存区块链各种币(比特币、以太币等)的一个软件
密钥和地址就是区块链世界里的银行卡号和密码
钱包本质是保存密钥,也就是保存银行卡和密码
为什么需要钱包保存密码?不像银行卡密码,区块链币的密码是一串长达256位,无任何含义的二进制数字。
以太坊系钱包有几个名词必须深刻理解,不然就有可能造成区块链资产的损失,这几个名词为地址、密码、私钥、助记词、keystore。若以银行账户为类比,这 5 个词分别对应内容如下:
地址=银行卡号
密码=银行卡密码
私钥=银行卡号+银行卡密码
助记词=银行卡号+银行卡密码
Keystore+密码=银行卡号+银行卡密码
Keystore ≠ 银行卡号
你若把钱包信息忘了,会有什么后果呢?分这么几种情况:
(1)地址忘了,可以用私钥、助记词、keystore+密码,导入钱包找回。
(2)密码忘了,可以用私钥、助记词,导入钱包重置密码。
(3)密码忘了,私钥、助记词又没有备份,就无法重置密码,就不能对代币进行转账,等于失去了对钱包的控制权。
(4)密码忘了,keystore 就失去了作用。
(5)私钥忘了,只要你钱包没有删除,并且密码没忘,可以导出私钥。
可以用助记词、
(7)助记词忘了,可以通过私钥、keystore+密码,导入钱包重新备份助记词。
(8)keystore 忘了,只要你钱包没有删除,密码没忘,可以重新备份keystore。
助记词,
从上可以看出,只要「私钥、助记词、Keystore+密码」有一个信息在,钱包就在。因此,备份好「私钥、助记词、Keystore+密码」最关键。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
② 区块链中的数据是的加密的那其他节点如何访问
“龙龘网络”很高兴能够为您解答。
首先,区块链技术当中的这个加密所指的是,数据在传输的时候以一种加密技术进行编译,而不是说对显示的数据进行加密,因为区块链还有一个特点,那就是信息公开透明化,所有的储存在区块链上的交易记录、资产数量等信息都是可追溯查询的,当区块链中,每完成一笔交易,都会以发起方为原点向四周进行广播,将信息同步给周围的节点,这些收到信息的节点将继续对四周进行广播,继续将信息发送给周围的节点。最终,这笔交易信息将会扩散至全网,实现全网共同记账。
因此,这个数据所有人都可见,但是无法修改,也就是相当于“只读”状态,这就是区块链的另外一大特点“防篡改”。
区块链当中所使用的是“非对称加密技术”,就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
私钥通常是在你需要使用你加密钱包当中的数字货币的时候才会需要用上,当你要发起一笔转账交易的时候,你必须要使用自己的私钥对摘要进行非对称加密,公钥与私钥是唯一的对应关系,如果用公钥加密数据,那么要想解密就只有用对应的私钥才能实现。
希望“龙龘网络”的回答能够帮助到您。
③ 区块链中的私钥是指什么
私钥公钥这个名词可谓是所有考题中最简单的了。
公开的密钥叫公钥,只有自己知道的叫私钥。
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。
一句话明了~
④ 区块链之加密原理总结(一)
先放一张以太坊的架构图:
在学习的过程中主要是采用单个模块了学习了解的,包括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的整个的加密,认证,签名模型如下:
⑤ 区块链的基础知识有哪些
1、FISCO BCOS使用账户来标识和区分每一个独立的用户。在采用公私钥体系的区块链系统里,每一个账户对应着一对公钥和私钥。其中,由公钥经哈希等安全的单向性算法计算后,得到的地址字符串被用作该账户的账户名,即账户地址。仅有用户知晓的私钥则对应着传统认证模型中的密码。这类有私钥的账户也常被称为外部账户或账户。
2、FISCO BCOS中部署到链上的智能合约在底层存储中也对应一个账户,我们称这类账户为合约账户与外部账户的区别在于,合约账户的地址是部署时确定,根据部署者的账户地址及其账户中的信息计算得出,并且合约账户没有私钥。
3、SDK需要持有外部账户私钥,使用外部账户私钥对交易签名。区块链系统中,每一次对合约写接口的调用都是一笔交易,而每笔交易需要用账户的私钥签名。
4、权限控制需要外部账户的地址。FISCO BCOS权限控制模型,根据交易发送者的外部账户地址,判断是否有写入数据的权限。
5、合约账户地址唯一的标识区块链上的合约。每个合约部署后,底层节点会为其生成合约地址,调用合约接口时,需要提供合约地址。
⑥ 目前区块链是不是比较火,怎么理解区块链呢
区块链并不只是火,在中国算是火,但知道的了解的还是不多。但在世界范围是引起了一定轰动的。历史背景是比特币创造者中本聪在2008年,于《比特币白皮书》中提出“区块链”概念,并在2009年创立了比特币社会网络。
几个主要特征:
区块链本质上是一个去中心化的数据库。我们现在生活中的信息都是中心化的。比如说转账,你是先把钱转给银行A,银行A再转给银行B,或者更多中间者,从而转到国外或者其他地方。任何信息都是转移到一个中心站,再重新分配。在区块链中,所有数据都是分散的,数据的交互也是直接的,从数据的起点直接到需要接收的地方。所以数据传输更快,更直接,也不会被操控。
为什么叫区块链? 拿比特币区块链为列子。世界上每10分钟的所有比特币交易信息都会记录在一个区块里面,而且这十分钟的数据储存被所有用户所监控,信息是透明的,并且不能被篡改的。当十分钟之后,会生成下一个区块,新的区块是与之前的区块联系在一起的。所有如果有人想篡改一个区块的信息,那他必须篡改在此之前所有区块的信息,以现在的技术是不可能的。
有什么运用?
1.想一下如果在企业应用中利用区块链,提供更灵活、安全和高效的业务流程和分布式、独立的市场。区块链让资产所有者在更安全,更具透明度、私密性和自我协调能力的交易“链”上追踪和交易有价值的事物,例如未清发票。这种能力提高了现金和资产管理的速度和灵活度。比如说,你害怕买到假东西,因为一个生产商家,生产之后转移给数个中间商,然后你是通过中间商购买的,并不是生产厂家。如果所有数据都是分散的,点到点的,透明的,那么你可以直接从生产厂家购买并支付。
2.其他资产的自动化市场将是多样化的。从本质上来说,由于软件本身是受控制开放式架构,且对所有交易参与方可见,所以基于区块链的交易能够降低对第三方监管的需求。如果企业能够将价值信息发布给多个潜在买家,而对所有买家来说,其内容可以信任且真实可见,卖家也不能二次销售,那么在进行购买时就会形成开放、透明的竞争环境,卖家也可以获得更好的价格。
3.减少业务交易摩擦。管理支出对大多数机构来说是一项挑战。但区块链能够让企业为供应商和合作伙伴创建自我管理网络,实现合约自动化、即时支付、货物运输的追踪,以及整条供应链的可视性。比如说,如果一家公司用冷藏集装箱运输易腐货物,在集装箱温度超过某个阈值时,货车上的物联网传感器可能会调用区块链上的智能合约。这将会使得相应订单取消,而它还能够自动创建新的订单,从而立即发送第二批货物,装有故障冷藏设备的货车也可以前往维修处进行维修。
4.这类网络通过降低或消除人机交互,减少了交易失误及信息遗漏。而且,通过将买家与卖家直接联系起来,交易会变得更快。管理和保障去中心化私有记录。其传统的行业做法是依靠第三方,利用防火墙和受限访问保障他们的共享信息数据库。而频繁出现的数据外泄事件显示,这种做法并不十分理想。区块链的一个根本优势在于,每一个单独的数据记录或元素都是通过一位区块链成员的密钥进行加密的。网络犯罪可能需要获得每一位成员的每个密钥,才能访问所有的区块链数据。这并不是说区块链能够100%保证所有数据安全,有助于降低大量私密记录曝光的可能性。
5.一种合理的应用是员工或学生记录,雇主、教育机构甚至行业认证机构都能在有需要的情况下添加新的资格证书、成绩或工作地点。想象一下,给员工一个可以访问其所有雇员记录的密钥,作为包含人力资源的安全区块链的一部分。个体能够安全地与其他公司或教育机构共享他们的大学成绩单或就业历史,而不必依赖那些不可靠且易伪造的传真。追溯产品和原料的原产地。区块链可以通过简化在用产品和原料的追踪和定位方式,帮助确保产品质量和安全。举个例子,假如一家汽车制造商形成了包括零部件供应商、部件装配商、质量控制供应商公共管理机构(例如国家公路交通安全管理局)在内的以质量为中心的区块链。那么缺陷部件的召回流程处理速度会更快。想到每年有成千上万的人因汽车零件缺陷而丧生,这一实现非常有意义。
所有总结来说区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式(引用网络)
以上内容,一半手写,一半引用,若有仍有疑惑,可以看一下下面链接的有关区块链的TED演讲,有中文字幕。希望能帮到你
网页链接
⑦ 区块链的故事 - 9 - RSA 算法
RSA
迪菲与赫尔曼完美地解决了密钥分发的难题,从此,交换密钥就很简单了,爱丽丝与鲍勃完全可以可以在村头大喇叭里喊话,就能够交换出一个密钥。但加密的方式,依然是对称加密的。
DH 协议交换密钥虽然方便,但依然有一些不尽人意的麻烦处,爱丽丝还是要与鲍勃对着嚷嚷半天,二人才能生成密钥。当爱丽丝想要交换密钥的时候,若是鲍勃正在睡觉,那爱丽丝的情书,还是送不出去。
迪菲与赫尔曼在他们的论文中,为未来的加密方法指出了方向。 通过单向函数,设计出非对称加密,才是终极解决方案。 所谓非对称加密,就是一把钥匙用来合上锁,另一把钥匙用来开锁,两把钥匙不同。锁死的钥匙,不能开锁。开锁的钥匙,不能合锁。
麻省理工的三位科学家,他们是罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman),他们读了迪菲与赫尔曼的论文,深感兴趣,便开始研究。迪菲与赫尔曼未能搞定的算法,自他们三人之手,诞生了。
2002 年,这三位大师因为 RSA 的发明,获得了图灵奖。 但不要以为 RSA 就是他们的全部,这三位是真正的大师,每一位的学术生涯都是硕果累累。让我们用仰视的目光探索大师们的高度。
李维斯特还发明了 RC2, RC4, RC 5, RC 6 算法,以及著名的 MD2, MD3, MD4, MD5 算法。他还写了一本书,叫 《算法导论》,程序员们都曾经在这本书上磨损了无数的脑细胞。
萨莫尔发明了 Feige-Fiat-Shamir 认证协议,还发现了微分密码分析法。
阿德曼则更加传奇,他开创了 DNA 计算学说,用 DNA 计算机解决了 “旅行推销员” 问题。 他的学生 Cohen 发明了计算机病毒,所以他算是计算机病毒的爷爷了。他还是爱滋病免疫学大师级专家,在数学、计算机科学、分子生物学、爱滋病研究等每一个方面都作出的卓越贡献。
1976 年,这三位都在麻省理工的计算机科学实验室工作,他们构成的小组堪称完美。李维斯特和萨莫尔两位是计算机学家,他们俩不断提出新的思路来,而阿德曼是极其高明的数学家,总能给李维斯特和萨莫尔挑出毛病来。
一年过后,1977 年,李维斯特在一次聚会后,躺在沙发上醒酒,他辗转反侧,无法入睡。在半睡半醒、将吐未吐之间,突然一道闪电在脑中劈下,他找到了方法。一整夜时间,他就写出了论文来。次晨,他把论文交给阿德曼,阿德曼这次再也找不到错误来了。
在论文的名字上,这三位还着实君子谦让了一番。 李维斯特将其命名为 Adleman-Rivest-Shamir,而伟大的阿德曼则要求将自己的名字去掉,因为这是李维斯特的发明。 最终争议的结果是,阿德曼名字列在第三,于是这个算法成了 RSA。
RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开,用作加密密钥。
例如,选择两个质数,一个是 17159,另一个是 10247,则两数乘积为 175828273。 乘积 175828273 就是加密公钥,而 (17159,10247)则是解密的私钥。
公钥 175828273 人人都可获取,但若要破解密文,则需要将 175828273 分解出 17159 和 10247,这是非常困难的。
1977 年 RSA 公布的时候,数学家、科普作家马丁加德纳在 《科学美国人》 杂志上公布了一个公钥:
114 381 625 757 888 867 669 235 779 976 146 612 010 218 296 721 242 362 562 842 935 706 935 245 733 897 830 597 123 563 958 705 058 989 075 147 599 290 026 879 543 541
马丁悬赏读者对这个公钥进行破解。漫长的 17 年后,1994 年 4 月 26 日,一个 600 人组成的爱好者小组才宣称找到了私钥。私钥是:
p:3 490 529 510 847 650 949 147 849 619 903 898 133 417 764 638 493 387 843 990 820 577
q:32 769 132 993 266 709 549 961 988 190 834 461 413 177 642 967 992 942 539 798 288 533
这个耗时 17 年的破解,针对的只是 129 位的公钥,今天 RSA 已经使用 2048 位的公钥,这几乎要用上全世界计算机的算力,并耗费上几十亿年才能破解。
RSA 的安全性依赖于大数分解,但其破解难度是否等同于大数分解,则一直未能得到理论上的证明,因为未曾证明过破解 RSA 就一定需要作大数分解。
RSA 依然存在弱点,由于进行的都是大数计算,使得 RSA 最快的情况也比普通的对称加密慢上多倍,无论是软件还是硬件实现。速度一直是 RSA 的缺陷。一般来说只用于少量数据加密。
RSA 还有一个弱点,这个在下文中还会提及。
在密码学上,美国的学者们忙的不亦乐乎,成果一个接一个。但老牌帝国英国在密码学上,也并不是全无建树,毕竟那是图灵的故乡,是图灵带领密码学者们在布莱切里公园战胜德国英格玛加密机的国度。
英国人也发明了 RSA,只是被埋没了。
60 年代,英国军方也在为密码分发问题感到苦恼。1969 年,密码学家詹姆斯埃利斯正在为军方工作,他接到了这个密钥分发的课题。他想到了一个主意,用单向函数实现非对称加密,但是他找不到这个函数。政府通讯总部的很多天才们,加入进来,一起寻找单向函数。但三年过去了,这些聪明的脑袋,并没有什么收获,大家都有些沮丧,这样一个单项函数,是否存在?
往往这个时候,就需要初生牛犊来救场了。科克斯就是一头勇猛的牛犊,他是位年轻的数学家,非常纯粹,立志献身缪斯女神的那种。 虽然年轻,但他有一个巨大优势,当时他对此单向函数难题一无所知,压根儿不知道老师们三年来一无所获。于是懵懵懂懂的闯进了地雷阵。
面对如此凶险的地雷阵,科克斯近乎一跃而过。只用了半个小时,就解决了这个问题,然后他下班回家了,并没有把这个太当回事,领导交代的一个工作而已,无非端茶倒水扫地解数学题,早点干完,回家路上还能买到新出炉的面包。他完全不知道自己创造了历史。科克斯是如此纯粹的数学家,后来他听闻同事们送上的赞誉,还对此感到有些不好意思。在他眼里,数学应该如哈代所说,是无用的学问,而他用数学解决了具体的问题,这是令人羞愧的。
可惜的是,科克斯的发明太早了,当时的计算机算力太弱,并不能实现非对称的加解密。所以,军方没有应用非对称加密算法。詹姆斯与科克斯把非对称加密的理论发展到完善,但是他们不能说出去,军方要求所有的工作内容都必须保密,他们甚至不能申请专利。
军方虽然对工作成果的保密要求非常严格,但对工作成果本身却不很在意。后来,英国通讯总部发现了美国人的 RSA 算法,觉得好棒棒哦。他们压根就忘记了詹姆斯与科克斯的 RSA。通讯总部赞叹之余,扒拉了一下自己的知识库,才发现自己的员工科克斯早已发明了 RSA 类似的算法。 官僚机构真是人类的好朋友,总能给人们制造各种笑料,虽然其本意是要制造威权的。
科克斯对此并不介怀,他甚至是这样说的:“埋没就埋没吧,我又不想当网红,要粉丝干嘛?那些粉丝能吃?” 原话不是这样的,但表达的意思基本如此。
迪菲在 1982 年专程去英国见詹姆斯,两人惺惺相惜,真是英雄相见恨晚。可惜詹姆斯依然不能透漏他们对 RSA 的研究,他只告诉了迪菲:“你们做的比我们要好。” 全球各国的科学家们,可以比出谁更好,但全球各国的官僚们,却很难比出谁更颟顸,他们不分高下。
区块链的故事 - 1
区块链的故事 - 2
区块链的故事 - 3
区块链的故事- 4
区块链的故事 - 5
区块链的故事 - 6
区块链的故事 - 7
区块链的故事 - 8
⑧ cargox区块链秘钥怎么设置
注册下载登录后可以设置8一20位字母与数字,在浏览器点击保存。
区块链(英语:blockchain或blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。中本聪在2008年,于比特币白皮书中提出区块链概念,并在2009年创立了比特币社会网络,开发出第一个区块,即创世区块。
⑨ Chainge技术沙龙(0414)-区块链技术的安全隐患
虚拟机设计
零钱整理
慢雾科技介绍
01| The Dao事件
以太坊第一个安全大事件
智能合约的取款
新建一个Bank,存入一部分钱,用Dao框架不停取钱。
取款-判断余额-取款操作框架-转空该账户下的所有钱。
简单的例子就是,你的银行卡有余额100万,你需要买一个10块钱的饮料,但是支付的过程有漏洞,所以你银行卡的所有钱都被转走。
一、外部调用
02| 以太坊黑色情人节
起源:第一转账时间是2.14
ETH节点统计
客户端、客户端版本、OS系统。整个系统的庞杂
蜜罐检测 (部署陷阱能检测出黑客的点来)
net_version
判断是主网还是测试网,只攻击主网
3000+主网节点完全暴露
eth_accounts
获取钱包账号,涉及钱包账号
eth_getBanlance
获取有多少钱,被盗46000+ETH
why?
unlockAccount 函数介绍
该函数将使用密码从本地的keystore 里提取private key 并存储在内存中,函数第三个参数ration 表示解密后private key 在内存中保存默认是300 秒; 如果设置为0,则表的时间,示永久存留在内存,直至Geth/Parity 退出。
详见:
https://github.com/ethereumgethereum/wiki/Management-APIs#personal_unlockaccount
节点存用户的keystore信息(严重危险)
eth_getBlockByNumber
墨子扫描引擎,扫描有问题的节点,慢雾的以太坊安全事件的披露
被盗ETH,市值,被盗钱包数
具体内容可以查看慢雾发布的 以太坊黑色情人节专题
生态相关
ETH:矿池、钱包、web3、smart contract、dapp
BTC:矿池、钱包、Lightning Network
BTC RPC
防御建议
管理数十万用户安全的接近百万的比特币
华人世界唯一被bitcoin.org网站展示的钱包
比特派多种区块链资产(BTC、ETH、Token、分叉)
冷热结合,确保安全
比特派-热钱包
比特护盾-冷钱包/硬件钱包
区块链安全事件
私钥决定了区块链资产的所有权,丢了私钥也就相当于丢了一切。私钥就是一个随机数,这个随机数的概率空间很大(256 位,即2^256)
钱包=生态入口
需要在安全的同时做到尽可能的开放
玩法的开放,技术的开放,通用的技术接口,生态的开放,把自己的资源进行导入。合作伙伴计划:技术咨询、区块链技术支持、开放平台、入口支持、生态支持、海外市场合作。帮助伙伴实现区块链转型或区块链项目孵化,安全、便捷实现真正落地的区块链应用场景。
联系方式 [email protected]
用户风控系统,数百万的数字货币用户。
最大可能保持我们的数字资产
骗子故事:抢数字货币份额,钱没到账,冒充官方,交出助记词
恶意钱包地址库
诈骗钱包、黑客钱包、羊毛党钱包
恶意网站库
钓鱼网站、空投网站、交易所、众筹
风险合约库
重名币、空格币、风险合约
安全事件库
历史安全事件提醒
最新事件提醒
盗币风险监控
安全意识教育
可能出现被盗的情况
游戏即资产,稀缺资源,成为游戏运营者。最后大BOSS死于暴露了自己的密钥。
通过社工(社会工程学)【欺骗的艺术】黑客攻击手法,虚拟景象做出错误判断让自己陷入危机。
人始终是系统中最薄弱的环节,币安背锅的黑客事件。大客户泄露自己的账户,调用API接口,自动交易。虽然没丢币但是黑客在期货市场盈利。
关于安全钱包的帖子(来自小白愤怒控诉,实际没有理解整个机制):
1、我没私钥和交易密码,东西都在你们那我不知道安全在哪里
2、密语算个毛,你告诉我拿着你们的密语能做什么。
汽车和自行车事件,出了问题之后,弱势的一方被原谅。负责的是更大的一方。平台替没有安全意识的用户背锅。
对于大部分用户来说,交易所的安全性比普通用户自己管理的安全性要高,用户的安全意识没有提高,交给交易所帮助、协助你来管理你的钱包提示很多风险操作。
为什么要随机生成256位的密钥,为什么不能用户自己去设置,如果自己设置会处于一个集中的区域,随机值不够,私钥生成时就处于危险的状态。
自己的安全认识不够,所以自己造成的损失,先怼交易所先怼钱包。先想到得是你们的问题和漏洞造成的,不是我的操作失误和密钥泄露造成的。
币派做的是大神和小白的交流之间的翻译,做画漫画,写段子的逗比。
币小宝防骗指南漫画,贡献题材和内容。
⑩ 区块链密码算法是怎样的
区块链作为新兴技术受到越来越广泛的关注,是一种传统技术在互联网时代下的新的应用,这其中包括分布式数据存储技术、共识机制和密码学等。随着各种区块链研究联盟的创建,相关研究得到了越来越多的资金和人员支持。区块链使用的Hash算法、零知识证明、环签名等密码算法:
Hash算法
哈希算法作为区块链基础技术,Hash函数的本质是将任意长度(有限)的一组数据映射到一组已定义长度的数据流中。若此函数同时满足:
(1)对任意输入的一组数据Hash值的计算都特别简单;
(2)想要找到2个不同的拥有相同Hash值的数据是计算困难的。
满足上述两条性质的Hash函数也被称为加密Hash函数,不引起矛盾的情况下,Hash函数通常指的是加密Hash函数。对于Hash函数,找到使得被称为一次碰撞。当前流行的Hash函数有MD5,SHA1,SHA2,SHA3。
比特币使用的是SHA256,大多区块链系统使用的都是SHA256算法。所以这里先介绍一下SHA256。
1、 SHA256算法步骤
STEP1:附加填充比特。对报文进行填充使报文长度与448模512同余(长度=448mod512),填充的比特数范围是1到512,填充比特串的最高位为1,其余位为0。
STEP2:附加长度值。将用64-bit表示的初始报文(填充前)的位长度附加在步骤1的结果后(低位字节优先)。
STEP3:初始化缓存。使用一个256-bit的缓存来存放该散列函数的中间及最终结果。
STEP4:处理512-bit(16个字)报文分组序列。该算法使用了六种基本逻辑函数,由64 步迭代运算组成。每步都以256-bit缓存值为输入,然后更新缓存内容。每步使用一个32-bit 常数值Kt和一个32-bit Wt。其中Wt是分组之后的报文,t=1,2,...,16 。
STEP5:所有的512-bit分组处理完毕后,对于SHA256算法最后一个分组产生的输出便是256-bit的报文。
2、环签名
2001年,Rivest, shamir和Tauman三位密码学家首次提出了环签名。是一种简化的群签名,只有环成员没有管理者,不需要环成员间的合作。环签名方案中签名者首先选定一个临时的签名者集合,集合中包括签名者。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的成员可能并不知道自己被包含在其中。
环签名方案由以下几部分构成:
(1)密钥生成。为环中每个成员产生一个密钥对(公钥PKi,私钥SKi)。
(2)签名。签名者用自己的私钥和任意n个环成员(包括自己)的公钥为消息m生成签名a。
(3)签名验证。验证者根据环签名和消息m,验证签名是否为环中成员所签,如果有效就接收,否则丢弃。
环签名满足的性质:
(1)无条件匿名性:攻击者无法确定签名是由环中哪个成员生成,即使在获得环成员私钥的情况下,概率也不超过1/n。
(2)正确性:签名必需能被所有其他人验证。
(3)不可伪造性:环中其他成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能为消息m伪造一个签名。
3、环签名和群签名的比较
(1)匿名性。都是一种个体代表群体签名的体制,验证者能验证签名为群体中某个成员所签,但并不能知道为哪个成员,以达到签名者匿名的作用。
(2)可追踪性。群签名中,群管理员的存在保证了签名的可追踪性。群管理员可以撤销签名,揭露真正的签名者。环签名本身无法揭示签名者,除非签名者本身想暴露或者在签名中添加额外的信息。提出了一个可验证的环签名方案,方案中真实签名者希望验证者知道自己的身份,此时真实签名者可以通过透露自己掌握的秘密信息来证实自己的身份。
(3)管理系统。群签名由群管理员管理,环签名不需要管理,签名者只有选择一个可能的签名者集合,获得其公钥,然后公布这个集合即可,所有成员平等。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。