主页 > 如何下载imtoken > 了解区块链

了解区块链

如何下载imtoken 2024-01-15 05:09:05

1.1.2 区块链技术概念

区块链的技术理念其实就是大家一起参与记账,通过一个规则(共识算法)不断选择账户打包者,其他节点接受验证,每个用户都有一对密钥来代表自己,通过脚本系统,实现了公网有价值数据的定向发送。

区块链使用公钥算法来识别用户的身份。 公钥算法有一对密钥比特币账户注册,它们相互配合使用,可以用来加密和解密。 其中一个称为私钥,另一个称为公钥。 公钥可以公开给他人,私钥可以自己保管。 在区块链系统中,公钥用于用户身份识别。 一般不会直接使用公钥。 在实际处理过程中会进行转换,比如获取公钥的最后20字节,或者经过一系列比较复杂的过程。 转换,最后得到一个转换结果叫做“地址”,这个“地址”可以代表一个用户。

密钥如何协同工作:用公钥加密的数据必须用相应的私钥解密,用私钥(通常称为“签名”)加密的数据必须用相应的公钥解密。

1.1.3 一般工作流程

1. 打包入块 2. 全网广播 3. 检查、验证、确认 4. 写入块

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

区块链技术实际上围绕着如何保持数据的一致性,以及如何让这个公共账本中的数据不被篡改。

1.2 区块链技术栈

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

区块链系统的本质直接在这篇经典结构论文上实现或扩展。

1. 区块链账本

比特币巨鲸账户_比特币账户注册_中本聪比特币账户

比特币中区块链数据的构成:

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

区块数据分为区块头和区块体。 每个区块头通过Merkle根与区块中的许多交易相关联,每个区块通过区块头哈希值(区块头哈希值是一个区块的ID号)拼接而成。

2. 共识机制:如何通过规则让各个节点保持自己的数据一致是一个非常核心的问题。 解决这个问题的方法是制定一套公式算法。 区块链中的共识算法一般包括POW、POS、DPOS、PBFT等。

3.密码算法

区块链之间的连接是通过一种称为哈希值的数据关联起来的。 什么是哈希值? 这是通过密码算法中的哈希算法计算出来的。 哈希算法在对一条数据进行计算后可以得到一个摘要串,这个摘要串与原始数据唯一对应。 如果原始数据被修改,即使修改很小,计算出的哈希值也会完全改变。 区块链账本为每个区块计算一个哈希值,称为区块哈希,区块通过区块哈希串联起来。

4.脚本系统

区块链系统依靠脚本系统驱动区块链系统不断发送和接收各种数据。 所谓脚本,是指一套程序规则。 在区块链系统中,一些系统中的程序规则是固定的。 例如,在比特币系统中,只能发送和接收比特币。 发送和接收的过程是通过比特币中的一组脚本实现的。 还有一些系统允许用户自己编写一套程序规则,编写完成后部署到区块链账本中,从而扩展区块链系统的功能。 例如,以太坊使用一套可定制的功能足迹系统来实现智能合约的功能。

5. 网络路由

1.3.2 区块链分类

中本聪比特币账户_比特币巨鲸账户_比特币账户注册

1、按网络范围:可分为公有链、私有链和联盟链。

2.按部署环境分:主链、测试链

3.按对接方式分:单链、侧链、互联链

单链:任何可以独立运行的区块链系统都可以成为“单链”

侧链:侧链是区块链系统的一种跨链技术。 区块链系统和侧链系统都是独立的链系统,两者可以按照一定的协议进行交互。 这样,侧链就可以扩展主链的功能。 在主链中不方便实现的功能可以在侧链中实现,侧链通过与主链的数据交互来增强其可靠性。

1.4.2 比特币核心程序:中本聪客户端

客户端逻辑结构:

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

钱包:主要用于管理用户密钥,提供转账操作等功能。

完整的区块链:中本聪客户端保留了完整的区块链账本数据,因此无需任何外部调用即可独立验证所有检查。 当然,也有一些节点只保留区块链的一部分(如区块头),可以通过一种叫做“简单支付验证”(SPV-simply pay verify)的方式完成支付验证。 这样的节点被称为“SPV 节点”。

比特币巨鲸账户_比特币账户注册_中本聪比特币账户

网络路由:比特币网络hi属于P2P网络架构,P2P是点对点的意思。 在对等网络中,各个节点共同提供网络服务,没有所谓的中央服务器比特币账户注册,所以对等网络中的网络架构没有等级之分,人人平等,并且每个节点对外提供服务的同时,也在使用网络中其他节点提供的服务。

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

1.4.3 比特币的发行:挖矿

比特币系统挖矿的目的: 1. 抢夺区块打包权 2. 验证交易行为 3. 奖励新币的发行 4. 广播新区块

1、难度值:新难度值=当前难度值*(最新2016个区块实际出块时间/20160分钟)——每两周调整一次难度值

2、挖矿计算:

计算公式:SHA256(SHA256(version+pre_hash+merkle_root+ntime+nbits+nonce))

ntime:区块时间戳 nbits:当前难度 nonce:随机数

挖矿就是反复计算区块头的哈希值,不断修改这个参数,直到与难度目标值相匹配的过程。

3. 区块广播

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

矿工挖出区块后,会广播网络,传递给相邻的节点。 节点收到新区块后,会进行一系列的验证。 如果所有验证都通过,新的区块数据将被包含在它自己的区块中。 在链账本中。 如果挖矿节点收到信息,会立即停止当前的挖矿计算,开始竞争下一个区块。

4、挖矿方式:CPU/GPU/FPGA/ASIC

1.4.4 比特币钱包:核心钱包和轻钱包

钱包:是比特币系统中的前端工具。 它最基本的功能是管理用户的比特币地址、发起转账交易、查看交易记录等。

公钥算法属于非对称加密算法,有两个密钥:一个是私钥,一个是公钥。 公钥可以对外公开,​​私钥必须妥善保管。 用私钥加密的数据(通常习惯上称私钥加密为“私钥签名”)可以用公钥解密,而用公钥加密的数据可以用私钥解密,两者相互匹配. 目前广泛使用的公钥算法主要有RSA算法和椭圆曲线加密算法(ECC)。 比特币使用椭圆曲线加密算法。

比特币地址的生成过程:

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

对于完整的交易验证(需要在完整的账本数据上验证,比如是否包含足够的余额,是否双花等),可以交给核心节点,这样可以剥离钱包功能出来,产生 SPV 钱包。 即轻钱包,SPV原理的钱包使用Merkle树来验证支付j是否发生,这就是为什么叫简单支付验证。 支付验证做的很少,只能看到当前支付交易是否发起,并不能保证交易最终会进入主链,也就是说还需要等待核心节点进行全面的验证交易验证,矿工打包成块后进入主链。 这个过程中可能会出现故障,所以SPV钱包虽然带来了便利,但也牺牲了安全性。

1.4.5 比特币账户模型:UTXO(UnspentTransaction Output,未花费交易输出)

1、比特币交易不是通过账户的增减来实现的,而是一系列关联的输入/输出交易。

比特币账户注册_比特币巨鲸账户_中本聪比特币账户

2. 每笔交易都需要花费“输入”,然后产生“输出”。 这个产生的“输出”就是所谓的“未花费的交易输出”,也就是UTXO。

3. 由于没有账户的概念,当“输入”部分的金额大于要求的“输出”时,你必须给自己找零,这也作为交易的一部分计入“输出”。

那么如何证明哪个UTXO属于谁呢?

在比特币中,这是使用输入脚本和输出脚本程序实现的,有时称为“锁定脚本”和“解锁脚本”。 简单来说,就是通过“锁定脚本”,用私钥签名解锁自己的一个UTXO(也就是之前的“输出”),然后用对方的公钥锁定新的“输出” . 对方的“输出”成为对方的UTXO。

1.5 区块链的技术意义

1.数据不可篡改

2.分布式存储

3. 匿名

4. 价值传递

5. 自动网络共识

6. 可编程合约

1.6 知识点图

比特币账户注册_比特币巨鲸账户_中本聪比特币账户