大白话说区块链和通证

2024-01-05 19:52
文章标签 区块 大白话 通证

本文主要是介绍大白话说区块链和通证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 区块链

简单地说,区块链其实就像是一个不可篡改的分布式数据库,该分布式数据库记录了一系列交易或事件。区块链运行在至少1个以上的节点上,每个节点都有自己的一个分布式数据库,也就是分布式账本。正常情况下,每个节点的分布式数据库里的数据都是一样的。区块链由不断生成的区块链接而成。一个区块包含区块头(Block Header)和区块数据(Block Data),区块数据又称为区块体(Block Body)。每个区块包含了一批交易的数据、时间戳和前一个区块的哈希值。哈希值是一种唯一标识,它保证了每个区块的完整性,一旦数据发生改变,哈希值也会立刻发生变化,因此保障了数据的安全性。而要改变一个区块,就要改变它之后所有的区块,这种特性使得区块链非常安全。此外,区块链是分布式的,因此没有单一的控制中心(除非区块链只运行在1个节点上),使得数据变得更加透明、可追溯和公开。总的来说,区块链是一种用于记录交易和事件数据的技术,它的特点是去中心化、不可篡改、透明、安全,并且可以实现智能合约等功能。

1.1 区块头

对于比特币来说,区块头(Block Header)包含以下几个字段:

  1. 版本号(Version):这是表示区块链协议的版本号。
  2. 前一个区块的哈希值(Previous Block Hash):这是前一个区块的哈希值,将前一个区块与当前区块链接起来,形成区块链。
  3. 默克尔根(Merkle Root):这是由所有交易数据构建的默克尔树的根哈希值,确保区块中的交易数据的完整性。
  4. 时间戳(Timestamp):这是区块的创建时间,以UNIX时间戳的形式表示。
  5. 难度目标(Difficulty Target):这是一个用于控制区块链的挖矿难度的参数,在计算哈希值时起到限制条件的作用。
  6. 随机数(Nonce):这是一个用于满足挖矿难度要求的随机数,矿工需要不断尝试不同的随机数来寻找满足要求的哈希值。

1.2 区块体

区块数据可以包含0笔、1笔或多笔交易,这些交易包括矿工的挖矿交易和其他转账交易。每笔交易信息都可以通过哈希函数,例如MD5、SHA-256,得到一个唯一对应的哈希值,也就是这笔交易的哈希值。对于比特币来说,使用SHA-256哈希函数。需要注意的是,每笔交易的信息,改变了哪怕1 bit的内容,交易的哈希值也就会被改变。哈希函数,简单地说,就是对于任意长度的输入,通过散列算法变换,都能得到一个成固定长度的输出,该输出就是散列值。

例如,如果使用MD5算法:

对于输入:"123456",它的MD5的输出就是:"E10ADC3949BA59ABBE56E057F20F883E",即: MD5("123456")="E10ADC3949BA59ABBE56E057F20F883E"

对于输入:"哈希函数,简单地说,就是对于任意长度的输入,通过散列算法变换,都能得到一个成固定长度的输出,该输出就是散列值。",它的MD5的输出就是:"1AC00B1CA622EF532564A51C29DA5D0D",

即: MD5("哈希函数,简单地说,就是对于任意长度的输入,通过散列算法变换,都能得到一个成固定长度的输出,该输出就是散列值。")="1AC00B1CA622EF532564A51C29DA5D0D"

关于哈希函数和交易id是如何来的,详细可以参考我的这篇文章:

以太坊的交易id是如何来的 - 知乎

默克尔根的计算过程:

假设,区块数据里包含有5笔交易A、B、C、D、E。这5笔交易通过哈希函数得到的交易哈希分别是H1、H2、H3、H4、H5,然后把这5个交易哈希再两两组合,再一次进行哈希运算。即把H1和H2组合起来进行哈希运算,得到H12;把H3和H4组合起来进行哈希运算,得到H34,H5不变。这时候,得到新的交易哈希集合:H12、H34、H5。然后再进行新一轮的组合哈希运算,得到新的交易哈希集合:H1234、H5。最后,进行最后一轮的组合哈希运算,得到新的交易哈希根值:H12345。整个过程形成了Merkle树(Merkle Tree),这棵树的根节点就是交易哈希根值:H12345,也就是默克尔根(Merkle Root),它是由所有交易数据构建的默克尔树的根哈希值。默克尔树是一种二叉树结构,用于对多个交易进行散列和汇总,确保区块中的交易数据的完整性。

1.3 区块的哈希值的计算过程

以下是涉及到计算比特币区块哈希值的一些关键步骤和数据:

  1. 区块头(Block Header):比特币的每个区块都有一个区块头,它是一个包含多个字段的数据结构。区块头中包含了一些重要的信息,包括版本号、前一个区块的哈希值、默克尔根、时间戳和难度目标等。
  2. Merkle树(Merkle Tree):在区块头中有一个字段叫做默克尔根(Merkle Root),它是由所有交易数据构建的默克尔树的根哈希值。默克尔树是一种二叉树结构,用于对多个交易进行散列和汇总,确保区块中的交易数据的完整性。
  3. 工作量证明(Proof-of-Work):比特币的区块链使用工作量证明机制来保护区块的安全性。为了计算区块哈希值,需要找到一个特殊的值,称为Nonce(随机数),使得通过对区块头的所有字段进行哈希运算后,得到的哈希值满足难度目标。这个过程是一个不断尝试的过程,需要大量的计算和能量消耗。
  4. 哈希函数(Hash Function):比特币使用SHA-256(Secure Hash Algorithm 256-bit)算法作为其哈希函数。SHA-256是一种加密哈希函数,它将输入数据转换为一个固定长度的哈希值,通常是256位。

根据上述数据和步骤,计算比特币区块的哈希值的过程如下:

  1. 将区块头的各个字段进行拼接,得到一个长的二进制数据。
  2. 使用SHA-256哈希函数对拼接后的二进制数据进行哈希运算,得到一个256位的哈希值。
  3. 如果得到的哈希值不符合难度目标,即不满足比特币网络中设定的困难程度,就需要不断尝试不同的Nonce值,再次进行哈希运算,直到找到满足要求的哈希值为止。
  4. 最终找到满足要求的哈希值后,将这个哈希值添加到区块头中的哈希字段,形成最终的区块头。

比特币的区块哈希值计算是一个耗时且困难的过程,需要大量的计算资源和能量。也就是说,比特币矿工挖矿的过程,就是不断地调整Nonce值进行哈希函数运算,使其计算出来的区块的哈希值满足难度目标,这样就获得了出块权产生该区块,从而获得区块奖励。更具体来说,就是比特币矿工计算出来的哈希值,等于或低于比特币网络设定的256位目标数字的有效哈希值的难度时,矿工就可以成功找到并解锁新区块。因此,该目标值越低,挖掘难度就越高,而且该目标值是动态调整的。比特币大约每10分钟产生一个区块,每挖出2016个块调整一次比特币挖矿难度调整。正常情况下,比特币每挖出2016个块,也就是需要每14天左右,所以,矿工也称14天为一个难度期。比特币挖矿难度调整是根据之前一个难度周期比特币挖矿难度调整的比特币全网算力来调整,所以难度和全网算力是相关的,时间上有一定的滞后。当矿工在一个难度期内发现区块挖掘时长低于10分钟这个目标平均值时,比特币网络将会增加难度;反之,就会降低难度。这样的做法,保证矿工挖掘新区块的时间尽可能地接近10分钟的平均值。

除了创世区块外,每一个区块都通过指向前一个区块的区块哈希值,和前一个区块关联起来,这样所有的区块就形成了一条内容难以被篡改的链,这就是区块链。因为一个区块的内容如果改变了,那么它的区块哈希值也就变了,后面的区块的原来保存的前一区块的区块哈希值就无法指向这个被改变的区块,意味着区块链断裂了。除非后面的区块里保存的前一区块的区块哈希值也被改为改动后的区块哈希值,这样,区块链才能保持连接状态。

另一方面,区块链可以运行在至少1个节点上,如果区块链运行在多个节点上,哪怕其中一个节点改变了自己的区块链上的数据,那么它的区块链的数据,也就是区块链账本,就会和其它节点的区块链账本不一样,这样,就会形成区块链的硬分叉,形成2条不同的区块链。这也是区块链的数据难以被篡改的原因之一。当然,如果区块链运行在1个节点上的时候,区块链的数据还是可以直接被修改的,但只有1个节点的区块链,也说不上去中心化了,和中心化的系统没有太大区别,只是数据修改起来更麻烦一点。

1.4 区块链的结构形态

区块链一般是以链式结构存在的,即后一个区块有一个指向前一个区块的区块哈希值,和前一个区块关联起来,形成一条直线的链。除非发生硬分叉,这条链才会在某个区块形成分叉,分叉成两条链,像一棵二叉树。但需要注意的是,链式结构并不是区块链唯一存在的结构形态。除了链式结构,目前区块链的另一种结构形态是有向无环图(Directed Acyclic Graph,DAG)。简单地说,有向无环图指的是一个无回路的有向图,它由有限个顶点和“有向边”组成,从任意顶点出发,经过若干条有向边,都无法回到该顶点,这种图就是有向无环图。

上图中的有向无环图和普通有向图的区别在于:普通有向图里有些节点形成了回路

1.5 区块链使用了哪些技术

区块链使用的技术有:分布式数据库、点对点传输、非对称性加密算法、共识算法、智能合约。其中,分布式数据库、点对点传输、非对称性加密这3种技术在区块链诞生前就已经存在了,共识算法、智能合约这2种技术是区块链新引入的。区块链技术实际上是把上面这5种技术巧妙地结合在一起。

分布式数据库:一个区块链系统由多个分布式节点构成(可以认为区块链系统是一个多节点的系统,对外提供服务的节点有多个,并且节点数可以无限扩展;但不一定是所有的节点都参与共识算法来验证交易数据),每个分布式节点都拥有一个分布式数据库。

点对点传输:节点之间通过点对点传输技术来进行信息传输。

非对称性加密:区块链系统中的每个用户都有自己的私钥(相当于密码,由用户自己单独拥有,非公开的)和公钥,公钥可以通过私钥使用非对称性加密算法推导出来。私钥和公钥之间的关系依赖于非对称性加密算法。钱包地址(相当于银行账号,公开的)可以通过公钥得到。

共识算法:共识算法是在分布式系统中用于解决参与者之间达成一致的算法。常见的共识算法包括:工作量证明(Proof of Work,PoW),权益证明(Proof of Stake,PoS),委托权益证明(Delegated Proof of Stake,DPoS),联邦拜占庭(Federated Byzantine Agreement,FBA )等,详细可以参考我的这篇文章:

各种主流区块链共识算法大比拼 - 知乎

智能合约:智能合约就像是一种编程的方式,它是在区块链上执行的自动化合约,其中包含了双方合同条款的规则和逻辑。一旦满足了预定条件,智能合约就会自动执行,无需第三方干预。智能合约通常基于区块链平台上的特定协议编写,并且被存储在区块链上。它们的执行依赖于区块链上的节点,因此具有分布式、透明、安全、不可篡改的特点。智能合约有许多应用场景,比如数字货币交易、资产转让、保险理赔等。它们可以自动化和确保交易的执行,减少人为干预和减轻人力成本。

2 通证

通证(Token)是指在区块链中使用的数字资产,它可以代表某种价值或拥有某种权益。通证是构建区块链生态系统的一种重要工具,它可以用于表示某种权益、交换价值、激励参与者等。

通证可以有不同的形式和功能,以下是一些常见的通证类型:

  1. 代币(Token):代币是区块链中最常见的通证类型之一,可以用来表示某种价值或资产。代币可以在区块链上进行创建、传输和销毁,可以用于支付、投资、治理权益等。
  2. 不可替代通证(Non-Fungible Token,NFT):又叫非同质通证。NFT是一种独特且不可互换的通证,每个NFT都有其独特的价值和属性。NFT常用于表示艺术品、游戏道具、虚拟地块等独特的数字资产。
  3. 安全通证(Security Token):安全通证是通过区块链发行的符合证券法规的数字证券,代表着某种权益,如股份、债券、房地产等。安全通证可以提供更高的透明度、流动性和可编程性。
  4. 使用权通证(Utility Token):使用权通证是一种用于访问和使用特定平台或应用服务的通证。持有使用权通证的用户可以使用它们访问平台的功能或获取相应的特权和优惠。

通证的功能和用途可以因其类型和所属区块链平台的不同而有所差异。它们可以促进价值交换、建立经济激励机制、实现去中心化治理等。通过通证化,人们可以更方便地交换和管理数字资产,推动更广泛的创新和参与。

其实,更广义的通证概念包含了更大的范围,它代表的是一种权利和权益,并不限于在区块链中使用的数字资产,它还包括了证券市场上的证券、日常生活中的优惠券和积分、虚拟币(如QQ币)等。

网上流行着另一种说法:就是某条链上的原生代币就叫做coin,即币。在这条链上发行的其它代币叫做token,即通证。例如:以太坊这条链上的原生代币就叫做以太币,即eth。在以太坊这条链上发行的其它代币就叫做通证。我个人认为这样的概念划分不太准确。我认为币只是通证这个概念的其中一种表现形式,通证不限于币,更广泛地表示一种权益。对于以太坊这条链,不管是原生代币eth,还是在以太坊这条链上发行的其它代币,都可以叫做币。当然,这只是我个人的理解。

3 区块链和通证的关系

区块链是通证的载体,通证在区块链上发行。每条区块链可以发行多种通证,而区块链也不是只有一条,可以有多种不同类型的区块链。区块链和通证这个关系就好比证券交易所和股票的关系,一个证券交易所可以发行多股票,证券交易所也可以有多个,当然这个比喻不一定恰当。

更多区块链方面的文章,可以看我的学习笔记 :www.0101.vip

----------------------------------------------------------------------------------

我是powervip,区块链程序员

我的公 众 号 和 知 识 星 球:区块链战斗机

我的知乎:powervip - 知乎

我的学习笔记:www.0101.vip

原创作品,版权所有,侵权必究!商业转载请联系作者获得授权;非商业转载需保留作者署名信息,注明出处并保留原文链接。

写作不易,喜欢我写作内容的朋友,请帮忙点 “ 赞同 ” 按钮,谢谢!

你的鼓励,我的动力!

这篇关于大白话说区块链和通证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/573987

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

数据库遇上知识图谱、区块链、深度学习

参考资料: https://zhuanlan.zhihu.com/p/33381916 https://www.zuozuovera.com/archives/1062/ 东南大学D&Intel Lab相关ppt 数据库的核心概念——表示、存取、查询 有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。 目的:研究数据表示、存取数据模型:表示数据的模型,通

区块链技术介绍

一.概述 1.什么是区块链?   区块链是一种分布式数据库技术,它以链式数据结构的形式存储数据,每个数据块与前一个数据块相关联,形成了一个不断增长的数据链。每个数据块中包含了一定数量的交易信息或其他数据,这些数据经过加密和验证后被添加到区块链上。由于每个数据块都包含了前一个数据块的哈希值,因此任何尝试篡改数据的行为都会被迅速地检测出来。 2.区块链技术的起源   区块链的起源可以追溯到

孙宇晨:区块链领域的时代先锋,每一步引领未来趋势

​孙宇晨,这位在区块链领域崭露头角的青年企业家,凭借着敏锐的洞察力和坚定的决心,成为了数字经济时代的领航者。他的每一步,都走在技术创新的最前沿,推动着区块链技术的发展与应用,给全球经济带来了深远的影响。 从创业初期到现在,孙宇晨始终紧跟时代脉搏,勇敢地探索未知的领域。他对区块链技术的热情源于他对去中心化理念的深刻理解和认同。在区块链技术还处于初期发展阶段时,孙宇晨便看到了它将如何改变世界。区

【区块链 + 人才服务】链学汇教育区块链平台 | FISCO BCOS应用案例

链学汇教育区块链平台立足于教育行业区块链需求,结合真实应用场景和区块链技术,采取校企共建形式,构建基于产业发展及创新需求的实践教学和实训实习环境。目前已应用于东莞理工学院粤台产业科技学院,实现: 1. 通过“学、研、训、产”四位一体的应用人才培养模式,实践基地打造成为校企合作应用型人才培养示范基地; 2. 结合企业在区块链应用落地的丰富经验,将多种现实生活的场景与实训平台相结合,以丰富、趣味性

区块链ARC如何能让节点能够大规模处理交易数据

​​发表时间:2024年8月7日 TAAL技术主管Michael Böckli表示,TAAL公司一直在对ARC进行测试,并准备在今年年底全面发布。因TAAL在区块链交易处理方面具备深厚的专业知识,BSV区块链委托TAAL进行ARC开源参考落地方案的开发。 ARC是一个多层交易处理系统,能够追踪交易在BSV区块链上的整个生命周期。 除了遵循BSV区块链的开源指南和要求开发ARC的开源版

【区块链 + 人才服务】FISCO BCOS 区块链实训和管理平台 | FISCO BCOS应用案例

中博数科 FISCO BCOS 区块链实训和管理平台主要应用于区块链领域的教育和实训,目的是为学生、教师等用户 提供高效的区块链技术学习和实践体验,同时也为学校提供了一套完整的区块链解决方案。 该平台提供了一套完整的区块链课程体系,包括理论知识和实践项目,学生和开发者可以在平台上进行各种实验 和模拟,熟练掌握区块链的相关技术和应用,从而提供给企业有能力的区块链人才。同时,平台还提供了一套完整的区

大白话【12】网络虚拟化

1.VMware网络三种工作模式 1.桥接网络:虚拟一个交换机在内存里面(ovs),叫vmnet0如果你的物理机可以上外网,那么虚拟机也可以上外网2.NAT网络:将内网转换成外网叫vmnet8桥接和NAT既然都可以上外网,那么如何选择呢?桥接,不仅可以上外网,同时外网也可以访问到你的虚拟机NAT可以上外网,但是默认外网无法访问到你的虚拟机3.仅主机网络:vmnet1主要是为了安全,进行内网,外

大白话说什么是“MLLM”多模态大语言模型

1. 什么是MLLM多模态大语言模型 1.1 先来思考一个问题 如果上传了一张图片,并向大模型提问。“图片中绿色框框中的人是谁?” 大模型回答:“那是波多野吉衣老师” 请问,大模型是怎么做到的? 我们用常规的思路来想一下,难道是: 第一步:先对图片进行目标检测,先把绿色框的内容剪切出来; 第二步:在剪切后的图片中,把人脸标记出来,并读取其landmark转为向量; 第三步:在人脸向