Neo N3引入随机数的重要性|Neo专栏
共 2199字,需浏览 5分钟
·
2021-07-10 20:39
Neo N3测试网最终版本的上线已经越来越近。
在此次更新中,
最重要也最不可忽视的更改之一
便是「随机数」的添加。
那么,
为什么N3要克服重重困难引入随机数?
其意义和重要性究竟体现在何处?
阅读下文👇,带你了解
「N3引入随机数的重要性」🔍
N3引入随机数的重要性
从我在2018年写《一个可能的Neo链上安全随机数解决方案》这篇博客开始,我纠结于在Neo添加随机数的支持已经有很多年了,之后各种不靠谱的和更不靠谱的,改共识算法的乃至用TEE的解决方案想了一个又一个,但也都是口嗨,想要真的在已有的区块链系统里添加随机数支持太难。直到最近才有机会真的去认真的考虑给Neo添加随机数功能,这就是issue#2456。
首先来给大家解释下为什么要纠结于给区块链添加随机数。因为区块链本身是一个确定性的系统,所有的东西都是确定的,这也就意味着我们在开发智能合约的时候只能执行确定性的事件,我们的交易在发送之前其实我们就已经知道了结果。可问题是我们的现实世界除了确定性之外,更多的是不确定性,现实世界的丰富多彩是由许许多多确定性的和不确定性的事件共同构成的。
确定性的事情很好理解。在确定有存货的情况下,你只要攒够了钱肯定可以买到心仪的手机;你只要给手机充电,手机肯定可以充满;你去吃自助餐,肯定可以吃饱;转账只要不双花只要符合系统要求一定会成功;账户没钱一定没法转账;合法的调用合约一定会成功。这些确定性让我们可以精准的对结果进行预测,让我们不必担心住在河南会突然遇到海啸。这些都是生活里的确定性事件,但其实这种事件的场景是很有限的,生活中大量的场景其实或多或少都需要依赖于不确定的事件。
比如我们买彩票,中奖这件事就是不确定的;我们今天出门,下雨不下雨是概率性的;考试的时候蒙的全对是概率性的;出门吃饭遇到女神是概率的;请女神看电影她答应了也是概率性的;你赶公交刚好错过末班车;剪刀石头布你连赢十局;斗地主抽到一手好牌;开盖有奖你中了一等奖;刚买的手机发现里面有自拍照;十连抽你全部SSR;加密猫繁殖你获得了一大堆稀有属性;你本身就是万里挑一的武学奇才;高考当天窜稀;买了个瓜切开发现没熟;吃水果发现里面有额外的蛋白质;玩射击百发百不中;走路上被鸟拉头上;惹女朋友生气结果发现女朋友原来是练散打的,等等等等。以上一切都是概率性事件。这一切都没办法用智能合约很好的支持(加密猫的随机算法其实并不安全)。
由于我们生活中绝大多数的事件都是具有随机性的,所以智能合约能做的事情其实很有限,或者说很难比较好的支持。加密世界2019年有一段时间很流行博彩类dAPP,在EOS这个平台上出现了一大堆的博彩类游戏,一度把整个区块链行业都炒得热了起来,可是这一大类dAPP都需要链上随机数,很不幸的是EOS并没有原生的随机数支持,因此这些dAPP就用各种的链上数据来生成随机数。结果大家也都很清楚了,黑客轻而易举的破解这些随机数算法,成片的收割这些博彩类dAPP,其规模比现在风头正盛的闪电贷攻击也不遑多让。这个事情就很好的证明了链上原生随机数的重要性。或者我们就直接了当的说吧,没有随机数的话,区块链游戏无限接近于无法生存(智力对抗型的棋类游戏不需要随机数,比如象棋围棋)。有随机数,有区块链游戏,没有安全随机数,区块链游戏只能是空中楼阁水中泡影。
大家都知道现在方兴未艾的概念是NFT(非同质化通证),英伟达的黄教头甚至认为NFT的元宇宙已经到来,不去管这些奇奇怪怪的名词,至少我们可以从暴涨的币价和令人咂舌的拍卖价格上感受到NFT的重要性,更何况世界上已经有成千上万的艺术家,运动员,音乐家等等的人将自己的作品做成NFT,可以说,如果DeFi是将金融带进区块链的话,那么NFT则将是现实的物品的属性代入了区块链世界。再往大了说,NFT第一次将现实世界的稀有性带入了虚拟世界,以前我们收藏字画收藏古董,现在我们第一次可以收藏数字化的物品(加密猫就属于NFT,游戏中的稀有物品也属于(就是?)NFT)。而随机数就是NFT类合约需要的重要功能(不然你还想不想要抽SSR了)。
既然区块链随机数这么重要,那为什么现在区块链里很难见到对随机数的支持呢?原因就在于为分布式的,动态的,拜占庭的系统设计一款轻量级的,调用简单的,安全的随机数算法无限接近于mission impossible。难,太难了,但无论如何,Neo绝对需要随机数来面对未来的区块链发展。我将会在下一篇文章里为大家详细介绍其中艰辛。
All in One · All in Neo
Neo是一个由社区驱动的开源平台。利用区块链技术与数字身份,开发者可以通过智能合约实现资产管理数字化与自动化。Neo致力于通过分布式网络建设下一代互联网基础设施,为区块链技术大规模落地奠定基础,以实现智能经济的宏大愿景。
自2016年上线至今,Neo主网已稳定运行超过四年。全新版本Neo N3预将于2021年发布,将提供更高吞吐量、更强稳定性与安全性,并带来优化的智能合约系统及功能丰富的基础设施集合,旨在赋能开发者并加速企业级区块链创新。