web3小白入门:区块链的了解

news2024/12/26 9:29:35

记录web3学习的过程,从小白开始

所有的web3相关的学习内容都会更新在github,github地址

这篇文章主要说明区块链的一些概念

为什么要了解区块链?

Web3 是以区块链技术为核心,构建新一代的去中心化互联网组件,再基于它们来构建我们想要提供的服务、应用。

虽然在实际开发中不太可能写区块链,但是了解区块链对我们的Web3开发有一定的帮助

区块

定义:一种数据块,它采用密码学的方法将电子数据永远的记录下来,每个“区块”就是一本账本。

从上面的图可以看到,每个区块记录了positionnoncedata,然后将3个合并生成 hash

Tips:hash存在碰撞(即不同的输入得到一样的结果),但这种概率非常的低

注意:nonce的值,是根据生成的hash是否落在指定区域来得出;只要hash值的前4位是0,即可满足。

区块链


定义:就是一个又一个区块组成的链条;是共享的、不可篡改的账本;用于记录交易、跟踪资产和建立信任。

特性:分布式存储,点对点传输、共识机制、加密算法等。

  • 区块链1.0技术 -> 比特币

  • 区块链2.0技术 -> 以太坊2.0

在区块链中,第一个区块叫:创世区块

区块链的运行机制

到了区块链这里,可以看到每一个区块都有一个前指针,这个是记录前一个区块的hash。

如上图,对于第一个区块,即创世区块的上一个hash是000000....00000000。

为什么要记录上一个区块的hash值,因为这样基本能做到防篡改。如果某一个区块的hash值的被更改,那么其对应的下一个区块算的hash会不满足0000开头的条件,需要重新计算nonce,然后得出最新的hash。这样子后面所有的区块都需要重新计算nonce。

签名交易

在区块链中,如何验证一笔交易是真实的?

区块链中,用的是非对称加密(加密和解密的密钥不一样),生成签名的时候,用个人私钥生成,验证的时候是用个人的公钥验证

Gas手续费

在区块链中,区块能存储交易的空间有限。为了能让交易被写在某个区块中,需要支付手续费。手续费会根据需求变化。比如以太坊的费用会上下调节,调节的依据是有正在交易人数的量。

链的类型

公有链(Public Blockchain):公有的区块链,读写权限对所有人开放。


真正的完全去中心的区块链,代表:比特币块链、以太坊智能合约

用户不用注册就能匿名参与的链,无需授权就能访问网络的区块链。公链的任何区块对外公开,任何人都可以发送价值。比特币以太坊是著名公链,公链适合虚拟货币,电子商务互联网金融等领域。

公有链能够稳定运行,得益于特定的共识机制,例如比特币块链依赖工作量证明(PoW)、以太坊目前依赖权益证明(PoS)等,其中Token(代币,也有人称“通证”)能够激励所有参与节点“愿意主动合作”,共同维护链上数据的安全性。因此,公有链的运行离不开代币。

优点:

1:所有交易数据公开、透明。

虽然公有链上所有节点是匿名(更确切一点,“非实名”)加入网络,但任何节点都可以查看其他节点的账户余额以及交易活动。

2:无法篡改。

公有链是高度去中心化的分布式账本,篡改交易数据几乎不可能实现,除非篡改者控制了全网51%的算力,以及超过5亿RMB的运作资金。

缺点:

1:低吞吐量(TPS)。

高度去中心化和低吞吐量是公有链不得不面对的两难境地,例如最成熟的公有链——比特币块链——每秒只能处理7笔交易信息(按照每笔交易大小为250字节),高峰期能处理的交易笔数就更低了。

2:交易速度缓慢。

低吞吐量的必然带来缓慢的交易速度。比特币网络极度拥堵,有时一笔交易需要几天才能处理完毕,还需要缴纳几百块转账费。

私有链(Private Blockchain):私有的区块链,读写权限对某个节点控制。


机构内私有定制区块链,代表:蚂蚁金服

私有链的读写权限掌握在某个组织或机构手里,由该组织根据自身需求决定区块链链的公开程度;适用于数据管理、审计等金融场景,私有链的价值主要是提供安全可追溯不可篡改自动执行的运算平台,必须先注册取得许可才可以访问和使用。央行发行的数字货币就是私有链。

优点:

1:更快的交易速度、更低的交易成本链上只有少量的节点也都具有很高的信任度,并不需要每个节点来验证一个交易。因此,相比需要通过大多数节点验证的公有链,私有链的交易速度更快,交易成本也更低。

2:不容易被恶意攻击相比中心化数据库,私有链能够防止内部某个节点篡改数据。故意隐瞒或篡改数据的情况很容易被发现,发生错误时也能追踪错误来源。

3:更好地保护组织自身的隐私,交易数据不会对全网公开。

缺点:

区块链是构建社会信任的最佳解决方案,“去中心化”是区块链的核心价值。而由某个组织或机构控制的私有链与“去中心化”理念有所出入。如果过于中心化,那就跟其他中心化数据库没有太大区别。

联盟链(Consortium Blockchain):联盟区块链,读写权限对加入联盟的节点开放。


行业内的可监管区块链,代表:超级账本(Hyperledger)

联盟链仅限于联盟成员参与,成员参与区块链运行需要按照规则获取读写记账的权限。成员需要注册才可使用。联盟链由机构成员共同维护,提供成员管理,认证,授权,监控,审计功能。由40多家银行参与的R3区块链联盟和Linux基金会成立的超级账本项目属于联盟链构架。

联盟链适合机构间交易清算结算B2B场景,用于节省对账和清算成本,减少人为错误的发生。联盟链对安全性能要求比公链高。

联盟链是私有链的一种,只是私有程度不同,而且其权限设计要求比私有链更复杂;但联盟链比纯粹的私有链更具可信度。

在对可信度、安全性有很高要求,而对交易速度不苛求的落地场景,公有链更有发展潜力。

从本质上讲,公有、私有和联盟链并不矛盾,它们只是使用了不同的技术:

  • 精心设计的公有链在防审计性方面往往更具优势,但代价是速度和吞吐量较低。这些是对交易结算(或智能合约)提供安全性保证的最佳选择。

  • 私有链可以优先考虑系统的速度,因为它无需像公共区块链那样担心核心故障。理想情况下,将私有链部署在个人或组织可控且信息保密的情况下。

  • 联盟链可减轻私有链中交易对手的风险(通过消除集中控制),并且较少的节点数通常可使它们能够比公共链更有效率的运行。联盟链适合于彼此之间需要相互沟通的单位组织。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190090.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP状态码301和302区别

Http 状态码 301 和 302 定义: 1、什么时候使用301? 你将永久更改网页的 URL时。你将永久迁移到新域名时。当你从 HTTP 切换到 HTTPS 时。你希望修复非 www / www 重复内容问题时。永久合并两个或多个页面或网站时。你将永久更改网站的 URL 结构时。 …

万字详解递归与递推

秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 👍目录前言递归斐波那契数列问题的递归爬楼梯问题力扣递归实现…

js 点击图片实现查看大图

js 点击图片实现查看大图 点击图片放大缩小&#xff08;遮罩&#xff09; 截图&#xff1a;点击放大&#xff0c;并显示ico放大镜 代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>点击图片放大缩…

buu 浪里淘沙 1

题目描述&#xff1a; 题目分析&#xff1a; 看了这一大串字符串&#xff0c;发现里面都是由16个字母组成&#xff0c;即 “tonight success notice we example crypto should back space sublim found system morning user the enter ”&#xff0c;并且这16个字母在第一行中…

【Kotlin】DSL 领域特定语言 ① ( apply 标准库函数分析 | 普通匿名函数 | 扩展匿名函数 | 泛型扩展匿名函数 )

文章目录一、apply 标准库函数分析1、apply 函数展示2、apply 函数原型分析函数原型参数和返回值分析3、匿名函数类型分析4、扩展函数回顾5、泛型扩展函数函数类型6、泛型扩展匿名函数7、apply 标准库函数参数分析泛型扩展函数匿名函数 与 普通匿名函数 对比apply 函数参数不是…

登高望远,一文解答 2023 年你最关心的前端热点问题

动手点关注干货不迷路本文预计阅读 25 min&#xff0c;建议先收藏后观看~一、刀光剑影的 2022时光荏苒&#xff0c;这绝不平淡的 2022 年已经走上历史的黄页&#xff0c;新的一年也逐渐看不到故人回首的光影。感谢你对前端技术领域持续关注&#xff0c;我们一直在这里等你。① …

致敬2202年,这些优秀的裁缝们

文 | 鹰钩鼻涕虫2202年过去了&#xff0c;不知道小伙伴们是否和我一样&#xff0c;绝大多数时间处于迷茫之中&#xff0c;除去其他因素不谈&#xff0c;在最后一个月到来之前&#xff0c;NLP 学界的表现似乎不如前几年那样“精彩”&#xff0c;甚至可说是“寡淡”&#xff0c;翻…

spring事务执行流程分析_5(注解形式 advisor等前置对象的生成)

调用beanFactory处理器 依旧进入刷新refresh方法AbstractApplicationContext#refresh -> 在上一篇文章spring事务执行流程分析_4(注解形式 EnableTransactionManagement的作用) 解析EnableTransactionManagement注解就是在此方法进行的,也就是在会注册 名字&#xff1a;i…

简单模拟vue实现数据劫持-视图更新双向绑定-2

接上&#xff0c; new一个实例对象&#xff0c;vc&#xff0c;构造函数动态绑定一个空对象&#xff0c;并在构造函数上绑定静态方法 $on进行事件的注册&#xff0c;$emit抛出执行事件 function observe() {// 利用策略模式-可以快速根据特定的事件&#xff0c;执行多个函数th…

最全总结 | 聊聊 Selenium 隐藏浏览器指纹特征的几种方式!

大家好&#xff0c;我是安果&#xff01;我们使用 Selenium 对网页进行爬虫时&#xff0c;如果不做任何处理直接进行爬取&#xff0c;会导致很多特征是暴露的对一些做了反爬的网站&#xff0c;做了特征检测&#xff0c;用来阻止一些恶意爬虫本篇文章将介绍几种常用的隐藏浏览器…

第九层(9):STL之map/multimap

文章目录前情回顾map/multimap概念差别构造函数赋值操作大小操作函数交换函数插入函数删除函数查找函数统计函数排序规则下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;在学习C/C的路上会越走越远&#xff0c;后…

三线金叉选股公式,均线、成交量、MACD共振

均线、成交量、MACD三线金叉共振选股公式思路还是比较简单的&#xff0c;分别写出均线金叉、成交量的均量线金叉、MACD的快线和慢线金叉&#xff0c;最后用AND连接这三个条件。 一、编写选股公式所需通达信函数 1、EXIST函数 含义&#xff1a;是否存在 用法&#xff1a;EXIST…

OpenGL | 搭建OpenGL 画画框架

一、搭建OpenGL 画画框架3D场景初始化&#xff08;1&#xff09; 代码void Init() {glMatrixMode(GL_PROJECTION); //将当前矩阵指定为投影矩阵,对投影矩阵操作gluPerspective(50.0f, 800.0f / 600.0f, 0.1f, 1000.0f);//创建一个对称的透视投影矩阵&#xff0c;并且用这个…

世界上最大型的 Demo Drop DJ 比赛来到元宇宙!

简要介绍 WBDD 于 2023 年 1 月 26 日至 2 月 8 日进入元宇宙。 认识世界上最大型的 DJ 比赛获胜者&#xff0c;并在元宇宙中伴随着他们的音乐跳舞。 该体验将是线下活动的延伸&#xff0c;由 Mike Williams 担任活动大使。 体验将对所有人开放。 完成 80% 的任务&#xff…

51单片机简易出租车计费系统仿真设计( proteus仿真+程序+报告+讲解视频)

51单片机简易出租车计费系统仿真设计( proteus仿真程序报告讲解视频&#xff09; 仿真图proteus 8.9及以上 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0036 51单片机简易出租车计费系统仿真设计讲解视频1.主要功能&#xff1a;…

MXNet实现图片的样式风格迁移(Style Transfer)

样式迁移就是将一个样式&#xff08;风格&#xff09;应用到一张主图上&#xff0c;改变这张图片的风格&#xff0c;比如说拍摄了一张夜晚的图片&#xff0c;我们可以拿梵高的"星月夜"图片做样式&#xff0c;应用到拍摄的图片上&#xff0c;两者合成后的新图片&#…

linux基本功系列之uptime命令实战

文章目录一. uptime命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示当前系统运行负载情况3.2 显示机器正常运行的时间3.3 显示机器启动时间3.4 关于平均负载的介绍总结前言&#x1f680;&#x1f680;&#x1f680; 想要学好Linux&#xff0c;命令是基本功&#xff0c;企业…

推荐 5 个实用 GitHub 项目

本期推荐开源项目目录&#xff1a;1. AI-For-Beginners2. 一个小巧轻便的 PDF 阅读器3. 开源的智能手表4. 开源内容管理系统5. 程序员海外工作/英文面试手册01AI-For-Beginners之前推荐过 Microsoft 出品的 Web 技术栈课程&#xff0c;本开源项目同样是 Microsoft 的 Azure Clo…

go runtime

go 运行时&#xff0c;也称为 go runtime&#xff0c;类似Java中的JVM虚拟机&#xff0c;不过runtime并非是虚拟机。其本身就是每个 go 程序的一部分&#xff0c;它会跟源码一起编译并链接到目标程序中&#xff0c;即便只写了一个 hello world 程序&#xff0c;这个程序中也包含…

day15 二叉树 | 104、二叉树的最大深度 111、二叉树的最小深度 222、完全二叉树的节点个数

题目 104、二叉树的最大深度 递归法&#xff08;后序&#xff09;&#xff08;必须会&#xff09; // 定义&#xff1a;输入根节点&#xff0c;返回这棵二叉树的最大深度 int maxDepth(TreeNode root) {if (root null) {return 0;}// 利用定义&#xff0c;计算左右子树的最大…