首页 快讯 BOS 侧链的推出可缓解 EOS 主网的问题

BOS 侧链的推出可缓解 EOS 主网的问题

来源: IMEOS
2019/01/11 16:58
BOS 侧链的推出可缓解目前 EOS 主网存在的许多问题: 1. 对 DApp 开发者有专门的激励和增发模型缓解了 EOS 主网 DApp 启动的高门槛问题; 2. 将共识算法由 Pipelined BFT(流线性 BFT 算法)改成 Practical BFT(实用BFT算法),缓解了 EOS 主网 LIB(最后不可逆区块)过久的问题,将一笔交易的可信时间从分钟级缩短成秒级; 3. 通过限额转账机制以及启用 block_extension 的随机算法保障用户和 DApp 的安全性,缓解了 EOS 主网多次被黑的风险; 4. 通过红包投放、空投、CPU资源最低保障,化解了 EOS 主网用户使用门槛过高的问题。

扫一扫,关注区块链在线

区块链数字货币新闻、区块链项目信息、区块链技术分享就在 区块链在线

热门话题 更多
  • 重放攻击 ( Replay attack)

    重放(Replay)也称为重播、回放,即某个消息或数据原封不动的重新发送给接收方一次,而接收方会接受这消息或数据,当这个动作是成立时,表示接收方无法有效辨识该数据是已经收过,这将会是重放漏洞。 重放攻击主要是在有区块链发生分叉之后,因为分叉后之两方都共同还保有分叉之前的数据,因此分叉之后在两边都可以做一样的交易。例如有一间蛋糕店A但是因为理念不同而分家成蛋糕店B和蛋糕店C,分家之后两家共同拥有之前客户资料与交易信息且用的系统还是一样的包含验证付款信息系统,接着各自经营客户与交易并不会互相交换信息。 现在Alice拿着付款信息给蛋糕店B的服务员后,蛋糕店C的服务员用电脑确认信息后将蛋糕给Alice。拿到之后Alice又拿相同付款信息给蛋糕店C的服务员后,蛋糕店C的服务员用电脑确认信息后又将蛋糕给Alice,因此Alice得到两个蛋糕,如果蛋糕店B和蛋糕店C能够有确认付款信息,就不会发生重放漏洞,没有漏洞就没有被攻击的可能,也就不会损失蛋糕了。 而在区块链上就是分叉之后,就可以做重放攻击,以比特币(BTC)和比特币现金(BCH)为例,BCH是从BTC中分叉出来的,但是两者在所有基本的功能上是一样的,只有BCH比BTC增大了区块大小。这个时候Alice从B处购买了10BTC,Alice把这交易信息交给BTC的矿工,获取10BTC,但是Alice复制了交易信息交给了BCH的矿工,这样下矿工在验证签名之后放在BTC又放到BCH里,最后Alice就可以获得到10BTC也拥有10BCH。 最佳案子:以太坊重放攻击 重放攻击最佳的案例就是以太坊硬分叉的时候。以太坊硬分叉出现了ETH和ETC两条链,两条链上的交易数据结构是完全一样的,因此一笔交易在ETH上是有效的,那它在ETC上同样会被接受,反之亦然。因为当时所有人都认为ETC将不会再存在,所以分叉前没人意识到两条链会产生相互重放问题。后来还有许多矿工继续在维持ETC链时,大家发现在ETH链上的交易拿到ETC链继续重放仍然是有效的。 以太坊分叉时几乎所有交易所也都没发现到这个问题,这时候只要有人从交易所提取ETH币,就有可能得到同等数量的ETC币。许多人利用这个漏洞,不断在交易所充币和提币(ETH),从而获取額外的ETC。这就是云币、BTC-e等交易所发布说自己被重放攻击了,被骗取了几乎所有ETC。“重放攻击”也就此闻名于币圈。
    2019-03-20 21:55 933
  • 了解可编程价值网络中的货币溢价

    我最近一直在思考可编程价值网络的状态,特别是以太坊。从远处看,似乎有许多“竞争者”竞相成为“赢者通吃”的智能合约领导者; 在公共端,我们有以太坊、EOS、Tezos、Zilliqa、Cardano等,更不用说新推出的Cosmos了,而在私有端,我们有DFINITY、Coda、Near、Polkadot、Oasis、Kadena、Thunder等。这篇文章的目的不是来分析每一个网络对其他价值存在的可能性,而是将这种可能性分配给一个特定的网络“获胜”者(我甚至不认为会有一个“胜利者”)。那就是会有一个必要的组件来实现大规模成功的可编程值:货币溢价 这里的货币溢价仅仅是指资产信息不敏感性和经受时间考验的能力; 对于要在交易中使用的资产,用户不必担心它的未来价值,而必须适应它的经济史。审查阻力、安全、可预测(和稳定)的货币政策以及其他合理和可持续的价值主张,也是实现社会可扩展性的关键。 但可扩展性究竟是如何工作的呢?我们知道,货币资产必须有大量实物资本的支持,才能使其中的价值主张具有合理性和可持续性。但有形资本并非凭空出现;还需要社会资本。 社会资本,或者一些人所说的文化资本,指的是在特定社会中生活和工作的人们之间的关系网。它包括人际关系、共同认同感、共同理解、共同规范、共同价值观、信任、合作和互惠。 那么,物质资本和社会资本之间的关系是什么呢? 是物质资本主导社会资本,还是社会资本主导物质资本?还是两者之间的关系是相辅相成的? 如果货币资产背后没有实质性的实物资本,那么一个由人组成的社会可能不愿意支持它。然而,正如我们过去所了解到的,尤其是在比特币的情况下,随着时间的推移,能够吸引实物资本支持者加密货币寥寥无几,但它可以作为早期想法的起步。这表明社会资本最初会吸引物质资本; 然而,为了继续扩大规模,物质资本需要随着时间推移吸引更多的社会资本,而社会资本又需要继续吸引更多的物质资本。这表明社会资本和物质资本之间的关系,特别是在加密网络的情况下,是循环的。相信这个故事的人越多,阅读这个故事的人就越多;阅读这个故事的人越多,这个故事被讲述的频率就越高,这样的循环就会不断重复。 回想一下,区块链创造了财务激励机制,在这种机制下,社区被催化联合起来提供分散的数字产品或服务,然后为该数字产品、服务的贡献、网络上的特定数字产品或服务支付报酬。一般来说,加密货币网络涉及三个主要角色:开发人员(建设者)、工人(供应方)和投资者(需求方)。Placeholder的观点与此类似,即矿工替换工人,用户替换开发人员。其中一类网络参与者并不一定比其他参与者更重要。相反,这些角色的正确组合,以及它们朝着共同目标的行为的一致协调,对于网络创建和捕获价值是必要的,如下所示。 投资者将实物资本注入到分散式的加密货币网络中,期望这些投资资本在未来获得回报。有点类似,工作人员通过以非拜占庭式的方式提供各种形式的供应端服务来引导分散式的加密货币网络,并期望通过网络奖励(即,收益)用于他们投入的劳动力。因此,投资者和员工都有一致的动机,他们希望将自己的有形资本和劳动力投入到能够提供诱人货币化效益的网络中。那么,开发人员呢? 开发人员是加密货币的命脉,也是社会资本发展的需要。没有开发人员,网络将无法维护,其未来的安全性也会受到质疑。应该澄清的是,开发人员并不直接保护他们所构建的加密货币网络;这是由交易验证器(上面称为workers)完成的。每个网络都有不同的安全机制,其中一些可能比其他网络更安全,但这种分析针对的是不同的岗位。重点是,开发人员需要维护、升级和帮助管理他们在社交上支持的加密货币网络。适当的财政激励是强大的,但社会激励和连通性可以说同样强大。 如果开发人员因为某种特定的原因从给定的加密货币网络迁移,投资者和供应商将很难为他们的有形资本和劳动力分配价值。他们的物质资本需要社会资本来创造价值,他们所认可的经济设计促进了价值的获取。因此,网络赚取货币溢价的能力在很大程度上取决于其开发者基础的实力。如果开发人员放弃一个网络以构建在另一个,是否由于改善UI / UX,计算效率或只是一个更好的感知社区和归属感, 最初的网络货币溢价不应随着时间的推移保持其价值。在这种情况下,投资者和供应商所投机的货币溢价只不过是一种幻觉。 那么,这与以太坊和其他可编程价值竞争者有什么关系呢? 关于以太坊的1.x和2.0路线图、执行计划和时间安排一直存在很多争议。尽管DeFi/Open Finance爱好者们大声疾呼,超过2%的ETH(以太币)供应被锁在了MakerDAO智能联系人中,而ETH正被用于其他DeFi/Open Finance应用(Dharma,Uniswap等),这表明了一种看好趋势,即ETH正在成为全球价值和数字储备资产存储,但重要的是要记住ERC2代币是可移植的,如果需要的话,可以转移到其他网络。因此,眼睛应该停留在开发人员的活动上。 根据Electric Capital 2019年3月的开发报告,在过去一年里,以太坊表现出了极其强劲和持续的积极开发商增长,其中包括比特币在内的最有价值的公共项目中核心和总开发人员数量最多。因此,尽管以太坊网络的发展路线不稳定、不确定,而且执行风险可能很高,但它的开发人员活动仍在不断增加,这表明它拥有非常大的社会资本基础。 如果这些趋势保持不变,随着时间的推移和吸引越来越多的实物资本,以太坊可能会获得可持续的(合理的)货币溢价。然而,这并不是说以太坊没有太多的挑战。ETH 2.0路线图所固有的高执行风险是不容忽视,需要一个可预测稳定的货币政策加上审查制度阻力,这是吸引额外实物资本的必要条件。但从该网络目前的社会资本状况来看,这些趋势似乎指向了好的方向。 我们也应该提醒自己,私有可编程价值网络,如DFINITY, Near, Polkadot等尚未推出。如果这些项目是“更好的技术”,它们会导致开发人员离开以太坊吗?那些其他可编程价值网络也能产生同等或更大的货币溢价吗?从今天的角度来看,未来发生的事情的可能性可能看起来极不可能,但这种可能性可能具有非零概率。 另一件需要记住的事情是,我们不应该忽视以太坊相对于即将推出可编程网络具有巨大的监管优势,因为它不是一种安全性。尽管如此,当这些项目进入主流网络,并完全投入运行时,应该继续关注以太坊开发人员的活动;到目前为止,这些开发人员可能还没有太多有吸引力的选项来选择在哪里构建,因为在一定程度上限制了(实时的和可操作的)主流网络的竞争。真正的考验可能尚未到来。然而,如前所述,以太坊社区的人际关系、共同认同感、共同理解、共同规范、共同价值观、信任、合作和互惠都是“粘性”因素,可能会对迁移的可能性产生重大摩擦。换句话说,这个故事已经开始了。
    2019-03-20 19:14 1334
  • Layer 2 概述:公链不需要追求性能

    经历了两年时间,从无到有出现了数十个、上百个不同设计的 Layer 2 项目,而大部分对 Layer 2 的认识仅仅就是“扩容方案”那么可有可无。 为什么公链就是性能那么低?为什么我们觉得分层设计才是未来加密经济的发展方向?到底什么才是 Layer 2 ,现有的方案是什么样的?这些问题,都是我们需要去理解的。希望这篇文章能够帮助你更好地理解 Layer 2。 2016 年 1 月,距离比特币创世区块诞生 7 年之后,一篇名为《The Bitcoin Lightning Network:Scalable Off-Chain Instant Payment》的白皮书发布,这是第二层扩容方案(Layer 2 Scaling Solutions,简称 Layer 2 )的开端;到 2018 年的年末,光是技术类型就已经有状态通道、Plasma、Truebit 等各类 Layer 2 方案,出现了 Celer Network、AlphaWallet、Raiden Network、Alacris 等等一众新星,在时间和资源都极度稀缺的情况下根据自己发现的需求,针对不同的场景给出自己的解决方案,准备迎接未来加密经济应用的爆发。 公链,不能治百病 区块链带来了强大的去中心化应用生态,无数人对它寄以厚望,希望区块链能够打破金融孤岛。2017 年上百个公链项目展开角逐,但到了 2019 年,大规模应用落地仍旧困难:区块链发展受到 Vitalik 提出的不可能三角的瓶颈性限制————也就是区块链系统设计无法同时兼顾可扩展性、去中心化和安全性,三者只取其二。 这个瓶颈是否属实?是否公链的性能真的那么低?以太坊、比特币确实可以将 TPS 做的很大,让每个节点处理更多的交易。甚至有人将它做简单的参数修改,就能作为一个吞吐量非常高的联盟链方案。但这个方案真的非常天真:TPS 提高带来的问题就是,由于带宽的限制,一般的节点甚至连同步数据都难以做到,更别说参与出块,随后小节点就被淘汰。这样损失的是去中心化:公链作为开放的协议,因为性能的需求实际上为大部分节点设置了不可进入的门槛,那如何做到开放? 去中心化只是一个手段,我们需要的实际上是公共可验证:一个没有足够多、足够分散的验证者(也就是节点)的区块链网络是难以构造信任的————这个网络可以少数人轻易被控制,我如何保证我的资产安全? 那么是否能够在保有去中心化和安全性的前提下,去追求更高数量级的吞吐量? 有人尝试新的区块链协议去打破不可能三角:一些团队开始研究 DAG,来取代「区块+链」的数据结构来做到上万甚至更高的 TPS。但是基于看似无序实则有序的图做交易顺序的判断是非常难,交易顺序难判断,如何避免双花?因此很多 DAG 项目引入相对中心化的方案,比如 IOTA 采用一个中心化的 Check Point,ByteBall 采用见证人机制,本质上都不是共识,而是中心化的方式————而这显然不能解决问题。 (如图Byteball 的 DAG 数据结构,在 Byteball 中交易会根据交易距离创世块的距离,再根据一种见证等级进行排序) 是否能够用分片技术,将网络分为不同的片区,处理各自的交易,来将性能十倍、百倍的提升?但实际上,分片技术在计算层面、存储层面、网络层面、共识层面都有问题需要解决,并且不同层面的分片问题联系起来又会有新的问题出现。这些问题解决之后,还有跨片区交易问题,如著名的「Train & Hotel Problem」。 「主要是跨 shard 交易比较复杂」,原来在以太坊 Research 团队研究 Sharding ,现在是 Nervos 首席架构师的 Jan 有一次说到。 这是一个很让人失望的结果,但我们必须知道,一切事物都有自己的边界,我们应该理解,公链不应该做所有的事情,它应该做它该做的事情: 它应是以最高效率达成全球共识的工具,能够以最低的成本来构建信任;但我们不得不承认的是,它可能是最贵、最低效的数据库。 作为共识的工具、信任的引擎,它不该放弃去中心化和安全性对可扩展性做妥协。那如此低的 TPS,该如何利用? 我们是否能够将大量的工作放到链下去解决,仅仅将最重要的数据提交到区块链上,让所有人都能够验证这些工作都是准确可靠的? 社会的发展带来的是更精细的分工,区块链的技术发展也如是——- 分层,本质上就是一种分工。公链不能做所有的事情,那么就让它来做它擅长的东西。由此,也就是第二层扩容方案的思路,我们称为“ Layer 2”,是构建在底层区块链(Layer 1)之上的基础架构,为丰富的区块链应用提供更好的可扩展性、隐私性和可用性。 Layer 1 来保证安全和去中心化,绝对可靠、可信;它能做到全球共识,并作为「加密法院」,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到 Layer 2 上。而 Layer 2 追求极致的性能,它只能做到局部共识,但是能够满足各类商业场景的需求。 Nervos 从一开始就决定做一个支持 Layer 2 的 Layer 1,我们着眼于安全和去中心化,为上层生态传递信任。今天我们能够说,我们预测的、百花齐放的 Layer 2 已经到来。 Why Layer 2 ? 试图用一层区块链方案解决所有问题的人,往往没有思考过一个很重要的问题:公链虽能够达成全球共识,公共可验证,但是否所有的信息都需要让所有人验证、知道?我们之间的日常交易是否需要让全世界的人审核? 如果我不做违法的事情,当然不会介意,但是这显然没有必要。我们只需要将最关键的信息让所有人验证、获取保障就够了。而 Layer 2 恰好就能满足这样的需求:我们将大量工作放到链下(Off Chain),仅将最重要的内容提交 Layer 1 链上(On Chain)进行验证,并且 Layer 1 能够保证 Layer 2 的安全。 因此,我们提出最核心的两个观点: · 不是所有的东西都需要全球共识 · 公链就该做它应该做的事情,其他的事情完全可以链下完成 那什么样的方案能够被称为 Layer 2 ? · 首先,应用的主要工作都是在链下; · 其次,仅用 Layer 1 作为安全的锚点,保证链下环境的安全; · 最后,和 Layer 1 尽量保有同样的风险模型(很遗憾,跨链和侧链方案并不符合这一条,因为它们将资产在一条链上锁定在另一条链上释放,资产进入了另一个安全性完全不同的环境) 显然,这里 Layer 1 和 Layer 2 的安全等级是不一样的: Layer 1 的安全性是由去中心化(Decentralized)保证,这意味一组无中心的节点取代了可信第三方的角色。在这里:1.被接受的交易就会按照规定执行;2.交易次序是确定的;3.双花是禁止的。 但是 Layer 2 的安全等级远小于此,它的安全性需要通过 Layer 1 来保证,因此只需要达到「去信任」(Trustless):不保证交易在 Layer 2 上一定能够执行,但是能够保证若交易不被执行能够有一种方式让资产安全地从 Layer 2 撤回。 在下面的内容里,我们就为大家一一解释不同的 Layer 2 方案:状态通道、Plasma 和链下计算。 状态通道(State Channel) 我们常会面临的一个场景是,我们会和某一个人或者某几个人反复交互。比如家门口的咖啡厅,每天都去喝一杯咖啡并且用比特币支付,但是每次交易手续费就高的可怕,于是可以用支付通道技术,双方客户端之间建立一条通道,之后交易都在通道内部进行,最后到比特币区块链上做结算,如此只有在通道关闭和打开的时候需要手续费,这是第一个状态通道技术: Lightning Network 最初设计的场景。 本质上,状态通道是一个智能合约机制:区块链上的智能合约就像一个机器人,双方在通道中运行应用,最后将结果提交到机器人手里它会按照规则进行结算。 在状态通道中运行应用,会有如下的步骤: 1. 参与状态通道的各方在区块链上部署智能合约,这个合约包含一个多重签名合约(仅在有各个参与方签名的情况下才能解锁),并存入一定的资金,一部分作为初始状态,一部分作为资产抵押防止作恶,通道开启。之后所有的行为都会在链下执行直到通道关闭。 2. 应用会在各方客户端本地运行,每运行一步,双方在本地构建交易并签名,通过点对点网络或者简单的八卦协议的方式将交易发送给其他参与方并得到各方签名形成新的状态。新的状态更新包含:各方的最新状态(一般是状态的 Hash),各方的签名以及该状态的版本序号。同时各方保存运行过程中的每一次状态和签名。 3. 应用结束,一方提交最终状态到区块链上的智能合约,并有一段时间的争议期。各方认为没有问题,争议期之后状态确认,状态通道关闭并根据最终状态在区块链上进行资产的结算。 原本在区块链中需要确认的「每一步」,变为只需要确认「结果」。 需要注意的是,状态通道中并没有一个第三方运行节点,接受交易、打包出块来提供服务。应用在本地执行,状态更新通过点对点网络传播,不需要共识机制,非常高效。 于是状态通道会有非常多的优势,首先就是即时确定性(Instant finality),只要各方签名通过状态更新,状态就被“确认”,而不需要如区块链上等待区块确认;其次,状态更新在链下,点对点通信能够保证隐私,仅最终状态会提交到区块链上;最后是低手续费,状态通道是事务性的,只在通道打开和关闭的时候需要区块链上结算清算的手续费,而其他时间,不管双方在通道内如何更新都是免费的。 那么状态通道是否安全呢?状态通道的安全性是由区块链上的智能合约来保证的。很可能出现的两类攻击模型: 1. 状态通道中有一个非常乐观的前提,那就是用户保持在线,确保状态的更新。若用户掉线,参与通道的另一方能够通过提交旧的、对自己有利的状态到区块链上结算进行攻击。争议期的设计就是为了防止这个情况发生:在争议期内,用户可以提交最新的状态。由于每一次状态更新都有各方签名并带有版本序号,因此只要提交最新版本序号的状态到区块链上就能够证明提交旧状态的作恶,并将惩罚作恶者。 如果用户在争议期无法上线呢?不同项目给出了不同方案,如 Lightning Network 中的 Watch Tower 和 PISA 中的 Custodians,这些角色有经济激励来揭发提交错误状态的攻击者;Celer Network 的状态守护者网络帮助用户在下线的时候提交新的状态。 2. 若出现一方不合作的情况,比如他输了游戏,不对自己认输的状态签名。这时另一方能够将状态的证明提交到区块链上,区块链将整个过程重新运行,得到结果。如果的确出现作恶的情况,作恶的一方会受到惩罚并承担应用在区块链上运行的成本。 此外在状态通道中还有很多的概念,如支付通道、广义状态通道等。 支付通道是最简单的状态通道,它的状态就是数字————在这个时刻,各方手里有多少 token。而状态通道中的状态更加丰富,可以是如 Celer Network 的五子棋游戏中双方下棋的落子情况,也可以是海战游戏中各方战舰的受损情况…… 而广义状态通道是另一个概念。一般情况下,一个状态通道只能处理一类应用,因为在区块链上的智能合约只能处理某一类应用的执行和验证。在广义状态通道中制定了一系列的“标准”(如图其实是合约的功能 functions),在该标准下的应用能够在由同一个状态通道合约执行,由此广义状态通道能够允许用户在不关闭通道的情况下运行多种应用。举例来说,你可以在广义状态通道中先运行五子棋游戏,之后进行支付,然后打一轮扑克牌。其中运行的应用的状态更新都基于同一个标准,在区块链上的合约都能够处理。 (图中 V1、V2、V3 分别是不同的通道,但是在链上只需一个合约) 状态通道技术给了我们一个非常美好的愿景,它牺牲流动性(在合约中抵押资产)来换取无手续费和即时确定性,但是它仅仅适用于计算量很小、并且各方需要来回交互的应用,并且由于状态通道每一步都需要用户一致同意,就需要在通道开启的时候明确各位参与者,并且中途难以加入/退出,这让状态通道仅仅能够成为链下交易的扩容。 在采访 IC 3成员、伦敦皇家学院副教授 Patrick McCorry 的时候,我问他: 你觉得状态通道的第一个杀手级应用会出现在哪里? “I would say Payment.“ “I don’t really see state channels as a scaling solution per se, but as a technique to run existing smart contracts/apps for free. They won’t work for a whole host of applications, but they’ll truly excel for where they do work.” 我觉得是支付。我并不认为状态通道本质上是一个扩容方案,它仅仅是能够免费运行现有合约、应用的技术而已。它并不能为所有应用起作用,但是对于它能做的方面它会非常出色。 Plasma 提到 Plasma 首先要提到侧链的概念。侧链(Sidechain)是非常有效的扩容方案,但是侧链的问题在于,我们将资产映射到侧链之后,在侧链上运行交易我们需要信任侧链的验证者(Validator 也就是出块节点)————一旦侧链上节点作恶,我们将没有办法保护资产的安全性。因此严格来说,侧链并不是一种 Layer 2 方案,因为它的安全性并不是由 Layer 1 保障的。 那么能否将侧链 “Layer 2 化”呢? 回到我们之前定义的 Layer 2 的安全等级:去信任(Trustless)————我们不能保证交易在 Layer 2 上一定能够执行,但是能够保证若交易不被执行能够有一种方式让资产安全地从 Layer 2 撤回。 侧链 + 资产能够安全撤回的机制 = Plasma 2017 年 8 月发布的 Plasma 白皮书,由 Vitalik 和 Lightning Network 的 Joseph Poon 发表。 Plasma 是一系列在根链(Root Chain,在 Plasma 最初设计中它是一个树状结构,因此将 Layer 1 称为根链比较形象)上运行的智能合约,并且区别于状态通道,Plasma Chain 中能够运行智能合约————如果说状态通道是对交易吞吐量的扩容,那么它是对计算能力的扩容。 在链下会有验证者运行一条 Plasma 链,用户可以将自己的资产锁定在根链的合约中映射到 Plasma 链上得到更好的用户体验。根链上的合约要求 Plasma 链将每一个区块的 Merkle Root 提交到根链上作为“欺诈证明”(Fraud Proof),只有提交证明的 Plasma 区块才是被确认的。所有 Plasma 上的用户能够用自己保存的 Merkle Proof 来验证这个 Merkle Root 保证子链运行的安全性,必要的时候可以通过向合约证明自己的资产来快速退出。Plasma 链能够发行自己的代币,以此激励这条链的验证者保证它的运行,一旦出现仲裁并被证明作恶,Plasma 链验证者在根链合约中的保证金会被扣除。 根链上的合约就像机器人:它要求 Plasma 提交每个区块的证明(Merkle Root 的形式),并且在用户提交自己的资产证明的时候能够运行起来帮助用户将资产从 Plasma 中撤回根链。 最初的 Plasma 设计是树状的、链中链的结构,在根链上建立合约运行开设 Plasma 链,在 Plasma 链之上还能通过智能合约的形式建立新的 Plasma 链,此时在根链上开设的 Plasma 链称为父链(Parent Blockchain),其上的 Plasma 链称为子链(Child Blockchain),能够有更好的性能但是安全性会更弱。Plasma 这样的设计非常像现实中的法院:如果说根链(也就是公链)是最高法院,那么 Parent Blockchain 就像是省级法院,Child Blockchain 是地方法院一样,来保障基于这条区块链开设的 Plasma 区块链的安全性。欺诈证明从子链向下递交最后到根链上。 (Plasma 的树状结构) 用户需要从 Plasma 撤回资产,提交相关证明到上一层(根链/父链)的合约中进行请求,之后会有一段时间的争议期,主要争议两个内容:1、是否该笔资产已经被花费或者撤回;2、是否该证明是来自最新的状态,而不是旧的状态。争议期之后,资产会根据 UTXO/account (具体关系到 Plasma 实现的时候资产的表达形式)的新旧,优先从旧的开始撤回。 这是最初版本的 Plasma 设计,链中链的树状结构是非常抽象的,并且实现非常复杂,于是很快 Vitalik 提出了 Minimal Viable Plasma,也就是 Plasma MVP,MVP 的设计初衷是用简单的机制设计来提供 Plasma 设计中的基本安全特性。因此在 Plasma MVP 的设计中并不是“链中链”的形式而是一位验证者运营一条链的形式,每次产生区块都是在数据库中加入一组数据,并且将 Merkle Root 提交到根链(提交之后 Plasma MVP 区块才是确认)。在 Plasma MVP 中资产用 UTXO 的形式表达,并且它不能运行智能合约,仅仅作为资产交易,并且 TPS 在数千左右(预计 3000-5000)。 在资产安全性方面,Plasma MVP 设计了如下的资产撤回方案。在 MVP 中每一个 UTXO 根据区块号、区块内交易号和交易内输出号都有一个优先级,越是旧的 UTXO(说明长时间没有人对这个 UTXO 进行操作)会优先退出。此时若有人能够在资产撤回的争议期证明这个 UTXO 在之后的交易中被改变,该次撤回会被证伪。 另一个设计是 Plasma Cash,在 Plasma Cash 中每一个 token 有自己对应的一个 id,就好像 Non-fungiabe token 一样,交易保存在稀疏默克尔树中,每一个叶子就是对应一个 token,每一个区块都是一“棵”树,若本区块中某个 token没有转移,那么用空值表示。由此,用户只需要追踪属于自己 token ,证明交易变得非常迅速;并且,作恶者需要一个个窃取 token,作恶成本高,更加安全。 可以看到,虽然一开始 Plasma 设计是为了以太坊计算能力的扩容,但是目前实现的方案仅仅涉及到资产的转移:仅仅是很简单的 UTXO(如 Plasma MVP) 或者 NFT(如 Plasma Cash),却并不能运行智能合约,不能如 Vitalik 最早想做的那样:为以太坊做计算能力的扩容。 这里确实是遇到了瓶颈性问题,主要在于:为什么资产从 Plasma 上退出那么难? 如果在 Plasma 上构建智能合约,如 ERC 20 的资产。实际上资产并不是在用户的账户里,token 的状态是存储在合约中的,通过指针的形式指向账户,用户才能在钱包里看到自己 ERC 20 的资产。每次 ERC 20 token 的转账实际上是调用相关合约改变合约里 token 存储的状态。 那在 Plasma 中,一个合约中包含所有用户的资产,这些资产是否能一起退出?谁有权利让所有人资产一起退出? 每个人都是能够修改合约的整体状态,那么如何保证撤回时的争议期其他人修改状态,然后提交新的状态证明驳回这次撤回? 并且,合约运行完全在 Plasma 上,主链如何确认结果是正确的?(在以太坊上,这里涉及到 EVM in EVM 的问题,在以太坊虚拟机上验证 Plasma 上的 EVM 状态非常困难),目前可能还没有很好的方案。 Plasma 和 State channel 的区别 状态通道(State Channel) 和 Plasma 的最大区别在于,状态通道中没有第三方验证者的角色,它的状态更新是基于各方达成一致共识的前提下的,而 Plasma 中则有验证者的角色。在状态通道中一旦各方同意签名状态就能立即确认,在区块链的基础设施中仅状态通道能够做到即时确定性。Plasma 中用户还是需要等待区块确认(验证者需要提交 Merkle Root 到根链)才能确保自己交易的安全性。 链下计算 交易能够在 Plasma 和状态通道中快速运作,但是还有一类问题困扰以太坊,那就是大量的计算。在以太坊中设置了 800 万 Gas Limit,并以以太币作为度量,就是对「计算」这个稀缺资源的限制,运行合约进行计算价格十分高昂并且有区块大小的限制。Plasma 中也存在一样的问题。 那能否将计算任务放到链下处理并且保证安全性? Truebit 和 TEE(Trust Execution Environment,可信执行环境)就是为解决链下计算问题出现的。 要注意的是,链下计算并不提高吞吐量,仅仅是将复杂任务放到链下处理,再将结果返回到链上。 Truebit 也是链上的智能合约,它的运行逻辑本质上是一种计算外包,用经济激励的形式来保证计算的安全。用户向服务提供者描述计算任务,并约定给予奖励,服务提供者将运算结果交给用户来提交到主链的合约作为结果。网络中会有很多挑战者,他们会检查服务提供者的结果,若发现问题,则做进一步对比,将不一致的代码行放到区块链上的智能合约上进行验证,验证成功能够有经济激励。这就是 Truebit 提出的“验证游戏”。 TEE 可信执行环境一般是硬件设备,可以处理交易的验证,如 ARM 生产的、处理指纹的 TrustZone,Intel 的 SGX。银行卡的芯片就是在 TEE 中运行。TEE 的硬件就是一种黑盒子,计算(一般是安全性要求比较高的计算)会在黑盒子里运行,然后返回结果,没人能够知道如何运行但是能够知道结果是正确的,它能够非常好的保护隐私。 但是它的安全性也非常明显,计算会引入不可预知的风险,并且安全性依赖于制造的厂商:如果一个黑盒子被攻破,那么所有同批次生产的都能够被攻破。 总结 在整个市场进入寒冬的 2018 年,我们反而看到了无数 Layer 2 团队开始出现,特别是状态通道,已经出现了数十个团队,针对不同场景、不同需求给出自己的解决方案。 而 Plasma 也出现不同的解决方案,在 Ethresearch 上我们能够看到一张 Plasma 的“世界版图”: 链下计算,除了 Truebit 以外,Oasis Labs、TEEX、Stark、Transmute 等一众团队展开研究。 的确,如果一个由 Layer 1 保证去中心化和安全的智能合约来设定规则,一个 32 字节的 Merkle Root 哈希值或是最终状态的提交就能保证资产的安全,为什么所有应用要直接放在操作昂贵、资源稀缺的公链上? Layer 1 保障安全性和去中心化,Layer 2 来满足性能的需求,Layer 1 为 Layer 2 传递信任,这是未来加密经济的基础设施。 从 2017 年的混乱,到 2018 下半年的冷清,分层设计的项目不断出现,Ethereum 也在周报中将 Layer 1 和 Layer 2 分开呈现,这几乎已经是被业界广泛认可的技术方向,终于,我们在混沌中找到了方向。 (如果你对更多的 Layer 2 方案感兴趣, Github 上有一个 Awesome Layer 2 的库,里面有非常多的资料,链接:https://github.com/Awesome-Layer-2/Awesome-Layer-2) 5 作者:Ryan,Community manager at Nervos Network 关于 Nervos Network:Nervos Network 是一个专门为 Layer 2 打造的 Layer 1 底层公链,致力于为未来加密经济构建基础设施。 参考: [1]公众号:Nervos Network [2]Josh Stark:Making sense of Layer 2 [3]Plasma:Scalable Autonomous Smart Contracts [4]Counterfactual:Generalized State Channels [5]CelerNetwork - Whitepaper [6]The state of state channel:2018 edition [7]Plasma World Map - the hitchhiker’s guide to the plasma
    2019-03-20 18:28 1608
  • 价值存储型公链的加密经济设计

    3 月 9 日,我们发布了加密经济设计的 RFC(RFC 是 Request for Comments 的简写, 类似于比特币的 BIP 和以太坊的 EIP,是开源项目在提出一个协议时,向社区征求意见的方式),在社区中引起了不少有意思的探讨。本文由 Nervos CKB 经济模型的作者 Kevin Wang 撰写,阐述了他设计 CKB 经济模型的思路。 目前大多数加密经济模型将底层区块链作为一个去中心化的交易处理系统来设计。在这种情况下,加密经济学的设计往往侧重于在共识过程中提供激励和惩罚,来确保参与的节点能够验证交易和达成共识。 然而,底层公链同样也是分布式的价值存储平台:比特币可以被视为货币价值的存储平台;以太坊可以被视为加密资产和应用状态的价值存储平台。 从公链作为价值存储平台的角度来考虑,我们需要在机制设计中引入时间维度,以满足真实使用场景的激励协议。我们不仅需要激励所有的参与者诚实运作并达成共识,还必须要研究如何保证该系统长期的经济可持续性;我们不仅设计了基于即时资源消耗(如带宽和计算资源)的交易手续费机制来补贴共识节点,同时我们也必须要关注状态存储带来的持续性成本。 我们认为一个基于状态存储的经济模型,对于价值存储平台的可持续至关重要,并且它是独立于交易需求的可持续经济模型设计的关键。 加密经济学设计者面临的许多问题可以在公共资源经济研究中找到相似之处:例如,多资产智能合约平台的安全性被视为整个生态系统(包括平台上的所有代币项目)的公共物品。目前,这些智能合约平台通过持续发行和稀释,将维持系统「公共安全资源」的重担全部加在平台代币持有者身上。上层资产的代币持有者,可以在资产不被稀释的情况下,无成本地享有该公共安全资源。同样地,「去中心化公共资源」使得生态系统中的每个人受益,但是它们将被理性的参与者滥用以使得自己的利益最大化,除非有到位的制约因素。 目前领先的智能合约平台可以通过其货币溢价(存在超过内在价值的价格,通常是由于被当作货币)将维持公共用品的成本社会化。然而,这是不可持续的,因为货币溢价可能受到竞争、更好的互操作性、特别是二层跨链方案兴起带来的攻击。为了实现可持续性,我们认为智能合约平台的加密经济学必须为了价值存储而设计并成为一个价值存储平台。 Nervos CKB 作为 Nervos Network 的 Layer 1 协议,旨在成为一个可持续的,以价值存储为中心的智能合约平台。CKB 原生代币旨在代表持续时间内占用该状态存储空间的权益。它的实用性主要类似于作为存储平台的土地,同时也具备货币(转移价值)和燃料(支付计算)的功能。该协议通过其货币政策来限制状态存储的增长,并通过状态使用者的「目标通胀」方案收取状态租金。 欢迎复制以下链接至浏览器,查看该加密经济模型的完整 RFC:https://github.com/nervosnetwork/rfcs/pull/78 RFC 代码库包含了 Nervos Network 的提议和标准。我们希望采用开放的、社区驱动的方式来进行协议的设计和改进。 我要感谢整个 Nervos 经济研究团队,特别是我们的顾问李家荪、邹传伟和邓小铁老师,他们为这项研究做出了宝贵的贡献。 关于 Nervos Nervos Network 由 Nervos 基金会推动,通过分层设计,兼顾性能、安全以及去中心化的特性,满足多样化的商业场景需求,为未来加密经济提供基础设施。 关于 CKB Nervos Common Knowledge Base(CKB)是一个无需许可链,它是 Nervos Network 的基础层,并在设计上提出了一些理念: · CKB 共识协议 NC-MAX 使用两阶段提交节约带宽,并根据网络情况调整自身参数,提升了 Nakamoto Consensus 的可扩展性 · CKB 虚拟机采用底层 CPU 指令集架构 RISC-V 开发,提供更高的开发弹性与运行的稳定性 · CKB Cell Model 是比特币 UTXO 模型的通用化,能够验证和存储任何类型的数据 · CKB 经济模型用货币政策限制状态存储的增长,并实现智能合约平台的价值存储功能
    2019-03-20 18:16 1170
  • 如何在PlatON测试网络质押Energon获取收益?

    PlatON测试网络升级到v0.5.0之后,支持了用户质押Energon为备选验证节点投票的功能,通过给备选验证节点投票不仅可以体验PlatON测试网络运行方式,还能获得相应的测试Energon收益。 今天,就给大家简单介绍下,如何通过质押测试Energon投票获取收益? 1、下载安装PlatON的PC客户端Samurai或手机客户端ATON,已安装的忽略此步骤。Samurai和ATON投票操作大同小异,接下来以ATON为例。 下载地址:https://developer.platon.network/#/?lang=zh 2、打开ATON,创建PlatON钱包。如已有PlatON钱包,选择导入钱包即可。 3、进入钱包后,能看到自己的Energon余额。点击钱包余额,进入余额详情页面,就可以开始准备投票了。 这里需要注意的是,PlatON测试网络中每张选票价格为100个Energon,并且在兑换选票时还要支付一定的交易手续费,所以至少要保证钱包中有101个Energon以上才能正常进行投票。 如Energon数量不足,可以访问下方链接申请领取: https://developer.platon.network/#/energon?lang=zh 5、点击余额详情右下方的【投票】,进入投票页面。在这里可以看到,各备选节点的区域、质押金额、愿意给投票人分享奖励的百分比等信息。 6、点击备选节点的右侧的【投票】,便可开始为该备选节点投票。随后按照系统提示输入投票数量、确认密码,即可成功投票。 接下来,只用心平气和地等待获取收益就可以了。 PlatON经济模型中,每轮共识中出块节点都会获得一定的出块奖励,且每轮会从出块节点身上的选票中抽取一张幸运票,幸运票的持有者可分享一定比例的出块奖励。幸运票持有者的收益=出块奖励*分享比例。 每张选票的有效期为1536000个区块的出块时间,如果自己的选票在有效期内,被选为了幸运选票,则可获取相应收益;未被选为幸运选票,则质押的Energon将会在有效期结束后退回。 7、在投票详情页面,可以点击【我的投票】,查看投票记录和所得收益。 当前,PlatON测试网络和客户端仍处在不断迭代升级的阶段,欢迎大家在PlatON微信、GitHub、巴比特论坛等平台提出优化意见。
    2019-03-20 17:40 668
  • 我认为区块链将取代银行的三个原因

    去年夏天,我辞去了Schibsted Media Group一份安全而令人兴奋的工作,当时我正在探索新技术(区块链)与商业模式的交互,重点是区块链技术。从很多方面来看,这是一份“理想的工作”。尽管如此,我还是决定跳槽,与人共同在以太坊空间创办了一家初创公司。 那我为什么要这么做呢?因为我相信开放的区块链可以从根本上改变全球金融和人类互动。我有这一次千载难逢的机会真正参与其中。但是,我是怎么得出这个结论的呢? 目前,在获得加密货币支持的开放金融系统(即区块链)潜力的人和没有获得加密货币支持的人之间存在明显的鸿沟。前一类人通常是死忠的信徒,并使用复杂的技术密集的语言。他们抛出了诸如密码经济学原语、不可信计算和链上治理之类的短语等。当然,非学者很难理解到底是怎么回事。 在这篇文章中,我将概述促使我全身心投入到以太坊和开放区块链上的基本思想。我将介绍我认为区块链有可能提供一种新的全球金融基础设施的三个主要原因。这些争论更多的是围绕人们的问题以及企业如何繁荣发展的推理,而不是技术创新。 不需要对加密货币有深刻的理解。只需要知道,区块链是一个分类账,上面有账户和余额。就像你的银行一样。以下是两者的不同之处以及区块链为什么重要: 1. 成千上万的分类账与一个分类账 对于初创公司来说,你经常会问的一个问题是:你在解决什么问题,为谁解决?在这种情况下,需要解决的问题是“我如何才能安全地将稀缺资产从A转移到B?”例如,钱。 区块链和传统金融基础设施都解决了这个问题。当钱出现在我的帐户中,那钱就是属于我的资产了。这是任何一种制度都必须具备的性质。虽然区块链和银行都能解决这个问题,但它们的底层基础设施却截然不同。 什么帐户持有什么钱,都需要在系统的所有参与者之间共享。区块链代表了所有网络参与者共享的一个全球账本。另一方面,银行基础设施由数千种不同的账本组成,这些账本的形状和形式各不相同,会进行相互影响。这些都是或多或少的实体竞争,大多运行在几十年前的老技术上,换句话说,他们有巨大的协调问题,使用过时的技术来解决看似简单的从A转到B的问题。 当我想转账给朋友的时候,我真的不在乎他是否和我用同一家银行。另一方面,传统的金融体系是否在意什么时候完成我这笔交易。国际汇款的费用、麻烦和延误说明了这一点。 关键点1:银行的基础设施根本不适合解决客户面临的核心问题之一。一个安全的全球分类账是促进价值转移的一个好方法,因为它相对于独立分类账拼凑而言显着降低了协调开销。 2. 全球可验证代码与本地监管之间的信任 所以这一切都是关于安全和稀缺的账本,但这是如何实现的呢? 在传统的金融体系中,你需要去申请执照。国家或州一级的金融监管机构有一系列广泛的要求,你必须满足获得银行执照的要求才行。如果你想开办一家提供金融服务的公司,你通常需要花费数月甚至数年的时间和数十万美元,然后你才有可能会获得这样的许可证。 然后,同样的监管机构会在你进行的过程中监控你的操作。这是维护系统完整性一种非常费力的方法。监管者和被监管者都付出了巨大的代价,但整个体系充斥着欺诈。瑞银只是最近此类欺诈的一个例子。富国银行伪造账户是另一个例子。 这些需求和过程本质上是本地的。任何想要提供全球金融服务的企业,都需要应对数百个这样的监管体系,而这些体系本身就已经很复杂。 另一方面,区块链通过激励基础设施提供者(称为矿工)以系统的最佳利益为出发点来获得其完整性,并允许任何人验证账本的完整性。可以在全球实时进行,而不需要依赖任何文书工作。解释区块链的基本原理超出了本文讨论范围,但重要的是,账本的完整性仅通过可验证数学和透明经济激励来维护。 关键点2: 金融监管和授权是复杂、不透明、固有的本地信任体系。间接监督机制产生了巨大的间接成本。另一方面,开放区块链使用代码而不是官僚作风来实现信任。因此,区块链代表了促进信任的健壮、透明和内在的全球方式。100年前,前者是我们最好的选择,而后者正好适合全球互联的数字世界。 3. 开放和容易建立VS封闭和痛苦的建立 计算机赢得了许多单一用途设备的青睐。开放的互联网战胜了由公司控制的封闭网络。智能手机战胜了功能手机。所有获奖者有什么共同之处?那就是任何人都可以很容易地在它们之上构建应用程序。现在猜猜开放区块链和传统银行基础设施有什么不同?没错,在区块链上构建超级容易,而在传统银行基础设施上构建则绝对是一场噩梦。 这是开放区块链非常重要且被严重低估的一个方面。让我们想想互联网。在互联网出现之前,你需要有一台印刷机,然后把每一张纸都搬到外面,让人们开始制作报纸之类的东西。到了互联网时代,世界上任何一个可以上网的人都可以在自己的卧室里免费制作报纸之类的东西。我们实现了从大规模前期投资和大量信息传播运营成本,到几乎没有任何成本。 现在,让我们来看看今天建立一家“金融科技”公司需要什么。 执照 金融科技初创公司往往需要花费数月甚至数年时间才能获得许可证,才能推出第一款产品。你需要大量的前期投资。在相反的情况被证明之前,初创公司都是默认死亡的,而且在早期非常脆弱。金融监管的缓慢和复杂性实际上意味着,这些公司中有很多在有机会进入市场之前就夭折了。 一开始就没有创业的公司可能会更多。这是一个巨大社会损失。现有的金融机构也从这个体系为它们服务的缺乏竞争中获得了巨大的利润。 技术 如果你真的获得了许可证,你就是在当今一些最分散、最过时的技术基础上创建了一家初创公司。创业的好处之一是不需要任何遗留技术和思维,但如果你使用的是核心银行基础设施,情况就不是这样了。 或多或少有点像遗留银行。此外,尽管是一家软件公司,你的财务许可证严重限制了你的创作能力。创业公司会找到创造性的方法来解决人们的问题。金融监管通常有一个世纪的历史,它只定义了一种做事的方式。尽管这个世界在我们的技术工具箱里有100年的新工具,但你或多或少还是被过去的事情困住了。 业务 除了监管和技术方面的限制,还有一个显而易见的商业理由,那就是不要在银行上建立颠覆性的金融服务。你只是不想建立在你想要破坏的玩家之上。对于“金融科技”初创企业来说,这是一个巨大的挑战。它们通常被迫建立在它们试图击败的银行业之上。传奇投资家查理•芒格(Charlie Munger)以“遵循激励机制,我将向你展示结果”而闻名。显然,传统银行不会让初创企业在自己的餐厅里享用午餐,因为他们可以轻易地把初创企业拒之门外,让它们放慢速度。 另一方面,如果使用区块链 这与区块链可以为初创企业提供的服务形成了鲜明的对比。使用区块链,任何人编写几行代码,就可以突然拥有一个全球可访问且可靠的金融应用程序。 我给你举个具体的例子。去年11月,一个编程经验有限的人在以太坊区块链上推出了一个名为Uniswap的产品,它让你可以在没有任何中介的情况下在以太坊交易资产,而且交易产品非常简单。你进入登陆页面决定你想要什么资产,然后按支付就可以。上周在这个应用程序中有超过400万美元的资产交易。 作者:Dune Analytics的联合创始人 Fredrik Haga
    2019-03-20 17:31 857
  • “公链为王”抑或“织链为网”,谁才是区块链发展的正途?

    早春三月,虽然加密货币市场仍处于熊市寒冬,区块链行业却不断传出令人振奋的消息:以太坊完成旨在将 Pow 共识机制切换为 PoS 的君士坦丁堡硬分叉,Cosmos[1] 的主网 Cosmos Hub 正式上线,ArcBlock 区块基石 ABT Network 和 Forge 开发框架即将于 3 月底发布,Polkadot[2] 也计划在未来几个月内上线,不约而同为加速区块链技术落地开辟了一条颇具前瞻性的道路:提供开发者友好便利的开发框架,人人都能按需开发自己的区块链;并打破隔阂,让所有区块链能够连通起来,促进价值无缝流通。 和“一条公链搞定一切”的思维分道扬镳 2018 年,众多公链项目沿着以太坊开辟的“世界计算机”方向,聚焦于单条区块链的交易吞吐量和性能的提升进行各种探索设计,一时之间,各种“公链”层出不穷,人人企图为全世界修建一条大而全的公路来解决各种交通运输问题,即使是各种链上分片、链下用侧链/子链/状态通道等扩容技术的方案,也仍然按照这一思维做文章。结果性能并未得到实质性提升,却诞生越来越多技术架构各异、互不连通的公链,让 Dapps 开发者疲于奔命。 作为专注于 Dapps 开发部署的区块链时代的“云”平台,ArcBlock 的设计初衷是从应用开发角度出发,帮助开发者不仅摆脱访问调用不同区块链的麻烦负担,而且尽可能降低应用被底层公链锁定的风险——去年 7 月上线的 OCAP(Open Chain Access Protocol,开放链访问协议)即为 Dapps 访问比特币、以太坊等底层公链提供了统一易用的中间抽象层,在解决加强区块链互操作性的道路上“吾道不孤”:如何终结越来越多的公链/许可链之间呈现的割据局面,在一座座价值孤岛之间搭建起价值互通的桥梁,使链与链之间可以互相传递讯息、发送交易,从而形成整个区块链的价值互联网。 如果说以太坊公链设计好比是全世界只修一条公路,ArcBlock 等提出的是“织链为网”的全新思路:编织区块链的交通网络,让各种车辆各行其道、各行其是,既需要免费的公路,也需要收费的高速和私家车道。最重要的是,交通网络必须有一个综合平台来协调指挥,才能有效利用路网资源发挥最好的综合性能。 除了 ArcBlock 之外,最近发布的 Cosmos,即将发布的号称实现了 ETH 2.0 愿景的 Polkadot,以及在企业联盟链领域耕耘已久的 Hyperledger Farbirc[3],都是在这个方向上探索前行。 可以说,从 2019 年的动向来看,关于区块链的未来方向,最终可能形成分道扬镳的两大阵营。 从“互联网”到“互联链”的发展趋势 回顾互联网技术发展史,可以发现历史有着惊人的相似之处:早期的计算机网络是一个个独立的局域网,然后逐渐互联成为更大的通信网络。计算机网络并没有孕育出几个超级通信网络服务, 相反,去中心的互联网协议取得了巨大的成功。我们有理由相信,区块链也会朝着类似的趋势发展。 在如何实现跨链互联互通方面, 目前的各家技术解决方案也是八仙过海、各显神通,但基本的设计和目的是类似的。有趣的是,这些不同的跨链技术本身都体现出对其他技术的互联互通性, 理论上它们是互相兼容,可以连接起来的——这与传统的“公链”们各自为政形成鲜明对比。 以 Tendermint 团队为核心团队开发的跨链项目 Cosmos 定义了 IBC(Inter-Blockchain Communication,链间通信)协议,允许使用 Cosmos SDK 开发的相同结构的区块链以及代理链(遵守原链和 IBC 通信标准),以 Zone 的形式与 Hub 这一中间枢纽连接通信,实现链与链的互联互通,最终形成宇宙星云式链网结构。Polkasdot 出现在 Cosmos 之后可能较多受 Cosmos 启发,其设计有类似之处。 Hyperledger Farbric 由于主要定位是企业联盟链的场景,经常被人忽视,但是 Fabric 的设计思路相当超前,当各家公链还在喧嚣之时,Hyperledger Fabric 从其“Fabric”这个名字上就体现了其多链交错设计的特色。不过由于 Fabric 的设计目标是联盟链环境,其多链主要体现在其一个应用中采用 Channel 的方式来切分多条链的设计,在跨链通信方面没有重视。 ArcBlock 的 ABT Network 与前述设计不同,采用的是独创的三维稀疏矩阵的组网思路,所有的链都是平行空间的设计,用 DID(去中心化 ID)和可编程通证(Programmable Token)来巧妙地实现链与链的互联和通信。ABT Network 中链和链之间的通信不需要通过任何中间人的“中继(relay)”或 Hub 进行,更为去中心化,组网更为自由。 多链互联设计的另一个显著优势是不再需要去区分“私链”、“联盟链”和“公链”,不必陷入“许可链(Permissioned Chain)”和“无许可链(Permissionless Chain)”这些无谓的“名词之争”。当各条链可以有效互联,必然有一部分是公共的,有一部分是私有或者联盟的,必然有需要许可的,有无需许可的,恰如今天的互联网一般。 无论上述哪一种技术,其基本思路都和现在的“一条公链搞定一切”的单链设计思路有着截然不同的世界观。无论从技术发展的趋势来看,还是从“去中心化”程度本身来分析,我们有理由相信,这种“互联链”的方向是未来去中心化世界的趋势,也许 2019 年是这一共识形成的分水岭。 个人自主的去中心化 ID 技术是连接 Dapps 的关键 当应用被去中心化的区块链拆分成很多的部分之后,是什么把这些去中心化的应用部件组织成一个完整的应用来呈现给用户? 答案就是去中心化的数字用户 ID。 DID,是万维网联盟(W3C )今年 1 月制定的用户自主身份(Self-Sovereign Identity)的数字 ID 技术标准[4],业界刚刚开始研究开发其在区块链技术架构和应用中的价值与功能:DID 在技术上支持用户自主身份在互联网中的实现,奠定了更好的保护用户隐私、用户资产安全、保障用户数据主权等一系列重要基础, 也是实现去中心化应用的关键技术。 目前为止把其中心化 ID 设计为关键部件的只有 ArcBlock。 ArcBlock 的 DID 设计是从底层开始贯彻始终。未来会有越来越多的区块链可能会采用侧链或者智能合约的方法来实现 DID,但是 ArcBlock 的 DID 则是从最底层支持的,属于非常彻底支持 DID 的方案。Hyperledger 可能是出于其企业联盟链的场景,继承了传统的企业认证机制,这在企业内部可能是可行的,但限制了其跨越组织的应用场景。 值得一提的是 ArcBlock 的平台把支持 DID 的钱包作为一个重要基础部件,加密钱包将不只是一个数字资产的管理工具, 更是用户去中心化 ID 的管理利器。 组件化设计,让”一键发链“和“万链互联”成为现实 授人以鱼,不如授人以渔。ArcBlock 和 Cosmos 都将一条区块链的开发由下而上分离出三层:网络层(底层数据结构和通信协议设计)、共识层(共识机制设计)和应用层(具体业务逻辑设计),将网络层和共识层设计封装为内核,应用层的通用功能分离成可插拔的模块,组成 SDK 开发工具,让开发者能够一键发链:他们不再需要设计整条区块链,而只需要实现核心的业务功能。 ArcBlock 提供的开发者发链框架是 Forge 框架[5]。如上图所示,其在系统架构位置上和 Cosmos SDK 是一致的,更好的帮助开发者发布根据自己的需求定制的区块链,并与自己的 Dapps 无缝连接:Forge 内核以 RPC(远程过程调用)的方式调用共识引擎、状态引擎和存储引擎,帮助用户定制的区块链实现共识达成、状态同步和分布式存储,而这三个引擎均可插拔(比如目前 Forge 共识引擎调用的是 Tendermint,未来可插拔切换为其他共识算法);FABI(Forge Application Blockchain Interface,Forge 应用区块链接口)连接 Forge 内核与更为丰富的应用层:DID API、区块链 API 和 OCAP API 帮助安全连接其他用 Forge 打造的链以及比特币、以太坊等为 OCAP 支持访问的公链。在这之上支撑 Dapps 还有更多开发者可以直接使用的工具:管理控制台、命令行工具、区块浏览器,而不只是框架。 对开发者而言,ArcBlock 的 Forge 开发框架更为简单实用,属于“开箱即用”的设计。Forge 框架目标是让开发区块链如同用 Ruby On Rails 来开发 Web 般的革命和简单。两者相比,Cosmos 在理论上可以更加灵活,而 ABT Network 和 Forge 框架更加简单易用。ArcBlock 牺牲了一定灵活性来换取简单和高性能,Cosmos 是追求充分的灵活性而牺牲简单性。这种区别属于设计理念的区别,无所谓高下优劣, ArcBlock 的目标就是要构建对开发者极其友好的区块链应用平台,因此追求良好开发者和用户体验是其最高原则。 织链为网的区块链设计,更有可能搭建对开发者友好的应用开发平台和生态,能让区块链更贴近实际应用场景,让去中心化应用在这样的基础土壤中得以万物生长。 作者: 冒志鸿 References [1] Cosmos: https://cosmos.network/ [2] Polkadot: https://polkadot.network/ [3] Hyperledger Farbirc: https://www.hyperledger.org/projects/fabric [4] 数字 ID 技术标准: https://w3c-ccg.github.io/did-spec/ [5] Forge 框架: https://www.arcblock.io/zh/forge-framework [6] 冒志鸿:「公链为王」抑或「织链为网」,谁才是区块链发展的正途?: https://www.chainnews.com/articles/440047798405.htm
    2019-03-20 16:12 1509
  • 区块链计算演进蓝图及“可组合性”的宝贵价值

    如果说,比特币相当于计算器时代、以太坊相当于大型机时代的话,如今区块链技术正在快速走入服务器时代、云时代,定于本月底发布的 ABT 节点、ABT Network 是 ArcBlock 区块基石为区块链服务器时代、云时代贡献的代表技术。 作者:Jesse Walden,现任 a16z crypto 合伙人,之前为 Mediachain Labs 联合创始人 编译:Perry Wang 在 a16z 旗下加密投资基金 a16z crypto 内部,我们讨论了很多加密货币背后的区块链技术与城市的类比,譬如,区块链和城市都会从在基础设施共享为前提的自下而上成长中获益。 对一个传统商家打算开辟新店而进行选址时,成熟居民区还有那些基础设施、法律、安全性和充满活力的市场经济都比较健全的地点是比较理想的选择。与此类同,开发人员也会从共享的资源中获益,譬如已经趋于成熟的用户群、数据、安全性和已经在运行的代码等。 我们称之为「可组合性 composability」。如果一个平台的现有资源可以被用于打造区块,可以被编码成更高阶的应用,这个平台被称为拥有「可组合性」的平台。可组合性是非常重要的,因为它可以让开发者以更少的资源进行更多开发,相应的,又会带动更为迅速、更全面的创新。 区块链电脑网络拥有无需信任 trustless 的本质,这极大的释放了可组合性的潜力,因为开发者可以在共享的基础设施上进行开发工作,无需担心他们下一层级的依附之物会被挖墙脚。这是千真万确,因为区块链既有无需许可的特性 这对于开源软件开发重要性不言而喻,又具有状态持续性 对于 Twilio 和 Stripe 等公司的 API 而言非常重要。 审视区块链计算的演变史,我个人简单总结出四个迥然不同的时代,每个时代有着不同的基础设施架构,在「可组合性」这个问题上有着不同的优先选项: · 计算器时代 – 特定问题计算,可组合性有限 · 大型机时代 – 图灵完备,可组合性高 · 服务器时代 – 特定问题计算, 重磅押注可组合性 · 云时代 – 图灵完备,具备可扩展性的组合性 我会在下文中对上述的每个时代的利弊、正面反面逐一剖析。但我有言在先,在这一领域有很多结果尚不确定的研究,对于划时代变革的具体成因还有很多悬而未解的问题。对每个时代的剖析,都只是一个值得尝试的试验。 本文作者 Jesse Walden,现任 a16z crypto 合伙人,前 Mediachain Labs 联合创始人 计算器时代 比特币是区块链计算的先驱。它对「坚挺的货币还是数字黄金」这个具体的应用问题,提供了全栈式解决方案。除了追踪账户余额和货币流动轨迹的简单功能外,比特币区块链还提供了可以用于建设更为复杂功能的编码语言。 有多个项目采用了比特币脚本来编写更高阶的应用: 譬如, 在线服务 Proof of Existence 利用了 OP_RETURN 数据库来创建证据,让某位特定用户在特定时间享有相应的数字文档;像 Colored Coins 和 Counterparty 这样的项目,使开发者在比特币区块链的合并安全性基础上定制代币成为可能。 但也有其它一些项目试图更进一步延展比特币区块链的性能,或者代币的功能,但因为比特币脚本语言的故意约束,而被捆绑住手脚。 很多人辩称:去中心化货币系统最为弥足珍贵的资产是安全性,而不是可编程性,自缚手脚的脚本语言也是去中心化货币系统的特性之一,并不是个漏洞。 我们把这个问题放大看,可以发现比特币区块链更像计算器,而不是更像电脑 必须申明,我这句话是褒义!!比特币区块链是被有意设计成这样的,而且它很好的完成了任务,但对于迫切希望对其进行修补、开发新的应用的开发者而言,迫切需要演变出来新的区块链架构。 大型机时代 在比特币的先锋理念基础上,以太坊随之诞生,包括了图灵完备的虚拟机,而将区块链计算机普及化。这意味着开发者可以在去中心化的区块链计算机网络上部署和运行任何程序。 在今天的区块链网络中,为了确保准确性,区块链网络中的每个节点必须运行每个程序功能,这导致区块链网络运行缓慢、使用成本极为昂贵。但以太坊在一个维度是无可匹敌的:它的计算是无需信任的。每个程序都能被按照指令运行,其产出成果,或者称「状态」,对其它所有节点而言都是可见的。以太坊的一个程序可以作为可依靠的、中立的积木模块,供开发者组合成更高阶的应用。 今天我们已经见证了这种发展: Marble 这个项目让用户可以极快借款,用于在交易所进行套利交易:「交易者可以通过仅仅一单交易就实现:从 Marble 智能合约银行借款,在去中心化交易所上买币、在另一家交易所以更高价格卖出代币,然后还款给智能合约银行,将保证金交易的利润收入囊中。」为实现这一功能,Marble 充分利用了以太坊的单例虚拟机,通过不同的独立项目间按顺序执行一系列动作,结果就是实现了一键式傻瓜功能,人人都可以轻松使用。 Primotif 是一个金融衍生品项目,可以追踪现实世界的金融指数,譬如标普 500 指数。它利用以太坊预测市场平台 Augur 上的股票交易来追踪相关指数的价格, dYdX 做空代币来对冲以太坊代币 ETH 的波动性,背后普通人看不到的是,dYdX 利用的是 Maker 推出的 Dai 稳定币。仅仅一个周末就打造出的 Primotif 项目,是可组合性会带来更复杂的创新和强大的开发者网络效应的绝佳例证。 可组合性带来的网络效应不是什么新鲜事了。下面是 Twitter 创始人 Biz Stone 2007 年就他们的 API 可带来的网络效应的说法: API 是最为至关重要的,甚至可以说我们对 Twitter 做出的最重要的事情。最关键的是,它让我们在保持设备非常简单的情形下,仅仅创建一个 API 接口,开发者就可以在 Twitter 的基础设施上进行开发,推出一些比我们自己更出色的创意理念,推出像 Twitterrific 那样的产品。Twitterrific 是一种非常优雅漂亮的 Twitter 使用方式,是我们在最初团队人数寥寥情况下没能推出的出色产品。所以 API 能轻松吸引到比网站高出 10 倍的流量,而这对我们而言非常重要。 不幸的是,可组合性在 Web 2.0 时代没能得到延续。一个问题是「没有办法通过 API 完成金钱交易」,也没有公平有效的办法对平台的治理规则予以监督,广告展示领域就是一个例证。这造成了开发者和平台利益的错配,导致数据重新中心化,造成第三方创新的衰落缺失。 我的投资合作伙伴、 a16z crypto 管理合伙人 Chris Dixon 曾专门撰文指出了,加密货币如何能更好得围绕可持续的、公开的网络实现激励配置。现在的问题是,能实现激励配置、具有可组合性的网络不具备可扩展性。 Chris Dixon 文章的链接:https://medium.com/@cdixon/crypto-tokens-a-breakthrough-in-open-network-design-e600975be2ef 这就是区块链的「大型机时代」。 毫无疑问,由于区块链的可组合性:安全性、用户基数、数据和在运行的代码,带来一定的早期网络效应,不过随着用户的增多逼近大型机的吞吐量限制,边际回报不断下滑。这同时也不断推高争取每个新、用户和开发者的成本。通过图表体现出来,大体像是这样: 鉴于资源有限,新用户的边际成本不断增加,最终超过了可组合性的边际价值,即共享资源和开发者网络效应 进入「服务器时代」 在可扩展性问题的探索中,部分开发者彻底撅弃可组合性和共享网络效应,转而追求「为应用定制区块链」的架构。 像 Polkadot 和 Cosmos 这些项目的理念,就是打造多条混合区块链,每条区块链对应一个应用。Polkadot 的 Substrate 和 Cosmos 的 SDK 都是模块化的区块链搭建工具包,帮助你推出自己的全栈式「应用链」 。 进行全栈式开发比起在现有网络资源基础上进行开发,工作量要大很多。对开发者而言,意味着要打造下至状态机、上到应用交互,要为网络部署最小化可行安全措施,估算出与生态中其他成员的协同工作能力。 但在历史上,全栈式开发策略已经被证明大获成功:将初期技术推到市场上、让用户更早拥抱未来。 在个人计算机 PC 大规模普及应用之前,王安科技 Wang Technologies 就提供了功能非常强大的文字处理服务,作为软硬件捆绑式解决方案。后来美国在线 AOL 同时捆绑了互联网接入服务商 ISP、内容提供商、电子邮件服务商和即时通讯服务商等多重角色,为早期的互联网用户提供了不俗的用户体验。黑莓手机制造商 RIM 也同时捆绑了移动设备、操作系统、BBM 等早期应用和邮件推送等功能,以推动智能手机的普及。 全栈式平台,让用户更早拥抱未来 在互联网发展的初期,每家网站都有服务器在运行。为了拥有端对端的体验,开发者也需要在硬件设施中有自己的一小块天地。而在未来的区块链新时代中,也同样是这种情况。这就是我所谓的区块链「服务器时代」。 「服务器时代」的区块链明确地用可组合性换取控制权。这会通过两个维度呈现:对用户端体验的控制,以及对网络供给侧资源的经济状况进行更为精密的控制。 一个假设是,「服务器时代」的区块链基础设施,譬如安全、存储和运算,是需求受到抑制的状态。那就是说,随着应用的普及,它们可以被按需扩容。这与「大型机时代」的基础设施是截然相反的,「大型机时代」资源成本随网络上所有其他流量的变化而变化。具体理论依据是:全栈式「服务器时代」区块链架构可以减轻优化「大型机」区块链的风险。 「服务器时代」区块链与之前的全栈式平台是不同的:它首先是区块链! 王安的文字处理系统、美国在线和 RIM 都是封闭式平台,而「服务器时代」区块链依然是能证实的、数据开放的架构,配置有可编程的激励机制。这种特性让「服务器时代」区块链能被打造成数据集散中心,比如 Cosmos 和 Polkadot 两个项目都是在争取实现这一目标。一条区块链可以成为另一条区块链的「轻客户端」,开发者可以打造自动交换,藉此延展其性能。 这意味着,即使「服务器时代」的区块链依然具有可组合性,但是在与「大型机时代」区块链不同的维度上。 与「大型机时代」区块链运行单一的虚拟机不同,「服务器时代」的区块链计算机需要新的可以彼此通讯的标准,以实现跨应用的组合。这种通讯界面是当前正在进行的研究和实现标准化的主题,毫无疑问,这在可组合性方面会让开发人员的体验更加复杂。 但是尽管有这个缺点,捆绑的好处可能会成为新一波区块链架构的催化剂,我预期在短期内会看到更多的项目采用全栈式的方式。 「云时代」 「云时代」意味着实现可扩展、可以普遍应用的无需信任运算。这是区块链发展的理想目的地,届时组合工作只受创造力的限制,而不是受制于扩展性或通讯复杂性的限制,届时创新不会遇到边际收益不断下滑的尴尬,而会大量涌现。 「云时代」究竟是怎样的具体场景?这正是当前很多研究所探索的问题,目前尚未有清晰的答案。 「服务器时代」架构的支持者认为,通过区块链跨链通信的标准化和抽象化,将催生出「云时代」的体验。其他人,譬如以太坊 2.0 的开发者和 Dfinity 团队,则正在融合分片版的图灵完整的区块链。你可以将此视为一个拥有许多「大型机」的世界,这些「大型机」共享一个安全池,但在同构虚拟机之间分离状态和计算。还有很多人正在研究将运算转至链下的全新架构。 考虑到研究社区的规模之大,以及这种解决方案的潜在回报巨大,如果有人说「服务器时代」接近尾声,「云时代」区块链计算正紧随而来,我不会感到惊讶。 我们已经铺设好光缆,打造好数据中心,「云时代」区块链计算主要关乎软件创新。 无论我们何时迎来这个时代,可以清楚的一点是:无需信任的可组合性将成为开发者的新型超级武器,当开发者能以较少资源提供较大产出时,我们就能成为更强的协同性、更多的创造性、更多选择性的互联网的受益者。
    2019-03-20 16:04 817
# 币种 价格¥ 涨幅
# 币种 价格¥ 涨幅
# 币种 价格¥ 成交额¥
  • 1 BTC/比特币 42,494.02 302.75亿
  • 2 USDT/泰达币 6.46 182.21亿
  • 3 ETH/以太坊 3,219.53 146.48亿
  • 4 EOS/柚子 70.33 81.77亿
  • 5 BCH/比特现金 5,568.76 29.32亿
  • 6 LTC/莱特币 628.10 22.90亿
  • 7 XRP/瑞波币 3.53 20.68亿
  • 8 TRX/波场 0.2891 17.39亿
比特币多空调查

今日比特币行情,你怎么看?

看涨37%
盘整17%
看跌47%
  • 看涨
  • 盘整
  • 看跌
投票 您已经投过票了

每日15:00投票数据自动清零


扫二维码

扫一扫,关注微信公众号