rua,明天要讲课,贴一下第一次梳理的内容2333。区块链入门。
blockchain
特点
- 分布式去中心化
- 无须信任系统
- 不可篡改和加密安全性
去中心化
没有中心节点
区块链
是一个只能查找和插入,没有管理员的非关系型分布式数据库。
主要作用是存储信息。每个人都可以假设服务器,加入区块链网络,成为节点,每个节点都是平等的,你可以向任何一个节点存储信息,因为他们是同步的。
智能合约
智能合约是区块数据业务逻辑的封装。
可以把智能合约理解成:存储过程+数据库结构。
访问一个智能合约就如同访问存储过程。在合约中定义的变量不能直接访问,需要通过函数操作他。智能合约就像定义了表结构,但不能直接select, update, delete这些操作,要用智能合约中定义的函数。【只能用存储过程去操作数据库】
入门
通过ip地址和端口号就能加入,并且通过简单的api就可以完成一笔交易。
备注
区块链开发,和智能合约开发完全不同。链圈和币圈。炒币的就是搞投资的一帮人,他们只关注于市场行情,可能自己发售一些虚拟货币。链圈的人希望通过技术,对行业做出贡献。
区块链只是存储安全,是一种设计架构,用户层、应用层、逻辑层都会有安全问题。
- 高频交易
- 偷币
- 上传假数据
区块链应用
去中心化安全性、可追溯、不可篡改
目前区块链底层只适合做 低频高价值 的业务。征信、资产、房地产等。
区块链六层模型
数据层、网络层、共识层、激励层、合约层和应用层。
- 数据层 封装了底层数据区块的链式结构,以及现代密码学中的非对称加密技术。
- 网络层 包括P2P组网机制、数据传播机制和数据验证机制等。【自动组网功能】
- 共识层 决定记账的方式【Proof of work】,判断如何延长链等
- 激励层 结合一部分经济因素,例如激励矿工,惩罚恶意节点【比特币和以太坊没有】,保证系统向良性循环发展。
- 合约层 智能合约
- 应用层 开发一些app,类似osi的顶层
共识机制
Proof of Work,就是像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件。找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也相当于获得了区块链的本轮记账权。
近代密码学
hash function
散列函数、哈希函数,是给数据创建一个指纹的算法。
将一个任意长度的原文 经过一个函数 得到一个固定长度的字符串。
一个好的哈希算法,很少会产生冲突
非对称加密
非对称加密算法是一种密钥的保密方法。 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
最常用的是RSA和ECC
- 对极大整数做因数分解的难度
- 椭圆曲线密码学
一些数据
比特币 7tx/s
以太坊 30tx/s
智能合约例子
ide:https://remix.ethereum.org/
举个例子:
以太币价值:https://otc.huobi.com/#/trade
分割线,下面是大体思路:
- 介绍下区块链是数据库
- 记录的是交易
- 数据库的特点
- 区块链的大体结构
- 中心化与去中心化
- 抛出问题,为什么记账?如何同步账本?
- 哈希算法的介绍
- 回到共识机制
- 激励机制【解决为什么人们要记账】