风险提示:理性看待区块链,提高风险意识!
以太坊与比特币的异同有哪些?
首页 > 币界资讯 > 币种知识 2020-12-01 13:59:30
摘要
与比特币类似,以太坊是一个去中心化的区块链平台。在这个区块链平台上有众多节点参与,它们组成了一个P2P网络,这些节点彼此平等,没有任何一个节点有特殊的权限,也不存在由一个或多个节点进行协调或调度 。
币界网报道:

比特币类似,以太坊是一个去中心化的区块链平台。在这个区块链平台上有众多节点参与,它们组成了一个P2P网络,这些节点彼此平等,没有任何一个节点有特殊的权限,也不存在由一个或多个节点进行协调或调度。以太坊网络中的各个节点都可以发出“交易”,也可以进行“记账”,即记录并执行网络上发出的“交易”。这些交易会被节点打包成一个个“区块”,其中每个区块包含上一个区块的索引,因此这些区块依次相连接,形成一条区块链。如上文所述,这些节点之间通过共识机制以达成数据一致性,从而形成一个整体。早期版本的以太坊像比特币一样使用“工作量证明”(Proof of Work,PoW)这种共识机制来保证一致性。

以太坊与比特币不同的地方有很多,从性能表现以及特性上来看,主要有以下几点区别。

以太坊有更快的“出块”速度以及更先进的奖励机制。目前,比特币的出块时间平均为10min,而以太坊的出块间隔为12s,这意味着以太坊具有更大的系统吞吐量和更小的交易确认间隔。

以太坊支持智能合约,用户可以自己定义数字资产和流通的逻辑,通过以太坊虚拟机几乎可以执行任何计算,而比特币只能支持比特币的转账。这一点意味着以太坊可以作为更通用的区块链平台,支持各种去中心化应用(DApp)。

另外,以太坊的社区更加活跃。显然,不像比特币一样满足于虚拟货币,以太坊积极地探索新技术,不断地对系统升级更新。而且其相关技术生态更加完善,在Ethereum官方的GitHub上有147个项目,其中不仅有各种不同语言版本的客户端,还有智能合约编译器、集成开发环境,以及未来将要采用的“股权证明”(Proof of Stake,PoS)协议和各种技术文档。

以太坊的特色技术

如上文所述,以太坊是一个可编程的区块链。形象一点地理解,在以太坊区块链上发送的交易不仅仅可以是转账金额,还可以是调用一段代码,而该代码可以由用户自定义。因此可以想象,在以太坊区块链上处理的交易逻辑不再是单一的转账,而可能是任意的函数调用;记录在区块链账本里的不仅仅是账户余额,还有函数调用后变量的新状态。因为代码可以任意定义,所以应用就都可以在区块链上运行了。

支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术最大的挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM)。每个以太坊节点都运行着EVM。EVM是一个图灵完备的虚拟机,这意味着通过它可以实现各种复杂的逻辑。用户在以太坊网络中发布或者调用的“智能合约”就是运行在EVM上的。智能合约和EVM将在第4章介绍。

所谓智能合约其实就是一段EVM可执行的代码,熟悉面向对象编程的读者可以将一个智能合约实例理解成一个对象。简单来说,用户编写一个智能合约类似于编写一个类,其可以在这个类里定义各种变量以及函数。当用户将这个智能合约发布到以太坊网络中时,相当于给这个类生成一个对象,合约发布之后用户会得到一个合约地址,相当于合约对象的指针。当网络中的用户调用这个智能合约时,可以直接给这个合约地址发送“交易”,并声明本次调用的函数名称和参数,使得智能合约执行对应的逻辑。无论发布还是调用智能合约,智能合约的信息都被附在“交易”中,以交易的形式发布到网络中。因此以太坊网络中的节点接收到这些交易后,其中的EVM会执行对应的合约代码,最后各个节点通过PoW或PoS等达成共识,合约的内容和状态也就实现了全网一致。

这里给出一个简单的例子。下面这段代码就是一个智能合约SimpleStorage,里面只有一个变量storedData,以及set和get方法,有编程基础的读者可以很轻松地理解。

contract SimpleStorage {

string storedData;

function set(string s) {

storedData = s;

}

function get() constant returns (string) {

return storedData;

}

}

image.png

图1-4展示了在以太坊网络中创建智能合约的过程。当Bob将一个包含智能合约信息(如上例代码)的交易发送到以太坊网络中后,节点的EVM执行这个交易并生成对应的合约实例,图中的“0x6f8ae93..”代表了这个合约的地址。节点间通过共识机制达成一致后,这个合约就正式生效了,之后用户就可以调用SimpleStorage合约了。

image.png

图1-5展示了在以太坊上调用智能合约的过程。Bob同样以交易的形式在“To”字段填上SimpleStorage合约的地址,在“Data”字段填上调用的方法(set)和参数(“Hello”),就可以调用智能合约SimpleStorage,将其中的storedData设为“Hello”。节点收到这条交易后,通过EVM执行对应的操作,并通过共识机制实现以太坊网络上合约状态的改变。之后,当Alice查看这个合约的变量时,就会发现这个合约中storedData变量的值变成了“Hello”。由于查看的过程不涉及状态的修改,而且以太坊上数据是分布式的,网络中的每个节点都可以在本地保存一份完整的数据,因此Alice可以不通过交易的形式查看到这个变量的值。

通过这个例子,可以理解如何在以太坊区块链上创建和运行一段代码以及代码变量的存储。在实际应用中,合作的几家机构可以用这段代码定义商业运作的规则,区块链作为执行规则的平台不为某个个体的意志所左右,公开公正地执行和记录代码的逻辑和数据,减少了机构合作中的摩擦和成本。

上一篇: 比特币五大显著特性有哪些?
下一篇: 区块链技术演进:7年以太坊,即将迎来2.0时代
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
Solana
181.08 USDT
¥1,313.10
-0.85%
比特币
66068.97 USDT
¥479,099.14
-0.69%
Curve
0.2556 USDT
¥1.85
-2.44%
Filecoin
4.3368 USDT
¥31.45
-3.08%
FTX Token
1.3826 USDT
¥10.03
-2.7%
比特币SV
51.0416 USDT
¥370.13
-3.46%
狗狗币
0.1251 USDT
¥0.91
-3.32%
柚子
0.5851 USDT
¥4.24
+2.27%
Yield Guild Games
0.4729 USDT
¥3.43
-3.82%
瑞波币
0.6491 USDT
¥4.71
+8.06%
奇亚
18.711 USDT
¥135.68
-1.57%
Conflux
0.1673 USDT
¥1.21
-1.65%
最新快讯
更多
Deribit上某大宗期权用户卖出10月底看涨和看跌以太坊期权,总计500枚ETH
2024-07-31 11:46:21
半小时前3800万枚XRP从Upbit转至r4186开头地址,价值约2482万美元
2024-07-31 11:45:58
Eclipse主网现已向开发者开放,首届黑客松奖金接近5万美元
2024-07-31 11:42:34
首尔法院命令GDAC归还780万WEMIX代币给WemadeCEO
2024-07-31 11:37:21
顶峰AscendEX将上线why(WHY)
2024-07-31 11:34:05
HashKeyGlobal即将上线WLD、ENS和BLUR
2024-07-31 11:28:00
去中心化跨链资产管理平台Mycel完成种子轮融资,CVLabs等参投
2024-07-31 11:26:01
下载币界网APP