针对比特币作为第一代区块链的产生品,以太坊将自己定义为区块链的2.0版本,这个版本不再是比特币仅仅提供一个点对点的电子货币交易系统,而是将其定义为一个平台——一个可以用来跑智能合约和DAPP的平台。
1.比特币的介绍
1.1区块链的数字
1.可以用来携带一些生活中的实际信息,就像物联网。这种可以和实际相连接的区块链协议就被叫做“彩色币”,彩色币可以将现实生活实物与区块链货币相连接。彩色币的本质是一种在比特协议上叠加的新的协议。
彩色输出就会代表一种特定的资产,通过与实际交易货币比如说黄金的代换,实现彩色币实际化的作用,同时投资者会在自己的客户端下载一个定义转换的定义档,这样就可以明确彩色币在发行后所有区块参与者都对其有一个统一的转换实物的标准。
2. 智能合约所携带的实体资产
3. 域名可以看成一种非同质独一无二仅仅归属自己所有的资产,也可以叫做域名币。
4. 去中心化交易所、金融衍生品、点对点赌博和区块链的链上身份和信誉系统。
1.2以太坊区块链的图灵完备
以太坊可以实现图灵机中所有的功能,所以它是一个图灵完备的区块链系统,虚拟机可运行各种排序和类型的智能合约,能够解决所有的可计算问题。这样用户可以通过代码创造任意DAPP、系统或者任意的无限可能。
1.3比特币UTXO
一笔交易可以分为输出前状态、交易处理状态、输出后状态。UTXO就是指那些散落在区块中而未被花费的资产。
状态转换函数APPLY(S,TX)>S’可以就被大致定义为:
验证发起付款者对每个交易输入也就是自己的UTXO:
1.如果被引用的UTXO不存在,返回错误;
2.如果签名与UTXO所有者不匹配,返回错误;
(前一半防止交易不存在的币,后一半防止币不是自己的)
3. 如果所有输入的UTXO面值总额比所有输出的面值总额小,返回错误;
4.当不存在以上错误时,返回到新状态S',S'里面就已经移除了所有输入的UTXO,增加了所有输出的UTXO。
1.4比特币51%攻击与哈希树
想在区块构建上超过最长诚实链,那就要获得超过全网51%的算力。否则就算恶意的区块分叉,也只有自己在孤零零的自己的分叉链上生产区块,也不会被全网认可。
另外,恶意者如果想更改交易里边的信息,小部分的更改在溯源的过程中就会被发现。
1.5比特币脚本的几个缺陷:
区块链上使用脚本问题
缺少图灵完备性:不支持所有运算,为了防止脚本运算的恶意循环,所以脚本不支持循环语句。
缺少状态的声明:UTXO要么已花,要么没花;那么包含除此两状态之外其他内部状态的多级合约或者脚本就实现不了。
区块创建问题
没有绑定任何数据:UTXO不能看见区块数据,限制了应用(此处还需了解)
元币协议问题
取款额度的换算:无法精确的控制实际的取款额度,不同的实际货物必须通过不同的UTXO换算对进行。
2.以太坊
目的:基于脚本、竞争币和链上元币协议三者概念进行整合和提高。
方法实现:基础平台是一个图灵完备的基础层。
智能合约解决比特脚本的图灵完备问题。
2.1以太坊账户
以太坊账户分为两种:发送信息的没有合约代码的外部账户。
有合约,在接受信息的时候会触发合约运行,从而可以读取自身账户内部。
的存储和写入内容,可以将内容发送或者自己创造新的账户接收合约。
合约只是一种消息携带的媒介,而非控制交易和信息传递一种规则。
2.2消息和交易
以太坊的交易叫做消息传递。重点除了传统的外部账户交易,也可以由合约进行创建,传递账户内部携带信息。
(合约与传统签字无携带信息的交易是平等的,合约交易可以将一个去中心化组织合约里边的某个用户提出来,构建新的合约机制来媒介该用户的信息,该用户就可以对其他的用户构建托管或者居间服务构造服务者和被服务者之间的合约机制。这种调用不用关心被服务者是外部账户还是携带信息的合约账户。)
2.3以太坊状态转化函数
将信息和币值从一个账户转化到另一个账户的过程
转化是的所有的交易信息都被存储于区块链中最后一个区块中,那么就没有必要再保存整个区块链中每个区块的历史记录,这种信息是以帕特里夏树为基本,每次一个新区块的产生都是对树的一点改变,也就是为什么相邻的两个区块其实彼此信息相差不大,最后改变的信息留在最新产生的区块。通过查看最新区块,就可以找到帕特里夏树上所有的区块交易信息。比比特币节省了存储的空间。
2.4转换中的挖矿过程
矿工节点的区块最近做的交易和区块的现状会在以太链上显示出来,做这笔交易的矿工区块数量和挖矿完成所需的难度也会在以太链中显示出来。
矿工自身对区块的处理过程
1.现验证上一个区块交易的有效性以及与本次区块交易的时间戳是否足够长。
2.检验当前目的交易里包含的序号、难度、燃气费等信息
3.确认自己要处理的区块创建方向确实在诚实链条上。
4.规定本地区块的上一次交易的初始化为0,对本次区块中的多个交易进行信息转化。
5.转化完毕后最后一次的区块状态实际包含着这个区块中交易列表的最新节点,
6.检验转化后的区块根节点和现区块链父区块是否是一个根节点,如果是,则这个矿工证明了区块有效,区块添加至区块链。矿工获得交易奖励。也可能会获得创块奖励。
2.5以太坊应用
源于金融,高于金融
1.金融应用:资金和合约的相辅相成,资金的自我管理以外,智能合约可以是雇佣关系、遗嘱、自身钱包、金融代币等
2.半金融应用:用钱来解决计算机算法问题
3.非金融应用:DAO理念
自然界中,海星的存活是因为自身的细胞具有平等性,每一部位的去除都不会导致海星的死亡性质毁灭。但是蜘蛛不一样,蜘蛛的躯干就是一个中心化,如果去除躯干的蜘蛛就无法存活。
DAO组织就是让每个公司或者团队组成者就像一个智能合约,每个智能程序代表一个员工的职能,当任务到来时,就会触发相应的智能合约。而这个公司团队的真实员工不再负责功能性任务,而是对合约的维护和组织。就像京东淘宝的电商服务,人员只负责更改货物的内容和信息,并不负责销售的整个流程。每个借阅都是一个独立的个体,每个个体都有参与的权力,合约的工作可被程序或者人为验证,重点就是,这个过程非常难被中心化操纵。