本篇文章给大家谈谈区块链中公钥与私钥,以及私钥为什么能解密公钥对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
公开密钥(public key区块链中公钥与私钥,简称公钥)、私有密钥(private key,简称私钥)是密码学里非对称加密算法的内容。顾名思义,公钥是可以公开的,而私钥则要进行安全保管。
私钥是由随机种子生成的,公钥是将私钥通过算法推导出来。 由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的。也就是地址不能推出公钥,公钥不能推出私钥。
从中我们可以看出,公钥与私钥是成对存在的。它们的用处用16个字来概括区块链中公钥与私钥: 公钥加密,私钥解密区块链中公钥与私钥;私钥签名,公钥验签。
公钥加密,私钥解密。也就是用公钥加密原数据,只有对应的私钥才能解开原数据。这样能使得原数据在网络中传播不被窃取,保护隐私。
私钥签名,公钥验签。用私钥对原数据进行签名,只有对应的公钥才能验证签名串与原数据是匹配的。
可以用锁头,钥匙来比喻公钥,私钥。锁头用来锁定某物品,钥匙来解锁该物品。钥匙所有者是物品的所有者。事实上就是这样,公私钥对奠定了区块链的账户体系及资产(Token等)的所有权,区块链的资产是锁定在公钥上的,私钥是用来解锁该资产然后使用。比如说我要转让资产给区块链中公钥与私钥你,就是我用我的私钥签名了一笔我转让资产给你的交易(含资产,数量等等)提交到区块链网络里,节点会验证该签名,正确则从我的公钥上解锁资产锁定到你的公钥上。
我们看到了私钥的作用了吧,跟中心化记账系统(支付宝、微信支付等)的密码一样重要,拥有私钥就拥有了资产所有权,所以我们千万要保管好私钥,不能泄露。
区块链私钥,公钥和地址三者之间的关系是私钥生成公钥,公钥转化成为地址。所以私钥是最重要的。这三者之间是不可逆的,地址不能生成公钥,公钥也不能转化成为私钥。
首先先跟大家说明一下什么是私钥,私钥就是钱包根据密码学原理生成的一串字符,创建钱包时通过各种算法生成的随机数。私钥的作用相当于在区块链上的一个身份,你在区块链上的资半存储在你身份之中,也就是存储在你私钥身份下面的地址里,所以谁掌握了私钥,就掌握了在该身份下地址里的数字资产。私钥相当于银行卡密码,一定要离线保管好,防止被盗。
其次是公钥,公钥相当于就是区块链记账的一个交易记录,交易发生后记录入区块链中,是公开的,并且不可篡改,因为在区块链中,每发生一笔交易都要广播到区块中,大家进行记账。例如张三给王五买牛,现实生活中只是他们两人的事,牛的成交价格只要他们达成协议就可以成交了,跟全村人没有关系,他俩的交易记录由于没有公开所以不叫公钥。但在区块链中,张三给王五买牛的价格除了他们俩人达成协议以外,全村人都要进行记账,全村人记完账交易才完成,那么全村人所记的记录就叫公钥。
再次是区块链地址,它通常是由26至35个字符的字母和数字字符串组成,区块链地址主要来源于公钥,区块链地址相当于我们平时使用的银行卡卡号,是可以公开给任何人的,没有安全限制,主要作用就是用于接收和发送区块链上的数字资产。
区块链技术现在处于初期发展阶段,但因其具有去中心化、安全性、不可篡改等特性,今后的生活工作中可能会产生杀手级别的落地应用而备受各国重视。本文仅供参考,欢迎留言讨论。
如果不了解区块链,不知道公钥、私钥这些最基本的概念,拥有钱包对币圈新人来讲,就好像拿手指头去捅鳄鱼的脑袋,风险极高。此文谨献给币圈新朋友,帮助大家梳理比特币钱包的基本常识。
区块链观察网在 《区块链是什么》 一文中提到过,在区块链世界里,每个人都拥有两把独一无二的虚拟钥匙:公钥和私钥。
“公钥”,可以简单理解为银行卡,这是可以发给交易对方看的,银行卡号则相当于比特币转账中要用到的“地址”。
讲得专业一点,公钥就是一个65字节的字符串,多长呢?130个字母和数字堆在一起。公钥太长的话,第一交易起来忒麻烦,第二干嘛非得暴露公钥的真实内容呢,这就好像把自己的银行卡拿出来到处给人看。因此,我们现在看到的地址,就是经过摘要算法生成的、更短一点的公钥。
对方知道你的地址才能给你打钱;而且,任何人有了你的地址,都能在Blockchain.info官网查询这个钱包地址交易了多少次(No. Transactions),收过多少个比特币(Total Received),以及钱包里还剩下多少个比特币(Final Balance),如下图:
“私钥”,就像打死不能告诉别人的银行卡密码。它是一串256位的随机数。因为让非IT用户去记住这个满屏0 和 1的二进制私钥是特别不人道的事儿,所以对这一大串私钥进行了处理,最后私钥就以5 / K / L 开头的字符串呈现在我们面前。
公钥、私钥、地址之间的关系是:
1)私钥 → 公钥 → 地址
私钥生成唯一对应的公钥,公钥再生成唯一对应的地址;
2)私钥加密,公钥解密
也就是说,A使用私钥对交易信息进行加密(数字签名),B则使用A的公钥对这个数字签名进行解密。
其中,私钥是极度私密的东西。如果你把私钥发给别人,现在就开始写一部长篇小说吧,名字都帮你想好了,就叫《永别了,比特币》。
如果是李笑来老师(网传拥有数十万个BTC)这类币圈大佬,强烈建议使用冷钱包(离线钱包),分开储存;电视里的富豪在银行有自己的保险箱,有条件的话也可以参考。
当时,上述方法是安全系数最高的做法。但作为韭菜接班人,暂且假设我们最初只用闲置资金、持有少量的比特币,比如,小于5个。那么,动辄上千成本、操作复杂的冷钱包就有点杀鸡用牛刀了;因此,区块链观察网把选择范围限定在交易所和轻钱包2项:
在交易平台上买了(极少量)比特币,可以先不提出来,继续存在交易所。这种方式最适合币圈新手。在没有深入了解每种加密货币背后的故事之前,鲜嫩的我们总是充满了好奇,而放在交易所的比特币,可以直接进行币币交易,交易简单快捷,不用经数字钱包导来导去;另一方面,平台上币种齐全,可以满足我们的尝鲜心理,方便随时小试牛刀。
而且像火币、币安(已被墙)这些大型交易所,不仅安全等级比某些专为收割韭菜而生的小平台高很多,而且操作简单,很快就能上手,只需保管好自己的账号、密码就行了(再安全一级的话,开启谷歌二次验证),其他的就交给平台。
值得注意的是,存在交易所上的资产并不完全属于自己,更确切地说是借给平台的,我们在资产那一栏看到的数字,相当于平台向我们借钱而打的白条。此外,交易平台本身不是去中心化的,如果安全措施不到位,用户的账号密码有可能被黑客拿到。
轻钱包是相对于“全节点”钱包来说的。
全节点钱包,比如 Bitcoin-Core(核心钱包),运行时需要同步所有区块链数据,占用相当大内存空间(目前至少50GB以上),完全去中心化;
轻钱包虽然也依赖比特币网络上其他全节点,但其仅仅同步跟自己有关的交易数据,基本实现去中心化的同时,也提升了用户体验。
根据不同的设备类型,我们把轻钱包分为:
1)PC钱包:适用于电脑桌面操作系统(如Windows/MacOS/Linus);
2)手机钱包:适用于安卓、iOS智能手机,比如比太钱包(以太也有PC端);
3)网页钱包:通过浏览器访问,比如上文提过的blockchain网页版。
轻钱包操作比较简单,一般是免费获取。申请钱包的时候,系统会生成一个私钥。准备敲黑板!
1)不要截图、拍照存在手机里;
2)不要把私钥信息发给任何人;
3)最好手写(几份)抄下,藏在你觉得最安全的地方。
总之一句话,谁掌握了钱包的私钥,谁就拥有钱包的绝对控制权。私钥只要掌握在你的手里,比特币就绝不会丢。
最后多说几句,作为普通投资者,我们需要做的并不多:
1)走点心,不要把手机弄丢了,毕竟丢了对手机里的比特币钱包有风险;
2)不要手痒删掉设备上的钱包应用,除非你决定再也不用这个钱包了,否则后期很麻烦;
3)设置复杂的密码(原因见第1点),并用心去记牢,这是私钥弄丢以后留的一手。
对于记不住密码,又懒得科学备份私钥的朋友,咱还是把钱存在银行里吧。
在生活中移动支付和无现金支付已经相对普及了,它方便了我们的日常生活,也降低了我们随身携带现金的风险。无论是移动端支付还是银行卡类支付,我们都要绑定或输入银行卡号和支付密码才能支付,那么在比特币的交易中是如何达成支付的呢区块链中公钥与私钥?
1.私钥
在比特币网络中的私钥可以对应我们现实世界银行卡号加支付密码,也就是区块链中公钥与私钥: 私钥=银行卡号+取款密码。 私钥是比特币网络中根据密码学上的一种伪随机算法生成一种不可预算的一串字符,由于生成的私钥是256位数的二进制密码。因为私钥太长,识别率不高。所以系统又对于原始的随机数进行一定的转换,转换为识别率高的字符串形式的私钥,比如:3KEHtUDa35z3FPrtuX2QbbwGfNP5zhd7yyr2SC1j236sLBxDgse也可以把私钥转换其区块链中公钥与私钥他形式,比如以单词的形式(12或者24个单词)的助记词。还有一种是经过加密的私钥Keystore,是以文件形式存在的,导出时需要设置密码,导入也一样的需要输入密码,即使别人知道了区块链中公钥与私钥你的Keystore,没有你设的密码也是得不到你的私钥的。
2.公钥
公钥也就是我们通常所说的转账地址。公钥是由私钥生成的,通过椭圆曲线算法生成,一个私钥经过椭圆曲线变换之后能够得到公钥,公钥也是一组转换后的字符串,比如:1QDXYsotWo2Byz8NxFaVBArDBYhstFTrE5。公钥是用来验证私钥的签名,私钥和公钥是成对出现的,一个私钥签名的数据,只有对应的公钥才能对其进行验证,而地址也是从公钥生成的,这样就可以验证花费的交易是不是属于这个地址。简单理解也就是: 公钥=银行卡账号。
总结
1.是私钥生成公钥也是成对出现的,公钥可以生成对应的唯一地址,验证发送交易的地址是否和该公钥生成的地址一致
2.公钥验证私钥的签名,用来验证该交易是否使用了正确的私钥签名,这样就能确认了该地址发送的交易是否使用了对应的私钥。
生活中我们对文件要签名,签名的字迹每个人不一样,确保了独特性,当然这还会有模仿,那么对于重要文件再加盖个手印,指纹是独一无二的,保证了这份文件是我们个人所签署的。
那么在区块链世界里,对应的就是数字签名,数字签名涉及到公钥、私钥、哈希、加密算法这些基础概念。
首先加密算法分为对称加密算法、非对称加密算法、哈希函数加密算法三类。
所谓非对称加密算法,是指加密和解密用到的公钥和私钥是不同的,非对称加密算法依赖于求解一数学问题困难而验证一数学问题简单。
非对称加密系统,加密的称为公钥,解密的称为私钥,公钥加密,私钥解密、私钥签名,公钥验证。
比特币加密算法一共有两类:非对称加密算法(椭圆曲线加密算法)和哈希算法(SHA256,RIMPED160算法)
举一个例子来说明这个加密的过程:A给B发一个文件,B怎么知道他接收的文件是A发的原始文件?
A可以这样做,先对文件进行摘要处理(又称Hash,常见的哈希算法有MD5、SHA等)得到一串摘要信息,然后用自己的私钥将摘要信息加密同文件发给B,B收到加密串和文件后,再用A的公钥来解密加密串,得到原始文件的摘要信息,与此同时,对接收到的文件进行摘要处理,然后两个摘要信息进行对比,如果自己算出的摘要信息与收到的摘要信息一致,说明文件是A发过来的原始文件,没有被篡改。否则,就是被改过的。
数字签名有两个作用:
一是能确定消息确实是由发送方签名并发出来的;
二是数字签名能确定消息的完整性。
私钥用来创建一个数字签名,公钥用来让其他人核对私人密钥,
而数字签名做为一个媒介,证明你拥有密码,同时并不要求你将密码展示出来。
以下为概念的定义:
哈希(Hash):
二进制输入数据的一种数字指纹。
它是一种函数,通过它可以把任何数字或者字符串输入转化成一个固定长度的输出,它是单向输出,即非常难通过反向推导出输入值。
举一个简单的哈希函数的例子,比如数字17202的平方根是131.15639519291463,通过一个简单的哈希函数的输出,它给出这个计算结果的后面几位小数,如后几位的9291463,通过结果9291463我们几乎不可能推算出它是哪个输入值的输出。
现代加密哈希比如像SHA-256,比上面这个例子要复杂的多,相应它的安全性也更高,哈希用于指代这样一个函数的输出值。
私钥(Private key):
用来解锁对应(钱包)地址的一串字符,例如5J76sF8L5jTtzE96r66Sf8cka9y44wdpJjMwCxR3tzLh3ibVPxh+。
公钥(Public keycryptography):
加密系统是一种加密手段,它的每一个私钥都有一个相对应的公钥,从公钥我们不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。这套系统使得你可以先公布一个公钥给所有人,然后所有人就可以发送加密后的信息给你,而不需要预先交换密钥。
数字签名(Digital signature):
Digital signature数字签名是这样一个东西,它可以被附着在一条消息后面,证明这条消息的发送者就是和某个公钥相对应的一个私钥的所有人,同时可以保证私钥的秘密性。某人在检查签名的时候,将会使用公钥来解密被加密了的哈希值(译者注:这个哈希值是数据通过哈希运算得到的),并检查结果是否和这条信息的哈希值相吻合。如果信息被改动过,或者私钥是错误的话,哈希值就不会匹配。在比特币网络以外的世界,签名常常用于验证信息发送者的身份 – 人们公布他们自己的公钥,然后发送可以被公钥所验证的,已经通过私钥加密过的信息。
加密算法(encryption algorithm):
是一个函数,它使用一个加密钥匙,把一条信息转化成一串不可阅读的看似随机的字符串,这个流程是不可逆的,除非是知道私钥匙的人来操作。加密使得私密数据通过公共的因特网传输的时候不需要冒严重的被第三方知道传输的内容的风险。
哈希算法的大致加密流程
1、对原文进行补充和分割处理(一般分给为多个512位的文本,并进一步分割为16个32位的整数)。
2、初始化哈希值(一般分割为多个32位整数,例如SHA256就是256位的哈希值分解成8个32位整数)。
3、对哈希值进行计算(依赖于不同算法进行不同轮数的计算,每个512位文本都要经过这些轮数的计算)。
区块链中每一个数据块中包含了一次网络交易的信息,产生相关联数据块所使用的就是非对称加密技术。非对密加密技术的作用是验证信息的有效性和生成下一个区块,区块链上网络交易的信息是公开透明的,但是用户的身份信息是被高度加密的,只有经过用户授权,区块链才能得到该身份信息,从而保证了数据的安生性和个人信息的隐私性。
公钥和私钥在非对称加密机制里是成对存在的,公钥和私钥可以去相互验证对方,那么在比特币的世界里面,我们可以把地址理解为公钥,可以把签名、输密码的过程理解为私钥的签名。
每个矿工在拿到一笔转账交易时候都可以验证公钥和私钥到底是不是匹配的,如果他们是匹配的,这笔交易就是合法的,这样每一个人只需要保管好TA自己的私钥,知道自己的比特币地址和对方的比特币地址就能够安全的将比特币进行转账,不需要一个中心化的机构来验证对方发的比特币是不是真的。
私钥公钥这个名词可谓是所有考题中最简单的了。
公开的密钥叫公钥,只有自己知道的叫私钥。
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。
一句话明了~
区块链中公钥与私钥的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于私钥为什么能解密公钥、区块链中公钥与私钥的信息别忘了在本站进行查找喔。
评论