区块链不是单一的技术,而是多种技术的集合。
区块链中使用的技术:
哈希算法:计算任意大小的固定长度唯一字符串数据,保证数据不变。
非对称加密:分为私钥和公钥。公钥相当于地址,无需泄露私钥即可识别身份。
链式结构:通过记录的哈希值,将各个区块链按时间顺序连接起来。
区块链结构:
区块的开头是区块的加密哈希(摘要)值,用于保证当前区块数据的不可篡改性。一旦区块中的数据发生变化,哈希值也会发生变化。记录上一个区块的Hash值,保证区块链接的顺序不会改变。交易数量和交易内容记录在区块内部。区块链相对于中心化的优势:
区块链的网络结构决定了区块链数据的冗余性和抗单点故障能力。数据存在于所有区块链节点上,除非所有机器都宕机,否则数据不会消失。
由于区块链是多点参与的,必然出现的问题是如何确认一笔交易。我们使用共识机制。
有几种共识算法:
工作量证明(POW)
股权证明(POS)
委托权益证明(DPOS)
目前比特币和ETH采用的是POW算法,通过计算机大量计算产生区块,完成交易,并使用代币作为奖励。
当一个区块在当前节点上被验证时,需要广播给全网的出块节点,让所有节点都能参与计算。如果大多数节点(51%)通过验证,则交易完成。
区块链在验证交易时可能会分叉,但最终以区块高度最高的链为准。
因此,目前不同的交易平台在提币和充值时,有不同的验证和交易确认标准。一般根据出块高度判断交易完成。比特币的区块高度是100,而云币网的区块高度是90左右,所以这个标准就造成了我们在交易平台充值提现比较慢。
以太坊=区块链+ 智能合约
很早以前就提出了智能合约,就是说当满足一定的条件时,系统自动触发一定的时间。比如我们设置一个闹钟,到了时间闹钟就会响起。
以前是因为没有足够的信任来判断达到这个条件的真伪。现在因为区块链的信任机制,智能合约已经被重新创建并成功应用到区块链系统中。
比如我们在做ICO的时候,你交易1个ETH给对方,智能合约自动发放相应数量的token到你的钱包。智能合约不难写,只有少量API接口
区块链中不同代币的获取:
比特币和以太坊上的代币需要挖矿获得,但目前发行的大部分代币不需要挖矿。只要编写智能合约,就可以实现代币的发行。比如我发1000给自己一万个币。之后可以通过转账的方式转给其他人。由于交易需要在ETH上进行,因此需要支付一定的ETH手续费