搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
如何在Windows server 2012配置Web服务器_windows server 2012搭建web服务器
2
php做网站步骤_怎么制作php网站
3
零基础10 天入门 Web3之第1天
4
vue3 element plus el-table封装(一)_elemtnplus 封装table的时候 表格的每一行的按钮怎么写
5
Rust 学习笔记_rust编程语言 笔记
6
Notes/Domino Fix List
7
Ambari集群部署全流程_ambari 部署
8
PyCharm配置anaconda环境
9
基于Python实现的数据可视化案例_pycharm数据可视化图表直方图案例
10
二叉树——堆的排序 TOP-K算法_k-top算法
当前位置:
article
> 正文
区块链技术原理_区块链技术细节
作者:很楠不爱3 | 2024-06-13 14:11:12
赞
踩
区块链技术细节
区块链技术原理
我尽量不涉及太多细节,把区块链大概的工作原理用尽可能简单的语言描述一下,相信你能很快对区块链有所了解。
以比特币的区块链为例,你可以把区块链想象成一个比特币的公共账本,这个账本:
1.存放在互联网的各个比特币节点上,每个节点都有一份完整的备份
2.里面记录着自比特币诞生以来的所有比特币转账交易
3.账本是分区块存储的,每一块包含一部分交易记录。每一个区块都会记录着前一区块的id,形成一个链状结构,因而称为区块链
4.当你要发起一笔比特币交易的时候只需把交易信息广播到p2p网络中,矿工把你的交易信息记录成一个新的区块连到区块链上,交易就完成了。
这里有几个问题:
1.如何保证用户有足够的余额,例如你只有十个币,而你居然发起了一笔转20个币的交易怎么办。
这个问题很好解决,因为区块链上记录了所有的比特币交易记录,只需要回溯所有的和你账户相关的历史交易就能知道你这个账户上到底有多少余额,余额不对矿工是会拒绝记录你的交易的。
由此你可能又会产生一个疑问,那么最初的比特币是从哪里来的呢?
最初的比特币是由系统奖励给记录区块的矿工的。每一个区块在生成的时候就会在生成这个区块的矿工的账户上生成一定数量的新比特币作为奖励。
2.如何保证你的账户不被冒名顶替
这问题也很好解决,用数字签名技术就好了。每个比特币账户都有公钥和私钥。你发起交易的时候用私钥对交易信息签名,矿工收到信息后用公钥检查一下签名就好了。
3.那么多矿工,如何决定该由哪个矿工生成下一个区块?
解决方案是这样的:
中本聪设计了一个数学问题,这个数学问题会耗费大量的计算机cpu时间才能得出答案,同时每一次得出的答案都会作为下一次计算的初始条件进行技术。全世界的矿工一起来计算这个问题,谁先得出答案,他就可以用这个答案生成一个新的区块,再广播到网络中。收到这个新块数据的矿工会立即停止当前的计算,用新块里的数据重新进行下一次计算。这就是所谓的“挖矿”。矿工产生的区块一旦被网络接受,他就能获得一笔比特币作为酬劳。
这时要考虑一种情况:如果同时有两个矿工各自得到一个正确答案,并各自生成了一个区块广播出去会发生什么呢?
这时候在区块链上同一个位置就有了两个区块,所谓的“分叉”就出现了。
分叉是绝对不允许的,所以当矿工发现区块链分叉之后,会选择最长的一条继续计算,短的那条区块链会被丢弃。
仔细思考下这个体系,你会发现它几乎无懈可击。首先你不能凭空造出比特币,只能挖矿获得;其次你无法伪造交易,无法控制不属于你的账户。一旦交易被确认,几乎无法取消。我这里说“几乎”,是因为有“51%攻击”的存在。51%攻击条件非常苛刻,这里就不扩展开讲了。感兴趣的朋友可以自行查阅相关资料。
----------------------
好吧,现在你应该大概明白了区块链是怎么回事。一个公开透明的可信赖的帐务系统,听起来还不错,是吧? 不过,我想告诉你区块链远远不止是一个帐务系统那么简单,它的意义之重大、用途之广泛,一旦你意识到,你一定会像我一样激动万分的。
区块链技术使得DAC成为可能。DAC是一种能够从根本上颠覆人类社会组织模式的东西。我相信它对社会的影响,会超过工业革命,成为互联网给世界带来的最为深刻的变革。
作者:Alex Zhao
链接:http://www.zhihu.com/question/27687960/answer/38301765
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/713212
推荐阅读
article
micropython
做中继_【
树莓
派
Pico
测评】-
USB
CDC
串口
通信(
BSP
编译,非Mic...
【
树莓
派
Pico
测评】-
USB
CDC
串口
通信(
BSP
编译,非
MicroPython
)[复制链接]我的前几个贴子中有介...
赞
踩
article
ElasticSearch
学习
笔记总结(四)
_
es
分片
...
一、ES继承 Spring Data 框架二、SpringData 功能集成三、ES SpringData 文档搜索四、...
赞
踩
article
Linux
解压编译
Tfa
/
bootloader
_
arm
scmi
client...
1.解压编译
Tfa
1.1
Tfa
介绍Trusted Firmware-A(TF-A)是用于 Arm A-Profile...
赞
踩
article
支线任务
-----
Proteus
仿真
_
proteus
代码
写
在
哪...
我之前都没怎么用过,趁着寒假有空摸一把。1.新建工程新建工程很简单,不要勾选Pcb或者其他的东西,一路默认就好了。左边的...
赞
踩
article
SortTable
.
js
+
vxe
-
table
实现
多条批量
排序
...
环境: 功能:
实现
表格拖动
排序
,支持单条
排序
,多条
排序
实现
思路: 官网只有单条
排序
的例子,网上也都是简单的使用,想要实...
赞
踩
article
【论文笔记】《Learning
Entity
and
Relation Embeddings
for
...
学习实体和关系嵌入在完成知识图谱中的应用1 题目2 摘要3 问题定义4 方法及原理4.1 TransE模型[2]4.2 ...
赞
踩
article
linux
读取
SOC
寄存器
(
物理
内存
)
的
机制方法_
物理
内存
读取
...
转载devmem读写
物理
内存
和devkmem
读取
内核虚拟
内存
,如有侵权请联系我删除在日常工作中常有直接操作
寄存器
或者某一...
赞
踩
article
idea
git
提交忽略文件...
1.安装
git
ignore插件:file->settings->Plugins,搜索ignore,点击安装2.点击项目名...
赞
踩
article
树莓
派
4B实现和
电脑
之间
的
UART
串口
通信_
树莓
派
4b
串口
通信
电脑
...
效果:连接pc机之后用pc端
的
串口
助手进行数据收发,发现打印出来
的
字符串全是乱码,而且有时候传送同样
的
数据打印出来
的
信息...
赞
踩
article
Linux
SPI
驱动
分析(1)—
结构
框架_
spi
transfer
...
目录1、总线互联拓扑
结构
1.1、硬件拓扑1.2、软件抽象2、
SPI
软件
驱动
层次3、数据
结构
3.1、
spi
_contro...
赞
踩
article
基于
定时器
的
PWM
ADC SPI
UART
IIC 外部中断
定时器
RCC
时钟系统_
timer
a...
在这个游戏中,你们约定了信件的格式(比如,信的开头要写上对方的名字,信的结尾要有自己的签名),以及你们会在特定的地点交换...
赞
踩
article
【
HAL
库】
STM32F407
----
内部
Flash
的读写_
stm32f407
flash
...
【
HAL
库】
STM32F407
----
内部
Flash
的读写_
stm32f407
flash
stm32f407
flash
...
赞
踩
article
3.21
PAT1059
乙级
python
(一个
测试点
超时)
_
pat1059
python
...
C语言竞赛import mathdef prime(k): up = int(math.sqrt(k)+1) if k%...
赞
踩
article
rocketmq
面对
消息
积压的处理_
rocketmq
消息
堆积
解决方案
...
1.观察消费者延迟
消息
堆积
情况2.查看单条
消息
的处理时间,查看启动的实例数,预估下每秒处理数据量3.适当增加broker...
赞
踩
article
PAT
乙级
1059
.
C
语言
竞赛
(
C
语言
)_
1059
c
语言
竞赛
...
PAT
乙级真题题解目录#in
c
lude <stdio.h>#in
c
lude <math.h>ty...
赞
踩
article
1、在
windows
中用
xshell
远程访问
linux
SSH访问失败的原因_
windows
不能访问l...
环境:
windows
操作系统和ubuntu操作系统,两台电脑,并非
虚拟机
前提条件:两台电脑能够相互ping通出现问题:x...
赞
踩
article
XSS
常用
payload
整理(持续更新)
_
写出一句
xss
基本的
payload
s...
XSS
常用
payload
_
写出一句
xss
基本的
payload
s写出一句
xss
基本的
payload
s ...
赞
踩
article
公众
号
python
搜题
_免费
搜题
公众
号
python
...
【多选题】以下哪项属于 linear-gradient 属性的参数值( )A. 起点 B. 渐变点 C. 渐变线 D. ...
赞
踩
article
Linux
驱动
API说明及使用_
调用
驱动
函数
...
本文档是自己在
驱动
开发过程中所使用到的api,本文档将会跟随本人开发持续更新,大家有想知道的哪一方面的知识,欢迎留言,我...
赞
踩
article
实验6:
独立
看门狗
实验_实验6编写
看门狗
外设
程序
:
1、
独立
看门狗
实现
功能
:
主
程序
中
设置
定时
喂狗
,按...
一、
独立
看门狗
简介
独立
看门狗
(宠物狗);窗口
看门狗
(警犬)。
独立
看门狗
:就是一个12位的递减计数器(最大值为0xFF...
赞
踩
相关标签
micropython做中继
elasticsearch
学习
java
嵌入式
linux
解压
Tfa
bootloader
单片机
javascript
vue.js
前端
知识图谱
机器学习
人工智能
idea
git
Linux SPI
嵌入式硬件
c语言
c++
stm32
Flash
HAL库