http://www.7klian.com

Suterusu CTO 林煌:如何助力Neo开拓Layer2隐私协议的办理方案

以下是全场勾当的文字版内容实录:

Burn将Suter转换回NEO。它按照Fund声明的statement来验证Fund对应零常识证明,以确保发送者知道正确的私钥并burn了正确的金额。它还查抄生意业务数据上的签名和计数器的当前值,以防备重放进攻。
林煌:我以为区块链此刻还处于起步阶段,对付这种新闹事物的禁锢,相信有关部分也正处于探索阶段,这个应该会慢慢成熟起来吧。
林煌:这个问题很好,其实转账时候钱币的所有权照旧由对应Suter的私钥界说的,所以纵然一堆的Suter在转账所有者照旧清楚那一部门是本身的NEO转过来的。
· 作为Suterusu roadmap中的一环,与Neo这样的公链举办技能相助是今朝较量重要的工作,Suterusu最终的定位和愿景是什么样的呢?项目最大的代价表此刻什么处所?

本日给各人先容下Suter作为Neo Layer2 办理方案的架构。

通过此操纵,可以在Suter blockchain中匿名转账Suter token。匿名转账对应零常识证明可确保密文具有正确的名目,而且发件人有足够的Suter token。
· Suterusu最近在市场层面频繁的发声,是不是在技能上取得了领先的优势性的希望?
林煌:嗯?frontrunner主要和生意业务以及合约被执行序次有关,而生意业务编号是用来区分协议的freshness的,这两者应该是互不相关的,因为有大概被frontrun的协议和frontrun的协议都是fresh的。
· 请问,Suter自己作为Layer2的办理方案,未来拓展到多条链的时候,是否有对差异范例的代币之间举办区分的机制?因为NEO在您的链上需要兑换成Suter,此外代币也会兑换成Suter,那在转账的时候,如何区分呢?
用户通过运行以下算法之一与智能合约交互。这些算法的输出是原始生意业务。它们将利用发送这些生意业务的NEO可能Suter帐户的私钥签名,并触发NEO或Suter blockchain的智能合约。
有关这些算法的更多具体信息,有乐趣的读者可以参考Suterusu黄皮书。请留意,发件人需要购置Suter token以付出匿名转账的用度。
– Burn合约 –
· 这个架构就是为了匿名转账设计出来的吗?
发件人通过运行CreateAddress建设一个Suter帐户,然后运行CreateFundTx算法来建设一个能运行Fund智能合约的生意业务,该生意业务将启动Fund智能合约,并在他的钱包中将NEO转换成Suter代币,然后将这些Suter代币转到新建设的Suter帐户中。

· 能不能简朴说一下Suter虚拟机。
别的,和大部门不提供智能合约成果的隐私币对比,suter的智能合约答允我们提供更为富厚的金融成果。别的,我们还提供了一个Suter虚拟机基于我们的zk-consnark提供各类隐私掩护的处事,包罗隐私掩护的pos和匿名认证等。
这里描写下如何防备frontrunner进攻。当涉及到跨链成果时,这个是我们必需思量的问题。Zether的论文提供了一个如何提倡frontrunner进攻的具体案例:转账生意业务中的零常识证明需要证明余额为正。
CreateAddress(sk,pk)为用户提供了一种向智能合约认证身份的要领。它以安详参数 lambda作为输入,并输出一个私钥sk和相应的公钥pk。

用户Alice针对合约中以加密方法存储的金额为正的证明。可是,假如另一个用户Bob转移了一些ZTH到Alice,而且Bob的生意业务被blockchain network先处理惩罚,则Alice的生意业务将被拒绝,因为此时Alice账户余额由于Bob的操纵而改变了,因此对应的零常识证明不再有效。请留意,Bob完全大概用心精采,而Alice却会因此失去了为处理惩罚生意业务而付出的gas用度。
· 那我拥有的那部门由NEO兑换来的Suter是否可以兑换成此外代币呢?入股我本身不行以,那我把Suter转给别人,别人是否可以自由兑换成任意的代币呢?
· 匿名币在早期的加密社区就很受各人重视,门罗,大零,小零,和从去年开始较量火热的grin等等,林博士可以不行以深入浅出的为我们表明一下Suterusu Zk的焦点优势点相较于其他的匿名币办理方案毕竟优秀在那边?

如系统架构图所示,发送者将从他的钱包中选择NEO账户,并运行Fund智能合约,该合约将NEO转换为二层协议代币Suter。Fund合约将在主链网络上运行。
为了防备重放进攻,Suter框架具有别的一个重要成果:将帐户锁定到智能合约里。将一个随机数与每个Suter帐户相关联,该随机数将随该账户所处理惩罚生意业务数目增加而增加。来自帐户的新生意业务必需签署与该帐户关联的最新随机数以及生意业务数据(个中包罗对应的零常识证明)。这种要领将生意业务的所有内容,包罗随机数和零常识证明绑定起来,并确保freshness。因为进攻者无法在恶意生意业务中导入正当的零常识证明,也就无法实现重访进攻。
别的,因为此刻用户对隐私问题越来越重视,别的区块链中有许多隐私相关的问题亟待办理,所以我们相信这样一个专门针对隐私处事的虚拟机是有他的市场的。
ReadBalance(sk,st)读取帐户余额。该算法输入为密钥sk和状态st,输出整数b。
任何人都可以通过指定公钥并转移一些NEO来为帐户注资。该合约将NEO转换为Suter。NEO被存储在智能合约中,而Suter将以同态的方法添加到y的余额中。假如该帐户尚不存在,该合约将会建设一个新帐户。该条约中的转账操纵还附带有范畴证明,以确生存款金额不高出Suter token的上限。
Suter付出框架
最后,Fund条约会将匿名的Suter token换回NEO,并将其存储在吸收者的钱包中。发送者将运行CreateBurnTx生意业务以触发Burn contract,以将匿名化后的Suter帐户中的Suter token转换为吸收者帐户中的NEO。
我们在架构设计中还思量了如何防备frontrunner进攻和重放进攻。
Q&A问答环节
为了办理frontrunner进攻,Suter框架将所有传入的transaction临时保持为pending状态。系统时间分为多个周期,每个周期由k个持续的块构成。在每个周期竣事时,未完成的转帐将被转入相应的帐户。估量用户将在一个周期开始时宣布其transfer或burn生意业务。
· 林博士您提到为了防备frontRunner进攻,您利用了较量巨大的生意业务状态打点,可是为了防备重放,您又对生意业务编了号,我较量迷惑的是,为什么对生意业务编号自己为什么不能用来防备frontrunner呢?
Suter付出框架主要包括以下三个智能合约,以实现智能合约平台的保密付出。
如何防备frontrunner进攻
· 说回与公链相助,在技能层面之外,各人最体贴的是,隐私协议+公链所能培育的应用场景是什么样的,除了转账这样的底层需求之外,林博士有没有概念想要分享一下?
林煌:这个应用场景许多,因为区块链技能最主要的应用照旧去中心化金融,而对付金融处事而言,因为涉及的数据极为敏感,隐私掩护应该是个须要条件,所以这个问题办理好了,,浩瀚之前只能谈谈罢了的应用场景好比dex什么的就有了可以落地的一个须要前提了。
– Transfer合约 –
CreateTransferTx(sk_ {from},pk_ {to},amt,st)将资金从一个帐户转到另一个帐户。它需要私钥sk_ {from},吸收者公钥pk_ {to},转账金额amt以及某个特定block height h的智能合约的状态st 作为输入,最终输出tx_{trans}。(对付匿名转账,该算法还把匿名荟萃AnonSet作为输入,输入中还包罗发送者和吸收者的公钥。AnonSet也会包括在输出中。)
林煌:今朝我们项目照旧专注于做处事于公链的二层协议,一个能匿名化任何底层暗码币的二层协议。短期来看我们为智能合约平台设计的匿名付出方案为各大公链生态系统提供一流的隐私掩护处事,恒久看我们但愿能填补暗码理论和隐私掩护技能实践之间的鸿沟。

久违的Neo Live再次与各人晤面啦!2020年的首期Neo Live,我们邀请到新同伴 Suterusu 的 CTO 林煌,一起聊聊他们与Neo的深度技能相助「如何助力Neo开拓Layer2隐私协议的办理方案」。

林煌:这个问题你大概得问Suterusu的首席经济学家郭大治老师,因为我本人不是经济学家,对这方面相识得也较量少。但我清楚我们的代币刊行总量为100亿,并且是通缩模子。
林煌:Suter虚拟机是我们劈头的设想,在我们zk-consnark在测试网测试运行靠谱今后,我们会在这上面出力多些。
林煌:那虽然可以。

· 林博士对隐私与禁锢的均衡问题有什么观点?
在NEO blockchain确认Fund条约后,将通过运行Suterusu匿名转账contract来匿名化对应Suter token,该条约将由Suter blockchain network确认。这里,Suter匿名转账contract将担保发送者和吸收者的匿名性以及转让金额的保密性。发送者将通过运行CreateTransferTx来建设一个能触发Suter匿名转账contract的生意业务,即Transfer。
林煌:今朝我们暗码模块和客户端根基已经调试完毕,此刻在举办暗码模块和网络的对接,估量三月份测试网上线。
· 林博士可以简朴先容一下Suterusu的通证经济模子是如何设计和运作的吗?
– Fund合约 –
换句话说只有你知道私钥的那部门Suter才真正是你的,这也切合整个的根基原则,私钥即所有权。
CreateFundTx(pk,amt)向帐户添加资金,该算法的输入为公钥pk和金额amt。
下面将先容这些contract的细节以及各个用户算法与这些contract如何交互。
CreateBurnTx(sk,st)从帐户中提取全部余额。这个算法的输入是密钥sk和一个状态st。
然后,当收到来自该帐户的第一条动静时,我们会在一个时期内翻转一个帐户;因此,一条动静只会转动到一个帐户。为了实现这一点,我们界说了一个单独的(内部)转动要领,其他所有要领要做的第一件事就是挪用该要领。
林煌:主要是这个目标,但我们利用的零常识证明代码库可以扩展成通用的,这方面的研究事情我们一直在做,别的我们也会思量做些针对零常识证明的ddl,以担保零常识证明协议的可用性。
这个系统架构或许就是这样了。
林煌:今朝的隐私币要不就需要可信初始化(如zcash),这将答允进攻者不被察觉的环境下刊行不限量的zcash,要否则就可扩展性不强(如monero)。我们所提出的高效的保密付出方案能担保我们的隐私掩护blockchain协议能在安详性和可扩展性之间得到最佳均衡,也就是既无需可信配置同时证明巨细照旧常数的。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读