Move: 一门面向资产的编程语言

2024-04-14 12:58

本文主要是介绍Move: 一门面向资产的编程语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近被 Libra 刷了屏。好多人都在谈论 Libra 对未来的影响,有从正面讨论的,认为会影响未来的数字经济,也有负面的,说我们还是逃不过被各大财阀控制的悲剧;有说 Facebook 在推动世界进步的,也有说小扎阴谋论的。这篇文章里,我们就不谈这些了,作为一名Developer,我们聊聊 Libra 附带推出的 Move 这门语言好了。

过去好像“无所不能”

作为一名区块链“从业者”,自从业以来,总有一种感觉————区块链这个新兴的技术,在写代码的时候能做的事情太多了。这并不是一种夸赞。我一直觉得总有一天区块链的世界里应该也会出现“编程范式”一样的东西来限制大家能做什么,不能做什么。

先来看几个例子:

基于以太坊的智能合约

Solidity 让你可以做很多事情,比如去年我尝试写一个颁发 Token 的智能合约。简单的实现了我自己期待的 Issue,Transfer,Destroy 方法,就可以了。

当然,假如你知道 OpenZeppelin 的话,把它引到代码库中,然后实现它里面的 ERC-20 就更完美了。

可是问题在于,它赋予了你选择的权利,你可以用也可以不用,那么你完全可以随意写一个 Token 然后部署到 Production 上,然后就会遇到各种奇奇怪怪的问题。比如:

  1. 双花问题: 客户的 Token 可以被花两次。
  2. 重入攻击: 以太坊 “DAO” 项目遇到的问题,黑客可以利用这个 Bug 无限的向自己的账户中转账,直到合约的余额为 0。

问题在于,以太坊让我可以很自由的去做很多事情,定义很多事情。

基于 Corda 的智能合约

从去年就开始在一个用 Corda 的项目上,从开始接触 Corda 到后来使用 Kotlin 写 Corda 的智能合约,就一直有一个苦恼,要写的 Corda 的逻辑几乎超过了业务逻辑。

我们消耗了大量的时间去处理,交易发起方应该找谁索要签名;作为交易接收方要如何处理,等一系列诸如此类的问题。

我们暂且抛开 Corda 的自身原因不谈,但是我一直纳闷,为什么想要专心写业务逻辑这么麻烦,为什么要把业务逻辑和这些区块链的业务混在一起呢?

问题在于,Corda 给我的灵活度更高,可是随之而来的风险也就越多。

从上面来看,我们会发现,区块链作为一个新兴的技术赋予了 Developer 太多的能力,而这些能力是没有过多的限制的,以太坊不会限制我的资产要怎么交易,因为我的资产在以太坊上只是智能合约里面的数据而已;Corda 不会限制我找谁签名或者做什么验证,因为 Corda 是把这些权利放给了 Developer 的。

可是,有时候没有限制,并不是一件好事。就像“编程范式”一样,我一直在想,是不是有一天,区块链也会出现自己的“编程范式”,规定 Developer 能做什么,不能做什么。比如规定作为一个资产,它是不能被复制,不能被随意销毁的。

过去,区

这篇关于Move: 一门面向资产的编程语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903052

相关文章

从辉煌到谢幕,十种即将淡出视野的编程语言

概述 在科技的长河中,编程语言如同璀璨的星辰,照亮了人类智慧的夜空。然而,随着时间的流逝,一些星辰逐渐黯淡,甚至面临消失的边缘。本文将带你走进这些编程语言的世界,探讨它们曾经的辉煌、衰落的原因,以及在不断进步的技术浪潮中,它们是否还有重生的可能。 科技浪潮下的淘汰危机 然而,随着技术的发展,一些编程语言开始显得力不从心。R语言,曾是数据分析的宠儿,现在却因为Python的多功能性而逐渐失宠。Ac

统计是一门艺术(点估计)

1 点估计 1.1 点估计理解(point estimate) 总体,样本属于参数空间 一般未知,要由样本对作一个估计,或对作一个估计,这种估计称为点估计 通常用记为的一个点估计。 1.2 点估计的方法 (1)矩估计: 就是用样本矩来代替总体矩,当然有好有坏 设为总体的一个简单随机样本,, 分别称, 为k阶样本原点矩和k阶样本中心矩. 记 为什么能用矩估计?

[案例解析]山东首单跨境数据资产入表案例解析

“ 该案例实现了数据资产跨境的突破” 众所周知,自从我国《个护法》出台,加上后来对于数据出海的各种规定陆续出台,数据出海面临更加严格的监管,能够出海已经不容易,再能够在出海的基础上实现数据资产入表更是意义重大。 01   案例简介 —————————————————— 近日,在济南市大数据局、中国(山东)自贸试验区济南片区的指导下,山东产权交易集团旗下山

【架构设计】模块化-面向接口编程

模块化的优势 结构清晰:业务独立,代码实现分离便于协作:耦合度低,不会影响团队其他成员的开发进度便于维护:各模块管理自身代码、布局、资源,不影响主工程 模块化的特点 高内聚,低耦合 常见的模块化方法 所有模块都放在一个工程里实现每个模块都放在一个独立工程中实现 模块的划分 从高到低 业务层平台能力层基础层 模块间的通信 直接依赖事件或广播通信路由通信面向接口通信 具体实现

【PL理论深化】(2) 语法分析 (Syntax) | 编程语言的语法结构:文法 | 语义结构 (Sematics)

💬 写在前面:编程语言是由归纳法生成的程序的集合。定义属于该语言的程序的形式的规则,即编写程序的规则,称为编程语言的 语法分析 (syntax) 而定义属于该语言的程序的意义的规则称为 语义结构(semantics)。这两者都是归纳定义的。 目录 0x00 语法分析(syntax analysis) 0x01 编程语言的语法结构:文法(grammar) 0x02 语义结构(Seman

开发中的面向对象与面向过程的比较

做开发近5年了,从JAVA开始,陆续接触的语言有C、C++、C#,Python,以及最近开始接触使用的shell,通过对各种语言的横向比较,就说一点自己的感受。 相信很多人都读过《史记》和《资治通鉴》,在我看来,面向对象就像《史记》,面向过程类似于《资治通鉴》,二者的维度是不同的。 现在流行的编程语言主要以面向对象为主,而面向过程的语言也有,比如像C,SHELL,以下就聊聊二者的区别。 面向

数据资产与云计算深度融合:借助云计算技术,优化数据存储、高效处理并创新应用,驱动企业数字化转型

目录 一、引言 二、数据资产与云计算深度融合的必要性 1、数据资产的重要性 2、云计算技术的优势 三、云计算技术在数据资产管理中的应用 1、数据存储的优化 2、数据处理的高效性 3、数据应用的创新 四、云计算驱动企业数字化转型的实践案例 案例一:金融行业的数据分析平台 案例二:零售行业的智能供应链系统 五、结论与展望 一、引言 随着信息技术的飞速发展,数据已成为

面试题: 面向切面编程(AOP)的理解

转载至“http://blog.csdn.net/Intlgj/article/details/5671248 总结:aop就是写代码的时候 把各个模块中需要重复写的抽取出来,弄成一个切面。例如日志,权限。 切面的具体表现就是实现公共方法的类 通知:在实际应用中通常是切面类中的一个方法 在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录、事务控制及权限控制等,然后才是

仓颉编程语言

仓颉编程语言(Cangjie Input Method Language)并不是一个真正的编程语言,而是一种中文输入法,由台湾的朱邦复先生在1983年发明。仓颉输入法是一种基于汉字的形、音、义的输入法,它允许用户通过输入汉字的组成部分来输入汉字。 仓颉输入法的特点是: 它不需要记忆复杂的编码,而是通过汉字的构造来输入。它支持多种语言版本,包括简体中文和繁体中文。它在一些地区,如香港和澳门,被广

面向连接的TCP和无连接的UDP

用户数据报协议UDP和传输控制协议TCP: 1.TCP传输的是TCP报文段,UDP传输的是UDP用户数据报。 2.UDP在传送数据之前不需要先建立连接。远地主机的运输层在收到UDP报文后,不需要给出任何确认。虽然UDP不提供可靠交付,但在某些情况下UDP却是一种最有效的工作方式。TCP则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后释放连接。TCP不提供广播或多播服务。由于T