定义
按照时间顺序将数据块以顺序相连的方式组成的一种链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本。
钱包账户
就是你的钱包地址,生成会用到助记词。 其实钱包重要的是生成了一对公私钥,你的钱包保存了你的私钥。 (想象一下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 : 批量综合代币