通过比特币了解以太坊(1)
imToken 是一款全球领先的区块链数字资产管理工具[ZB],帮助你安全管理BTC, ETH, ATOM, EOS, TRX, CKB, BCH, LTC, DOT, KSM, FIL, XTZ 资产,同时支持去中心化币币兑换功能 ...
区块链
区块链基本上是状态变化的公共记录。任何人都可以查看区块链随时间的状态,并以数学确定性证明交易是根据区块链的规则进行的。就比特币而言,这些规则很简单:比特币不能重复使用,其来源必须追溯到有效区块的挖掘(稍后将详细介绍挖掘)。要开始我们的旅程,我建议您阅读比特币白皮书,即使您对密码学一无所知。我们稍后会回到密码学基础知识。比特币白皮书很短,只有前六个部分与我们真正相关。
比特币白皮书:[阅读第 1-6 节]
区块链交易的密码基础
作为一个对密码学背景了解不多的人,我发现自己开始对白皮书中对交易的描述感到困惑。我们应该清楚,这是一种旨在通过追踪资产相关所有者的历史记录来证明在特定时间对资产所有权的机制。但公钥和哈希是什么?它们如何帮助我们证明对资产的所有权?如果你从未上过密码学课程,请观看 Khan 的这段视频,其中介绍了这些重要功能。(Java 大师:国内能看的数字签名是什么?)
(,比特币:一种点对点的电子现金系统)
现在让我们回顾一下白皮书中的交易图。在这里,我们将所有者 2 的公钥和之前的交易(所有者 1 拥有比特币)转换为唯一的摘要(哈希函数的输出)。然后,我们使用所有者 1 的私钥对摘要进行签名。将来,任何人都可以通过将所有者 2 声明的状态变化输入签名验证算法来验证所有者 2 对比特币的所有权:比特币和所有者 2 的公钥(表示比特币转移到所有者 2)、所有者 1 的公钥(表示比特币已从所有者 1 转移到他)以及交易的签名形式(在区块链上公开可用并记录交易发生时间的摘要)。只有当所有者 2 指定的确切状态变化确实使用所有者 1 的私钥签名时,所有者 1 的公钥才能确认已签名交易摘要在已签名交易链上的有效性。此过程可以递归重复回到比特币的起源,证明整个所有权链都是有效的。
此时您可能有很多疑问,并且已经在考虑极端情况——所有权链是如何开始的?特定数量的比特币是如何转移的?令人惊讶的是,您不需要太多知识就可以了解比特币。接下来,我们将讨论白皮书的第三至第六部分,并找出其中一些极端情况是如何解决的。
挖矿在区块链实现网络一致性方面的作用
所有比特币交易都会广播到整个网络,矿工会收集这些交易,验证交易的有效性(主要使用前面描述的方法),并将所有有效交易记录到“区块”中。然后,区块的内容和一个不断增加的随机数(称为“随机数”)会反复尝试计算,直到结果输出包含一定数量的前导零。网络会动态调整必要的前导零数量(或“难度”),以便平均每 10 分钟控制一个区块的挖掘。由于哈希算法的结果不可预测,因此需要运气和 CPU 能力才能找到一个被网络其余部分接受的有效哈希。人们拥有的计算能力越强,他们在网络其余部分之前找到有效哈希的机会就越大。当一个有效区块被“挖掘”时,它会被广播并由网络的其余部分测试。在考虑到最新的标准区块、用于有效性验证的所有交易签名、此区块和提供的随机数的情况下,其他节点会测试所包含的状态转换是否有意义,然后再接受该区块作为最新的标准网络状态。 然后将该区块添加到每个节点本地数据库中原始区块链的头部
所有权链是如何开始的?比特币协议规定,每个区块允许向区块矿工进行一笔 25 BTC 的交易,而这 25 BTC 是凭空产生的。这为矿工提供了支持网络的激励。如果比特币的所有权链可以追溯到这些特殊交易之一,那么比特币就可以被验证为非伪造的。事实上,这是创建新比特币的唯一方法。
控制 51% 网络的恶意用户使用比特币支付咖啡费用,喝完咖啡后,可以挖掘一个区块(从交易前的状态开始),以欺诈手段省略其咖啡购买记录。即使当他开始挖掘欺诈链时网络领先几个区块,他的 51% 网络马力也将不可避免地赶上。由于比特币协议认为最长的链是规范的和可接受的,因此即使有被遗弃的子链暗示他的欺诈行为,恶意用户也能逃脱惩罚。
补充:比特币中的 UTXO 在比特币中,没有可以无限分割的货币单位可以从中提取和存入。相反,比特币用户使用“未使用交易输出”(UTXO)进行交易。如果矿工新开采了 25 个 BTC 并想购买 1 BTC 咖啡,他们必须将整个 25 BTC(UTXO)指定为交易的输入以太坊和比特币区块链钱包imToken下载,并为交易指定两个输出:其中一个输出将一个 BTC 发送到商家的地址,第二个输出指定 24 个比特币作为“充值”发送回购买者的地址。要再买一杯咖啡,24 个比特币将作为 UTXO 发送。多个 UTXO 组合并包含在交易输入中以换取更昂贵的商品,并由商家作为新的单个 UTXO 收到。以太坊不使用 UTXO - 其账户余额是可分割的。
现在,您已经掌握了了解比特币区块链基础知识所需的所有知识。这真是令人头疼!如果您还没有完全理解它,请不要气馁:试着带着它睡几天,一切都会在梦中浮现。一旦你这样做了,你就可以开始想象,当输入和程序代码公开共享时,比特币区块链等技术如何用于验证任意复杂计算的公共输出。事实上,我们将在本系列的第二部分中探讨这一点。再见!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。