bitfinex比特币交易所| 区块链原理
2008年,中本聪在密码朋克论坛上发布了《比特币:一种点对点的电子现金系统》[1],其中,区块和链被描述为用于记录比特币交易账目历史的数据结构。
根据维基百科上给出的定义[2]中,将区块链类比为一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录。
在中国,根据工信部发布的《中国区块链技术和应用发展白皮书[3]》给出的定义中,区块链是分布式数据存储、 点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
因此,讨论区块链可以从狭义和广义两个层面来看待。
狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。
广义上,区块链还指代基于区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。
基本概念交易(Transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录。
区块(Block):记录一段时间内发生的所有交易和状态结果等,是对当前账本状态的一次共识。
链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。
挖矿(Mining):指通过计算形成新的区块,是交易的支持者利用自身的计算机硬件为网络做数学计算进行交易确认和提高安全性的过程。以比特币为例:交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含的手续费,以及新创建的比特币。
对等式网络(Peer-to-Peer Network):指通过允许单个节点与其他节点直接交互,从而实现整个系统像有组织的集体一样运作的系统。以比特币为例:网络以这样一种方式构建——每个用户都在传播其他用户的交易。而且重要的是,不需要银行或其他金融机构作为第三方。
哈希散列(Hash):密码学里的经典技术,把任意长度的字符串输入通过Hash算法,变换成固定长度的由字母和数字组成的输出。
数字签名(Digital Signature):一个让人可以证明其所有权的数学机制。
私钥(Private Key):一个证明你有权从一个特定的钱包消费电子货币的保密数据块,是通过数字签名来实现的 。
双花(double spend):指用户试图非法将电子货币同时支付给两个不同的收款人,是电子货币的最大风险之一。
基本原理区块链的本质是一个多机复制数据库,并且网络中每台计算机上维护相同的数据。这种类型的分布式系统也被称为“复制状态机”。
复制状态机是一种多机复制、确定性状态机,但因为网络中每台计算机都维护着相同的状态,因此在功能上看起来就像一台单机。
“确定性”?可以简单地理解为,给定一个确定的输入,状态机将始终产生相同的输出。在区块链系统中,“确定性”意味着如果你从一个给定状态开始执行相同的事务序列,你总是会得到相同的最终状态。
复制状态机从某个状态开始执行,每笔有效事务都将导致系统状态转变到下一个状态(这与数据库中数据更新相同,如果你更新数据,数据库将迁移到包含该更新后数据的新状态)。
复制状态机在概念上可以分成三个层次:
1.应用层
应用层负责状态转变,并在事务发生后更新状态机状态。
2.网络层
网络层负责将在某一个状态机上执行的事务传播到网络中其他所有状态机上。
3.共识层
共识层由算法组成,负责确保在事务执行后每一台状态机都存储相同的状态,即分布式一致性。
4.抗女巫攻击层
如果复制状态机需要运行在去中心化网络,那么它还需要抗女巫攻击层,确保任何一台状态机都不能破坏网络。如果没有这一层,状态机可以通过创建许多假身份来篡改状态,从而获得与其投入不成比例的影响或收益(即,发起女巫攻击[4])。
总之,应用层负责状态更新与状态转变。网络与共识层负责保持每台机器上状态一致,即分布式一致性。抗女巫攻击层负责避免女巫攻击。
最后,让我们看看在比特币和以太坊中是如何定义与实现以上架构的。
比特币的架构1.应用层
比特币的主要应用是 P2P 交易。比特币使用?Script[5](一种堆栈式非图灵完备的语言)来定义与执行交易。当发送方通过交易发送比特币时,发送方将使用?Script[6]来编码指定谁才能得到这笔资金。?Script[7]?包含一组操作码或命令,发送方可以使用这些操作码来指定要花费一笔比特币所需满足的条件。
2.网络层
当发送方向接收方发送比特币时,该转账交易必须被广播到网络中,才能使矿工将其打包进区块中。比特币使用Gossip 协议[8]来确保每个节点都会将其接收的所有新区块或交易发送至邻居节点。Gossip 协议是确保消息在全部节点间传播的 P2P 协议。比特币网络中所有节点都会将其新接收的有效交易立即发送给其邻居节点,从而使得待打包交易能够在几秒钟内通过点对点网络传播到大多数节点。
3.共识层
在交易被转播到网络中后,还需要将其添加到区块链中才能完成转账。验证交易并将其打包到区块中的过程称为“中本聪共识(Nakamoto Consensus)[9]”。
4.抗女巫攻击层
中本聪共识依赖于“工作量证明(Proof-of-Work)”来防止女巫攻击。因为矿工需要大量的算力来产生下一个区块,他们无法在不增加大量算力(与资金)投入的情况下“伪造”多个身份。基本上,产生一个新区块所需的算力使得比特币共识协议自身能够抵抗女巫攻击。
以太坊的架构
1.应用层
与比特币不同,以太坊旨在构建一个能够运行去中心化应用的平台。以太坊包含一种高级语言(即,Solidity[10]),使得开发者能够通过编写智能合约来实现去中心化应用。EVM[11](以太坊虚拟机,Ethereum Virtual Machine)是以太坊应用层的核心。它使用 EVM 编译器将智能合约代码编译成字节码,并将该字节码上传到区块链,和执行这些字节码,从而改变以太坊区块链的状态。
2.网络层
与比特币相似,以太坊也使用 Gossip 协议,使得节点能够与其邻居节点通信。
3.共识层
为了达成共识,以太坊使用了与中本聪共识相似的“Ethash[12]”,但 Ethash 与中本聪共识有一些关键区别。
4.抗女巫攻击层
与比特币一样,Ethash 依赖于工作量证明(未来以太坊 2.0 将切换到 PoS 共识机制)来抵御女巫攻击。
主要特点1.?去中心化。去中心化是区块链最基本的特征,区块链不再依赖于中心化机构,实现了数据的分布式记录、存储和更新。所有在区块链网络里面的节点,都有记账权,都可以进行记账,这可以规避操作中心化的弊端2.?匿名性。区块链的匿名性是基于算法实现了以地址来寻址 ,而不是以个人身份信息进行交易流转。3.公开透明。区块链系统是公开透明的,除了交易各方的私有信息被加密外,数据对全网节点是透明的,即任何人或参与节点都可以通过公开的接口查询区块链数据记录或者开发相关的应用。4.不可篡改。区块链系统的信息一旦经过验证并添加至区块链后,就会得到永久存储,无法更改(具备特殊更改需求的私有区块链等系统除外)。5.可追溯性。它的机制是设定后面区块拥有前面区块的哈希值,就像挂钩一样,只有识别了前面的哈希值才能挂得上去,从而形成一整条完整可追溯的链。6.自治性。区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预不起作用。
References[1]?《比特币:一种点对点的电子现金系统》:?https://nakamotoinstitute.org/static/docs/bitcoin-zh-cn.pdf[2]?定义:?https://en.wikipedia.org/wiki/Blockchain[3]?中国区块链技术和应用发展白皮书:?http://www.miit.gov.cn/n1146290/n1146402/n1146445/c6180238/part/6180297.pdf[4]?女巫攻击:?https://en.wikipedia.org/wiki/Sybil_attack[5]?Script:?https://en.bitcoin.it/wiki/Script[6]?Script:?https://en.bitcoin.it/wiki/Script[7]?Script:?https://en.bitcoin.it/wiki/Script[8]?Gossip 协议:?https://en.wikipedia.org/wiki/Gossip_protocol[9]?中本聪共识(Nakamoto Consensus):?https://blockonomi.com/nakamoto-consensus/[10]?Solidity:?https://solidity.readthedocs.io/en/v0.5.10/[11]?EVM:?https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e[12]?Ethash:?https://en.wikipedia.org/wiki/Ethash
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。