我们平常人一提起区块链,常常会想到一个词语:去中心化。然而,纵观整个币圈,所有的区块链项目都在强调自己的 “去中心化”。问题在于,我们去中心化到底有什么用?去中心化的意义在什么地方?到底我们要不要所谓的去中心化?本文将带大家一一拨开去中心化的迷雾。

区块链的去中心化

开始之前,我想要列举一下之前见到过的几个问题:

  1. “区块链也是一个地址一个密码”

  2.  “那有一天是不是也可以被联合在一起的矿场主绑架去做一个分叉改变挖矿的难度”

  3. “币数目虽然有限但是价值不定,稀缺性又从何说起呢”

先来纠正几个常识和逻辑的问题再作回答(对应以上问题):

  1. 区块链既不是地址也不是密码,而是一个账本,里面记载了交易。

  2. 改变挖矿难度不会破坏比特币 2100 万的上限,与稀缺性无关。

  3. 价值不定和稀缺不稀缺有什么关系吗?稀缺是一个量的概念,又不是价值概念。照你这种说法,世界上没有一种东西具有稀缺性,因为它们的价值都是随时在变动的。

区块链之所以要去中心化,就是要保证数据绝对不允许篡改,避免了中心化节点可能带来的信任危机。哪怕在现有的社会制度下,中心化节点带来的灾难性后果还在不断上演。银行破产算不算?p2p 理财跑路算不算?你发的文章被网站和谐掉算不算?微博和微信每天有多少被和谐的信息和数据?这些不算损失吗?去中心化就是要彻底解决掉这个问题,保证数据绝对不会被篡改,删除。尤其涉及到钱的问题,如果支付宝把你的账户冻结,把你里面的钱全部清零,你还觉得这不是无法追回的损失吗?不要说你信任支付宝,你最终选择信任某一个机构,而区块链是信任某一种技术,是机构可靠还是技术可靠不言而喻。私有财产神圣不可侵犯,区块链就是在坚定的守护着持币人的财产。

区块链的安全性不是体现在账户密码被盗这种事,账户密码这些信息是识别你是不是财产主人的标志,这都能被搞走,不管你采用何种储存都没办法保证不被盗。你银行卡账号密码被盗,照样会丢钱,你手机支付宝密码被盗也照样会丢钱,这和储存途径无关。区块链的安全性体现在私钥是归属权的唯一标志,拥有私钥就是拥有财产,其他任何人没有私钥都无法偷盗、冻结、篡改,阻止你使用你的钱。这才是区块链的核心安全特征。而相比之下,银行可以不经过你同意冻结你的钱,可以限制你转账的额度,可以在你收到一笔转账之后把它撤回,你觉得这是安全的吗?比特币丢失无法追回恰恰是最最安全的,这就像一扇最安全的防盗门只认钥匙,其他任何方法(撬,砸,烧等)都打不开一样。

前面说过了稀缺性和价值无关,稀缺性也不保证价值,美国总统放的屁稀缺不?稀缺啊。有个屁的价值?硬分叉这个就更可笑了,如果有矿工试图分叉修改比特币的上限,他的分叉一定不会获得其他人的认可,没有其他人的共识就没有价值可言。

不知道大家是否了解,MVC 测试的 1G 区块就可以满足超过 VISA 级别的支付需求。而硬件的升级是指数增长的,真的到了全人类都用区块链支付的地步,那需要多少年?这些年储存空间还像现在这样吗?未来你看现在的储存能力,就像你现在拿着几 t 的硬盘看十几年年前的软盘一样。真的到了那个地步,一定会有匹配市场的储存产品出现,现在想这个纯粹杞人忧天。按照现在比特币的交易数,买个 2T 硬盘运行个七八年都不是问题。

比特币去中心化迷思

去中心化下,最富盛名的就是 BTC,号称全球有数以万计的全节点账本来保驾护航,一些所谓的大 V 更是号召大家下全节点保护 BTC,防止来自矿霸和政府的攻击,保护自己的 BTC,全节点越多就是越去中心化,真的是这样吗?

坦白的说,现在的 BTC 账本大概几百 G,普通人而言是完全没有动力做下载全节点这样的事情。也完全没有任何的必要,从中本聪的邮件里我们可以窥见:

>Satoshi Nakamoto wrote:

>> I've been working on a new electronic cash system that's fully

>> peer-to-peer, with no trusted third party.

>>

>> The paper is available at:

>> http://www.bitcoin.org/bitcoin.pdf

>

>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.

Satoshi Nakamoto

这段话的重点是:在网络接近这么大的时候,用户可以安全地使用简化支付验证(第 8 节)来检查双重支出,这只需要拥有块头链,或者每天大约 12KB。只有尝试创建新硬币的人才需要运行网络节点。起初,大多数用户会运行网络节点,但随着网络增长超过某一点,对于具有专用硬件的服务器场的专家来说,它将越来越多。服务器场只需要在网络上有一个节点,而 LAN 的其余部分与该节点连接。

 

带宽可能不像你想象的那么高。典型的事务大约是 400 字节(ECC 非常紧凑)。每个交易必须广播两次,所以我们说每笔交易 1KB。Visa 在 2008 财年处理了 370 亿笔交易,平均每天处理 1 亿笔交易。许多交易需要 100GB 的带宽,或 12 个 DVD 或 2 个高清质量电影的大小,或当前价格约 18 美元的带宽。

 

如果网络变得那么大,那将需要几年时间,到那时,通过互联网发送 2 部高清电影可能看起来不是什么大问题。

原文链接:BitcoinP2P e-cash paper

https://satoshi.nakamotoinstitute.org/emails/cryptography/2/

 

连中本聪本人都自己说用户根本没有任何必要下载全节点,只需要拥有区块头【SPV 钱包就可以】。全节点这种东西,只存在于运行比特币的商业机构和矿工之间,普通用户使用 SPV 存储与自己有关交易的区块头就 OK 了。

在回到全节点的问题上来,你要是狂热的全节点爱好者你下也没有什么问题,毕竟现在一块硬盘都几个 T 了。现在要拨乱反正的是全节点保护账本论,这就更扯淡了:在比特币网络中,矿工通过算力投票来表达他认为是正确的链进行延长,错误的链则拒绝接受其区块。没有算力的全节点只能说进行验证,真遇到攻击你只能干瞪眼什么也做不了。这就是关于全节点,树莓派的真相,对于普通人没有任何用的东西。

既然普通用户不用运行全节点,那比特币的去中心化究竟体现在什么地方?其实从上述的邮件里,中本聪甚至已经预计到了矿池的存在,比特币的去中心化,完全是针对矿工之间,或者说矿池之间所形成的 “小世界网络”。

这才是比特币去中心化的第一层含义。矿工之间是竞争关系形成去中心化,白皮书里有如下概述:

  1. 新的交易向全网进行广播

  2. 每一个节点都将收到的交易信息纳入一个区块中

  3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明

  4. 当一个节点找到了一个工作量证明,它就向全网进行广播

  5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性

  6. 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区块的随机散列值

矿工收集交易以赚取手续费,但交易的收集不能太多,也不能太少。如果打包太多则这个块无法传播给其他矿工,这就变成了孤块。太少的话则入不敷出,无法形成有效激励。另一方面产生的爆块奖励是所有矿工一起算一道数学题的方式来抢夺全网唯一的记账权。所以,一个成功的矿工所获得的收入是爆块奖励 + 手续费。其他没有抢到记账权的矿工则有动力更快传播成功者的区块以投入到下一轮的竞争当中,以减少时间成本的流失。如果矿工想更快进入下一轮竞争,它倾向于和更多,连结性更好的矿工相连。

这是一个小世界网络模型,我们可以看到它的节点【node】很少,但 “边”【edge】很多。在小世界网络下,矿工之间传播的跳数不会超过两跳。正是由于矿工之间的边非常多,他们的联系才非常紧密。这样才能保证以最快的速度传播给其他矿工,整个网络也因此变得强壮和安全。小世界网络能够很有效的阻止双花,因为比特币的双花只能够双花自己的交易,哪怕你慢了 0.1 秒,你的双花交易也比你的第一笔交易更晚传送到各个矿工手上,从而使矿工拒绝承认第二笔相同的交易,触发风控。这也是比特币零确认的基础。

比特币去中心化的第二点,在于权力的去中心化。在币圈里,非常搞笑的一个面,矿工某种程度上来说竟然是个贬义词,我们常常能够听到把矿工称之为 “矿霸”,拿起你的全节点,保护我们的权利不被矿工所侵害这样的词语。他们没有弄清楚一点,究竟谁才是比特币真正的主人?是矿工啊。矿工投入巨大的真金白银打包区块获得收益,他们有着巨大的沉没成本。换一个角度来说他们为什么要冒着风险去攻击整个比特币系统?从经济学上的角度来说根本无利可图。比特币能够工作十年之久最关键在于这是一个诚实挖矿比攻击系统获利更大,充分利用了人性贪婪的一面才能使这个无中心系统工作那么多年。我为什么要提到这个?因为比起 “矿霸” 这个说辞,“码霸” 才是更有威胁力的人物。那些开发者永远想把比特币当成自己的实验玩具,肆意篡改着系统协议。segwit,检查点,这些东西都是开发者们的天马行空。不要在动协议了,开发者对于比特币根本没有真金白银的投入,他们没有沉没成本。比特币失败了他们完全可以拍拍屁股走人,然后顶着 “比特币开发者” 这个称号去下一个公司应聘。矿工的矿机变成了一堆废铁一无是处。防止开发者的作恶,一个坚如磐石得协议是多么重要。否则,协议改了第一次就会有第二次,第三次。。。。。这是多么可怕的事情,开发者手里掌握巨大的权力。这样你就明白为何锁死协议如此重要,剥夺开发者的权力才能使比特币实现真正的去中心化。

总结

破除比特币去中心化的迷思非常重要。作为 UTXO 脑残粉,这里简单提一下我目前接触到的 UTXO 公链 “MVC”,其采用和比特币相同的 POW 共识方案以及比特币相同的 SHA256 挖矿算法,确保了 MVC 具有开放性、无许可性以及去中心化等特性。总而言之,保持足够的去中心化是一切区块链技术的基础,去中心化特性能确保系统的健壮性,跨区域性以及公平竞争性,并让整个系统具有自我延续的生命力。

原文链接