Facebook即将推出的加密货币Libra币并不是运行在Facebook系统上,它将运行于Libra区块链。Libra将是一种稳定币,它的诸多属性,很大程度上会与Libra区块链的属性相关。
不同于一般的区块链系统,Libra既没有区块也没有链,那么它还能被认为是区块链吗?Libra从代码角度,改变了对数字资产和智能合约的设定,它为什么要这样去做?Libra路线图显示它将从联盟链转为公链,这是一件容易达成的事情吗?
带着这些疑问,我们请链闻特约撰稿人李画与分布式存储项目Genaro联合创始人、趣派科技首席技术官吴为龙进行了一个对谈。年轻的吴为龙是第一批区块链开发者和经验丰富的技术极客,实战经验涉及区块链虚拟机、P2P存储、共识算法等诸多底层技术。
这个对谈从三大焦点展开,包括了17个最值得关注的关于Libra的技术问题。了解Libra的技术特点和未来发展方向,可以从这里开始。
Q:李画,链闻特约撰稿人
A:吴为龙,分布式存储项目Genaro联合创始人、趣派科技首席技术官
焦点一:Libra是区块链吗?
问:Libra既没有区块也没有链,我们能称之为区块链项目吗?
吴为龙:Libra是一个分布式账本项目,广义上讲区块链技术也称为分布式账本技术,所以可以认为Libra是区块链项目。这个定义在德勤2016年的DLT报告中就已经被提出来了。
Meta将在Instagram和Facebook中扩大NFT测试范围:6月22日消息,Meta创始人Mark Zuckerberg宣布为创作者推出更多在Facebook和Instagram上赚钱的方式,以帮助创作者为元宇宙进行建设。其中包括扩大数字收藏品的测试范围,以便更多的创作者可以在Instagram上展示他们的NFT,此后也会把这个功能带到Facebook上,用户就可以在Instagram和Facebook上交叉发帖。Meta将很快在Instagram Stories和Spark AR中测试NFT。[2022/6/22 4:44:25]
问:Libra似乎是用Merkle树这一数据结构代替了链式数据结构?
吴为龙:Libra用Merkle维系着一个很大的树形结构数据库,Merkle树中包含的可以认为是单一区块中包含的状态和交易;链的部分在其中则是通过状态列表和事件列表来表达的。
相当于说Libra是将整体区块链拆成了三个共同维护的树,一个记录交易,一个记录状态,一个记录事件。如果非要用区块的概念,可以把Libra看作是有几个巨大的区块,一直在往区块里写入新的经过验证的数据。
这么做的带来的好处是在账本维护中,Libra不需要一直生成新的区块:有交易时做相应的数据库更改,没交易时就保持现状,甚至可以通过做Merkle树的剪枝来减少账户本地备份的数据量。
声音 | Bitwise CEO:Libra可能在没有Facebook参与的情况下发布:据Live Bitcoin News消息,资产管理公司Bitwise CEO、Facebook前员工Hunter Horsley表示,我确实认为Libra会推出,但我认为会在除美国以外的国家推出,在瑞士或新加坡这样的司法管辖区,而且不会被广泛使用。我认为它很有可能在没有Facebook参与的情况下发布。[2019/10/27]
但也会带来问题,它会让节点收入少了最大的那一部分,也就是出块收益。在比特币和以太坊中,相较于交易费,出块收益是很大的一部分。至于这么做带来的其他的问题则需要看到实际的运行状况才能知道。
问:不再是链式结构后,还能保证区块链的难以篡改性和可验证性吗?
吴为龙:当然可以保证。难以篡改是通过共识来决定的,Libra使用的LibraBFT本质上也是拜占庭型共识,保证了相关的确定性。树型结构只是用来保证查找的。
也可以验证。历史数据包括相关的状态和事件都是在通过了相关的共识达成一致后,被详细地记录在账本上的,任何计算机只要同步了账本备份都可以进行验证,只需要在libra上直接下载即可。
问:Libra的这种数据结构适合于其他的公链项目吗?
吴为龙:不适合。最重要的原因是公链是需要激励节点的,出块收益是激励中重要的组成部分,而libra是没有出块收入的,只有大型机构才能做此类实验。
听证会 | 扎克伯格:若美监管机构要求Facebook完全撤出Libra协会,Facebook将执行:金色财经直播报道,在今日听证会上,议员再次确定Libra协会的治理决定权力,以及扎克伯格所提出的,获得一切所需监管批准前不会有进一步动作。
扎克伯格再次给出了明确说明:“我仅代表Facebook部分的Libra权利,且明确确定Facebook在得到美国监管批准前不会就Libra采取进一步行动。如果美国监管机构要求Facebook完全撤出Libra协会,小扎表示将会执行。”[2019/10/24]
问:这一问题会制约Libra从联盟链转为公链吗,也就是说Libra的账本结构决定了它是没有出块收益的,而如果没有出块收益,怎么做PoS?
吴为龙:当然会制约。那这个问题就只能交给它未来的设计了。
问:Libra自定义为数据库,这种定义恰当吗?在我的理解中,数据库是一种不考虑拜占庭问题的系统。
吴为龙:Libra完全的就是数据库。
本地数据库是不需要考虑拜占庭问题的,但分布式数据库很早就开始解决这些问题了,比如RAFT就是保证分布式数据库强一致的,而RAFT就是简化版的拜占庭解决方案。Libra是通过LibraBFT共识来保障更好的分布式数据库系统。
焦点二:Libra区块链技术的几处重要不同
声音 | Cameron Winklevoss:在加密货币市场需要和Facebook成为朋友:据CBS News消息, Gemini联合创始人Tyler Winklevoss、Cameron Winklevoss在最近接受采访时谈到了其“宿敌”Facebook将宣布推出自己的加密货币。Winklevoss兄弟表示他们并不担心。Cameron说:“有这么大的蛋糕要做,在这一点上,我们需要成为朋友。”据此前消息,Winklevoss兄弟曾指责并起诉他们的前校友、Facebook创始人扎克伯格,称后者窃取了他们的创意。三者此后曾达成一项和解协议,Winklevoss兄弟将获得6500万美元的赔偿。但两人此后也曾表示,由于Facebook未曾披露内在价值,他们应当再获得一部分Facebook股权。[2019/6/17]
问:Libra中很少提智能合约,与之相对应的概念似乎是「模块」,智能合约与模块有什么不同?
吴为龙:智能合约是单账户生成无复用,模块则可复用。这么做带来的好处就是可以通过设计模块来组成比较复杂的系统,这对以太坊智能合约功能基础的现状会有较大的改善。
也就是说,未来模块化的合约设计,通过调用合约可以很容易的将其中的资源合理地迁移,并且回调的时候也会减少漏洞的产生,从而可以设计出复杂的条件结算方式。
这么做带来的问题就是需要重新学习相关语言,从使用到上手的时间成本是很高的。
声音 | Morgan Creek创始人:相信Facebook的加密货币项目一旦启动就会“下放”项目所有权:Morgan Creek创始人Anthony Pompliano在推特回答网友问题时提及了他对Facebook加密货币的看法。Anthony表示:我是少数几个一直认为Facebook的加密货币项目一旦启动就会“下放”项目所有权的人之一。它不会像BTC那样真正去中心化,但它将由100多个人员/组织来管理。拥有一个Libra节点可能会带来金钱收益,但不会有风险回报。[2019/6/14]
问:Libra似乎是把数字资产定义为「资源」,而在其他区块链系统中数字资产被定义为「value」。你怎么看Libra做的这种改变?
吴为龙:Libra中的资源更像是在比特币钱包中的钱,而模块就是将资源指定到某个特定的部分。
做个比较也许更好理解:以太坊是使用专用函数来通过账户生成智能合约的,同样的账户,在nonce固定的情况下生成的是固定的合约地址;而在Libra里面,通过类似的专用函数可以将模块和资源进行绑定,而不用拘泥于单账户的合约生成。
这么做带来的好处是系统的灵活度更高。在Libra中也可以有开发者专门来做模块,类似于模块提供相关的function。
问:有观点认为「value」是可拷贝的,而「资源」满足线性逻辑,它所代表的数字资产不能被复制和凭空消失,因而可以减少记错账的情况。你怎么看这一问题?
答:Value是可以拷贝,但是拷贝的动作是需要你提出交易,也是需要通过共识确认的。资源是不能凭空消失,但定义为资源与否只是表示这个数字资产本身是所有人都有可能使用的,不是只属于某个特定的账户,它是被持有者放上来,然后在Libra的人都用模块来使用这些资源。
问:Libra注重安全,从技术白皮书看,它主要做了哪些工作来保证安全?
吴为龙:「记录每一次的状态,放进状态列表,同时将事件放进事件列表」。这种设计下,由于每次的状态都放进了状态列表,相关产生的事件放在事件列表,就保证了每次状态改变的原因和结果都是可追溯的。
「账本状态直接对具有实际价值的数字资产进行编码。事务执行必须确保在未经授权的情况下,不得复制、丢失或转让Libra币等资产」。这种设计下,账本状态在初始值进入的时候即是需要有价值的,内部不允许任何情况的无验证操作。
「事务只能生成事件,不能读取事件」。这种设计允许事务执行仅为当前状态的函数,而不是历史信息,也就是说时间生成后就是时间戳,攻击者无法通过回到过去的时间重新生成改变的事务,从而造成状态改变带来的资产损失。
「事务执行必须具有确定性和密封性」。这意味着事务执行的输出是完全可预测的,并且仅基于事务和当前账本状态中包含的信息,并不具有外部效应。将虚拟机维持在沙盒中,不通过外部信息来进行内部判断,好处就是维持一个稳定的可以验证的结果,防止一些外部状态影响。假设如果有网络交互牵扯进来,比如添加汇率这个因素,那么10分钟前程序员看到的汇率很有可能和验证的时候汇率不同,因此改变了结果。
总体而言,Libra通过上述状态列表、事务事件等的设计来防止黑客利用「状态」进行攻击。
问:Libra中的新语言Move的关键特点是能够定义「资源」类型,我们可以认为这是在说Move语言能够支持发币,也就是说Libra更大的野心是建立一个密码货币和数字资产的平台,而不仅仅是支持Libra币吗?
吴为龙:Move支持发币。应该说它的野心是做一个模块完备的结算平台,未来以支持Libra为主。由于资源会越用越少,所以在不同的模块下,应该会有不同的资源收费方式。
焦点三:Libra带来哪些疑问
问:Libra采用拜占庭容错共识,这是一种适用于联盟链的共识;但Libra计划以后转为PoS共识,你认为这种转换会有问题吗?
吴为龙:有问题。最大的问题就在于PoS是链式最终一致的共识,BFT是通过大量通信做的一致性共识,这两种共识对于节点的定位不同。
PoS节点主要是抵押出块,对机器要求一般,只需要签完名等待被随机就好;BFT节点需要一直保持通信来实现共识一致性,对网络带宽的需求会高,比如Libra的10秒确认。从BFT到PoS的转换,是需要设计PoS的时候做一些调整的。
另一个问题就是PoS本身有一些问题需要克服,比如说纯PoS的长距离攻击。但因为BFT共识侧重在如何通过Leader进行通信的步骤上,所以带来的和转换有关的问题就是,LibraBFT的经验或者工程改动如何迁移到PoS的设计上。
问:Libra现在是联盟链,计划以后转为公链,联盟链与公链不同的特点会给转换带来什么问题吗?
吴为龙:联盟链的节点需要拥有多级的许可,本地可以直接跑Docker,不用担心分布式资源的问题;公链的准入门槛就是只要能按照出块的共识来做就可以,分布式资源有限,需要设计对应的虚拟机。
但Libra的节点权利并不是多层级的,所以Libra未来的转换还是一个以共识变化为主的改动。
问:转为PoS时,会不会存在新的验证者需要被原先的验证者批准才能进入的情况,从而无法实现「无需许可的区块链」的愿景?
吴为龙:那要看Libra如何设计了。它可以设计成需要原先的验证者批准才能进入,也可以设计为用随机的方式挑选候选者。
问:Libra提到许多支付事务将在链下进行,你认为这种链下交易是用户主动选择还是默认状态?这会不会带来中心化以及安全问题?
吴为龙:这个链下应该是用户主动选择,就与即便闪电网络存在,还是会有很多人使用比特币转账或者通过交易所交易一样。说不定会有lightningnetwork版本的Libra,毕竟Libra需要10秒才能确认。
中心化问题一直存在,安全问题完全取决于使用者是否信任这个第三方。
问:全节点的数量对于公链有重要的意义,但在Libra中,全节点是否还有重要意义?
吴为龙:全节点在这里只是一个账本备份。
问:Libra中私钥在用户手中吗?
吴为龙:LIbra的私钥在用户手中。Libra是用户先在本地生成公私钥,再通过Libra提供的一个创建账户的事务,并在完成链上的共识后,在Libra中生成相关的账号。在逻辑上,LIbra是可以做到隐私的,但这是每一个用户都会生成自己的公私钥的情况下。如果有一个第三方「方便」的工具帮你生成这个账号,那么数据就会在他人手里。
以上即是关于Libra区块链的问题与回答,希望能帮助你更加了解Libra区块链,进而更懂得Libra币。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。