去中心化 比特币扩容纷争:“去中心化” 的争议

aaron67 · 2017年12月27日 · 137 次阅读
本帖已被设为精华帖!

本文转自知乎用户太阳谷写的文章,已联系作者并获得转载许可 | 原文链接


去中心化的玄学

在币圈,“去中心化”是个很玄乎的概念。在技术上,在经济上,都没有一个很清晰的定义。什么是去中性化,什么样的去中心化程度高,什么样的去中心化程度低?

我们见过的事物里,有什么是去中心化的?

去中心化常常和市场经济一起出现。就好像那个戈尔巴乔夫的经典问题:谁管理伦敦的面包的供应与需求?就是一个中心化和去中心化的思想的碰撞。简单来说,推动一个去中心化的比特币发展起来,背后的思潮是自由主义,市场经济,奥派经济。

简单的用面包店的市场经济来看比特币的去中心化是不够的,面包店的面包无法互通,而比特币是一种互通的货币。为了解释这个全球互通的属性,大家也常用黄金来做例子,尽管黄金的开采和交易现在都不是自由的。

从互联网技术上看,第一个进入公众生活的去中心化产品,应该是BT下载。中心化的下载,是用户直接从网站的服务器上下载,能不能下,有没有速度,都要看网站的。在人多的时候就容易堵塞变慢。而去中心化的BT下载,用户可以从其他用户那里下载,同时也上传给别人。在人多的时候,速度会很快。最开始提供资源的节点下线了,也不影响整个系统的运营,其他人依然可以继续分发下载。

所以,大家总结出来了去中心化的几个特色:Peer-to-peer (节点间没有地位高低,没有中央单位),抗单点失效,服务分散运行在不同的人和不同的地域,等等等等。这些都没有太多争议。

比特币去中心化的争议

去中心化好理解,可是在比特币这个具体的事物上,什么样是去中心化就有很大的争议。

争议: 矿业的发展带来的是更中心化还是更去中心化?

我自己的观点是后者。其实,这个问题的核心并不是在矿业本身,而是在于对去中心化结构的理解,即:peer-to-peer 里的这个 peer (同侪,这字念柴)是谁?这个问题,如果你回答 peer 是你我这样的小散户,那矿业的发展显然是带来中心化,因为小散户没法用 CPU 挖矿了;如果你回答 peer 是算力,那么矿业发展是引入了更多的 peer和更去中心化。

一封旧信,当年中本聪在邮件组里写的

某人写给中本聪的评论:

We very, very much need such a system, but the way I understand your proposal, it does not seem to scale to the required size.

For transferable proof of work tokens to have value, they must have monetary value. To have monetary value, they must be transferred within a very large network - for example a file trading network akin to bittorrent.

To detect and reject a double spending event in a timely manner, one must have most past transactions of the coins in the transaction, which, naively implemented, requires each peer to have most past transactions, or most past transactions that occurred recently. If hundreds of millions of people are doing transactions, that is a lot of bandwidth - each must know all, or a substantial part thereof.

中本聪的回复:

Long before the network gets anywhere near as large as that, it would be safe for users to use Simplified Payment Verification (section 8) to check for double spending, which only requires having the chain of block headers, or about 12KB per day. Only people trying to create new coins would need to run network nodes. At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware. A server farm would only need to have one node on the network and the rest of the LAN connects with that one node. The bandwidth might not be as prohibitive as you think. A typical transaction would be about 400 bytes (ECC is nicely compact). Each transaction has to be broadcast twice, so lets say 1KB per transaction. Visa processed 37 billion transactions in FY2008, or an average of 100 million transactions per day. That many transactions would take 100GB of bandwidth, or the size of 12 DVD or 2 HD quality movies, or about $18 worth of bandwidth at current prices. If the network were to get that big, it would take several years, and by then, sending 2 HD movies over the Internet would probably not seem like a big deal.

这封邮件写出了比特币最初的设计思路,值得一句一句好好看看。给中本聪写信的人,问的是如果你的系统有几亿人用的话,是不是要传输的数据太多了。中本聪给出的答复,把“普通用户”和“拥有服务器集群的专业人士”区分来开。初期没有用户的时候,所有人都运行节点,用CPU挖矿。但是成熟以后,普通用户只需要运行SPV钱包(轻钱包),查看和自己有关的交易,而把运行节点的工作交给“拥有特殊设备的服务器集群”,因为他们“尝试获得新币”。按照2008年VISA的结算速度,运行节点处理相当数量的比特币交易每天流量100G,流量成本18美金。

从这封回信来看,中本聪已经预见了矿池的出现,并且指出运行节点是矿池的事情,而不是普通用户的事。也就是说,比特币这个网络的去中心化,只是存在于矿池和矿池之间的这个网络里,和没有算力的用户没什么关系。没有算力的用户,也不需要运行比特币节点。在算力圈内,只要是有dual-SHA256的算力就可以参与挖,这是去中心的。而在用户这边,用户的SPV钱包需要联入算力圈之内,主要功能是识别最长链,并在最长链上验证和自己有关的交易信息。可是,对于以上说法,在币圈也是有争议的,我们继续来看。

争议:为了去中心化,应该让尽量多的人来验证完整的比特币区块信息吗?

一些off-chain钱包,比如币信,其实是你把币给了他们公司,他们公司帮你打理。这类服务完全不参与比特币数据的验证,不在今天的讨论之列。普通用户可以使用的钱包大致可以分为两类:

  1. 全节点钱包。比如 Core 开发组的软件,BitcoinUnlimited 的软件,都是要同步一个几百GB 的数据库,里面存着从2009年到现在的所有区块信息。用全节点钱包,等于是在和矿池用一样的软件,相当于自己是一个一直没有挖到矿的矿工,一直在验证其他矿工提供的区块,以决定自己下一个块怎么挖。全节点要验证世界上每一笔比特币交易是否有足够余额可供支出、是否存在双花、脚本能否合规等等。按照每十分钟出一个1MB 满块的速度,每天增加144MB,每年增加52.6GB。
  2. SPV 钱包。比太,electrum 之类,也叫轻钱包,只做简单支付验证Simplified Payment Verification。支付验证只判断用于“支付”的那笔交易是否已经在链里,在哪个块里。支付验证不需要看到完整的区块信息,只需要区块头的信息即可判断是否存在,按照每十分钟出一个块的速度,每年只增加4MB。普通用户要查看区块内的信息,就要使用像 blockchain.info 这一类的在线区块浏览器服务,自己电脑里没有存储这些信息。

争议就来了,如果用户都用全节点钱包,那去中心化是不是更高呢? 大概有这么几派观点:

  • 极度反扩容派的论调:全节点钱包是最好的,并且最好开放8333端口让其他全节点钱包能找到你,更好地加入到这个节点网络里来,节点网络里的全节点越多越好。节点越多,越不容易被外力管制,也有更多备份抗灾。这样的态度伴生的必然是反扩容,甚至主张缩容。因为每年52.6GB的数据增加,对于个人节点已经是不少,这个数据量用用 SSD已经 有点贵了,大多数人只能用机械硬盘。如果说扩容并且交易量在几年内达到现在的1000倍,达到 VISA 级别,每年52.6TB 的数据,注定没法人人都这么运行。极端反扩容派的论调大概就是如此:此风不可涨!今天扩2M,明天扩3M,扩着扩着就有很多人的电脑运行不动了,破坏了去中心化。所以,链上的空间是宝贵的资源,不是给大家买咖啡用的,要竞价使用,所以BTC 的手续费就渐渐高起来了。
  • 中间派的论调:承认普通用户的全节点有价值,但否认扩容会影响全节点的数量。知名的矿池老板,科普作家江卓尔先生,他的观点就是这样。如今电脑很便宜,硬盘也很便宜,扩容后交易量如果增大个几倍个几十倍,基本不会影响普通用户去设立全节点,毕竟现在一部电影都几十 GB 了,参与到“让比特币更加去中心化,为比特币历史数据多留一份备份”这么伟大的工程里来,这点成本不算什么。去掉1MB 的天花板,让用户群体变多的话,总的节点数量还是会更多的。Gavin Andresen (其实他是极端派)说的话很有趣:“作为一个兴趣爱好,人们永远都可以运行的起比特币全节点。人们在别的兴趣爱好上(比如运动)花的钱要比这多多了。”
  • 极端派的论调:不挖矿的用户的全节点对网络没有价值,仅仅是个人兴趣。即便作为备份,没有算力的个人节点在比特币网络停摆的极端状况下也因为高难度而无法让网络重新运作起来。如今的比特币网络完全不需要非专业的个人节点来做备份。我个人的观点是极端派,这段会解释详细点。
    • 经济学上来说,普通用户没有动机去维护全节点,非要赶鸭子上架是不对的。普通用户,作为钱包里有钱要花钱的人,只关心自己的钱包是不是安全。只需要去看自己是不是有钱,自己能不能安全地发送交易,私钥不要泄露。普通用户的钱包,应该着重于保护私钥的安全,易于备份私钥,发送交易的界面清晰易用。至于这交易有没有及时被打入区块,有没有双花,还有区块内其他交易的信息,对普通用户来说毫无意义。能双花了更好不是么?如果要移动支付,大家一定会选择手机 APP,而不是笔记本电脑外挂硬盘,全节点是很难使用的。经济学上来说,对验证交易有兴趣的一方才应该运行全节点,也就是收款的商家,交易所,矿池,区块浏览器等等。以咖啡店和 Bitpay这样的支付商为例,用户只关心自己的手机 app 可以把交易信息发出去,尽快拿咖啡走人。而咖啡店关心这个交易尽快被 bitpay 确认后能收到法币。这里面只有 bitpay 关心,这个交易要有效,不要有双花,所以要尽快验证后广播给矿池。所以,bitpay 一定会投资设立验证快网速快又稳定的节点,做得好就可以签下更多的咖啡店赚更多钱。在这个观念里,让链上交易成本低,bitpay 这样的商家越好做,这样的企业节点就越多,去中心化程度反而更好。
    • 普通用户的全节点对去中心化无益。极端派认为,没有算力的节点又去验证和自己无关的交易是没有意义的,验证了你也做不了任何事情来改变这个网络,你还是只能选择跟随算力挖出来的链,最终效果和 SPV 钱包是一样的。
    • 普通用户的全节点对去中心化甚至是有害的。这里有一个“距离”的概念。理想状况下,一个 SPV 钱包,发送一笔交易后,这笔交易应该尽快抵达所有的矿池。所有的矿池都收到了这一笔交易的信息,如果后面再有人发一笔有冲突的交易(双花),就会直接被所有矿池拒绝。由于比特币的网络是渔网状的(small world 模型),每个节点和另外 N 个节点连接,这个广播交易有一个扩散到全网的过程,从广播交易的节点到算力之间,要跳转几次,这就是节点间的距离。假设网络中除了矿池和区块浏览器的节点,还有大量使用家庭网络的个人节点,他们电脑卡网速慢,却增加了节点到矿池之间的距离,这个扩散的全网的速度可能会被拖累变慢,交易信息发送到了很多个人节点那里,但没有让矿池及时接收到交易信息。
    • 作为一个兴趣爱好,人们永远都可以运行的起比特币全节点。BitcoinUnlimited 开发组和 nchain 凑了150万美金,搭了一套测试网络,运行每秒3000笔的比特币系统(1GB 区块,1000倍于当前交易量)。测试用的矿池并没有很高端的设备,大多是64G 内存配SSD的VPS,甚至有一部分16G 内存的台式电脑。测试相当成功,大区块之下所需的设备远远没有反扩容一派说的那么科幻,说只有 google 才运行得起来。搭建全节点的成本和在比特币产业里的其他成本来说不值一提,绝对不会影响有经济利益的公司机构搭建强壮的节点网络。

无论是上述哪派,都不得不面对着用户的需求:BTC 的链上太堵了,小额交易肯定不行了,连大额买币都困难了。扩大交易容量是必定的,极端反扩容派提出的是链下方案,或所谓的第二层网络方案,主张“小额交易走闪电网络,最后结算的时候再来链上”。而扩容派,特别是极端的扩容派,主张区块链技术比传统的结算网络(银行)的结构更先进更安全成本也更低,认为第二层网络是开倒车。如今, BTC 彻底被反扩容派控制,扩容派已经全体挪到了 BCH 上,这两条路看看谁会走得更好呢?

也许下篇文章会讨论第二层网络和 Segwit 这些骗子技术。

共收到 0 条回复
aaron67 将本帖设为了精华贴 12月27日 00:36
aaron67 比特币扩容纷争:对隔离见证的思考 中提及了此贴 12月27日 00:51
aaron67 比特币挖矿投资可行性分析 中提及了此贴 12月27日 23:11
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册