从零入门区块链和比特币(第一期)

news2024/11/19 19:28:49

欢迎来到我的区块链与比特币入门指南!如果你对区块链和比特币感兴趣,但不知道从何开始,那么你来对地方了。本博客将为你提供一个简明扼要的介绍,帮助你了解这个领域的基础知识,并引导你进一步探索这个激动人心的领域。

目录

比特币的诞生

去中心化的信仰

去中心化数字货币实现的挑战

双花问题 (double spent)

支付中介机构

去中心化的痛点

分布式系统的局限性

痛点的解决方案

技术难点:

等价问题:

传统解决方案:

天才的PoW

区块链的本质

共享账本:

共识机制:

区块链的社会价值

分布式信用:

分布式基础设施:

去中介化:

加密货币的理解误区

监管部门的两难

案例分析


比特币的诞生

由一位化名为中本聪(Satoshi Nakamoto)的人或团队于2008年提出,并于2009年发布的一种加密货币。其诞生背景可以追溯到对现有金融体系的不满以及对去中心化、安全、透明的数字货币的追求。

中本聪在2008年发表了《比特币:一种点对点的电子现金系统》白皮书,https://bitcoin.org/bitcoin.pdf提出了一种通过去中心化的方式实现电子交易的方法。随后,2009年1月3日,中本聪挖出了比特币网络的创世区块(Genesis Block),这标志着比特币网络的正式启动。

比特币的诞生是对传统金融体系(布雷顿森林体系)的一种反思和尝试,它试图通过区块链技术和密码学方法来解决传统货币和金融系统存在的问题,如中心化、信任问题、高额手续费、跨境支付等。比特币的诞生开启了加密货币时代的序幕,也催生了许多其他加密货币和区块链项目的发展。

去中心化的信仰

自从布雷顿森林森林体系瓦解之后,各国央行的货币发行不再受到约束,每次遇到危机总是用一个未来更大的危机去覆盖。 谁来监管央行的行为?

但是人民的劳动成果不该被央行无节操制造的通货膨胀剥削。 中心化一定会沦为人治,那么就让所有人来一起决定未来的走向。 游戏的规则必须由程序执行,并且人力无法干预。

总的来说,去中心化的信仰源于对中心化体系的不满和对更公平、透明、高效的系统的追求。然而,去中心化并非对所有问题都有完美的解决方案,也会面临一些技术和实践上的挑战,需要在实践中不断完善和发展。

去中心化数字货币实现的挑战

双花问题 (double spent)


小明拿了编号12345的10块钱买了10块钱的糖,又买了10块钱的饼干,并且都成功了。
小明拿了编号12345的10块钱,然后自己又仿制了一张同样的10块钱,然后用真的10块钱和假的10块钱买了10块钱的糖和10块钱的饼干。


支付中介机构


对于第一种情况,小明要买东西的时候,必须通过中介先交10元钱,然后中介确认商店发货,再把钱支付给商店。小明无法变出第2个10元在买饼干前交给中介。
对于第二种情况,中介检查出了小明第2个10元是假钱。

去中心化的痛点

没有支付中介帮助完成交易确认和记账 要求能实现点对点交易 交易记录不能被篡改 系统要求24小时连续运行,可用性不依赖特定成员。 如何升级维护,兼容性如何保障?

分布式系统的局限性

无解的CAP问题

C(onsistency):一致性!账本要一致。

A(vailability):可用性。24小时可用。

P(artition tolerance):分区容错性。某些节点因为停电、重启、软件版本不一致等引发各种服务不可提供。

分布式系统解决方案的一个常见大招

最终一致性 比如电商的订单系统

痛点的解决方案

所有参与节点一起记账 通过广播方式所有交易被账本记录确认

通过密码学确保交易记录篡改成本极高。

类似p2p模式,所有节点平等,没有特权节点,每个节点都拥有独立运作的所有功能。

通过共识升级,社区委员会负责技术评审和紧急状况处理。

技术难点:

分布式环境下如何取得一致性

等价问题:

拜占庭将军问题。 11位拜占庭将军去打仗,他们各自有权力观测敌情并作出判断,进攻或撤退,那么怎么让他们只用传令兵达成一致呢?投票可以解决问题,但是投票结果在通讯传输途中被篡改怎么办? 分布式数据库最糟糕的问题绝对不是写入或者读取失败,而是状态不同步,还感知不到。这个的后果就是正确性不能保证,那程序就没有任何意义了。

传统解决方案:

两/三阶段提交(需要中心化协调者)

Paxos(分布式,理解困难,实现困难,而且无法解决作弊问题)

天才的PoW

分布式系统常用的技术手段,在负载极大,且没有实时性要求的场合,把同步问题变成异步问题。 交易本身并没有实时性的要求,想想银行的转账,商场的收银台,所以只要时延在接受范围内就OK。 作假成本巨大,即使伪造能让其它节点的数据也需要巨大成本。 算力面前人人平等,没有哪个节点拥有特权,除非算力碾压。 参与者越多系统越稳定可靠。更多的参与者意味着造假者需要更大的成本。

区块链的本质

区块链的本质是建立在共享账本和共识机制之上的。让我们深入了解这两个方面:

共享账本:

在区块链中,所有参与者都可以获得账本的副本,这个账本是公开的,每个人都可以查看它。
所有交易都被记录在这个账本上,形成一个连续的、不可篡改的交易历史记录。
这个账本的副本被分布在网络中的多个节点上,因此即使某个节点发生故障,也不会导致交易数据的丢失。

共识机制:

区块链网络需要一种机制来决定哪些交易被记录在账本上,并确保所有节点上的账本保持一致。
共识机制定义了谁有权利负责记录新的交易以及如何确保所有节点在记录交易时达成一致。
记录不一致的时候,共识机制也定义了如何解决这些不一致性,并以什么为基准来进行修复或者选择主链。

共享账本和共识机制共同构成了区块链技术的核心。共享账本确保交易记录的透明性和不可篡改性,而共识机制则确保了网络的安全性和一致性。
共识机制的实现可以采用多种方式,如工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、拜占庭容错(Byzantine Fault Tolerance,BFT)等。不同的共识机制有不同的优缺点,适用于不同的场景和需求。
区块链的共识机制是网络中各个节点之间达成一致的关键,它确保了网络的稳定性和安全性,使得区块链可以在去中心化的环境下运行,并且保持高度的可信度。

区块链的社会价值

分布式信用:

区块链技术的核心之一是建立分布式信用系统,不再依赖单一机构来掌控信用。所有信用相关行为都被记录在不可篡改的账本上,这确保了信用的透明性和可靠性。因此,人们可以更加信任这个分布式信用体系,而不必依赖单一机构的评定。

分布式基础设施:

区块链技术可以实现分布式业务平台,其中平台的基础设施与业务运营分离,类似于IPFS(InterPlanetary File System)的分布式文件存储。这种分离可以提高系统的灵活性和可扩展性,同时降低了单点故障的风险。

去中介化:

区块链技术减少了中介的数量,使得交易可以直接在参与者之间进行,而不需要经过中介机构。这降低了交易成本和时间,提高了资金流动的速度和可靠性。

更低的监管成本:如果所有交易都上链,监管成本将大大降低。例如,挪用扶贫资金等违法行为将难以实施,因为所有交易都被记录下来,形成不可篡改的证据链。

加密货币的理解误区

加密是指货币本身使用的技术,而非交易行为。交易数据全网公开可查: https://blockchain.info/ 匿名只是比特币本身没有要求身份绑定,交易行为会暴露你的信息,而且账本公开,证据链天生完整。

监管部门的两难

监管部门面临的困境是,承认加密货币的合法地位可能对法币体系造成重大冲击,但不承认合法地位又会导致监管困难。因此,监管部门需要平衡监管与创新之间的关系,采取合适的政策措施来应对加密货币的发展。

案例分析

著名的暗网网站Silk Road因为登陆代码漏洞暴露IP,除比特币被没收外,还提供了大量案件线索。在该案件中,除了比特币被没收外,区块链技术还提供了大量的案件线索,因为交易记录在区块链上是公开可查的,这为执法机构提供了有力的证据。这个案例突显了区块链技术在追踪犯罪活动和提供透明度方面的潜在价值。

结语:看我这么努力的份上,麻烦点赞收藏加关注,有问题在评论区call爆我,我一定会改的。谢谢!

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

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

相关文章

使用RTSP将笔记本摄像头的视频流推到开发板

一、在Windows端安装ffmpeg 1. 下载ffmpeg:下载ffmpeg 解压ffmpeg-master-latest-win64-gpl.zip bin 目录下是 dll 动态库 , 以及 可执行文件 ;将 3 33 个可执行文件拷贝到 " C:\Windows " 目录下 ,将所有的 " .dll " 动态库拷贝到 " C:\Windows\Sy…

java集合框架中的Map和Set的使用方式

目录 一、Map的使用方法说明 put(): GetOrDefault(): containsKey()与containsVal(): keySet()与m.values(): 二、Set的使用方法说明 add(): iterator()---->迭代器 一、M…

19 做好微服务间依赖的治理和分布式事务

在前两讲里,分别从微服务的对外接口、消息消费以及微服务自身的相关编码规范上阐述了“防备上游、做好自己”这两个准则如何落地。 在本讲里,将会讲解为什么要“怀疑下游”,以及有哪些手段可以落地此条准则。此外,还会介绍在进行…

每日OJ题_DFS爆搜深搜回溯剪枝②_力扣526. 优美的排列

目录 力扣526. 优美的排列 解析代码 力扣526. 优美的排列 526. 优美的排列 难度 中等 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 &#…

Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

1.首先说明开发场景 *就是对该json格式数据传输到后台 后台实体类 import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.sp…

Linux搭建靶场

提前准备: 文章中所使用到的Linux系统:Ubantu20.4sqlilabs靶场下载地址:GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based. 一. 安装phpstudy phpstudy安装命令:wget -O install.sh h…

《MySQL对库的基本操作》

文章目录 一、查看数据库列表查看数据库中的所有表想知道当前处于哪个数据库里 二、创建一个数据库三、删除一个数据库知道两个集1.字符集2.校验集修改数据库的字符集和编码集 不同的校验码对数据库的影响四、数据库的备份与恢复注意事项:备份数据库中的表 总结 一、…

Lan仿朋友圈系统源码,用于表白墙等微商相册,商品图册等

这是一套基于PHP开发的Lan仿朋友圈系统开源,适用于表白墙、微商相册、商品图册等场景。 下 载 地 址 : runruncode.com/php/19750.html 主要功能包括: - 支持前端用户注册和消息提示。 - 用户注册时可设置必须验证邮箱账号,以…

【C++】学习笔记——类和对象_5

文章目录 二、类和对象14. 日期类的实现15. const成员16. 取地址重载17. 再谈构造函数初始化列表 18. explicit关键字19. static成员 未完待续 二、类和对象 14. 日期类的实现 上一篇我们已经大致将日期类的重要功能都给实现了,这节将会对日期类进行完善&#xff…

Linux 端口复用:SO_REUSEPORT

文章目录 前言一、BSD socket1.1 简介1.2 SO_REUSEADDR1.2.1 3-way or 4-way handshake1.2.2 SO_LINGER 1.3 SO_REUSEPORT 二、Connect() Returning EADDRINUSE三、Multicast Addresses四、Linux4.1 Linux < 3.94.2 Linux > 3.9 五、Linux SO_REUSEPORT socket option六、…

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

【吊打面试官系列】Java高并发篇 - 为什么 wait 和 notify 方法要在同步块中调用?

大家好&#xff0c;我是锋哥。今天分享关于 【为什么 wait 和 notify 方法要在同步块中调用&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 为什么 wait 和 notify 方法要在同步块中调用&#xff1f; Java API 强制要求这样做&#xff0c;如果你不这么做&#…

论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器

论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器 优势&#xff1a; 1.针对CNN和Transformer提出了通用的计算映射&#xff08;共用计算单元&#xff0c;通过不同的映射指令&#xff0c;指导数据通路和并行计算&#xff09; 2.非线性与归一化加速单元&#xff0…

windows和mac 电脑 部署Ollama

官网地址&#xff1a;https://ollama.com/ github地址&#xff1a;https://github.com/ollama/ollama 一、windows下 https://github.com/ollama/ollama 安装大模型 ollama run llama3 下载的大模型地址&#xff1a; C:\Users\dengg\.ollama 4.34G

数据结构––队列

1.队列的定义 2.队列的分类 2.1循环队 2.2链式队 3.队列的实现 3.1循环队 3.1.1声明 typedef int QDataType; #define MAXSIZE 50 //定义元素的最大个数 /*循环队列的顺序存储结构*/ typedef struct {QDataType *data;int front; //头指针int rear; //尾指针 }Queue;…

YOLOv5入门(二)处理自己数据集(标签统计、数据集划分、数据增强)

上一节中我们讲到如何使用Labelimg工具标注自己的数据集&#xff0c;链接&#xff1a;YOLOv5利用Labelimg标注自己数据集&#xff0c;完成1658张数据集的预处理&#xff0c;接下来将进一步处理这批数据&#xff0c;通常是先划分再做数据增强。 目录 一、统计txt文件各标签类型…

第49期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

【华为 ICT HCIA eNSP 习题汇总】——题目集19

1、&#xff08;多选&#xff09;以下选项中&#xff0c;FTP 常用文件传输类型有&#xff08;&#xff09;。 A、ASCII 码类型 B、二进制类型 C、EBCDIC 类型 D、本地类型 考点&#xff1a;应用层 解析&#xff1a;&#xff08;AB&#xff09; 文件传输协议&#xff08;FTP&…

Redis源码学习记录:列表 (ziplist)

ziplist redis 源码版本&#xff1a;6.0.9。ziplist 的代码均在 ziplist.c / ziplist.h 文件中。 定义 ziplist总体布局如下&#xff1a; <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlend> zlbytes&#xff1a;uin…

Linux 的静态库和动态库

本文目录 一、静态库1. 创建静态库2. 静态库的使用 二、动态库1. 为什么要引入动态库呢&#xff1f;2. 创建动态库3. 动态库的使用4. 查看可执行文件依赖的动态库 一、静态库 在编译程序的链接阶段&#xff0c;会将源码汇编生成的目标文件.o与引用到的库&#xff08;包括静态库…