主页 > imtoken官方版 > 区块链基础与发展

区块链基础与发展

imtoken官方版 2023-01-16 22:12:38

IPFS技术诞生于2014年,2017年在区块链技术蓬勃发展的情况下得到广泛认可,为国人所熟知。随着 HTTP 时代的消逝,IPFS 正在为更快、更安全、更开放的互联网铺平道路,释放 P2P 技术在不同领域的力量。作为一种新的互联网协议愿景,学习和理解 IPFS 是每个人都应该认真对待的事情。说到IPFS,就不得不提到区块链,那么区块链是什么?区块链是如何发展的?在介绍 IPFS 之前,我们需要先了解区块链。

什么是区块链?

早期,区块链仅被认为是比特币的底层技术之一,一种不可篡改的链式数据结构。经过几年的发展,区块链已经被越来越多的人所熟悉,也从简单的数据结构转变为分布式账本一系列技术的总称。它集成了加密、共识机制和点对点网络等技术。近年来,区块链的非账本应用逐渐兴起。人们已经开始将区块链描述为一个分布式数据库,认为它是一个价值传递的网络,并逐渐被赋予了更多的内涵。

从技术的角度来看,区块链是一个分布式数据库,旨在维护互不信任、不可篡改的节点间数据库的一致性。信用和记录存储在区块链上,每个新区块都包含前一个区块的数字指纹、该区块的信用和记录以及新区块的时间戳。如此一来,区块链将不断壮大,不易被篡改。一旦区块链上任何一个区块的信息被修改,后续区块的数字指纹都将失效。

链式的数据结构使得区块链的历史难以篡改,同时保持互不信任的节点之间的数据一致性需要共识机制。共识机制是网络预先设定的规则来判断每条记录和每一个区块的真实性,只有那些被判断为真实的区块才会被记录在区块链中;新区块将被网络丢弃,区块中记录的信息将不再被网络识别。目前常见的共识机制有PoW(Proof of Work)、PoS(Proof of Stake)、PBFT(Practical Byzantine Fault Tolerance)等。

比特币、以太坊、比特币现金和大多数加密货币都使用 PoW 工作量证明。维护比特币账本的节点称为矿工。矿工每记录一个新区块,都会获得一定数量的比特币作为奖励。因此,矿工们会为自己的利益争取尽可能多的新区块记账权,获得全网的认可。工作证明要求新的块哈希必须有一定数量的前导零。矿工不断用新的随机数对交易信息进行哈希运算,计算出区块的哈希值。一旦哈希值具有所需数量的前导零,则该块有效,矿工将其广播到整个网络以供确认。当其他矿工收到这个新区块时,他们会检查这个区块的有效性。如果是合法的,新区块将被写入矿工自己的账本中。这种结构如图 1-3 所示。

区块链基础及发展

PoS 权益证明不需要证明者执行一定数量的计算工作,而是要求证明者提供一定数量的加密货币的所有权。权益证明的工作方式是,当创建一个新区块时,矿工需要创建一个“币权”交易,该交易以预设的比例将一些币发送给矿工。权益证明机制根据每个节点拥有代币的比例和时间,根据算法,按比例降低节点的挖矿难度。这种共识机制可以加速共识,并且由于矿工不再继续争夺算力,网络能耗将大大降低。然而,一些专家指出,PoS 权益证明牺牲了网络某些部分的去中心化程度。

目前,PoW和PoS是加密数字货币的主流算法。其他几种常见的共识机制包括 DPoS 和 PBFT。限于篇幅,这里不再展开。

区块链开发

1976年是区块链密码学基础奠定的一年。这一年,Whitfield Diffie 和 Martin Hellman(见图 1-4)首先提出了 Diffie-Hellman 算法,证明了非对称加密是可行的。与对称算法不同,非对称算法有两个密钥——一个公钥和一个私钥。公钥和私钥是一对。如果数据是用公钥加密的,只有对应的私钥才能解密;如果数据是用私钥加密的,那么只有对应的公钥才能用来解密数据。解密。这是后期比特币加密算法的核心之一。当我们使用比特币钱包生成私钥和地址时,我们使用椭圆曲线加密算法生成一对公钥和私钥。使用私钥我们可以对转账进行签名,而公钥可以验证交易是由比特币钱包的所有者签名的并且是合法的。通过散列公钥,我们可以计算出我们的钱包地址。

区块链基础及发展

1980 年,Martin Hellman 的学生 Merkle Ralf 提出了 Merkle Tree 数据结构和生成算法。默克尔树率先建立了数字签名证书的公共目录,可以保证在点对点网络中传输的数据块是完整的,没有被篡改过。正如我们前面提到的,在比特币网络中,每个区块都包含交易信息的哈希值。这个哈希值并不是直接将交易顺序串联起来再计算它们的哈希值,而是通过默克尔树生成的。Merkle 树如下图所示。Merkle 树生成算法会对每笔交易进行一次哈希处理,然后将计算出的哈希值两次哈希处理,直到计算出 Merkle 根。而这个默克尔根包含了所有的交易信息。这样可以大大节省钱包占用的空间。比如在轻钱包中,我们只需要下载我们钱包对应的交易信息即可。当需要验证时,我们只需要找到从交易信息的叶子节点到根节点的哈希路径,不需要下载区块。链的所有数据。在 IPFS 项目中,也借鉴了 Merkle 树的思想。数据存储在有向无环图中的块中。如果数据被修改,只需要修改对应​​的默克尔有向无环图中的节点数据,无需将整个文件重新更新到网络上。值得一提的是,当 Merkle 提出 Merkle 树时,分布式技术还没有形成,更不用说数字货币了,

区块链基础及发展

非对称加密算法和默克尔树数字结构是后续数字货币和区块链的理论基础。而真正将密码学用于数字货币的尝试要晚得多。数字货币起源于 1990 年的 Cyber​​Punk 运动,由一群热爱互联网的极客推动。大多数赛博朋克都是密码学专家,向往个人隐私,希望建立一个独立于真实状态和等级制度的空间。最典型的代表之一是 David Chaum,他首先提出了盲签名技术并将其应用到 Digit Cash 项目(也称为 Ecash)中。盲签名是一种保护隐私的签名方法,其中签名者对他们签名的消息是不可见的。比如用户需要签署一个转账信息,并且此信息需要银行签名。为了保护隐私,用户不希望银行看到具体的转账对象,所以可以使用盲签名。在他的论文中,大卫提出了实现一种带有盲签名的匿名货币的想法。具体方式是用户将现金以数字格式存储在本地电脑的Ecash程序中,然后发送到银行进行盲签。这个系统和当时的银行系统非常接近,几乎成功了。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。用户不希望银行看到具体的转账对象,可以使用盲签。在他的论文中,大卫提出了实现一种带有盲签名的匿名货币的想法。具体方式是用户将现金以数字格式存储在本地电脑的Ecash程序中,然后发送到银行进行盲签。这个系统和当时的银行系统非常接近,几乎成功了。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。用户不希望银行看到具体的转账对象,可以使用盲签。在他的论文中,大卫提出了实现一种带有盲签名的匿名货币的想法。具体方式是用户将现金以数字格式存储在本地电脑的Ecash程序中,然后发送到银行进行盲签。这个系统和当时的银行系统非常接近,几乎成功了。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。大卫提出了用盲签名实现匿名货币的想法。具体方式是用户将现金以数字格式存储在本地电脑的Ecash程序中,然后发送到银行进行盲签。这个系统和当时的银行系统非常接近,几乎成功了。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。大卫提出了用盲签名实现匿名货币的想法。具体方式是用户将现金以数字格式存储在本地电脑的Ecash程序中,然后发送到银行进行盲签。这个系统和当时的银行系统非常接近,几乎成功了。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目比特币四个基础技术,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。但是Digit Cash总是需要集中的银行服务器支持。后续没有银行愿意支持他的项目比特币四个基础技术,项目失败了。数字朋克运动中诞生的系统和关键人物如表1-1所示。

区块链基础及发展

在 Digit Cash 失败后的几年里,数字现金的想法几乎被放弃了。只有少数数字朋克继续学习。一个名为 Hashcash 的想法是 1997 年由当时也是赛博朋克的博士后研究员 Adam Back 独立发明的。Hashcash 的想法很简单:它没有后门,也没有中央第三方,它只是使用哈希函数而不是数字签名。Hashcash 基于一个简单的原则:哈希函数在某些实际用途中表现为随机函数,这意味着找到哈希到特定输出的输入的唯一方法是尝试各种输入,直到产生所需的输出。而且,为了找到这样一个合格的输入,唯一的方法是尝试再次对不同的输入进行哈希处理。所以,如果你试图找到一个失败者,使得前 10 个哈希为 0,

还有两位杰出的数字朋克——Hal Finney 和 Nick Szabo,他们重新考虑了技术的整合。Nick Szabo 不仅是计算机科学家,而且精通法律。受到 David Chaum 的启发,Szabo 提出了使用加密协议和安全机制的数字合约的想法。数字合约可以使用程序在网络上验证和执行合约,无需依赖第三方协助,比传统合约更安全,减少繁琐的通信成本。这对加密数字货币的后续设计产生了很大的影响。比特币网络可以提供非图灵完备的脚本语言来实现一些智能合约功能;以太坊进一步在 EVM 上运行 Solidity 语言,提供图灵完备的智能合约环境,也为后续的分布式应用开发奠定了基础。.

Nick 的贡献不仅仅是发明了智能合约。2008年,他发起了Bit Gold项目。在项目计划中,Nick 描述的 Bit Gold 架构与现在的比特币完全一样。它也是一种工作量证明机制和链式网络结构。同一个新区块包含旧区块的数字指纹,包括时间戳等诸多特征。然而,最终比特金项目并没有顺利完成。目前,比特黄金唯一能搜索到的来源是比特币论坛的帖子,后续可验证的信息很少。一些比特币爱好者曾经认为 Szabo 就是中本聪本人,这不仅是因为 Bit Gold 和比特币的相似之处,而且在词汇和语法方面,中本聪” s 比特币纸和比特金纸也有相似之处。而在尼克家不远处,有一位名叫中本聪的日本人。所有人都猜到这是尼克为了隐藏自己的身份而故意隐瞒自己的身份。尼克本人否认这一点,并认为这是一个搞笑的八卦。当然,这也成为了数字货币最大的谜团。中本聪是谁?

然后,在 2009 年,中本聪发表了比特币论文。他提出了一整套加密协议,而不仅仅是加密货币。比特币使用计算机程序控制货币的发行,总共发行了 2100 万枚。比特币的账本记录在数千台计算机上,无法被黑客入侵;每个账户都是一个加密地址,你不知道谁在花钱,但每一个流通的比特币都被记录下来,你知道它来自哪里和目的地地址。比特币是第一个实现上述所有想法的项目,融合了30多年的技术积累。

比特币在设计时,考虑到网络的稳定性和抵御恶意攻击,使用了非图灵完备的脚本语言(主要不能使用循环语句)。2013 年,Vitalik Buterin 认为比特币需要一种图灵完备的脚本语言来支持多样化的应用程序开发。这个想法没有得到比特币社区的支持,因此 Buterin 考虑开发一个具有更通用脚本语言的新平台,该平台后来成为以太坊。以太坊在总体思路上类似于比特币,在账户状态、UTXO、地址等形式上做了一些优化。它最大的亮点是开发了 Solidity 智能合约编程语言和以太坊虚拟机(EVM),即以太坊智能合约的运行时环境,以运行与预期相同的代码。因为EVM和Solidity,区块链的平台应用(DAPP)正在迅速兴起。以太坊平台提出了许多新用途,包括那些不可能或不可行的用途,例如金融、物联网服务、供应链服务、电力采购和定价以及游戏。

如今,基于DAPP的各种应用仍在快速发展,新的市场和需求正在被进一步发掘。未来区块链将如何发展,我们拭目以待。部分截获公众号:IPFS与Filecoin原理与实践。