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

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

目录

比特币的诞生

去中心化的信仰

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

双花问题 (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.mzph.cn/bicheng/3823.shtml

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

相关文章

rabbitmq集群配置

1,配置环境变量 MY_POD_NAME:当前Pod的名称 RABBITMQ_ERLANG_COOKIE:设置Erlang Cookie用于节点间通信安全验证,值来自/nfs/rabbitmq/lib/.erlang.cookie文件内容 RABBITMQ_NODENAME:根据Pod名称动态生成了RabbitMQ…

【GO】命令行解析 os 与 flag

目录 OS解析命令 简单用法 进阶用法 flag命令解析 基础实例 1. 自定义数据类型 2. 创建多个 FlagSet 3. 整合环境变量和配置文件 os与flag 关键点解析 程序的作用 示例命令行调用 在 Go 语言中,命令行解析是一项基本且常用的功能,它允许开发者…

微信小程序简单实现购物车功能

微信小程序简单实现购物车结算和购物车列表展示功能 实现在微信小程序中对每一个购物车界面的商品订单,进行勾选结算和取消结算的功能,相关界面截图如下: 具体实现示例代码为: 1、js代码: Page({/*** 页面的初始数…

K8s: 公有镜像中心和私有镜像中心的搭建

公有镜像中心的搭建和使用 1 )在 官方docker镜像中心推送 在 hub.docker.com 上注册账号 (国内一般访问不了,原因不多说) 找到 Create Repository 按钮就行仓库的创建 这样就在官方创建了一个仓库,比如地址为: xx/y-y xx 是我的账户名y-y 是…

数之寻软件怎么样?

数之寻软件是一款功能强大的数据恢复和备份软件,以下是对其特点和功能的详细评价: 一、数据恢复方面: 高效的数据恢复能力:数之寻软件采用了先进的算法和数据恢复技术,能够快速有效地恢复丢失或损坏的数据。无论是文…

Python中matplotlib将多张遥感影像绘制为多个子图并分别设定子图标题的方法

本文介绍基于Python语言的matplotlib模块与gdal模块,读取大量长时间序列遥感影像,分别将其不同时相的图像作为子图,绘制在1个完整的大图中,并分别为每1个子图构建、显示标题的方法。 首先,我们明确一下本文的需求。现有…

Hadoop之路

hadoop更适合在liunx环境下运行,会节省后期很多麻烦,而用虚拟器就太占主机内存了,因此后面我们将把hadoop安装到wsl后进行学习,后续学习的环境是Ubuntu-16.04 (windows上如何安装wsl) 千万强调,有的命令一…

Web前端一套全部清晰 ② day2 HTML 标签之文字排版,图片、链接、音视频链接

虽然辛苦&#xff0c;我还是会选择那种滚烫的人生 —— 24.4.25 HTML初体验 1.HTML定义 HTML 超文本标记语言 超文本 —— 链接 标记 —— 标记也叫标签&#xff0c;带尖括号的文本 标签语法 开始标签 需要加粗的文字 结束标签 标签成对出现&#xff0c;中间包裹内容 <>里…

Rabbitmq消息应答,持久化,权重分配(7)

消息应答 概览 消息应答机制是 RabbitMQ 中确保消息处理的可靠性和一致性的重要机制之一。当消费者从队列中接收到消息并处理完成后&#xff0c;通常需要向 RabbitMQ 发送一个明确的消息应答&#xff0c;以告知 RabbitMQ 消息已经被处理&#xff0c;并可以安全地从队列中移除…

如何消除浏览器SmartScreen对网站“不安全”提示?

面对互联网时代用户对网站安全性和可信度的严苛要求&#xff0c;网站运营者时常遭遇Microsoft Defender SmartScreen&#xff08;SmartScreen&#xff09;提示网站不安全的困扰。本文将剖析SmartScreen判定网站不安全的原因&#xff0c;并为运营者提供应对策略&#xff0c;以恢…

[最新]CentOS7设置开机自启动Hadoop集群

安装好Hadoop后我们可以使用开机自启动的方式&#xff0c;节约敲命令的时间。注意是centOS7版本!!!和centOS6版本区别非常大!!! 1、切换到系统目录 [rootmaster ~]# cd /etc/systemd [rootmaster systemd]# ll total 32 -rw-r--r-- 1 root root 720 Jun 30 23:11 bootcha…

ip https证书360

https证书主要作用是保障网络安全&#xff0c;在http协议的基础上通过SSL/TLS加密技术实现安全通信协议。对客户端以及服务器之间的传输数据进行加密&#xff0c;确保数据的完整性和机密性&#xff0c;维护用户隐私。通过HTTPS协议&#xff0c;我们可以安全地进行在线购物、网上…

【threejs教程7】threejs聚光灯、摄影机灯和汽车运动效果

【图片完整效果代码位于文章末】 在上一篇文章中我们实现了汽车模型的加载&#xff0c;这篇文章主要讲如何让汽车看起来像在运动。同时列出聚光灯和摄像机灯光的加载方法。 查看上一篇&#x1f449;【threejs教程6】threejs加载glb模型文件&#xff08;小米su7&#xff09;&…

Kubernetes学习-核心概念篇(一) 初识Kubernetes

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Kubernetes渐进式学习-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 什么是Kubernetes 3. 为什么需要Kubernetes 3.1. 应…

【高校科研前沿】东北地理所在遥感领域顶刊RSE发布中国主要红树植物群落遥感分类成果

目录 01 文章简介 02 研究内容 03 文章引用 01 文章简介 论文名称&#xff1a;Mangrove species mapping in coastal China using synthesized Sentinel-2 high-separability images&#xff08;基于Sentinel-2高分离度图像的中国沿海红树群落制图&#xff09; 第一作者及…

口才培训需要多久才能看到成效?

口才培训需要多久才能看到成效&#xff1f; 口才培训需要多久才能看到成效&#xff0c;这个问题的答案因个体差异而异&#xff0c;受到多种因素的影响。以下是对此问题的详细分析&#xff1a; 首先&#xff0c;每个人的口才基础和学习能力不同。有些人可能天生具备良好的口才…

面试C++(基础篇)- C++是如何工作的?

1:C是如何工作的&#xff1f; 首先以一个最简单的Hello word程序入门来看&#xff1a; #include <iostream>int main() {std::cout << "Hello World!\n"<< std::endl;std::cin.get(); }1&#xff1a;#include是预编译命令&#xff0c;发生在编译…

WoodMart主题下载:为您的电商网站带来自然而优雅的购物体验

在电子商务的激烈竞争中&#xff0c;一个设计精良、用户友好的在线商店是吸引和保留客户的关键。WoodMart主题&#xff0c;作为一款专为Shopify平台设计的高级主题&#xff0c;以其自然美学和强大的功能&#xff0c;帮助您的商店在众多竞争对手中脱颖而出。 [WoodMart主题的核…

开源框架-链路追踪(SkyWalking)

SkyWalking 极简入门 | Apache SkyWalking 开发环境配置&#xff1a; -javaagent:D:\xxxxx\yyyy\skywalking-agent.jar -DSW_AGENT_NAMEspringboot-xxxx-demo -DSW_AGENT_COLLECTOR_BACKEND_SERVICES127.0.0.1:11800

多行Textview 计算切分后的长度,并回退长度

实现类似的效果&#xff0c;一个多行的 textview&#xff0c; 如果赋值一个超长的字符&#xff0c;尾部长度回退部分&#xff0c;并添加 ... 最后添加一个详情按钮。 如果不超长则不显示详情 效果如图&#xff1a; 获取截断之后的字符长度 fun getLimitedCharacterCount(textV…