Stegos STG
$0.00024 0.00%
Stegos为打造去中心化移动应用提供了完全隐私和安全的基础
Stegos代码审查:分散式移动数据应用程序的隐私平台
牛币圈
来自共享财经

本文作者Andre Cronje是一位拥有20年开发经验的软件架构师。在本文中,Andre着重审查分析了Stegos的代码库。


注:Stegos是一种新型的隐私区块链,致力于保护数据、交易和通信。Stegos认为现有的隐私区块链都存在问题。包括Verge,Dash,ZCash,Monero,Grin和Beam。


Stegos认为,Verge提供的隐私很少,没有什么独特之处。Dash并不是真正的私密,ZCash要求你信任它,Monero很难扩展。基于MimbleWimble技术的Grin和Beam要求发送方和接收方都在线完成交易,这对于现代全球通信和业务需求是不切实际的。此外,Grin / Beam网络上的任何节点都可以监听并跟踪正在交换的代币,因此它们的代币不可替代并且很容易被标记为非法资产。


最后但并非最不重要的是,上述区块链都没有提供构建隐私应用程序的平台,大大降低了它们的实用性和可访问性。


Stegos所采用的隐私技术:基于配对的密码学(PBC),BLS签名,Schnorr签名,机密交易(CT),隐形地址,Bulletproofs,ValueShuffle,以及通过OmniLedger分片加上可扩展性。


-----


Stegos是一种完全私有的、机密的、可伸缩的加密货币,对环境友好。


在这一点上,我不得不说这些人是这个圈子里的OG(大师)。感觉我已经认识Joel很多年了,他绝对是我认识的最执着的人之一。


还记得去年整个第一代vs第2代vs第N代的争论吗?还有一些自称是第8代的区块链,我想我们终于看到了第2代浪潮。我们看到了很多PoS + BFT +隐私协议的出现,并且越来越多的协议正在走向成熟。


我之前评论过Harmony,我现在正在研究Elrond,我们有CasperLabs、Near、Aleph和其他一些公司,我想说它们都符合第2代的叙述。


从技术上看,这是好事,这意味着技术堆栈正在成熟。我不确定这是否意味着更多,但让我们看看。


作为隐私应用平台,Stegos为构建分散的移动应用程序提供了绝对私有和安全的基础。


通常的第2代101都承诺:绝对隐私,分片+高tps,低终结(秒),数据pruning,在移动设备上运行等等。


让我们快速入门一下区块链和决定论。


为什么我们要相信比特币或以太币余额?因为我们可以用基本的算法从0开始跟踪每个事务。我知道一个账户的余额是10,因为它收到了一个10的输入,我可以将这个输入一直追溯到genesis(或者一个块奖励——因为只有genesis和块奖励才能创建新的输出)。


但如果这些不可链接或者私有的话,会发生什么?


我如何知道我所看到的我可以信任的价值?最初的隐私就是无法真正看到交易发生在哪里,这有点类似于交易所的工作,你有很多输入,交易发生在中间,所以输入完全被打乱了,你的输出可能来自任何地方。


举一个更具体的例子。


假设我存了1eth,做了一些交易,赚了2eth,现在我取出了2eth。2eth与我存放的1eth不再相连。这本质上是一个隐私事务(尽管访问交易所审计日志(假设他们保留一个)可以给我这个数据)。一些聪明的密码学(如环签名)允许这样做,一些疯狂的密码学(如bulletproof)则完善了这一点。


所以一个环签名可以使输入和输出隐藏起来。他的价值在哪里?我想给你发10个,但我不想让任何人看到我给你发了10个。这就是range proof的作用,range proof提供了一个证明,即一个值在一个范围内,而不暴露实际值。


所以现在我可以混合from/to并隐藏值,但是如果我仍然想避免“to”地址,我想我在Wanchain的OTA交易中第一次看到了这一点。本质上是另一个隐藏地址连接到你的主地址,你可以转移,这将把余额添加到你的主地址,但是转账将显示到你的辅助地址。这就是隐形地址。


所以有很多不同的技术可以完成一些很酷的隐私行为。


需要更多关于他们的数据压缩。看起来它们删除了消耗的输出,只保留未使用的值(有点像mimblewimble技术压缩)。


所以这肯定是所有东西的混合。目前为止,我们已经看到Pedersen提交,防弹,地址隐藏,加密有效载荷,utxo pruning,PoS, pBFT,value shuffle的混合。不过Stegos给人的印象非常优雅。我经常读到类似的白皮书,似乎有人只是复制粘贴了其他白皮书的不同部分,但这一篇非常符合逻辑,每一个额外的选择似乎都是经过深思熟虑的,而不是简单地为了能够说自己拥有它而添加的。


阅读这篇白皮书实际上让我对代码感到兴奋。我们就这么做。



让我们做基本的。871提交,12个分支,6个版本,6个贡献者。健康的回购。良好的问题和请求管理。




前三名贡献者共享一致且优秀的贡献。很高兴看到并显示了一个健康的代码库。


Rust   代码库,看到的这种情况越来越多,似乎Go语言的状况正在改变。



API是一个直接的websocket协议的实现。



没有必要深究这个,好的建筑设计。



区块链看起来有前途。



一个chain versioning number,我不经常看到。但我喜欢它。


VRF为主导。(我看到VRF就会想到BLS,讨厌的习惯)



Rust就是这样一种优雅的语言。代码看起来总是那么漂亮。我想说的是,作为一名程序员,我不太喜欢Rust……



这是我们的好朋友BLS。好的,所以领导人选用的是VRF和BLS签名来证明。101的pBFT共识。



好的,看起来在一个给定的块中有很多事务(对于不同的输入/输出对)。然后对它们随机排序(基于散列,但散列是随机的),然后分配输出。这是非常简单,但非常优雅。为了提供更多的例子,假设你有:


inputOne(value10) inputOne(value10)

inputTwo(value7)outputTwo(value4)& outputThree(value3)

在比特币中,我们可以看到两个事务块,tx1与inputOne和outputOne, tx2与inputTwo和outputTwo & Three。在这里,Stegos通过抽象事务层创建超级事务。相反,他们会有超级交易:

输入(value10)

输入(7)value

输出(3)value

输出(4)value

输出(value10)

加上随机排序(从那个散列中),基本上就不能将任何输入映射到它们的输出。

同样,非常简单,但非常优雅。



好的代码不是复杂的代码。如果你能接受复杂的想法,并使其易于阅读和理解,那么你就知道你在做什么。这是很好的代码。



领导者选举,使用随机pbc::VRF,我们需要去看看stegos_crypto::pbc。



股权托管管理。一些简单的东西,但我没有想过。


Merkle代码很好,multisig代码也很好。没有什么特别的可以推断的东西,我很喜欢这样做,但也没有什么秘密可以提及。



看起来所有有趣的东西都在stegos_crypto中,很快就会实现。



默认值是私有的,但你仍然可以做公开的。




同样,使用了非常简单的技术,但是结合得非常优雅,可以生成非常棒的代码。



隐形密钥生成,确定性随机范围内。他们想到了很多潜在的攻击载体。这个团队精通密码学。整个输出。rs文件非常棒。



因此,我们已经知道我们将有一个隐藏的地址,bulletproof的数量,这些事务将被捆绑成一个大的超级事务,以混合输入和输出。他们所说的一切都是基于白皮书。pBFT/BLS/VRF涵盖了每秒可能超过100个事务的领导者选择+分分钟结束。


很多的制衡和思考都变成了潜在的攻击载体。



看看这个,我喜欢验证清单。



共识是155行代码,当然这不是一个测量标准,只是优雅。



可变快(不太安全)或安全(较慢)的变化,其pbc使用Ben Lynn的PBClib。这是稳固的。


他们的密码库比他们的区块链库更好……




网络是稳固的,pubsub和Kademlia。


Stegos代码评审结论:


这真的很好,考虑到Joel一直在telegram上烦我写评论,我其实希望它会是坏的。但是真的很好。


所有的承诺(VM除外)都在这里,所以我不太确定为什么它们还没有进入主网阶段。我将把他们作为第2代候选人的有力竞争者加入名单。看起来像一个坚实的pBFT +隐私+ PoS +压缩区块链实现。我期待着主网的测试。


注:Crypto Briefing代码审查是通过审计repo的主分支中显示的内容来执行的。这是一篇教育评论,文章中的任何评论都是作者的观点。代码快速更改是正常的,因此我们对代码评审进行时间戳,以便它们在某个时刻呈现快照。所载资料不应用作对整个计划的任何意见或建议

2019年05月29日 11:11图文分享