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

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

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

为什么要了解区块链?

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

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

区块

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

从上面的图可以看到,每个区块记录了position、nonce、data,然后将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场景,用于节省对账和清算成本,减少人为错误的发生。联盟链对安全性能要求比公链高。

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

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

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

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

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

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

web3小白入门:区块链的了解相关推荐

  1. 小白入门区块链技术与应用展望(有参考文献)

    区块链技术的技术原理与应用展望      区块链技术是一种去中心化,去信任的分布式数据库技术方案.该数据库由参与系统的所有节点集体维护,具有去中心化,不可篡改,透明,安全等特性.随着比特币数字加密货币 ...

  2. 【区块链 | 前端】前端开发人员入门区块链的最佳实践

    前端开发人员入门区块链的最佳实践 一. 建立信仰 从技术入门一个行业通常是漫无目的,个人认为正确的入行区块链的方式是去了解他的背景,是去建立自己信仰的,尤其身处一个刚起步就被扼杀的行业,我们每个人都是 ...

  3. 技术沙龙|学习路径+案例分享,3小时快速入门区块链开发(西安)

    2019独角兽企业重金招聘Python工程师标准>>> 2018年3月开始,HiBlock区块链社区在全国多个城市发起区块链技术沙龙活动,目前已陆续在北京.杭州等地开展,4月22日我 ...

  4. Web3.0,区块链后花园的姹紫嫣红

    > 本文是<区块链应用开发实战>一书的译者序 在Web 之前,是互联网. 互联网发明于20 世纪70 年代,正值美苏冷战的高峰期. 当时,美国有一台中央计算机控制其核武器.美国政府担 ...

  5. 为什么Web3.0需要区块链

    撰文:Mike Tang, Lester Li 前言 本文是<Web3.0 Explorer>系列的第二篇,第一篇是:<对Web3.0概念的梳理>.本文也会承接上一篇的理念继续 ...

  6. 入门区块链游戏必备知识和注意事项(第一期)

    我们会分几期为玩家介绍整个链游圈的情况和提供数据: 第一期内容:介绍链游情况.必备知识和注意事项. 第二期内容:国外自媒体注册方法和工具使用,各个钱包的使用 第三期内容:链游避坑指南和如何挑选链游项目 ...

  7. 戏人看戏--什么是Web3.0?区块链又是什么?如何写一个web3.0的界面?

    杂谈 有人反馈说大数据现在太可怕了,上午搜的下午在空间的广告里就看到了-- 那么有什么办法可以彻底解决这个问题?Web3.0! 前段时间被炒的沸沸扬扬的比特币也是区块链的产物 正文部分:什么是Web3 ...

  8. 什么是Web3?为什么说通往Web3的是区块链?

    Web3作为一种愿景,似乎是所有区块链行业项目的营销点,但多人说自己的项目将通往Web3,但很少有人能说清什么是Web3. 互联网的前两个时代 在互联网的第一个时代--从1980年代到2000年代初, ...

  9. Web3.0、区块链和韭菜

    架构师指南 我们都是架构师! 架构未来,你来不来? 因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 最近在偶然在博客平台上看到这篇文章, ...

最新文章

  1. 解决:Error: Insufficient values in manual scale. 5 needed but only 4 provided.Run `rlang::last_error()
  2. python3.7安装-Linux安装python3.7
  3. unittest单元测试框架总结
  4. FastDFS集群部署
  5. c++反汇编与逆向分析技术揭秘_C++反汇编与逆向分析技术揭秘
  6. SQL Server 使用OPENROWSET访问ORACLE遇到的各种坑总结
  7. 给刚博士毕业的年轻学者9点建议,最后一条:抓紧结婚,生娃!
  8. retrofit框架学习(二)----retrofit封装
  9. android studio生产签名文件,Android Studio生成keystore签名文件步骤讲解
  10. 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
  11. vue 改变组件data_为什么vue组件中data必须用函数表达?
  12. 倒立摆源代码仿真matlab/simulink神经网络PID(模糊)控制校正LQR 神经网络 倒立摆控制 倒立摆LQR控制仿真 单级倒立摆的模糊控制 旋转倒立摆
  13. 机器学习实战 KNN实战
  14. CentOS安装Nginx 以及日志管理
  15. Unity3D插件 Doozy UI 学习(一):打开一个面板
  16. 文本分类模型中的“蒸”功夫
  17. 计算机专业必读哪两本经典书籍?
  18. 用二维向量的思维通俗理解复数和虚数
  19. R Z-score结果
  20. iOS Xcode 打包IPA问题集锦

热门文章

  1. Android Studio Logcat过滤不需要的打印
  2. 小白如何购买阿里云服务器
  3. 我们的管理:战略管理
  4. 整天都说注解注解注解,你们了解注解吗?来自——面试官的灵魂拷问
  5. [乐意黎原创] WebPack 打包时抛Uncaught Error: Cannot find module '.\dist\bundle.js'
  6. 脚本实现监控APP的专项数据:CPU 内存 电量 流量
  7. 买域名,怎么做才能质量好又便宜?
  8. Python、Selenium实现问卷星自动填写(内含适配个人问卷的方法)
  9. navicat and connection is being used
  10. Guitar Pro中如何添加与删除音轨