摘要:在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。
慢雾首席信息安全官:WinRAR存在安全漏洞,且WinRAR漏洞检测工具也是恶意钓鱼程序:金色财经报道,据慢雾首席信息安全官23pds发推称,WinRAR爆远程代码执行漏洞(CVE-2023-40477),WinRAR压缩软件是一款解压缩软件,电脑装机所需的软件之一,攻击者引诱目标访问恶意页面或简单地打开恶意文件就可以利用此漏洞执行代码,一旦用户执行可能让黑客控制你的电脑。
加密货币用户注意升级, 同时注意现在出现所谓'WinRAR漏洞检测工具'也是恶意钓鱼程序,注意资金风险。[2023/8/22 18:15:21]
所以,我的室友成为了一个很好的开发者,他的工程能力很强,而我成为一个安全从业者,这就是不同的思路导致的。
黑客思路的人,对于比特币会有什么样不同的关注?我会更关注底层细微的改变能够带来怎样的可能性,找各种别人想不到的使用场景。所以开发者一般会恨安全从业者,刚开发一个功能,还在吃着火锅唱着歌就被找到一种奇特的用法,然后对于开发来说便是漏洞,就得加班。作为安全出身的开发者,我就喜欢各种各样的可能性,很简单的边界条件变化会带来很大不同。
回归比特币,我们来用这种思路讨论比特币上的智能合约。BSV的扩容和解除限制这样看上去不明显的改变,会带来怎么样的可能性呢?
表面看上去只是容量大了,但是这个容量大了其实带来了巨大的质变。这个质变是什么,大家和我一起探索一下吧。
Polygon首席信息安全官:UST昨日的抛售很可疑:5月8日消息,Polygon首席信息安全官Mudit Gupta表示,UST昨日抛售很可疑:
1. Terraform Labs昨天从Curve中移除了1.5亿美元的UST流动性;
2. 1分钟后,一个新近转入资金的地址将8400万UST桥接到以太坊,4分钟后,它抛售UST,引发抛售;
3. 不久之后,Terraform Labs从Curve中移除了另外1亿美元的UST流动性;
4. 随着UST开始脱锚,一位未知人士开始抛售ETH并购买UST(1亿美元以上);
5. 由于UST的交易价格低于锚定汇率,他们一直在获利,同时避免了抛售ETH的不利影响;
Mudit Gupta称已经形成了自己的结论,但对分享它感到不自信/舒服。[2022/5/9 2:59:14]
从一个演示开始
首先我想从一个演示开始,我们看到这个状态灯泡现在是灭的,我们按一下开关,灯泡的状态就变成了亮,再按一下开关,灯泡就会灭。在任何你能访问BSV的地方,你都可以得到灯泡当前的状态。
这个演示在链上:https://bico.media/15stvxuJ9fzQrshxX8WNzuxeMsNcGQp1AY/Demo/lightbuble.html
实际上,每次按开关的动作都会在BSV链上发一个Tx,这个Tx包含了定义的按开关动作。当需要获取灯泡状态时,通过BitDB把所有按开关动作都取到,我就可以计算出当前灯泡的状态,那这个当前灯泡的状态它到底是什么样的状态呢?完全取决于你按开关的次数。这样实际上构成了一种链上的状态,或者说构成了一种链上状态机。
国家计算机网络与信息安全管理中心官员呼吁关注数字货币风险:国家计算机网络与信息安全管理中心上海分中心主任王寒梅表示,随着互联网金融风险专项整治的积极推进,行业监管风险得到了持续的缓解。但互联网金融面临的挑战仍然存在,数字货币的风险仍需关注。ICON、SKO等数字货币交易模式异常火热,引发、项目跑路等风险。(上证报)[2020/12/7 14:27:40]
记住这个演示,我们来看链上存储。
确定性的记录
许多人对BSV的扩容的意义有疑问,虽说目前上限扩到了2G,可实际用处时什么呢?很多人觉得这不过意味着BSV能够作为网盘,而区块链网盘又贵又低效。
实际上这种扩容仅仅是网盘吗?要回答这个问题,就要回到一个更本质的问题,即——链上存储的数据,只是单纯的数据吗?链上存储和普通的云存储的本质区别在哪里?
如果你足够敏锐,你会发现,PoW赋信,和不可篡改。存储一旦上链,就具有和PoW一样高的确定性,并可以公开访问。对于确定性和不可篡改的信任,是云存储难以提供的。比特币上的数据存储,实际上就是提供了这样一种不可篡改并且能够公共访问的数据源。
那么,数据又是什么呢?数据不仅仅是静态的文件,不仅仅是文本和视频,其实一切东西都是数据,用户的业务请求,服务器种运行的代码,同样也是数据。或者说数据本身是一种状态,而状态的表示也是数据。世界上各种各样的复杂状态都可以被规范化地表示为数据,作为历史被区块链记录,就像WeatherSV做的事情,成为确定性的记录。
声音 | 中国科学院张景中:要在人工智能领域实现更大发展 需通过区块链等解决信息安全问题:据人民网消息,数学家、中国科学院院士张景中表示,目前人工智能在蓬勃发展的同时,也还面临一些难题,比如缺乏法律保护,数据融合共享还不够,数据爆发式增长带来信息安全问题等。在他看来,要在人工智能领域实现更大发展,需要构建严格的法律保护体系,打破政府、企业、机构之间的信息“孤岛”,并且通过区块链、加密技术、人工智能算法等解决信息安全问题,创造新的增长点。[2019/11/10]
比特币包含的记录的确定性是由熵保证的,这是PoS或者BFT所难以达到的。那么这种确定性的记录能在智能合约方面带来什么改变呢?我们得先来看智能合约的本质,状态机。
确定性有限状态自动机
其实我们谈论智能合约的时候,智能合约究竟是什么东西?
程序员大概都了解一个东西,叫有限状态自动机,或者叫确定性有限状态自动机,即DFA,这个东西其实是各种各样程序的基础。
包括像以太坊或者各种各样的智能合约的公链,实际上在构建一种状态机,这种状态机接受输入,产生状态转移。输入可能是交易或操作码,链上状态机接受输入,改变链上的状态比如账户金额,或者链上的其他状态。
各种程序其实都是状态机,比如之前的灯泡演示,灯泡有亮灭两种状态,按按钮是输入,产生两种状态间的状态转移。
我们从更准确一点的定义来看DFA是什么的话,它其实是一个五元组:一个非空的有限状态集合、输入字母表、状态转移函数、开始的状态、接受状态的集合。
声音 | 苏恒:要结合《区块链信息服务管理规定》,加强区块链信息安全治理:据中国金融信息网报道,在“2019中国国际区块链技术与应用大会”上,中国工商银行软件开发中心总经理助理苏恒称,要结合《区块链信息服务管理规定》,加强区块链信息安全治理。《区块链信息服务管理规定》对从事区块链技术研究和应用的从业者来说是里程碑事件,明确了区块链信息服务发展的规范及相关要求。[2019/4/10]
我们用这种定义反思一下链上的VM,当我们谈论链上的智能合约的时候,我们需要的是一个什么东西?我们要的其实是一个公开的可验证的确定性的状态,以及确定性的状态转移函数。比如说,我们想要某种代币或合约时,我们真正关心的其实不是程序如何运行,而是要的功能能够确定性地实现,并且可验证,任何人无法篡改。
在这个过程中,合约或链规定了初始状态、接受状态以及状态集合,用户提供了输入并且被记录,状态转移函数则设置在共识里。从而产生确定性的状态。从以太坊发源的一系列智能合约的区块链,都是这么干的。
然而,把状态转移函数定义在共识里,存在几个严重的问题。
以太坊方式智能合约的问题
第一个问题是货币模型限制了业务模型。尽管图灵完备意味着可以做任何程序,但是,要将业务场景匹配到货币模型上,始终是一件很困难的事情。
许多业务模型不但不是货币模型,甚至难以用货币模型表达,这导致了传统业务很难在智能合约上开发,因为将其他业务模型翻译为货币模型是难度非常高的工作。以至于相对成功的智能合约往往局限于代币或数字资产这种天然适合货币模型的场景。而大众乃至开发者们对智能合约的理解也往往局限在代币和数字资产上。
第二个问题是链上定义的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亿比特币能提现吗比特币最新价格行情走势
PoS挖矿会是2019年币圈的一个重要风口,而Staking经济则会成为币圈一种新的商业模式,改变交易所、钱包、矿场和用户的投资逻辑和投资习惯,成为继比特币PoW挖矿后的又一次财富盛宴.
1900/1/1 0:00:00世界上使用最广泛的加密货币是什么?如果您认为它是比特币,则可能是错误的,虽然它约占全球数字资产总市值的70%.
1900/1/1 0:00:00比特币已经出现了很多年了,一直以来都是争议中存在和发展,至于什么是比特币呢?下面我给大家介绍一下比特币的基本概念和运行原理。比特币系统是一个基于P2P网络的、开源的、去中心化的货币交易系统.
1900/1/1 0:00:00乐居财经讯李礼8月15日,长实集团披露2019年半年报。 物业发展 回顾今年上半年度,市场对本港住宅物业需求持续,美国减息机会普遍预期增加,楼市维持平稳.
1900/1/1 0:00:00为什么说贫穷会限制人们的想象力?为什么在一场心理学试验中,所有人都和100英镑近在咫尺却最终无缘? 什么是视网膜效应?01<< 相信你一定看过这个新闻:一个骑着共享单车逆行的程序员大.
1900/1/1 0:00:00来源:钛媒体 作者/李非凡 可曾想象,有一天,在你屋脚处沉默的那台个人电脑,或许可以找到地外文明存在的证据?这样地外讯息跨时空的“第五类接触”不是科幻,来源于可操作的现实.
1900/1/1 0:00:00