區塊鏈進入Web3.0时代的風口

WEB 區塊 时代 2024-02-18 68

摘要:对于想证明自己工作量的人,只能一个个尝试,大概枚举220次(大约100万次)之后,他才能算出结果。计算工作量:每个矿工开始尝试找到一个特定的数字nonce,通过将这个nonce与新区块的其他信息(包括前一个区块的哈希、新的交易列表等)进行组合,并通过SHA-256哈希函数进行运算。...

进入Web3.0时代后,我们迫切需要一种客户创造、客户拥有、用户控制的货币形式。

有一套机制背诵“信用”,让人们在交易中达成“共识”。

随着网上购物的增多,它仍然应该能够满足数字交易的需要。

它应该是分散的,存储的数据应该属于所有创建它的人。

它应该是安全的,可以验证,交易系统需要持续稳定运行,没有人能随意改变自己的货币量。

區塊鏈進入Web3.0时代的風口

电子签名与分布式账本

为了方便了解后续比特币区块链的一系列概念,我们将创建一个虚拟场景,模拟货币的实际运行,思考存在的问题和解决方案。

场景:小明、小红、小军、小李是四个好朋友,经常有钱,所以他们建立了一个公共电子账簿,记录彼此账户之间的交易,到月底统一清算。

现在让我们看看这个简单的交易系统会出现什么问题,以及比特币是如何解决这个问题的。

电子签名:公钥和私钥

第一个问题是如何确保交易记录准确?

因为电子账本是公共的,所以每个人都可以秘密地在上面添加记录。如果小明未经小军允许,在公共账本上增强了不存在的记录,说“小军要转给小明10元”怎么办?

最简单的想法之一是,每笔交易都需要这个人不可伪造的电子签名来确认我授权了这笔交易。(私钥签名,公钥验证签名)

但是,如何实现不可伪造的电子签名呢?这涉及到密码学的研究结果:公钥和私钥。每个人的账户都有一对字符串,一个叫公钥,另一个叫私钥。公钥是一个开放的账户地址,每个人都可以看到,私钥相当于账户密码,只有你知道这一串数字,每个公钥只对应一个私钥。为了实现电子签名,需要使用两个函数:

签名函数和验证函数。

签字函数(交易明细、私钥)= 该交易的电子签名

验证函数(交易明细、签名、公钥)= True/False

破解难度

由于函数是不可逆转的,没有其他方法可以获得公钥匹配私钥伪造的签名,除了一个接一个地尝试枚举,完全枚举需要尝试2256次。换句话说,如果你想通过枚举找到这个数字,假设使用1000万亿中国峰值性能每秒1.206万亿“天河1”超级计算机,即使花1000万亿年,甚至枚举量零,这个巨大的计算量从根本上确保了电子签名的不可伪造性。

區塊鏈進入Web3.0时代的風口

电子账本和数字货币

为了防止这种情况,我们需要像支付宝一样,让每个参与该系统的人在交易前将一定数量的资金存入账户,同样存入账户。例如,“小明在账户上存了100元”,每次增加交易细节,我们都需要判断对方账户上是否有这么多钱。如果没有足够的钱,我们需要宣布交易无效。

在这里,以上是一个支付系统最基本的功能。

分布式账本和广播网络

电子签名和电子账本成功地解决了如何使机制进行信用背书和数字交易的问题。然而,为了实现“客户创造、客户拥有、用户控制”的概念,我们需要将账簿分布在网络中的每个用户中。

因为“历史交易数据的总和是货币”,所以每个人的账簿都应该是一样的,然后,你需要一个广播网络。

比如小明要给小军100元,小明需要沿着网线“大喊大叫”,把这个消息传给小红、小军、小丽,让他们在账簿上添加这个信息,保证大家的账簿一致。当然,这只是一个形象隐喻,实际上是由数字货币系统自己完成的。

共识机制和区块链

共识机制

当我们选择电子签名和分布式分类帐时,我们使用一个机制系统来解决信用背书的问题。然而,在这个系统的帮助下,我们真的能在交易中达成完全的共识吗?

构想一个场景,小明要给小军100元,小明沿着网线“大喊一声”把这条消息传给大家。但此时小红的网络出现故障,她丢失了这条消息记录。小军的账簿上有这个信息,所以他觉得可以用这个“100元”进行交易。但当他找到小红时,小红的账簿上没有这个记录,自然不同意“100元”的价值,也不能完成交易的“共识”。

因此,为了完成交易中的“共识”,有必要建立一套机制,以确保每个人都以相同的顺序接收相同的信息记录,这被称为“共识机制”。BTC在建立之初设计的共识机制称为工作量证明,还有权益证明、委托权益证明(Delegated Proof of Stake,简称DPOS)、实用拜占庭容错算法(Practical Byzantine Fault Tolerance,简称PBFT)、参与性证实(Proof of Participation,其他形式的共识机制,如PoP)。以下是拜占庭图片描述:

區塊鏈進入Web3.0时代的風口

工作量证明(Proof of Work, PoW)

工作量证明的核心思想是,如果你需要得到认可的“共识”,你需要付出足够的工作量。在互联网世界里,这种工作量就是计算。在这种情况下,计算所消耗的计算率和时间资源是每个人信任的基础。

那么如何证明自己的计算量呢?此时需要借用一个著名的加密工具——哈希函数(又称散列函数)。这个函数的性质很奇怪,你可以输入任何长度的字符,它会导出一串具有固定格式的字符串。有趣的是,虽然任何输入只有一个导出,但输出排列看起来完全随机,任何微妙的输入调整都可能导致导出的巨大变化。

例如,如果你输入“小明给小军100元”,结果是256个0,但如果你输入“小明给小军101元”或“小明给小刚101元”(删除一个“”字),几十个或几百个随机数字可能会改变。这意味着这个函数类似于上面提到的签名函数,几乎不可能通过导出反向推断输入。破解它的唯一方法是一个接一个地尝试。以哈希函数“SHA256”为例。对于任何输入,它都会输出256位二进制数列,即需要尝试2的256方次才能列出。上面已经提到了什么样的天文数字。由于这一独特性,哈希函数也被广泛应用于密码学领域。通常,我们注册网站填写的密码和银行存款密码可以通过这些函数加密。

有了这样一个函数,我们就可以建立一个“工作量证明”的机制,每个人都可以给那个想要证明自己工作量的人一个问题。例如,指定一串20个二进制的0-1字符串,让解题者找到一个输入值,使256个导出值与指定字符串完全相同。对于那些想要证明自己工作量的人来说,他们只能一个接一个地尝试,大约枚举220次(大约100万次),然后才能计算结果。测试结果的方法对命题人来说非常简单,不需要列出这样的重复工作,只需要将答案输入哈希函数,看看前20名是否与问题完全相同,以确认解决问题的人可能已经支付了“220”的工作量。

區塊鏈進入Web3.0时代的風口

示例

工作量证明的一个经典例子是比特币网络的开采过程。以下是一个简化的过程表示:

交易发生:当有人在比特币网络上进行交易时,比如Alice想向Bob转账一个比特币。

交易广播:该交易数据被加密并广播到整个比特币网络的所有节点。

交易确认:网络中的矿工收到交易数据后,将其与其他等待确定的交易一起打包成一个新区块。

计算工作量:每个矿工开始找到一个特定的数字nonce,结合更多关于nonce和新块的信息(包括前一块的哈希、新交易目录等),并通过SHA-256哈希函数进行计算。

满足难度目标:比特币网络将动态管理采矿难度,需要一定数量的哈希计算(通常是数百万或数十亿)来促进矿工平均水平,才能找到符合条件的Nonce。这一条件通常要求哈希结果的前几名为零。

发觉 nonce:当一个矿工试图通过大量的计算找到一个合格的nonce时,他们就完成了工作量证明。

新块生成:矿工将包含正确nonce的新块广播到整个网络中。

验证确认:其他节点收到新块后,将单独验证所有交易以及nonce是否真正满足工作量证书的要求。如果验证通过,他们将接受新块并添加到自己的区块链副本中。

奖励费:成功生成新区块的矿工将获得一定的比特币作为奖励(现在是6.25 BTC),同时,还可以收取区块内所有交易的手续费。

通过这个过程,工作量证明确保只有付出实际计算资源的矿工才能创建新的块,由于篡改历史块需要重新完成之前所有的工作量证明,这使得比特币网络具有更高的安全性。然而,这也导致了大量的能耗,因为矿工必须不断运行高性能的计算机来竞争解决这些复杂的数学问题。

區塊鏈進入Web3.0时代的風口

2024-2025年注定是区块链不平凡的一年

如果你对交易技术感兴趣,想拥有和我一样的交易系统,无论是长周期还是短周期,都能得心应手!来吧 我 社 一起交流,让我们一起拥有更多的BTC

记得关注你的关注,让我有更多的动力和大家分享干货!我会随时分享财富密码。记得查看。#热点话题 #Web3Wallet #Web3Pay $BTC

相关推荐