区块链相关问题 理解

本博客针对区块链的部分问题进行详解,希望帮助大家对于区块链有一个更好的理解

1,如果散布虚假交易,怎么整?(谁欠我XXX比特币)

1,可以发起虚假交易,但是很难被全网的节点接收并写入区块链中。因为发起交易是需要进行身份验证,区块链一般发起的交易内容入下,从我的账户转多少比特币给谁。比如我转给张三10个比特币,这个过程需要使用交易发起者的私钥加密加密过后会形成秘文,然后将交易消息、秘文、公钥一起广播,其余节点收到消息之后会对于消息的合法性进行验证别人通过我的公钥解密秘文如果解密得到的明文和发布的消息一致,就验证我的身份。如果不一致,这条消息就会被舍弃。

       举例来说,有人申报了一笔交易:地址 A 向地址 B 支付10个比特币。怎么知道这个申报是真的,申报人就是地址 A 的主人?比特币协议规定,申报交易的时候,除了交易金额,转出比特币的一方还必须提供以下数据。比特币发起交易应该只能是,转出方发出转账交易,比如,我要转给A 10比特币,而不是发出交易,A 欠我10个比特币。

需要提供的数据

  • 上一笔交易的 Hash(你从哪里得到这些比特币,这个是根据比特币的内部UTXO结构进行验证)
  • 本次交易双方的地址
  • 支付方的公钥
  • 支付方的私钥生成的数字签名

验证这笔交易是否属实,需要三步。

  • 第一步,找到上一笔交易,确认支付方的比特币来源。(UTXO结构)
  • 第二步,算出支付方公钥的指纹,确认与支付方的地址一致,从而保证公钥属实。
  • 第三步,使用公钥去解开数字签名,保证私钥属实。

补充知识

    *私钥经过运算得到公钥,公钥的后160位是钱包地址。根据协议,公钥的长度是512位。这个长度不太方便传播,因此协议又规定,要为公钥生成一个160位的指纹所谓指纹,就是一个比较短的、易于传播的哈希值。160位是二进制,写成十六进制,大约是26到35个字符,比如 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2。这个字符串就叫做钱包的地址它是唯一的,即每个钱包的地址肯定都是不一样的。

2,发布虚假交易是需要很强的计算能力举一个例子,假设 250 名矿工组成一个团队,占网络整体挖掘力的 25%。现在那些矿工决定通过发布无效(虚假)交易来从中受益。首先解决密码难题的那个人会提出一个包含无效交易的区块,另外 249 人会接受它并一同开始增加更多的区块。与此同时,剩余的 75%的矿工不会接受该块。相反,他们会添加一系列有效块到链中。拥有这个团队挖掘能力的三倍,75% 的计算能力为区块链分支增加新的区块比其快三倍。这将给他们最长的链,被所有人所接受。另一条链将变得毫无价值,没有人会接受它。为了成功提出一个无效区块并将其添加到最长的区块链中,需要控制 51%的采矿能力。任何不足之处,恶行都将失败。

2,比如我网上购物,钱打过去了,但是不给我发货

  • 线上问题难以解决线下问题只能根据店家的信用进行购物,如果存在第三方平台,可以进行平台投诉。如果,商家意识到自身的错误,把钱退换给你,也不是利用回滚退钱,因为代价很大。而是通过发起新的一笔交易,将钱转给你。

3,我购买商品,店家发货了,但是我让交易回滚,不认账

  • 这个利用的是商品发货需要长途运输时间的天生的优势。比如,今天下单,但是交易回滚之后,第二天,店家发现这笔钱并没有上链,所以拒绝给我邮寄商品。
  • 使用智能合约来执行整个过程,将200比特币存储到账户中,如果在规定的日期内没有收到快递,将只能能合约接入快递公司的查询网站,这笔钱就会退还。因为智能合约不受到个人的操控,完全是程序的自我执行的过程,因此可以保证第三方可信,但是需要注意一个大的前提是合约不存在漏洞,被别人利用。
If parcel [parcel number] is delivered by Saturday, pay ₿200 to [my account]. Otherwise, return the ₿200 to [your account] (如果包裹 [包裹编号] 在周日送达,则向 [我的账户] 支付 ₿200 。否则就将 ₿200 返还至 [你的账户] )

4,创建钱包地址

1,基于平台创建地址,安全性未知,比如https://login.blockchain.com/zh/#/home

2,在本地创建全节点

3,相关内容

  • https://www.bilibili.com/video/BV1TE411q7mW
  • https://bitcoin.org/zh_CN/download
  • https://www.bilibili.com/read/cv4078068
  • 比特币如何开户

5,比特币的可分割特性

目的:采用和鼓励大家使用和购买比特币,并进而替代一般货币。比特币可分割小至0.00000001 BTC的单位。在未来,如果情势所需,比特币的分割性则可以增加到1000亿个更小的单位,甚至更多。这是因为比特币协议和其相关软件体系可以修改成能够处理更小的单位。

6,"同步"是什么意思?为什么同步要花很长时间?

只有像Bitcoin Core这样的全节点型客户端才需要较长的同步时间。从技术上来说,同步是一个下载并核实网络上所有以往比特币交易的过程。某些比特币客户端需要知道所有以往的交易才能计算你比特币钱包的可用余额并完成新的交易。这一步骤非常消耗资源,需要有足够的带宽以及能存放整个块链的空间。为了保持比特币的安全性,需要有足够的用户使用完全节点型客户端,因为他们起着确认和中继交易的作用。

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

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

相关文章

区块链的相关知识点

1,密码学原理 密码学原理 1,collision resistance 哈希函数 ,目前还是很安全的,没有找到任何不同的内容其哈希是一致的情形。哈希碰撞(这个在数学上面是没法证明的,都是日常的实践表明,无法找…

使用MAC 编译合约的时候报错:

编译报错的显示内容如下: Error: EACCES: permission denied, mkdir /Users/chy/Documents/ipfslearn/ipfs_eth_img/client/src/contracts 最简单的解决方法 原因分析:执行的权限不够 解决办法:升级权限 使用命令 chmod 777 项目的文件夹使…

最新,使用truffle框架之后,安装ipfs的api包文件的命令变化

原因 项目文件路径变化了,不是先前直接在项目文件夹里面直接执行安装ipfs的命令了,需要切换到client文件夹下面执行 路径不对,会出现错误,错误提示如下 切换到正确的路径之后,使用命令 npm install --save ipfs-http-…

通过node 完成简单的web3 API调用测试

使用命令查看当前web3的版本 npm list web3输入命令 node,进入终端 引入web3,使用命令 var web3 require(web3) 查看引入web3的版本 web3.version

LInux学习笔记(四)-----实操排雷

参考书籍:linux就该这么学 4 Vim 编辑器与 Shell 命令脚本 4.1 Vim 文本编辑器(在 Vim 中,无法直接从输入模式切换到末行模式) 4.1.1 配置 Yum 软件仓库 注:书中好像有点问题,第一个 . 改成 /(我是Ubuntu发现原来不能用…

Web3.js 学习

web3.js Web3 JavaScript app APIweb3.js是一个JavaScript API库,一般使得DApp在以太坊上运行web3.js通过RPC调用与本节点通信,用于任何暴露了RPC层的以太坊节点之间通信web3包含了eth对象,即web3.eth(专门和以太坊区块链交互&am…

c语言指针入门

指针的用途非常广泛,比如如果你想通过函数改变一个变量的值,就得用指针而不能用值传递。还有在很多时候变量,特别是对象的数据量实在太大,程序员就会用指针来做形参,只需要传递一个地址就行,大大提高了效率…

搭建基于飞桨的OCR工具库,总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别的PaddleOCR

介绍 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。 相关链接 PaddleOCR项目地址飞桨开源深度学习平台效果展示页面中文OCR在线体验地…

macos 10.15 django2.2+apache2.4+ladon+wsgi写webseverice接口

他的文档不够完善,使用起来可能有坑,因为不知道如何将ladondjangoapache绑定在一起使用,所以放弃了。 提醒:最好用个虚拟环境,防止库冲突我使用的是anaconda 安装apache macos本身自带apache,其他平台百度…

基于HubServing的PaddleOCR部署

前提要求 服务器的部署需要鉴于先前安装配置的docker环境,因此相关步骤查看我之前的博客 参考链接 服务部署 先前介绍 参考链接 官方推荐本博客采用基于HubServing的部署,这种方式已经集成到PaddleOCR里面,在先前的docker镜像里面就可以…

我的职业生涯规划学习日记(软件工程)整理时间线

学习路线 语言只是工具不过学c一直都做不出来东西是为什么呢,下图要第六部才做项目 概述 大一上学期:C,C,数据结构,cstl源码,python爬虫进入物联网实验室python方向,进入算法协会运维部学习算…

PaddleOCR和ChineseOCR的对比

PaddleOCR和ChineseOCR的对比 ChineseOCRPaddleOCR 对比 识别时间 chineseOCR识别的速度相对于PaddleOCR较慢,单纯使用CPU对于单张图片的识别时间可以达到20秒,如果使用GPU识别的时间一般控制在5秒以内(图片包含的文字比较少的情形&#x…

C++内存管理(1)

根据侯捷老师的视频:https://www.bilibili.com/video/BV1Kb411B7N8 这篇文章归纳内存管理的面试题和一些知识点梳理 正在更新中 首先为什么想要内存管理 不知道有没有人好奇delete[]或者delete的时候为什么系统会自动这个变量 占了多少字节。 答案是因为cookies&a…

Linux学习笔记(一)------实操排雷

参考兄弟连b站网课 1.1如果没有ifconfig 使用sudo apt install net-tools 下载;(ifconfig已经被淘汰所以需要另外下载) 1.2如果网卡是ens33; (1). vi /etc/sysconfig/network-scripts/ifcfg-ens33 将里面的…

Dapp简单的投票小例子

准备工作 相关命令 mkdir simple_voting_dapp //创建文件夹cd simple_voting_dapp //进入文件夹npm init //初始化npm包管理文件,输入ls 可以看到创建的package.json文件npm intsall web30.20.1 //安装web3npm install solc0.4.25 //安装solcnpm install -g ga…

使用mocha进行测试 区块链

mocha安装 npm install mocha --save-dev mocha简介 mocha是一个JavaScript的单元测试的框架,既可以运行在浏览器环境中,也可以运行在node.js环境中,只需要编写测试用例,mocha就会将测试自动的运行,并且给出测试的结…

Linux学习笔记(六)

参考书籍:linux就该这么学 6.存储结构与磁盘划分 6.1 文件系统与数据资料 6.2 挂载硬件设备 6.2.1 mount 命令用于挂载文件系统 6.2.2 umount 命令用于撤销已经挂载的设备文件 6.3 添加硬盘 6.3.1 fdisk 命令用于管理磁盘分区 6.3.2 用于查看文件数据占用量的 du 命…

实现Linux系统外部和容器内部的文件传输

主机和容器之间进行文件传输,需要使用容器的ID即可 获取方法如下 输入指令 docker ps -a只需要CONTAINER ID传输命令 docker cp 本地文件路径 容器ID:容器的路径将文件从容器拷贝到本地的原理是一致的,只需要将对应路径的位置进行更换即可

Linux学习笔记(五)

参考书籍:linux就该这么学 5 用户身份与文件权限 5.1 用户身份与能力 强烈推荐大家在学习时使用 root 管理员权限!因为在 Linux 的学习过程中如果使用普通用户身份进行操作,则在配置服务之后出现错误时很难判断是系统自身的问题还是因为权限不…

清除Docker的占用空间问题

使用命令查看磁盘的空间 docker system df ,类似于Linux的df命令,用于查看Docker使用的磁盘空间Docker镜像占据了4.789GBDocker容器占据了348BDocker数据卷占据了0B 执行删除命令 docker system prune命令可以用于清理磁盘,删除关闭的容器、…