是不是「杀手级」应用还有待于观察,但是确实是Rust的一个推广的机会。
其实Rust编程过程中所体现出来的哲学思想和区块链非常契合。用Rust写程序,编译的时候想撞墙,不过编译成功之后,基本不会出现内存泄漏问题。因为它从设计之初,就力图保证类型安全和避免内存泄漏。但是我有感触的不是这一点,而是Rust对unsafe的理解。
初学Rust的时候,很多人可能像我一样,对写和调用unsafe函数有一点本能的抗拒——我们撞了这么多次墙,就是为了获得超越C++的安全性,所以unsafe能不用就不用!
但是随着继续的深入学习,我现在个人的理解是Rust语言的设计者并不是不鼓励大家使用unsafe,而是利用unsafe这个关键字,让代码有一个明确的划分:没有unsafe关键字的在「安全区」,是我们可以放心的;而有unsafe关键字的,是有可能出现内存问题的,需要我们重点去review的。
这种「安全区」——safe land的思想,不但能够帮助程序员减轻review代码和debug的负担,同时也显著的提高了程序设计的效率——我们可以在规划模块的时候就大致的设计好,哪部分是需要加unsafe的,哪部分是不需要的,并且规划好unsafe 函数的作用范围。
再看区块链,一旦信息上了链,那么除非在绝对算力/很多人共谋的前提下,共识算法会保证大家在链上所确认的共识是「正确的」和「难以被篡改的」。然而,谁来保证从链上到链下的信息传递是正确的呢?
从这个意义上说,区块链本身也是去中心化信任的「安全区」。区块链同样是把信息分成了两部分,链上的信息在传递过程中可以保证是没有篡改的;而链下信息就是unsafe的,更加的自由,但是也充满着各种篡改和泄漏的可能。
用智能合约做金融业务,每一次合约执行的背后可能有巨大的财富的转移,也确实需要一种可靠的语言来夯实基础。从这个角度来说,Rust和Libra的结合也非常让人看好。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有