比特币机制的了解

场景预设

在一个圈子里,假设大家手中都有一份账单,记录着这个圈子的交易明细

在这个交易过程中,出现的问题有:

  • 如果随便添加交易记录怎么办?
  • 单纯复制交易记录行不行?
  • 这么多账单该信任谁的?

解决

随意添加交易记录——电子签名

每个人身上都有一个公钥和私钥,私钥只有自己知道,公钥可以被人查看。

Sign(Message,密钥)=Signature

Verify(Message,Signature,公钥)=TRUE/FALSE

Message为交易信息

自身先通过签名函数产生签名,其他人通过验证函数判断该交易记录的真假

  • 关于公钥与私钥

    比特币机制中的公钥是通过钱包地址来公开的。当您创建一个比特币钱包时,系统会生成一个公钥和一个私钥,公钥会被转换成钱包地址。当您接收比特币时,您可以将您的钱包地址分享给他人,这样他们就可以将比特币发送到您的地址中。在比特币网络中,每个人都可以查看所有的钱包地址和交易记录,但是只有拥有私钥的人才能控制该地址中的比特币。

  • 关于签名函数和验证函数

    比特币机制中的签名生成函数和验证函数是公开的、标准化的算法,并且在整个比特币网络中是相同的。这意味着每个人都可以使用相同的算法来生成和验证比特币交易的签名,从而确保交易的安全性和有效性。

  • 如果知道了交易信息和电子签名,是不是能直接通过签名函数推导出密钥?

    比特币使用的签名算法是非常安全的,被称为椭圆曲线数字签名算法(ECDSA),其安全性基于离散对数难题。这意味着要从签名中推导出私钥,需要解决一个非常困难的计算问题,需要耗费大量的时间和计算资源。

直接复制一行交易记录——每笔交易独有ID号

通过上面的电子签名的解决后,又有一个问题,就是如果我不断复制交易内容,即交易信息和电子签名都复制一遍不就可以通过验证函数了?

例如有人转账给我100,我可以不断复制这个交易记录。

这个问题的解决方法是每段交易都有的独特的ID号,这样就保证了每次交易信息都不一样,进而影响签名函数的不同。

账本该信任谁的——工作量证明

大家都持有账本,信息有多有少,那么应该相信谁的?

分两步的信任来说明这个。

第一步信任:工作量证明(Proof of Work)

在这里账单被分化成一个个区块,一个区块包含前一块的哈希值交易信息以及工作量证明在这里插入图片描述
工作量证明是一串数字,不被限定其长度,计算得出的工作量证明(不断的试)使得前一块哈希值交易信息以及工作量证明三者通过SHA-256算法计算出来的哈希值必须是bitcoin机制所规定的以一定个数的0开头。

一个区块连着一个区块,称作区块链

处在圈内的“矿工”会不断接收交易的广播传来交易的信息,把这个信息收集起来并计算出符合规定的哈希值的工作量证明。一旦算出,“矿工”就可以创建区块,把包含在计算中的前一块哈希值交易信息以及工作量证明放在区块中,其中交易信息还包含一个创建区块者的奖励(bitcoin机制所规定),并将区块链广播出去。

所以说矿工产生了新的货币。
在这里插入图片描述
第二步信任:更长的区块链

在这个交易系统中,不进行挖矿只是进行交易收付款的只需要收听矿工们广播出来的区块,更新保存到自己的区块链后即可。

一般来讲是哪条区块链长就接收哪条,如果接受到多条信息冲突且长度相等的区块链,那就放着等待新的区块到来接上其中一条,这样就产生了最长的一条。

信任更长的区块链就一定准确吗?

系统中的接受者在接受区块的时候并不会第一时间加入自己的区块链,而是有没有其他的带着同样的前一块哈希值的区块被广播,如果有就收集进来,接下来就看哪个区块被接得更长,更长的区块链就会被接上,其他弃之。

如果一个矿工骗子把一个包含错误交易信息的区块进行广播,接收者在做上述的处理操作,那么该矿工骗子是在跟相当于跟其他所以的矿工比算力,看谁算得更快,谁能在更快时间接得更长。通常骗子矿工是不可能比得过的,从而也保证了该系统的准确性
在这里插入图片描述

参考资料:【官方双语】想知道比特币(和其他加密货币)的原理吗?
3Blue1Brown

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值