0%
区块链的起源思想
- 去中心化其实是弱中心化
- P2P:peer-to-peer,person-to-person
区块链雏形
- 中心化专人记账->轮流记账(仍然不安全)->共同记账(避免了中心化的问题,但是所有人都记效率低)->掷骰子记账(记账人获得报酬,区块链雏形)
区块与区块链
- 矿工必须依据前一个区块的数据才可以开始计算符合条件的随机数,保证挖矿的公平性
- 区块的结构:区块头(上一个区块的哈希值,时间戳,Nonce——矿工要推导的随机数,梅克尔树根——也是一个哈希值,将所有的交易清单两两哈希生成最终的哈希值,版本,目标难度系数),将这六个信息拼接成一个字符串求出一个哈希值,而我们挖矿就是使用这个哈希值结合随机数判断和目标的大小,当我们随机生成的Nonce然后拼出来的哈希值小于目标哈希值的时候,就是我们挖到矿了,向全网广播并确认。然后全网验证(挖矿速度非常慢但是验证很快)后就计入账本,然后利用这个区块进行下一次计算。
- 区块一旦篡改区块链就断了
- 区块链形象地成为分布式共享账本
- 区块链数据由所有节点共同维护,区块链也被称作制造信用的机器,具有机器信任
- 通过时间戳和工作量证明机制解决了双花与拜占庭问题,节点可以保持一致性
- 非对称加密机制——保证私钥安全性
区块链核心技术
- P2P网络:点对点交易,没有中间方
- 分布式存储:所有节点信息统一,交易不可篡改
- 加密算法:确保交易不被破快,保护用户隐私与交易记录
- 共识算法(共识机制):实现自动网络共识
- 智能合约:通过自动化脚本操作数据
区块链模型(从下往上)
- 数据层:基本算法
- 网络层:P2P网络
- 共识层:让分散在全世界不同地区的人对一件事情达成共识(比特币:POW共识——工作量共识)
- 激励层:发行机制,分配机制等
- 合约层:智能合约(比特币谈不上智能合约)
- 应用层(开发人员):可编程货币,可编程金融,可编程社会
编程语言
- 比特币:C++
- 以太坊:多语言接口(C++,GO,Python,Java)
- 超级账本的Fabric:Go
- DragonChain:Python
- Wanchain:C++
区块链分类(按准入机制分类)
- 公有链
- 联盟链:需要指定几个节点为记账人
- 私有链:完全封闭,记录内部交易,由公司与个人共享
区块链资产特点
- 全球流通
- 去中心化
- 不可复制
- 匿名性:基本匿名、高级匿名、极致匿名
- 比特币是基本匿名,不知道比特币地址对应的是谁。但是一旦知道,就可以查到所有的相关转账记录
- 达世币、门罗币是高级匿名,查不到转账信息
- zcash是极致匿名,只有拥有私钥的人才可以查到所有的转账信息
用区块链保存信息
- 星际文件系统IPFS:对于大的附件使用星际文件系统保存
国外区块链知名项目
- EverLedger:珠宝一站式追踪鉴定平台,为钻石加上“数字指纹”,然后放在区块链数据库中将钻石信息上链。目前已经有200多万钻石
- Monegraph:知识产权保护
国内区块链知名项目
- 迅雷链克:前身为“玩客币”
- 人人坊
- 网易招财猫
- 蚂蚁金服旗下公益慈善
区块链的不足
- 效率低
- 存储数据量少
- 能耗。耗电量大
- 淡化国家监管,带来非法产业
- DApp缺点:1.更新和修bug困难,每个节点更新麻烦。2.无法验证用户身份。3.开发困难,生态圈小。