比特币原理详解
比特币的工作原理

比特币的工作原理比特币是一种基于区块链技术的加密货币,它的工作原理可以分为四个方面:去中心化、区块链、共识机制和加密算法。
1. 去中心化:比特币的最大特点是去中心化,没有中央银行或政府机构控制。
它是由一群独立的节点组成的网络,每个节点都有完整的账本副本。
这些节点通过互联网连接,共同维护和验证交易记录。
2. 区块链:比特币使用了区块链技术来记录和管理交易。
区块链是一个由区块构成的链式数据结构,每个区块包含一定数量的交易记录。
每个区块都有一个唯一的标识符(哈希值),前一个区块的哈希值也会被包含在当前区块中,这样就形成了一个不可篡改的链式结构。
3. 共识机制:比特币网络中的节点通过共识机制来达成一致,即如何决定哪个节点可以添加新的区块到区块链中。
比特币采用了工作量证明(Proof of Work)的共识机制,即通过解决复杂的数学难题来竞争添加新区块的权利。
解题过程需要耗费大量的计算资源,这样可以防止恶意节点的攻击,同时保证了网络的安全性。
4. 加密算法:比特币使用了加密算法来保证交易的安全性。
每个比特币用户都有一对公钥和私钥。
公钥用于接收比特币,私钥用于签名交易。
比特币交易被广播到网络中,其他节点通过验证交易的数字签名和交易的有效性来确认交易的合法性。
总结:比特币的工作原理是基于去中心化、区块链、共识机制和加密算法。
通过去中心化的网络结构和共识机制,比特币实现了安全、透明和不可篡改的交易记录。
加密算法保证了交易的安全性。
这些特点使得比特币成为一种全球范围内的数字货币,被广泛应用于各种交易和投资活动中。
比特币的工作原理

比特币的工作原理比特币是一种基于区块链技术的加密数字货币,其工作原理涉及到分布式账本、加密算法和共识机制等关键概念。
本文将详细介绍比特币的工作原理,并解释其背后的技术原理。
一、分布式账本比特币的核心是一种分布式账本,也称为区块链。
区块链是由一系列数据块组成的,每个数据块包含了一定数量的交易记录。
每个数据块都通过哈希算法与前一个数据块进行链接,形成一个不可篡改的链式结构。
比特币的分布式账本由全网的节点共同维护,任何人都可以成为一个节点,并保存完整的账本副本。
当有新的交易发生时,节点会将该交易广播给整个网络,其他节点会验证该交易的有效性,并将其添加到自己的账本中。
二、加密算法比特币使用了一种称为SHA-256的加密算法。
该算法将交易数据和一个称为“挖矿难题”的随机数进行哈希运算,得到一个固定长度的哈希值。
为了使得哈希值满足一定的条件,挖矿者需要不断尝试不同的随机数,直到找到一个满足条件的哈希值。
挖矿的目的是为了创建新的区块,并将该区块添加到区块链中。
挖矿者通过解决挖矿难题来竞争获得记账的权利,成功的挖矿者会获得一定数量的比特币作为奖励。
三、共识机制比特币采用了一种称为工作量证明(Proof of Work,PoW)的共识机制。
在比特币网络中,每个节点通过解决挖矿难题来证明自己对网络的贡献,从而获得记账的权利。
PoW机制确保了比特币网络的安全性和去中心化特性。
由于挖矿需要消耗大量的计算资源,攻击者要掌控比特币网络需要拥有超过50%的算力,这几乎是不可能的。
四、交易验证比特币网络中的交易验证是通过公钥密码学来实现的。
每个用户都拥有一对密钥,包括一个公钥和一个私钥。
公钥用于生成比特币地址,私钥用于签名交易。
当用户发起一笔交易时,他们会使用自己的私钥对交易进行签名,并将签名和公钥一起广播给网络。
其他节点可以使用公钥来验证交易的真实性,确保交易未被篡改。
五、去中心化特性比特币的去中心化特性是指没有中央机构控制比特币的发行和交易。
比特币的工作原理

比特币的工作原理引言概述:比特币是一种基于区块链技术的加密数字货币,自2009年问世以来,逐渐在全球范围内流行起来。
比特币的工作原理是通过去中心化的方式实现交易的确认和记账,保证交易的安全性和可追溯性。
本文将从五个大点详细阐述比特币的工作原理。
正文内容:1. 比特币的去中心化特性1.1 区块链技术:比特币采用区块链技术来记录和验证交易。
区块链是由一系列区块组成的链式数据结构,每个区块包含了一定数量的交易记录。
1.2 分布式记账:比特币网络中的每个节点都保存了完整的区块链副本,通过共识算法来验证和确认交易。
这种去中心化的记账方式保证了比特币的安全性和可靠性。
2. 比特币交易的过程2.1 钱包地址:比特币交易需要使用钱包地址进行身份验证和交易确认。
每个用户可以拥有一个或多个钱包地址,用于接收和发送比特币。
2.2 交易验证:当用户发起一笔交易时,交易信息会被广播到比特币网络中的节点。
其他节点通过验证交易的有效性,例如检查用户的余额是否充足等。
2.3 区块确认:经过验证的交易会被打包成一个区块,并通过工作量证明机制进行竞争性的挖矿。
挖矿节点通过解决数学难题来获得记账权,将新区块添加到区块链中。
3. 比特币的挖矿过程3.1 工作量证明:比特币采用了工作量证明机制,即通过解决复杂的数学难题来获得记账权。
挖矿节点需要不断尝试生成符合难题要求的哈希值,以获得记账权。
3.2 区块奖励:挖矿成功后,节点将获得一定数量的比特币作为奖励。
这是激励节点参与挖矿的机制,同时也是比特币的发行方式。
3.3 挖矿难度调整:为了保持比特币的稳定发行速度,比特币网络会根据挖矿的总算力调整难题的难度。
这样可以保证每10分钟产生一个新的区块。
4. 比特币的安全性和匿名性4.1 加密算法:比特币使用了一系列加密算法来保证交易的安全性。
例如,使用非对称加密算法来生成和验证数字签名,确保交易的真实性和完整性。
4.2 公开透明:比特币的区块链是公开透明的,任何人都可以查看其中的交易记录。
比特币的原理是什么

比特币的原理是什么一、比特币的基本概念1. 比特币原理的核心:比特币的核心原理是建立在一种名为“区块链”的分布式数据库技术上的。
它是一个保存在网络中的分布式数据库,它是由用户组成的一个P2P(点对点)网络中的索引,记录了比特币账户之间的资金交易信息。
2. 交易过程:当某个用户发出一次资金交易请求时,信息会被发布到P2P网络中,然后便会进行签名,以验证账户身份及支付状态。
签名完成后,交易将被放入一个包含未被确认交易的数据库中,等待其他用户节点的验证,用户节点会对交易进行确认并消耗大量计算资源,只有被正式确认后,资金才能够有效地进入另一方的账户,交易也就得以完成。
这一过程就是矿工(miner)的工作,他们可以获得挖矿所得的报酬(奖励),也就是所谓的“比特币”。
二、工作量证明机制1. 工作量证明是比特币原理的核心:在区块链技术下,每一个新产生的比特币都依赖一种叫做“工作量证明机制”(Proof of Work)的算法。
由于世界各地的用户都可以免费地参与挖矿,而挖矿需要消耗大量计算资源,只有当在挖矿过程中正确地解决了一定难度的工作量证明问题,比特币才能够有效地发行,而且只有通过这个机制,网络才能够对资金的转移实现安全的核对。
2. 如何实现工作量证明:通过“哈希函数”实现工作量证明机制,先定义一个难度指标,比如浮点数越大,难度越高,矿工要求获得一个小于该值的哈希函数输出值,其中内容为一个包含有上一节点所有信息的数据块,矿工将会凭算力对这个数据块进行计算处理,以此获得期望的哈希函数输出值,若满足难度指标即完成工作量证明。
三、比特币的安全性1. 防止重复使用:比特币的另一个健壮的安全特性是防止重复使用(Double Spending),比特币不可能被重复使用,因为在整个P2P网络中它的大多数主林都可以查看到这笔交易同时是否被其他用户使用,一旦某笔被发现不是正确的,这笔交易就会被网络各节点拒绝,从而防止资金被重复使用。
比特币(btc) 密码学原理

比特币(BTC)是一种利用密码学原理进行加密货币,它是一种虚拟货币,不受任何
政府或金融机构的控制。
比特币采用公开的密码学算法,建立了一个分布式的数字货币系统,在这个系统里,用户之间可以安全地进行货币交易。
比特币基于密码学原理,它采用了公钥加密技术来保证比特币的安全性。
公钥加密技术是一种非对称的密码学算法,它利用一对密钥(公钥和私钥)来实现加密和解密,这使得信息在发送和接收方之间可以安全地传输。
此外,比特币还利用了哈希函数,它是一种将任意长度的字符串转换成固定长度的数
字摘要的可逆函数,它可以用来验证一段信息的完整性和真实性,从而保证比特币的数据
安全性。
比特币的安全性还与其网络结构有关。
比特币采用了分布式网络,它由许多节点组成,每个节点都可以接收并发送信息,并验证比特币交易,从而使比特币网络非常安全。
总之,比特币是一种利用密码学原理进行加密的虚拟货币,它利用公钥加密技术,哈
希函数和分布式网络等多种技术来保证比特币的安全性,使比特币交易能够有效安全地进行。
比特币的技术原理及其对金融体系的影响

比特币的技术原理及其对金融体系的影响一、比特币的技术原理比特币是一种去中心化的数字货币,是由比特币网络参与者运用密码学方法交换数字签名的电子货币,而比特币的技术基础是区块链技术。
区块链简单来说就是一个分布式数据库,它由多个节点构成,每个节点都有完整的账本记录,并且各节点比对账本,只有所有节点的账本一致时,交易才能被确认。
比特币的运作原理可以分为三个方面:1.密码学比特币使用的是非对称加密技术,类似于数字签名,每一个比特币的单位都是一个独特的数字签名,这个数字签名包含了整个交易的历史以及整个账户的信息。
这样就可以保证每一个交易是真实有效的,不能被篡改。
2.区块链存储比特币的账本是以区块链的形式存储的,每一条交易都会被打包成一个区块,而这个区块中包含了这笔交易的信息以及上一个区块的哈希值。
而且每一个区块都是按照时间顺序依次生成的,所以整个链条是一个不可篡改的账本。
3.去中心化比特币的交易是由全球各地的节点管理的,没有中央银行作为中介,交易双方可以直接进行数字货币的交易。
这种去中心化的方式保证了比特币的安全性和透明度。
二、比特币对金融体系的影响1.降低交易成本传统的金融体系需要通过银行等中介机构完成交易,而这些中介机构需要收取高昂的手续费。
比特币的去中心化交易方式使得交易双方可以直接进行交易,不需要支付高额中介费用,这对于交易成本的降低有着显著的影响。
2.提高交易速度传统金融交易需要经过多个机构和环节才能完成,而且还需要等待很长时间才能完成。
而对于比特币来说,交易是直接在区块链网络中完成的,交易速度非常快,可以在数分钟内完成。
3.增加金融透明度传统金融体系中,很难实现交易的透明化,并且也很难查明金融机构的操作。
而比特币的区块链技术可以实现每一笔交易的公开可查,保证了交易的透明化和公正性。
4.带来社会效益比特币的去中心化和匿名化特点使得它可以在很多场合都需求量大,有些政治敏感的国家还通过比特币来规避金融制裁。
比特币的工作原理

比特币的工作原理比特币是一种基于区块链技术的加密货币,其工作原理可以分为三个主要方面:交易验证、区块链记录和挖矿奖励。
1. 交易验证:比特币的交易验证是通过公钥加密和数字签名实现的。
每一个比特币用户都拥有一对公钥和私钥,公钥用于接收比特币,私钥用于签署交易。
当用户发起一笔交易时,他们会使用私钥对交易进行数字签名,确保惟独私钥持有者能够对交易进行修改。
其他用户可以使用公钥验证交易的合法性,确保交易的真实性和完整性。
2. 区块链记录:比特币的交易记录被保存在一个分布式的账本中,即区块链。
每一个区块包含了一定数量的交易信息,并通过哈希函数与前一个区块链接在一起,形成一个不可篡改的链条。
这种链式结构确保了交易的顺序和完整性,同时也保证了比特币网络的安全性和可靠性。
3. 挖矿奖励:比特币的挖矿是通过解决复杂的数学问题来验证交易并添加新的区块到区块链中。
挖矿过程需要大量的计算能力,因此参预挖矿的矿工需要通过竞争来解决问题。
第一个成功解决问题的矿工将获得一定数量的比特币作为奖励,并将新的区块添加到区块链中。
这个过程被称为“工作量证明”,通过消耗计算能力来保护网络免受恶意攻击。
总结:比特币的工作原理基于公钥加密、数字签名、区块链和挖矿奖励。
交易验证通过公钥加密和数字签名确保交易的真实性和完整性。
区块链记录交易信息,并通过哈希函数链接在一起,形成一个不可篡改的链条。
挖矿通过解决数学问题验证交易并添加新的区块到区块链中,同时矿工获得比特币作为奖励。
这些机制共同构成为了比特币的工作原理,使其成为一种去中心化、安全可靠的加密货币。
比特币的工作原理

比特币的工作原理比特币是一种数字货币,它的工作原理基于区块链技术和密码学算法。
区块链是一种去中心化的分布式账本,记录了比特币交易的所有信息。
密码学算法则用于保护交易的安全性和匿名性。
比特币的工作原理可以分为四个主要步骤:交易、验证、打包和挖矿。
1. 交易:比特币网络中的参与者可以通过比特币钱包进行交易。
每笔交易包括发送方、接收方和交易金额等信息。
这些交易被广播到整个网络中的节点。
2. 验证:网络中的节点通过使用密码学算法验证交易的有效性。
他们会检查发送方是否有足够的比特币来完成交易,并确保交易的数字签名是有效的,以防止篡改。
3. 打包:一旦交易被验证通过,它们将被打包成一个区块。
一个区块包含了一系列交易和其他元数据,比如时间戳和前一个区块的哈希值。
4. 挖矿:挖矿是比特币网络中的核心过程。
矿工通过解决复杂的数学难题来竞争获得记账权。
这个过程被称为工作量证明(Proof-of-Work)。
矿工需要找到一个特定的哈希值,使得区块头的哈希值满足一定的条件。
一旦找到这个哈希值,矿工就可以将新的区块添加到区块链中,并获得一定数量的比特币作为奖励。
比特币的工作原理的关键在于区块链技术的去中心化特性和密码学算法的安全性。
区块链确保了交易的透明性和不可篡改性,因为每个节点都有一份完整的账本副本。
密码学算法则保护了交易的安全性和隐私性,使得比特币网络成为一个安全、匿名的支付系统。
此外,比特币的供应是有限的。
根据比特币协议,最多只能发行2100万个比特币。
这种固定的供应量使得比特币具有稀缺性,进一步增加了它的价值。
总结起来,比特币的工作原理是基于区块链技术和密码学算法的。
交易被广播到网络中的节点,经过验证后被打包成区块,然后通过挖矿竞争获得记账权。
比特币的工作原理确保了交易的安全性、匿名性和去中心化特性,使得它成为一种独特的数字货币。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
比特币原理详解一、什么是比特币比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。
去中心化电子记账系统是参与者共同记账。
比特币可以防止主权危机、信用风险。
其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。
二、问题引入假设现有4个人分别称之为ABCD,他们之间发起了3个交易,A转给B10个比特币,B 转给C5个比特币,C转给D2个比特币。
如果是传统的记账方式,这些交易会记录在银行的系统中,这些信息由银行来记录,我们相信银行不会随意添加、删除或修改一条交易记录,我们也不会关注到底有哪些交易,我们只关注自己的账户余额。
而比特币的记账方式为ABCD每个人保存了这样一份账本,账本上记录了上述交易内容,如果每个人账本实时的一致,ABCD就不再需要银行。
比特币是这样做的,每当有人发起一笔交易,他就要将一笔交易广播至全网,由全网中的某一个人,把一段时间内的交易打包好记录到一个区块上,再按照顺序把这些区块,一个一个的链接在一起,进而形成了一个链条,这就是所谓的区块链。
那么问题来了1、我凭什么要参与这个系统,我为什么要动用自己的计算机资源来存储这些信息呢?2、以谁的记录为准呢?比如上面的账单顺序,A用户可能是这个顺序,但是B可能顺序不一样,甚至可能B根本就没有接收到C给D转账的这个消息。
3、比特币如果做到支付功能,保证该是谁的钱就是谁的钱,而且只有其所有者才能花。
4、如何防伪、防篡改以及双重支付,防伪是验证每条交易的真的是某人发出的,比如B可能杜撰一条消息,说某某给我转了一笔钱,这就是一个假消息,或者B说我给某人转了多少钱,但是实际上他并没有这么多钱,又怎么办。
防篡改指的是B可能想从区块链上把自己曾经转给某人钱的记录删掉,这样他的余额就会增加。
双重支付是指,B只有10比特币,他同时向C和D转10个比特币,造成双重花费。
三、为什么要记账?因为记账有奖励,记账有手续费的收益,而且打包区块的人有系统奖励,奖励方案是,每十分钟生成一个区块,每生成一个区块会奖励一定数量的比特币,最开始是50个BTC,过4年会奖励25个BTC,再过4年再减少一半,以此类推。
这样比特币的产生会越来越少,越来越趋近于一个最大值,计算公式是:50×6×24×365×4×(1+1/2+1/4+1/8+…)≈2100万,其中最初奖励50个比特币,每小时有6个区块,每天24小时,每年365天,前四年是如此,之后每四年减半。
此外,记账奖励还有每笔交易的小额手续费,每个交易发起都会附带一定的手续费,这些手续费是给记账的矿工的。
四、以谁为准?各个节点通过工作量证明机制来争夺记账权,他们计算一个很复杂的数学题,第一个计算出来的节点就是下一个区块的产生者。
这个数学题很难,难到没有一个人能同过脑子算出来,它是基于概率的方法,矿工必须通过遍历、猜测和尝试的办法才能解开这个未知数。
那么这个数学难题到底是什么呢?下面详细介绍。
4.1哈希函数哈希函数又称为数字摘要或散列函数,它的特点是输入一个字符串,可以生成另外一个字符串,但是如果输入不同,输出的字符串就一定不同,而且通过输出的字符串,不能反推出输入。
举个简单的例子,对1-100内的数模10,可以认为是一种哈希方法,比如98%10=8,66%10=6,98和66是输入,模10是哈希函数,8和6是输出,在这个模型中,通过6和8无法推断输入是66和98,因为还可能是56和88等,当然因为这个例子比较简单,所以会出现哈希碰撞,即66和56的结果都是6,输出的结果相同。
一个优秀的哈希函数,可以做到输出一定不同,哈希碰撞的概率几乎为0。
常见的哈希函数有很多,比如MD系列和SHA系列等,比特币采用的SHA256算法,即输入一个字符串,输出一个256位的二进制数。
下面是程序运行的结果。
通过程序结果可以看出,输入的源信息不同,得到的结果也不同(为了方便,结果用64位16进制表示),即使是orange多了一个句号,也会产生截然不同的结果。
同时,通过输出的十六进制字符串,也无法倒推出输入。
对于比特币,只要了解SHA256的功能即可,如果感兴趣可以深入了解SHA256的具体算法。
需要SHA256的C++源码留言邮箱或私信。
4.2挖矿原理首先介绍一下比特币每个区块的数据结构,每个区块由区块头和区块体两部分组成。
区块体中包含了矿工搜集的若干交易信息,图中假设有8个交易被收录在区块中,所有的交易生成一颗默克尔树,默克尔树是一种数据结构,它将叶子节点两两哈希,生成上一层节点,上层节点再哈希,生成上一层,直到最后生成一个树根,称之为默克尔树根,只有树根保留在区块头中,这样可以节省区块头的空间,也便于交易的验证。
区块头中包含父区块的哈希,版本号,当前时间戳,难度值,随机数和上面提到的默克尔树根。
假设区块链已经链接到了某个块,有ABCD四个节点已经搜集了前十分钟内全网中的一些交易信息,他们选出其中约4k条交易,打包好,生成默克尔树根,将区块头中的信息,即发区块哈希+版本号+时间戳+难度值+随机数+默克尔树根组成一个字符串str,通过两次哈希函数得出一个256的二进制数,即SHA256(SHA256(str)) = 10010011……共256位,比特币要求,生成的结果,前n位必须是0,n就是难度值,如果现在生成的二进制数不符合要求,就必须改变随机数的值,重新计算,只到算出满足条件的结果为止。
假设现在n 是5,则生成的二进制数必须是00000……(共256位)。
一旦挖矿成功,矿工就可以广播这个消息到全网,其他的矿工就会基于该区块继续挖矿。
下一个区块头中的父区块哈希值就是上一个区块生成的00000……这个数。
解决这个数学难题要靠运气,理论上,运气最好的矿工可能1次哈希就能算出结果,运气差的可能永远都算不出来。
但是总体来看,如果一个矿工的算力越大,单位时间内进行的哈希次数就越多,就越可能在短时间内挖矿成功。
那么n是如何确定的呢?比特币设计者希望,总体上平均每十分钟产生一个区块,总体上来看,挖矿成功的概率为1/2^n。
现假设世界上有1W台矿机,每台矿机的算力是14T次/s = 1.4×10^13次/s,单位次/s称之为哈希率,10分钟是600s,所以10分钟可以做8×10^19次哈希运算,从概率角度看,想要挖矿成功需要做2^n次运算,可以列出等式2^n = 8×10^19,可以解出n约为66。
所以对于这种方法,我们没有办法使得自己的运气变的更好,只能提高自己的算力,尽快的算出结果。
另外,需要模拟挖矿过程的C++代码可以回复邮箱,代码可以通过调整难度值,模拟比特币的挖矿算法,控制区块产生的速度。
五、如何防伪、防篡改、防双重支付等问题这部分是理解比特币很重要的部分。
5.1电子签名技术身份认证技术在生活中很常见,可以是人脸识别、签字、指纹等,但是这些方法在数字货币领域并不安全,因为它们一旦数字化,都可以通过复制的方法伪造。
所以比特币采用了电子签名的方法。
注册成为比特币用户时,系统会根据随机数生成一个私钥,私钥会生成一个公钥,公钥又会生成一个地址,其中私钥必须保密,可以保存到硬盘里或者记到脑子里,因为这个私钥是使用相应地址上的比特币的唯一标识,一旦丢失,所有的比特币将无法使用。
下面介绍具体的转换过程,不感兴趣可以不看,只要知道随机数->私钥->公钥->钱包地址这个过程,其中私钥可以对一串字符进行加密,而公钥可以对其进行解密,这就是非对称加密,这类算法总体上的功能都是一样的,只是具体算法有区别,由于这些算法比较复杂,与SHA265算法一样不多做介绍,感兴趣可以深入了解具体算法,但是对于比特币系统,只要了解其功能即可。
典型的算法是RSA,比特币采用椭圆曲线加密算法。
转换过程(选读,不影响理解)1、首先使用随机数发生器生成一个私钥,它是一个256位的二进制数。
私钥是不能公开的,相当于银行卡的密码。
2、私钥经过SECP256K1算法生成公钥,SECP256K1是一种椭圆曲线加密算法,功能和RSA算法类似,通过一个已知的私钥,生成一个公钥,但是通过公钥不能反推出私钥。
3、同SHA256算法一样,RIPEMD160也是一种HASH算法,由公钥可以得到公钥的哈希值,而通过哈希值无法推出公钥。
4、将一个字节的版本号连接到公钥哈希头部,然后对其进行两次SHA256运算,将结果的前4字节作为公钥哈希的校验值,连接在其尾部。
5、将上一步的结果使用BASE58进行编码,就得到了钱包地址(相当于银行账户)。
比如A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa所以,通过以上的过程我们可以总结出私钥、公钥、钱包之间的关系如下图。
可以看到通过私钥可以推出所有的值,公钥哈希和钱包地址之间可以通过BASE58和BASE58解码算法相互转化。
了解了公钥、私钥、地址的概念后,防伪验证的过程就很容易理解,当A发起一笔交易后,对消息进行哈希,生成数字摘要,对数字摘要,通过私钥加密,生成一个密码。
之后A会广播这个条交易消息、公钥以及密码。
收到消息的人首先对交易信息进行哈希生成摘要1,再通过公钥对密码进行解密,生成摘要2,这样,如果两个摘要相同,说明这个消息确实是A发出的。
所谓的签名,就是密文。
5.2余额检查余额的概念应该说根深蒂固,余额是伴随着称之为借贷记账法而产生的,也是目前银行普遍采用的方法,将一个人的交易记录统计好后算出一个余额,但是在比特币中没有余额这个概念,因为其采用的是UXTO模型的记账方法。
比如A->B10个比特币,B->C5个比特币,对于第二笔交易来说,B在发起这笔交易时要注明第一笔交易的信息,这样就可以知道B 曾经从A那里收到过10个比特币,说明满足第二笔交易发起的条件。
所以比特币中余额的检查是通过追溯的方法。
上图描述了两笔交易,交易10001中,B向C转了10个比特币,验证这笔交易的过程是:首先将B的签名通过B的公钥解密,然后再和交易的具体内容(B签名左侧)对比,如果相同,说明消息是B发出的,然后再检查10000这个交易是否真的存在以及它的内容的真实性。
这两点都满足了,就说明交易10001是可以被接受的,否则拒绝接受。
实际上,真实的交易比这个复杂的多,因为有可能是多笔交易构成了输入,比如B->C20个比特币,是由多笔交易A->B10,D->B10构成的,则前一笔交易ID就是两个ID,甚至可能更多。
这里为了简单描述,只列举一笔交易。