比特币、以太坊、NFT和web3极简入门

shellc 2022-06-29

tags: web3 

关于比特币、以太坊的读书笔记。

赛博朋克的理想

1970 年代,是网络技术革命性发展的年代,诞生了以太网、 TCP/IP 、电子邮件等很多重要的网络技术。网络技术的发展也推动了网络文化的发展,通过电子邮件组,形成了形形色色的网络社群和文化运动。赛博朋克就是其中之一,赛博朋克运动的参与者是一群自由主义者或抱持不同程度无政府主义的人。他们构想通过网络技术重塑人们的互动方式,特别是减少政府干预行为。

1970 年代末出现了公钥密码学,使赛博朋克的理想变得更具体可行。加密技术可以保护人们在网络沟通过程中的隐私。交易作为人类互动的重要部分,成为主要困难的问题。困难点在于,交易过程涉及到货币的转移,但是并不存在一种适合在网络中使用又满足隐私性要求的货币。并且,从无政府主义者的观点出发,是不应该存在中央银行的,所以需要创造一种不被少数人控制又隐私友好的电子货币。

通过加密技术创造这种货币就此成为了一个长期待解决的问题。不过,在比特币进入大众视野的 2010 年代之前,这个问题还只被有限的加密技术爱好者所关注。

加密货币需要解决的主要问题

赛博朋克理想中的货币是一种适用于计算机和网络的电子货币,加密技术是实现这种电子货币的基础。这种电子货币应该具有三个属性:1)适用于计算机和网络;2)匿名;3)去中心化中介。

人类使用过的广义上的货币大概有贵金属、法币和信用三类。

贵金属交易具有匿名和去中心化中介的属性,但不适用于计算机网络世界。

法币是指用政府信用作背书的法定货币,一般由代表政府信用的中央银行发行。纸币是流通中最常使用的法币形式。只要交易双方妥善保护自己的脸,使用纸币交易可以实现匿名性。也正是因为纸币具有匿名性,出于打击逃税和犯罪的目的,很多国家严格限制大额现金交易。银行账户余额也是一种法币形式,通过银行或支付宝等支付服务,法币可以通过网络交易。但是,无论中央银行、商业银行还是第三方支付服务,都是中心化中介,由于系统安全和金融监管的原因,交易过程一定是被准确记录的,所以也不具有匿名性。

基于信用的货币一般会表现为债务,债务通常由法律作保障,所以一定会写清楚债权人和债务人之间的债务事实,不可能匿名。

以上三类货币都不满足赛博朋克理想电子货币的全部要求,特别是网络适用性或匿名性方面无法改进。基于密码学可以很容易满足这两点。一个可行的方案是利用“盲签”技术,交易双方以公钥作为公开的身份,实现匿名,以私钥签名保证所有权。但是这个方案依赖一个中心化的系统,来发行货币并记录和验证交易。

网络空间是不依赖信任的,所以由少数人控制的中心化系统天然不被信任,中心化系统也更加不稳定。点对点系统看起来更理想,但是让所有人在发行货币和确认交易上达成一致是很困难的。特别是经典的“双重支付”问题,如何保证一笔钱不被花两次。

但如何去掉中心化系统成了此后 30 多年的难题。

比特币的解决方案

2009 年 1 月比特币的发布,标志着赛博朋克理想电子货币的真正实现。就像历史上很多的技术创新都是在前人的基础上完成的临门一脚,比特币也一样,在此之前,区块链技术已经被提出,也出现过像B币和比特黄金这样接近可用的加密货币方案。

不过回头来看,比特币的成功也涉及一些独特的原因,特别是一些软件工程、经济学和博弈论方面的机制。同时,也正是因为比特币包含了很多不可预测的人类行为机制,站在比特币发布的那一刻,其实充满了不确定性,估计即使中本聪本人也很难预测到后面的成功。所以对比特币成功的分析只能是一种马后炮式的后见之明。

在密码学之外,比特币最成功的两个技术因素是区块链和基于工作量证明( PoW )的共识机制。

区块链是比特币的底层存储机制,是一种按照时间顺序追加的不可修改记录。区块链技术最早出现在1990年代,用于可靠地记录电子文档的创建顺序。报纸也可以被形象地理解为区块链,报纸具有按时间发行,不可修改的特性,借助公钥密码学,我们可以通过报纸来做很多有意思的应用。比如发布预言、赌博、甚至发行货币。

在比特币的场景中,区块链通常被比喻为一个账本,所有关于比特币的交易全都记录在这个账本上,没有人可以更改,它只会不停地增加新的交易记录。区块链最重要的特性是可以被审计,这就让重复支付行为可以很容易地被发现,进而有可能得到解决。

解决重复支付问题,依赖有人能够发现并拒绝重复支付的发生。中心化系统自然很容易解决这个问题,因为数据是中心化系统自己维护的。在点对点网络中,所有人针对一个交易做出一致的决定,这就需要一种共识机制。 PoW 采用经济激励的方式让所有人既竞争又合作,充分利用了人性。

区块链和工作量证明机制共同作用的结果,就是比特币具备了一个所有人一起维护的不可窜改账本,使一个稳定的加密货币成为可能。

只是有区块链和工作量证明也不足以使比特币一定成功,每一个细节可能都足够重要。比如 2100 万的总量限制、以 10 分钟为固定间隔产生新区块、新发货币确定性递减,都有效保证了比特币内涵价值的稳定和对矿工的有效激励。而 51% 算力问题也非常有意思,虽然理论上拥有 51% 算力的人可以对比特币为所欲为,但是,有人拥有 51% 算力这个事实本身可能就足以让比特币社区信心崩溃,而这大概并不符合 51% 算力所有者的利益。

比特币在密码学和工程学上存在多种崩溃的可能性,在经济学上存在各种不稳定因素,神奇的是它依然稳定的存在着,或许其稳定性也强于人类传统的经济系统。

以太坊的愿景

比特币是第一个也目前最成功的加密货币,它基本实现了赛博朋克关于电子货币的理想。

比特币最初只是被设计为加密货币,但是设计者保留了一点灵活性,比特币交易中可以包含元数据和有限的指令。这让比特币超出了货币的使用范围,可以用来做更多事情。比如用元数据来表示新的货币、资产,配合有限的指令,可以构建自动化的交易过程,比如赌博游戏、拍卖等。因为比特币的规则和软件是开源的,网络是开放的,人们也可以通过修比特币系统来增加新功能。

这种对比特币的修改毕竟要受限于比特币最初的设计,增加功能相当繁琐。以太坊是一个全新的实现,它吸收了比特币成功的经验和有效的设计,试图创造一种能够更加灵活扩展的实现。以太坊把自己视为一台计算机,底层区块链作为这个计算机的存储,一个虚拟机支持执行任意复杂的程序。以太坊既是一个加密货币系统,又是一个计算平台。

以太坊通过 EVM 支持具有图灵完备性的编程语言,这种编程语言被实现为 EVM 支持的字节码,EVM上运行的程序被称为智能合约。开发者可以通过 Solidity 、 Vyper 等高级编程语言开发智能合约。

智能合约让以太坊成了一个正在的通用计算平台,所有人都可以通过智能合约开发新的应用程序,而且这些应用程序共享同样的数据和算力,就像所有人在为同一台计算机编程。更重要的是,以太坊平台内置了经济系统。

以太坊平台吸引了更多人参与,越来越多应用场景被解锁,加密货币从最初赛博朋克圈子走进了大众视野。新生事务破圈的过程往往伴随着外延的扩大,概念的模糊。就像很多人类冲突的起源是名词解释一样,加密货币破圈所产生的一些列概念也带来了大量的认知和价值观冲突。我们正在经历这一切,所以从头梳理历史对于看清其走向是有意义的。

代币

代币( Token Coin )可以被理解成一种可以和货币互换的权益证明,比如街机的游戏币。在以太坊世界里,代币通常指可以和以太币互换的被记录在以太坊系统内的权益。从技术的角度来看,代币是由某个合约账户维护的一个哈希表,哈希表中记录的 key 是表示用户身份的公钥的哈希值(账户地址),哈希表中记录的值是表示代币余额的数字。在以太坊平台上发行新的代币是一个极其简单的事情,一个具备基本功能的代币合约可以少于 10 行代码。 EIP-20 是以太坊关于代币的一个标准,使用符合该标准的开源代码,可以立刻部署一个非常完善的代币合约。

所谓 ICO (首次代币发行),在技术上就是部署 EIP-20 合约的过程。 ICO 最大的争议是拉高出货的骗局,一个毫无价值的数字,通过故事和营销可以成为高效的行骗手段。另一个角度来看,这个过程更像一个击鼓传花的博傻游戏,其实参与者完全清楚规则,赌自己不是最后一棒。

代币也可以实现很多有价值的应用。比如把现实世界里的资产映射成代币就可以借助以太坊平台实现高效的金融应用,这通常被称为 DeFi (去中心化金融)。这依赖中心化的金融机构和非中心化的平台做有意义的整合。

NFT

NFT ,全称 Non-Fungible Token ,也被称为非同质化代币。 NFT 的标准是 EIP-721 。从技术角度来说,把 EIP-20 里那张哈希表的结构反表来,把金额换成一个字符串,作为 key ,把账户地址作为记录的值,这就是 EIP-721 的底层数据了。含义是这个字符串属于这个地址所有,至于这个字符串有什么价值,那就是见仁见智的问题了。

数字收藏品是 NFT 最流行的应用,在这个场景里,字符串表示的就是收藏品的标识,收藏品的属性和内容都是附属在这个标识上的数据,比如,一张图片的 URL 。如果我拥有这个 NFT 意味着什么? NFT 证明的不是这个图片属于我,而是这个 NFT 属于我。这句废话好像没什么意义,有意义的是,这个 NFT 是被某个人创造的,而且他为 NFT 的属性(比如图片)做了某种声明(比如著作权)。重要的不是内容本身,而是这个做出声明的人。如果他是一个路人甲,这个 NFT 一文不值,如果他是某个名人,这个 NFT 就可以值千万美金。这也是为什么娱乐明星对 NFT 蠢蠢欲动,这玩意儿可比让粉丝买牛奶倒掉来钱容易。

NFT 也有更实际的用途。假设一辆特斯拉关联着一个 NFT ,它实时联网检查这个NFT对应的所有者账户,只要是持有这个账户私钥的人都可以控制这辆特斯拉。那么 NFT 就代表了这辆车的控制权,卖出这辆车或者实现共享就是很容易实现的。

DAO

DAO,全称 Decentralized Autonomous Organization ,去中心化自治组织。通过智能合约可以很容易实现像投票决策、受益权分配这样的应用以实现人的自动化协作。区别于传统人类社会的协作,DAO 不依赖信任假设,不需要管理学手段。通过 DAO ,有可能向赛博朋克理想的实现更进了一步。赛博朋克把构建去中心化组织本身作为目标,但是对于大多数非极端自由主义或无政府主义者,中心化系统并不是不可接受的,并不存在某种组织目标在 DAO 出现之前不能实现而之后可以实现了。

通过智能合约技术,确实有可能优化很多人类的协作,主要是基于提升效率降低成本的原因。比如上文提到的特斯拉的交易和共享,就摆脱了中介机构。如果在这个场景里追求极端的去中心化,那么必然导致法律被代码替代。一旦交易出现矛盾将必然有人承担全部损失,这会导致有人追求风险补偿而异化交易行为,甚至完全无法达成交易。由此可见,去中心化和中心化都可能是有益的,人类理性往往追求平衡而避免极端情况发生。

web3

DApp 是去中心化应用( Decentralized Application )的缩写。 DApp 特指以智能合约作为后端, Web 页面作为前端的应用形态。借助以太坊这样的区块链平台, Web 应用可以不依赖中心化系统。

web3 这个词最先由以太坊的 CTO Gavin Wood 提出。用 DApp 的理念推进 Web 的演化,使 Web 技术和应用发生革命性的创新就是 web3 所要表达的愿景。所以 web3 并不是一套技术的标准,它所描述的,是一种 Web 未来演化的可能性。 web3 会以什么路径发生,最终产生什么革命性的成果,在目前阶段都是未知的。 web3 更具体的指代是开发以太坊 DApp 的类库 web3.js 。

和加密货币的出圈类似, web3 吸引了大量开发者、投资人和普通用户的关注。 web3 不是一个有确定性内涵的概念,更多时候,它混合了以上所讨论的全部内容。

更多的问题

厘清一部分关于概念和历史的真相,并不会让问题完全消失,更可能是换回一批新的问题。比如:

  1. 长期来看主权国家对加密货币的态度和监管策略会是什么?
  2. 哪些技术会得到发展,哪些会被淘汰?
  3. 有哪些应用场景会被解锁?
  4. 中国是否又错失了创造一批生态型全球公司的机会?

这些问题我们以后慢慢回答。