以太坊(Ethereum)是一个开源的有智能协议(又被叫做智能合约)功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点协议。
Solidity 是运行在以太坊虚拟机中的代码,同时是目前主流的以太坊智能协议编程语言。
Solidity 和其他语言咋看起来没有质的区别,它长得也很像 JavaScript.
但是,有几点以太坊上的 DApp 跟普通的应用程序是有着天壤之别的。
第一个例子,在你把智能协议传上以太坊之后,它就变得不可更改, 这种永固性意味着你的代码永远不能被调整或更新。
你编译的程序会一直,永久的,不可更改的,存在以太网上。这就是Solidity代码的安全性如此重要的一个原因。如果你的智能协议有任何漏洞,即使你发现了也无法补救。你只能让你的用户们放弃这个智能协议,然后转移到一个新的修复后的协议上。
但这恰好也是智能协议的一大优势。 (Code is law)代码说明一切。 如果你去读智能协议的代码,并验证它,你会发现, 一旦函数被定义下来,每一次的运行,程序都会严格遵照函数中原有的代码逻辑一丝不苟地执行,完全不用担心函数被人篡改而得到意外的结果。
要注意的一点是:合约部署者对合约享有的一定的特权是正当的,但也可能被恶意使用。比如,万一部署者添加了个后门,允许他偷走别人的$呢?
所以作为用户,你要知道的是,部署在以太坊上的 DApp,并不能保证它真正做到去中心,你需要阅读并理解它的源代码,才能防止其中没有被部署者恶意植入后门;
而作为开发人员,如何做到既要给自己留下修复 bug 的余地,又要尽量地放权给使用者,以便让他们放心你,从而愿意把数据放在你的 DApp 中,这确实需要个微妙的平衡。
题外话
现在许多“区块链项目“技术创新为零,倒是在创造炫酷的技术术语或者缩写上颇有建树。并且动不动3个月内主网上线,扒开来一看还是几十年前的老东西,或者哪里抄来的开源虚拟机。并且大部分技术问题是系统工程问题,并非数学问题,技术基础架构和技术人才储备的Google Amazon Facebook等巨头真的下决心要入场区块链,这些写个ERC20都要外包的项目团队可能连归零的时间都没有。所以别老嚷嚷赶超BAT,动不动要解放全人类,有空学些Solidity,至少还能以后和儿子吹牛“爹当年也是第一批持证智能合约程序员” 。
原来区块链设计初衷是为了解决信息不对称带来的各种市场无效性,让消费者有足够的信息进行选择以及能对自己的数据进行全权的把控。可是现在连最基本投资和发币上智能合约的事情都没有做到,更不要说其他的基本信息了。本来区块链最应该解决的事情,反而因为信息不透明滋生如此多代投乱象、恶意拉盘、砸盘吸血等等,这个也是行业的悲哀。
网友评论
同意楼上说的,基本看不懂,哈哈。
我也是比较懂最后一段,但我俩看的好像不是同一段,我看的是小礼物走一走那段。哈哈
加油加油区块链大有前途。