Stellar上的多重签名和简单合约

众所周知,过去几个月,Stellar.org的团队一直在为升级分布式网络编写代码。现在终于准备投入使用啦!

我的兴奋之情无法言喻,Stellar将要使用全新的代码,但是我会尝试。这就像…在阳光雨露中被浸透的红色三叶草草地上,自由奔跑,还有刺猬出没,就像某种蝴蝶龙一样破茧而出的感觉。

更重要的是,这意味着该平台是为开发者准备的,可以用来搭建世界的新型金融服务。在本文中,我将强调升级网络的一些优点和功能,然后举例说明你可以使用这些功能来构建的内容。

所以,区别在哪?

升级的Stellar网路比原来的代码库更加安全、可扩展以及更加模块化。当网络丢失法定值时,恒星共识协议 (SCP)在网络不满足共识条件时更注重安全性而不是活性,因此新系统更不容易发生分叉。

Stellar Core代码现在越来越容易理解和简练,是以前代码库大小的一半,运行速度更快,所需的内存和磁盘空间更少。(升级版Core代码只处理共识,而Horizon, 作为API服务器,负责领航,并为Stellar Core提供基于Web的界面)。同时还让数据以更简单明了的格式在更安全的地方保存数据。例如,代码库以XDR(互联网标准格式)执行对脱机验证器存储的持续备份。实时账本则在常规的AQL数据库中。
simple contract

新功能:批量处理和多重签名

新代码有许多很棒的功能,但是我将详细讨论两个功能: 批量处理多重签名账户

在升级版网络中,事物会在操作链中批量处理。在每个批量处理中,所有的操作结果不是成功就是失败。同一批次中的操作甚至可以来自不同的 账户。例如,当且仅当账户B发送到账户C时,你才可以创建账户A发送到账户B的交易。在这种情况下,事物将需要账户A和账户B的签名。

并非只有事物才能拥有多重签名,而且账户也可以拥有多个签名者。多重签名可以为保护特定Stellar账户和管理访问权限方面增加灵活性。你可以为每个签署者分配不同的权重,为每个操作设置阈值。通过该设计,你可以轻松的设置yige n/m方案。例如,你可以管理多重签名账户,以便交易可以让一个人单独或这这些人中的其他三个人进行验证。

这种设计开辟了多重可能性。例如,批量处理和多重签名可以让你制作我们所说的简单合约。 简单合约强制执行某些约束条件,1)谁必须批准账本中的特定变更和/或2) 什么变更必须一起发生。他们会在不使用脚本的情况下实现约束。

阅读更多关于操作多重签名的信息,更好的了解其协作方式,或者直接查看以下的示例。

简单合约示例:联合众筹

约翰内斯堡市需要一家新医院,市政府和一个非政府组织自愿为其构建捐款100万美元,但是费用总额为300万美元。他们都希望众筹剩下的100万美元,并确保众筹的每一分钱都用来建造医院。他们还向捐款者保证,如果在2016年之前没完成众筹,那么则会返还捐款。

约翰内斯堡市政府和非政府组织创建了一个寄存账户。该账户用于筹集资金,如果2016年三月没有达到目标,就可以把捐款返还给捐赠者。寄存账户被设置为要同时拥有政府和非政府组织的秘钥,作为签署者授权交易的凭证。

该市政府和非政府组织分别向持有人账户发送一百万美元。然后双方联合创建了以下事物:

事物1
序列号: N+1
操作:

管理邀约:创建一个邀约,出售寄存账户发行的参与代币,每个代币一美元。

签署人: 政府和非政府组织
该事物被提交到网络,同时出售订单ID会被记录,留到到事物3中使用。

事物2
序列号: N+2
时间区间: 从2016年3月到某一天有效
操作:

支付:发送300万美元到合约账户中。

签署人:政府和非政府组织

事物3
序列号: N+3
操作:

管理邀约:取消事物1中的出售邀约。

支付:给市政府发送100万美元

支付:给非政府组织发送100万美元。

管理邀约:创建邀约,以1美元/代币的价格购买100万参与代币。

签署人:政府和非政府组织

事物2和3是公开的,但是没有提交到恒星网络。任何人都可以在稍后将它们提交到网络,但是它们在2016年3月1日前不会生效。同时,根据序列号的要求,事物2必须先于事物3发生。

如果你想捐款资助医院,你必须做如下操作:

1) 信任寄存账户发行的参与代币。
2) 通过创造你的邀约来购买参与代币。你的账户会收到代币,而寄存账户会收到资金。
3a)如果在3月1日之前筹集到了额外的100万美元,那么这笔款项会通过事物发送给承包商,或者
3b)如果没有达到融资目标,事物2就会失败,事物3会完成。
4) 如果事物3完成了,你可以通过出售参与代币的方式从寄存账户拿回你的捐款。

此设置的参数十分灵活,有很多可能的变数,包括扩展设计,可以支付给个人参与者或分时间支付给承包商。

展望未来

多个主要利益相关者进行的无缝众筹——没有费用——只是升级恒星网络批量操作和多重签名的众多例子之一。我希望这能激发出许多其他想法:订阅、履约保证、群体储蓄账户和健康储蓄账户,闪电网络,农产品补贴退单保证,回扣能力,甚至是游戏(我曾经特地引用这个例子,但是时间不够了)。我非常高兴可以看到人们会创造些什么!

社区翻译这篇文章

日文: 多重签名とステラのシンプルコントラクト

Get the latest Stellar developer news.

List of posts

Stellar Community Chat

Recent posts

第四届Stellar Build Challenge挑战赛结果出炉
使用Stellar进行ICO
在Stellar上创建代币