墨客物语

墨客物语:区块链技术解析
本文深入探讨了区块链技术的关键概念和发展历程,包括比特币分叉、矿工与开发者之间的分歧、以太坊的挑战及墨客项目的创新解决方案。介绍了墨客在分层架构、分片技术和异步智能合约调用等方面的进步。

墨客物语之一 比特币分叉,是什么鬼?

大家最近都被 bitcoin gold 的分 叉搞糊涂了吧。前面才分了一个 bitcoin cash,而 11 月 16 号还会有一个分叉 叫做 segwit2x,会搞一个新的 b2x 出来。比特币一年就生了三个儿子,到底发 什么神经呢?其实就是因为创造比特币的中本上神杳无踪影,比特币的工农联盟 分裂。分裂的原因就是比特币区块 1M,10 分钟出一个区块,导致每秒只能做 7 个交易。结果就是赌场容量太小,只能进 100 个,外面有几万个赌徒鼓噪。如何解决这个问题,矿工们和码农们闹分裂了。

墨客物语之二 矿工和码农撕的是啥逼?

矿工们的想法好简单,就是赌徒们上桌子玩,我有手续费拿呢。所以解决方案呢,就是你把赌场容量扩大哈,扩多 大呢,也有不同观点。有人说现在外面有 200 人,我们扩一倍?有人说,扩 4 倍,有人说,不如灵活运用,看多少人自动调节?这就是扩容的 2x,4x,8x 这 些东东。反正赌场大了来玩的人多了,我们生意兴隆了,多好啊。

可是码农观点 不一样,觉得你们只看钱,多 low 啊。不如我们开一个偏厅(侧链),让小玩 家在那里过家家,然后大玩家让他们来大厅玩?这个偏厅叫做 segwit。所以大 家看到最后纽约开了一个团结胜利的大会,工人们和农民们,各自让一步,就也 把大厅规模扩展一倍,也搞偏厅,双管齐下。

墨客物语之三 比特币茶杯里面的风波

矿工码农总算达成协议,就是先支 持偏厅,那个 segwit2x 里面,第一步先支持 segwit,然后 11 月份再加上 2x (区块扩容到 2M)。结果不支持 segwit 的人,就自己单飞,搞了一个 bcc 出 来了。那么在 11 月份要增加 2x,结果一帮人称自己为 No2x,就是反对扩容。 里面的人就参与搞刚刚分叉的 btg。不光是反对扩容,而且对这些 ASIC 矿场深 恶痛绝,还要修改算法,重新走回 GPU 挖矿。这里面其实又是一场争论,就是 你是不是按照中本上神的原意在搞?但是问题是,上神不见首不见尾,就算是中 本出来,他自己内部逻辑都些问题无法自洽,怎么能搞得定这帮工农?

墨客物语之四 中本上神的内部逻辑不自洽

中本聪在比特币的白皮书里面, 是把比特币系统设计为一个现金支付系统的。现金支付系统,当然应该要服务全 世界的屌丝,然后得屌丝者得天下。可是在目前的状况下,你如果让屌丝们去一 边玩,只有大土豪才可以在链上玩,你这是得赵家得天下了。这个就把比特币系 统变成了一个大宗交易清算系统,屌丝们看到 6 个大字“阿 Q 不许入内”。你 不姓赵,你配姓赵吗。但是如果简单扩容,需要空间过大,导致了穷屌丝一样也 没钱参与,结果还是一样,所以这个其实是无解,中本上神也没有好办法。而当 比特币内部工农互斗,人家场外不耐烦的赌客,就跑去其他赌场玩去了。

墨客物语之五 新赌场闪瞎你的狗眼

结果坊间就新开了一个大赌场,叫做 以太坊,创始人是下面毛还没有长齐的小上神布特林。以太坊的闪耀之处,在于 赌场里面添置了一台完整的图灵老虎机,你可以在上面写智能合同。

结果后来的 一堆各路人马发现在以太坊这里,玩法很有趣,因为你可以在这里按照智能合约给自己发一种被称为 ERC20 标准的代币,然后可以做自己的上市艾西偶游戏。 这种玩法很快爆棚,结果几万赌徒全部到这里开玩,玩得以太坊被堵得水泄不通。 因为以太坊的赌场容量扩大得不够大,也就是每秒钟才可以支持 20 个交易。而 我最近看到很多很多成群结队的赌客,都想上来玩,这个也变成了以太坊老板的 疼点,因为只有三个方法,才可以解决目前的拥堵问题。

墨客物语之六 堵成狗的以太坊

以太坊要解决这个问题,主要是三个路径:

  • 第一个就是也是搞偏厅,用侧链解决。比如类似比特币的闪电网络,搞雷电网络。 或者搞未来的 plasma。
  • 第二个路径,就是在以太坊上面做分片 sharding。
  • 第三条路径,就是招呼不了的多出来的赌客,介绍他们去其他新开的赌场。
    而新开的 赌场中间的一家,就是我的墨客。墨客的容量比以太坊要大好多好多。以太坊每 秒可以支持 20 个交易,墨客可以快 100 倍,支持 2000 个交易,并在特定情况 下,可以做到 1 万。

墨客物语之七 墨客想解决什么问题?

如果你有一个新想法,希望用区块链 试验一下,目前怎么玩?不好玩,因为通常你必须自己搭建一条属于自己的链出 来。这个不是很好玩的。那么你看现在的互联网,你想自己在互联网上面做一个 私人网络,怎么玩?有一个东西叫做 VPN,凡是懂得科学上网的人,都知道怎 么玩。就是你在互联网这个公共网络的基础上,搭建一个虚拟的私人网络,这个 网络不是物理的,而是逻辑的。其实原理就是加密。在物理的网络交换器上面, 也有虚拟网的概念,叫做 VLAN。那么墨客的做法,就是首先要满足大家可以上 来,在这个共有公共区块链上面,能够很容易地开发子链,或者说,逻辑区块链。

墨客物语之八 比特币的 segwit

昨天在说到比特币的分叉时候,对 segwit 的描述不够准确。segwit,全称是 segregated witness,中文叫做隔离验证。 其 实就是本来每个比特币的交易数据里面含有验证签名,占用了大概 65%的数据 空间。那么改进的方法,就是将签名移到交易数据的尾巴这里,将数据空间腾出 来,大概可以将 1MB 增加到 1.8MB。当然这个解决的是交易 ID 被更改的问题, 事实上,这个改动,防止了第三方的延展性,让闪电网络这种侧链的实现更为简 单,也增加了比特币的 op_code 的简单智能合约的可用性。所以莱特币的创始 人 Charlie Lee 谈到支持 segwit 的比特币和莱特币之间的跨链交换。

墨客物语之九 以太坊的闪眼法

以太坊的最杰出贡献,是开启了区块链的 智能合约时代。因为智能合约的引入,本来出现在比特币 UTXO 的两种简单状 态,被扩展为更加丰富和复杂的状态,也让分布式计算的基本逻辑“状态复制机” (State Replica Machine)成为可能。

那么针对拜占庭容错机制的算法,尤其 是 PBFT,以及各种改进的算法,都涌入了区块链。这里没办法给大家普及里面 的各种技术细节,但是可以归纳为一点:在应用比特币和以太坊的 POW 算法(俗 称挖矿),其优点就是全球铺开方便,比如比特币有几千个验证节点,以太坊有 2-3 万个验证节点(今年 3 月到了 25000),但是其交易处理比较慢,比特币 是 7,以太坊是 20。而应用 PBFT 算法,正好相反,其交易处理可以比较快,比 如可以做到 1 万,但是节点支持少,很难超过 20 个,而且很多都在一个数据中 心,甚至一个机箱自摸。基本上,有人和你说,他们可以做到每秒 10 万以上, 基本上都是在吹牛逼。问一下,他们能不能把节点全球分布一下?这样不会被蓝 翔挖掘机秒杀。

墨客物语之十 POS的问题

近年来,希望改进 POW 的交易处理速度的努力,主要体现 在 POS 和 DPOS 上面,就是不再靠哈希碰撞的挖矿,而是看谁手上的原生虚拟 币数量多兼且时间长。这种做法,大概可以将处理速度提高到几千,比如 2000-5000 这个级别,而不牺牲全球铺设的优点。但是 POS 和 DPOS 也有一 定的短板,就是相对于 BFT 经过严格的理论验证,POW 经过 7 年多的实践验证, 都行之有效,而 POS 并没有在大规模的网络中受到考验。从以太坊的发展方向,他们的 POS 方案,称为 Casper,目前看来至少需要 2 年时间,才可以考虑到 实际落地。而且因为从 POW 到 POS 的转换,会牵涉到目前的社区利益分歧, 非常可能的妥协结果,就是一个双头的 POW+POS 的共存局面。这样结果,会 导致问题更加复杂,无法解决以太坊的速度短板。

墨客物语之十一 墨客的基本目标

那么墨客的基本思考,就是我们想保持 现有比特币和以太坊这种公有共享,便于全球铺开的方式,但是又想满足 POS 带来的速度,可以做到每秒几千的交易处理水平,应该怎么处理?首先,我们提 出一个子母链的概念。母链,按照目前的以太坊的 POW 算法(用 GHOST 解决 分歧),就是可以全球铺开,但是速度慢和时效长,类似于现在的互联网。子链, 按照 POS 算法,已经被小型网络验证,可以比较高的速度,类似在公共互联网 上面搭建的 VPN 虚拟私人网络。因此这个是一个分层的架构,如果对比以太坊, 他们是平层的 POW+POS,我们就是分层的 POP(上层的 POS Over 底层的 POW)。这样的话,我们既可以全球铺设几万个验证节点,又可以做到每秒交 易处理速度 2000-5000。而且最重要,是可以支持子链,而不是以太坊只能支 持侧链。

墨客物语之十二 墨客的分层和分片

如果你明白互联网的 TCP/IP 架构 , 就明白墨客的分层。其实就是上层是 SCS(Smart Contract Server)智能合约 服务器,下面是 v-node 共识验证节点。在逻辑上面,SCS 和平行层的同伴沟通, 但是在物理层,是通过数据打包,通过底层的验证机相连的。就好像网络上的信 息,你按照 HTTP 打包,再按照 TCP 打包,再按照 IP 打包,最后用以太网 ethernet 打包。但是要让逻辑子链,可以在物理母链上实现,尤其是多逻辑子链,对应单 一物理母链的情况下,你必须可以对单一母链进行分割。不然的话,就是一个单 一逻辑子链对应一个单一物理母链了。而这个分割,就叫做分片 Sharding。

墨客物语之十三 侧链 side chain 和子链 child chain 的区别

先说一下啥 叫着侧链,比如比特币的闪电网络和以太坊的雷电网络,就是侧链。啥意思呢? 就是主链在干自己的事情,侧链发生什么,从实际时间上,和主链无关。大概只 是在特定时间,才和主链同步一下。但是问题就是,如果你有 N 多个侧链,而 且当交易发生在一个侧链到另一个侧链,那么同步问题可能会比较乱。子链的意 思,就是采取分层结构之后,子链是一种逻辑上的区分,而并非是一种物理上的 区分,所以不同子链里面的状态,可以在同一个物理链里面保持同步。但是你必须支持分层架构,而且你也必须支持逻辑分片,这样才可以化单一区块链而成为 多种区块链。而且这些逻辑子链可以要求不同的共识算法。目前以太坊只有平层, 没有分层,当然更没有分片。

墨客物语之十四 分片和速度

当你无法进行分片的话,你整个网络的处理 速度,其实依赖于单一节点的处理速度。而越来越多的节点加入进来,并不是节 点多力量大,而是节点多,导致网络拥堵,速度其实更慢了。那么采取了分片, 只有你单一片的节点数目不是太低,比如你 50 个节点,和 500 个节点,面对的 拜占庭容错率,可能并没有太多的区别了。在这个时候,你参与的节点越多,表 明你可以分出的片越多,而片越多,你整个网络同时处理智能合约的数量就越多, 那么你的处理能力越强,速度越快了。目前来看,能够做到分片的区块链平台并 不多,我们算是领先的一家吧。

墨客物语之十五 墨客的用户体验目标

当然一个系统设计得好,解决用户 体验很重要。墨客设计的时候,系统的功能,当然需要考虑扩展性和稳定性,但 是对用户来说,必须让用户快速简单地创造自己的私链或者去中心化应用 dapp。 所以在底层,我们决定完全采取以太坊的 POW 共识机制,因为目前来看,对超 大型区块链网络来说,POW 仍然是最好的选择。而 POW 的缺点,就靠上层的 POS 共识机制解决。只有重要的交易和流程控制,需要在底层的 POW 处理。 上层则靠分片的 POS 来保证速度和吞吐量。

墨客物语之十六 墨客的跨链

考虑到用户体验,墨客的设计,也征询了最近的一些区块 链应用项目的意见。他们目前碰到一个难点,就是希望在以太坊上发行 ERC20 代币,利用以太坊的智能合约,但是又不满意以太坊的速度。一种想法,就是墨 客的智能合约,支持 eth 的 ICO 融资,就是 eth 和其他 ERC20 代币,可以在墨 客上面的智能合约里面接受,然后发出墨客支持的 ERC20 代币。这里其实牵涉 的就是跨链了。而之后,也可以将智能合约的支持,扩展到 btc、b2x 和 bcc 等, 这样就可以提高更简易和迅捷的服务给大家。

墨客物语之十七 IBM将死之路

说一下 IBM 的故事,我最佩服一点,就是什么好的技术 方向,他们都会最后整一些要被淘汰的烂东西给你。自从他们搞了中心化伪装为 区块链的 Fabric 1.0 之后,有点玩不下去了,现在开始找 Stella(Ripple 的叛 将 Jed 搞的)来用做跨境汇兑。其实这条路也是将来走死的路。原因就是未来各 大货币主权国家都会走到法定数字货币,而未来的各法币之间的汇兑,其实就是 各数字货币的币币交换,就是我和你不是美元兑人民币,而美元数字货币兑人民 币数字货币,就是 USDT 换 CNYT。这个叫做跨链。

墨客物语之十八 法定数字货币

也许有同学说,央行法定数字货币没那么快吧!是的,因 为如果央行推出法定数字货币,那么目前的央行/商业银行二元体制将面临终结, 银行业为万业之首,将其他实体各行各业往死里勒的常态将不复再现。其实在 2008 金融危机之后,应运而生的比特币,就是以打死华尔街作为其目标。所以 央行是不敢那么快推出法定数字货币的。但是不排除民间先推出法定数字货币的 代币。比如 tether 推出的 USDT,就变相提供了法定数字货币的功用。我相信, 很快人民币法定数字货币的代币 CNYT 也会推出。而且日本已经在考虑 JPYT, 所以这是一条不归路。

墨客物语之十九 法定数字货币的影响

批评虚拟币的人常说,发行货币是国家主权的权利,怎 么可以让私人组织来做?私人组织自己印钱花,那不是发死了?可是,大部分的 货币创造都是商业银行敲键盘敲出来的。中国几大银行还算是国企,但是民企的 几家,加上大部分外国的私有银行,都是自己发行货币的。如果法定数字货币真 出来,这一部分的功能,就玩完了。这样的话,银行将来的功能,主要是两个: 一个是贷款代理,收取贷款启动费。另一个就是私募基金,利用专业能力去投资 企业。

墨客物语之二十 比特币在支付上的应用

区块链技术目前的两大杀手级应用,第一个是基于比特币 的虚拟币,第二个是基于以太坊的 ICO。先说一下比特币,按照美国银行研究部门的报告,他们认为比特币 ETF 的市场,是 1.6 万亿美 元(不是津巴布韦币)。虽然比特币的出现,开启了商业银行的前途困境,但是 目前比特币在支付上的应用,因为其越来越出现的黄金保值和投资属性,却无法 落实。比特币的短板并不在于价格的高低,而在于暴涨暴跌无法带来的价格恒定 性。要么将来比特币到了一定的价格高点之后稳定下来,要么另外一种更恒定的 虚拟币出现,要么法定数字货币或者非央行发行的法定数字货币代币的产生,来 解决支付问题。

墨客物语之二十一 虚拟货币作为抵押物的信用体系

当比特币成为整个虚拟币代币的定价之锚,并且通过市 场来确立该代币之后的区块链的价值,就形成了以虚拟货币本身作为抵押物的信 用体系。说实在的,目前大部分的国家的创造货币信用的抵押物,还是以土地为 主,尤其是不断经过建设而屡次升高的土地价值估值。除此之外的实体抵押物, 包括文物、古董和艺术品等等,而比特币作为虚拟商品头一次扮演了过去实物才 能扮演的角色。这个既是革命性的人类社会的创新,也是很多传统思维难以接受 的原因:你真是看不见摸不着的,是不是?不像黄金,那个是黄澄澄的闪瞎你的 狗眼啊(虽然很多人交易的黄金都是空气符号)。但是正如人们理解的法币的概 念,可以从手头花花绿绿的纸片,到手机上一个二维码,那么当人类走人更多的 虚拟生活形态,这样不适应会慢慢改变。

墨客物语之二十二 郑和退场 哥伦布登场

今天是鬼节,也是中本上神发布比特币白皮书的九周年, 而且芝加哥大宗商品交易所申请了比特币期货产品,比特币价格突破新高。在中 国,今天也是正式场内比特币交易终结的最后一天,投资人吓得两万抛售的比特 币,被保护到了四万了。行内人高喊大航海时代来临,说得是郑和黯然退场之后, 哥伦布和麦哲伦的正式登场。各路资金和人才团队蜂拥而出,以后全球都可以看 到这批中国人的身影了。

墨客物语二十三 新的投资对冲产品

因为这些年来各大全球央行疯狂放水,导致所有传统市场 水漫金山,失去了任何资本对冲的机会,不论是美国的股市,中国和加拿大的房 市,还是全球的大宗商品市场,都出现市场信号失真的现象,各路投资资金基本上找不到可以对冲的产品。因此比特币,以及随后的其他主流虚拟币,都可以提 供另类的投资对冲产品。如果一个基金,可以将少量的资金,比如 5-10%落实 在可靠的虚拟币产品上面,基本上可以对冲掉其他市场的崩盘风险。从这个角度 来讲,墨客好好努力,是可以成为其中一个标的的。

墨客物语二十四 阿西偶的作用

之前我说过,比特币被主流投行和其他机构,包括高盛、 摩根斯坦利、JP 摩根等等的接受,其实是为虚拟币和整个区块链行业,建立起 来了一个信用系统。而在这个系统建立起来的第二个杀手级应用,阿西偶,就是 解决了从信用到融资到变现,这样一个过程。在这种新的虚拟币经济系统下,产 权拥有,被分割成为系统使用权,带来未来向共享经济的转变。将来的趋势,就 是具有资金需求的实体企业,会选择通过阿西偶实现融资和上市,而与传统风投 融资股票上市的模式告别。在这一过程中,首先是风投基金的转型,之后会导致 传统金融机构的被实体企业绕过的局面。

墨客物语之二十五 比特币缘何出现

中国监管部门对虚拟币表现出的疑虑,其实部分是出于 对比特币的误解。其实比特币重来就不是创造出来替换各国的主权法币的。比特 币的出现,是要解决不依赖于任何第三方信任,来解决支付问题。而这个第三方, 其实就是金融机构。如果一个主权国家,其发行的法定数字货币,可以直接和个 人对接,央行系统里面有大家每个人的私人钱包,大家可以直接参与央行的各种 债券认购,那么就可以基本上节省大部分的金融中间费了。因此将来用阿西偶方 式融资,以及不依赖金融机构运作的实体企业,竞争力是相当可怕的。国内有多 少企业,被高成本资金压得喘不过气来,将来是无法进行有效竞争的。

墨客物语之二十六 无币之链

目前中国监管部门对区块链的认知,比较狭窄地停留在 IBM 专家组的为 IBM 硬件销售而定位的定义里面,简单概括就是无币之链。但 是大部分并非专业码农的人,估计看不到 IBM 的 fabric 1.0 的版本里面,正如 第五张图里面显示,拜占庭容错机制,已经被实际运作的中心化的基于 Kafka 系 统的 ordering 服务取代了。难怪有专家叫 IBM 伪区块链了。当然,对比 R3 联 盟不光没有币,连链都没有的中心化分布数据库,还是强一点。这种思维,如果 对比互联网,就是缺乏对人的因素的考虑,而是简单从企业运作的成本思考。如 果你只把联网上来的看成一个个硬件,而忽略后面人的因素,今天的互联网肯定不会如此精彩。区块链也是一样,奖励激励机制,区块链区块里面内容的定价体 系,都是非常重要而不可以忽略的因素。在可见的将来,基本上可以看到 IBM 代表的思维体系被大众淘汰。

墨客物语之二十七 墨客的异步智能合约调用

大家说,不要浪费时间谈论伪专家。但是区块链技术上 如何加快吞吐量和速度,确实是当务之急。墨客除了进行分层,实现 POP 的共 识堆叠,以及进行了分片 sharding,另外一个创新,就是实现了异步调用智能 合约。一般不懂计算机科学的同学,这里给一个科普。比如你在公司上班,干一 件事情的时候,需要给家里打个电话,问一下家里冰箱里面缺些啥。那么同步调 用,就是 sync call,你放下手头所有的事情,等家里人把冰箱的状况全部告诉 你。得到明确的回复之后,你就继续做你的其他事情了。这里的关键,就是停止 和等待。那么异步调用,就是 async call,你打电话给家里之后,就挂了电话, 继续做你公司的事情,然后家里有了全部结果,自己打电话给你,通知回复的结 果。而以太坊的智能合约,目前还是同步调用。

墨客物语之二十八 以太坊同步智能合约的缺陷

那么对以太坊来说,因为是同步调用智能合约,整个合 约的完成,必须在一个区块里面进行。这样当共识节点给交易打包的时候,必须 等待智能合约跑出结果。那么去年 9 月份,就被人恶意攻击,利用了一个较低的 gas 去读取状态信息,每一个区块读 5 万次,结果就导致了为了等待结果,而长 时间无法完成共识的情况。当时的处理方法,是强行限制 gas 的天花板是 100 万。虽然后来修复了这个漏洞,但是为了保证共识可以按时完成,就只能限制每 秒可以处理的智能合约数量。这个顶,应该在 450 万 gas 这个水平。而墨客用 了异步调用智能合约,就是说,智能合约的启动到完成,可以跨区块,不是限死 在一个区块完成,这样也导致了墨客的吞吐量要快很多。

墨客物语之二十九 异步智能合约调用的流程

墨客的异步调用智能合约的功能,因为可以将智能合约的 执行跨过几个不同的区块,就突然产生了可以进行不同区块链的跨链功能。因为 不同的区块链,具有不同的产生区块的时间,那么如果我在墨客上设定一个购买 以太坊 ERC20 代币的合同,那么就可以在 5 秒钟里面,跨出墨客的当时的区块, 然后合同通过链外通讯,等待以太坊的 25 秒的区块完成对应买卖,再在第 N+2 个墨客区块,完成这边的交易。这种原子交易,不同于目前各种跨链的第三方角 色,都是通过建立一个中间托管账户来完成。而且在合约中你还可以定义看几个 确认区块,再完成交易。而缺乏异步调用合同功能,是无法进行跨链的原子交换 的。

墨客物语之三十 跨链

完结篇。讲到跨链,这个话题就太大了。我会在之后关于 井畅这个跨链去中心化交易所的议题上,再开启一个井畅物语系列。如果你看过 Gavin Wood 在 Polkadot 的白皮书里面,提到目前的各类区块链无法扩展,主 要是不能做到将 canonicality 和 validity 做到有效隔离。意思就是在区块链的 state transition mechanism 和 consensus mechanism 捆绑太紧。这个不论 是 POW 机制的比特币和以太坊,还是 POS 机制的 NXT 和比特股,都有这个问 题。所以墨客在这方面,首先实现分层,将这两个重要功能脱钩,算是和 Wood 大牛的思维比较一致。之后在井畅物语里面,我会花比较多功夫去探讨这个。墨 客的测试平台差不多要出来了,社区也要加紧建设了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值