区块链【4】如何证明你发的消息是你发的?

大家好,通过前几期的介绍,我们知道了比特币是一种电子记账系统,由于它的所有记录都是公开而且匿名的,于是比特币就面临这样几个问题:它如何去解决伪造记录、篡改记录、双重支付的问题?今天我们先来研究一下伪造记录的问题。

如何保证比特币的交易记录是真实的,也就是如何进行身份认证,我们必须保证每一条记录都是由比特币持有者所发出的而不是由其他人伪造的,那么传统的记录认证方式有哪些呢?

可以刷脸,人脸识别。我们去银行办业务,银行要求我们必须本人去,为什么?因为他要刷脸。

第二个就是签名,我们可以在某个文件上签字,便是我们认可这份文件了,或者再狠一点,我们搞指纹,每个人的指纹不一样,你按了手印就表示这个事儿是你认可的。

但是这些方式在电子支付系统上都不能实现,为什么?因为无论是人脸签名还是指纹,利用计算机系统都可以进行拷贝。我可以拷贝你的签名,然后添加到我伪造的记录上,这不就行了吗?所以我们必须对这种传统的身份认证方式进行更改,怎么改呢?电子签名。

首先,一个比特币用户,他在注册的时候,系统会生成一个随机数,然后通过这个随机数产生一个叫做私钥的字符串,这个私钥又可以产生一个叫做公钥的字符串,私钥和公钥是对应的,同时又可以产生一个地址,那么这些东西它的重要性是不一样的,首先这个私钥你必须保存好了,它是你私有的保密的,如果你的私钥丢了,那你的所有比特币就都不见了。私钥必须存好了,也不能让别人知道,所以有些人把私钥放在一个不联网的电脑里面,也有一些人把它背下来记到脑子里。

而公钥和地址都是公开的,如果你想让别人给你钱的话,你把你的地址告诉他就可以了,如果你想给别人钱的话,你要把你的公钥和地址一起发送过去,这两个都是公开的,没有关系,而且通过公钥也反算不出来私钥,咱们上期说过,像SHA256算法,你只能正着算,反着算不出来,同样的私钥到公钥可以算,但是反过来公钥到私钥是算不出来的,这也是一种加密手段。

好了,那么私钥和公钥有什么作用呢?私钥可以对一串字符进行加密,而公钥可以把这个私钥加密之后的数据进行解密,那么加密和解密的钥匙不一样,这种加密方法我们称之为非对称加密,比如最典型的非对称加密就是RSA加密。

比特币也是使用了非对称加密,只有你能够加密,而任何人都可以解密你加密之后的信息,好了,现在我们就想问,假如有一个人A,他想付给B十个比特币,他该怎么办?

那么A他要做这么一件事,首先他写一条记录,就是A付给B十个比特币,写这么一条记录,然后对这条记录进行数字摘要,也就是哈希运算,算出一个摘要,之后再通过自己的私钥进行加密,产生一个密码。

然后,A对全网进行广播,将交易内容、自己的公钥、对摘要进行加密之后的密码全部广播出去。

   

这时候,别人拿到了他的广播之后就去琢磨,这一条信息说A给B十个比特币,那对不对,是不是真的是A给的,别人怎么去验证?

这么验证,首先其他接收到这条消息的人会对交易信息做哈希运算,得出一个摘要,同时用公钥和密码进行解密,解密出一个摘要来,将两个摘要进行对比,两个摘要相同,就可以认为这条消息确实是A广播的,如果两个摘要不相同,这就说明这条消息是伪造的,于是所有的用户都会拒绝这条消息,这样一来就保证了所有A发给B的消息都是由A签发的,这种方式我们就称之为电子签名,其实我们的银行卡很多的时候也是用这种方法来进行签名的,原理上差不多。

好了,讲到这里今天的问题就解决了,我是蓝博公司的hr,我们下期再见,拜拜!

原文地址:https://www.cnblogs.com/lenbor/p/12609414.html

时间: 2024-08-05 18:21:20

区块链【4】如何证明你发的消息是你发的?的相关文章

区块链,工作证明(POW)代码+原理 golang版剖析

介绍 在之前的文章中,我们构建了一个非常简单的数据结构,这是块链数据库的本质. 而且我们可以用它们之间的链式关系向它添加区块:每个区块与前一个链接. 唉,然而在现实中添加一个区块添加到链是艰巨的工作. 工作证明 块链的一个关键思想是,必须通过工作证明才能将数据放入其中.这是一个艰巨的工作,使块链安全和一致.此外,这笔辛苦的工作也得到了奖励(这是人们获得采矿硬币的方式). 这种机制与现实生活中的机制非常相似:人们必须工作获酬劳励并维持生命.在网络中,网络的一些参与者(矿工)努力维持网络,为其添加新

区块链共识机制的演进

分布式系统的基本概念 FLP不可能原理和CAP原理 FLP 不可能原理(FLP impossibility):在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法.1985年 FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成. 科学告诉你什么是不可能的:工程则告诉你,付出一些代价,我可以把它变成可能. CAP 原理最早由 Eric Brewer 在 2000 年,ACM 组织的一个研讨会上提出猜想,后来

从零开始学区块链(3)

转自 区块链大师 区块链的定义.特征与发展 一.定义 区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案.该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块(block),每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接(chain)下一个数据库块. 区块链是一种类似于NoSQL(非关系型数据库)这样的技术解决方案统称,并不是某种特定技术,能够通过很多编程语言和架构来实现区块

什么是“区块链”技术

简单谈谈究竟什么是“区块链”技术 今年9月,13家顶级银行,包括汇丰银行.德意志银行等,已经加入了一个由金融技术公司R3领导的组织.R3公司将会利用区块链技术作为框架.宣布加入的13家银行是:花旗银行.美国银行.摩根斯坦利.德国商业银行.法国兴业银行.瑞典北欧斯安银行.纽约梅隆银行.三菱UFJ金融集团.澳大利亚国民银行.加拿大皇家银行和多伦多道明银行.由此总计22家银行加入财团.此前,另外9个银行已经签署了R3的初创协议,这代表着首次,银行之间对于如何利用区块链——支撑比特币的技术——用于金融层

数字货币:从纸币泡沫看比特币泡沫,从互联网泡沫看区块链泡沫

目录 货币:一种观念,一个记账单位 纸币:从泡沫到法币,从自由到垄断 数字货币:6000年后,回到起点 互联网:从泡沫到革命,从1.0到4.0 区块链:从泡沫到-- 为了不引起读者混淆,笔者在一些概念上作了区分.数字货币:通指一种新的货币制度,类似于信用货币制度或者金本位制度等:虚拟币:指代以比特币.莱特币等为代表的由市场创造的虚拟代币:同时提醒读者注意货币的虚拟化和虚拟币的意思也不一样,前者主要指现在的纸币虚拟化/数字化的过程. 一.货币:一种观念 雅浦岛和费币的故事在学界广为人知,货币学派的

基于Java语言构建区块链(三)—— 持久化 & 命令行

引言上一篇 文章我们实现了区块链的工作量证明机制(Pow),尽可能地实现了挖矿.但是距离真正的区块链应用还有很多重要的特性没有实现.今天我们来实现区块链数据的存储机制,将每次生成的区块链数据保存下来.有一点需要注意,区块链本质上是一款分布式的数据库,我们这里不实现"分布式",只聚焦于数据存储部分. 给大家推荐一个java内部学习群:725633148,进群找管理免费领取学习资料和视频.没有错就是免费领取!大佬小白都欢迎,大家一起学习共同进步! 数据库选择 到目前为止,我们的实现机制中还

区块链的4个实际应用

1. 赋能分布式的.独立的市场 区块链允许资产所有者跟踪和交易价值(如未开发的发票)的价值,例如,在一个更安全.透明.私有和自我协调的"链"交易中.这种能力为现金和资产管理增加了速度和灵活性. 例如,通过使用企业资源规划(ERP)应用程序的验证发票,公司可以通过在一个自主的发票保理市场上销售发票来快速筹集所需的现金或加速现金流. 其他资产的自主市场将成倍增长.从本质上讲,基于区块链的交易降低了第三方监督的需求,因为软件本身是一个受控的.开放的框架,对所有交易参与者都可见. 如果一个公司

初识区块链(三)

工作量证明(proof of work) 区块链的一个关键是,为了保证安全稳定,要给它加一个门槛:即参与者想创建区块并加入区块链,必须证明自己完成了非常困难的工作,这就是"工作量证明",简称POW.可以理解为POW用于保持区块链的节奏. 工作的困难度通过计算量来体现,它不能被快速完成,而且困难度随时间增长而加大.中本聪在比特币中设定每10分钟出一个新块(动态设置难度值).而哈希计算(hash)的特点,就满足这种要求. 此外,完成这个工作的人,也会获得相应奖励.如"矿工&quo

金猫kinmall全球行:2018规模最高的区块链峰会

少有一项技术,像区块链一样,在"幼年"阶段,就能够受到全世界的瞩目与激烈讨论,并吸引了各个行业中,最有前瞻性的顶级人才,义无反顾地涌入其中.过往一年,区块链行业,创新不断.探索不断.质疑不断.监管不断.政府支持不断.不久之后,势必将应用不断.变革不断.机遇不断! 现在区块链马上要由幼年阶段,过渡到少年阶段.此时行业充满着机遇,充满着可能,就像马云.马化腾.雷军,他们赶上了互联网.移动互联网的红利,在区块链行业里面,随着技术的成熟,也必将出现引领行业走势的人物. 而在这个迅速发展的行业里