主页 > imtoken钱包app教程 > 区块链基础介绍(一)

区块链基础介绍(一)

imtoken钱包app教程 2023-03-26 05:26:01

比特币的最大供应量是多少_比特币量子量微博_比特币分叉会影响比特币价格吗

区块链的背景

传统互联网上的交易需要可信的第三方机构处理电子支付信息,交易双方都依赖第三方机构。 (淘宝买家-淘宝平台-淘宝卖家)

比特币分叉会影响比特币价格吗_比特币的最大供应量是多少_比特币量子量微博

但是第三方介入也有很多弊端:

- 交易成本高(收取一定的手续费)

- 隐私暴露(为了验证信息,第三方需要提供交易双方的信息)

-…

试想,如果去掉第三方机构,交易双方直接进行交易,如何保证交易生效? 区块链技术的出现就是为了解决这样的问题。 区块链是一种基于密码学而不是信任的机制,使达成协议的双方可以直接交易并公布给所有见证人。

比特币量子量微博_比特币的最大供应量是多少_比特币分叉会影响比特币价格吗

区块链的起源

区块链起源于2008年的中本聪,第一个产品“比特币”就是根据这个概念诞生的。

比特币 什么是比特币

直观形象

- 具有投资、购储属性的商品

- 虚拟货币,价格波动大,可用于购物

- 2017 勒索软件、暗网交易

比特币的最大供应量是多少_比特币分叉会影响比特币价格吗_比特币量子量微博

概念

比特币是一种虚拟数字货币,总量恒定,没有发行人,不可篡改,有数学科学背书。 任何人都可以参与并创建它。 可用于购买商品和兑换法币。

什么是比特币挖矿

比特币挖矿是将比特币系统在一段时间内发生的交易进行确认,记录在区块链上,形成新的区块链的过程。 我的那些人是矿工。 比特币奖励,换句话说,挖矿就是生产比特币的过程。

节点类型和分工

比特币 P2P 网络中的每个节点都是平等的,但根据所提供的功能,每个节点可能会有不同的分工。 每个比特币节点都是钱包、矿工、完整区块链和网络路由节点的功能集合。

全节点

比特币量子量微博_比特币分叉会影响比特币价格吗_比特币的最大供应量是多少

包含钱包、矿工、完整的区块链、网络路由节点,可以独立验证交易并保持与对等节点的连接。

全区块链节点

比特币的最大供应量是多少_比特币分叉会影响比特币价格吗_比特币量子量微博

包含完整的区块链、网络路由节点,仅用于同步区块、参与验证、维护与对等节点的连接。

独立矿工节点

比特币的最大供应量是多少_比特币量子量微博_比特币分叉会影响比特币价格吗

包括矿工、全区块链、网络路由节点、自我验证、参与挖矿、维护与对等节点的连接。

轻量级 (SPV) 钱包

比特币分叉会影响比特币价格吗_比特币的最大供应量是多少_比特币量子量微博

轻量级钱包没有完整的区块链数据,它使用一种称为“简单支付验证(SPV)”的方法。

完成交易验证

挖矿硬件的进步 为什么比特币有价值

1. 去中心化、无发行机构、匿名性。

2.总量恒定,稀缺。

3、比特币由挖矿产生,挖矿消耗电力,平等产生价值。

4. 越来越多的人参与到比特币网络中来争夺比特币。

5....

比特币网络概览

比特币的最大供应量是多少_比特币量子量微博_比特币分叉会影响比特币价格吗

什么是区块链定义

区块链是一种去中心化的分布式账本,由不可更改的数据包组成,也称为“块”。 每个块连接起来形成一个“区块链”。 一种以去中心化和去信任的方式共同维护可靠数据库的技术解决方案。

比特币量子量微博_比特币的最大供应量是多少_比特币分叉会影响比特币价格吗

每个区块都连接到前一个区块以形成区块链。

从数据的角度

区块链是一个几乎不可能改变的分布式数据库。 这里的“分布式”不仅体现在数据的分布式存储上,还体现在数据的分布式记录上(即所有数据由参与者共同维护)

从技术角度

区块链不是单一的技术,而是多种技术融合的结果。 这些技术以一种新的结构组合在一起,形成了一种新的数据记录、存储和表达方式。

区块链的特点是开放和共识

任何人都可以参与区块链网络,每个设备都可以作为一个节点。 允许每个节点获得数据库的完整副本。 基于一套共识机制,节点通过竞争计算共同维护整个区域。 区块链。

去中心化和免信任机制

区块链由许多节点组成,形成一个点对点的网络。 没有集中的设备和管理机构。 节点之间的数据交互通过数字签名技术进行验证。 不需要信任,只需遵循既定规则即可。 节点之间不存在欺骗和不信任的问题。

交易透明,双方匿名

区块链的运行规则是公开透明的,所有的数据信息也是公开的。 每笔交易对所有节点都是公开可见的。 由于节点是无信任的,因此节点不需要公开其身份。 每个参与的节点都是匿名的。

不可变且可追溯

单个节点甚至多个节点对数据库的修改不会影响其他节点的数据库。 区块链中的每笔交易都通过密码学的方法与相邻的两个区块串联起来,因此每笔交易都可以追溯所有记录。

区块链的分类

比特币量子量微博_比特币的最大供应量是多少_比特币分叉会影响比特币价格吗

公链

没有官方的组织和管理机构,没有中央服务器,参与节点按照系统规则自由接入网络,不受控制,节点基于共识机制工作。 (颠覆性:绝对可信和公开)

典型案例:数字货币代表比特币

私链

建立在一个群内,根据群的要求设置系统的运行规则,在一定程度上限制修改或阅读权限,同时保留区块链的真实性和部分去中心化。 (相对可信和公开)

典型案例:R3

例子:

比特币分叉会影响比特币价格吗_比特币的最大供应量是多少_比特币量子量微博

联盟链

由多个组织共同发起,介于公有链和私有链之间,具有部分去中心化的特点。 该区域快链上的读取权限可以是公开的,也可以是部分公开的,即通过内部指定多个预选节点作为记账人,预选人竞争记账权限,与其他接入节点可以参与交易,但不干预记账过程。 (预选器的能力不能参差不齐)。

(相对可信和公开)

现有案例:Hyperledger

例子:

在借贷分流方面,当用户通过我们的链接跳转到对方网页注册时,对方可以选择耍赖,说没有收到用户的注册请求。 但是如果我们把用户注册行为放到区块上,如果对接方想要接收用户注册行为,它必须在接收到的同时支付给我们。

比特币量子量微博_比特币分叉会影响比特币价格吗_比特币的最大供应量是多少

不同类型区块链的比较

比特币分叉会影响比特币价格吗_比特币的最大供应量是多少_比特币量子量微博

区块链解决什么问题?

区块链最重要的是解决信用成本问题。 以前比特币的最大供应量是多少,两个素不相识的人,很难达成公开的一致。 它必须通过第三方信托机构来完成。 比特币的诞生就是最好的案例。 成功解决信任问题。

区块链的产生

区块链技术是由比特币联合产生的,对比特币技术的抽象称为区块链技术。

区块链交易机制

区块链的交易机制是10分钟左右产生一个区块。 这个区块会打包全网的交易,但是一个区块的打包是有限制的。 一些交易会按照规则先打包,那些没有打包的交易只需要等待下一次打包的机会。 打包交易的就是矿工,矿工就是在打包游戏中争夺区块链记账权的人。 谁能最快解出SHA256数学命题的值,谁就拥有记账权限,打包的交易会被打上时间戳,记账的矿工也会得到相应的奖励。

一个交易过程大致是这样的:

比特币量子量微博_比特币分叉会影响比特币价格吗_比特币的最大供应量是多少

1.发起交易并广播到区块链网络。

2、矿工争夺记账权限,获得记账权限的矿工为交易打上时间戳,打包成块。

3.矿工通过P2P网络全网发布加盖时间戳和打包的交易。

4. 全网其他节点对收到的区块进行验证。

5. 区块验证通过后连接到区块链。

6. 交易经过六个区块的确认后,交易才真正完成。

区块链共识机制

目前主要有以下几种共识机制:Pow、Pos、DPos

- Pow(Proof of Work):工作量证明,就是通过计算机计算出一个数学公式比特币的最大供应量是多少,谁先算出结果就等于答案,谁就获得这次记账的权利。

优势:

算法简单粗暴,节点无需交换额外信息即可达成共识,不易破坏;

缺点:

以比特币为例,比特币吸引了目前全球大部分的算力,其他使用Pow共识机制的区块链应用很难获得同等算力来保证自身安全; 采矿造成大量资源浪费; 达成共识的周期长,不适合商业应用

区块链涉及的技术 区块链的常见问题 区块链技术的颠覆性

代码即规则 –> 使用技术确保绝对信任、可靠性和公平性

- 规则公开透明

- 规则无法更改

- 按规则生成的记录不可更改

区块链的瓶颈

以比特币为例

- 交易时间模糊:时间以出块时间为准,没有每笔交易的时间;

- 交易时间长,吞吐量低

- 扩展问题

- 占用大量存储空间

- pow挖矿浪费电脑资源,矿机出现,挖矿掌握在少数人手中

- 代码即规则,规则是否能与时俱进,代码有BUG,升级需要硬分叉。

- 线程数据库虽然公开透明,但是不支持关系型数据库的强大操作,大大降低了数据库的灵活性。

数字货币排行榜

网站

比特币的最大供应量是多少_比特币分叉会影响比特币价格吗_比特币量子量微博

区块链瓶颈的一些解决方案 区块链在中国的一些应用

1.万客笔(迅雷公司),快速下载。 (硬盘大小、带宽和在线时间)

2.百度的莱茨狗。

3、网易星球(点击广告、阅读等获得原力,通过原力获得钻石)

4、阿里云发布区块链解决方案,支持天猫奢侈品正品溯源。

5、腾讯将于4月23日发布区块链游戏。

区块链发展现状

区块链1.0

虚拟货币

以比特币为代表的数字货币的应用包括支付、流通等货币功能。 比特币在互联网上被认为是黄金。 其储量有限,将作为未来数字货币的价值铆钉。

区块链2.0

让百花绽放

以以太坊为代表,数字货币与智能合约相结合,可以开发DAPP应用,属于金融、经济领域的应用。 最大的贡献是创建了智能合约,投票系统等场景。

区块链3.0

支持复杂的业务应用

满足复杂的业务应用,适合为各行业提供去中心化的解决方案,不再依赖第三方或机构获取信任或建立信用,实现信息共享,解决信任问题,提高整个系统的运行效率。

代表产品

- EOS

特征:

- 高性能交易速度。

- 免去手续费的烦恼。

- 模块化封装,更方便应用人员开发DAPP(合约异步调用)。

- 以太坊 3.0

- 启用“无限”的可扩展性。

- 超级账本

- 超级账本是由联盟组织发起的完全共享、去中心化、透明的联盟链。 它由数十家大公司组成,旨在解决商业业务问题。 虽然在技术上没有太大的创新,但出发点是适用于大多数业务问题,所以成为了区块链3.0的代表产品。

-…

区块链技术选型

在技​​术选择上,我们选择了区块链2.0时代的龙头以太坊。 以太坊开创了智能合约的先河,并且以太坊中有很多社区,以太坊支持的开发语言也很多,其中go语言最为流行。

以太坊生态系统中的概念和工具Ethereum

以太坊是一个智能合约区块链平台,您可以在该平台上创建去中心化应用程序,也称为 Dapps。

智能合约

智能合约是以数字形式定义的一组承诺,包括合约参与者可以实现这些承诺的协议。

盖思

Geth是以太坊基金会官方提供的客户端软件,使用Go编程语言编写

迷雾浏览器

这是一个用于与您的节点通信的桌面应用程序。 您可以使用 geth 终端执行的任何操作都可以通过此 GUI 完成。

Web3.js

web3.js 是一个 javascript 库,可用于与以太坊节点交互。 由于它是一个 javaScript 库,您可以使用它来构建基于 Web 的去中心化应用程序 (dapps)。

坚固性

Solidity 是用于编写在以太坊区块链上运行的智能合约的最流行的编程语言。 它是一种高级语言,在编译时转换为 EVM(以太坊虚拟机)字节码。

松露/登船

Truffle 和 Embark 是用于开发以太坊去中心化应用程序 (dapps) 的两个最流行的框架。 他们抽象出在区块链上编译和部署合约的许多复杂性。

元掩码

Metamask 是一个用于与以太坊节点交互的 chrome 浏览器插件。 它是一款轻量级钱包,可用于查询余额和转账交易。

运行基于区块链的宠物 DAPP

部署 DAPP 的步骤

1.首先部署以太坊网络。

- 创建创世块

{
  "nonce": "0x0000000000000042",
  "timestamp": "0x00",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x00",
  "gasLimit": "0x80000000",
  "difficulty": "0x133332",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {},
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  }
}

mygeth.exe --datadir "%cd%\chain" init genesis.json

mygeth.exe --identity "newEth" --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port 30303 --rpcapi "db,eth,net,web3,personal" --networkid 9999 console

2. 编写智能合约并部署。

合约代码

pragma solidity ^0.4.0;
contract Adoption {
    address[16] public adopters;
    // Adopting a pet
    function adopt(uint petId) public returns (uint) {
        require(petId >= 0 && petId <= 15);
        adopters[petId] = msg.sender;
        return petId;
    }
    // Retrieving the adopters
    function getAdopters() public view returns (address[16]) {
        return adopters;
    }
}

编译合约命令

E:\workspace\truffle\pet-shop>truffle.cmd compile

部署合约命令

E:\workspace\truffle\pet-shop>truffle.cmd migrate

3.启动DAPP

启动宠物商店命令

E:\workspace\truffle\pet-shop>npm run dev

打开网址

:3000/

打开网页,点击领养,会显示领养成功。

研究成果

1、部署以太坊中心节点。

2. 智能合约开发。

3、DAPP应用开发。

4. Docker容器化。

待研究

1、Docker命令脚本封装。

2. 研究合约之间的异步交互,同步生效。