什么是区块链?
从数据结构看 : 链表
从计算机上看:区块链是一种比较特殊的分布式数据库
区块链是一种分布式的,所以它是没有中心点的,信息存储在所有加入到区块链网络的节点当中,这些节点的存储的数据都是一模一样。
区块链特性
去中心化:因为它是分布式存储的,所以不存在中心点,也可以说各个节点都是中心点,生活中应用就是不需要第三方系统了(银行、支付宝、房产中介等都属于第三方)。
开放性:区块链的系统数据是公开透明的,每个人都可以参与进来,比如租房子,你可以知道这个房子以前的出租信息,有没出现过问题,当然这里头的一些个人私有信息是加密的。
自治性:区块链采用基于协商一致的规范和协议(比如一套公开透明的算法),然后各个节点就按照这个规范来操作,这样就是所有的东西都有机器完成,就没有人情成分。 使得对"人"的信任改成了对机器的信任,任何人为的干预不起作用。
信息不可篡改:如果信息存储到区块链中就被永久保存,是没办法去改变,至于 51% 攻击,基本不可能实现。
匿名性:区块链上面没有个人的信息,因为这些都是加密的,是一堆数字字母组成的字符串,这样就不会出现你的各种身份证信息、电话号码被倒卖的现象。
区块结构
区块链如何工作
区块链的共识机制
POW: proof of work 工作证明
在比特币等货币型区块链中让各节点达成一致性的共识机制为工作量证明,也是我们说的挖矿。
优点:
完全去中心化
节点自由进出,容易实现。
破坏系统花费的成本巨大
缺点:
对节点的性能网络环境要求高
无法达成最终一致性
最关键的,浪费能源!
代表:
比特币,以太币
POS: proof of stake 股权证明
如果简单的把POW当作比力量大小的话,POS就是比谁的钱多
优点:对节点性能要求低,达成共识时间短(网络环境好的话可实现毫秒级)
缺点:没有最终一致性
代表:暂无,以太坊的后期会计划改为此种共识
DPOS Delegated Proof of Stake 委任权益证明
是基于POS衍生出的更专业的解决方案,他是类似于董事会的投票机制,选举出n个记账节点,在节点中提案者提交的提案被这些记账节点投票决定谁是正确的。
代表: EOS
PBFT:Practical Byzantine Fault Tolerance 实用拜占庭容错算法
故事分享: 拜占庭将军问题
https://www.zhihu.com/question/23167269
https://juejin.im/post/5a73f73b5188257a8211001a
代表: NEO BUBI Hyperledger
地址生成
比特币示例 椭圆加密算法(ECDSA)
https://royalforkblog.github.io/2014/08/11/graphical-address-generator/
智能合约
简述 : 类似支付宝的花呗就是一种合约,只不过他属于支付宝公司的行为,所以不能成为智能合约.区块链的智能合约时会将代码写入到区块链中,这样做到公开化,全世界认可的一种合约
以太坊所使用的语言:Solidity
详见: https://zhuanlan.zhihu.com/p/21791437
ERC-20代币的例子: https://www.ethereum.org/token
相关工具
以太坊智能合约开发工具:Remix
https://remix.ethereum.org/#optimize=false&version=soljson-v0.4.25+commit.59dbf8f1.js
以太坊Java开发SDK: Web3j
https://docs.web3j.io/getting_started.html
同理还有js版本的:
https://web3js.readthedocs.io/en/1.0/
区块链钱包介绍
METAMASK 这是一个谷歌扩展成插件
myetherwallet 这是一个在线钱包
https://www.myetherwallet.com/
公司目前区块链应用
供应链金融
http://120.77.85.235:8087/entrance/index.html
算力银行
。。。。。