主页 > 苹果怎么下载imtoken钱包 > 从1.0的比特币到2.0的以太坊,区块链经历了什么
从1.0的比特币到2.0的以太坊,区块链经历了什么
不可错过的区块链覆盖
——
区块链1.0——比特币
区块链是一个分散的全球数据库,它将加密信息块链接在一起。
比特币是一个去中心化的计算网络,用户可以在比特币网络上保留账户。
比特币,将区块链的概念引入了我们的世界。比特币也是区块链技术中最广为人知的用例,其数字货币BTC也是当之无愧的币王。
比特币如何使用区块链?
比特币使用区块链存储比特币交易信息。每笔交易都通过区块链连接到前一笔交易。
在比特币中,共识机制是通过POW挖矿实现的,数据的不变性和完整性是通过哈希函数和UTXO来保证的。
1. POW(工作证明)
即工作量证明,也称为挖矿。比特币基于 PoW 算法实现其共识机制。也就是说,比特币的分配是根据挖矿贡献的有效工作量来确定的。
2. 哈希函数
也称为散列函数,它是一种密码函数和单向函数。也就是说,你可以从一个输入中得到一个输出,但是如果你只有一个输出,你是无法得到输入值的,每个输入只产生一个唯一的输出。
在挖矿过程中,比特币使用哈希函数将新交易写入区块链。
Hash(最后一个Hash值、序号X、记账时间、交易记录)=Hash值
每个区块都包含一个 Hash 值,该 Hash 值是根据上一个区块的 Hash 值和当前账户页面信息作为输入计算得出的。这确保了区块链:
验证与验证:只要验证了最后一个区块的哈希值,就相当于验证了整个账本。
不变性:交易信息的任何变化都会改变所有后续区块的哈希值。这使得无法回滚记录或删除过去的记录。
比特币的不可篡改性,用户无法回滚交易或删除过去的交易,避免“双花”,保证数字货币的可信度,最终让比特币变得有价值。
比特币没有账户,使用UTXO
UTXO(Unspent Transaction Output):指未使用的交易输出。它是比特币交易生成和交易验证的核心概念。
每笔比特币交易都有输入和输出,有人付给你的钱是“交易输入”,而你收到的钱是“交易输出”。一笔交易构成一条交易链。所有合法的比特币交易都可以追溯到一个或多个交易输出。这些链的来源当然是——挖矿奖励,最终是当前未花费的交易。输出。所有未使用的输出 - 整个比特币网络的 UTXO。
因此,在比特币网络中,没有账户的概念,也没有比特币余额之类的东西。整个网络的区块链上只有UTXO。
区块链2.0——以太坊
以太坊是一个去中心化的计算网络,允许用户在以太坊上运行智能合约和去中心化应用程序(DAPP Decentralized Applications)。这些应用程序将在没有中央服务器的情况下运行。
以太坊如何利用区块链?
以太坊使用区块链来存储有关在网络上运行的应用程序 (DAPP) 的信息。区块链网络跟踪代码的执行和所有应用程序的状态。
1. DAPP
以太坊网络就像一部手机的IOS系统和Android系统。它是一个平台系统和一个底层生态环境。DAPP是平台衍生的各种分布式应用,也是区块链世界基础服务的提供者。DAPP之于区块链就像APP之于IOS和Android。
2. 智能合约
智能合约是 DAPP 与区块链数据库之间的桥梁,起到区块链“api 连接器”的作用。例如,一个 Dapp 就像一个“支持区块链”的网站,智能合约允许它连接到区块链。
使用 HTML、CSS 和 JavaScript 呈现页面的传统 Web 应用程序。它还需要一个 API 从数据库中获取数据。当您打开 Facebook 页面时,该页面会通过 API 获取您的个人信息(姓名、性别等)并显示在页面上。结构如下:前端→API→数据库
虽然 Dapps 与传统的 Web 应用程序非常相似,但前端使用完全相同的技术来呈现页面。一个关键的区别是 DAPP 不使用 API 来访问数据库,而是通过智能合约来访问区块链数据库。结构如下:前端→智能合约→区块链
ETH 选择账户
账户余额系统
为了运行 DAPP,以太坊放弃了 UTXO比特币用什么app最好,选择了账户余额系统。因为使用帐户有以下好处:
节省大量空间,每笔交易只有一个输入、一个输出和一个签名。
更大的可替代性、编码简单性和轻客户端。
BTC和ETH最大的区别
它是——BTC 使用区块链记账并使用 UTXO,而 ETH 使用区块链运行程序代码并使用账户余额系统。
为什么blockchain1.0不能运行程序
而区块链2.0 可以吗?
区块链2.0,是可编程的区块链,我们可以在区块链2.0上运行智能合约、DAPP(去中心化应用),而区块链1.0是不行的。那么,为什么区块链1.0,不能运行程序呢?
因为区块链 1.0 使用的脚本语言不是图灵完备的。
什么是图灵完备性
如果一种编程语言,给定足够的时间,可以使用计算机完成任何计算任务并解决任何计算问题,那么该语言就是图灵完备的。如果需要解决任何问题,需要使用-“循环”、“条件控制”等语句。
什么是循环
循环是计算机科学中的一种常见控制流,它告诉计算机重复执行一项任务。
例如:“就像一百万次!” 点赞是一项任务。循环:
像
像
像
像
……
总共一百万次。
什么是条件控制语句
仅当满足某些条件时才执行任务。
比如点赞数小于100,就会被点赞。
这里的条件是:点赞数
没有循环和条件控制语句的比特币脚本语言
因此,我们说:比特币脚本语言不是图灵完备的。这导致比特币脚本语言具有一定的局限性。
当然,由于这些限制,黑客无法使用这种脚本语言,编写一些无限循环(这会导致网络瘫痪),或者一些可能导致 DOS 攻击的恶意代码,从而避免对比特币网络进行 DOS 攻击。比特币的开发者也认为,核心区块链不应该具有图灵完整性,以避免一些攻击和网络拥塞。
然而,正是由于这些限制,比特币网络无法运行其复杂的程序。但是,ETH 使用的语言具有图灵完备性。
例如:
Blockchain1.0 就像一部古老的电话,只有拨打和接听电话的核心功能。
区块链2.0就像一部智能手机,可以运行各种APP、游戏APP、微信,极大地影响着人们的生活。
在区块链上运行程序究竟意味着什么?
我们知道,在计算机上运行程序是由 CPU 执行的一系列任务。在区块链上运行程序就是在区块链网络上运行各种任务。
需要注意的是,区块链网络的每个节点都会记录:
1. 所有交易的历史
2. 所有智能合约的历史
3. 所有智能合约的现状
什么是状态?
如果您在淘宝上购买产品,会显示如下状态,已下单,已出库,已发货。您的购买进度是一一对应的状态。
在区块链上运行程序,所有节点都会同步,保持智能合约的状态一致。
DAPP到底是什么?
DAPP是去中心化应用程序(decentralized application)的缩写,是指运行在去中心化网络上的应用程序。
以太坊网络就像一部手机的IOS系统和Android系统。它是一个平台系统和一个底层生态环境。DAPP是平台衍生的各种分布式应用,也是区块链世界基础服务的提供者。
DAPP之于区块链就像APP之于IOS和Android。
DApp = 前端 + 智能合约
DApp 的前端可以是用任何语言编写的前端代码和用户界面(就像应用程序一样)。前端可以调用后端。
前端 → 智能合约 → 区块链
智能合约是 DAPP 与区块链数据库之间的桥梁,起到区块链“api 连接器”的作用。
例如,Dapp 就像一个“支持区块链”的网站,智能合约允许它连接到区块链。
使用 HTML、CSS 和 JavaScript 呈现页面的传统 Web 应用程序(前端)。它还需要一个 API 从数据库中获取数据。例如,当您打开 Facebook 页面时,该页面会通过 API 获取您的个人信息(姓名、性别等)并显示在页面上。结构如下:前端→API→数据库
虽然 Dapps 与传统的 Web 应用程序非常相似,但前端使用完全相同的技术来呈现页面。
一个关键的区别是 DAPP 不使用 API 来访问数据库,而是通过智能合约来访问区块链数据库。结构如下:前端→智能合约→区块链
DAPP的特点
首先,用户的隐私得到很好的保护,信息被加密存储在区块链上。
其次,网络节点以去中心化的方式运行比特币用什么app最好,所有节点同步DAPP的各种状态。
第三,通过标准算法产生代币,根据应用场景使用代币,贡献的用户可以获得代币奖励。
前段时间,以太坊流行的云养猫应用 CyptoKitties 是一款 DAPP!
-结尾-