本期的区块链 101 将继续上期的内容,理论部分我们就上期中的共识机制展开来谈谈;实践部分我们鼓励大家跟着教程去写出自己的第一个区块链智能合约项目,相信我,这是个有趣而又令人兴奋的过程!
在传统的中心化银行体系中,用户之间的交易可以通过查账来消除疑虑,大家都相信银行这个中央机构不会造假,但在去中心化的区块链世界中,不存在中心化角色,各个节点是分散且平行的,如何维护区块链的正常运作?各个区块应该选择什么版本?挖矿奖励应该分配给谁?如何避开造假的恶意账本?解决这一系列问题的方法与过程就是共识机制。
提到区块链共识机制,不得不提经典的拜占庭将军问题与拜占庭容错算法,在阅读下面介绍各类区块链共识机制的内容前,我推荐你先了解一下拜占庭容错:Wikipedia | Bianance Academy
代表代币:BTC、ETH 1.0
在第一期中介绍的区块链就是采用 POW 机制的区块链,在竞赛中,最先算出哈希签名并通过全网验证的矿工获得代币奖励
优点:
缺点:
代表代币:ETH 2.0
与 POW 的高算力高收益不同,在 POS 机制下,打包用户的角色从“矿工“变成了”锻工“,拥有越多代币(权益)的用户越容易得到当前区块的写入权,因此 POS 机制又叫“伪选举机制”。参与 POS 竞争不需要高算力。POS 奖励打包用户的形式多种多样,有锁仓挖矿,又有锁仓获取收益+锦鲤抽签的形式。部分区块链会在早期采取 POW,产生一定量代币后转换到 POS 机制,ETH 就是一个例子。
优点:
缺点:
代表代币:EOS
DPOS 可以理解为 POS + POW,参与者将打包工作委托给一小群数量固定的验证者,参与者通过投票选出验证者代表,投票采用 POS 机制,被选出的验证者之间存在密钥计算竞赛,采取 POW 机制来决定谁负责打包。在 DPOS 机制下,被委托的验证人会和他们的支持者共享获得的奖励的
优点:
缺点:
关联阅读:What is Delegated Proof of Stake?
学完了 Solidity 的基础,你是否迫不及的的想写出自己的第一个智能合约呢?
现在你可以阅读 OpenZeppelin 的智能合约开发教程,从零开始,一步一步地完成自己的第一个 Smart Contract Project 。
通过阅读 Developing Smart Contracts Tutorial,你将会学习到:
在编写智能合约的过程中,你将会使用 OpenZeppelin 库,它提供一系列经过实践测试的 API 来协助你开发安全可靠的智能合约,减少被攻击的风险。
从 0 开始编写区块链智能合约是困难的,但借助开发框架,我们可以更轻松的写出高质量的代码,更好地完成开发工作
关于 TypeScript 和 JavaScript:虽然目前的主流框架基于 JavaScript,但在实际开发中开发者更倾向于采用 TypeScript 来编写 Deploy 脚本与测试用例,JS 这玩意儿真的是一言难尽...