Blockchain

Made by Ziyang CHEN, Rocky, 陈子阳


A blockchain is a chain of blocks that contains information.

intended to timestamp digital documents so that it’s not possible to backdate them or to tamper with them.

旨在为数字文件打上时间戳,使其无法追溯或篡改。

A blockchain is a distributed ledger that is completely open to anyone.

区块链是一个分布式账本,它对任何人完全开放。

  • Data: store the details about a transaction

  • Hash:

    • fingerprint, identifies a block & content, unique;
    • Once a block is created, hash is being calculated;
    • Changing sth. in block, hash will change
  • Hash of the previous block:

  • Proof-of-work: mitigate super computer could effectively tamper with a block and recalculate all the hashes of other blocks

    • a mechanism that slows down the creation of new blocks.
    • Bitcoins case: 10 minutes to calculate the required proof-of-work and add a new block to the chain.
    • if temper - need to recalculate the proof-of-work for all the following blocks.

区块链还有一种 secure themselves 的方式那就是 distributed. Instead of using a central entity to manage the chain, blockchains use a peer-to-peer network and anyone is allowed to join. When someone joins this network, he gets the full copy of the blockchain. The node can use this to verify that everything is still in order.

Adding a new block: That new block is send to everyone on the network. Each node then verifies the block to make sure that it hasn’t been tampered with. If everything checks out, each node adds this block to their own blockchain.

All the nodes in this network create consensus.

比特币每10分钟会产生一个新的区块,这个新的区块里记录了这10分钟里的所有交易,这些交易就是人们每时每刻在进行比特币的转账交易,每个区块的容量是 1MB,由于每个区块的容量较小,所以以前有时并不能记录所有的交易,并且造成比特币拥堵。

现在的解决办法就是 hard fork,分叉/ 建立的一条新链:Bitcoin cash BCH。 所以现在比特币就是有新老两条链,旧的链和新的链没有任何关系,也不能互通。

共识机制 consensus /kənˈsensəs/ mechanism /ˈmekənɪzəm/

每添加一页的时候都要达成这两条共识:

  • 区块链添加区块时候都添加在最长的那条链的尾部
  • 工作量证明机制(POW),第一位抢先证明了自己的工作能力的那个人才能添加这个区块

Difficult & Nonse

比特币对矿工的两大激励作用:

如果矿工想要添加一个块,那么他就要算出满足这块的Nonse,这个Nonse满足的条件就是小于系统给出的值,第一个算出来的人将可以获得一个块的奖励(这个奖励从2009年开始一个快生产50个比特币,每隔4年,激励减少一半)。也就是说,这个奖励会随着时间的变化越来越少,预计到2140年发行完毕,这个时候中本聪 设计的第二个激励矿工的奖励:交易手续费。每当有人想要用比特币进行交易的时候,他都需要给矿工手续费,因为他需要矿工把他的交易放在那个区块中。也就是说,如果这个矿工算出了这个区块的Nonse还可以得到这个区块里面所有的手续费。 作为交易比特币的使用者,如果你的比特币,如果你的交易手续费给的多的话,那么矿工就会优先帮你放到区块中,如果给的少甚至不给的话,那么矿工就会不把你放在区块中。因为每个区块的容量是非常有限的,每10分钟只能记录容量为1MB的交易量,所以说矿工会把手续费高的交易放进去。

账本隐私和快速对账

比特币系统是通过密码学中的Hash算法(哈希值)来解决个人隐私和快速对账2个问题

  • 对交易信息进行加密,提取实物的特征。看到Hash结果是一串数字,没法反推;
  • 通过比对hash值是否一致,就可以知道账本是否一致(对账):如果前面交易信息不同,就会导致hash值(哈希值)不一致

账本一致性/共识机制:用以下2种规则解决双花问题(同样一笔数字资产被重复支付,即同样一笔钱被花掉两次或多次)

比特币系统的规则1:最长链为可信任的链条来保持一致性

比特币记录交易的原理

系统内的计算机开始比赛,争取又快又准的算出这倒题目,比拼的是计算机算力

胜出的计算机将拥有记账权成为矿工,矿工取得一定奖励(6.25比特币)

胜出的计算机将交易信息打造成新的区块,并将新的区块信息广播出去,使链增长. 每一个计算机都是分布式账本的结点。

如果有小D伪造账本,这个小D需要不停的成为之后拥有记账权的那个人、才能创造新的区块、并拉长另外一条分叉的链条,让小D伪造的链条成为最长的链条。但分叉的那条链是小D一个人去维护的,是拼不过全网中所有矿工一起创造的主链。

比特币系统的规则2: 用POW获取记账权来保证账本的一致性

工作量证明(Proof of Work, POW)

Nance: 会一直试的计算次数

寻找小于系统给定的目标值的Hash值:the way that users detect tampering in practice is through hashes, long strings of numbers that serve as proof of work.

最后找到符合条件的Hash值和Nance

所以算力越强的电脑,更容易拿到记账权,从而增加区块,拉长链条

Setting difficulty is accomplished by establishing a “target” for the hash: the lower the target, the smaller the set of valid hashes(是人为设计的一种运算方式,伪造账本只有在长时间保持算力优先才有可能伪造账本,但不可能)

比特币的分叉

比特币系统协议层面出现了分歧

  • 硬分叉(不可合并):系统更新产生硬分叉,e.g. 比特币区块的扩容:旧比特币单秒交易笔数7笔(1MB对应的字节),但如果不同矿工使用不同版本的比特币系统进行挖矿,一些区块扩容而一些没有,旧矿工无法接受扩容后的区块,就形成分叉
  • 软分叉(可合并):如果短暂出现但最后可以并回主链,e.g. 篡改数据

总结

比特币不是一种货币,而是一种分布式账务系统。账本在每个参与者的电脑上备份,并且实时同步和对账;账本记录了一定数量的比特币交易的过程,每次记录下的交易过程和结果都会广播到网络,让所有节点都保持一致

比特币系统采用了去中心化的方式。不是没有中心, 而是中心不停变化,每一次中心由节点竞争而得出记账权,记录交易打造成新的区块(每一笔交易中挖矿成功的矿工就是中心)

区块链1.0技术(所有比特币中应用到的技术):分布式数据存储,点对点传输,共识机制(POW),加密算法

Ethereum 以太坊 (representative)

比特币的不足

  • POW算法出块速度慢(10分钟),比特币矿场消耗大量电能
  • 仅完成了货币的去中心化

以太坊的改进(V神发明)

  • 出块速度提升(15秒):以太坊区块链中将出块时间从10分钟提升到15秒
  • 修改挖矿机制,POW+POS算法,逐步向POS算法过渡
  • 智能合约:合同的去中心化,不仅限于货币的去中心化。公开透明无黑幕,违反规则,直接扣除保证金,不可停止

以太坊平台专业词汇

MetaMask插件:第三方的虚拟钱包,方便买卖

账户地址:付款或收款的地址,类似银行卡号

以太币:基于以太坊的虚拟货币

手续费(nickname:油费): 查看智能合约不需要支付手续费,但是修改智能合约需要支付;付的手续费是以太币

  • gas price:油单价
  • gas limit:油数量
  • 计算公式:gas price x gas limit

查看智能合约不需要支付手续费,但修改智能合约需要支付;为了屏蔽恶意攻击,要支付手续费(油费);根据网络拥堵情况,决定手续费高低;

智能合约 Smart contract (Solidity) ifs - thens

Blockchains are also constantly evolving. One of the more recent developments is the creation of smart contracts.

  • Self Executing: Can be used to automatically exchange coins based on certain conditions.
  • Uncompromisingly /ʌnˈkɑːmprəmaɪzɪŋli/ Letter Strict: impersonal, 跑在以太坊系统中的代码合同,本质是一串代码。目前已经存在180w智能合约;
  • Immutable: 智能合约适合表达规则明确且不轻易修改,不受人为主观因素影响;

以太坊中的Ghost协议(解决Centralization Bias):尽快招安分叉区块/分支链的尽快合并,以促成统一的区块链

如果继续沿用比特币中的区块奖励方法,假如几乎在同时有多个矿工挖出了一个区块,此时网络中占据较大算力的矿池其算力巨大,而且通常地理位置优越,其网络与更多的节点相连,它发布的区块能跟更快的在网络中传播,因此在出现区块链分叉时,其所在的分叉更有可能成为主链。这种情况下,其他算力较低的矿池或者个体节点就不能得到出块奖励,在以太坊中经常发生区块链分叉的情况,但最后区块链的出块奖励大部分情况下都被大型矿池拿走,而算力小的节点通常很少拿到奖励,这种情况叫做“Centralization Bias”。 如果以太坊沿用比特币中的出块奖励方式,算力较小的矿池几乎拿不到出块奖励,这个看起来不太公平,长此以往,算力小的矿工挖出区块之后就不愿意合并到算力强的矿工挖出的区块链中,因为合并就意味着前面的劳动全部白费了,还不如不要合并,继续在自己挖出的区块上继续挖矿,说不定运气好能超过算力强的区块呢。很明显,这样下去不利于区块链出现分叉后快速合并,会影响到区块链的共识,基于上述原因,以太坊的设计中引入了Ghost协议。

————————————————

原文链接:https://blog.csdn.net/t46414704152abc/article/details/81191804

以太坊规定每个区块最多包含2个对叔父区块的奖励,以招安分支链的区块,以太坊会给在每次主链矿工的下一代新区块产生时,分出2份奖励来招安,奖励2份7/8的出块奖励(每次出块奖励是3个以太币);同时,招安的主链上的区块,也可以得到2*(1/32)的出块奖励;

每隔一代,区块奖励就会减少:最近的一代uncle区块,可以得到7/8的出块奖励作为招安;再隔远一层的uncle区块,则是6/8的出块奖励作为招安;间隔8代及以后的uncle区块,则不会得到任何出块奖励。uncle区块的后续分支链上不会得到任何奖励,以激励其尽快进行合并

以太坊挖矿算法

POS(Proof of Stake,权益证明)算法,这种挖矿方式叫虚拟挖矿(virtual mining)

每一个区块的产出,比拼的不是矿工所有的货币,而是每次挖矿出的保证金。而且这部分保证金会被冻结,会在一定交易笔数之后被解冻,

目前以太坊用的是Casper协议,将POW算法和POS算法混合使用

  • POW算法来进行挖矿得出区块;
  • POS算法进行校验:引入了校验者Validator,投票选举区块是否可以称为主链上的区块。校验者必须投入一定数量的以太币作为保证金,投入保证金的多决定了投票的权重;成为校验者,不投票不作为,被举报,也会被没收保证金;每个校验者都有任期,任期结束后也有等待期,可能被检举,等待期后,下注正确的校验者可以收回原来的保证金和校验收益;

POS算法和POW算法比较

  • 省掉挖矿过程,减少大量能源损耗;
  • 通过闭环维护系统安全(POW算法可以通过砸钱买算力支配,转化为对比特币系统的攻击能力;POS算法,则有点类似于股东制公司,我先要成为成为公司的大股东,才能攻击这个公司)

以太坊的分叉

硬分叉:分支链和主链无法合并

  • 比特币因为扩容
  • 以太坊因为黑客攻击

黑客攻击case study

The Dao智能合约:是一个众筹的项目,可以投资某个公司的项目成为投资人。这是最民主的投资,每次投资金额的支出,都需要所有投资人同意才能执行。合同规定有28天资金锁定时间;

The Dao智能合约允许成员成立子基金,黑客通过bug从其成立的子基金中转账盗取5000w美金到黑客子基金;

以太坊平台开发团队内部进行了讨论,最后决定要就这次错误进行干预;

  • 方案一:暴力分叉,约定好上面有黑客攻击的链是不合法的,从分叉链开始挖,但问题是影响到后续区块的合法性;
  • 方案二:软分叉策略:通过发布升级的平台,让区块不包含the Dao地址的交易(区块中包含the DAO的交易,就认为是非法区块)。新矿工(升级了平台)挖出的区块不包含the Dao地址的交易,而能接在新矿工后面的老矿工是认可上一个区块的,所以也不包含the Dao交易。但当时除了一个bug,就没有收取所有包含the Dao交易的汽油费,结果导致非法交易没法挖矿。
  • 方案三:硬分叉策略:再一次发布软件升级,让更新了软件后所有the Dao智能合约的人都被强制转移到退款的智能合约,当主链上挖到第192w个区块时,自动会转走the Dao中的黑客基金。因此,所有更新了软件升级的新矿工是有资格跟在第192w个区块之后的(相当于是erase掉黑客交易),这条主链是ETH。但没有更新软件的矿工,其合约不同意第192w个区块进行的转账,所以是无法接在这个非法的第192w个区块后的,因此会在第192w个区块前一个接口发生分叉,叫ETC classic。因此ETH和ETC产生了永久的分叉;

以太坊总结

  1. 缩短出块时间
  2. Ghost协议:本质是重金收买分支的策略,防止centralizationi bias
  3. Casper协议:POS和POW协议的混合体,让校验者保证金的额占比,换算成票数,然后投票选举;
  4. 增加智能合约
  5. 硬分叉

Blockchain
http://example.com/2023/06/26/Blockchain/
Author
Rocky CHEN
Posted on
June 26, 2023
Licensed under