web1.0~3.0,很多年前,互联网没有那么发达,刚出来的时候,仅仅只能在网上浏览观看信息,这就是1.0,后来出现了很多的软件,人们不仅可以浏览还可以发表自己的看法,手机app百花齐放,每个应用都有自己的数据库,存储数据,这就是2.0,现如今出现了3.0,去中心化的思想摆脱了数据库,即可实现不用数据库也可以使用的DAPP。
用户创造内容后不是成为大厂的内容和数据,而是自己拥有其所有权,谁想使用,必须要经过授权或是付费只用,也就是说内容的创造者也是内容的拥有者。
web3.0生态包括:
去中心化身份,用户界面,去中心化应用,去中心化存储,去中心化通信计算,零信任。低信任交互协议()
的透明溯源,稳定币和中央银行数字货币,创造者经济,链游。
什么是?
是一种新型去中心化协议,能安全地存储比特币交易或其它数据,信息不可伪造和篡改,可以自动执行智能合约,无需任何中心化机构的审核。交易既可以是比特币这样的数字货币,也可以是债权、股权、版权等数字资产,技术解决了拜占庭将军问题,大大降低了现实经济的信任成本与会计成本,重新定义了互联网时代的产权制度。
(Blockchain)是由节点参与的分布式数据库系统,它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger)。它是比特币的一个重要概念,完整比特币的副本,记录了其代币(token)的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值。
是由一串使用密码学方法产生的数据块组成的,每一个区块都包含了上一个区块的哈希值(hash),从创始区块(genesisblock)开始连接到当前区块,形成块链。每一个区块都确保按照时间顺序在上一个区块之后产生,否则前一个区块的哈希值是未知的。这些特征使得比特币的双花(double-spending)非常困难。是比特币的核心创新。
概念的出现,首先是在中本聪的比特币白皮书[2]中提到的,但是以工作量证明链(proof-of-workchain)的形式而存在,以下是中本聪对概念的描述:
时间戳服务器通过对以区块(block)形式存在的一组数据,实施随机散列而加上时间戳,并将该随机散列进行广播,就像在新闻或世界性新闻组网络(Usenet)的发帖一样。显然,该时间戳能够证实特定数据必然于某特定时间是的确存在的,因为只有在该时刻存在了才能获取相应的随机散列值。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强(reinforcing),这样就形成了一条链(Chain)。
应用:众筹行为,公证书,供应链,股权证等。我们所写的驱动的程序就是DAPP。就像是database,所有的操作都将被记录在上,不可删除。
以太坊
以太坊是一个开源的有智能合约功能的公共平台,通过其加密货币以太币Ether,简称ETH,提供去中心化的一台虚拟机来处理点对点合约。我们可以利用以太坊平台来部署我们自己的智能合约,但是每一次的交易被记录下来都需要算法,需要花一定的费用支付给矿工,简单理解就是每次的交易都会生成一道算法题,然后能够解决的矿工会收取一定的费用或者小费,同时交易记录会被记录在上。
哈希算法
将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值。
构成哈希算法的条件:
从哈希值不能反向推导出原始数据(所以哈希算法也叫单项哈希算法)
对输入数据非常敏感,哪怕原始shujuxiugai了一个Bit,后得到的哈希值也大不相同
散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小
哈职算法的执行效率要尽量高效,针对较长的文本,也能快速的计算出哈希值
智能合约
solidity应该属于后端语言,是一种智能合约语言,运行在Ethereum虚拟机(EVM)上,借鉴了很多语言,包括js,c++等,但是和传统的后端语言java等web2.0的后端有很大区别,web3.0提出去中心化,通俗来说,就是指不再有传统后端那种,请求服务器,从数据库存储或者读取数据,而是在的基础上记录每一个发生的事件,不需要数据库的存储。
以太坊底层是基于账户,而非UTXO的,所以有一个特殊的Address的类型,用于定位用户,定位合约,定位合约的代码(合约本身也是一个账户)。
由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
存储是使用网络上的,数据的额每一个状态都可以储存,所以需要确定变量使用内存,还是。
运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被撤回,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。