㈠ 什么是公钥、私钥、密码、助记词、Keystore
1. 公钥:相当于数字货币钱包的地址,可以理解为银行账户。公钥的地址是由公钥通过计算得来,类似于银行开户后给您的银行卡号。钱包地址主要用于接收款项,也可作为转账的凭证,类似于别人向您汇款时需要知道您的银行卡卡号。常见的钱包地址样式包括比特币的普通地址(以1开头)、隔离见证地址(以3开头)、以太坊地址(以0x开头,包括基于以太坊平台的代币)以及瑞波币地址(以r开头)和莱特币地址(以L开头)。
2. 私钥:非常重要,可以看作是银行卡号加上银行卡密码。创建钱包时,输入密码即可导出私钥。私钥由字母和数字组成的字符串构成,每个钱包地址只有一个私钥,且不可更改。私钥应当离线保存,避免进行网络传输,最好将其记录在纸上保存。私钥的主要用途是在同系列的任何一款钱包上导入资产,类似于您在丢失手机后,只要有私钥就可以恢复钱包。
3. 密码:相当于银行卡密码。在创建数字货币钱包时,需要设置一个不少于8个字符的密码。密码主要用于两个方面:一是在转账时需要输入密码,类似于使用银行卡给他人转账时需要输入密码;二是当使用Keystore文件导入钱包时,必须输入这个密码。密码可以进行修改或重置,如果您忘记原密码,可以使用私钥或助记词导入钱包,并设置新的密码。
4. 助记词:等于私钥,也可以理解为银行卡号加上银行卡密码。由于私钥由64位字符串组成,不便于记录,非常容易抄错,因此推出了助记词,方便用户记忆和记录。助记词由12个单词组成,每个单词之间用空格分隔。一个钱包地址只有一套助记词,且不能修改。助记词备份后,在钱包中便不会显示,因此务必在备份时仔细抄写,防止抄写错误,并多次核对。
5. Keystore:Keystore加上密码等于私钥,但Keystore不等同于银行卡号。Keystore文件相当于加密后的私钥。在导入钱包时,只需输入Keystore文件和密码即可。与使用私钥或助记词导入钱包不同,后者不需要原密码,可以直接重置密码。每个Keystore文件都有一个对应的密码,且密码无法更改。但是,可以通过钱包的助记词重新生成Keystore文件,新文件可以用新的密码生成。生成新Keystore后,最好删除旧的Keystore文件以保证安全。
总结:数字货币钱包创建后,公钥和私钥是成对出现的,它们都是由字母和数字组成的字符串。Keystore文件和助记词可以视为私钥的另一种表现形式。助记词作为钱包私钥的友好格式,非常便于备份和导入。钱包地址可以通过私钥、助记词或Keystore加密码导入钱包找回。密码可以通过私钥、助记词导入钱包并重置。如果私钥、助记词或Keystore加密码中的任何信息泄露,别人就可以控制您的钱包,里面的币就会被转移走。私钥可以推导出公钥,公钥可以推导出地址,但无法通过地址或公钥推导出私钥。
在生活中,银行开户是先开设账户,然后得到卡号和设置密码。在数字货币领域,则是先设置密码(私钥),然后得到账户地址(公钥),最后是地址。在钱包安全管理方面,主要要注意防盗和防丢。防止私钥泄露或丢失。注意事项包括:不要泄露私钥、助记词或Keystore加密码的信息;重视备份,并进行多次验证以防止错误;避免在线备份或通过第三方工具传输您的钱包密钥;将备份内容放在安全的地方,并告知家人以防不测。数字货币钱包的主要作用是安全存储资产,这是最重要的。在投资钱包时,应当注重资产的安全和私密性,避免投资失败导致损失。
㈡ 什么是公钥、私钥、密码、助记词、Keystore
公钥、私钥、密码、助记词、Keystore是在使用数字货币钱包时,必须要弄清的概念:如果不搞清楚,很可能会造成数字资产的严重损失。
1.公钥:
相当于所属钱包的地址,可理解成银行账户。
公钥的地址可理解成银行卡号,是由公钥通过计算得来,就像银行先给你开户,后给你银行卡卡号。
钱包地址的主要用途是收款,也可以作为转账的凭证,就像别人汇款给你时你需要告诉他银行卡卡号一样。
常见的钱包地址样式:
比特币:普通地址:1开头、隔离见证地址:3开头
以太坊地址:0x开头:(包括基于以太坊平台代币)瑞波币地址:r开头。
莱特币地址:L开头。
2.私钥:
非常重要,相当于银行卡号+银行卡密码。
创建钱包后,输入密码即可导出私钥。私钥是由字母数字组成的字符串,一个钱包地址只有一个私钥且不能修改。私钥要离线保存,不要进行网络传输,可用纸张记录并保存。
主要用途,导入钱包。有了私钥就可以在同系列的任何一款钱包上,输入私钥并设置一个新的密码就可以把之前的A钱包的资产导入B钱包。比如手机丢了,只要你有私钥就可以恢复。
3.密码 :
相当于银行卡密码。
在创建数字货币钱包时,需要设置一个密码,一般要求不少于8个字符。
主要用途:①转账时需要输入密码,可理解成你用银行卡给别人转账需要输入密码;②用Keystore导入钱包时,必须输入这个密码。
密码可以进行修改或重置。输入原密码后,就可以直接修改新的密码了;但如果原密码忘记,可以用私钥或是助记词导入钱包,同时设置新的密码。数字货币钱包中,一个钱包在不同手机上可以用不同的密码,彼此相互独立,互不影响。
4.助记词
等于私钥=银行卡号+银行卡密码
由于私钥由64位字符串组成,不便于记录,非常容易抄错,于是就出现了助记词,方便用户记忆和记录。由12个单词组成,每个单词之间有一个空格,助记词和私钥具有同样的功能:只要输入助记词并设置一个新的密码,就可以导入钱包。
一个钱包只有一套助记词且不能修改。助记词只能备份一次,备份后,在钱包中便不会再显示。因此,在备份时一定要抄写下来,防止抄写错误,尽量多次检验。
5.Keystore:
Keystore+密码=私钥=银行卡号+银行卡密码、Keystore ≠ 银行卡号
Keystore相当于加密过后的私钥,在导入钱包时,只要输入Keystore 和密码,就能进入钱包了。这一点和用私钥或助记词导入钱包不一样,后两者不需要知道原密码,而是直接重置密码。
keystore进行交易转账等钱包操作,必须知道该keystore的密码。keystore的密码是无法更改的,一个keystore对应一个密码。但是可以通过该钱包的助记词,重新生成一个keystore。这个keystore可以用新的密码生成,重新生成新的keystore之后,最好将旧的keystore删除。
总结:
一个数字货币钱包创建完成后,公钥和私钥是成对出现的。公钥,私钥都是由字母,数字组成的较长的字符串。
keystore和助记词可以理解为私钥的另一种表现形式。助记词作为钱包私钥的友好格式,非常方便备份和导入。
地址可以通过私钥、助记词、keystore+密码,导入钱包找回。密码可以通过私钥、助记词,导入钱包重置密码。如果私钥、助记词、Keystore+密码,有一个信息泄漏,别人就可以拥有你钱包的控制权,钱包内的币就会被别人转移走。
私钥通过加密生成公钥,公钥转换一下格式生成地址。私钥可以推导出公钥,公钥可以推导出地址,但无法通过输出地址、公钥推导出私钥。
在生活中,银行开户是“开设银行账户—银行卡号—设置银行卡密码—开户成功
在币圈里,是先设置“密码”(私钥),再得到“银行账户”(公钥),最后给地址。对于钱包安全管理,主要注意防盗和防丢。防止私钥泄露及丢失。
注意事项:
1.关于各种骗局诱导交出私钥、助记词的行为,都要谨慎操作;
2.重视私钥、助记词、Keystore+密码的备份和保存!多重备份,多次备份,多重验证,防止抄写错误。
3.私钥不好备份的情况下,可选用备份助记词,具体根据钱包的备份要求。
4.不要进行联网备份,或通过微信、qq、邮箱等任何第三方工具进行传输发送你的私钥、助记词、keystore。不要截图。
5.备份内容放到安全、妥善的地方,并告诉家人(以防突发事故发生)
数字货币钱包的作用是安全存储资产,这是最重要的!从投资纪律来讲,本金安全是一切的基础。对于理财类的钱包,声称赚取收益高回报等,应该叫“数字资产理财”更恰当。你的资产他们可以随意动用拿去投资。你对资产没有完全的掌控权,如果投资顺利,本息安全,如果投资失败,血本无归。所以,请慎重使用这类钱包,应该注重的是资产的安全和私密性。
㈢ imtoken钱包是什么
1、imtoken是区块链数字货币钱包。imtoken为广大区块链领域的用户提供安全、便捷的数字资产服务。imtoken是基于ERC20的钱包,BTC等非ERC20的币种是无法存储的。中国国内是禁止对中国公民销售数字货币。imtoken的所有操作都是不可逆的,用户一定要保管好自己的私钥,在交易的时候,需要仔细核对收款人地址,避免丢失或者误打款的情况。如果出现了丢失或者误打款的情况,用户无法联系imtoken客服解决问题。
imtoken支持多链,imtoken能够帮助用户管理在区块链上的账户和资产。在区块链的世界中,钱包是用于帮助用户管理链上资产和数据的工具。
2、imtoken通过一组助记词,为用户创建数字身份。数字身份可以同时管理多链钱包,数据加密并去中心化存储。imtoken需要使用海外Apple ID登录App Store,搜索安装。创建数字身份后,同时对应生成多链钱包。备份身份时抄写的一组助记词,导入到imtoken的各公链钱包中。区块链钱包不同于传统的钱包,用户需要谨慎选择。
拓展资料
由于目前95%以上的项目所发行的代币均为采用以太坊ERC20标准发行的代币,因此收币时需要使用以太坊钱包的钱包地址来收币。考虑到目前国内的实际情况以及现有钱包软件的普及程度,本人推荐imToken。
1、风险测评
点击创建钱包。首先是一个风险测评的页面。
2、备份私钥(助记词与Keystore)
在完成测评后,就可以创建新钱包了。在设置了钱包名称,钱包支付密码创建完钱包之后,第一步就是备份助记词与备份Keystore。这个步骤非常重要,相信你在认真做完上面的风险测评后,应该了解助记词和Keystore可以帮助你恢复钱包,因此需要选择合适的方式来备份,并且最好是离线备份,比如昨天大毛文章中提到的:最好离线保存——放到不联网的电脑、加密的U盘或者移动硬盘上,同时鸡蛋不要放到同一个篮子里,大毛自己的私钥通常会备份在2-3个地方。
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算法-KeyAgreement)。然后利用该对称秘钥对数据进行加密,针对共享秘钥这里的流程如下:
对于B节点,当接收到传输过来的数据时,解析出其中A节点的随机公钥,之后利用A节点的随机公钥与B节点自身的私钥计算出对称秘钥(KA算法)。之后利用对称秘钥机密数据。
对于以上加密方式,其实仍然存在很多问题,比如如何避免重放攻击(在消息中加入Nonce),再比如彩虹表(参考KDF机制解决)之类的问题。由于时间及能力有限,故暂时忽略。
那么究竟应该采用何种加密呢?
主要还是基于要传输的数据的安全等级来考量。不重要的数据其实做好认证和签名就可以,但是很重要的数据就需要采用安全等级比较高的加密方案了。
密码套件是一个网络协议的概念。其中主要包括身份认证、加密、消息认证(MAC)、秘钥交换的算法组成。
在整个网络的传输过程中,根据密码套件主要分如下几大类算法:
秘钥交换算法:比如ECDHE、RSA。主要用于客户端和服务端握手时如何进行身份验证。
消息认证算法:比如SHA1、SHA2、SHA3。主要用于消息摘要。
批量加密算法:比如AES,主要用于加密信息流。
伪随机数算法:例如TLS1.2的伪随机函数使用MAC算法的散列函数来创建一个主密钥——连接双方共享的一个48字节的私钥。主密钥在创建会话密钥(例如创建MAC)时作为一个熵来源。
在网络中,一次消息的传输一般需要在如下4个阶段分别进行加密,才能保证消息安全、可靠的传输。
握手/网络协商阶段:
在双方进行握手阶段,需要进行链接的协商。主要的加密算法包括RSA、DH、ECDH等
身份认证阶段:
身份认证阶段,需要确定发送的消息的来源来源。主要采用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA签名)等。
消息加密阶段:
消息加密指对发送的信息流进行加密。主要采用的加密方式包括DES、RC4、AES等。
消息身份认证阶段/防篡改阶段:
主要是保证消息在传输过程中确保没有被篡改过。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC:EllipticCurvesCryptography,椭圆曲线密码编码学。是一种根据椭圆上点倍积生成公钥、私钥的算法。用于生成公私秘钥。
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算法提供的一套集成(混合)加密方案。其中包括了非对称加密,对称加密和签名的功能。
metacharset="utf-8"
这个先订条件是为了保证曲线不包含奇点。
所以,随着曲线参数a和b的不断变化,曲线也呈现出了不同的形状。比如:
所有的非对称加密的基本原理基本都是基于一个公式K=kG。其中K代表公钥,k代表私钥,G代表某一个选取的基点。非对称加密的算法就是要保证该公式不可进行逆运算(也就是说G/K是无法计算的)。*
ECC是如何计算出公私钥呢?这里我按照我自己的理解来描述。
我理解,ECC的核心思想就是:选择曲线上的一个基点G,之后随机在ECC曲线上取一个点k(作为私钥),然后根据kG计算出我们的公钥K。并且保证公钥K也要在曲线上。*
那么kG怎么计算呢?如何计算kG才能保证最后的结果不可逆呢?这就是ECC算法要解决的。
首先,我们先随便选择一条ECC曲线,a=-3,b=7得到如下曲线:
在这个曲线上,我随机选取两个点,这两个点的乘法怎么算呢?我们可以简化下问题,乘法是都可以用加法表示的,比如22=2+2,35=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
于是乎得到2P=-Q(是不是与我们非对称算法的公式K=kG越来越近了)。
于是我们得出一个结论,可以算乘法,不过只有在切点的时候才能算乘法,而且只能算2的乘法。
假若2可以变成任意个数进行想乘,那么就能代表在ECC曲线里可以进行乘法运算,那么ECC算法就能满足非对称加密算法的要求了。
那么我们是不是可以随机任何一个数的乘法都可以算呢?答案是肯定的。也就是点倍积计算方式。
选一个随机数k,那么k*P等于多少呢?
我们知道在计算机的世界里,所有的都是二进制的,ECC既然能算2的乘法,那么我们可以将随机数k描述成二进制然后计算。假若k=151=10010111
由于2P=-Q所以这样就计算出了kP。这就是点倍积算法。所以在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上的例子说明如何生成共享秘钥,也可以参考AliceAndBob的例子。
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=kaKB=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-.其模型如下:
在以太坊的UDP通信时(RPC通信加密方式不同),则采用了以上的实现方式,并扩展化了。
首先,以太坊的UDP通信的结构如下:
其中,sig是经过私钥加密的签名信息。mac是可以理解为整个消息的摘要,ptype是消息的事件类型,data则是经过RLP编码后的传输数据。
其UDP的整个的加密,认证,签名模型如下:
区块链密码算法是怎样的?
区块链作为新兴技术受到越来越广泛的关注,是一种传统技术在互联网时代下的新的应用,这其中包括分布式数据存储技术、共识机制和密码学等。随着各种区块链研究联盟的创建,相关研究得到了越来越多的资金和人员支持。区块链使用的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-bitWt。其中Wt是分组之后的报文,t=1,2,...,16。
STEP5:所有的512-bit分组处理完毕后,对于SHA256算法最后一个分组产生的输出便是256-bit的报文。
作为加密及签名体系的核心算法,哈希函数的安全性事关整个区块链体系的底层安全性。所以关注哈希函数的研究现状是很有必要的。
2、Hash函的研究现状
2004年我国密码学家王小云在国际密码讨论年会(CRYPTO)上展示了MD5算法的碰撞并给出了第一个实例(CollisionsforhashfunctionsMD4,MD5,HAVAL-128andRIPEMD,rumpsessionofCRYPTO2004,,EuroCrypt2005)。该攻击复杂度很低,在普通计算机上只需要几秒钟的时间。2005年王小云教授与其同事又提出了对SHA-1算法的碰撞算法,不过计算复杂度为2的63次方,在实际情况下难以实现。
2017年2月23日谷歌安全博客上发布了世界上第一例公开的SHA-1哈希碰撞实例,在经过两年的联合研究和花费了巨大的计算机时间之后,研究人员在他们的研究网站SHAttered上给出了两个内容不同,但是具有相同SHA-1消息摘要的PDF文件,这就意味着在理论研究长期以来警示SHA-1算法存在风险之后,SHA-1算法的实际攻击案例也浮出水面,同时也标志着SHA-1算法终于走向了生命的末期。
NIST于2007年正式宣布在全球范围内征集新的下一代密码Hash算法,举行SHA-3竞赛。新的Hash算法将被称为SHA-3,并且作为新的安全Hash标准,增强现有的FIPS180-2标准。算法提交已于2008年10月结束,NIST分别于2009年和2010年举行2轮会议,通过2轮的筛选选出进入最终轮的算法,最后将在2012年公布获胜算法。公开竞赛的整个进程仿照高级加密标准AES的征集过程。2012年10月2日,Keccak被选为NIST竞赛的胜利者,成为SHA-3。
Keccak算法是SHA-3的候选人在2008年10月提交。Keccak采用了创新的的“海绵引擎”散列消息文本。它设计简单,方便硬件实现。Keccak已可以抵御最小的复杂度为2n的攻击,其中N为散列的大小。它具有广泛的安全边际。目前为止,第三方密码分析已经显示出Keccak没有严重的弱点。
KangarooTwelve算法是最近提出的Keccak变种,其计算轮次已经减少到了12,但与原算法比起来,其功能没有调整。
零知识证明
在密码学中零知识证明(zero-knowledgeproof,ZKP)是一种一方用于向另一方证明自己知晓某个消息x,而不透露其他任何和x有关的内容的策略,其中前者称为证明者(Prover),后者称为验证者(Verifier)。设想一种场景,在一个系统中,所有用户都拥有各自全部文件的备份,并利用各自的私钥进行加密后在系统内公开。假设在某个时刻,用户Alice希望提供给用户Bob她的一部分文件,这时候出现的问题是Alice如何让Bob相信她确实发送了正确的文件。一个简单地处理办法是Alice将自己的私钥发给Bob,而这正是Alice不希望选择的策略,因为这样Bob可以轻易地获取到Alice的全部文件内容。零知识证明便是可以用于解决上述问题的一种方案。零知识证明主要基于复杂度理论,并且在密码学中有广泛的理论延伸。在复杂度理论中,我们主要讨论哪些语言可以进行零知识证明应用,而在密码学中,我们主要讨论如何构造各种类型的零知识证明方案,并使得其足够优秀和高效。
环签名群签名
1、群签名
在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,且可以只用单个群公钥来验证。群签名一般流程:
(1)初始化,群管理者建立群资源,生成对应的群公钥(GroupPublicKey)和群私钥(GroupPrivateKey)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。
(2)成员加入,在用户加入群的时候,群管理者颁发群证书(GroupCertificate)给群成员。
(3)签名,群成员利用获得的群证书签署文件,生成群签名。
(4)验证,同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者。
(5)公开,群管理者利用群私钥可以对群用户生成的群签名进行追踪,并暴露签署者身份。
2、环签名
2001年,Rivest,shamir和Tauman三位密码学家首次提出了环签名。是一种简化的群签名,只有环成员没有管理者,不需要环成员间的合作。环签名方案中签名者首先选定一个临时的签名者集合,集合中包括签名者。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的成员可能并不知道自己被包含在其中。
环签名方案由以下几部分构成:
(1)密钥生成。为环中每个成员产生一个密钥对(公钥PKi,私钥SKi)。
(2)签名。签名者用自己的私钥和任意n个环成员(包括自己)的公钥为消息m生成签名a。
(3)签名验证。验证者根据环签名和消息m,验证签名是否为环中成员所签,如果有效就接收,否则丢弃。
环签名满足的性质:
(1)无条件匿名性:攻击者无法确定签名是由环中哪个成员生成,即使在获得环成员私钥的情况下,概率也不超过1/n。
(2)正确性:签名必需能被所有其他人验证。
(3)不可伪造性:环中其他成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能为消息m伪造一个签名。
3、环签名和群签名的比较
(1)匿名性。都是一种个体代表群体签名的体制,验证者能验证签名为群体中某个成员所签,但并不能知道为哪个成员,以达到签名者匿名的作用。
(2)可追踪性。群签名中,群管理员的存在保证了签名的可追
㈤ 区块链钱包怎么注册
Metamask手机端:手把手教你注册以太坊钱包第一步:前面几个安全提示,向下滚动到最底部表示全部阅读,一步一步点击“接受”就行了
2.下面是创建一个8位数的密码,每次打开MetaMask可能都需要,如果忘记了密码,可以用助记词找回钱包
3.接下来是显示的助记词,可以直接点击“我已妥善保存”,最好还是保存一下,以备不时之需。这里也可以不保存,之后在设置里面,显示助记词,也能找到。
4.之后就进去了MetaMask钱包主页面
5.点击右上角小圆圈,点击创建账户,可以创建更多的账户地址(所有创建的地址都可以通过刚刚的12个助记词导入,比如你创建了10个地址,下次导入的时候初始显示1个地址,你在点击9次创建账户,之前的10个地址账户就完全不变的找回来了)
6.如果你在官方钱包,imtoken钱包,myetherwallet钱包已有账户可以导入,方法和创建钱包差不多
7.点击“发送”,输入你想转账的以太地址和数量,就可以转账了。(交易数据可以不填)
8.交易费限制,和气体价格可以设置一下(如果不在乎交易时间,气体价格可以设置低一些,如果想快速交易,气体价格设高一些,如果是发送代币或者部署合约,交易费限制建议填高一些以免交易气体gas不足),之后点击提交,就成功转账了。
9.成功发送交易后,会显示交易概况。
10.点击账户旁边的三个小点,点击“通过Etherscan查看账户"可以查看区块链浏览器的详情。
11、点击三个点,点击导出私钥,可以导出该地址私钥。
12、.点击右上角三条杠,点击设置,再点击助记词,可以查看你的助记词,助记词非常重要。
13.点击添加代币,可以添加其它基于以太坊的发币,输入缩写即可。
14.如果没有搜索到你需要的代币,可以通过合约地址自动添加,输入合约地址,代币符号,小数位精度即可添加。
冷钱包怎么创建简便生成冷钱包,需要工具:手机+内存卡。
步骤如下:
第1步:找一部不用的手机或专门用作钱包的手机,手机恢复出厂设置;
第2步:断开手机网络;
第3步:安装imtoken钱包;
第4步:用imtoken钱包创建钱包;
第5步:将私钥备份至内存卡,手抄好助记词多重备份,并导出钱包地址。
拓展资料:
一、冷钱包好处
冷钱包永不联网,不能被网络访问,因而避免了黑客盗取私钥的风险,相比热钱包更安全。
价值投资者,把冷钱包放进保险柜,避免放在交易所,时不时“手贱"操作一把。
当然,如果需要经常用来交易或频繁交易的,当资产较大的时候,冷热钱包配合使用,经常需要交易的用热钱包储存;无需进程交易的,用冷钱包储存。
二、冷钱包《Coldwallet),与热钱包相对应,也称离线钱包或者断网钱包,区块链钱包种类之一,意指网络不能访问到用户私钥的钱包。
冷钱包通常依靠“冷设备(不联网的电脑、手机等〉确保比特币私钥的安全,运用二维码通信让私钥不触网,避免了被黑客盗取私钥的风险,但是也可能面临物理安全风险(比如电脑丢失,损坏等〉。
三、基本概念
钱包就是存储和使用数字货币的工具,一个币对应一个钱包。用来存储币种,或者"交易币种。
比特币钱包使用户可以检查、存储、花费其持有的比特币,其形式多种多样,功能可繁可简,它可以是遵守比特币协议运行的各种工具,如电脑客户端、手机客户端、网站服务、专用设备,也可以只是存储著比特币私密密钥的介质,如一张纸、一段暗号、一个U盘、一个文本文档,因为只要掌握比特币的私密密钥,就可以处置其对应地址中包含的比特币。比特币无法存入一般的银行账户,交易只能在比特币网络上进行,使用前需下载客户端或接入线上网络。
冷钱包是指由提供区块链数字资产安全存储解决方案的信息技术公司研发的比特币存储技术。库神冷钱包集数字货币存储、多重交易密码设置、发布最新行情与资讯、提供硬分叉解决方案等功能于一身,且运用二维码通信让私钥永不触网,能有效防止黑客窃取。
操作环境:产品型号:华为mate30系统版本:EMUI10
苹果手机如何创建区块链钱包下载Kcash,即可创建
_还只话阒_Phone。iPhone是苹果公司(AppleInc.)发布搭载iOS操作系统的系列智能手机。截至2021年9月,苹果公司(AppleInc.)已发布32款手机产品,初代:iPhone,最新版本:iPhone13mini,iPhone13,iPhone13Pro,iPhone24ProMax。
区块链地址怎么加钱包指引1.下载TP钱包,然后填加一条公链,你领哪家公链的空投就添加哪家的公链!
2.你需要哪条公链,就创建哪条公链的钱包,按要求填写就行!
3.创建完钱包,你就有了公链地址了!
4.然后看项目需要哪个地址,复制你公链的地址,按要求留下地址即可!
5.参加完活动留了地址后,你还需要添加这个币种的合约到钱包,这样你的钱包才会显示这个币,否则默认是不显示的!
6.操作完以上几步,你就耐心等待即可,有些直接不会到账,剩下的不是时时到账,因为得收集地址统一打币等等!如果区块链拥堵,那就需要更长的时间!
领空投需要一个公链的地址,公链地址有火币生态链HECO,币安智能链BSC等等,不同链上的币,就留不同链的地址!
如何注册trc20钱包
先找到trc20这个软件的app或者网址进行下载安装,下载安装以后就可以开始注册了,首先点进去,然后输入手机号进行验证,验证成功以后就可以设置密码了密码设置成功以后就注册完成了。
拓展资料:加密领域高度认可波场USDT-TRC20的原因有哪些呢?
1.稳定币作为支付网络将具有越来越多的应用场景。其实改变早已发生了,只是许多人还不自知——很多商铺、个人、企业已经开始将波场版USDT作为支付手段,取代SWIFT。
2.波场具有转账速度快、低手续费、高吞吐量等特点,可极大程度增强以太坊、比特币的用户体验。整个波场稳定币的流通量突破了141亿美元,今后不排除到达200亿甚至300亿美元体量的可能。业内越来越多的人会使用稳定币作为支付工具,相信未来也会有机构和银行使用稳定币网络进行清算。
区块链加密数字货币交易所/商城/游戏平台如何实现USDT-TRC20钱包接入?
1.据悉,很多平台对区块链底层技术积累甚浅,接入区块链实现充币、提币耗时耗力,影响业务正常开展,且平台方现有接入方案不规范,“盗币”事故时有发生。
2.当然,困难不止于外部环境,内部环境往往成为被忽略的重要因素。比如项目方现有接入方案操作复杂,过度依赖内部技术人员,管理人员难以介入资产掌控,导致“内鬼”事件时有发生,一旦发生往往陷入损失惨重、难以厘清的困局。
除此之外,USDT-TRC20利用智能合约完成在波场链上的发行、持有、转账,完全公开透明,秒级到账,这些都极大地降低了用户的信任成本,提升了用户转账稳定币的安全保障。正是TRC20-USDT显而易见的优势加剧了投资者对于稳定币的选择。
虚拟币归集地址提币地址一种是注册区块链钱包时生成的,一种是交易所为用户自动生成的。你想把币提出去,就需要填写提币地址,按照提币步骤、根据提示来填写就行了。下面就以MetaMask钱包为例,给大家介绍一下提币地址的生成:
点击以太坊官网推荐的钱包MetaMask,MetaMask钱包可以满足大部分用户包括矿工的需求,但是它需要与浏览器配合才能使用,对于新手而言,可以选择手机端的钱包APP。
这些钱包在下载时,务必去找官方网站下载,对那些广告推广连接,不明来历的软件商店,不要轻易去下载,否则会被盗币或者遇上钓鱼网站。下载好钱包软件之后,打开APP,点击“创建钱包”之类的选项,按照系统提示,一步一步注册就可以了,请一定记住密码,因为如果是去中心化的钱包,密码将无法找回。
所以钱包备份必不可少,钱包备份一般是备份助记词、密钥和keystore,钱包创建好之后,APP显示的那一连串字符就是钱包地址了,这个ETH钱包可以用来转账,储存资产或者去领空投,收集糖果。
希望对你有帮助.
㈥ imtoken鍒涘缓澶氫釜閽卞寘 imtoken鍙浠ュ垱寤哄嚑涓浠ュお鍧 www.sangyuangongshe.com
浣跨敤imToken锛岀敤鎴峰彲浠ュ垱寤哄氫釜浠ュお鍧婇挶鍖咃紝鏁伴噺涓婃病鏈夋槑纭鐨勯檺鍒讹紝浣嗗缓璁鐢ㄦ埛鏍规嵁鑷宸辩殑瀹為檯闇姹傚拰瀹夊叏绠$悊鑳藉姏鏉ュ悎鐞嗗垱寤
imToken鏄涓娆惧幓涓蹇冨寲鐨勬暟瀛楄祫浜ч挶鍖呭簲鐢锛屾敮鎸佸氱嶅尯鍧楅摼璧勪骇锛屽寘鎷浠ュお鍧婏紙ETH锛夊強鍏禘RC20鏍囧噯鐨勪唬甯併傚湪imToken涓锛岀敤鎴峰彲浠ラ氳繃鐢熸垚鏂扮殑鍔╄拌瘝鎴栫侀挜鏉ュ垱寤烘柊鐨勯挶鍖呭湴鍧锛屾瘡涓鍦板潃閮芥槸鐙绔嬩笖鍞涓鐨勶紝鍙浠ュ瓨鍌ㄣ佹帴鏀跺拰鍙戦佹暟瀛楄祫浜с
鍒涘缓澶氫釜浠ュお鍧婇挶鍖呯殑涓昏佷紭鍔垮湪浜庯紝瀹冨彲浠ュ府鍔╃敤鎴锋洿濂藉湴绠$悊涓嶅悓鐢ㄩ旂殑璧勪骇銆備緥濡傦紝鐢ㄦ埛鍙浠ュ皢涓閮ㄥ垎璧勯噾鐢ㄤ簬鏃ュ父浜ゆ槗锛屽皢鍙︿竴閮ㄥ垎璧勯噾鐢ㄤ簬闀挎湡鎸佹湁鎴栨姇璧勶紝閫氳繃涓嶅悓鐨勯挶鍖呭湴鍧鏉ラ殧绂昏繖浜涜祫閲戯紝鍙浠ラ檷浣庡洜鍗曚竴閽卞寘琚鏀诲嚮鎴栬鎿嶄綔鑰屽艰嚧鐨勯庨櫓銆
鐒惰岋紝闇瑕佹敞鎰忕殑鏄锛屽垱寤哄氫釜閽卞寘涔熸剰鍛崇潃闇瑕佺$悊澶氫釜鍔╄拌瘝鎴栫侀挜銆傚傛灉鐢ㄦ埛涓㈠け浜嗕换浣曚竴涓閽卞寘鐨勫姪璁拌瘝鎴栫侀挜锛屽皢鏃犳硶璁块棶璇ラ挶鍖呬腑鐨勮祫浜с傚洜姝わ紝鍦ㄥ垱寤哄氫釜閽卞寘鏃讹紝鐢ㄦ埛闇瑕佹牸澶栨敞鎰忓囦唤鍜屼繚绠″ソ杩欎簺淇℃伅锛岄伩鍏嶉犳垚涓嶅繀瑕佺殑鎹熷け銆
鎬荤殑鏉ヨ达紝imToken涓虹敤鎴锋彁渚涗簡鍒涘缓澶氫釜浠ュお鍧婇挶鍖呯殑鍔熻兘锛岀敤鎴峰彲浠ユ牴鎹鑷宸辩殑闇姹傛潵鐏垫椿浣跨敤銆備絾鍚屾椂锛岀敤鎴蜂篃闇瑕佹壙鎷呯浉搴旂殑瀹夊叏绠$悊璐d换锛岀‘淇濇瘡涓閽卞寘鐨勫畨鍏ㄣ傚湪浣跨敤imToken鎴栧叾浠栨暟瀛楄祫浜ч挶鍖呮椂锛屽缓璁鐢ㄦ埛鍏呭垎浜嗚В鍏跺姛鑳藉拰椋庨櫓锛屽苟閲囧彇蹇呰佺殑瀹夊叏鎺鏂芥潵淇濇姢鑷宸辩殑璧勪骇銆
㈦ 什么是以太币/以太坊ETH
以太币(ETH)是以太坊(Ethereum)的一种数字代币,被视为“比特币2.0版”,采用与比特币不同的区块链技术“以太坊”(Ethereum),一个开源的有智能合约成果的民众区块链平台,由全球成千上万的计算机构成的共鸣网络。开发者们需要支付以太币(ETH)来支撑应用的运行。和其他数字货币一样,以太币可以在交易平台上进行买卖 。
温馨提示:以上解释仅供参考,不作任何建议。入市有风险,投资需谨慎。您在做任何投资之前,应确保自己完全明白该产品的投资性质和所涉及的风险,详细了解和谨慎评估产品后,再自身判断是否参与交易。
应答时间:2020-12-02,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
https://b.pingan.com.cn/paim/iknow/index.html