去中心化App(DApp,Decentralized Applications)
与中心化App 的区别是,DApp 只有节点(客户端),没有服务器。
典型DApp应用包括比特币、以太坊等。
区块链(BlockChain)
本质上是一个去中心的数据库,区块链包含一串数据块,每个数据块中包含若干交易数据、时间戳等信息,可用于验证交易的有效性。
以太坊账户
ECC-256 算法生成一个公私钥对唯一对应一个账户。
私钥在掌握在账户所有者手里,该账户发起的交易需要用私钥做数字签名(DCDSA);如果丢失私钥,意味着这个账户中的余额将永远无法找回。
账户地址由公钥运算生成,address = BCD(kecak-256(pubKey).subString(12,20))。
挖矿
和比特币一样,以太坊也是采用工作量证明(POW,Proof Of Work)作为一致性协议。POW 的特点是只能通过暴力穷举法求解,没有简单解法,也就是说一个矿工运算能力越强,挖到的可能性越大。
Nonce 是一个uint64 类型的数,矿工主要通过修改Nonce 来改变区块hash 值,一旦发现某次hash 值少于挖矿难度(Difficulty),立刻向全网发出广播。如果该区块被全网接受,那么该矿工将会收到一笔以太币作为奖励,包括固定奖励+交易费用。
区块间隔
以太坊相邻区块时间间隔大概10~20秒,挖矿难度可以自动调整,来控制区块生成速度。
以太币单位
以太币可以扩展到小数点后18位,最小基本单位是wei。
以太币(Ether)其它单位
1 Ether = 1,000,000,000,000,000,000 Wei
1 Ether = 1,000,000,000,000,000 Kwei
1 Ether = 1,000,000,000,000 Mwei
1 Ether = 1,000,000,000 Gwei
1 Ether = 1,000,000 Szabo
1 Ether = 1,000 Finney
GAS
智能合约
以太坊网络中的智能合约是可以执行代码的一类特殊账户。
目前最主流的智能合约开发语言是Solidity。