本博客针对区块链的部分问题进行详解,希望帮助大家对于区块链有一个更好的理解
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这样的全节点型客户端才需要较长的同步时间。从技术上来说,同步是一个下载并核实网络上所有以往比特币交易的过程。某些比特币客户端需要知道所有以往的交易才能计算你比特币钱包的可用余额并完成新的交易。这一步骤非常消耗资源,需要有足够的带宽以及能存放整个块链的空间。为了保持比特币的安全性,需要有足够的用户使用完全节点型客户端,因为他们起着确认和中继交易的作用。