区块链理解

189 阅读3分钟

定义

按照时间顺序将数据块以顺序相连的方式组成的一种链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。

钱包账户

就是你的钱包地址,生成会用到助记词。 其实钱包重要的是生成了一对公私钥,你的钱包保存了你的私钥。 (想象一下RSA加密),其中钱包地址就是你的公钥。

智能合约

  • 比特币,一种去中心化的代币。

  • 以太坊和比特币的区别在于它新增了智能合约

以太坊的钱包账户有两种:

用户账户:就是上面的钱包账户(个人使用的钱包)

  • 地址 address
  • 余额 balance

合约账户:智能合约账户

  • 地址 address
  • 余额 balance
  • 代码 code
  • 状态存储 storge

智能合约用途:举个例子,一个人起草了一个合约,合约要做什么大家都看完了,每个人都可以签署这个合约。遵守这个合约规则。

起草合约:在区块链创建部署智能合约
合约内容:合约的代码,公开
签署合约:调用合约代码,每个人用以太坊钱包都可以调用代码。就是交易
遵守合约:执行合约

挖矿

快速理解挖矿,请在心里默默回想你使用Git的过程

上面说过,我们的钱包可以转账,可以签署合约。这些被称为交易。

谁来证明这些交易

当然是把这些交易计算完成,然后记录到区块链上。

谁来计算这个交易,并且记录上去?

节点

  • 全节点
    代表你本地保存有区块链上的全部数据,从区块链开始的数据,每次新节点建立,都会下载整个链上的数据,校验区块内的数据。完成之后你就成了一个新的节点。 数据量很大,计算量很大。 (可以理解一下你本地的整个git仓库,并且hash计算)

  • 轻节点
    区块链数据分成两部分header-body组成。全节点保存这些全部数据。而轻节点只保存header部分,数据相对较少。可以做一些简单的验证工作。

理解了全节点,下面说挖矿。

用户发起的交易,传输给全节点,全节点验证本次交易的有效性,然后对这些交易进行hash运算,找出一个合适的nonce值。那么挖矿成功。 这个节点通知其他全节点。(想象一下,你提交了git记录,别人这个时候都要拉取你的记录才能继续下一次提交。不要跟我说branch)

开发

语言: solidity

协议:

  • ERC20 : 同质化代币,你的1一个币和别人的一个币没有不同

  • ERC 721 : 非同质化代币,你的1一个代币和别人的代币不一样。NFT

  • ERC 1155 : 批量综合代币