区块链基础知识
Posted 元苍子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链基础知识相关的知识,希望对你有一定的参考价值。
区块链基础知识
区块链是一个去中心化的账本,它以一连串的加密区块记录交易,这些区块是不可改变的,并分布在一个连接的计算机网络中。
在区块链网络中,各个计算机–即节点–相互沟通,形成一个去中心化的点对点(P2P)网络。没有控制网络的中央机构,每个节点都存储了一份构成典范链的区块的副本。
在大多数情况下,用户通过发起交易请求与区块链互动。交易被八卦到网络上的其他节点,并由区块作者组装成一个区块。为了确保链上数据的安全和链的持续进展,节点使用某种形式的共识来商定每个区块中的数据状态和交易处理的顺序。
什么是区块链节点?
在高层次上,所有区块链节点都需要以下核心组件。
-
数据存储,用于记录作为交易结果的状态变化。
-
点对点网络,用于节点之间的分散通信。
-
共识方法,以防止恶意活动,确保链的持续进展。
-
用于排序和处理传入交易的逻辑。
-
用于签署和验证与交易相关的签名的密码学。
-
用于编写和最终确定区块的执行环境。
由于构建区块链所需的核心组件的复杂性,大多数区块链从现有区块链资源库的完整副本开始–分叉–以便开发人员可以修改现有代码以添加新功能,而不是从头开始编写一切。例如,比特币存储库被分叉以创建Litecoin、ZCash、Namecoin和Bitcoin Cash。同样,以太坊存储库也被分叉以创建Quorum、POA Network、KodakCoin和Musicoin。
然而,大多数区块链平台的设计都不允许修改或定制。因此,通过分叉构建一个新的区块链有严重的局限性,包括原区块链代码中固有的可扩展性等限制。在探索Substrate如何减轻与其他区块链项目相关的许多限制之前,了解所有区块链共享的一些共同属性是很重要的。通过了解大多数区块链的运作方式,将会更好地了解Substrate如何为构建最适合需求的区块链提供替代方案和能力。
状态转换和冲突
区块链本质上是一个状态机。在任何时间点上,区块链都有一个当前的内部状态。随着入站交易的执行,它们会导致状态的改变,所以区块链必须从其当前状态过渡到新的状态。然而,可能有多个有效的过渡会导致不同的未来状态,区块链必须选择一个可以被同意的单一状态过渡。为了就过渡后的状态达成一致,区块链内的所有操作必须是确定的。为了使链的进展成功,大多数节点必须就所有的状态转换达成一致,包括。
- 链的初始状态,称为创世状态或创世块。
- 由执行的交易产生的一系列状态转换,记录在每个区块中。
- 将被纳入链中的区块的最终状态。
在集中式网络中,中央机构可以在相互排斥的状态转换中进行选择,方法是按照它看到的顺序记录状态转换的变化,并在出现冲突时选择相互竞争的选项中的第一个。在一个去中心化的网络中,节点看到的交易顺序不同,所以它们必须使用更复杂的方法来选择交易,并在冲突的状态转换之间做出选择。
区块链用来将交易批量化为区块并选择哪个节点可以向链上提交区块的方法,被称为区块链的共识模型或共识算法。最常用的共识模型被称为工作证明共识模型(POW)。在工作证明共识模式下,首先完成一个计算问题的节点有权向链上提交一个区块。
为了使区块链具有容错性,并提供一致的状态视图,即使一些节点被恶意行为者破坏或网络中断,大多数共识模型要求至少三分之二的节点在任何时候都同意状态。这个三分之二的多数确保了网络的容错性,并能承受一些网络参与者的不良行为,无论该行为是故意的还是意外的。
区块链经济
所有区块链都需要资源(处理器、内存、存储和网络带宽)来执行操作。参与网络的计算机(生成块的节点)将这些资源提供给区块链用户。这些节点创建一个分布式的,分散的网络,以满足参与者社区的需求。
为了支持社区并使区块链可持续,大多数区块链要求用户以交易费用的形式为他们使用的网络资源付费。支付交易费用要求用户身份与持有某种类型资产的账户相关联。区块链通常使用代币来表示账户中资产的价值,网络参与者通过交易所在链外购买代币。然后,网络参与者可以存入代币以创建资金的抵押,使他们能够支付交易费用。
区块链治理
大多数区块链还使网络参与者能够提交影响网络运营或区块链社区的提案并进行投票。通过提交提案并投票 - 公投 - 区块链社区可以确定区块链如何在一个本质上民主的过程中发展。然而,为了参与治理,大多数区块链要求用户在账户中维护大量的代币。
在区块链上运行的应用程序
在区块链上运行的应用程序–通常被称为去中心化的应用程序或dApps–通常被写成智能合约。
智能合约是一个在区块链上运行的程序,在特定条件下代表用户执行交易。开发者可以编写智能合约,以确保以程序执行的交易结果被记录下来,并且永远不能被改变。然而,仅凭智能合约,开发者无法使用一些底层区块链功能–如共识、存储或交易层–而是要遵守一条链的固定规则和限制。智能合约的开发者通常接受这些限制,作为一种权衡,以较少的核心设计决策来实现更快的开发时间。
所有区块链都有一些共同的特点。Substrate(虽然不是区块链本身)是一个区块链开发者的工具包,有一个模块化的组件框架来创建一个自定义的区块链。通过Substrate,可以采用常见的区块链组件,如存储、共识和密码学,并将它们组合起来,按原样使用它们提供的功能,或修改它们以适应你项目的目的。
以上是关于区块链基础知识的主要内容,如果未能解决你的问题,请参考以下文章