摘要:在9月7日举办的“BSV开发与商业生态大会”上,信息安全从业者Aus.Liu从黑客的思路出发对智能约进行了分析,并列举了以太坊智能合约的三大问题。
信息安全从业者Aus.Liu
9月7日,BitcoinAssociation与OKEx、链得得联合在中国北京举办了一场BSV开发与商业生态大会,嘉楠耘智、wework作为协办方鼎力支持了此次活动。
这次活动是BitcoinAssociation设置中国区域负责人以来的首次线下亮相,同时也是BitcoinSV在中国地区的第一场官方活动。
作为一个信息安全从业者,Aus.Liu从黑客的思路出发对比特币之上的智能合约的进行了分析,他列举了以太坊智能合约的三大问题:一、货币模型限制了业务模型;二、问题是链上定义的VM限制了开发;第三个问题是复杂度的问题。
经过整理编辑,Aus.Liu的演讲全文如下:
我是Aus.Liu,其它地方也用Monkeylord作名字。我是一个信息安全从业者,也是BSV上的一个独立开发者。这可能使我和其它的开发者不太一样,因为我习惯采用一些黑客的思路。
黑客思路是什么样的呢?上学时,有辩论队的同学找到我和室友,原因是他们用的计时软件写死在倒数15秒时提醒,而他们想要倒数30秒。那怎么办?室友说他可以做个一模一样的,做成30秒。而我的思路是什么呢?我说的是我可以通过底层手段把程序内部写死的15改成30。
声音 | 恒久科技:闽保业务涉及信息安全与保密(区块链)技术:恒久科技(SZ002808)在互动平台回复投资者提问时表示,闽保公司是一家信息安全与保密技术的研究开发与应用公司,客户涉及各级政府、银行、电力、军队等多个领域;公司将不断增强在信息安全与保密(区块链)技术与产品的投入力度,不断提高在相关领域中的参与度,努力提升公司相关信息安全与保密产品的市场份额。公司将按照证监会及深交所的相关规定,及时进行相关信息的披露。[2019/12/3]
所以,我的室友成为了一个很好的开发者,他的工程能力很强,而我成为一个安全从业者,这就是不同的思路导致的。
黑客思路的人,对于比特币会有什么样不同的关注?我会更关注底层细微的改变能够带来怎样的可能性,找各种别人想不到的使用场景。所以开发者一般会恨安全从业者,刚开发一个功能,还在吃着火锅唱着歌就被找到一种奇特的用法,然后对于开发来说便是漏洞,就得加班。作为安全出身的开发者,我就喜欢各种各样的可能性,很简单的边界条件变化会带来很大不同。
回归比特币,我们来用这种思路讨论比特币上的智能合约。BSV的扩容和解除限制这样看上去不明显的改变,会带来怎么样的可能性呢?
表面看上去只是容量大了,但是这个容量大了其实带来了巨大的质变。这个质变是什么,大家和我一起探索一下吧。
从一个演示开始
首先我想从一个演示开始,我们看到这个状态灯泡现在是灭的,我们按一下开关,灯泡的状态就变成了亮,再按一下开关,灯泡就会灭。在任何你能访问BSV的地方,你都可以得到灯泡当前的状态。
声音 | 中国科学院院士张景中:人工智能可通过区块链等技术解决信息安全问题:据中国新闻网消息,以“‘智’汇渝州,‘数’造未来”为主题的大数据智能化学术论坛10日在重庆召开。中国科学院院士、中国科学院大学重庆学院人工智能学院院长张景中表示,人工智能的出口模型和算法需要海量的数据支持,在大数据、人工智能、物联网高度高速发展时,数据的获取虽然更加便捷高效,但也面临风险和困难,如缺乏法律保护、数据融合共享不够、数据爆发式增长带来信息安全问题等。他还出,人工智能要实现更大发展,需构建严格的法律保护体系,打破政府、企业、机构之间的信息“孤岛”,并通过区块链、加密技术、人工智能算法等解决信息安全问题,创造新的增长点。[2019/11/11]
这个演示在链上:https://bico.media/15stvxuJ9fzQrshxX8WNzuxeMsNcGQp1AY/Demo/lightbuble.html
实际上,每次按开关的动作都会在BSV链上发一个Tx,这个Tx包含了定义的按开关动作。当需要获取灯泡状态时,通过BitDB把所有按开关动作都取到,我就可以计算出当前灯泡的状态,那这个当前灯泡的状态它到底是什么样的状态呢?完全取决于你按开关的次数。这样实际上构成了一种链上的状态,或者说构成了一种链上状态机。
记住这个演示,我们来看链上存储。
确定性的记录
许多人对BSV的扩容的意义有疑问,虽说目前上限扩到了2G,可实际用处时什么呢?很多人觉得这不过意味着BSV能够作为网盘,而区块链网盘又贵又低效。
动态 | 百度超级链XuperChain、XuperData通过国家工业信息安全发展研究中心评测鉴定所测评:近日,百度超级链旗下XuperChain、XuperData通过国家工业信息安全发展研究中心评测鉴定所的测评。测评经历为期半月的前期摸底,百度超级链先后提交网络架构等20+份技术文档,节点测试、性能测试、智能合约测试等14个类目下的58项用例均满足要求。值得一提的是,在性能测试中,百度超级链并发可达每秒87000笔交易。[2019/8/16]
实际上这种扩容仅仅是网盘吗?要回答这个问题,就要回到一个更本质的问题,即——链上存储的数据,只是单纯的数据吗?链上存储和普通的云存储的本质区别在哪里?
如果你足够敏锐,你会发现,PoW赋信,和不可篡改。存储一旦上链,就具有和PoW一样高的确定性,并可以公开访问。对于确定性和不可篡改的信任,是云存储难以提供的。比特币上的数据存储,实际上就是提供了这样一种不可篡改并且能够公共访问的数据源。
那么,数据又是什么呢?数据不仅仅是静态的文件,不仅仅是文本和视频,其实一切东西都是数据,用户的业务请求,服务器种运行的代码,同样也是数据。或者说数据本身是一种状态,而状态的表示也是数据。世界上各种各样的复杂状态都可以被规范化地表示为数据,作为历史被区块链记录,就像WeatherSV做的事情,成为确定性的记录。
比特币包含的记录的确定性是由熵保证的,这是PoS或者BFT所难以达到的。那么这种确定性的记录能在智能合约方面带来什么改变呢?我们得先来看智能合约的本质,状态机。
动态 | MyEtherWallet敦促用户保护个人信息安全 免于欺诈:据MyEtherWallet官方,MyEtherWallet在Twitter上提醒其用户表示,近期有电子邮件以MyEtherWallet的名义要求用户提供个人信息,对此,用户应该注意:1.MyEtherWallet从不主动给用户发邮件;2.MyEtherWallet从不要求用户提供私钥;3.保持怀疑。[2019/2/5]
确定性有限状态自动机
其实我们谈论智能合约的时候,智能合约究竟是什么东西?
程序员大概都了解一个东西,叫有限状态自动机,或者叫确定性有限状态自动机,即DFA,这个东西其实是各种各样程序的基础。
包括像以太坊或者各种各样的智能合约的公链,实际上在构建一种状态机,这种状态机接受输入,产生状态转移。输入可能是交易或操作码,链上状态机接受输入,改变链上的状态比如账户金额,或者链上的其他状态。
各种程序其实都是状态机,比如之前的灯泡演示,灯泡有亮灭两种状态,按按钮是输入,产生两种状态间的状态转移。
我们从更准确一点的定义来看DFA是什么的话,它其实是一个五元组:一个非空的有限状态集合、输入字母表、状态转移函数、开始的状态、接受状态的集合。
我们用这种定义反思一下链上的VM,当我们谈论链上的智能合约的时候,我们需要的是一个什么东西?我们要的其实是一个公开的可验证的确定性的状态,以及确定性的状态转移函数。比如说,我们想要某种代币或合约时,我们真正关心的其实不是程序如何运行,而是要的功能能够确定性地实现,并且可验证,任何人无法篡改。
声音 | 上海市信息安全测评认证中心主任:2017年区块链应用安全问题造成的损失达20亿美元:据全景网报道,在第三届区块链开发大会上,上海市信息安全测评认证中心主任蒋力群分享了两组数据:1. 从2011年到2018年这段时间里,由于区块链的应用安全问题,造成的损失达到30亿美金,其中17年最可怕,达到20亿美金。2. 从区块链技术架构层级的角度看,风险事故最频发的受攻击面依次是业务层(71.17%)、合约层(20.72%)、共识层(4.51%)和网络层(3.6%)。从受攻击点来看,交易平台(34%)、智能合约(20%)和普通用户(19%)成为核心的受害人。京东集团大数据与智能供应链事业部翟欣磊从技术的角度表达了自己的观点:因为区块链是未来安全计算的底层,但是现在安全计算的主要问题在于它在边缘计算的系统中,添加比如同态加密这样的算法,一旦形成非常复杂的数据结构,它的性能可能就无法保证。[2018/12/20]
在这个过程中,合约或链规定了初始状态、接受状态以及状态集合,用户提供了输入并且被记录,状态转移函数则设置在共识里。从而产生确定性的状态。从以太坊发源的一系列智能合约的区块链,都是这么干的。
然而,把状态转移函数定义在共识里,存在几个严重的问题。
以太坊方式智能合约的问题
第一个问题是货币模型限制了业务模型。尽管图灵完备意味着可以做任何程序,但是,要将业务场景匹配到货币模型上,始终是一件很困难的事情。
许多业务模型不但不是货币模型,甚至难以用货币模型表达,这导致了传统业务很难在智能合约上开发,因为将其他业务模型翻译为货币模型是难度非常高的工作。以至于相对成功的智能合约往往局限于代币或数字资产这种天然适合货币模型的场景。而大众乃至开发者们对智能合约的理解也往往局限在代币和数字资产上。
第二个问题是链上定义的VM限制了开发,若为了区块链能够运行和扩容,共识中的状态转移函数就必须越简单越好,然而这样的话,开发就变得复杂了。虽然技术方面会有很多牛人写编译器,但是依然,很难复用各种语言生态中的组件。
这极大地提高了智能合约的技术门槛,再加上模型的翻译,门槛就更高了,这使得开发难以大规模进行。作为一个喜欢用JS的伪全栈工程师,用JS写前端,用JS写后端,用JS访问数据库,为何就不能用用ChromeV8引擎跑链上VM呢。做不到,因为VM已经被定义好了,无法自己选择。
第三个问题是复杂度的问题。状态转移的计算在共识层中,这带来了严重的性能问题,网络拥有大量算力,然而整个链的处理能力却比不过一台古老的家用计算机。能否完整地承载一个通常的程序都困难。
许多商业服务里单个高性能服务器都不能满足业务需要了,更别说链上合约了,高吞吐量?基本不可能。这些问题根本的原因是,状态转移函数定义在共识中,所有的节点都必须计算状态转移来进行验证,要不然无法保证状态的确定性。
状态的确定性并不需要计算
有以下计算式:(1087357389+87890345434)*28+897733^21388233-73004832%3
它的结果是什么?不计算不知道。但是我问你,它的结果是确定的吗?是不是不管谁来计算,结果唯一且不会发生变化?实际上,我们并不需要进行任何的计算就知道结果是确定的。因为我们知道这几个运算都是确定的,用来计算的数字也是已经确定的了。
足够聪明的话,你大概已经明白我要表达的意思了。对于一个DFA,只要它的定义是确定的,状态转移函数是确定的,输入流也是确定的,那么,你并不需要执行状态转移函数,就可以知道执行后的状态是确定的。
这种状态的确定性,是不需要计算的就可以获得的。必须要去计算的,只是想知道具体结果的人,即对当前状态感兴趣的人。所以,要达到智能合约的目的,只需要确定性地定义DFA,以及其状态转移函数,并且产生一个确定性的输入流。
一旦这些都确定了,链上计算,其实是不需要的,因为不论是链上计算还是链下计算,在哪里计算并不会影响结果的确定性。就像那个计算式,你在家里计算和在公园里计算并不会给结果带来任何差别。
BSV扩容产生的本质改变,也就正在于此处了,确定性,而且是PoW保证的确定性。
BSV带来的全新的智能合约可能
那么如何去做呢?原理实际上很简单,其实就是使用BSV存储的确定性,来确定性地定义DFA,你就得到了不可篡改、公开可验证的DFA。通过在BSV链上公开定义状态集合、状态转移函数、开始状态和结束状态,以及,得到确定性的TX输入流的排序方法,一个接受链上输入的链上智能合约就产生了。
在这个里面,能不能自己定义一些复杂的状态对象呢?完全可以。将TX定义为输入时,能不能采用自定义的数据结构呢?完全可以。定义状态转移函数时,能不能用自己习惯的语言呢?完全可以,只要代码和VM都是确定性的。
灯泡的演示就算是用JS编写的简单链上DFA,实际上这些定义大部分就是JS代码。
讲解到这里,聪明的人已经懂得如何在BSV上实现这种智能合约了,实际上这就是Tokenized上智能合约的思路之一,也是unwriter为什么称Planaria为InfiniteStateMachine的原因。
以太坊的分片扩容方案思路,本质上也是放弃链上计算,只让感兴趣的人或分片进行计算。然而可惜的是,以太坊以及其模仿者,终究无法通过这种思路扩容。
为什么以太坊必须进行链上计算
简单来讲,是攻击成本问题。如果以太坊不进行链上计算来验证输入是否有效,那么它就无法阻止攻击者用大量无效输入堵塞状态机,无止境地消耗计算资源。攻击成本为零会让状态计算在计算成本上不可行。
目前的以太坊尽管以太坊有Gas机制来处理无效输入,但是Gas机制也依赖于状态计算,除非以太坊有不依赖EVM状态计算的外部Gas机制。而比特币数据存储的手续费价格,正好从攻击成本上解决了这个问题。即便是无效输入,也需要付出数据上链成本,实际上就构成了不依赖合约状态的智能合约的Gas。
其实,构建在比特币二层,使用比特币作为Gas的EVM会是更理想的智能合约引擎。每想及此处,作为一个比特币原教旨主义者,都不免感慨,BTC本应成为智能合约的底层区块链,可惜被各种强加在共识上的限制捆住了手脚。如今这一切的应用开发,其实早在四五年前就应当繁荣发展了,而不是看着Github上一堆在四五年前停止维护的比特币应用项目感叹前人智慧。
幸好我们有了BSV。
标签:BSV以太坊比特币BSV币BSV价格以太坊币是什么币比特币中国官网联系方式40亿比特币能提现吗比特币最新价格行情走势
长江商报消息●长江商报记者陈妮希中国在线教育最大两家上市公司——新东方(NYSE:EDU)和好未来(NYSE:TAL)相继出现首亏.
1900/1/1 0:00:00摘要:DeFi已经形成了气候,基于DAI的衍生品也越来越多,算法驱动、无须许可、透明等特性,让去中心化金融呈现出很多跟之前完全的不同样貌,MakerDAO的DAI解决了加密货币的稳定性问题.
1900/1/1 0:00:00据泰媒报道,8月5日,泰国一22岁的女子到曼谷美容院进行整容,手术结束后昏迷不醒到现在已经5个月了.
1900/1/1 0:00:00LaMonedadeHierro 铁币 (1976) 胡安·克利索斯托莫·拉芬努尔 (1797-1824) 洛克的卷帙,层层的书架, 棋盘格的平坦庭院的光, 还有那只手.
1900/1/1 0:00:00摘要:中国银行前行长李礼辉:超越国家主权有可能从根本上重构全球的货币体系;媒体:Facebook与摩根大通会晤26家央行官员探讨加密货币;OKEx韩国交易所下架五种隐私币.
1900/1/1 0:00:00每经记者:刘永生韩阳每经编辑:徐豪 ▲视觉中国图 日前,加密数字货币波场创始人孙宇晨突发微博表示,“因突发肾结石正于医院治疗,因故取消与巴菲特先生的午餐会面.
1900/1/1 0:00:00