http://www.7klian.com

数据迁移的浩劫题,靠剧本哈希就可以办理吗?

如何改变数据迁移背后的逻辑,张铮文提供了一个新方案:合约重定向。

别的,剧本哈希自己的变动也带来了一个问题。合约乐成迁移后,已集成特定合约的处事商需要手动更新其处事,才气利用新的剧本哈希。这增加了诸如生意业务所,钱包揽事商以及通过动态挪用举办交互的其他合约之类的实体开销。
● 重要特性

相识「剧本哈希」前,先为各人科普下「哈希」的观念。
字符串由数字和字母组成。个中一种要领就是SHA-256(安详哈希算法-256位),SHA-256是SHA-1的后继者,SHA-1的输出是160位的。
尽量这种要领有助于确保差异智能合约不会生成沟通的剧本哈希,可是它引入了一个新问题。在迁移的进程中,更新智能合约意味着必需将所有存储的数据移到新的合约剧本哈希中。正如Neo首创人及焦点开拓者张铮文暗示,此事件大概会带来大量的人力与物力支出。
–  输出值独一性和不行预测性。只要输入的信息有一点点区别,按照哈希算法得出的输出值也会相差甚远。
合约重定向
这些剧本哈希也可以利用当前的Neo版本号作为前缀,并通过Base58Check编码运行,将其转换为Neo用户更熟悉地更具可读性的民众地点名目。
但这一方案也存在一些其他问题。好比无法陈设原始合约,以及在迁移后无法从原始合约中挪用要领。这也暗示,第三方处事商仍将需要手动更新其处事来利用新的合约哈希。
哈希算法是一种函数,可以将任意长度的数字文件输出为牢靠长度的看似乱码的字符串。
剧本哈希
为了利用户可以或许挪用智能合约,该节点必需要先知道其数据存储的位置,才气找到要执行的代码。 
在Neo2情况中,密钥以剧本哈希的形式储存,通过将智能合约的指令集(操纵码)哈希化而生成剧本哈希。首先利用SHA256完成此操纵,再通过RIPEMD160将功效哈希化来生成剧本哈希。

「三分钟入门Neo3」的下一篇,我们将先容什么是UUID,继承分享Neo3的开拓进程。

“不再在每次合约进级期间直接迁移数据,而是建设重定向记录。当合约读取数据时,它可以基于重定向记录找到原始合约哈希,从而会见正确的数据。”
剧本哈希的生成机制有另一个副浸染——无法从头陈设旧合约。由于两个合约中的输入指令集沟通,因此颠末哈希后会发生沟通的剧本哈希,由于匹配问题,陈设将宣告失败。

● 根基观念
利用重定向方案就不再需要更新数据前缀,而是建设一笔记录,将合约数据的修改重定向到原始合约。本质来说,新合约可以直接从原始合约中读取和写入数据,不再需要迁移数据。

由于对该方案漏洞的不满足,张铮文又提出了
办理剧本哈希问题的另一种要领:通用独一标识符(UUID)。
NGD软件开拓者刘梦雨辅佐增补了方案中的更多细节,并指出大量的资源耗损是因为需要新的合约来更新存储密钥的剧本哈希数据前缀,以便从原合约中迁移数据 。
“今朝,当智能合约举办进级时,所有存储的数据都将迁移到新合约中。假如合约中包括大量数据,,则迁移的事情量将很是大,并大概导致DoS进攻。”

今朝,该方案已在实施中。个中涉及两个合约新属性的建设,即重定向和删除逻辑,以处理惩罚合约删除逻辑并提供用于重定向的原始剧本哈希。
– 不行逆性。输入信息得出输出的谁人看似乱码的字符串(哈希值)很是容易,可是从输出的字符串反推出输入的功效却长短常很是难。

「预言机篇」四讲内容正式完结啦,本期「三分钟入门Neo3」将先容「剧本哈希」(Script Hashes),一起看看Neo焦点开拓者为了改进智能合约系统和数据迁移问题,对剧本哈希做了哪些实验?

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

相关文章阅读