当前位置: 首页 > 科技观察

区块链-以太坊工作原理详解

时间:2023-03-23 01:20:06 科技观察

简介无论你是否了解以太坊(Ethereumblockchain)是什么,你都可能听说过以太坊。最近多次出现在新闻中,包括一些专业杂志的封面,但是如果你对以太坊是什么没有一个基本的了解,读这些文章就像读圣经一样。那么,什么是以太坊?本质上,它是一个保存数字交易交易记录的公共数据库。重要的是,这个数据库不需要任何中央机构来维护和保护它。相反,它作为一个“无需信任”的交易系统运行——一种个人在不信任任何第三方或交易对手的情况下进行点对点交易的架构。还是一头雾水?这就是本文存在的理由。我的目标是解释以太坊如何在技术层面上运作,但没有复杂的数学或看起来可怕的公式。即使你不是程序员,我希望你至少在阅读之后对技术有一个更好的理解。如果有些部分技术性太强看不懂是很正常的,真的没必要把每一个小细节都看懂。我建议你只要从宏观上去理解就可以了。本文讨论的很多点都是以太坊黄皮书讨论的概念的细分。我添加了自己的解释和图表,以便更容易理解以太坊。胆子大的可以来个技术挑战,看看以太坊黄皮书。好的,让我们开始吧!区块链定义区块链是具有共享状态的加密安全事务单例机。有点长,不是吗?我们来分解一下:“密码学安全”是指使用复杂的难以破解的数学机制算法来保证数字货币生产的安全性。把它想象成这种防火墙。它们几乎不可能欺骗系统(例如构建虚假交易、取消交易等)。“交易单例机”是指只有一个权威机器实例负责系统中产生的交易。换句话说,每个人都相信的全球真理只有一个。“Withshared-state”意味着存储在这台机器上的状态是共享的,对所有人开放。以太坊实现了这种区块链范式。以太坊模型表明,以太坊的本质是一个基于交易的状态机。在计算机科学中,状态机是读取一系列输入然后根据这些输入转换到新状态的东西。根据以太坊的状态机,我们从创世状态开始。这几乎是一张白纸,网络中还没有交易。当交易被执行时,这个创世状态转换到最终状态。在任何时候,这个最终状态都代表着以太坊的当前状态。以太坊的状态有数百万笔交易。这些交易都被“组合”成一个区块。一个区块包含一系列交易,每个区块都链接到前一个区块。为了使一个状态转换到下一个状态,交易必须有效。为了使交易被视为有效,它必须经过称为挖矿的验证过程。挖矿是指一组节点(即计算机)使用其计算资源创建包含有效交易的区块。网络上任何声称自己是矿工的节点都可以尝试创建和验证区块。世界各地的许多矿工都在同时创建和验证区块。每个矿工在向区块链提交区块时都会提供一个数学机制的“证明”。这个证明就像一个保证:如果这个证明存在,那么这个块一定是有效的。为了将区块添加到主链,矿工必须比其他矿工更快地提供此“证明”。通过矿工提供的数学机制的“证明”来验证每个区块的过程称为工作量证明。确认新区块的矿工将获得一定价值的奖励。奖励是什么?以太坊使用一种固有的数字代币Ether作为奖励。每当矿工证明一个新区块时,就会产生一个新的以太币并奖励给矿工。你可能会想:是什么确保每个人都只在同一条区块链上?我们如何确定某些矿工不会创建自己的链?早些时候,我们将区块链定义为具有共享状态的独立交易。使用这个定义,我们可以知道正确的当前状态是所有人都必须接受的全球真理。拥有多个状态(或多个链)会破坏系统,因为不可能得到关于哪个是正确状态的统一答案。如果链分叉,一条链上可能有10个硬币,一条链上有20个硬币,另一条链上有40个硬币。在这种情况下,无法确定哪条链最“高效”。每当创建多条路径时,就会出现“分叉”。我们通常希望避免分叉,因为它们会破坏系统并迫使人们选择他们信任的链。为了确定哪条路径最有效并防止多链,以太坊使用了一种称为“幽灵协议(GHOSTprotocol)”的数学机制。GHOST=GreedyHeaviestObservedSubtree简单来说,GHOST协议允许我们选择一条计算完成最多的路径。确定路径的一种方法是使用最近区块(叶子区块)的区块编号,它代表当前路径上的区块总数(不包括创世区块)。块号越大,路径越长,意味着在这条路径上消耗更多的算力到达叶子块。使用这种推理可以让我们就当前状态的权威版本达成一致。现在您可能对什么是区块链有了一个理性的理解,让我们更深入地了解一下以太坊系统的主要组成部分:账户状态状态gas和费用交易区块交易执行挖矿工作证明我说X的哈希,我的意思是KECCAK-256哈希,以太坊正在使用这种哈希算法。