Algorand 创始人 Sivlio Micali 提出在第一层实施可替换通证和原子多方传输的方案,目标是解决第二层扩容方案中存在的智能合约复杂性问题。

原文标题:《Algorand 公链的第 1 层创新策略 (第 1 部分): 可替换通证和原子多方传输》(Algorand’s Layer-1 Strategy (Part 1): Fungible Tokens and Atomic Multi-Party Transfers
作者:Sivlio Micali,Algorand 创始人
授权翻译与补充:Future 小哥哥
最终审核与修订:陈婧,Algorand 首席科学家

自从 Algorand 主网上线以来,我们非常激动地看到 Algorand 生态系统的发展,人们使用 Algorand 的众多不同的方式,以及大家对开源平台的许多想法和贡献。Algorand 开发者社区继续在全球扩展,参与了大量的论坛、会议和黑客马拉松。随着各个重点企业开始在平台上进行开发,以体现其前所未有的性能水平,Algorand 平台的使用正在迅速增加。

相应的,Algo 通证的应用也在扩展。在本文中,Algorand 创始人 Silvio Micali 分享了 Algorand 接下来在协议方面的创新内容,,以支持这些功能强大、多样化的新用例、通证和资产。特别是 Algorand 在第一层实现可替换通证和原子多方传输的策略。

得益于 Algorand 协议独特的安全性、可扩展性和去中心化特性,Algorand 公链在平均不到 5 秒的时间内就可以生成一个区块,并且所有交易都是立即被最终确认的。这些基础特性已经吸引了社区中的很多人以不同的方式来体验 Algorand 的技术。

我们看到的一个常见用例是使用协议创建新的通证和资产,包括各种各样的通证化资产,如衍生品、期权、掉期、证券等等。最近 Algorand 宣布加入 ISDA (isda.org,国际掉期与衍生工具协会),正是为了使用户能够在众多现有的资产类型上灵活地创建交易模板和资产。

在其他链上,创建这些新资产需要智能合约或其他第二层(Layer-2)的方法。这引发了大量的创新方案,但同时也带来了安全性、效率和可扩展性的问题。此外,我们也注意到了许多其他的用例,对它们来说基于智能合约的实现方式过于复杂了。

Algorand 致力于不断的为开源社区做贡献,在此我们用两个新的功能来消除第二层 Layer-2 方法上的缺点。

这些新功能都是在第一层实现的。它们是 :

1. 创建新的可替换通证

2. 实现原子多方传输atomicmulti-partytransfers(AMPTs),我们将稍后解释这个新的构造。

通过在区块链的第一层得以实现,这两个功能都将成为 Algorand 共识协议的一部分,并且非常安全、高效和易于使用。

在 Layer-1 实现的好处 :

在通用的区块链术语中,第 1 层是处理基本支付和共识的协议,而第 2 层包括智能合约和与生成新的区块没有直接联系的任何其他功能。

Algorand 选择在第一层实现核心功能主要有三个原因 :

1. 安全性

在第 1 层实现的任何功能都享有最高级别的安全性 : 即共识协议本身的安全性。我们的第一层交易是由专家设计和证明,经过全面彻底地测试,经过第三方审计验证,并由世界各地的贡献者进行检查。针对第 1 层的任何资产的攻击向量,如双花、拒绝服务攻击等等,面对的都是跟 Algo 本身,即 Algorand 公链的原生通证,相同的安全机制。

2. 兼容性

所有区块链参与者对第一层功能的释义都是一样的。确实,尽管核心共识协议可以以去中心化的共识方式进行扩展,所有参与的软件都使用相同的协议。这可以促进兼容性。如果两个用户使用相同的第一层实现来创建他们自己的可替换通证,那么为一个通证开发的应用程序也可以为另一个通证工作。

相反,如果两个用户通过两个单独设计的智能合约来创建他们的可替换通证,那么这两个设计可能会有细微的差别,为其中一个通证开发的 DApp 可能无法为另一个工作。

3. 效率

在第 1 层实现的核心功能可以直接通过系统来优化其在计算、存储、通信等方面的性能。相比之下,依赖虚拟机和其他第二层设备通常会导致不必要的复杂性和成本消耗。

需要指出的是 : 并不是所有的新功能都适合在第 1 层实现。特别是,在第 1 层中实现的任何功能都必须不能显著降低共识协议的速度 ; 需要考虑它是否重要到应该在平台中获得这样的地位,并且应该以一种能够简化正确性验证的方式来设计。

第 1 层可替换通证 fungible tokens

通证是可替换的,如果它的任何两个单位是可互换的。可替换通证的一个典型的例子就是货币,因为任何两个单位都具有相同的购买力。另一个可以是「忠诚度计划中」的「积分 Points」,或者是一个股票的单位 [1]

[1] 相比之下,在一组不可替换的通证中,两个通证可以彼此非常不同,并且可以非常不同地估值。想想同一栋大楼里的公寓,每个公寓都有自己的户型和光照。

Algorand 允许用户生成自己的可替换通证,从而成为这些通证的管理者:

通证管理者可以 :

● 生成有一定供应量的新的通证
● 增加新通证的流通供应量
● 冻结指定账户中的通证 (该通证由该管理者生成)
● 将管理者权限转移给新的通证管理者。

这些属性类似于 Ethereum 的 ERC-20 通证所包含的属性。然而,在 Algorand 中,这些属性是在 第 1 层实现的,而不是像在 Ethereum 中那样通过第二层的智能合约来实现的

当可替换通证被用于发行一种新货币时,在第一层实现尤其有价值。如果一种货币是通过智能合约发行的,合约中出现的最微小的错误,或者将现有的应用程序用于新货币时最微小的兼容性问题,都可能,并且已经在现实中的很多情况下,造成很大的损失。

第一层原子多方传输 ATOMIC MULTI-PARTY TRANSFERS

Algorand 允许多个用户通过一次链上交易来执行所有需要的传输,这些用户可能持有不同的可替换通证,并且已经协商好了这些通证的一组传输。也就是说 , 如果:

● T1、T2、……可能是不同的可替换通证,包括 Algo
● a、b、……可能是不同的用户
● a 向 b 传输 x1 单位的 T1; c 转给 d x2 单位的 T2; 等等,每个都是有效转账 ;

然后,在每个用户对自己的传输进行数字签名之后,或者

(1) 在给定的时间内没有任何一个被执行,或者
(2) 所有转账都被执行了。

也就是说,AMPT 保证同时执行各种可替换通证的多次传输。同时性是一种非常宝贵的属性,但迄今为止一直难以实现。考虑上面的这组传输。用户 a 可以单独向用户 b 传输 x1 单位 T1 通证。但是,在完成了她的转移之后,用户 a 对 b 和所有其他用户也将执行他们自己承诺的传输其实并没有信心。这解释了为什么通常使用智能合约来确保 AMPT 的全有或全无特性。但是智能合约是不太好用,容易出错的,代价比较高的第二层结构。因此,Algorand 在第 1 层实现了 AMPT。

AMPT 的使用案例很多。这里仅先列举 5 个:

例 1: 双边交换

假设 USDX 是 Algorand 区块链上由美元支持的稳定币。假设 a 是一个拥有足够多 Algo 的用户,b 是一个拥有足够多 USDX 的用户。AMPT 使得 b 和 a 能够交易——比方说——用 1500 USDX 兑换 1000 Algo。

这样的交换是直接的、无中介的。如果双方都确实拥有交易涉及的通证数量(a 有至少 1000 个 Algo,b 有至少 1500 个 USDX),通过原子性地在下一个块中发布正确的数据,双方的交换在 5 秒内就能完成。用单个第一层交易执行双边交换的能力确保没有用户可以通过使自己的转账无效来欺骗对方,而且交换速度很快。

这种速度和真正意义上的同时性是 Algorand 区块链相对于其他区块链的主要优势。双边交换实际上是构建去中心化金融体系的基本要素。

相比之下,其他区块链上的双边交换既不同步也不快速。它们是通过多个步骤和多个区块实现的,并且,正如我们将稍后解释的一样,其中一些步骤还需要很长的等待时间。

例 2: 循环交易 Circular Trades

AMPT 的速度和同时性不仅适用于双边交换,还适用于多个相互依赖的转移,如以下「循环交易 Circular Trades」:

用户 a 将通证 T1 的 x 个单位传输给用户 b
当且仅当,b 将通证 T2 的 y 单位传输给用户 c
当且仅当,c 将通证 T3 的 z 单位传输给 a

例 3: 全有或全无筹资

第一层 AMPT 简化了许多需要联合出资的应用。例如,它们使得多个用户分摊晚餐或出租车的费用变得很简单。另一个例子是第一层 AMPT 简化了众筹:一组用户可以为同一个项目(比如某个慈善组织)提供预先定好金额的可能不同种类的货币,每个用户最终付款当且仅当组中的其他人也付款。

例 4: 去中心化交易所

第一层 AMPT 为构建快速、安全的、去中心化的交易所提供了强大的构建模块,在这里,用户无需信任任何中介就可以彼此进行交易。

例 5: 内部记账单位

一个公司的内部记账单位可以表示为一种可替换通证,AMPT 使多个公司可以用一个快捷的操作来结算彼此的账户。例如,这将对供应链非常有利,因为延迟付款对企业来说是巨大的不利因素。

期待更多的第 1 层功能

新的可替换通证和 AMPT 虽然很重要,但它们仅仅是 Algorand 计划引入第 1 层的功能中的第一批。我们的计划是提出一组第 1 层模板,提供当前需要通用智能合约才能实现的许多功能。每个模板都将经过精心设计和高度优化。所提供的模板集将足够丰富,使得用户可以通过组装模板轻松实现没有现成模板的功能。

我们认为不可替换通证 non-fungible tokens(NFTs) 是此类模板的一个明确选择,接下来将在第 1 层中提出 NFT。

Q&A 相关问答整理:

Q1. 现在能否实现不可替换通证 NFT?

A: 当然可以将每个不可替换的通证表示为仅有一个单位的可替换通证。然而,这种方法不能满足我们认为必要的性能和易用性需求。我们正在完善一个方案,将以一种方便、高效和安全的方式将不可替换通证带到第 1 层。

Q2. 基于 AMPT 的双边交换是否属于《Algorand 即将发布的创新技术》一文中提到的「原子的原子交换 atomic2 swap」?

A: 是的。基于 AMPT 的可替换通证的双边交换是原子交换的一个特例。后者可以处理任意资产,包括不可替代通证。

注意,可替换通证本质上比不可替换通证更容易处理。当供应量大到数十亿个通证时,某个给定用户拥有的可替换通证可以很容易地用几个字节表示 : 即, 由她的余额表示。但是,表明一个用户拥有哪些不可替换通证可能需要很长的列表。为了有效地处理不可替换通证,Algorand 将着眼于新技术,比如在《Algorand 即将发布的创新技术》一文中提到的自验证交易 self-verifying transactions。

Q3. 第一层原语会完全取代 Algorand 中的智能合约吗 ?

A: 不会。Algorand 将在第 1 层实现一组原语,这些原语 (a) 已被确定为关键的,(b) 其实现方式仍使 Algorand 区块链能够在几秒钟内生成和确认新的区块。并不是大家所希望的所有功能都适合在第 1 层实现。因此,我们正在准备新一代智能合约技术,以满足 Algorand 用户期望并应该拥有的效率,安全性和易用性标准。

Q4.Algorand 会启用「跨链 AMPT」吗 ?

A: Algorand 将很快提供协议,使其他链的用户能够与 Algorand 的用户执行可替换 (和不可替换) 通证的多方多次传输。然而,我们希望澄清的是,跨链协议不能提供 Algorand 链上 AMPT 所享有的同时性 !

此外,可以预见跨链协议的效率要低于只在 Algorand 用户之间使用的 AMPT。即使是只有两个用户参与的双边交换,如果其中一个用户不是 Algorand 用户,也会比 Algorand 用户之间的 AMPT 慢。

Q5. 跨链双边交换为何会相对缓慢呢 ?

因为它们是通过多个步骤实现的,其中一些需要很长的等待时间,以确保用户有足够的时间采取一些必要的行动。

假设多步骤双边交换的两个用户中的一个试图作弊。为了避免转出资金但没有收到转入,被骗方必须在某个步骤在相关的区块链上发布一个「停止交易」。

然而,要使她能够在确认区块比较慢的区块链上这样做,协议必须为该步骤分配很长时间。(确实,在一个未被最终确认的区块中发布「停止交易」是不够的,因为该块可能由于分叉而「消失」。) 但是这样的等待时间是不够的。协议还必须考虑到,被欺骗的用户可能成为拒绝服务攻击 denial of service 的目标,从而阻止她在被攻击期间发布「停止交易」信号。因此,为了确保安全,双边交换协议必须预先分配「足够」的时间,以确保拒绝服务攻击变得过于昂贵并将被终止。只有这样,被欺骗的一方才能发布她的停止交易信息。

但「足够」是多少 ? 现有资料中推荐一天、两天和三天。但是,如果某次双边交换的货币价值很高,即使三天也可能不够。毕竟,denial of service 拒绝服务攻击的代价正在迅速降低,作恶一方可能愿意长期维持这种攻击,以便从对方那里榨取大量金钱而无需支付自己本该支付的部分 !

相比之下,由于两个 Algorand 用户之间的双边交换是通过单个交易执行的,分配给发布此交易的时间可以短至 50 秒,即生成 10 个块的时间。更准确地说,两个 Algorand 用户可以在生成他们的双边交换时指定,仅当这个交易出现在 10 个预先指定的块中的任何一个,例如区块 n 到 n + 9,该交易才有效。如果这个交易出现在其中一个块中,那么交换立即完全完成,没有任何用户能够欺骗另一个。如果没有出现 (因为异常高的交易流量导致这些区块饱和,因为存在拒绝服务攻击,或者因为任何其他原因),那么这两个用户中没有任何一个向另一个转账,所以也没有人被骗,而且任何一个用户都可以自由地和其他人进行任何其他交易。

与仅是名义上的「原子」交换相比,这就是真正原子交换(atomic 2 swap)的优势 !

来源链接:mp.weixin.qq.com