区块链与智能合约
实际上是区块链的程序,多方同意按照智能合约的代码执行,并对资产进行处置和分配。
区块链的状态信息
账户状态
账号,用户信息,当前余额
交易:改变了状态
交易(顺序不能乱)->多账户状态
日志信息(交易系统)的总和就得到了状态信息
相当于excel表的操作
状态信息相当于当前整个系统快照,提供快速访问状态的能力
例如账户信息可以快速获得账户余额,而不需要重新计算
相当于excel表计算出的一些信息
智能合约
根据状态信息和交易信息(相当于excel表中的vb操作程序)
相当于随处复制的excel表
区块链与智能合约关系:
从数据角度看智能合约:
数据库的存储过程
日志(交易)
区块链相当于数据库的数据总和
从区块链角度上看:
运行在区块链以及全局状态的程序
确定性,单线程程序
确定行的程序在所有节点上运行的结果是一样的、
获取数据及全局状态,执行程序,修改数据及全局状态,通过日志来保证数据的唯一性(这里采用分布式共识来保证日志的顺序也就保证了数据的唯一性)
智能合约的简单案例
一个简单的转账智能合约
执行的时机:
A->B转账,给智能合约发消息,消息触发转账,智能合约验证,然后执行(他直接可以访问及修改状态信息)
维护的是账本信息:
谁来执行?合约程序是由所有的机器执行
谁来确定顺序?分布式共识的算法,来让一个中签的机器来执行
再从数据库看区块链和智能合约
区块链:多地理分布费分布式数据库
智能合约:数据的操作,也就是存储过程
区块链: 分布式数据库+ 所有的操作日志组成链形式+ 共识协议决定日志的顺序+ 明确的智能合约语言+ 其他特征
简单来说:
* 通过共识协议保持多方的数据库一致,方法是分布式共识
* 多方共有的数据库,多方并不互相信任
特点和适用场景:
数据规模有限:数据目前是没有分片的
多方参与
应用(基于以太坊白皮书)
通证系统:
token通证可以用来代表法币或者房产,股票债券等
维护一个账户系统
通过外界的激活,自动执行账户上的操作
可以做一些其他的限制
金融衍生品:
比如对冲合约:
去中心化自治组织(The DAO)
传统企业的股东大会,投票的成本很高
直接由计算机代码来控制投票
实体应用放到线上:
租车:租车扫描二维码,发消息打一笔保证金,公司允许你开了,租完车之后保证金会完成一定的分配
身份和信誉系统:
比如学生的文凭信息,由学校签名,学生选择可见权限