以太坊开发入门 - 基本概念

去中心化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

智能合约

以太坊网络中的智能合约是可以执行代码的一类特殊账户。

目前最主流的智能合约开发语言是Solidity。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深入浅出区块链技术

比特币脚本及交易分析 - 智能合约雏形

1134
来自专栏Java与Android技术栈

对区块链钱包的简单认识

给一个钱包地址发送数字货币, 这笔交易在全网广播、被确认、被打包进区块。这是发生在链上的,被称为on-chain交易。on-chain钱包需要自己保管私钥。

702
来自专栏比原链

Derek解读Bytom源码-创世区块

Gitee地址:https://gitee.com/BytomBlockchain/bytom

652
来自专栏申龙斌的程序人生

秒懂Merkle Tree 与SPV

这篇文章对于刚刚接触区块链的读者有点难,适合有一定程序背景知识的朋友阅读,普通用户需要了解SPV(简易支付验证)的概念,知道默克尔树的基本原理也有助于理解轻钱包...

4876
来自专栏区块链大本营

太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端

可以说,区块链是自互联网诞生以来最重要和最具颠覆性的技术之一。作为比特币和其他加密货币背后的核心技术,区块链在过去几年获得了广泛关注。

752
来自专栏存储

Burst Coin-挖矿原理介绍

Burst Coin挖矿蛮有意思,可以看看理解一下PoC的 网上有个很清楚的英文,详细描述了挖矿过程: https://forums.getburst.net/...

7148
来自专栏纯洁的微笑

用Java实现简单的比特币系统

1585
来自专栏比原链

Derek解读Bytom源码-创世区块

Gitee地址:https://gitee.com/BytomBlockchain/bytom

932
来自专栏华仔的技术笔记

一些基本比特币概念

3489
来自专栏服务端技术杂谈

比特币脚本

在比特币区块链中,交易不是这么简单,交易实际是通过脚本来完成,以承载更多的功能个,这也是为什么比特币被称为是一种“可编程的货币”。 比特币交易是首先要通过私钥解...

36610

扫码关注云+社区