摘要:在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。
Meta设立首席信息安全官新职位:金色财经报道,据报道,Facebook母公司Meta任命副总裁盖·罗森担任首席信息安全官(CISO),这也是Meta第一次设立该职位。据悉,罗森于2013年加入Facebook,最近他开始负责产品安全和诚信事务,成为Meta首席信息安全官。
?扎克伯格在备忘录中表示,任命罗森担任首席信息安全官可以强化公司的安全工作,在安全问题方面增强领导力和治理能力。[2022/6/7 4:07:08]
所以,我的室友成为了一个很好的开发者,他的工程能力很强,而我成为一个安全从业者,这就是不同的思路导致的。
黑客思路的人,对于比特币会有什么样不同的关注?我会更关注底层细微的改变能够带来怎样的可能性,找各种别人想不到的使用场景。所以开发者一般会恨安全从业者,刚开发一个功能,还在吃着火锅唱着歌就被找到一种奇特的用法,然后对于开发来说便是漏洞,就得加班。作为安全出身的开发者,我就喜欢各种各样的可能性,很简单的边界条件变化会带来很大不同。
回归比特币,我们来用这种思路讨论比特币上的智能合约。BSV的扩容和解除限制这样看上去不明显的改变,会带来怎么样的可能性呢?
表面看上去只是容量大了,但是这个容量大了其实带来了巨大的质变。这个质变是什么,大家和我一起探索一下吧。
从一个演示开始
首先我想从一个演示开始,我们看到这个状态灯泡现在是灭的,我们按一下开关,灯泡的状态就变成了亮,再按一下开关,灯泡就会灭。在任何你能访问BSV的地方,你都可以得到灯泡当前的状态。
韩国加密投资信托公司Hyperithm获得信息安全管理系统认证:9月7日消息,韩国加密投资信托公司Hyperithm获得了信息安全管理系统(ISMS)认证。韩国当局表示,所有虚拟资产运营企业都必须获得该认证。据称,Hyperithm是该国首家通过公共机关信息安全认证的虚拟资产经纪公司。根据该公司的声明,除了加密交易所之外,加密相关企业正在遵守政府标准,以提高虚拟资产行业的安全性和透明度。此前消息,加密托管服务提供商KODA(Korea Digital Assets)和仅面向虚拟资产的银行Sandbank宣布获得此认证。(Forkast)[2021/9/7 23:06:48]
这个演示在链上:https://bico.media/15stvxuJ9fzQrshxX8WNzuxeMsNcGQp1AY/Demo/lightbuble.html
实际上,每次按开关的动作都会在BSV链上发一个Tx,这个Tx包含了定义的按开关动作。当需要获取灯泡状态时,通过BitDB把所有按开关动作都取到,我就可以计算出当前灯泡的状态,那这个当前灯泡的状态它到底是什么样的状态呢?完全取决于你按开关的次数。这样实际上构成了一种链上的状态,或者说构成了一种链上状态机。
记住这个演示,我们来看链上存储。
确定性的记录
许多人对BSV的扩容的意义有疑问,虽说目前上限扩到了2G,可实际用处时什么呢?很多人觉得这不过意味着BSV能够作为网盘,而区块链网盘又贵又低效。
声音 | 世界银行集团首席信息安全架构师:利用区块链的信任数据交易一定要有安全性:由中国金融四十人论坛等机构共同推出的首届外滩金融峰会上,世界银行集团首席信息安全架构师张志军表示,利用区块链的信任数据交易,一定要有安全性。数字货币是否可行性,最后看用户是否有足够的采纳度。(第一财经)[2019/10/28]
实际上这种扩容仅仅是网盘吗?要回答这个问题,就要回到一个更本质的问题,即——链上存储的数据,只是单纯的数据吗?链上存储和普通的云存储的本质区别在哪里?
如果你足够敏锐,你会发现,PoW赋信,和不可篡改。存储一旦上链,就具有和PoW一样高的确定性,并可以公开访问。对于确定性和不可篡改的信任,是云存储难以提供的。比特币上的数据存储,实际上就是提供了这样一种不可篡改并且能够公共访问的数据源。
那么,数据又是什么呢?数据不仅仅是静态的文件,不仅仅是文本和视频,其实一切东西都是数据,用户的业务请求,服务器种运行的代码,同样也是数据。或者说数据本身是一种状态,而状态的表示也是数据。世界上各种各样的复杂状态都可以被规范化地表示为数据,作为历史被区块链记录,就像WeatherSV做的事情,成为确定性的记录。
比特币包含的记录的确定性是由熵保证的,这是PoS或者BFT所难以达到的。那么这种确定性的记录能在智能合约方面带来什么改变呢?我们得先来看智能合约的本质,状态机。
确定性有限状态自动机
声音 | 金融壹账通施奕明:信息安全标准的升级将提升区块链等技术:据《证券日报》报道,金融壹账通智能风控总经理、加马人工智能研究院首席科学家施奕明在接受采访时表示,5G出来之后,信息安全的标准会升级,信息会得到更好的保护。在区块链、云技术上会有很大的提升。[2019/8/15]
其实我们谈论智能合约的时候,智能合约究竟是什么东西?
程序员大概都了解一个东西,叫有限状态自动机,或者叫确定性有限状态自动机,即DFA,这个东西其实是各种各样程序的基础。
包括像以太坊或者各种各样的智能合约的公链,实际上在构建一种状态机,这种状态机接受输入,产生状态转移。输入可能是交易或操作码,链上状态机接受输入,改变链上的状态比如账户金额,或者链上的其他状态。
各种程序其实都是状态机,比如之前的灯泡演示,灯泡有亮灭两种状态,按按钮是输入,产生两种状态间的状态转移。
我们从更准确一点的定义来看DFA是什么的话,它其实是一个五元组:一个非空的有限状态集合、输入字母表、状态转移函数、开始的状态、接受状态的集合。
我们用这种定义反思一下链上的VM,当我们谈论链上的智能合约的时候,我们需要的是一个什么东西?我们要的其实是一个公开的可验证的确定性的状态,以及确定性的状态转移函数。比如说,我们想要某种代币或合约时,我们真正关心的其实不是程序如何运行,而是要的功能能够确定性地实现,并且可验证,任何人无法篡改。
日本数字货币交易所GMO Coin成立“集团信息安全审计办公室”保护客户信息 : 据cointelegraph报道,3月30日发布的一份新闻稿,GMO Coin的母公司GMO Internet宣布成立“集团信息安全审计办公室”,以制定更有力的安全措施,以保护客户信息。 在CoinCheck交易所被黑客袭击之后,日本金融厅对本土加密货币交易上进行了一系列现场检查,并且发布了业务整改命令——而GMO Coin也是收到业务整改令的加密货币交易所之一。[2018/4/1]
在这个过程中,合约或链规定了初始状态、接受状态以及状态集合,用户提供了输入并且被记录,状态转移函数则设置在共识里。从而产生确定性的状态。从以太坊发源的一系列智能合约的区块链,都是这么干的。
然而,把状态转移函数定义在共识里,存在几个严重的问题。
以太坊方式智能合约的问题
第一个问题是货币模型限制了业务模型。尽管图灵完备意味着可以做任何程序,但是,要将业务场景匹配到货币模型上,始终是一件很困难的事情。
许多业务模型不但不是货币模型,甚至难以用货币模型表达,这导致了传统业务很难在智能合约上开发,因为将其他业务模型翻译为货币模型是难度非常高的工作。以至于相对成功的智能合约往往局限于代币或数字资产这种天然适合货币模型的场景。而大众乃至开发者们对智能合约的理解也往往局限在代币和数字资产上。
第二个问题是链上定义的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亿比特币能提现吗比特币最新价格行情走势
昨天,去中心化交易所协议0x项目方称其发现严重安全漏洞。PeckShield安全人员跟进分析发现,0xExchange合约在校验订单签名时存在缺陷,导致攻击者可以进行恶意挂单,进而将用户的数字资.
1900/1/1 0:00:00在人类记忆的潜意识里,简短好记、有排列规律、有特殊寓意...诸如此类的东西往往更容易让人记住,域名也是一样,短字符、含义清晰的域名更容易被记住,因此也具有更高的投资价值,容易得到更多人的青睐.
1900/1/1 0:00:00取名方安生,从未真安生 满嘴是民主,祸乱香港城 安生,谓之安定民生。然而,陈方安生却未能对得起她这个充满希冀、利国利民的名字!陈方安生是香港开埠以来首位华人布政司,也是唯一一位女性布政司.
1900/1/1 0:00:00此前我们报道过,全新一代沃尔沃V60将会以整车进口引入的方式于8月6日在国内正式上市。日前,该车已在中国正式上市,动力上提供T4、T5以及T6插电式混动版本三种动力车型.
1900/1/1 0:00:00有人说巴菲特最成功的作品是伯克希尔·哈撒韦,复合增长率常年保持在20%以上,全世界投资公司的楷模,财富神话中的万神殿.
1900/1/1 0:00:00截止8月20日,OKExJumpstart六期EC已经上线近半月,走出了一条理想中的IEO项目K线图.
1900/1/1 0:00:00