以太坊与比特币的不同目的
大家都知道世界上第一个区块链是比特币。既然比特币非常成熟,且已经被大家所接受,为什么还需要以太坊呢?
今天和大家聊聊为什么作为后起之秀的以太坊在应用领域更加成功?
本质上来说,两者最大的不同之处在于设计目标。
比特币是一种被设计用来运行去中心化数字货币的网络。也就是说它的应用场景仅限于加密货币,并没有考虑过更多的场景。
比特币的局限性
比特币有一种脚本语言,就叫做 Script。它是一种基于堆栈的语言,功能非常有限,一般是用来验证交易。
下面是一个非常简单的比特币脚本代码,用来多重签名交易:
text
OP_2
<PublicKey1>
<PublicKey2>
<PublicKey3>
OP_3
OP_CHECKMULTISIG
其中 OP_2 是指定最小签名数是 2。 PublicKey 是提供公钥,这些公钥的作用是用来验证签名。 OP_3 是指定一共有多少个公钥,这里是 3 个。 OP_CHECKMULTISIG 是一个操作码,用来检查堆栈上的签名是否提供公钥匹配,并且保证至少有指定数量的签名才是有效的。
当然比特币也有一些扩展协议,其中早期非常流行的是 Mastercoin,也就是后来的 Omni Layer。目前最流行的稳定币 Tether(USDT)最早就是基于 Omni Layer 发行的。
Mastercoin 是一种非常典型的染色币协议。它的原理很简单,就是构建一个简单的比特币交易,然后在 OP_RETURN 中添加一段 Omni Layer 的数据。
一个非常简单的数据如下:
text
6f6d6e69 0000 00000014 00000001 0000000005f5e100
其中会有几段:
6f6d6e69
:Omni 的标识符。0000
:版本号。00000014
:合约类型。(14 表示发送,20 表示创建,1f 表示发送所有,21 表示众筹,22 表示增发,23 表示销毁)00000001
:代币 ID。0000000005f5e100
:转账数量。
Vitalik 与以太坊
当时以太坊的创始人 Vitalik 是一个比特币狂热爱好者,他曾经给 Mastercoin 团队提过一些建议,希望能够增加协议的灵活性,支持更多应用场景。但是由于过于建议激进,没有被采纳。
比特币开发社区的风格非常稳健。他们几乎从来不会做一些破坏先前版本兼容性的事情。包括后来的 Ordinals 协议也都是在不改变比特币本身的前提下进行的。
这样的好处就是比特币的兼容性非常好,一些老旧的节点不需要升级版本,仍然可以和最新的比特币网络完美工作。
同样的,比特币的缺点显而易见,合约的灵活性和扩展性非常差。
虽然不得不说作为加密货币,比特币的成功无人能及。但如果作为合约应用开发平台,比特币是不合格的。或者说比特币压根就没有考虑自己会扮演这个角色。
强扭的瓜不甜,与其在比特币的各种约束之下束手束脚的添砖加瓦,还不如开发一个专为通用合约设计的新区块链。
说干就干,Vitalik 在 2013 年 12 月发布了第一版以太坊白皮书,并得到了社区广泛的关注。
在 Gavin Wood、Charles 等人的帮助下,以太坊终于在 2015 年正式问世。2015 年 7 月 30 日第一个区块被正式挖出。
以太坊的诞生,标志着通用区块链的时代来临了。现在我们可以用图灵完备的 Solidity 来编写非常复杂的智能合约。
solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint256 public storedData;
function set(uint256 x) public {
storedData = x;
}
function get() public view returns (uint256) {
return storedData;
}
}
上面就是一段非常简单的 Solidity 代码。如果你有编程语言基础,你会发现这种编程语言和 JavaScript 或者 C++、Java 这些语言都非常类似。非常适合其他语言开发者上手。
以太坊与比特币在开发风格上的差异
以太坊社区的开发风格与比特币社区完全不同,它的理念是:"Move Fast and Break Things"。这种理念非常强调快速迭代和及时修复。但也并不是完美的,它会导致短期内的不稳定或发生错误,影响稳定性和可靠性。不过这种方法很适合以太坊这种处于创新和快速变化的领域。这个理念和 FaceBook 不谋而合。
以太坊非常积极的更新代码,而每次大更新都不会考虑兼容性,所以以太坊有非常多的硬分叉。平均 1-2 年就会发生一次。
硬分叉与软分叉不同。硬分叉会形成一条与之前的链完全不同的新链。所有的节点必须进行更新才能被新链接受。
同时硬分叉之后的以太坊,可能会影响到原来智能合约的运行。
这样做有好处也有坏处,好处是以太坊朝着完美的方向快速发展,坏处是一切都不是那么地稳定。
由于以太坊有着先发优势,加上这么多年以太坊技术的不断完善和成熟,后来的很多区块链都会选择兼容以太坊的 EVM,这也导致以太坊的市场占用率一直居高不下。
以上就是以太坊能够在 Web3 世界中占据着不可动摇的地位的原因!