智能合约重构社会契约(12)天秤币
1. 定义
一种稳定的数字加密货币,并将全部使用真实的资产储备进行担保。与大多数加密货币波动剧烈不同,天秤币将使用低波动性的资产作为抵押来保证天秤币价值的稳定
- 账户规模数十亿
- 需要极高的交易吞吐量和低延迟
- 保障高度安全可靠
- 进行扩展
2. 3个特点
2.1 Move语言
2.2 LibraBFT共识机制
一种拜占庭容错机制:所有的验证者节点对将要执行的交易及其执行顺序达成一致。与基于拜占庭容错的共识机制一样,LibraBFT也允许不超过1/3的验证者节点发生故障或是被破坏时,共识协议依然能够保证网络的正常运行,这种共识协议可以实现低延迟性以及高交易量的处理。
2.3 改善过的区块链数据结构
区块链内的数据按照Merkel树的存储方法进行储存, 与其他区块链将区块链视为交易区块的集合不同,天秤币区块链可以长期记录交易历史和状态,允许使用者从任何时间点读取任何数据。
3. Move语言
天科币中交易的程序部分主要是由 Move字节码编写的脚本。在运行时,天秤币的交易都用Move语言的虚拟机来运行,可以有效地在运行前发现脚本中的恶意代码,防止攻击。若脚本没有问题,则会被虚拟机正确执行。
-
语言初衷:让用户实现自定义的交易逻辑和“智能合约”
-
名称来源:移动,就是资产转移的意思。 数据只有拷贝(copy)可进行相关数据的复制。使用Move,资产就像纸钞转移一般,一方得到,另一方失去,数字资产没有复制。
-
语言优势:使用Move语言书写的交易脚本可以用Move语言的虚拟机进行检查,保证脚本中不会出现恶意错误。所有的交易脚本都将是一个一次性的程序,不会被其他的交易脚本调用。
-
注重安全性和可靠性
每个资源只有-个所有者,每个资源只能花费一次,对新资源的创建进行限制。通过这样的限制,使Move语言中的资源可以避免“双花”或者是被盗取。 -
可以便利地自动检验交易是否满足某些特性。在一段时间以后,Move语言还将向开发者开放创建合约的权限。
3.1 module和resource
天秤币里代码和数据是相互分开的:module用于储存代码,resource用于存储数据。
-
module中的代码可以被复用,只需要使用不同的resource即可。
-
用户的账户是一个包含若干module和resource的容器,每个账户中都可以储存module和resource,而 resource可以在其他账户地址中找到对应的module,这样就可以实现对代码部分的复用。
-
每一个resource都需要通过对应的module进行声明和定义。一个resource只能够通过声明这种resource的module进行创建或者销毁,
-
resource只能够被移动,而不可以被复制
矩形表示 module,椭圆表示resource。
3.2 交易的内容:
- 交易发起人地址
- 交易发起人公钥
- Move语言书写的程序
- 单位Gas的价格
- Gas的最大值
- 序列号。
3.3 交易脚本
包括:脚本的可选输人列表、一个用Move字节码书写的发布的module可选列表。
- 脚本允许交易调用发布在分类账本上的多个module,使用条件判断逻辑,执行本地计算等
- Move字节码可以书写十分灵活的交易脚本。这也意味着Move脚本可以实现一些诸如同时向多个人进行转账的操作。
3.4 执行交易步骤
step1. 检杏签名、
step2. 执行序言。序言中需要通过比较账户下的验证密钥是否等于公钥的哈希值来确定发起人的身份,而后检验账户是否能够承担最大Gas花费,最后保证序列号是正确的。
step3. 验证脚木利lmodule、检验由Move语言所书写的脚本和里面涉及的mol-ule是否安全,此步骤将由Move诏言的虚拟机进行检验。
step4. 发布module。每一个程序中使用的module都应该在发起人账户中被发布。
step5. 执行脚本。
step6. 执行结语。计算使用的Gas量并且修改发起人账户的序列号
总结
以上是生活随笔为你收集整理的智能合约重构社会契约(12)天秤币的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 智能合约重构社会契约(11)天德区块链智
- 下一篇: Docker (2)与虚拟机的比较