2019年,Meta推出了加密货币项目Libra,吸引了整个金融市场的关注,但随后Libra因监管限制被迫转型Diem。今年1月底,Diem以约1.82亿美元的价格被Meta出售。Meta的Libra和Diem计划看起来是无疾而终,但却给加密行业留下了宝贵的遗产——弥补了Solidity及EVM缺陷的Move编程语言以及衍生出的公链团队,比如最具代表性的Aptos、Sui和Linera。Move编程语言从最开始被推出以来,便被不少开发者誉为是最适合区块链的语言。随着最近Aptos和Sui等超新公链的强势出场,Move语言也被大家广泛的议论,并不断被与Solidity和Rust做对比。本篇文章我们将Move语言的金融属性,智能合约的安全性,灵活性,可组合性,以及Move语言和Solidity,Rust的联系和比较进行探讨,并追踪建立在Move语言上的新公链们的进展。一、Move的两大优势
目前最主流的智能合约语言是Solidity,和它相比Move最大的特点是安全,Move从语言、虚拟机、合约调用、合约运行等层面为智能合约提供了全方位安全保障,此外在可组合性方面,Move也提供了更优解决方案。下面将分别介绍Move这两个最大优势。1、从底层确保智能合约的安全性
根据慢雾此前的报告,2021年区块链安全事件导致损失超98亿美元。作为新兴的编程语言,Move语言在安全性上也做了不同层面的突破和创新。正如First-classResources的真正含义是「数字资产是一等公民」一样,Move是为操作数字资产而生的智能合约语言。相比其他语言,Move对Token资产进行了更为原生,底层的处理。Move语言专门将资产定义为一种Resource,与其他的数据区分开来。在区块链语境下,代币就是一种Resource,同时Resource数据必须要存储在账户下面,在交易过程中,资产必须要流向一个地方,要么转移到另一个地址,要么被销毁,代币不可被复制或被“双重使用”。而Solidity和绝大多数编程语言一样将Token作为数值变量处理,资产只是可以被加减的数字,一个地址的余额减少,另外一个地址余额增加,通过代码使得减少和增加的数字一致,因此只能通过代码逻辑确保资产的安全性。Resource则是在语言层面将资产的概念进行了封装,避免了资产凭空产生和随意访问,极大的提高了安全性。
Perpetual Industries在印第安纳州开设新公司总部,将拓展加密挖矿等业务:10月28日消息,Perpetual Industries Inc.宣布已搬进印第安纳州奥本的一个新的公司设施。该设施占地2.2万平方英尺,将作为新的公司总部,为Perpetual提供更多空间,以满足其研发项目不断增长的需求,以及为其加密货币部门执行大规模比特币挖矿中心扩张的空间。(Globe Newswire)[2021/10/28 6:18:09]
Move代码示例先字节验证,后执行合约与Solidity采用编译器不同,作为一种可执行的字节码语言,Move具有内置的安全算法和字节码验证器,可以防止许多常见错误。Move合约代码要能被执行,必须先被验证,这使得合约可以免受编译器的潜在故障和可能遭遇到的攻击。Move从一开始就致力于建立规范文化,每个Move模块都有标准库。Move开发团队已经初步开发出专门的验证器MoveProver,用于合约的验证。目前,该验证器运行速度已有较大提升,开发人员可以在几分钟内运行测试,使他们能够快速迭代他们的代码。2016年造成以太坊的硬分叉的TheDAO事件,就是因为黑客利用了重入(Re-Entrance)攻击漏洞,这是智能合约中的经典攻击。有了Resource模型和字节验证,则不会发生这种攻击。以Solidity等语言为例,智能合约之间的调用是同一个进程内不同的智能合约虚拟机之间的调用,安全依赖于智能合约虚拟机之间的隔离。
Solidity等语言下,智能合约的安全依赖于智能合约虚拟机之间的隔离Move的做法则是通过MoveVM让采用Move语言的区块链具备确定性,将合约调用放在同一个虚拟机沙盒中,通过编程语言内部的安全性对智能合约的状态进行隔离,而非依赖虚拟机进行隔离。
动态 | 加密货币托管服务商BitGo在瑞士和德国开设新公司,以扩大其欧洲业务:据Finance Magnates消息,加密货币托管服务商BitGo宣布通过在瑞士和德国开设新的托管实体,扩大在欧洲的业务。BitGo瑞士实体BitGo GmbH目前受瑞士金融市场监管局(FINMA)的监管,而德国分公司BitGo Deutschland GmbH将在11月申请监管批准。[2020/2/10]
Move通过编程语言内部的安全性对智能合约的状态进行隔离静态调用减少合约调用漏洞合约的调用方式可以分为静态调用和动态调用。若程序调用必须在运行时才能确定被调用的目标,则称该调用为动态调用;反之,在运行前即可确定被调用目标,且在运行时无法变更该目标,则称该调用为静态调用。动态调用允许程序里面可以写很多的函数、过程或者子程序,是一个灵活的语言机制。但灵活也意味着更容易出问题,动态调用不利于程序的推理,更不利于形式化验证,也更容易出安全问题,例如恶意用户通过循环调用制造恶意合约,造成多方的损失。Move语言采用静态调用,所有的合约执行路径都能在编译的时候确定,然后可以进行非常充分的分析、验证。开发者将问题暴露在合约编译的阶段,而非运行阶段,降低运行时出现宕机的概率。与以太坊EVM平台相比,Move模块系统不支持循环调用,完美解决合约重入漏洞。2、基于模块的可组合性:效率更高、更灵活
智能合约的可组合性是构建编程语言生态的另一重要特性。Solidity等语言生态的智能合约的组合基本是基于Interface间通过消息传递进行的组合。而在Move是基于Module间的组合,通过资源(Resources)的传递进行交互。以太坊上,当我们想扩展一些新的行为或者做一些实现上的优化,那我们需要重新定义过往的接口,同时也会影响旧的方法。而在Move中,合约的组合只需要对Module进行升级和优化,所有使用过这个Module的其他合约都会自动使用最新的版本。Move的Module功能类似于以太坊中的合约,但更类似于使用面向对象编程的银行。Module相当于给智能合约提供了统一的兼容空间,智能合约就像乐高玩具的各个部分,通过任意组合产生新的产品。按照3NJOYLab创始人Flex的解释,如果以建造一个汽车工厂为例,Solidity的做法是定义了这个工厂的生产标准以及流程,每一个想来造汽车的人都需要先造一个符合生产标准及流程的工厂,然后才能创造汽车。而Move的方式是工厂就只有一个,想要造汽车的人使用这一个工厂就能造出来大家都认可的汽车。Move通过Module间的组合,一方面,节省了合约占用的区块空间,一方面,让升级变得更加容易。同时,由于Module系统沿用了线性逻辑,可以很好地将数字资产的概念打包封装,并非常明确的将资源的定义和资源相关的行为进行拆分,这种面向资源的编程带来的表现力与可扩展性是其他语言无法带来的。二、Move和Solidity,Rust的联系和比较
金色晨讯 | 币安宣布推出锚定BTC的代币BTCB 吴忌寒新公司Matrix将上线:1.MimbleWimnle隐私币场外交易量激增。
2.Ripple将收购速汇金3000万美元股权。
3.全球最大交易商间经纪商TP?ICAP计划交易比特币衍生品。
4.币安宣布在币安链上推出锚定比特币的代币BTCB。
5.俄罗斯中央银行考虑发行自己的加密货币。
6.吴忌寒新公司Matrix将上线 业务或涉交易所、矿场和Tokenfund。
7.以色列交易所Bits of Gold胜诉并不能作为加密行业法律先例 加密行业监管仍不确定。
8.美国金融业监管局疑似“暂停”了对约40份加密公司经纪自营商申请的审批。
9.SEC委员:SEC将更有可能在行业成熟后批准比特币ETF。[2019/6/18]
相较于早在2014年就发布的Solidity,Move在区块链开发领域还是一种非常年轻的开发语言,需要更多的时间来证明它是一种足够安全并且不容易报错的区块链开发技术选项。Move和Solidity的主要区别
1、在金融属性上,Move将资产作为一种Resource,对区块链最核心的Token资产进行了更为原生,底层的处理。2、在合约的灵活性上,Move可以创建一次性指令。Move语言中的模块与以太坊智能合约有相似之处,但又不完全一样:比如在基于Move编写的Libra中,模块包含了代码,而数据则是在Resource中。从目标导向来说,任何一个基于Solidity的以太坊智能合约就像是一个发布在单一账户地址下的单例对象。而在Move环境下,单一模块充当了一个创建resource的配方,但是任何单独模块都可以用来创建可发布在不同账户地址下任意数量的resource,这也体现出Move的模块性的灵活。3、在安全性上,MoveVM采用语言层面的隔离,而非虚拟机方面的隔离。Move采用了静态调用,形式化验证。同时,为创建数字资产而设计创造的Move旨在用于开发出可定制化的交易逻辑,因此基于Move的每一笔资产都具有原生稀缺性,是独一无二的,并且拥有对应的访问控制属性。相比之下,Solidity并没有原生稀缺性检查,当有新代币生成时,开发者必须通过手动查询其稀缺性是否满足,即代币的总供应量是否满足;并且,Solidity也不具有原生的访问控制检查,开发者必须另外创建像onlyOwner这样的修饰器。在Move环境中,对于任一智能合约中的数据只能在该合约范围内进行修改,而无法通过外部合约进行修改;而在Solidity中,数据修改并不限于所在智能合约内。因此相比Move中对于合约内数据的修改范围限制,Solidity少了一层安全保护。对于所谓的修改范围限制,可以用下面一段代码举例说明:只有在Currency模块范围内可以对Coin的数值进行修改。
动态 | 格莱美奖获得者将推出新公司,通过区块链分发音乐:据ethereumworldnews报道,近日,音乐界著名人士,格莱美奖获得者Andre Allen Anjos表示,将与Dj Josh Legg(Goldroom)合作创建唱片公司Minerva Music,利用以太坊区块链来分发他的音乐产品并与用户互动。[2019/5/4]
Move的Module属性4、在性能上,Move作为一种解释性语言,它的每行代码都需要在运行中单独进行评估。由于Move代码需要在运行中进行评估,Move的性能表现可能不如Solidity以及其他编译语言。不过,这也避免了Solidity中常见的bug,是出于安全性考虑的一种折衷策略。目前,完全基于Move所构建的区块链生态还十分有限,并且用Move所创建的智能合约暂时也无法移植到现有的其他区块链。尽管如此,开发者可以通过在EVM中运行大多数应用程序,并在Move中做出对应的必要修改来替换旧程序。Move和Rust之间的联系
另外,在我们比较Move和Solidity的同时,也需要提及与Move十分接近的Rust,或者更准确的说,Move是建立在Rust的基础上,但又不同于Rust的一种新语言。Rust首次发布于2011年,比Solidity更早,并且不同于经常出现安全性问题的Solidity,Rust的诞生同时兼顾了安全性和运行性能,从代码语法上来看,Rust接近于传统编程语言C++,所以具有高效的运行性能,但又为内存提供了安全保障。Rust是Solana生态开发者的必学语言。在开发过程中,Rust环境中的bug可以在程序汇编时被发现并消除,这一点与使用Move开发时,在运行中逐行评估代码、避免产生bug,异曲同工。而且,Move中的模块与resource也和Rust环境下内置的依赖项管理器Cargo有着相似之处。正因为Move与Rust的紧密联系,很多Solana生态中熟练使用Rust语言的开发者都开始往像Aptos和Sui这样基于Move的新兴区块链生态进行迁移。三、MOVE生态下的新公链建设
众安科技发布新公益计划 区块链的积分可做捐赠:1月29日消息,众安保险旗下科技子公司——众安科技联合真爱梦想、火堆公益等机构发布了基于区块链的新公益计划。基于众安科技区块链技术,火堆公益等机构每一笔善款捐献和使用情况将被完整加密地记录并可追踪,打造透明公益;与此同时,火堆公益宣布开始接受众安科技区块链积分平台发行的积分捐赠,让公益数字化。[2018/2/1]
Move生态下已有Aptos,Sui,Linera,Starcoin等公链部署,它们都在Move语言的基础上做了自身的拓展。本章节将对Aptos,Sui,Starcoin进行介绍。Aptos
项目简介Aptos起步于今年2月初,团队的开发人员有Diem的创始团队成员和核心开发者,团队对于Aptos的构想与对Diem的构想有高度的相关性,开发Aptos一定程度上是对Diem开发的延续。Aptos主打Layer1上的交易的并行执行,以及高性能,试图用一条链解决去中心化、安全、高性能这组「不可能三角」。当前该网络每秒可处理1万笔以上的交易,理想状态下,Aptos主网每秒可处理16万笔交易。Aptos此前拿到了3.5亿美金的投资,现在属于Move系公链中进展最快的。Aptos上的Move语言Aptos通过适配器层扩展了核心MoveVM的附加功能,其中包括通过Block-STM实现的并行性,无需用户输入即可并发执行事务,用于在帐户中大规模存储、存储密钥的表,以及解耦的细粒度存储在帐户中的数据量会影响与帐户相关的交易的GasFee。开发进展今年3月Aptos启动了开发者测试网,5月Aptos启动激励测试网注册,并将激励测试网分为4轮:「去中心化启动」、「质押」、「治理和升级」以及「动态验证器拓扑」。当前其测试网络已经达到了2万多个节点,使其成为当今最大的已知权益证明节点社区。Aptos第三轮激励测试网活动AIT-3将8月30日正式启动,9月9日测试结束,Aptos主网将于今年秋季上线。生态发展今年6月底,Aptos推出了2亿美元的生态系统资助计划,吸引了超过100个项目在Aptos构建。从生态布局来看,Aptos仍以基础设施建设为主,部署应用的场景多是钱包、DEX和借贷协议等产品,值得关注的有超并行CLOB协议Econia、移动多签钱包hive、可集成应用程序的加密钱包Martian、借贷协议NjordFinance、交易聚合器HippoLabs、AMM交易应用PontemNetwork等。Sui
项目简介Sui是由前Meta工程师创立的MystenLabs建立,引入了不可变状态,试图在Move中实现类似UTXO的编程模型。Sui专注于高TPS和低延迟,没有设置TPS上限,具有良好的扩容能力,降低用户的交易成本。在今年3月的测试当中,Sui的TPS达到12万。Sui正在以20亿美元估值完成至少2亿美元的B轮融资。项目特性链上存储及其扩展性。SuiMove中没有全局存储,存储只发生在Sui存储内,而不是Move存储中。Sui的存储低成本且可水平扩展,使开发人员能够定义具有丰富属性的复杂资产。高性能&高扩展性:Sui横向扩展以满足应用程序的需求。MystenLabs表示,Suiauthorities理论上可以有效地无限扩展网络吞吐量,以满足建设者和创造者的需求。截至2022年3月19日,在8核M1MacbookPro上运行的未优化单一workerSuiauthorities可以每秒执行和提交12万个代币传输事务(TPS)。开发友好:MystenLabs还将发布SuiDeveloperKit开源工具包,让开发者减少调试智能合约、等待审核或构建基本技术堆栈元素的时间。SuiDeveloperKit的三个构建模块包括游戏SDK、引导社区的SDK和HandshakeSDK。Sui上的Move语言Sui在使用Move时,它对Move的核心功能进行了某些更改,尤其是在全局存储运算符和关键能力方面。这些更改保留了Move的安全性和灵活性,但优化了存储和地址机制,从而提高了网络性能并减少了交易确认时间。开发进展Sui于5月上线Devnet,允许开发者使用Sui网络,截至7月已有超5000个节点在Devnet上运行。本月,Sui将启动激励测试网,目前已启动激励测试网注册。测试网将分为:网络、质押、升级等不同阶段。生态进展目前公开信息的项目有8个,类别涵盖钱包、NFT、链游、元宇宙等。从目前项目布局、Sui对游戏提供解决方案来看,NFT和链游有望成为其生态比较有特色的板块。Starcoin
项目简介Starcoin基于增强版PoW共识机制,是较早在Move上部署主网的新公链。Starcoin在探索Layer2乃至Layer3的分层扩展模式,具有较好的可扩展性,状态能够安全无缝转移,数据能够轻松快速扩容,拥有较低的延迟和较好的操作性。开发进展Starcoin于2021年5月上线主网,Starcoin主网目前已稳定运行一年多时间。StarcoinLayer2将于今年9月提供测试网络。生态发展Starcoin生态包括钱包、CEX、DEX、矿池、稳定币、NFT、链游等七类,主要围绕STC挖矿,交易等展开。代币STC是Starcoin的原生代币,发行总量为3,185,136,000STC,总量恒定。主要用途有1.支付交易的gas费用2.支付状态空间费用3.用于链上治理投票。STC的代币经济模型显示,国库是经济模型的中心,国库将区块奖励分发给矿工,将国库资金分给DAO,矿工和DAO将STC投入生态,链上生态收益最后回归国库,实现经济模型自举。结语
总体来说,Move面向金融属性的智能合约框架使得其与支持去中心化金融应用的部署天然适配。Move语言在智能合约的安全性,可组合性,以及灵活性上的创新为其生态发展,DeFi、NFT等去中心化资产的安全等提供了多方位的支持与保障。我们相信,有着强金融机构背书和强技术背景支撑的Move语言以及Move系新公链,将会给区块链行业带来全新的叙事。随着越来越多的开发人员,行业资源进入到Move生态,我们将不断见证这个面向资产编程的语言的魅力,同时也有更多捕获到新公链们带来价值的机会。原地址
经Odaily星球日报不完全统计,8月15日-8月21日当周公布的海内外区块链融资事件共33起,较前一周有一定减少;已披露融资总额约为2.3亿美元,较前一周有大幅下降.
1900/1/1 0:00:00TL;DR1.SBT是一个关系证明而不是权威证明,其价值在于数据的大量积累,复杂、丰富和多样性会是SBT数据源的核心竞争力.
1900/1/1 0:00:00在GameFi兴起之后,游戏这一加密世界曾经小众的赛道正愈发变得火热起来。当StepN为首的一系列模式创新席卷加密世界之后,GameFi赛道距离Game已经越来越远了,而Fi的比重不断增加.
1900/1/1 0:00:00Odaily星球日报译者|Moni 2022年6月,Reddit联合创始人AlexisOhanian出人意料地在NFTNYC大会亮相,宣布旗下风险投资机构776Fund投资了一家新公司.
1900/1/1 0:00:00特别感谢GeorgiosKonstantopoulos、KarlFloersch和Starkware团队的反馈和审查。在layer2扩容讨论中经常再度浮现的一个话题是“layer3s”的概念.
1900/1/1 0:00:00假设你想把发布的艺术品制作成系列NFT,例如以太坊合并纪念版系列NFT,但你不知道如何开始第一步,这时可以尝试使用Zora的创作者工具.
1900/1/1 0:00:00