Facebook即将推出的加密货币Libra币并不是运行在Facebook系统上,它将运行于Libra区块链。Libra将是一种稳定币,它的诸多属性,很大程度上会与Libra区块链的属性相关。
不同于一般的区块链系统,Libra既没有区块也没有链,那么它还能被认为是区块链吗?Libra从代码角度,改变了对数字资产和智能合约的设定,它为什么要这样去做?Libra路线图显示它将从联盟链转为公链,这是一件容易达成的事情吗?
带着这些疑问,我们请链闻特约撰稿人李画与分布式存储项目Genaro联合创始人、趣派科技首席技术官吴为龙进行了一个对谈。年轻的吴为龙是第一批区块链开发者和经验丰富的技术极客,实战经验涉及区块链虚拟机、P2P存储、共识算法等诸多底层技术。
这个对谈从三大焦点展开,包括了17个最值得关注的关于Libra的技术问题。了解Libra的技术特点和未来发展方向,可以从这里开始。
Q:李画,链闻特约撰稿人
A:吴为龙,分布式存储项目Genaro联合创始人、趣派科技首席技术官
焦点一:Libra是区块链吗?
问:Libra既没有区块也没有链,我们能称之为区块链项目吗?
吴为龙:Libra是一个分布式账本项目,广义上讲区块链技术也称为分布式账本技术,所以可以认为Libra是区块链项目。这个定义在德勤2016年的DLT报告中就已经被提出来了。
Facebook前高管:人们或会选择用比特币解决通胀危机:4月8日消息,Facebook前高管、Social Capital创始人Chamath Palihapitiya近日表示,比特币能否成功,将取决于现有金融体系的架构师们是否会沿着当前的堕落道路继续走下去。同时,Palihapitiya认为比特币之所以能上涨至100倍以上,是因为公众对占主导地位的金融机构、货币及大宗商品的信心不断下降。Palihapitiya也强调他对比特币价格的预测更多是长期性的,同时他表示,到2030年,人们有可能真找不到摆脱通胀危机的方法。从本质上说,要想遏制通货膨胀,唯一的办法就是建立某种形式的金本位,但是政府和中央银行之间几乎不可能做到这一点。他们永远不会在一种工具上达成一致,也永远不会在汇率上达成一致。但在这之后,人们可能会决定用比特币来达成这件事。(Cointelegraph)[2020/4/8]
问:Libra似乎是用Merkle树这一数据结构代替了链式数据结构?
吴为龙:Libra用Merkle维系着一个很大的树形结构数据库,Merkle树中包含的可以认为是单一区块中包含的状态和交易;链的部分在其中则是通过状态列表和事件列表来表达的。
相当于说Libra是将整体区块链拆成了三个共同维护的树,一个记录交易,一个记录状态,一个记录事件。如果非要用区块的概念,可以把Libra看作是有几个巨大的区块,一直在往区块里写入新的经过验证的数据。
动态 | 媒体:Facebook聘请参议院银行委员会主席前助手推动国会批准Libra:Facebook聘请Mason Street Consulting的Susan Zook加入其游说团队中,该团队游说国会立法者批准其数字货币Libra。据悉,Susan Zook是参议院银行委员会主席R-Idaho的前助手,之后她将专注于游说参议院共和党人。迄今为止,Facebook在华盛顿游说上已经花费了超过750万美元,并且聘请了超过12家外部游说公司。(politico)[2019/8/6]
这么做的带来的好处是在账本维护中,Libra不需要一直生成新的区块:有交易时做相应的数据库更改,没交易时就保持现状,甚至可以通过做Merkle树的剪枝来减少账户本地备份的数据量。
但也会带来问题,它会让节点收入少了最大的那一部分,也就是出块收益。在比特币和以太坊中,相较于交易费,出块收益是很大的一部分。至于这么做带来的其他的问题则需要看到实际的运行状况才能知道。
问:不再是链式结构后,还能保证区块链的难以篡改性和可验证性吗?
吴为龙:当然可以保证。难以篡改是通过共识来决定的,Libra使用的LibraBFT本质上也是拜占庭型共识,保证了相关的确定性。树型结构只是用来保证查找的。
也可以验证。历史数据包括相关的状态和事件都是在通过了相关的共识达成一致后,被详细地记录在账本上的,任何计算机只要同步了账本备份都可以进行验证,只需要在libra上直接下载即可。
动态 | 大多数德国人对Facebook的Libra持怀疑态度,只有12%的人欢迎它:德国金融协会BürgerbewegungFinanzwende于7月23日发布的一项调查显示,约有71%的德国公民对Facebook的Libra稳定币持怀疑态度,而只有12%的人对此表示欢迎。该调查还显示,在接受调查的2093名德国成年人中,几乎每一位成员都对此事有意见,只有17%的人表示他们不确定如何看待Libra.52%的受访者还指出,如今的Facebook对社会的影响已经存在问题,超过四分之一(26%)的受访者表示,他们认为起进一步发展将增加其负面影响。[2019/7/25]
问:Libra的这种数据结构适合于其他的公链项目吗?
吴为龙:不适合。最重要的原因是公链是需要激励节点的,出块收益是激励中重要的组成部分,而libra是没有出块收入的,只有大型机构才能做此类实验。
问:这一问题会制约Libra从联盟链转为公链吗,也就是说Libra的账本结构决定了它是没有出块收益的,而如果没有出块收益,怎么做PoS?
吴为龙:当然会制约。那这个问题就只能交给它未来的设计了。
问:Libra自定义为数据库,这种定义恰当吗?在我的理解中,数据库是一种不考虑拜占庭问题的系统。
吴为龙:Libra完全的就是数据库。
声音 | 币安实验室合伙人:Facebook的Libra项目极大提高了公众的加密意识:据cointelegraph消息,币安实验室(Binance Labs)合伙人Teck Chei最近表示,他认为Facebook的Libra项目极大提高了公众的加密意识。针对外界对于Facebook使用加密技术向集中化方向发展的担忧,Chei表示他们是天秤座计划的100位创始人之一,会通过与Facebook合作共同推动这个行业的发展。[2019/6/30]
本地数据库是不需要考虑拜占庭问题的,但分布式数据库很早就开始解决这些问题了,比如RAFT就是保证分布式数据库强一致的,而RAFT就是简化版的拜占庭解决方案。Libra是通过LibraBFT共识来保障更好的分布式数据库系统。
焦点二:Libra区块链技术的几处重要不同
问:Libra中很少提智能合约,与之相对应的概念似乎是「模块」,智能合约与模块有什么不同?
吴为龙:智能合约是单账户生成无复用,模块则可复用。这么做带来的好处就是可以通过设计模块来组成比较复杂的系统,这对以太坊智能合约功能基础的现状会有较大的改善。
也就是说,未来模块化的合约设计,通过调用合约可以很容易的将其中的资源合理地迁移,并且回调的时候也会减少漏洞的产生,从而可以设计出复杂的条件结算方式。
大批原创作者正从YouTube与Facebook转向基于区块链的媒体应用:据彭博社报道,大批原创作者正从YouTube与Facebook转向基于区块链的媒体应用。主要原因有三点:1、区块链媒体应用审查制度允许用户直接用数字货币向作品原创者付费;2、区块链媒体应用未禁止数字货币广告;3、主流媒体应用存在用户隐私问题。[2018/4/10]
这么做带来的问题就是需要重新学习相关语言,从使用到上手的时间成本是很高的。
问: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币。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。