摘要:区块链生成公钥和私钥的过程1.【猫说】打开比特币钱包的两把钥匙:私钥、公钥如果不了解区块链,不知道公钥、私钥这些最基本的概念,拥有钱包对币圈新人来讲,就好像...
区块链生成公钥和私钥的过程
1. 【猫说】打开比特币钱包的两把钥匙:私钥、公钥
如果不了解区块链,不知道公钥、私钥这些最基本的概念,拥有钱包对币圈新人来讲,就好像拿手指头去捅鳄鱼的脑袋,风险极高。此文谨献给币圈新朋友,帮助大家梳理比特币钱包的基本常识。
区块链观察网在 《区块链是什么》 一文中提到过,在区块链世界里,每个人都拥有两把独一无二的虚拟钥匙:公钥和私钥。
“公钥”,可以简单理解为银行卡,这是可以发给交易对方看的,银行卡号则相当于比特币转账中要用到的“地址”。
讲得专业一点,公钥就是一个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点),并用心去记牢,这是私钥弄丢以后留的一手。
对于记不住密码,又懒得科学备份私钥的朋友,咱还是把钱存在银行里吧。
2. 区块链密匙文件怎么获取
1.一种区块链系统密钥的找回方法,其特征在于,包括以下步骤:步骤1、创建原始密钥对;步骤2、根据原始密钥对演算业务密钥对;步骤3、根据业务密钥对演算地址和账号;步骤4、当业务密钥丢失,执行步骤2。2.根据权利要求1所述的区块链系统密钥的找回方法,其特征在于,所述原始密钥对包括原始私钥和原始公钥。3.根据权利要求2所述的区块链系统密钥的找回方法,其特征在于,所述步骤1中,创建原始密钥对包括以下步骤:步骤11、采用一个随机数生成一个原始种子;步骤12、由所述原始种子经非对称加密算法演算生成原始密钥对,所述原始密钥对包括原始私钥与原始公钥。4.根据权利要求1中的所述的区块链系统密钥的找回方法,其特征在于,所述步骤2中,业务密钥对包括业务私钥和业务公钥。5.据权利要求4中的所述的区块链系统密钥的找回方法,其特征在于,所述步骤2中,具体为,根据种子制作数据生成业务种子,根据业务种子生成业务密钥对,具体包括以下步骤:步骤21、以原始私钥作为加密密钥,对种子制作数据进行种子生成运算,得到具有唯一性的密文作为业务种子,;步骤22、由所述业务种子经称非对加密算法演算生成业务密钥对,所述密钥对包括业务私钥与业务公钥。6.据权利要求5中的所述的区块链系统密钥的找回方法,其特征在于,所述步骤21中,种子制作数据包括原始公钥或者其它选定的任何数据。7.据权利要求权利5中的所述的区块链系统密钥的找回方法,其特征在于,所述步骤21中,种子生成运算包括hmac加密算法运算、加盐哈希加密算法运算、对称加密算法运算或非对称加密算法运算。8.据权利要求3或5中的所述的区块链系统密钥的找回方法,其特征在于,所述非对称加密算法包括rsa算法、ecc算法、ecdsa算法、sm2算法和sm9算法的其中任一种。9.据权利要求5中的所述的区块链系统密钥的找回方法,其特征在于,所述唯一性的密文如非哈希值则对所述密文进行哈希运算,得到所述密文的哈希值作为业务种子;密文如为哈希值则可直接作为业务种子,或者可再次或多次进行哈希运算,得到的哈希值作为业务种子。10.据权利要求7中的所述的区块链系统密钥的找回方法,其特征在于,所述对称加密算法包括des算法、3des算法、rc2算法、rc4算法、rc5算法、aes算法、sm1算法、sm4算法、sm7算法和zuc算法的其中任一种。
3. 像诚信币这样基于区块链的数字货币中,私钥,公钥,地址到底是怎么回事
很多小白刚入场时,就被私钥,公钥,地址,等等关系弄晕头。有的甚至把自己私钥搞丢了,地址上特别有钱,可偏偏就是取不出来,今天小白就把私钥,公钥,还有地址之间的关系跟大家捋一捋。
私钥、公钥和地址这三者的关系是:私钥转换成(生成)公钥,再转换成地址,如果某个地址上有比特币或诚信币,就可以使用转换成这个地址的私钥花费上面的诚信币。公钥和地址的生成都依赖于私钥,所以私钥才最重要。
手机钱包也是同样,但因为手机的文件管理方式不像计算机那么方便。所以一般手机钱包会提供一个名为或类似“导出私钥”的功能,通过这个功能,就可以将私钥用各种形式导出来。
比如比特币手机钱包可以导出为二维码,可以打印或者扫描到纸上。更换手机时,装好比特币钱包扫描一下这个二维码,就可以实现迁移比特币。比特币手机钱包和诚信币手机钱包可以导出为一份明文字符串,打印到纸上——这就是纸钱包。
纸钱包让用户可以到任何有比特币或诚信币钱包的终端来花费你的比特币或诚信币。
由于钱包丢失或损坏会导致失去私钥,从而彻底失去该数字货币的转账权。要防止出现这样的悲剧,就要记得经常备份钱包里的数据。除了地址外,备份时也保存了所有的私钥。
总结私钥要保护好,防止丢失,防止忘记,在手机清信息时方式被清除,最好手抄一份,但不要泄露。
要防止自己钱包丢失或损坏,导致丢失私钥,丧失数字货币的转账权,否则你顿再多币取不出来,还不是没用。
4. 公钥与私钥的区别与应用。
现实生活中,我要给依依转1个比特币,我需要在比特币交易平台、比特币钱包或者比特币客户端里面,输入我的比特币钱包地址、依依的钱包地址、转出比特币的数量、手续费。然后,我们等十分钟左右,矿工处理完交易信息之后,这1个比特币就成功地转给依依了。
这个过程看似很简单也很便捷,跟我们现在的银行卡转账没什么区别,但是,你知道这个过程是怎样在比特币系统里面实现的吗?它隐藏了哪些原理呢?又或者,它是如何保证交易能够在一个安全的环境下进行呢?
我们今天就来讲一讲。
对于转出方和接收方来讲,也就是我和依依(我是转出方,依依是接收方)我们都需要出具两个东西:钱包地址、私钥。
我们先说钱包地址。比特币钱包地址其实就相当于银行卡、支付宝账号、微信钱包账号,是比特币支付转账的“凭证”,记录着平台与平台、钱包与钱包、钱包与平台之间的转账信息。
我们在使用银行卡、支付宝、微信转账时都需要密码,才能够支付成功。那么,在比特币转账中,同样也有这么一个“密码”,这个“密码“被称作“私钥”。掌握了私钥,就掌握了其对应比特币地址上的生杀大权。
“私钥”是属于“非对称加密算法”里面的概念,与之对应的还有另一个概念,名叫:“公钥”。
公钥和私钥,从字面意思我们就可以理解:公钥,是可以公开的;而私钥,是私人的、你自己拥有的、需要绝对保密的。
公钥是根据私钥计算形成的,比特币系统使用的是椭圆曲线加密算法,来根据私钥计算出公钥。这就使得,公钥和私钥形成了唯一对应的关系:当你用了其中一把钥匙加密信息时,只有配对的另一把钥匙才能解密。所以,正是基于这种唯一对应的关系,它们可以用来验证信息发送方的身份,还可以做到绝对的保密。
我们举个例子讲一下,在非对称加密算法中,公钥和私钥是怎么运作的。
我们知道,公钥是可以对外公开的,那么,所有人都知道我们的公钥。在转账过程中,我不仅要确保比特币转给依依,而不会转给别人,还得让依依知道,这些比特币是我转给她的,不是鹿鹿,也不是韭哥。
比特币系统可以满足我的上述诉求:比特币系统会把我的交易信息缩短成固定长度的字符串,也就是一段摘要,然后把我的私钥附在这个摘要上,形成一个数字签名。因为数字签名里面隐含了我的私钥信息,所以,数字签名可以证明我的身份。
完成之后,完整的交易信息和数字签名会一起广播给矿工,矿工用我的公钥进行验证、看看我的公钥和我的数字签名能不能匹配上,如果验证成功,都没问题,那么,就能够说明这个交易确实是我发出的,而且信息没有被更改。
接下来,矿工需要验证,这笔交易花费的比特币是否是“未被花费”的交易。如果验证成功,则将其放入“未确认交易”,等待被打包;如果验证失败,则该交易会被标记为“无效交易”,不会被打包。
其实,公钥和私钥,简单理解就是:既然是加密,那肯定是不希望别人知道我的消息,所以只能我才能解密,所以可得出:公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我的身份,只有我才能发布这个数字签名,所以可得出:私钥负责签名,公钥负责验证。
到这里,我们简单概括一下上面的内容。上面我们主要讲到这么几个词:私钥、公钥、钱包地址、数字签名,它们之间的关系我们理一下:
(1)私钥是系统随机生成的,公钥是由私钥计算得出的,钱包地址是由公钥计算得出的,也就是:私钥——公钥——钱包地址,这样一个过程;
(2)数字签名,是由交易信息+私钥信息计算得出的,因为数字签名隐含私钥信息,所以可以证明自己的身份。
私钥、公钥都是密码学范畴的,属于“非对称加密”算法中的“椭圆加密算法”,之所以采用这种算法,是为了保障交易的安全,二者的作用在于:
(1)公钥加密,私钥解密:公钥全网公开,我用依依的公钥给信息加密,依依用自己的私钥可以解密;
(2)私钥签名,公钥验证:我给依依发信息,我加上我自己的私钥信息形成数字签名,依依用我的公钥来验证,验证成功就证明的确是我发送的信息。
只不过,在比特币交易中,加密解密啦、验证啦这些都交给矿工了。
至于我们现在经常用的钱包APP,只不过是私钥、钱包地址和其他区块链数据的管理工具而已。钱包又分冷钱包和热钱包,冷钱包是离线的,永远不联网的,一般是以一些实体的形式出现,比如小本子什么的;热钱包是联网的,我们用的钱包APP就属于热钱包。
5. 区块链技术
背景:比特币诞生之后,发现该技术很先进,才发现了区块链技术。比特币和区块链技术同时被发现。
1.1 比特币诞生的目的:
①货币交易就有记录,即账本;
②中心化机构记账弊端——可篡改;易超发
比特币解决第一个问题:防篡改——hash函数
1.2 hash函数(加密方式)
①作用:将任意长度的字符串,转换成固定长度(sha256)的输出。输出也被称为hash值。
②特点:很难找到两个不同的x和y,使得h(x)=h(y)。
③应用:md5文件加密
1.3 区块链
①定义
区块:将总账本拆分成区块存储
区块链:在每个区块上,增加区块头。其中记录父区块的hash值。通过每个区块存储父区块的hash值,将所有的区块按照顺序连接起来,形成区块链。
②区块链如何防止交易记录被篡改
形成区块链后,篡改任一交易,会导致该交易区块hash值和其子区块中不同,发现篡改。
即使继续篡改子区块头中hash值,会导致子区块hash值和孙区块中不同,发现篡改。
1.4 区块链本质
①比特币和区块链本质:一个人人可见的大账本,只记录交易。
②核心技术:通过密码学hash函数+数据结构,保证账本记录不可篡改。
③核心功能:创造信任。法币依靠政府公信力,比特币依靠技术。
1.5如何交易
①进行交易,需要有账号和密码,对应公钥和私钥
私钥:一串256位的二进制数字,获取不需要申请,甚至不需要电脑,自己抛硬币256次就生成了私钥
地址由私钥转化而成。地址不能反推私钥。
地址即身份,代表了在比特币世界的ID。
一个地址产生之后,只有进入区块链账本,才能被大家知道。
②数字签名技术
签名函数sign(张三的私钥,转账信息:张三转10元给李四) = 本次转账签名
验证韩式verify(张三的地址,转账信息:张三转10元给李四,本次转账签名) = True
张三通过签名函数sign(),使用自己的私钥对本次交易进行签名。
任何人可以通过验证韩式vertify(),来验证此次签名是否有由持有张三私钥的张三本人发出。是返回true,反之为false。
sign()和verify()由密码学保证不被破解。·
③完成交易
张三将转账信息和签名在全网供内部。在账户有余额的前提下,验证签名是true后,即会记录到区块链账本中。一旦记录,张三的账户减少10元,李四增加10元。
支持一对一,一对多,多对已,多对多的交易方式。
比特币世界中,私钥就是一切!!!
1.6中心化记账
①中心化记账优点:
a.不管哪个中心记账,都不用太担心
b.中心化记账,效率高
②中心化记账缺点:
a 拒绝服务攻击
b 厌倦后停止服务
c 中心机构易被攻击。比如破坏服务器、网络,监守自盗、法律终止、政府干预等
历史 上所有有中心化机构的机密货币尝试都失败了。
比特币解决第二个问题:如何去中心化
1.7 去中心化记账
①去中心化:人人都可以记账。每个人都可以保留完整的账本。
任何人都可以下载开源程序,参与P2P网络,监听全世界发送的交易,成为记账节点,参与记账。
②去中心化记账流程
某人发起一笔交易后,向全网广播。
每个记账节点,持续监听、持续全网交易。收到一笔新交易,验证准确性后,将其放入交易池并继续向其它节点传播。
因为网络传播,同一时间不同记账节点的交一次不一定相同。
每隔10分钟,从所有记账节点当中,按照某种方式抽取1名,将其交易池作为下一个区块,并向全网广播。
其它节点根据最新的区块中的交易,删除自己交易池中已经被记录的交易,继续记账,等待下一次被选中。
③去中心化记账特点
每隔10分钟产生一个区块,但不是所有在这10分钟之内的交易都能记录。
获得记账权的记账节点,将得到50个比特币的奖励。每21万个区块(约4年)后,奖励减半。总量约2100万枚,预计2040年开采完。
记录一个区块的奖励,也是比特币唯一的发行方式。
④如何分配记账权:POW(proof of work) 方式
记账几点通过计算一下数学题,来争夺记账权。
找到某随即数,使得一下不等式成立:
除了从0开始遍历随机数碰运气之外,没有其它解法,解题的过程,又叫做挖矿。
谁先解对,谁就得到记账权。
某记账节点率先找到解,即向全网公布。其他节点验证无误之后,在新区块之后重新开始新一轮的计算。这个方式被称为POW。
⑤难度调整
每个区块产生的时间并不是正好10分钟
随着比特币发展,全网算力不算提升。
为了应对算力的变化,每隔2016个区块(大约2周),会加大或者减少难度,使得每个区块产生的平均时间是10分钟。
#欧易OKEx# #比特币[超话]# #数字货币#
6. 区块链私钥、公钥和地址是什么关系
区块链私钥,公钥和地址三者之间的关系是私钥生成公钥,公钥转化成为地址。所以私钥是最重要的。这三者之间是不可逆的,地址不能生成公钥,公钥也不能转化成为私钥。
再次是区块链地址,它通常是由26至35个字符的字母和数字字符串组成,区块链地址主要来源于公钥,区块链地址相当于我们平时使用的银行卡卡号,是可以公开给任何人的,没有安全限制,主要作用就是用于接收和发送区块链上的数字资产。
区块链技术现在处于初期发展阶段,但因其具有去中心化、安全性、不可篡改等特性,今后的生活工作中可能会产生杀手级别的落地应用而备受各国重视。本文仅供参考,欢迎留言讨论。