主页 > imtoken钱包官网登录 > 解密区块链和比特币

解密区块链和比特币

imtoken钱包官网登录 2023-09-22 05:12:44

区块链是金融科技中的核心技术,它的应用未来可能与大家息息相关。我参考了该领域的相关著作,梳理了重点内容。提供一个关于区块链和比特币的认知框架,希望能帮助读者理解相关概念。

一、比特币的技术基础

所有货币都需要某种方式来控制其供应,并需要各种保护措施来防止欺骗。对于法定货币,中央银行控制货币供应量并在实物货币上贴上防伪标志。这些安全措施使攻击货币变得更加困难,但并非不可能伪造。最终,执法部门仍然需要介入,以防止货币体系的规则被打破。

数字货币与法币的区别在于其安全规则需要完全通过技术手段来实施,而不是依赖于央行。

数字货币侧重于密码学的使用。我们不仅可以使用密码学来防止对系统的干扰,我们可以避免混淆,我们甚至可以将新的货币创建规则编码到数学协议中。密码学的理论很复杂,幸运的是,比特币在密码学中只使用了少数相对简单的理论。主要是哈希算法(Hash)和数字签名(digitalsignature)技术,这两个基本概念对于构建数字货币体系非常关键。

1.1哈希指针

Hash Pointer 是一个指向数据存储位置及其哈希值的指针。指针。这里的哈希是指哈希函数,是一个数学函数。哈希指针不仅可以告诉你数据存储在哪里,还可以让你验证数据没有被篡改。

我们通过哈希指针构建一个链表,并将这个数据结构称为区块链。在区块链中,指向前一个块的指针由哈希指针表示。因此,每个区块不仅可以告诉我们前一个区块的值在哪里,还可以让我们验证这个值没有改变。

比特币三大核心技术

区块链是防篡改的,如果有人篡改了区块中的数据,我们可以检测到。具体来说,攻击者的目标是让只记得区块链头的哈希指针的人无法检测到篡改。为了达到这个目的,对手会改变一个区块K的数据。既然数据已经改变,那么存储在区块K+1中的哈希指针(即整个区块K的哈希值)将不匹配我们能够检测到块 K 中的新数据以及块 K+1 中哈希指针的不一致。当然,攻击者可以继续尝试并通过篡改下一个区块的哈希来掩盖这种篡改。这样做直到链表的头部。只要我们将链表头部的哈希指针存放在对手无法更改的地方,对手就无法在不被发现的情况下篡改任何区块。

这样,我们知道只要记住一个哈希指针,我们就基本记住了整个链表的防篡改哈希值。

1.2 个数字签名

数字签名被认为是纸上手写签名的数字模拟。我们对数字签名有两个功能要求:

1、只有你自己可以签名,但是任何人看到它都可以验证它的有效性;

2、我们希望签名仅与特定文档相关联,因此签名不能用于表示您同意或支持其他文档。

数字签名方案由以下三种算法组成(为了后面解释方便,这部分很难跳过):

1、 (sk, pk):= generateKeys (keysize) generateKeys 方法以 keysize 作为输入,生成一对公钥和私钥。私钥被安全保存并用于签署消息;公钥可供所有人使用,并且可以使用它来验证您的签名。

2、 Sig:=sign(sk, message) 签名过程以消息和私钥为输入,输出为签名。

3、 isValid:=verify(pk, message, sig) 验证过程是以消息、签名和公钥作为输入。如果返回结果为真,则证明签名为真;否则,签名为假。

比特币三大核心技术

我们要求以下两个属性有效:

1、可以验证一个有效的签名,即:

验证(pk, message, sign(sk, message)) == true

2、签名不能伪造。

其中,generateKeys 和 sign 都使用随机算法。 generateKeys 需要为不同的人生成不同的密钥。并且验证需要修复。这样,成功伪造签名信息的概率就很小了——小到我们可以假设在实践中永远不会发生,也就是说签名方案是不能伪造的。

在比特币系统中,公钥就是你的身份。您可以随时开发新的身份——通过数字签名方案中的 generateKeys 过程,生成新的密钥对:sk 和 pk。 pk是你可以使用的新公共身份,sk是对应的只有你知道的秘钥,允许你代表身份为pk发言。在实践中,由于 pk 很大,您可以使用 pk 的哈希值,即 H(pk) 作为您的身份。为了验证消息是否来自你的身份,人们需要验证:(1)你的身份确实是pk的hash;(2)可以通过公钥pk验证消息。

因此,我们通过公钥和私钥系统,引入了去中心化身份管理的概念。您可以将自己注册为用户,而无需去中央机构注册为系统用户。事实上,这就是比特币对待身份的方式。这些身份在比特币语言中被称为地址。

二、比特币是如何去中心化的

比特币并非完全通过纯技术,而是将技术手段与合理的激励机制相结合比特币三大核心技术,实现去中心化。

比特币是点对点的系统,任何人都可以运行比特币节点,用户只需上网下载比特币客户端,就可以在其个人电脑上运行一个节点,全世界都有上千个节点世界。当 A 支付 B 时,他实际上是在向比特币网络上的所有节点广播其交易行为。

比特币三大核心技术

在任何时候,比特币网络上的所有节点都有一个包含一系列区块的账本,每个区块包含所有节点达成的共识交易列表。另外,每个节点都有一堆不习惯打包进区块的交易,也就是那些已经通知网络节点,交易已经发生,但还没有被写入区块的交易。这些交易还没有达成共识,所以每个节点都有一个稍微不同的交易池有待确认。

那么所有节点如何就一个区块达成共识?先来看看比特币共识算法的简化版:

1、新交易被广播到所有节点。

2、每个节点都会将交易更新成一个区块。

3、在每一轮中,一个随机节点可以广播它的区块。

4、如果区块中的交易正确(真实签名),其他节点可以选择接受这个区块。

5、节点可以把上面区块的hash放到自己的区块中,以表达对新区块的认可。

为了避免双花(同一个比特币参与两次交易),诚实节点会选择延伸更长的区块链,称为长期共识链。

2.1奖励机制和工作量证明

前面说过,比特币的去中心化一部分是依靠技术手段,另一部分是通过激励设计来实现的,现在来说说这个激励设计。

比特币三大核心技术

1、区块奖励

比特币有两种不同的奖励机制。其中一个是区块奖励。根据比特币的规则,创建区块的节点可以在输入特殊交易,即造币交易时,指定该交易的接收地址。当然,节点通常会选择一个属于自己的地址。这可以看作是对节点在共识链上创建区块的奖励。

比特币存在的前 4 年,区块奖励为 50 个比特币,每产生 210,000 个区块,奖励的比特币数量减半。请注意,这是允许创建比特币的唯一方法。按照目前的奖励分配速度,到2140年将分配比特币区块奖励,最终比特币数量为2100万。

请记住,只有当区块最终包含在长期共识链中时,才会实现奖励。因为铸币交易和其他交易一样,只有在最终纳入共识链时才会被其他节点接受。这种设计激励所有节点遵循去扩展最长分叉的规则。这是比特币的第一个奖励机制。

2、交易费用

比特币的第二种奖励机制称为交易费用。任何交易的制造者都可以选择使交易的输出值小于输入值。第一个创建区块并将交易放入区块链的人可以获得此差额作为交易费用。可以预见,随着区块奖励的逐步分发,交易费用将变得越来越重要,几乎是必要的。 ,因为用户需要通过交易费用来保证合理的服务质量。

3、挖矿和工作量证明

如前所述,每一轮都是由一个随机节点广播的。块,现在改变随机性,根据节点占用某种资源的比例来选择节点。这种资源不能被任何人垄断。比如这个资源就是计算能力,那么我们就称之为工作量证明系统。

为了更好地理解基于计算能力选择节点的含义。换句话说,它允许节点之间通过计算能力相互竞争,计算能力的比例决定了节点被选中的概率。

比特币三大核心技术

比特币使用哈希函数来解决难题来证明工作。任何提出并创建区块的节点都想制作下一个区块,该节点必须找到一个数字,我们称之为临时随机数,当你将这个临时随机数结合起来时,前一个区块的哈希值,以及将该区块中待填充的交易连接起来形成一整串字符,然后通过哈希函数计算该字符串的输出值。在值的小目标区间内,由公式表示,临时随机数必须满足以下不等式:

H (nonce,prev_hash(tx,tx,..))

unique 解决哈希难题的方法是尝试足够多的随机数比特币三大核心技术,直到成功。如果目标面积值是所有可能输出值的 1%,那么您将需要尝试大约 100 次才能成功。当然,实际情况远小于1%。

哈希谜题具有三个重要属性。第一个特点是有一定的难度,而且这个难度会随着时间而变化。 2014 年,生成区块所需的计算量超过了商用笔记本电脑的计算范围。因此,只有少数节点仍在不知疲倦地竞争出块。这个不断尝试解决哈希难题的过程就是我们听说的比特币挖矿,参与挖矿的节点被称为矿工。

第二个特点,每产生2016个区块后,所有节点会自动重新计算目标区域相对于输出范围的比例,这样后续出块的时间间隔大约为10分钟,2016个区块大约需要两周。这意味着如果你是一名矿工,你会在硬件上投入一定数量的资金来挖掘比特币。随着越来越多的矿工加入这个行业,或者他们部署越来越快的硬件设备。然后,在两周内发现的区块比预期的要多,然后节点会自动调整目标区域,以增加您找到区块所需的工作量。这导致了这样一个结果:任何一个矿工找到下一个区块的概率,就等于他所控制的算力占整个全球算力的比例。

第三个功能,很容易验证节点是否正确计算了工作负载。临时随机数必须作为区块的一部分发布,以便其他节点只需将其代入上式即可证明其输出值确实在目标区域内。这是一个非常重要的功能,因为它使我们摆脱了中心化,我们不需要中央权威来证明矿工正确地完成了他们的工作。

值得注意的是,如果有一个 51% 的攻击者实际上控制了比特币网络中大部分的挖矿算力,那么人们如果对比特币失去信心,比特币的汇率就会暴跌。然而,全球所有比特币节点的算力总和,已经远远超过所有超级计算机的算力总和。也就是说,单个节点不可能控制 51% 的算力。

---------------------------------

部分图片来自网络,侵删