SERO | 智能合约教程——匿名Token发行原理

2018-12-07 11:26 栏目:经验之谈 来源: 查看()
SERO是世界上第一个支持图灵完整智能合约的隐私区块链系统。既然它支持智能合约,那肯定不是一个简单的智能合约+匿名货币。 SERO深深地融合了两者的优势:智能合约的开放性和隐私系统的关闭。在这两个功能的支持下,SERO的智能合约具有非常令人兴奋的功能,可以做一些神奇的事情。

本文主要介绍了SERO在智能合约中提供的匿名令牌API的应用,并简要介绍了一开始生成匿名令牌的原则。要编译和安装SERO,您可以参考SERO以便于介绍,加入我们的SERO开发人员社区,并询问有关社区SERO开发的任何问题。

作为基础,本文认为读者对区块链系统和原理有一个大致的了解。

1. UTXO和帐户

理解区块链结构的读者应该知道区块链是一个分布式分类账,每本书包含多个交易Tx,每个交易包含多个记录。本书的最小单位是记录,每个帐户记录帐户资产的流入或流出。但是,从实际实施来看,根据资产流出记录的不同方式,区块链系统发展了两种不同的会计实现,我们称之为UTXO模式和ACCOUNT模式。这两种模式分别对应于比特币和以太坊的模式。 SERO使用更复杂的混合模式。

基于UTXO的交易

SERO | 智能合约教程——匿名Token发行原理

如上所示,UTXO模式中有两种类型的记录。对于事务启动器,它是输入和输出。此输出在事务接受器中显示为未使用的输出(UTXO),直到事务接受器启动另一个事务,指定输入。这个UTXO被废除了。事务中的记录始终链接到各种输入和输出。在此模式下,ACCOUNT是状态摘要,不是必需的。

例如,在上图中,Alice先前已收到交易Tx 0.此交易的输出为UTXO 0.在UTXO 0中有V SERO硬币。[+ V SERO,BALANCE=V]可以记录在她的账户中。然后她将V SERO硬币转移到Bob,然后她生成一个事务Tx 1,这个事务有一个输入来取消UTXO 0,然后Alice的ACCOUNT应该记录[-V SERO,BALANCE=0]。对于Bob,他添加了一个值为V SERO的UTXO。如果他在ACCOUNT之前的平衡为0,它可以在账户上记录[+ V SERO,BALANCE=V]。

这种模式有两个优点:

·UTXO模式独立于每个事务,这意味着只要可以处理双重开花的问题,可以并行处理一个帐户下的事务,并且可以充分利用多核CPU的能力。
·UTXO本质上是一种基于历史记录的格式,既是过程也是结果,因此它在需要测试证明的应用程序中具有很大的优势。这就是具有隐私功能的区块链系统基本上是UTXO模式的原因。

基于帐户的交易

SERO | 智能合约教程——匿名Token发行原理

以前UTXO模式表示每个帐户都可以生成临时ACCOUNT作为状态摘要。在UTXO模式下,此帐户是临时的,不是必需的。在ACCOUNT模式下,交易中的每个资产流入和流出记录都是指ACCOUNT而不是UTXO。记录输入表示添加了ACCOUNT资产,记录输出表明一个帐户的资产减少。在此模式下,ACCOUNT实体是必需的。没有这个帐户,所有记录都没有意义。

如上所述,例如,Alice先前已经接收到事务Tx 0.该事务具有资产值V SERO,输出0的输出,并且她的ACCOUNT将添加V SERO。这时,她想将Bozo转移到V SERO硬币,然后她发起交易,交易输入指向她的ACCOUNT,值为V SERO币,输出1指向Bob的ACCOUNT,值也是V SERO硬币,然后这个当系统处理交易时,双方的ACCOUNT中的资产将被直接加或减。在这种模式下,Alice无法判断输入是用于输出0的SEO硬币还是先前存储在ACCOUNT中的SERO硬币。

ACCOUNT模式还有两个优点

·ACCOUNT模式直接增加或减少单独帐户中的资产,并且可以增加或减少只有一条记录的帐户中的任何数量的资产。因此,生成的记录大小远小于UTXO在相同情况下生成的记录。
·ACCOUNT模式本质上是基于状态的,输入和输出是进程,ACCOUNT是结果,因此引入图灵机是很自然的。这就是支持图灵完整智能合约的区块链系统使用ACCOUNT模式的原因。原因。

SERO的混合模式

SERO | 智能合约教程——匿名Token发行原理

SERO混合使用UTXO和ACCOUNT模式,采用需要隐私保护的UTXO模式,采用需要运行智能合约的ACCOUNT模式。 SERO通过交易,共识和Pedersen承诺算法无缝集成这两个模型,使智能合约的表现令人惊讶。

本文中提到的智能合约,在SERO白皮书中,对应于在链上运行智能合约的概念

二,匿名交易结构

在BetaNet网络中,SERO的一般交易是匿名的强制性要求。因为如果可以允许任何非匿名交易,则在关联的交易中将不保证想要使用匿名特征的用户的隐私。此外,如果您要宣传自己的资产等信息,建议使用公共信息有限的智能合约。

在MainNet发布时,SERO通过选择隐私级别实现了隐私和构建速度之间的平衡。

交易Tx

SERO | 智能合约教程——匿名Token发行原理

SERO的匿名事务Tx有一个匿名输入集Z ins,一个匿名输出集Z out,一个正常输出集O out和一个名为From的临时地址。 Z ins完全是匿名的,因此第三方观察者无法知道源和内容。 Z out完全是匿名的UTXO。只有收件人才能查看和使用其内容。 Oouts携带的内容是非隐藏的,它指向收件人有两种情况:一种是指向智能合约地址,另一种是指向暂存地址。 From表示事务的发送者,也是临时存储地址。因此,整个Tx不能使人们确定真实用户是谁,并且最大程度上也隐藏了所携带的资产等信息。

输入Z ins

SERO | 智能合约教程——匿名Token发行原理

在SERO事务的输入集Z ins中,每个输入都是匿名的,包括源UTXO的Id和所携带的资产信息。每个输入都证明ZKP生成的Proof是零知识,指向隐藏在巨大UTXO序列中的特定UTXO。此序列是SERO历史的一部分,所有细节都由Proof隐藏。验证者可以在不知道细节的情况下通过Proof确认输入是否合法。这种方式与环形标志非常相似,但我们的Proof本身比环形标志小得多,而且只有知识,用于隐藏UTXO的范围远大于环形标志。

两种不同的输出

SERO | 智能合约教程——匿名Token发行原理

SERO事务中包含的输出分为两种形式,零知识输出Z out和正常输出O out。

Z out
Z out指向临时存储地址PKr,只有收件人才能解密身份。由于每个登台地址不同,因此没有第三方可以识别Z out的方向。 Z out还携带加密信息,加密信息是资产的加密信息,只能由持有收件人私钥的人解密。 OutCM是输出承诺,只有交易的双方才能重现OutCM的计算过程。 OutCM在证明“Z out被ins引用”中起着至关重要的作用。

O out
O out指出的PKr有两种形式,一种是由智能合约发起并指向普通帐户的临时地址。另一个是由普通帐户发起的,指向智能合约的地址。由于临时地址的随机性,第三方无法知道收件人的身份,O out携带的资产信息是公开的。

输入和输出平衡余额

SERO | 智能合约教程——匿名Token发行原理

Tx将ins,Z out和O out打包在一起。如何防止恶意攻击者篡改数据并确保资产安全?我们介绍了perdesen的承诺,它的同态加密功能使验证者不知道信息的细节。接下来,您可以确认必须平衡Balance,即输入等于输出。

此外,为了防止恶意攻击者篡改O out,我们使用perdesen承诺的随机特性与Balance的随机部分签署Tx Hash。这样,每个输入和输出可以独立计算,然后通过B-Sign打包在一起。

交易发件人来自

当交易的输出指向智能合约时,智能合约有时需要根据所写的规则将资源输出到给定的账户。这时,临时地址From是接受输出资源的地方。 From是在生成并仅使用一次交易时确定的,除了交易的发件人之外,另一个人无法找到发件人的身份。

三,发布匿名令牌的原则

令牌资产

令牌,也称为“同质通道”,是SERO系统内部认可的资产形式。可以任意划分和混合相同类型的令牌,特别是所谓的“硬币”。作为SERO系统的第一种货币,SERO硬币本质上是一种令牌。对于令牌资产,除了费用规定,只能以SERO货币支付,同样在SERO系统内处理,并且通过共识确保隐私和安全。

与以太坊中的Token概念不同,以太坊中的Token只是智能合约内部记录的象征,而ETH是实际在以太坊内部运行的Token资产。
货币名称

每个令牌都有一个货币名称。初始化SERO系统后,默认只有一个注册的硬币名称SERO。当智能合约发出匿名令牌时,必须在SERO系统中注册全局唯一字符串作为令牌的货币名称。货币名称可以极大地提高您已发行资产的可读性。

匿名令牌资产

SERO | 智能合约教程——匿名Token发行原理

SERO的智能合约有一个非常强大的功能,即你可以任意发出匿名令牌。当然,前提是您需要一个从未注册过的货币名称。一旦成功发布匿名令牌,智能合约就可以以正常交易的形式将令牌发送到普通账户的临时地址PKr。此时,发送的令牌将以UTXO的形式与智能合约账户分开,并与SERO货币相同。 ,输入用户的个人帐户,从而受到SERO隐私机制的保护。

SERO硬币的发布是由矿工完成的。该过程类似于智能合约发布匿名令牌的机制。它是SERO的内置令牌分发功能。

四,最后一个

我们初步了解SERO智能合约的原则,用于发行和处理匿名资产。如果您想了解匿名资产发行的技术细节,请阅读教程《 SERO官方WIKI》《问题匿名令牌战争》


微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发