恒星 CTO 杰德·麦凯莱布
(Jed McCaleb)在官博上发表文章说道:
“对于恒星即将使用的全新代码,我不确定能否表达出我的激动之情,但是值得一试。这就像……在清晨雨露中,在遍布三叶草,有着刺猬出没的草地上自由奔跑。更重要的是,这意味着平台已经确实做好准备,开发者们可以创建世界的新金融服务了。”杰德在博文中详细地介绍了升级后的恒星网络的一些优势和特性,并给出了一些的例子。
不同之处
升级后的恒星网络比原来更加安全,更具伸缩性,以及更加模块化。恒星共识协议(SCP)在网络不满足共识条件时更注重安全性(safety)而不是活性(liveness),因此新系统更不容易发生分叉。
恒星的核心程序现在更加易读和优雅。代码量不及原版本的一半,运行却更加快速,耗费更少的内存和磁盘空间(升级后的核心程序只处理共识,同时Horizon,即API服务,处理路径查找以及为恒星核心程序提供web界面)。它还以更简单明晰的形式在更安全的地方保存数据。例如,程序将持续进行备份动作,将数据以XDR格式(XDR是一个互联网标准格式)备份到离线存储上。实时总帐则存在于传统的SQL数据库中。
新特性:批量操作和多重签名
虽然新代码有很多值得说道的地方,但是杰德重点讲述了两个特性:批量操作(batching operations)和多重签名账户( multisignature accounts)。
在升级后的网络中,事务(Transactions)将以一组操作(operations)链的方式批量执行。事务满足原子性,即操作要么全部成功,要么全部失败。同一个事务中的操作甚至可以来自不同账户。例如,你可以创建一个事务,其中甲要支付乙,此时丙支付甲。在这种情形下,这个事务将同时需要甲和丙的签名。
并非只有事务可以拥有多重签名,账户也可以拥有多个签名人。多重签名为恒星账户的安全性和权限方面增添了灵活性。你可以为每个签名人分配不同的权重,每个操作分配不同的阈值。如此设计,你可以轻松设计一个m/n方案。例如你可以管理一个多重签名账户,事务可以由一人验证,或者其他三人一起验证。
这一设计提供了多种多样的可能性。例如,将批量操作和多重签名组合使用将使你能够构造所谓的简要合约
。简要合约按照以下条件执行约束:1 必须同意总帐中的某一特定变更,和/或 2 变更必须一起发生。这样可以无需使用脚本即可实现约束。
阅读关于操作和多重签名的资料,来获取它们如何一起工作的更多信息,或者查看下面的例子。
简要合约例子:联合众筹
约翰内斯堡需要一座新医院。市政府和一个非政府组织都愿意捐献100万美元,而总花费需要300万美元。它们都希望众筹剩余的100万美元,并确保筹来的每分钱都用于建造医院。同时它们向捐款者保证,如果2016年三月之前没能完成众筹,则将返还捐款。
市政府和非政府组织创建了一个寄存账户
(holdingAccount),该账户用于筹集资金,如果2016年三月没达到目标,则返还所筹款项。寄存账户被设置成需要市政府和非政府组织一起验证才能发起事务。
市政府和非政府组织各向寄存账户发送了100万美元。随后它们一起创建了以下事务:
事务1 序列号: N+1 操作:
管理要约:(Manage Offer): 创建一个要约:出售寄存账户发行的100万份的参与代币
(participation tokens),每份售价1美元。
签署者: 政府和非营利组织 事务被提交到网络,记录该出售动作的ID,留在事务3中使用。
事务2 序列号: N+2 时间区间: 2016年3月1日到某一天 操作:
支付(payment): 发送300万美元到承包商账户(contractorAccount)
签署者: 政府和非营利组织
事务3 序列号: N+3 操作:
管理要约: 取消事务1中创建的出售要约
支付: 发送100万美元到市政府
支付: 发送100万美元到非营利组织
管理要约: 创建要约,购买100万参与代币,每份出价一美元。
签署者: 政府和非营利组织
事务2和3是公开的,但是并没有提交到恒星网络。任何人都可以将其提交,但是直到2016年3月事务2和3才会生效。同时,根据序列号要求,事务2要先于事务3发生。
如果你要参与捐献建造医院,那么你要进行如下操作:
1. 信任寄存账号发行的参与代币
2. 购买参与代币,你会收到代币,而寄存账号会收到资金。
3. 如果3月1日筹集了100万美元,那么资金会被事务2发送到承包商账户,或者如果筹集目标未达到,事务2会失败,事务3会完成。
4. 如果事务3完成,你可以通过出售代币的方式从寄存账户拿回你的款项。
此设置的参数十分灵活,有很多种可能的变种,包括扩展设计,可以支付个体参与者或者分时支付承包商。
展望未来
多个主要利益相关者进行的无缝众筹(而且免费)只是恒星网络批量操作和多重签名的多种可能的一个例子。杰德希望抛砖引玉:订阅、履约保证、群体储蓄账户以及健康储蓄账户、农产品补贴、退单保证、甚至游戏(我曾有意拿这个举例可是时间不够)。
“我非常期待看到人们会创造些什么!”原文:https://www.stellar.org/blog/multisig-and-simple-contracts-stellar/ 作者:Jed McCaleb 译者:老翅 责编:printemps 稿源(译):巴比特资讯