Navigation

    Dev BBS for PRESSone & Mixin project
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. 李大白
    • Continue chat with 李大白
    • Start new chat with 李大白
    • Flag Profile
    • Block User
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups
    Save
    Saving

    李大白

    @李大白

    9
    Reputation
    9
    Posts
    478
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    李大白 Follow

    Posts made by 李大白

    • 张首晟:区块链世界到底是如何形成的 | 经典重读

      作者:张首晟,斯坦福大学终身教授,丹华资本创始人
      转载链接:https://mp.weixin.qq.com/s/txbZp8mzBpJz9F1D2tVdBQ

      就像人类的历史一样,网络的历史也可以用「分久必合,合久必分」来概括。

      我 1983 年去美国留学的时候,有一个巨人叫 AT&T,好像是永远不会倒的,而我当时最大的梦想,并不是毕业之后到大学里面做教授,而是去贝尔实验室工作,因为这里曾产生 30 位诺奖得主。

      AT&T 花这么多钱养出这么多诺奖级的科研人员,就是为了垄断,它垄断了所有的网络资源。

      慢慢地,就出现了一个新的协议,就是网络协议。它完全是一个去中心化的协议,使点和点之间完全可以随意的交流。我可以走这条路,也可以走另外一条路,条条道路通罗马,最后都能达到结果,不再需要中心的垄断。

      一夜之间,我以为永远不倒的公司,消失了。

      曾经也是在竞争之后出现了 AT&T,但当一个新的网络技术出现的时候,就是合久必分的时候。

      如果人人可以交流,人人都可以创造出交流的内容,这个内容广泛地撒在外围的互联网上,那么我要去找一个信息,就会变得非常非常不方便。

      所以在这个情况下,分久必合,出现了一些新的中心化垄断平台,在美国就叫 Google 和 Facebook。

      人类历史上所有伟大的公司,做的事情必然不是自己创造全新的东西,而是把已有的东西做一个重新的排列组合。

      比如说石油公司、化学公司,它们做什么事情呢?原油是原子组成的,直接可以从地下挖出来,它们做的唯一的事情,把这些原子重新排列一下,变成别的化学品,比如说已经被提炼过的油。

      Google 和 Facebook 这些平台做的是什么呢?

      就是把每个人的信息重新排列组合一下,比如说 Google ,最开始做的事情,就是做了一个排列,使我们找信息非常容易。这些中心化平台做的事情,就是把我们撒布在网络上的内容,中心化地重组一下。

      这是分久必合的时代,因为新的网络协议,AT&T 倒了,出现了思科,又出现了网络资源分散的情况,又出现了巨大的平台。

      今天出现的区块链技术,也会导致新的时代。

      这个时代的革命强度可能是互联网革命的十倍、百倍。互联网时代只是信息交换的时代,而区块链时代有了价值的交换,我们可以产生数据的市场,每个人拥有自己的数据,然后在交换的过程中产生新的价值。

      这个伟大的时代,我用一句话来描写,就是「 In Math We Trust 」。

      我们都理解货币的价值在于共识。那么人类所有的知识当中,哪一个大家最容易达到共识?显然不是经济学,不是法律学,不是政治学,不是化学,不是生物,甚至也不是物理,最容易达到共识的是数学。

      用数学作为信任的机制,是最自然的做法。真正的区块链时代,就是使得我们相互间的信任建筑在数学的基础上。

      如果我自己做出一个正方体的话,肯定是不完美的。但是如果作为一个数学的形态,正方体则是全对称的,每一个顶角都完全一样,每一条边都完全一样,每一个面也完全是一样的。

      数学的形态是最最精准的,在精准的意义下,也是最易达到共识的。

      如果你看整个宇宙最深刻的奥妙之处,那么物理学中关于整个宇宙的最核心的公式和标准模型,也是用非常非常精妙的数学来描写的,其中绝大部分的数学也是杨振宁先生所开创的。

      既然大自然最根本的规律是用数学来描写,我们是不是能够使得人类社会的规则和信任也建立在数学的区块上呢?

      公钥和私钥的组合,就是建立在数论上面,而且是建立在一个更高层的数论上面,叫椭圆曲线。

      大家可能知道,数学里面曾经最大的一个猜想:费马大定律,最近被证明了,这个证明就是建立在椭圆曲线上。

      这个听起来非常非常抽象的数学,但是今天我们每次网上购物的时候,就用到了奇妙的数学。

      另外就是哈希函数。它有一个单向性,任何的东西进去,出来都是一串随机数。这跟黑洞很像,黑洞任意输进去,出来的都是随机数。

      还有一个是零知识证明 zero-knowledge proof。比如说我解了一个难题,但并不想把我的答案直接告诉你,却要使你相信,我的确把这个难题解了。

      这也是非常奇妙的数学问题,但这是有解的。我可以给你一个比特的信息,我解了这个难题,但是不告诉你任何别的信息。这对整个数据的市场会是非常非常有用的,我可以一个比特一个比特把信息给出去,而不是一下把信息全部给出去。

      两个百万富翁,可能有一个人是千亿万富翁,有一个人是百万富翁,他们不想把自己的财产公布出来,但是却要知道到底谁更有钱。

      这用清华大学教授姚期智的办法就能算出来,只给出一个比特的信息,就可以知道谁更有钱。

      数据自己拥有的话,我永远学不到大数据的智慧。可是我想了解统计数据,其他人却想保护个人隐私,所以有一个非常简单的办法:

      在个人隐私数据上故意加一些噪声,这些噪声使得你辨别不出来这个数据到底是不是你自己的个人数据。在收集到这些数据之后,在大数据的环境下,这些噪声就会相互抵消,我得出来的统计数据还是完全精准的,这个办法就叫差别隐私 differential privacy。

      最后一个概念叫形式验证 formal verification。

      上世纪最伟大的数学发现是证明了数学的不完备性。如果我要给在座的同学推荐一本书的话,有一本我认为是千古奇书,它讲了数学不完备定理、艺术家的画和作曲家,三者之间的共同性。这本书是《哥德尔、埃舍尔、巴赫》G.E.B。

      这些奇妙的数学,都可以用在区块链上,可以用来做 Formal verification。

      因为今天我们来到的是开源的时代,我们今天在区块链上的智能合约,完全是开源写出来的。但是开源写出来之后,一般人读不懂,甚至专家也不一定看得懂。

      那么有没有一种数学的程序,能够告诉你智能合约到底是不是吻合你的白皮书上想做的?这是一个非常奇妙的思想,用的是数学中的逻辑学。

      计算机科学有两个重大的趋势,一个是 AI,一个是区块链,这两者之间有一个必然共存的关系。

      我们有聪明的大脑,有聪明的算法,但是数据被垄断在中心的平台上,这样的话,AI 就不容易学习。你想出了一个算法,也不知道数据在哪儿。

      但有了区块链,有了数据市场,就回到了我刚才所讲的时代,我们能够把所有的数据个人拥有。

      这样的话,我把部分的个人数据,在保护自己个人隐私的情况下贡献出来,在区块链的时代,就能够得到一定的回报,大家也就有了动力保护自己的隐私。有了隐私就有了价值,而一旦有了价值,我再把这个数据贡献出来让 AI 学习的话,必然会带来 AI 的突飞猛进的变化。

      除了给 AI 突飞猛进的变化,也能让社会突飞猛进。

      区块链对社会的贡献有什么?至少我看到它可以带来社会更大的公正。我们今天的社会之所以有不公正的地方,主要是因为我们对少数派的歧视,在当年的纳粹帝国里面,就是对犹太人的歧视。

      而如果我们来到了区块链时代数据市场,这个情况就会完全不一样。比如说我有一个 AI 的算法,已经是 90% 的精准了,我要让它变得更加精准,99% 精准,就需要机器学习。那我需要做什么事情呢?

      首先我要学到的这些数据,就不能像以前学到的那些数据一样,如果以前是 99% 数据的话,他们已经代表了大多数,但是要更精准,要 99% 变成 99.9% 的话,需要学习的就是那些跟以前完全不一样的数据。越跟以前不一样,越跟大众不一样,数据就越有价值。

      所以如果在一个完全是数据的自有市场中,大家会对那些少数派的数据付出更多的代币,这样就会带来社会的公正,使丑小鸭变成白天鹅。因为丑小鸭并不是丑,它只是跟别人不一样,但是在这个世界里面,越跟别人不一样,它得到的就会越多。

      另外一个伟大的理想,就是把所有个人的数据都归个人拥有。

      个人最需要拥有的数据就是基因数据和医疗数据。数据是个人拥有的,肯定是至高无上的标准,个人拥有数据之后,就担心算不出什么东西来,只是整天保护隐私,不能通过大数据和人工智能来学习基因数据背后的关切到底是什么。

      比如说我们最想知道的,就是某些病到底是对应于什么基因的突变而形成的,但是一旦我们把所有个人的基因信息和医疗信息都让个人拥有,我们就产生了一个非常有效的数据市场。

      区块链上的虚拟货币如何发展呢?这可以和现在社会里的货币结构一一对应。

      现在的货币结构有 M0、M1、M2、M3 等等,在最底层上面可以不断建立衍生品。

      我认为像比特币这样的区块链,因为对应于黄金,对应于一个最最普适的价值,也就是 M0 的货币,相当于说,在这个系统下,世界上任何两个互不相识的人都可以形成交易。如果你我已经相识了十年,并不是两个互不相识的人,那么我们可以用 M1 进行交易。

      我觉得闪电网络就符合这类性质,我们两个人进行交易,互相之间有一定的信任,但还是需要信任机制来加强。我们签约后,把一些货币抵押在比特币、区块链上,之后的每一笔交易,定期到区块链上去公示一次就可以了。

      整个虚拟货币的发展,必然会像现在世界货币的发展一样,在 M0,或者是比特币,或者是更加绿色的比特币上面,可以建立闪电网络,也会有预测市场。

      我们现在的金融产品里,有一个是期货。期货就是对未来的预测,但现在期货都要通过法院才能够真正为我们做担保,而我们使用了区块链以后,可以让全世界的网民为我们作证。

      所有这些网络的系统,彼此之间互相帮助,来使它变得更加有效,但是现在的计费系统还不是很有效,我给你提供了一些带宽,却没有得到足够的回报。

      有了区块链之后,可以做到非常公正并且比较精确的记录,这样的话,整个网络的运转就会越来越有效。

      从 4G 走到 5G,再走到 6G,必然会有网络的运转在里面。

      我最喜欢牛顿的《自然哲学的数学原理》,我个人拥有这本书 1723 年出版的第一版。用数学的原理理解了所有的自然科学,这就是牛顿的伟大。

      区块链中,底层是数学,中层是法律,上层是经济行为。

      社会科学一直找不到根本的数学原理,可能的确是不容易找到,因为很多经济行为建筑在人的不理性上。

      到了区块链的时代,最根本的经济行为,就是信任的机制,建立在数学之上。

      我们可以想像到整个经济秩序都会被改变,整个生产关系都会被改变,但是它的核心是要有一个基石,就是数学原理。

      一旦有了数学,我们必然可以总结出来一个永恒不变的规律,使得我们的经济系统更加有效,使得我们的社会科学和自然科学能够达到大统一的境界。

      本文源自张首晟先生的讲演。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 互联网时代,谁动了音乐版权的奶酪?

      从网易云事件开始,音乐版权事件一直被相关部门严加追究。

      KTV也难逃厄运。11月初全国范围内KTV将近6609首歌曲官宣全部下架,这在市场上引起了不小的轰动。

      KTV被诉侵权案时有发生,其缘由就是版权问题。

      许多KTV为了让利益最大化,不从正规渠道购买版权,而是直接从网络上找资源下载,甚至自己去合成歌曲。

      虽然对顾客没有造成任何影响,但是对歌手以及版权公司造成了一定的损失。

      流媒体的人气逐渐高涨,这意味着人们能够在全球各地随意收听更多音乐。

      在过去很长一段时间,市面上的音乐软件都在提供免费听歌服务,但同时也给出版及唱片公司带来挑战,他们很难确保版税能够以合适的数额被支付给正确的对象。

      替代文字

      在互联网版权时代下,音乐版权是基本的生存口粮,行业版权意识正在强化,各大音乐平台也陆续推出付费曲目和数字专辑。

      于是各大音乐平台之间的战争,很自然的就过度到了音乐版权的争端之上。采购到音乐版权之后,各大平台的做法基本都是要求独家买断。

      前两年,腾讯音乐在所有音乐平台中包揽了最多的独家版权,其他平台也纷纷通过转授权来获得歌曲。

      本质上看,转授权对国内音乐市场的发展有着诸多好处,不仅能解决了双方当时的版权纠纷,也为版权运营模式带来新的发展思路。

      但事实上,歌曲的转授权也有它的弊端。

      各音乐平台得到了独家版权,通过修改转授权规则的方式,借版权之便压制对手发展,为自身创造机会,从而造成了自家垄断。

      可见转授权被掌控在拥有独家版权一方的手中时,就成了独家版权的延续,而非真正意义的分享。转授权也不再是解决独家版权问题的良方,一牵扯到利益,甚至成了牵制对手的武器,还能掩盖垄断事实。

      对于音乐而言,独家版权的危害极大。

      版权独家,使得各个音乐人以公司为首,被不同音乐软件“瓜分”。

      对听众来说,最大的影响:

      以前,我们可以在一个音乐应用里,就能找到所有想听的歌曲。

      但现在随着版权保护的加强,为了听歌,我们不得不在手机里下载了不少音乐软件,不停在几个软件之间来回切换,十分麻烦。

      听五月天的,得用虾米音乐,在QQ音乐上能听但下载需付费,在网易云音乐上是连搜索都搜不到的。而听周杰伦的歌,得用QQ音乐。

      替代文字

      有相关数据统计,国内有数字音乐用户5.5亿人,是美国总人口数的1.7倍。

      但是,美国人人均音乐消费16.41美元,而中国仅为0.15美元,美国的人均音乐消费是中国的109倍。

      国内的音乐人并不赚钱,如果不是靠着卖专辑获得收益,可能他们甚至无法维持生计。

      薛之谦就曾在微博上吐槽了他数字音乐收入为0的现象。↓↓↓

      替代文字

      音乐产业一直备受诟病,就是由于目前这样种种不完善的机制导致。

      实际上,原创作品的保护和交易仍然处于混沌的状态,这直接导致一些原创作者无法对自己辛苦创作的作品做版权溯源确权。

      那么作为这样一个满目疮痍的实体行业,能不能够利用区块链技术来改变呢?区块链遇上音乐版权,能碰撞出什么样的火花?

      区块链的本质来讲,它是一连串分散式的数据库,其作用就是让用户保存和读取数据,同时,区块链也能带来信息储存的安全和可追踪性。

      利用区块链技术与音乐版权相结合,我们就能知道谁才是版权的拥有者,这个拥有者应得的收入又是多少。

      替代文字

      区块链技术与音乐行业相结合之后,似乎将迸发出令人无法忽视的澎湃能量。

      目前对于音乐平台而言,版权依旧是王道。

      区块链的版权保护技术已经相对成熟,但在市场应用方面仍处于早期阶段,对于区块链能否彻底颠覆音乐版权产业我们还未曾得知。

      我们需要做的,就是拭目以待……

      转自:区块链深度观察
      链接:https://mp.weixin.qq.com/s/r1hAYyf4bM0sRB7J4KLC5g

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 区块链技术会对数据架构和数据库从业人员带来哪些影响?

      转载链接:https://mp.weixin.qq.com/s/U_IzfpSLPkh_1NeVjHSmpQ
      作者:前哨小兵甲

      关键要点

      • 区块链技术有助于在透明度和数据来源方面进行数据治理。

      • 区块链更多地用于真实性和完整性,而不是保密性。

      • 基于大规模复制、良好设计的激励和加密技术的结合,区块链可以支持由参与各方共享的不可变数据。

      • 供应链系统中的数据管理可以体现区块链是一种非常有用的技术。跟踪数百个供应商之间的数据极具挑战性,区块链可以帮助这些参与者创建自己的数据并跟踪其他人的相关数据。

      • 拥有数据保留策略(要求在一段时间后销毁数据)的公司通常不应该在他们的应用程序中使用区块链技术。

      Seth James Nielson 最近在 2018 年数据架构峰会 上主持了一个有关区块链技术及其对数据架构和数据治理的影响的研讨会。

      Nielson 说区块链是一个不可变的分类账,数据一旦被“输入”就无法进行修改。数据只能被添加到区块链的末尾。

      他谈到了公共区块链和私有区块链之间的差别。公共区块链允许任意参与者加入,整个系统是分散的,只有共识才能使其发挥作用。私有区块链可以控制谁可以参与其中。在私有区块链中,可以使用 proof-of-stake 或 proof-of-authority 来达成共识。微软 Azure 和以太坊就支持这种模型。

      一些可以从区块链解决方案中受益的应用场景包括医疗保健、供应链和物联网设备。

      Nielson 还讨论了区块链技术中的 智能合约。智能合约是作为分布式分类帐一部分而运行的代码。它们是迷你程序,会在开采到新区块时执行。

      区块链主要目标是消除可信的第三方核实和验证。它可以在以下方面给数据治理带来帮助。

      • 透明度

      • 数据来源

      • 互操作激励措施

      InfoQ 采访了 Nielson,讨论了区块链技术如何影响数据架构和数据库专业人员。

      1、InfoQ:区块链技术给数据架构带来了哪些影响?

      Seth James Nielson:说实话,这还有待观察。有些人认为我们还处于大规模区块链革命的早期阶段,而有些人则认为这项技术被过度炒作,几乎没有真正有用的价值。这项技术背后的关键理念是完全分布式的分类帐。因为是分布式的,所以没有中央授权机构。从理论上讲,各方都可以信任分类账数据的真实性,无需任何第三方来证明。举例来说,当你使用信用卡在商店购买商品时,买方和卖方都需要第三方(信用卡公司)才能执行交易。区块链背后的概念是,大规模复制、良好设计的激励和加密技术的结合让参与各方可以共享不可变数据。交易一旦被追加到分类帐中,就无法删除或更改。这样一来,参与各方就可以独立于其他组织在彼此间开展业务。

      问题是,这个简单的版本并不能代表全部真相。如果大多数人同意,就可以更改区块链中的数据。在规模方面也存在很多有趣的问题。

      平心而论,区块链社区已经意识到这些问题,并且正在研究解决方案。如果区块链革命要继续向前发展,这些问题必须得到解决。

      2、InfoQ:区块链一般可以在哪些方面解决数据安全性、数据完整性和数据管理问题?

      Nielson:区块链是在不信任各方当中创建可信记录的一个很好的方法。公共区块链允许任何人加入,不信任方可以是人、组织,甚至是政府。只要没有足够大的单一联盟可以控制大部分区块链资源,就可以保证数据的完整性。

      数据安全和数据管理要复杂得多。区块链的每个成员都必须保留和保护一个私钥。如果这个秘钥被未授权方破坏,几乎无法撤销被破坏的秘钥。同样,如果秘钥丢失(例如意外删除),用户对系统的访问也会永久丢失。据估计,世界上有 20%的比特币就是这么丢失的。

      最后,区块链本身并没有为现有的数据管理提供太多帮助,它只是支持新形式的数据管理。供应链是成功应用区块链的一个例子。放眼全球范围内的供应链,跟踪数百甚至数千个供应商之间的数据极具挑战性。为这些参与者创建区块链,帮助他们创建自己的数据,并跟踪其他人的相关数据,再合适不过了。

      分类帐的数据追加特性使得数据无法被删除!这带来了一些有趣的问题。很多公司都有数据保留政策,要求在某段时间后或在某些情况下销毁数据。这类数据通常不应该被存储在区块链中。

      3、InfoQ:你能从数据管理、数据加密的角度谈谈一些区块链的设计模式吗?

      Nielson:有意思的是,公共区块链中的数据未被区块链本身加密。它会插入你提供的任何内容。如果你提供的是加密数据,那么这些数据将始终以加密形式永久存储(或者在区块链的生命周期中存在)。如果你以明文形式保存数据,只要区块链在运行,整个世界都会看到它们。

      区块链通常较少用于保密,而更多用于真实性和完整性方面。话虽如此,你仍然可以使用区块链来证明各种加密操作。例如,你可以将加密数据放在区块链中,然后再插入解密密钥。这是在向世界“证明”你在某个时间点拥有这些数据,在未来某个时间点之前不显示数据的内容。也许加密数据是考试问题的答案。将其添加到区块链中,你就有证据表明你在某个特定日期拥有这些答案,即使你之后没有透露答案是什么。

      我知道 Johns Hopkins 大学的一些伟大的密码学家正在用这种算法做各种有趣的事情。但它仍然处于起步阶段,所以我们仍然在学习所有模式。

      4、 InfoQ:什么是“智能合约”?在开发基于区块链技术的应用程序时,如何使用“智能合约”?

      Nielson:从概念上讲,智能合约是指在某些触发条件下自动执行的迷你程序。在区块链世界中,某些区块链技术,特别是以太坊,支持在插入新事务时执行的代码。

      但要记住,区块链是分布式分类账。区块链智能合约存在一些限制,因为网络中的每台机器都必须执行相同的代码并获得相同的结果。否则,分布式分类账将无法达成共识和完整性。不幸的是,有时人们会夸大基于区块链的智能合约的作用。

      为了打破智能合约的限制,处理过程的某一部分必须“脱链”(在智能合约之外)完成。例如,智能合约的使用场景之一是在发生干旱时自动支付农民保险金。这是一个好主意,但智能合约如何知道是否发生干旱?它无法直接使用传感器,无法获得来自网站或其他天气信息来源的数据,因为网络中的每个节点在执行分布式代码时都必须得到相同的结果。这根本不具备可扩展性。因此,某种受信任的第三方必须将温度作为一块数据推送到区块链中。一旦智能合约可以在分类帐中看到这些数据,它就很容易处理。

      但有些人指出,通过“脱链”,你放弃了智能合约的很多优势,例如去中心化。

      5、 InfoQ:对于想要了解区块链的数据库开发人员,你有哪些在线资源可以推荐的?

      Nielson:我认为现在区块链炒作过度,我的建议是找到你能够找到的所有“观点”,确保你可以找到所有东西来平衡这种“一头热”现象。我发现 Coindesk 提供了很多有用的信息。

      6、 InfoQ:数据库开发人员可以使用哪些区块链开发工具?

      Nielson:我建议可以看看微软和 IBM 这样的大公司。例如,微软 Azure 真的是在做区块链。他们有案例研究,包括与供应链、保险等相关的案例。虽然它们是微软的,但也可以连接到多个后端区块链。

      披露一下,我的专业知识更多地涉及应用加密和数据安全。我还没有使用这些工具开发产品,所以我的建议权当参考。

      最后,我打算尝试使用 以太坊模拟器 创建一些智能合约。这是在不将代码部署到真实区块链的情况下尝试智能合约代码的最简单的方法。

      区块链真的让人感到兴奋,尽管存在很多炒作。这项技术确实具有一些有趣的潜力,看着它演变和发展是件有趣的事情。今年是比特币白皮书诞生 10 周年,白皮书中介绍了比特币,并推动区块链技术的发展。即便如此,在过去的几年里,研究和开发工作才刚刚爆发。我想未来将会有很多进展,我们现在看到的只是这项技术的早期原型。

      但越早进入越好,可以看看它现在是如何发展的!你正好可以亲眼目睹这个将改变范式的创新。还等什么!

      关于受访者

      Seth James Nielson 博士是 Crimson Vista 公司的创始人兼首席科学家。Crimson Vista 是一家计算机安全咨询公司。Nielson 博士为从小型技术初创企业和大型医疗设备制造商提供密码学、计算机安全和计算机网络等方面的咨询。他还担任各种高科技诉讼的证明专家。Nielson 博士还是 Johns Hopkins 大学信息安全研究所(JHUISI)的高级研究项目主任。他教授网络安全和高级网络安全课程,并拥有自己的定制课程和实验室工作,并在课程项目中指导硕士生。在思科的资助下,他目前正在推动加密知识库的开发,旨在帮助非专家了解如何在其组织中正确使用加密技术。

      查看英文原文:https://www.infoq.com/articles/nielson-blockchain-for-data-governance

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 为什么Google要用区块链构建私用网络?

      转载链接:https://mp.weixin.qq.com/s/q4Kf91IGo8XpovdzL_r71Q
      转载渠道:区块链前哨
      作者:刘志勇

      为什么 Google 要构建私用网络?

      互联网是巨大的,但它是成千上万个小型私用网络的大杂烩,通过数千个互联网服务提供商(ISP)和数十个大型运营商和服务提供商运营的骨干网连接起来。

      将数据从互联网的一端移动到另一端,可能意味着要在许多不同的计算机和不同的网络之间移动。在这些计算机和网络中,有一些是老旧的、低效的;而有一些是现代的、高效的。它们都是通过一系列的标准联系在一起,形成了我们所说的互联网。这些标准决定了数据包如何完整无损地到达目的地。

      许多大型互联网公司通过建立自己的数据中心、网络、骨干网等,拥有大量的互联网。这有助于降低成本。

      Google 就是那些拥有大量互联网的公司之一。它在全球拥有 50 多个数据中心,构建自己的服务器,运行自己的骨干网,将大量数据传送到世界各地,开发了自己的软件来管理所有的数据,将大量的服务器组保存在 ISP 的数据中心内,这样就可以将数据缓存到更接近交付的位置……

      Google 到底有多大?Arbor 说:

      Google 真的很大。如果 Google 是一家互联网服务提供商的话,那么它将是增长最快的第三大全球运营商。只有另外两个提供商(两者都携带大量的 Google 传输)提供更多的域间流量。但与大多数全球运营商(即 “tier1”)不同的是,Google 的骨干网并不代表数百万用户或数千个区域网络和大型企业提供流量。Google 的基础设施只支持 Google 自家。

      Google、Microsoft、Yahoo 和其他大型内容提供商之间的竞争早已超越了谁拥有更好的视频或搜索的阶段。如今,争夺互联网主导地位的竞争同样与基础设施有关:原始数据中心的计算能力,以及向消费者交付内容的效率(即快速和廉价)。

      这就是为什么 Google 一直致力于构建最高效、成本最低的私用互联网。这种基础设施是 Google 的关键,也是理解 Google 的关键。

      此外,Google 还是最早意识到电力成本是决定数据中心成本方面非常重要的公司之一。Google 的主要目标是使用可再生能源发电,成本低于煤炭发电。那将是一个令人难以置信的成就。

      Google 是时候为区块链优化私用网络了

      Google 创建了自己的互联网,是用自己的云平台搭建的全球私用网络。现在 CyberMiles 正在帮助这个网络为区块链提供支持。

      这家搜索巨头是加密项目的重要投资者,现在它会不会更加紧密地支持这些项目呢?

      如果你问你的奶奶,她是如何上网的,这里的 “上网” 不是指如何连接路由器什么的,她有可能会跟你说她是通过 Google 来上网的。虽然这个回答很可爱,但从某种意义来说,她也没有说错。因为这几年来,这个无处不在的搜索巨头和互联网的界限日趋重叠了,尤其是 Google 占到了互联网流量的 25%。

      Google 也在建立自己的私用互联网。早在 2005 年,Google 就购买了遍布世界各地埋在地下的数千英里未使用的光缆,现在,它拥有超过 100 个网络接入点和超过 7500 个全球云网络用户入口点。Google 甚至在今年还增加了三条新的海底电缆,还自豪地宣称:“我们还没完成这一工程。”

      但是 Google,作为 2012~2017 年区块链公司的第二大投资者,并没有为区块链优化自己的全球私用网络。CyberMiles 希望改变这一状况。

      电子商务区块链平台周二宣布与 Google 合作。CyberMiles 打算改变 Google 的基础设施的设置,以改善区块链公司的产品。这将涉及网络如何通信以及如何支持防火墙的更改。两家公司都计划进行联合案例研究,来展示这些改进。CyberMiles 于 10 月 15 日宣布推出自家的主网,在开发测试网和主网时也使用了 Google 云服务。

      据区块链公司首席科学家 Michael Yuan 的说法,CyberMiles 最初接触 Google 的初衷是为了在其全球私用网络能够支持他们的平台。Google 网络可以让数据在任何数据中心之间传输,而无需离开自己的更为快速的光缆。这一点引起了 CyberMiles 的兴趣,因为截至本文撰写时,这个平台只有有限数量的节点支持 blockchain-35,这些节点之间的通信对其运行能力至关重要。

      尽管私用网络的好处显而易见,但它也提出了一些问题。也就是说,它是否足够去中心化?安全性如何?Yuan 表示,由于这些因素,他们一直与 Google 进行合作,以确保在网络上能够进行更有效的通信,并确保灵活的防火墙配置。后者非常重要,因为 CyberMiles 的网络节点需要受到防火墙的严密保护,并且需要灵活性来防止骇客入侵。

      目前,Google 正在采取措施进入中国,这将让 Google 面对中国广泛的互联网内容审查。在全球范围内,它也在创建这种私用互联网,最终有望被企业和个人广泛使用。这些会不会是互联网更加集中化的开端呢?区块链户不会直接与他们合作,引导他们决定重大决策来走向更加去中心化的方向呢?Web 3.0 还在各方激烈博弈中。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 秒懂分布式计算现状与未来

      原创:ChainNews
      转载链接:https://mp.weixin.qq.com/s/NSE9B0y_P2T7odEvVnJkwg
      作者:Dani Grant

      自 1990 年代以来,人们一直试图建立分布式计算网络;1996 年,因特网梅森素数大搜索计划GIMPS 使用分布式计算搜索素数,1999 年,Seti@Home 利用志愿者的计算能力搜寻地外生命。

      25 年后的今天,拼图上最后的几个小碎片似乎已经就位。

      加密货币一个令我们始终雀跃不已的应用是分布式计算。

      在加密货币出现之前,如果有陌生人用闲置的服务器运行了一个机器学习程序,我是没法用自己的笔记本电脑转给对方一点钱聊表谢意的。加密货币最终使我们能够进行机器对机器的支付,以补偿运行任务的参与节点。

      加密货币使机器对机器的支付成为可能,而这使得贡献 CPU 的参与者能获得补偿。机器学习、三维仿真和生物计算等领域对计算资源的需求越来越大。

      我们一直在关注分布式计算项目,并希望分享不同的项目如何处理连接到网络的计算机数量不断增加的问题,以及如何将任务从它们运行的计算节点中隔离开来的解决方案。

      以下是我们的初步发现,分享给大家,供指正。

      1、发展网络的方法

      梅特卡夫定律 Metcalfe’s law 适用于计算网络:网络上的机器越多,机器在需要时接受新任务的可能性就越大。

      发展计算网络非常困难,在空间越来越拥挤的情况下尤其如此。我得澄清一下,问题不在于人们已经安装了什么,不希望再安装些什么,而是一个项目想要取得突破,自然会面临许多噪音。

      以下是我们看到的四种有趣的方法:

      方法 1:让任何人都能轻松地加入网络。一个例子是 KingsDS pre-beta。想要加入,只要访问浏览器中的 URL 并让选项卡在后台运行即可。

      方法 2:帮助其他应用程序因共享用户的资源而获得补偿。其中一个例子是 FREEDcoin pre-beta。他们为游戏开发者提供一套软件开发工具包 SDK。当玩家启动运行 FREEDcoin SDK 的游戏时,他们有机会通过贡献自己的 CPU 来换取游戏中的奖励。这会带来三赢的局面:FREEDcoin 可以吸引高性能的游戏 PC 加入其网络,游戏开发者可以在不显示广告的情况下将游戏货币化,而玩家也有机会获得虚拟奖励。

      方法 3:构建客户机,以使每个节点都可以提交和完成任务。比如 Golem beta 可以在客户端提交任务并进行计算,这意味着他们的每个最终用户都可以简简单单地成为计算节点。这有助于他们在网络的两端均衡成长。

      方法 4:最后一种方法是为其他计算项目提供计算资源。一个例子是 SONM beta,这是一个试图帮助其他计算网络快速扩展的项目。有了SONM 的开放市场,机器可以通过标准化的格式显示它们可提供多少 RAM、CPU 和 GPU。然后,任何使用 SONM 的项目都可以在整个 SONM 网络中搜索拥有可用资源的机器。

      2、将任务与主机相隔离的方法

      一个挑战是确保任务不能读取或修改主机的内存,反之亦然。如果多个任务同时在一台机器上运行,那么它们之间彼此隔离也很重要。

      保持数据私密性是一个艰巨的挑战;尽管 SONM 是在 Docker 容器中运行所有任务,但它们也需要运行节点的合作伙伴签署保密协议。大多数项目都依靠像 Docker 这样的现有容器运行时来满足这一需求。这完全说得通——有了现成的轮子后,谁还想再重新发明一个?

      不过,在这个领域,有两个项目正在做一些独特的事情,值得单独拎出来说。

      Enigma pre-beta 正在设计他们所谓的「秘密合约」——这些是计算节点,很像智能合约,但是因为每一块数据被拆散分配到在同一个计算任务上工作的多个节点,单个节点无法读取任何数据。他们使用 1980 年代开发的一种称为「多方计算 MPC」的加密方法来实现该想法。Enigma 正在搭建自己的链来进行存储和计算。

      Keep pre-beta 是另一个采用类似方法的项目。他们还使用多方计算来分割加密数据以执行计算,而计算节点不能读取任何输入的数据。通过 Keep,私有数据在集群中进行存储和计算,输出数据则被发布在区块链上。

      3、最后的想法:窄用例 Vs. 宽用例

      对于分布式计算项目,可以采用两种手段:构建一个通用的计算工具,它既可以接受任何工作负载,也可只接受少量范围的任务。

      Union Square Ventures 所投的大多数公司都是从专心做一件事开始的,专注做一件事使它们得以成长,并围绕着这一件事构建起一个网络和平台。比如我们投资的 Cloudflare、Stash、Carta等,都是这种情况。

      我认为同样的模式对计算网络也很有效:从一个狭窄的用例开始,例如训练机器学习模型、渲染 3D 图形和蛋白质折叠灯,这将帮助项目快速运作,并随着时间的推移扩展到其他计算领域。

      我们的一位合伙人 Albert Wenger 曾经以微信的增长来说明这个理论:微信是从聊天开始,聊天应用取得成功,使他们能够扩展其网络,这样就可以构建像支付、电子商务和游戏这类应用程序,现在微信发展成为一个集成式的应用工具。

      有人要问,从什么用例开始起步最恰当?

      似乎有两条路径:一条是从训练机器学习任务开始,因为机器学习是增加计算资源需求的驱动因素之一。另一条路径则是从像 3D 渲染或学术/科学计算这种用例开始,在这方面不存在保护私有数据的开销。

      总体而言,这个领域尚处在早期,但前景令人兴奋。计算供应商之间出现更大的竞争不仅会压低价格并推动创新,而且可能会出现一种新的应用,比如 VR 和自动驾驶汽车,这种应用只有在分布式计算距离终端设备的速度比 us-west-2 区域还要快几百毫秒时,才有可能实现。

      4、隔离网络 vs 开放协议

      分布式计算有两种方式。在其中一种模型中,有一个占主导地位的分布式计算协议,它创建了一个共享的计算机网络,任何人都可以在此基础上构建接口和客户机。就像 Heroku 和 EC2 一样:它们都运行在 AWS 服务器上,但是它们提供的接口有着截然不同的体验,可以满足不同的用户。

      而在另一种模型中,有一些占主导地位的计算项目,每个项目都有其自己的计算机网络。

      这两种模式都允许共存的项目,服务于不同的受众,但其中一种,项目是位于相同共享资源池之上的客户,而另一种,它们都运行各自独立的网络。这两种模式有共存的可能性,但我认为考虑到网络效应,共存实际上并不可行。只要有机会,项目就可能会选择接入现有的计算机网络,而不是构建自己的计算机网络,因为与从头开始相比,在起初就能访问更多的 CPU 可以为客户提供更好的服务质量。

      我们看到二者都有尝试的用例。SONM 是一个试图构建共享资源层的项目。此外则是由 Distributed Compute Labs 构建的「分布式计算协议」DCP。大多数其他项目目前都在构建自己的网络,不过有了开放协议,没有什么能阻止任何人为这些项目构建替代接口。我们可能会看到有些项目在开始时是其自身的系统,然后有机地发展成为在它们现在共享的资源层之上的客户之一。我对共享计算层的可能性以及试图构建它的团队和项目感到非常兴奋。

      5、代币的问题

      我们一直在考虑的一个问题是,开发人员将使用哪些代币,最终用户又将使用哪些代币。也就是说:如果用户与在分布式计算网络上运行代码的 DApp 进行交互,那么用户向 DApp 支付的费用,是否与 DApp 支付计算服务的费用相当?

      现在,计算服务中的占主流的答案是否定的。Akash、Render、Perlin、Enigma 和 SONM 是一些拥有自己交易代币的计算项目。这与 IPFS/Filecoin 的模式相同,用户可能会以任何面向消费者的主要货币 目前看来是 ETH 或 BTC 向 DApp 付费,而 DApp 则在背后换取它们提供服务所需的代币。

      另一方面,Hypernet 和 Truebit 是两个有双代币模型的计算项目。

      在 Truebit 中,购买者可以用 ETH 为服务付费,而 Truebit TRU 代币仅用于协议特定的下注和争议解决功能。这与我们今年在 The Graph 和 Augur 等基础设施项目中看到的模式相匹配,这些项目使用主流消费货币进行交易,而它们自己的代币仅用于治理、下注和争端解决。

      我预计,未来将有更多的项目转移为双代币模型,因为它允许随着网络的增长而增加治理的价格,但不会增加使用其服务的价格。

      6、EC2 模型 vs. Lambda 模型

      在现有的 web2 世界中,存在两种主要类型的计算服务:在 EC2 模型中,开发人员得到的是一个运行和托管服务的环境,在 Lambda 模型中,开发人员编写可根据需要调用的函数。

      分布式计算项目也可以分为两类:一类以 lambda 或 Cloudflare Workers 😉 为代表,用户编写脚本,项目在参与计算机上运行。另一种方法是 EC2 ,也就是「别人的计算机」:用户与网络上的某人匹配,并可以在对方的计算机上运行容器。

      注意,Lambda 方法还不完全是 Lambda 在类 Lambda 分布式网络中的机器,不会存储所有曾经推送给它们的函数,并根据需要调用它们。相反,这些网络用来离线运行和异步脚本,以用于科学计算或绘制图形等用例。我预计,随着延迟的问题得到改善,它们会变得更像是无服务器计算。

      生态系统同时需要这两种模型:托管 DApp 前端需要持久的主机,而运行一次性计算更适合在类似于服务器的平台上作业。

      在托管平台上运作的两个项目是 Akash 和 DADI。从终端用户的角度来看,Akash 实际上很像传统的计算服务,开发人员在 Kubernetes 集群中 Akash 部署的机器上管理容器,这些容器可以在 Akash 网络上的机器之间进行联合。Akash 是由 Greg Osuri 创立的,他也是 Federated Kubernetes 的贡献者,这一点并非巧合。如果你想试试 Akash,他们最近刚推出了一个测试网。

      在无服务器平台上运作的两个项目是 Ankr 和 DCP。

      7、如何利用硬件设备

      对于基于加密货币的分布式计算网络来说,分布式无服务器计算项目的独特之处在于,它们可以在陌生人的手机和笔记本电脑上运行代码,因为除了一次运行一个小脚本之外,它们不需要持久占用计算环境。

      这里的理念是,这些项目可以联合所有未使用的终端用户 CPU,形成一个巨大的超级计算机,而且费用比目前云计算市场上的价格更便宜。

      关于定价,我多说两句:目前主流的看法是,分布式网络将更便宜,因为它们不必为物理空间付费,并且硬件资本支出成本已经算进去了。然而,正如风险投资机构 Placeholder 的研究员 Mario Laul 向我指出的那样,云计算定价已经趋近谷底,如果分布式服务出现并削弱主要参与者,那么云服务供应商可能会把价格压到刚刚维持成本,以便保持竞争力。

      目前一些项目能够通过将终端用户设备上的可用 CPU 集合起来,提供高性能计算环境,我对这些项目非常感兴趣。

      在终端用户的设备上运行代码有三大挑战。第一个,是说服足够多的人参与。前文已经有过讨论。

      第二个挑战是,终端用户设备的性能相对较低。为了解决这个问题,我们看到一些项目正在以并行化方式构建,以便同时在多台机器上同时运行代码。Ankr 让用户将其代码打包成块,并分别提交给网络,再由作业调度程序,将其分配给不同的机器。DCP 以在「Web Workers」 中执行的 JavaScript 对象的形式,自动将应用程序的子任务分配到各个机器上。此外,DCP 还有一点同样很聪明:它使用 WebGL 访问终端用户设备的图像处理器,从而进一步提升效率。

      第三个挑战是终端用户的设备不是可信硬件。自从我们在 6 月发表该文的上半部分以来,在利用 SGX 方面已经有了很大的进展 SGX 是英特尔芯片中内置的可信硬件环境。

      此后,Enigma 发布了一个利用 SGX 进行计算的测试网,Golem 发布了 Graphene-ng 以帮助开发人员编写支持 SGX 的代码,Oasis Labs 则通过 从 a16z 等机构募集了 4,500 万美元,用于构建支持 SGX 的分布式计算平台。

      三大笔记本电脑制造商:惠普、联想和戴尔都支持 SGX。MacBook 有了支持 SGX 的芯片,但 BIOS 还没有配置完成,还不能让操作系统支持该功能。等到有一天苹果也加入 SGX 阵营,全球四大笔记本电脑品牌都将内置支持 SGX 的计算。

      我自己一直在为 SGX 摇旗呐喊,因为它在消费类笔记本电脑上相当安全并且容易实现。

      除了 SGX,分布式计算协议可验证计算的另一种方式是通过解决争议。Truebit 就是一个带有争议解决协议的计算项目,他们称之为「验证游戏」。验证者使用 TRU 代币来挑战计算结果。

      在 Truebit 的争议解决机制中,在运行程序的每一个时间步,「解决者」的状态都会被计算哈希值——实际上,任何给定的指令都可能无法在以太坊的 gas 上限内执行,因此 TrueBit 将每条指令分解为 16 个子步骤。然后,验证程序查询哈希状态,以找到出错的指令,再在以太坊上运行有争议的步骤或子步骤以获得最终结果。无论哪一方出错,都会失去他们的赌注,这些代币将被支付给获胜方。

      8、在堆栈上的什么位置进行计算最合适?

      一个悬而未决的问题是,计算服务最终会成为第一层还是第二层的解决方案。也就是说:下一个主要的区块链是否将计算包含为内置服务,或者计算总是在链下运行。

      计算之所以要在链下完成,是因为目前可用的主要区块链要么是比特币,其脚本语言有限,要么是以太坊,其计算成本高昂且速度缓慢。而在未来,很可能会出现这样一种局面:第 1 层区块链能够以一种不需要网络中每个节点都运行相同计算的方式进行计算,这将使计算成本更低,速度更快。Perlin 是一个试图构建此功能的项目。不过即使在 Perlin 中,计算服务也是作为主 Perlin 基链的侧链来实现的。

      大多数项目要么构建现有区块链的侧链,要么是完全独立于现有基础链的链下网络。Render 是第一种方法 即现有区块链的侧链 的一个例子,以太坊智能合约会与 Render 网络交互。Akash则是后者 即独立存在的链下网络 的一个例子,它是一个完全独立的网络。

      我比较喜欢轻型的横向协议,它们可以彼此分层,而不是形成无所不能的超级协议区块链。这就是互联网现在的工作方式:彼此叠加的小型协议 SMTP> STARTTLS> TCP> IP。它可以带来可重用的模块 QUIC 和 DNS 都可以使用 UDP 而无需对 UDP 进行更改,拥有轻松更换和升级层的能力,例如,HTTP 可以与 SPDY 交换或从 HTTP 1.1 升级到 HTTP 2.0,同时无需更改下面的层。

      9、开拓区域市场

      最后我要说的是,我们看到一些项目喜欢集中在一个区域市场上,这或许非常机智。

      例如,DCP 首先向加拿大的大学和实验室提供计算,不过通过这个过程,他们也让加拿大以外的地方产生了很多兴趣。

      又比如 Ankr,它正将更多的精力投入到中国的计算市场,在那里对计算的需求正在飞速增长 一个可以见的例子是,阿里云的收入同比增长了 104%,而亚马逊的云服务 AWS,却在中国没有一个强有力的据点。

      我们认为,这些有针对性的开拓区域市场的举措,可以产生绝妙的效果。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 一文看懂智能合约的现状与未来

      原创:区块链前哨
      转载链接:https://mp.weixin.qq.com/s/dPrDrAMoxD5RgqMgHVmTbQ
      作者:前哨小兵甲

      导读:毫无疑问,智能合约可谓是分布式账本(区块链)技术带来的最具革命性的创新。在分布式账本上部署和执行可靠的、自执行的、防篡改的数字协议的能力,在几乎所有行业和垂直领域中都有大量的潜在用例,从金融和保险一直到零售业务与和公民政府系统。那么,它们为什么还没有被广泛使用呢?

      在分布式账本上执行智能合约的概念受到大肆吹捧,被称为是解决与传统合同和数字金融协议相关的许多问题的良方,而这些问题根本就没有为数字时代做好准备。这是因为智能合约是高度安全的、防篡改的数字协议,以无信任的方式提供有保证的执行和处理。这是当今数字协议工作方式的巨大转变,数字协议通常依赖于不信任的第三方、数据重复和高成本的业务流程。

      alt text

      问题

      智能合约并非什么新事物。它是由传奇密码学家 Nick Szabo 于 1997 年首次提出,第一个真正的实现是在 2015 年的以太坊区块链平台上进行的,那是三年前的事儿了。从那时起,这个概念已经扩展到其他各种区块链平台,主要是其他加密货币平台,如 NEO 和 EOS,还有非加密货币区块链平台,如 Hyperledger。既然它们在流程改进和成本节约方面有如此巨大的潜力,那为什么自首次实现三年后还没有得到广泛的使用呢?答案很简单:

      “因为我们还没有达到智能合约的临界点”。

      要理解这个答案究竟意味着什么,我们需要结合这些问题来理解这个答案:智能合约将取代什么?在今天它将会如何发生?现在的系统和流程有什么问题?基于这个新的功能和特性,以及所带来的价值,将会如何发生?

      现状

      在当今的大多数系统中,如果公司或个人希望签订交易的合同,多数情况下他们使用的是集中式服务。交易可以是任何事物,从证劵、交易、保险到全球贸易等等。它们之间的数字合同由一家公司运营。但各方并不一定百分之百地信任第三方公司,合同可能会出现无法正常执行或根本不执行的情况,或者由于其他因素导致合同执行的结果可能不正确。因此,各方所做的就是在各自部门之间保留合同的冗余副本。此外,他们还需要让合同与各种数据输入保持同步,因为他们可能不相信自己或他方能做到这一点。然后,合同一旦执行,他们就需要处理付款,并更新各自部门所有相关系统。最后,他们需要记录所有事项,因为对于大多数合同来说,政府和监管机构要求清晰的可审计交易记录。这就是我们当前的现状,情况非常复杂,成本非常高昂。

      alt text

      例如,澳大利亚证券交易所(ASX)估计,在澳大利亚股票市场,端到端的成本大约有 40~50 亿澳元,而这一成本由发行人和最终投资者埋单。

      明日世界:智能合约

      智能合约所要做的就是,缔造一个新世界,比当今世界更加简化。因此,像如上图所示的示例,完全可以使用智能合约。智能合约是一种具有防篡改性的数字协议,在一切需要智能化的地方上,它具有简单、智能的特点。它通晓与合同有关的所有数据,它清楚作为合同的一部分发生的所有付款,因为它执行了这些数据,而且,它还是一个所有相关各方都可以完全信任的信任机制,即使他们之间互不信任。合同中的每个参与者也无需保留冗余副本,因为区块链为每个人提供了一个单一的、最终的、不可改变的源文件,包括监管机构和政府机构。

      alt text

      这个新世界做了两件非常有趣的事情:一是大大降低了执行协议的成本,二是提高了协议的安全性和透明度。

      目前,加密货币标记化是智能合约的主要用途,但这些并非复杂的智能合约,超过 80% 的数字协议超出了简单的所有权。在未来,智能合约将会超越代币和所有权。这类复杂的智能合约将基于触发的事件和输入执行逻辑,并在合同结束时产生某种形式的自动付款。这类复杂的智能合约将为数字协议带来新的标准,并最终将用于处理全球行业数万亿计的美元,这些行业为银行、保险、贸易融资等提供了动力。

      现在,我们了解了这一即将到来的新世界,需要评估都有哪些困难和障碍,以及解决和处理这些问题将如何导致临界点并引发大规模采用。最好的办法是查看软件和 IT 平台交付的最后一次重大转变,即 SaaS(软件即服务)。

      达到软件交付的临界点

      通常情况下,企业和公司都有内部部署软件,他们会购买软件,并在地下室或机房安装服务器。由于最初的支出,加上运维这些服务器的持续成本,因此这一做法很昂贵。后来 SaaS 出现了,为用户软件提供了一种完全不同的模式,即软件是在订阅的基础上获得许可并集中托管,而不是在本地安装。起初有很大的阻力,有很多人说他们永远不会去使用 SaaS,永远不会把他们的数据提供给一个不在实际内部或者网络中的应用程序。但最终,SaaS 取得了胜利。SaaS 应用和平台在世界各地广泛应用于会计(Xero)等业务的各个方面,甚至在客户关系管理 / CRM(Salesforce)等数据极其敏感的情况下也能见到 SaaS 的身影。

      “我们一次又一次地听到同样的担忧:放弃控制权带来的恐慌。” ——Marc Beinoff(Salesforce 创始人)

      因此对于 SaaS 来说,人们最大的不满是他们失去了控制权。那么是什么让每个人最终改变主意并心甘情愿地放弃控制权呢?答案就是价值。SaaS 不仅提供了以前没有的功能,而且在成本、使用、实施速度等方面也有了显著的节省,为了获得更好的产品,以至于因初始成本和持续成本的降低,放弃控制权的的风险就没有那么显著了。而这就是 SaaS 的临界点,当它成为现实时,大规模的应用开始了,并引领我们进入了今天的世界。

      alt text

      现在,既然我们知道了 SaaS 的临界点是如何来临的,那我们就可以将它与智能合约联系起来,并提出同样的问题。我们如何到达智能合约的临界点,为了采用我们需要的一系列的功能,从 “这确实是一个有趣的想法,但我不想放弃控制”,到 “是的,我希望将我的公司转型为一个智能合约驱动的业务”。

      通向智能合约临界点的途径

      要做到这一点,通常有 5 件主要的事情要么是缺失的,要么是需要正确处理的:

      与关键资源的连接。智能合约需要能够获取数据,需要能够提供有意义的输出,无论是以支付形式还是以输出数据的形式,并且还需要在合同相关或要求的背景下知晓区块链之外所发生的事情。

      合同条款和参与者的安全性和隐私性,因为很多时候,参与数字协议的各方希望条款只能在他们之间看到。

      智能合约运行的系统的可扩展性。执行合同的平台需要能够在合同执行过程中表现良好,但也需要能够扩展以适应大量同时执行多个智能合约的场景。

      法律和监管框架。技术常常超过监管框架和法律的步伐,这同样也适用于智能合约。智能合约需要从法律角度来处理,并包含在将使用这些合同的各个行业中的许多法规中。

      智能合约的可访问性。目前只有区块链程序员可以编写智能合约,许多平台不允许他们使用广泛流行的编程语言,如 Java 或 C++。例如,以太坊平台要求程序员学习一种全新的编程语言(Solodity)。

      连接

      在目前分布式账本技术的智能合约的实施中,合同无法连接到外部资源。它不能获取外部数据,也不能与它们所在的区块链之外的 API 进行交互,这是一个很大的限制因素。这是由以下两点决定的:由于分布式账本技术的性质以及在区块链上执行合同的小型虚拟机非常基础,只能做有限的事情。根据设计要求,如果你想它能很好地扩展,就需要小巧、快速及非常精简。

      那么,如何让智能合约与数据源进行通讯、如何获得智能合约来进行支付、以及如何获得智能合约来对其获得的数据进行链下计算呢?因为没有所有这些输入和输出,智能合约的范围将仅限于其执行的区块链上的数据,或者在加密货币平台的情况下,token 的所有权(标记化)。要让智能合约成为对现实世界事件有用的数字协议形式,它就需要了解那些现实世界的事件。它需要了解市场数据、贸易融资的 GPS 数据、用于保险的物联网数据,它需要可靠地接收这些输入,才能对现实世界的事件作出有意义反应的数字协议。最后,它需要能够以用户想要的格式付费和结算。

      实现这一目标的方法多种多样,通常有两种方法:

      方法 1:Oracle 服务:

      在这种方法中,集中式服务或应用程序将从某处获得数据(如 API),并将其传递给区块链上的智能合约,因为智能合约自己无法获得这些数据。这一解决方案完全可行,但确实存在一些缺陷。智能合约的价值在于,它在分布式账本上的防篡改性,但它现在从单个节点或服务器上获取数据。这就破坏了智能合约的 “防篡改性”,因为如果这个 Oracle 节点遭到入侵,那么整个智能合约都可以被骇客操作,因此不是完全安全的防篡改性。如果进入合同的数据不可靠,那么它就不再是一种优秀的数字协议形式。尽管如此,对于某些用例来说,使用可信的 Oracle 已经足够了。

      这种方法已经有多种实现,如 Oracalize(http://www.oraclize.it/)。

      alt text

      方法 2:去中心化的 Oracle 网络

      在这种方法中,去中心化的 Oracle 网络位于智能合约和外部世界之间,充当 “中间件” 层。这样做的目的是允许智能合约以分散的方式获取其输入(或流程输出),从而将智能合约的安全性和防篡改性扩展到它也可以获取和发送数据的程度。例如,你可以有一个节点从三个不同数据源来获取数据,然后通过聚合结果传递给智能合约,或者完全分散多个 Oracle 节点获得来自多个数据源的数据,将结果进行聚合,然后一旦它们就结果达成共识,就将其传递给智能合约。这个例子是端到端真正的去中心化,并且是拥有数万亿美元的大型企业(如证劵、贸易融资、衍生品和保险等)采用智能合约所需要的,因为他们将会看到这个过程的端到端,并希望尽可能多的安全性和不变性。

      alt text

      这种方法的第一个真正实现是 Chainlink,目前由一家名为 smartcontract.com 的初创公司构建。一旦 Chainlink 上线(有望在 2019 年第一或第二季度),届时,这种连接问题将不再是一个问题。

      安全性和隐私性

      2016 年 6 月 17 日,以太网公共区块链上一份名为 DAO 的智能合约被骇客入侵,接近 5000 万美元的投资者资金被转移到骇客控制的分包合同中。尽管由于合同中的检查骇客无法获得这些资金,但这一事件产生了深远的影响。虽然许可式 / 私有区块链中不太可能发生这种攻击,但这起事件已经为智能合约从业者提供了一个经验教训,并强调了强有力的治理的重要性。例如:

      参与方的角色:在一个智能合约平台上合作的各方必须明确定义角色和职责,并确保与智能合约的创建、执行和废止相关的所有流程都有明确的定义。

      制约与平衡:由于以太坊智能合约的安全特性,骇客在 27 天内无法转移被黑的资金,因此,社区才有时间采取行动,重写规则并回滚攻击(硬分叉)。应积极评估故障对经济的影响,并需要内置特征以确保官方能够采取纠正措施以避免或限制交易各方的损失。这件检查必须在设计时要考虑到无缝执行的需要。

      数据和合同的隐私性对于企业相关的智能合约来说可能是一个挑战,具体取决于区块链的访问类型。由于交易记录可能对所有参与者都可见,如果不考虑数据的安全性和隐私性,银行将不会愿意在通用的智能合约平台上进行协作。加密密钥管理对于向未知方隐藏交易细节至关重要,需要解决的问题是应该与所有参与者共享哪些数据。Oracle 提供了链下计算功能,可以帮助确保区块链无需存储或访问各方希望保密的数据。

      与常规的合同不同,一旦部署合同,就无法停止或者修改合同。正因为如此,智能合约需要 100% 的防弹和无 Bug。没有人会把数百万美元投入到一个自动执行的程序中,除非他们确信程序会按预期运行,并且触发机制是正确的、有效的。在过去的一年里,这个行业迅速发展起来,现在已经有许多智能合约审计 / 测试组织和软件平台解决了这个问题。

      可扩展性和性能

      对于不存在的高事务处理速度问题的贷款或抵押贷款等交易,从性能角度来看,无需许可(任何人都可以加入并参与区块的生成)区块链是合适的。然而,其他交易,如贸易融资和证劵,将需要比通常无需许可区块链更好的性能。不管情况如何,出于几个原因,许多企业可能会使用许可式区块链(限制查看、添加账本的权限),而不是无需许可区块链。首先,许可式区块链可以更容易地实现法规遵从性。其次,他们提供了更强大的共识和治理机制。最后,对许多应用程序来说,高吞吐量是必不可少的,私有 / 许可式区块链的性能和可扩展性通常都会更好。虽然需要新的技术来将许可式和无需许可的区块链扩展到许多应用程序所需的吞吐量,但现在许可式区块链已经具备了相当大的性能优势。另一个常见的需求是零停机时间,由于其去中心化设计和共识机制,区块链可以很好地处理这种情况。

      Oracle 还可以提供可扩展性和性能,因为它们具有链下计算功能,可以 “减轻” 在区块链上运行的智能合约的负载。虽然当前许多智能合约平台在性能和可扩展性方面各不相同,但它们都在不断改进,并朝着高性能和可扩展性的共同目标迈进。

      法律及监管框架

      为了使智能合约与现有的法律系统相互作用,智能合约系统的设计者正积极地从法律角度来研究几个细微差别:

      不变性:如上所述,分布式账本上的智能合约具备防篡改的特性。这在许多现实场景中会造成实际问题,人们正在探索一旦合同生效后如何修改合同条款。《合同法》对合同的修改或者解除作了规定,如果需要,可以在智能合约中实现这一点。其中一种方法通常被称为 “应急出口”,是一种通过预先编程的方式,用来改变智能合约的条款。但是,确保正确的权限到位是很棘手的麻烦事。此外,它还消除了智能合约的一些主要特性和优势,因此需要仔细考虑这样的实现。

      合同保密:通常,在区块链上执行的智能合约副本或许可式账本与链上的成员共享。各方的匿名性可以得到保障,但合同执行的保密性却不一定能够得到保障。这是一个受到关注并正在取得进展的领域。如前所述,Oracle 可以通过确保私有数据和信息保持链下状态来提供帮助。还有一些初创公司试图通过使用先进的加密结构来解决隐私问题,以及组织内部和组织之间的数据共享问题。同样,人们正在探索被称为 “零知识证明” 的概念,以找到一种方法,能够将验证交易的过程与查看交易的内容分离开来。

      法律可执行性和裁决性:许多行业(如金融服务)都受到高度监管,并向这些公司盘发特定许可和批准以允许在该行业内运营。然而,金融智能合约的合法性尚有待确立。美国和其他一些国家已采取初步措施,在法律体系中承认分布式账本。要使合同具有可执行性,必须在法律体系和监管机构认为合适的程度上确认双方的身份,并将电子签名视为有效。另外,将法律条款和条件准确的翻译成软件逻辑也是另一个需要考虑的关键方面。像 CommonAccord 和 OpenLaw 这样的初创公司正致力于解决这个问题的平台。

      监管:律师、立法者、监管机构和政府已经开始意识到分布式账本在提高透明度和易于遵守和报告方面的潜力。这些当局的推动将有助于克服法律和行政障碍。

      可访问性

      在今天,要编写一个智能合约,你需要成为从技术角度了解区块链知识的程序员。此外,根据平台的不同,你可能需要了解定制 / 定做的编程语言,比如 Solidity 或 Golang。如果你想写一份合法的智能合约,你除了需要具备上述的技能外,还需要具备法律知识,并且身边没有多少程序员或律师。

      展望未来,智能合约需要能够以更广泛的语言来编写。企业更愿意使用可以利用现有 IT 技能的平台,而不必使用新的定制语言来提升团队水平。像 NEO 这样的平台已经解决了这一问题,为开发人员提供了 Java 和 C# 等语言,许多其他平台都有类似的需求。

      随着智能合约的使用量增加,未来很有可能会出现各种用例的行业标准或模板版本的合同,例如衍生品和贸易融资协议。这些智能合约代码的标准化模板将在社区的反馈基础上继续改进,社区之所以希望改进它们,可能是出于各种原因(如满足一些法律要求)。这意味着并非每个新的智能合约都将从头开始构建,很多都是基于标准和模板,并根据需求进行修改。他们表示,今天有 80% 的合同法都是剽窃,智能合约最终会遵循这一先例。

      何时能被主流采用

      一旦技术和监管成熟,上述问题得到妥善解决的时候,更复杂的智能合约才能得以实现,并开始在现实世界中取代如今的去许多数字协议。

      智能合约的临界点什么时候才能到来呢?考虑到上述几点以及这种数字化转型的规模,智能合约在开始进入主流之前还需一两年。预计 2020 年开始才会被主流采用。

      alt text

      虽然主流采用可能还需要几年的时间,但它终究会到来。因此,公司不应停滞不前,他们应该立即行动,从确定 IT 系统、流程和变更管理政策所需的变更开始。他们还应该开始精心构建外埠生态系统,并选择关键的新参与者来参与他们未来的智能合约生态系统。

      结语

      智能合约为数字时代带来了激动人心的革命性机遇。主流采用将降低风险、降低管理和服务成本,并提高许多行业的业务流程效率。这些好处将来自于技术、业务流程重新设计以及运营模式的根本变化。消费者将受益于更具竞争力的产品,以及更为简单的流程,这些流程不受当今客户体验中的诸多困扰。然而,正如所有突破性创新一样,组织需要谨慎区分什么是炒作,什么是现实。通过将时间和精力集中在理解智能合约的潜力上,并创建一个长期的、健壮的和实用的策略,组织可以实现重新发明数字协议的潜力。

      组织现在就开始理解并规划,这一点很重要,因为 “临界点” 即将到来…… 机会只青睐于有准备的人。

      原文链接:https://medium.com/genesis-blockchain-services/smart-contracts-the-path-to-mainstream-adoption-bb3cea355e83

      posted in Development and general discussion | 开发和技术相关讨论
      李大白
    • 从日流水7000万的Dapp,到区块链游戏的有限和无限法则

      原创:韭菜语录
      转载链接:https://mp.weixin.qq.com/s/EpAylkBeBzLUk8zwYVZhtA
      作者:阿九

      一款日流水7000万元的游戏处于什么水平?

      根据Sensor Tower的报告,王者荣耀ios端,9月收入是1.07亿美金,靠的是过亿的DAU。

      今天要说的这款Dapp游戏Bet Dice,过去24小时的成交量在170万EOS,过去7天成交量约为480万EOS,按照目前的EOS价格,对应的日流水和周流水分别为1000万美金、2822万美金。

      而创造这么高流水的DAU,根据Dapp review和Dapp radda的不同统计方式,分别为一千和一万左右。

      两种“必赢”策略

      BetDice是一款非常简单粗暴的概率游戏,1-100的数字随机出现,如果你选择的数字大于这个随机数,赢走奖金。

      alt text

      这种“简单”设计概率游戏,往往会给玩家一种找到必赢策略的错觉,比如倍投法:

      将中奖概率调至50%,你的赔率会是2,那么每次只下注1个eos,如果输掉,那就加倍下注2个,最后你总会赢回来。

      人总是会产生一种,不会连续输,但我可能会连续赢的错觉,但概率两者其实一样。

      连赢和连输5次的概率都在3%左右,假设他们都发生了,你赢的的eos是5,而你第6次的投入成本是32,就算赢了,盈利仍旧只有1。

      根据大数定律,小概率事件一定会发生,所以总有一次你会输掉所有筹码,当然,如果你有比整个资金池高更多倍数的本金,在无限次数的投注中,你可能会将资金池赢光。

      另外一个看上去必赢的策略是选择直接拉到最高胜率,通过多次投注来累积获得的奖金,俗称吃低保。

      在这个游戏里面,最高的胜率是95%,赔率为1.03,继续做一个计算题,你连续投注13次都是连胜的概率已经在50%左右徘徊来,而你的收益是47%。

      这就意味着,更多次的投注,一次性失去本金的概率会越高。如果你一下失去本金后,本能反应会是什么呢?倍投法了解一下?

      当然,有人会说,我克制住贪婪就好,见好就收,那么多少是好?在这个游戏中,最被忽略的因素其实是时间。

      一次下注到开奖,不到10s,这也是为什么上千的DAU每天却产生40多万比下注的原因,它根本不需要像赌场一样把时钟藏起来,每一个进场的玩家会自动忽略,所以结局已经注定了,高频下注,然后败给大数定律,输光离场。

      所以最好的策略是,做一个吃瓜群众,不进赌场。

      投注即挖矿

      除了告诉你不要进入任何赌场,Bet Dice另外一个设计也非常有意思:投注即挖矿。

      alt text

      目前,你的每一次投注,系统都会给你空投一定比例的DICE,这些DICE可以用来投注,但赢得的也只能是DICE。

      在这种XX即挖矿的模式中,利润分红是其典型的玩法,Fcoin首先让大家记住这种模式,而最近的火牛则有一次将其“发扬光大”。

      这种玩法中,一般会在早期会向用户承诺比较高的分红,让你感觉到一周或者更短的时间就能收回成本,目前以太坊上最火的Dapp ETH333就是这种赤裸裸的资金盘游戏。

      这种游戏在早期,用户能非常方便的提取自己的本金和利润,而一旦资金盘到达一定的瓶颈,比如Fcoin是因为FT被快速挖光,火牛是因为骗来的钱无法继续支付高额分红,那么这时所有在场的玩家都是羔羊,最后只留下一地鸡毛。

      所以做了投注即挖矿的DICE也不例外,未来也会进行利润分红,不过,Bet Dice目前还没有公布其利润分红的具体玩法。

      alt text

      跟火牛这种完全没有任何商业模式的产品不同,这款游戏目前的高流水已经产生了不错的利润,在后续的分红设计中,有可能只是单纯的刺激用户增长。

      当然,也有可能是将赌徒一次性收割个干净。

      区块链游戏的有限和无限法则

      继续来说这款游戏发行的DICE,它的另外一个可能是,该团队还会继续发行其它的游戏,而DICE可以在这些游戏中通用,那么这个做法就很好的将目前BET DICE积累的流量复用,且保证了后续游戏体验的连贯和完整性。

      在过去的爆款区块链游戏中,迷恋猫、fomo3D或者最近的Eos pxiel,都存在一个问题,资金盘到高点结束后,流量和成交量就会骤降,除了最后的胜利者,玩家什么都没有留下,面临昙花一现的风险。

      alt text
      第二个版本的Pxiel游戏,交易量和用户数比第一版少了很多

      这就是有限游戏跟无限游戏的区别,或者叫线性游戏和环形游戏的区别,上述这些游戏玩家在体验一次后,重复体验获得的刺激会更小,而Bet Dice就是典型的无限游戏,或者环形游戏,玩家重复体验的刺激感并不会降低,可能在某个周期内刺激感还会升高。

      这也是传统游戏中,为什么moba、fps等竞技类游戏的生命周期要比一般的RPG游戏生命周期更长的原因,因为前者开发者在完成核心玩法后,后续的维护重点在公平性,而后者则是不断的给玩家提供新的故事、内容和各种活动。

      在过去的游戏开发中,很多有限游戏或线性游戏中也出现了无限游戏的玩法,比如《巫师》系列中衍生出的《昆特牌》,或者最近《太吾绘卷》中的斗蛐蛐,这些设计都会让游戏的生命力得到有效的提升。

      alt text
      昆特牌很好的延续了巫师系列的生命力

      但这些做法都完全由游戏开发者决定,而且过去的无限游戏依旧没法逃离游戏生命周期的问题,到关服的那一天,玩家最后还是什么都没有留下,游戏公司再去激活这些玩家的成本也很高(俗称:洗用户)。

      那么区块链就给出了一个很好的延续无限游戏的方案,由于token的存在,在游戏中玩家会留下确定且不会消失的游戏资产,不论是游戏公司还是那些对这些游戏感兴趣的玩家,都可以针对这些资产来开发新的玩法或者游戏。这对某些需要冷启动,或者需要测试的项目来说,是个天然的流量池。

      通过这种方式,也大大提高了无限游戏的可能性,或许这才是区块链游戏的全部意义。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 都说是下一个十年,DApp为什么还如此冷清?

      原创:区块链前哨
      转载链接:https://mp.weixin.qq.com/s/M59ZI62YRsY8yNFOwnooLA
      作者:前哨小兵甲

      在 1983 年,史蒂芬. 乔布斯就开始谈论现在已被大家熟知的 App 应用商店的商业模式。在 25 年之后,2008 年,苹果 App 应用商店上线,其简单易用的“用户界面”被人所熟知。在网络信息领域过去的 10 年,是 App 蓬勃发展的 10 年。技术发展的浪潮几乎都以十年为一个节点,Web 持续了十年,App 持续了十年,未来的十年则被认为是 DApp 的十年。

      在公众看来,DApp 就类似于一个 iOS 或 Android 应用。一般一个完整的 App 产品包含服务端和客户端两个部分。而一个 DApp, 其数据可以存储在区块链上,读写数据的逻辑也跑在区块链上,所以区块链就充当了大部分服务器端功能。区块链发展了近 10 年,虽然在以太坊上已有上千款 DApp,但到目前为止,却还没有一款能够让大多数用户所使用!

      DApp 的现状
      目前 DApp 主要应用在去中心化的交易所、游戏、博彩、数字收藏品等方面。DappRadar 最新数据显示总共有 829 个 DApp,24 小时内的活跃用户为 8000+。根据 Researchly 对七月上中旬的统计可以看出,DApp 的主要应用集中在博彩、游戏和高风险金融交易(如 PoWH 3D)上,相对于 APP 的实质性应用场景,这些场景可谓是很小众的了。

      alt text
      加密猫作为以太坊上第一个现象级的产品,一经问世就迅速火爆全球。在 2017 年 12 月的高峰期间,加密猫的日活用户为 1.7 万。如今,加密猫只有大约 650 个日活跃用户。今年 6 月的交易数量与去年 12 月 80500 次峰值相比下降了 98.4%。虽然该游戏仍是以太坊相关游戏当中最受欢迎的选择之一,但近几个月以来,公众对游戏中购买与交易活动的兴趣似乎开始大幅下降。

      两个著名开源的有智能合约功能的公共区块链平台,其中以太坊价值 280 亿美元,EOS 价值 46 亿美元。然而根据一名研究员的调查,以太坊和 EOS 目前共有八个分散应用程序(DApp),其中只有 300 多个活跃用户。相对于古典 APP 的日活量,作为运行智能合约和 DApp 的公网,活跃率对比实在有些鲜明。

      alt text
      alt text

      DApp 的困境
      Visa 有大约 8.8 亿张信用卡在流通,全球有几亿活跃用户,为了处理每日交易量,Visa 网络必须每秒处理数万笔交易。但是,在以太坊和 EOS 上 DApp 缺乏活动并不仅仅与扩展公共区块链网络的难度有关。大部分 DApp 界面还过于简陋,相比今天丰富的应用对于用户没有什么吸引力。而且分散系统的概念对于消费者来说,还过于新颖。

      DApp 受阻很大一部分还受制于使用体验以及开发过程。开发人员还要花费很长的时间来优化,如果可以让 DApp 像中心化一样容易使用,还是很容易激励用户的。

      与此同时,以太坊上高昂的 gas(以太坊手续费)对于用户来说有些沉重了,每一条消息提交给以太坊链都要消耗很多的 gas。如果 DApp 不能找到一个有效的办法让用户可以在不知情的情况下支付这些成本,单纯每一次记录所花费的费用就会把这些潜在的用户拒之门外。

      可扩展性
      整个区块链行业还处于一个在初期完善基础架构的阶段,现阶段阻碍区块链大规模应用的最大障碍存在于技术上,比如公链的运行效率。目前的公链还很难支持一个庞大的去中心化商业应用生态。

      “以太坊养猫直接导致了以太坊交易拥堵”-BBC 新闻

      “一个应用就压垮整个区块链网络?”- ConsenSys

      “以太坊拥堵长达半月,开发者大面积停工,Fcoin 刷充值被指元凶”

      目前成功落地的公链都存在效率低、资源占用不合理问题,比特币的 5TPS、以太坊的 25TPS 跟 VISA 的高峰 4000TPS 几乎没有可对比性。目前主要的 DApp 集中在以太坊上,而以太坊目前确实难以承受更多的活跃用户,如果不解决日常容量问题,堵塞几乎就是每天就要面对的问题。

      智能合约
      我们知道区块链的一大作用是保证应用的可信任程度。举例说,一个人在区块链上开发了一个 DApp,自诞生之日起,便具有了不可篡改的特性,包括 DApp 内的业务逻辑也不可篡改。如果用户可以看到它后台的逻辑架构,并清楚地知道它不可能被更改,从而也可以产生更多的信任感。区块链的这种不可篡改性促成了数字版权、防伪、供应链管理这些应用场景的落地。

      但是,在目前的环境和情景下,开发和应用 DApp 并非易事。

      其一,现在的 DApp 其实就是智能合约,需要通过钱包去调用,或者通过一些比较粗糙的网页去使用,前者流程多且耗时,后者麻烦且体验差。

      其二,互联网产品设计思路是“小步快跑、高速迭代”。传统 App 的开发,倾向于强调快速迭代,一般首先是建立一个最小可行产品,然后不断释放更新版本。DApp 基于分布式的区块链网络,一旦提交上线后出现核心 bug 很难迭代。

      在 DApp 的开发中,智能合约一旦被部署到主网,便不能够改变。智能合约的漏洞会使得用户损失资金,毁坏 DApp 开发者的声誉。那么 DApp 的准确性很大程度取决于发布之前代码被检查和测试的程度。从这点来说,比起 APP 开发,DApp 的开发更像是硬件的开发而不是软件的开发。在硬件开发过程中,产品发布之前必须进行严格的测试和原型制造,而硬件的召回则需花费大量资金,并毁坏制造商的声誉。

      高昂的 DApp 费用
      事实上,根本不存在典型 DApp 这种东西。DApp 的表现形式多种多样,从游戏到去中心化交易所皆在此列。在计算成本时,我们重点关注每月唯一身份用户量与每用户每月交易量这两项指标。

      目前只有约 20 款 DApp 每月拥有超过 1000 名唯一身份用户。我们假设要计算的 DApp 属于这 20 款之中,即每月拥有 1000 位真实用户。活跃用户的日均交易数量为 6 笔。而根据常规情况,假定每位用户每月有一半时间访问该项目,这意味着我们的全年交易总量约为 1000 x 6 x 0.5 x 30 = 90000 次。听起来还不错。我们以此条件来计算下在各类高人气智能合约区块链上部署并运行此类应用所需要的成本。

      以太坊
      在以太坊区块链当中,作为开发人员,我们只需要按实际合约部署量付费。大家的用户则需要为与合约相关的所有交易操作付费。根据以太坊发布的黄皮书(〈The Create and CodeDeposit opcodes〉)中附录 G 部分的说明,部署一份合约的最低费用为 32000 gas,外加每字节源代码 200 gas。举例来说,为了创建 CryptoKittiesCore 合约,作者大概需要支付 376 万 9599 gas,外加 4.1 Gwei gas 费用,总金额为 4.64 美元。目前该区块链的 gas 限额为 800 万,因此 10 Gwei gas 的价格约为 0.08 以太币,即 24 美元。换言之,即使大家需要同时利用多项交易部署合约,您的交易成本也不会高于约 0.3 以太币 /100 美元。

      如前所述,用户必须付费才能运行智能合约,下面,让我们看看用户一方一年之内的使用成本。9 万次交易将带来约 90 以太币 /27000 美元成本,这意味着每次交易的平均成本约为 0.001 以太币 /0.03 美元——具体取决于交易进行时的实际 gas 价格。如果您的 DApp 属于交易所那类对执行时间要求很高的类型,那么 gas 成本可能会很高。但如果您的 DApp 能够接受在提交数小时后才执行完成,那么交易成本则会大幅下降。

      在使用以太坊的情况下,您的总体成本将由部署 + 运行成本(由用户支付)构成,且年均支出大约为 90 以太币 /27000 美元。

      EOS
      与以太坊相反,EOS 区块链用户无需为智能合约的使用付费。但大家必须放弃自己的 EOS 代币才能保证智能合约拥有必要的带宽资源、CPU 以及存储空间。此外,RAM 非常珍贵,因此存在着相关内部市场,用户必须在这里购买 RAM 容量才能使用 ; 当然,用完后您可以转手出售。目前,EOS 的 RAM 资源存在巨大的价格波动。

      由于需要首先购买 EOS 代币才能加入,并在使用后进行转售,因此我们很难准确计算 EOS 的服务成本——实际上,单凭转售获利也是完全有可能的。但需要强调的是,为了运行 dApp 而购买 EOS 代币可能会给您带来可观的前期成本压力。

      要在 EOS 上部署智能合约,您需要为其购买对应的 RAM 资源。任何正常的智能合约都至少需要 1 MB 内存资源,价格约为 120 EOS/600 美元。

      在 EOS 当中,开发者需要为每个用户帐户付费。为了向每位用户提供 4 KB 内存,1000 用户的场景至少需要 4000 KB 内存。根据 EOS Resource Planner 网站的当前结果,相关成本大约为 508 EOS/2611 美元。

      应用程序开发者需要支付帐户创建成本以注册新用户。传统企业一直在广告宣传及免费服务等领域投入大量资金,用于吸引更多新用户。相比之下,新区块链帐户创建带来的成本显然微不足道。– 摘自 EOS 技术白皮书

      用户已经有了帐户之后,他们可能需要存储数据。这部分成本也得计算在内。用户数据的大小取决于应用程序类型。如果您的应用程序中涉及大量字符串,那么用户数据规模也将快速增长。这里我们假设最低内存使用水平,即将每位用户的数据拟合为 1 KB 大小,那么 1000 位用户的总内存需求为 1 MB,成本约为 120 EOS/600 美元。

      用户数据已经计算进来。接下来还有 CPU 与带宽。同样,交易所使用的 CPU 及带宽资源量取决于交易的实际类型。除了您所运行的 DApp 之外,这两项指标亦与网络条件有着很大关系。如果有人通过交易向网络发送垃圾邮件,那么您的交易将因 CPU 使用量限制而失败。这里,我们假设 10 EOS 即可覆盖单一用户的需求,那么 1000 名用户大概需要 10000 EOS/50000 美元。

      EOS 与以太坊的不同之处在于,您实际不需要付费以运行 DApp 本身。换言之,在开发完成之后,您可以直接将其部署在 EOS 当中并加以运行。这肯定是种颇具吸引力的模式,当然前提是大家愿意购买代币支持 EOS 区块链。

      那么运行 EOS DApp 的年均支出是多少? 部署成本加上前期运行成本约为 10628 EOS/55000 美元。当然,大家可以随时转售自己持有的 EOS 代币。但遗憾的是,我们没法判断一年之后其实际价值如何。如果您对 EOS 抱有强烈的信心,那么这种模式对您应该具有吸引力——毕竟您深信 EOS 的价值将逐年增长。如此一来,您的 DApp 不仅相当免费运行,甚至有可能带来额外的投资利润。

      小结
      很多人将区块链视为一种神奇的魔法,能够以极低成本解决一切难题。而事实上,区块链效能低下、昂贵且开发难度极高。那么,这是否意味着区块链技术没有实际价值?

      当然不是。大家可能还记得拨号上网的年代,我们不仅需要忍受 64 KBps 的龟速,还得按 KB 支付网费。那时候,640 MB 代表着磁盘存储领域的尖端科技。成本高昂、效果糟糕,但我们是否该放弃努力?当然不是。随着时间的推移,如今我们拥有极高的网速以及几乎用之不尽的存储空间。相信技术的改进,也将使区块链变成成本低廉且易于获取的服务选项。

      至于现在,用户、投资者与开发者则必须清醒地意识到,与传统应用相比,区块链交易的成本相当高昂。因此,只有金融、医疗卫生、房地产等具有高交易价值的行业才适合使用区块链技术。

      DApp 的落地需要基于一个速度更快,扩展性更强,安全性更高的基础设施,即底层链,DApp 的发展依赖于底层链技术的创新。目前区块链的遇冷并不意味着没有未来,反而可以让我们好好反思,沉淀下来去关注技术本身,真正的去创新和突破,塑造区块链美好的未来。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白
    • 十年前端老兵:学习DApp开发,投身下一个浪潮

      原创:区块链前哨
      转载链接:https://mp.weixin.qq.com/s/A56bk9UtcxOD5sXrFCyqsA
      作者:魔法哥

      过去的十年,可以说是 App 的十年。但未来的十年,DApp 被寄予了厚望。App 的形态是前端开发者的专长,而 DApp 将同样离不开前端开发者的参与。

      “CSS 魔法”,08 年加入互联网,是一位有十年经验的前端老兵。他认为区块链将是下一个重要的节点,对区块链技术也有着自己的理解和有启示意义的看法。

      InfoQ:魔法哥,您能先向 InfoQ 的读者介绍下自己吗?

      大家好,很高兴能在 InfoQ 这个平台和大家见面。我叫 “CSS 魔法”,熟悉我的朋友都叫我 “魔法哥”。

      我在 2008 年来到上海,进入互联网行业。一转眼,我已经是一个 “十年经验” 的前端老兵了。工作之余,我会折腾一些开源项目,也经常会在 “CSS 魔法” 公众号编写教程、翻译技术文档。在 2015 年,我还翻译了一本前端领域的重磅图书《CSS 揭秘》,算是为中文技术社区做出了一点微小的贡献。

      InfoQ:作为一名前端工程师,您经历的关键点和转折点都有哪些?

      其实对我来说,“前端” 本身就是一个巨大的转折点。来上海之前,我一直在传统行业工作,投身互联网大潮是一次急转弯式的转型。不过当时的我并不具备对行业大势的深入洞察,转型的动力仅仅是源于兴趣——在互联网行业做产品,离用户更近、效率更高、影响力更大,实在是酷毙了!

      这次转行显然是正确的。这些年每次回老家遇见老同事,他们都会夸我当年有魄力有远见。我其实是很不好意思的,我哪里有远见,只不过是跟着感觉走罢了。
      在前端领域奋斗的这几年,都还算顺利。五年前加入百姓网,可以说是又一个关键点——感觉自己的职业生涯终于迈上了正轨。

      今年上半年,因为一些偶然的机会,我接触到了区块链和 DApp。没想到一发不可收拾,我内心的小宇宙又一次燃烧起来,当年 “投身互联网” 的那种冲动似乎又出现了。我隐隐感觉到,我即将走向下一个重要节点,又一个不可错过的浪潮已经扑面而来!

      InfoQ:为什么区块链和 DApp 会吸引到您的关注?

      我这个人一向来对炒得很热的东西是无感的。所以我刚开始对区块链完全没兴趣,甚至是抵触的。前端领域的新东西都看不过来了,还看什么区块链?不过,机缘巧合之下,我惊奇地发现,原来区块链除了记账,还可以跑代码;作为开发者,还可以在区块链上开发应用!

      基于区块链开发的应用称作 “去中心化” 应用( Decentralized Application ),简称 DApp。去中心化的含义是指,你的应用不仅是把数据存储在区块链节点上,你的应用本身就运行在区块链节点上!

      这个 “新大陆” 深深地吸引了我。简单解释一下,我作为一名前端工程师,精力所限,并不是那么精通后端;但我仍然有一颗做产品的心,一直想着某天可以独立搞一个完整的应用出来,为用户提供价值。可是光有前端,没有后端,能做的事情是比较有限的。而当我遇见 DApp 的时候,不由地眼前一亮!

      做一个 DApp 可以不需要后端。因为 DApp 的数据就存储在区块链上,读写数据的逻辑也跑在区块链上,我并不需要用后端语言写一套程序,也不需要搭一个后端环境,更不需要维护数据库——区块链就是我的后端!

      开发 DApp 的体验让我想起 Flash 时代的个人创作者,只要掌握了 Flash,制作一部动画的所有事情,包括导演、编剧、剪辑、美工、特效,都可以全包了。同样,在区块链上,只要我具备前端技能,就可以写一个完整的应用出来。这种开发体验对一个前端工程师来说,是相当诱人的。

      当然,除此以外,区块链和 DApp 还有一些天生的优势——具体细节我们稍后会聊到——这些也是我关注它们的原因。

      InfoQ:去中心化的 DApp 与传统的 Web 应用相比,架构上有什么差异?

      这两者确实有明显不同,但 DApp 的各个环节是可以类比到传统 Web 应用的:DApp 由客户端和合约端配合实现,类似传统 Web 应用的客户端和服务端。

      “客户端” 顾名思义,是提供给用户使用的产品界面。它可以是 Web 形态,也可以是桌面或移动 app 形态等等。对于前端工程师来说,Web 形态的客户端就是大家的专长,毋庸赘言。

      “合约端” 是指 “智能合约”。智能合约是 DApp 的灵魂,是 DApp 开发者部署到区块链上的一段代码,担任客户端与链之间的桥梁——合约端负责提供接口,客户端可以调用这些接口,触发业务逻辑,或对数据进行增删改查。这听起来和前后端分离的 Web 应用是相为相似的,没错,前端工程师可以快速理解并接受 DApp 的架构模式。

      InfoQ:DApp 相对于传统 Web 应用,优势是什么?

      这是一个好问题。我们通常会听到一种论调,“区块链必将颠覆啥啥啥”。但事实上,这只是一种博眼球的营销口号。区块链被发明并不是为了取代传统互联网,就好比智能手机的诞生不是为了取代 PC。

      但如今区块链广受关注,说明它确实具备一些传统互联网做不到的特性。因此,与传统 Web 应用相比,区块链和 DApp 所擅长的场景和方向肯定会不一样。

      先来说几个 DApp 的先天特性:

      • 去中心化。区块链的 “去中心化” 是由分布式节点来体现的,它通常意味着 DApp 没有单点故障的风险,数据的可信度和安全性也会比中心化应用要高。

      • 公开透明。在大多数链的设计中,区块数据是完全公开的,甚至合约代码也是区块中的数据,合约的调用记录也是区块中的数据,全都是公开的——你能想像一个 Web 应用的后端代码是公开的吗?就算公开了,别人如何相信这些公开的代码就是现在在运行的代码呢?但对 DApp 来说,这就是它的先天特性。所以,如果你需要一个完全公开透明接受公众监督的应用,DApp 可能就是最好的选择。

      • 不可篡改。链式结构保证了区块数据不会被轻易篡改,这个大家都知道。大家可能不知道的是,在大多数链的设计中,合约代码在部署之后就无法修改了。这一点在传统 Web 应用看起来简直就是个 bug,但反过来想一想:如果代码是一种 “规则”,那在某些场景下,“规则可以修改” 是不是反而不可接受?

      大家可能发现了,我一直在说 “特性”,而不是 “优势”。其实所谓优势,就是把特性用在了合适的地方。区块链的魅力在于,它天生就是不一样的东西,它不是为了取代谁。拿现有的框框去套它,可能不会得出什么有意义的结论;而抛开固有思维去拥抱它的 “不一样”,则可能会开创全新的应用形态。

      InfoQ:您刚才提到了应用形态,对于区块链的落地,您看好哪些应用场景或方向?

      区块链和 DApp 作为新生事物,还处在演化之中,同时,我们对它的认知也处在不断演化之中。我很难在这里预测区块链将以哪些应用形态落地,不过我可以简单聊一聊 DApp 已经在某些场景中展现出的潜力:

      • 数据安全。上面提到区块链数据的安全性,这一点在存证、监管、选举等场合将大有用武之地。

      • 游戏。区块链的老本行就是记账,而且是公开的、防篡改的账本,在资产确权方面拥有不可替代的优势。因此不少游戏开发团队已经在区块链领域里试水或大量投入了。

      • 通证经济。通证作为链或应用生态内的价值载体,可以有很多的玩法,开发者可以通过设计激励机制来实现各种运营目的。

      InfoQ:我们讨论的 DApp,一般都是部署在公链上的,那么您选择公链的标准是什么?DApp 的概念最初是由以太坊提出的,那么您如何看待以太坊这些主流的公链平台?

      确实,对于尝试 DApp 的开发者来说,遇到的第一个问题可能就是公链的选择了。选择链相当于选择一个开发平台,类似开发手机 app 需要确定是 iOS 还是 Android 一样。魔法哥认为,在入门阶段选择一条易上手且有前途的公链是最为明智的。“易上手” 可以让你快速入门、快速收获成就感,而 “有前途” 则意味着你积累的经验不会浪费。

      以太坊确实是 DApp 概念的开山鼻祖,我非常佩服他的创始人。以太坊上线已经好几年了,但它仍在不断进化。在眼下,它的某些技术参数已经明显落伍,但它的深厚积累和发展潜力仍然值得看好和期待。

      接下来就不得不提 EOS 了,今年链圈最具话题性的平台就是它了。EOS 有很多独特的设计,也表现出优异的性能,获得了很多开发者的青睐。不过 EOS 定位于企业级市场,对个人开发者来说门槛较高,它的很多设计也一直存有争议,因此魔法哥持观望态度。

      InfoQ:前端工程师着手开发一个最小化的 DApp,需要掌握哪些技能、使用哪些工具、怎么选择编程语言?

      首先,我们需要对区块链的原理、DApp 架构、DApp 产品形态具备基本概念。接下来,我们从客户端和合约端分别来讲一下所需的技能和工具。

      DApp 客户端的开发,其实跟大家平常开发 Web 应用是基本一致的。你可以使用你自己最顺手的前端框架、编辑器、构建工具,无需改变开发习惯。在实现客户端与合约端的交互时,往往需要用到链的 SDK,这是需要开发者去了解的。

      而合约端的开发,就要跟着链的设计和生态来走了。链除了提供客户端 SDK 之外,往往也会提供合约端的开发工具,比如合约开发框架、Web IDE、合约 Lint 工具等等。如果我们只是开发一个小型的 DApp,其实脱离工具纯手写也没什么问题,读通相关文档就好。

      最后,说到编程语言,各条链所采用的合约端开发语言也不尽相同。如果我们选择的某条链刚好采用我们最熟悉的 JavaScript 作为合约语言,那就基本不存在语言学习成本了。关于这几个方面,魔法哥也会在 “CSS 魔法” 公众号陆续发布教程,希望能给大家提供一些参考和帮助。

      总而言之,对前端工程师来说,DApp 的开发成本并不高。而且前端工程师天生离用户最近,更懂交互,更容易开发出用户体验出众的产品来。

      InfoQ:您认为前端工程师有必要去学习区块链并转入相关行业工作吗?

      我觉得这要看情况,看看自己是什么类型。

      如果你是一个谨慎派,喜欢稳扎稳打,则不妨专注地把自己规划好的路线一步步走踏实。对于区块链和 DApp 可以保持关注,也可以上手实践,但不一定要立即投身其中。

      这是因为,区块链行业仍然处于早期,还多方面还很不成熟——毕竟传统互联网已经发展了这么多年,该有的都有了,而区块链才刚刚走出极客的小圈子。另一方面,区块链天生就是招黑体质,发展方向也远远不够明朗,从业者往往需要承受更大的压力。

      而反过来,如果你是一个激进派,喜欢尝试新事物、喜欢开拓未知世界,那区块链行业可能就比较适合你。

      总的来说,这是一个因人而异的问题。但不管怎样,如果你是一个技术人,而且正在对自己的职业生涯做一个或短或长的规划,那么区块链值得你去了解和关注,说不定它就是你打破僵局的转折点。

      posted in Tech Chit Chat 技术话题闲聊版
      李大白