1
板块介绍
在上一期分享中,蓝教兽提到以太坊支持开发者在其区块链基础上开发分布式应用,而开发是基于以太坊的智能合约的。智能合约是以太坊账户(Account)的一种形式,也叫合约账户(Contracts Accounts),除此之外,私人拥有的账户被称为外部账户(EOAs,Externally Owned Accounts)。这一期蓝教兽就带大家看一看什么是以太坊的账户。
2
什么是以太坊账户
所谓账户就是一个20字节的地址,账户标识了以太坊网络中每一个参与者的身份。它们在以太坊中所维护的都是一系列叫做状态对象(state objects)的实体,存储的这些状态会通过以太坊网络进行更新以及保证数据的一致性。如前面所说,以太坊账户分两类:
外部账户
外部账户即以太坊上人类参与者所拥有的账户,由用户的私钥控制,拥有以太币余额,能够通过私钥发送交易/信息,但是不包含任何代码。每个账户都由一对钥匙定义,一个私钥(Private Key)和一个公钥(Public Key)。 账户以地址为索引,地址由公钥衍生而来,取公钥的最后20个字节。每对私钥/地址都编码在一个钥匙文件里。为了使账户更加安全,有别与比特币直接采用私钥登录,以太坊采用密码加keyfile进行登录(密码+keyfile =私钥)。如果采用私钥直接登录,那么只要储存私钥的设备被盗,那么账户也就被盗了。而以太坊现在的登录方式确保了就算储存keyfile的设备被盗,黑客在没有密码的情况下也无法登录我们的账户,密码就是跟我们平时使用的密码一样,记在脑子里就好。
合约账户
合约账户是由自身的合约代码控制,也跟外部账户一样拥有以太币余额,能够通过私钥发送交易/信息。合约账户不会自行运转,只有当另外一个账户(外部账户跟合约账户都可以)向该账户地址发送交易/信息的时候,才会被启动。
3
账户运转的媒介 - Gas
以太坊是一个分布式网络的部署平台,也就是说在上面做的任何操作都需要矿工的设备进行运算确认。为了确保矿工参与的热情,正如蓝教兽之前说过的一样,矿工每次挖矿成功都会得到奖励,除了区块链本身赋予的奖励之外,其中一部分是来自于交易/信息发起人所缴纳的服务费 - gas。gas也就是账户付给以太坊和其他参与者进行运算的费用了。外部账户的gas由账户本身自己负责,合约账户的gas则由触发代码的外部账户缴纳,也就是说当外部账户A向合约账户B发起消息触发代码时,账户A需要支付本身发送信息的gas,外加账户B运行代码的gas。
总的来说,账户是以太坊区块链运行的重要组成部分,想要在以太坊上成功发布分布式应用需要结合好外部账户跟合约账户,怎么做呢,下一期蓝教兽会给大家举个例子说明一下。
谢谢阅读!
本文章为一克拉区块链原创,如有转载请联系我们,非法转载必究!
领取专属 10元无门槛券
私享最新 技术干货