比特币区块打包
⑴ 比特币一个UTXO交易为什么要经过6个区块确认才被认为更改不可逆(或者说几乎不可逆)
你说的是对的,的确会回滚, 如果的交易不幸被打包到分叉上面了,这个交易很有可能会在主链被同步后被取消掉。
至于为什么要6个确认是因为加大蒙出最优解难度(防止单节点造假)。 一个块可能还能蒙出一个最优解,6个块一起蒙出基本上不可能。 跟分叉关系不大
⑵ 终于弄明白了比特币和区块链的关系,现在还能靠挖矿得到比特币吗
能啊,现在买台矿机就能挖比特币。
但我要强调的是,现在的比特币挖矿,已经是一个很专业的行业了,一般人虽然能挖,但成本相较于专业化挖矿来说,高太多了,不如直接买币。
⑶ 比特币区块链是1个比特币就有一个区块链吗每个节点都有完整的区块链数据吗
比特币区块链是1个比特币就有一个区块链吗? 不是,区块保存交易的,前期你成功建立一个区块会得到一个币,后期只能得到交易所付出的费用。一枚货币是一串数字签名,是上一个拥有的人发给接受者的数字签名,所有人都可以从交易中看出谁拥有这枚货币。
每个节点都有完整的区块链数据吗? 你说的节点指的是一个用户节点? 一个用户节点需要保留最长的工作量证明链条的区块头的拷贝,所以是知道所有区块头的数据的可以向前推进知道所有区块链上的数据,但是没有全部保存下来。一个区块头是很小只有80字节,是完全能够保存下来的,因为节点的生成是很慢的。就算随着时间迁移现在来看量也不是太大的。
⑷ 比特币怎么挖
比特币节点互相连接时,会从对方处获取自己没有的交易。但由于比特币长期积累天量的交易,两个节点逐条对照你缺了哪些交易/我缺了哪些交易,是非常困难的事情。
为解决这一难题,中本聪发明了区块链(Block chain)这一重要技术。节点借助区块(block)来同步交易,保证了所有节点数据的统一性,并通过竞争区块打包权(也就是挖矿)的方式,保证了区块链的唯一性。
① 区块和区块链
一段时间内的交易打成的一个包称为区块,比特币全网平均每10分钟产生一个区块,每一个区块都链接到上一个区块,依次相连形成区块链。
② 以区块为单位同步交易数据
区块从1开始编号,因此节点A连接节点B后,只要检查双方的区块编号高度,就能方便地同步交易数据。例如节点A自己的区块高度是100,发现节点B的区块高度是110,则只要向B请求同步101~110这10个区块即可。
③ 打包区块的奖励
为保证有节点打包比特币交易,比特币规则规定:打包交易的节点将获得比特币作为酬劳。
A、打包奖励的一部分来自交易创建者支付的交易手续费(每KB交易大小100~1000聪手续费)。
B、另一部分来自初始2100万个比特币的分发,最开始奖励是每个区块50比特币,之后每经过21万个区块(约4年时间)奖励将减半一次,直到2140年左右区块奖励不足1聪为止,此时区块奖励总和为2100万比特币,这就是比特币2100万总量的来源(准确地说是 20999999.97690000个)。
2140年后打包奖励将只来自于交易创建者支付的交易手续费。
④ 对区块打包权的竞争
节点打包交易只需要消耗很低成本的网络和计算资源,打包奖励的存在(目前每个区块的打包奖励25比特币约为4万元),使得有大量节点想打包交易。为保证区块链的唯一性,比特币规则规定:节点使用类似“扔硬币”的方法争夺交易打包权。节点不断地扔硬币,谁首先扔出符合规则的结果,谁就能获得这个区块的交易打包权,以及这个区块的打包奖励。
⑸ 比特币 新区块必须在旧区块满之后才能产生么
今天(1月3日)是比特币的“生日”;正是在九年前的2009年1月3日,比特币区块链网络中诞生出了“创世区块” (genesis block),也就是开天辟地的block #0,“0号区块”。
⑹ 比特币是如何完成升级和迭代的
如今这个互联网时代,很多软件采取的都是先开发一个简化版,然后经过不停的迭代,数据多了就增加存储器,性能不够了就升级服务器。总之就是一切跟着需求来,总能解决各种各样的问题。然而,你可曾想过,当这些问题进入到区块链的场景,可能就没那么容易了。
闪电网络实际通过微支付的通道,将交易剥离出比特币区块链来进行,而且剥离主链的交易次数是无限的,这从根本上解决了大量交易都放在比特币主链上进行,从而大大提高了交易的效率。
多链: 区块链应用的扩展交互
现在我们看到的很多区块链基础技术构架都是单链的形态。但在现实社会各个产业价值网络中,多链结构的技术才更符合复杂价值逻辑的实际应用,各行各业或者说各个领域都用可能针对不同的业务来构造一条链,这些平行的链之间就会存在数据交互的需求,即便实在同一个业务场景下,也有可能构建一组共同配合工作的链来完成复杂的业务逻辑。此时就会需要通过一个专门的接口来实现互联,大家共同遵循同一个规则,各种不同的链只要针对接口规范来进行开发,就可以进行互联,从而为自身的发展实现了更多可能。
⑺ 比特币网络中什么是“Blocks (区块)”
每个区块包含所有最近交易的信息,一个 Nonce (随机数) 以及上一个区块的哈希值。 在整个区块的 SHA-256 哈希值低于当前目标值时,它便被标记为“已解决” (已发布并通过多个节点验证)。通常一次哈希很难达到目标,因此 Nonce 必须增加,区块必须重新哈希上百万次,才能达到目标。 Bitcoin 比特币交易通过汇款人广播到网络中,所有采矿的节点 (客户端) 收集比特币并将其添加到他们正在工作的区块。如果交易额很大,超过了平均交易额,那么网络将会扣除少量的交易手续费。 每个区块中的第一个交易是特殊的: 它为第一个采到有效区块的人创建新的比特币。其它节点 (客户端) 在该交易额正确的情况下仅会接受该区块。每个区块产生的比特币的数量为 50,每 210000 个区块减少一半 (大约为 4 年)。 网络尝试每小时创建 6 个区块。每 2016 个区块 (大约两周时间),所有的比特币客户端都会将这个目标与实际创建的区块数量相比较,修改区块采集的难度百分比以维持这一目标。 客户端认为“最长的”区块链是有效的。整个区块链的“长度”是指难度相加最多的链,而不是拥有最多区块的链。这可以避免某人伪造并创建大量低难度的区块,欺骗网络将其接受为“最长”链。 点击这里查看当前已采集区块数目 没有最大数目。区块会不断以 10 分钟一个的速度添加到区块链的末尾 是的。区块用以证明交易在某个特定的时间存在。在所有比特币都被采集后,交易仍然会发生。因此只要有人交易比特币,区块仍然会被创建。 没有人可以准确说出。有一个采矿计算器会告诉您可能花去的时间。 没有进度增加 1% 的说法。每次运算并不会增加进度。计算 24 小时后您获得比特币的几率和您刚开始计算时是相等的。 这和您同时旋转 37 个硬币并使它们都正面朝上一样。每次您尝试,您成功的机会是相同的。
⑻ 比特币钱包
比特币(bitcoin)诞生于2008年的一篇论文。
一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?
Merkle tree
跟二叉树长得很像,只是这个是下面两个节点取哈希值得到上面节点。只需要记住根节点,就可以检测整棵树有没有被篡改。
根哈希值存在block header里,交易过程存在block body里。全节点包括block header和block body,但是轻节点(比如手机上比特币钱包)只包括block header。这棵树可以证明包含某个交易已经被写进了区块链。
3.共识协议
去中心化的货币要注意的两个问题:
1.谁能发行数字货币:挖矿。
2.怎么验证交易的合法性:区块链。
双花攻击(double spending attack)
双花攻击是数字货币的一个主要挑战。
比特币中的交易都要有输入和输出,币从哪来,花到哪去。
正常情况也可能有两个分叉,因为两个节点同时获得记账权,两个节点打包的区块,同时计算出了那个随机数。此时会暂时两个分叉共存,直到其中某一个区块抢先找到了下一个区块,这条就成了最长合法链,另一个分叉就被丢弃。
女巫攻击(sybil attack)
某恶意节点不停产生账户,账户总数超过总账户的一半,则取得了区块链的控制权。
比特币中的共识协议(Consensus)
一些节点是有恶意的,大部分节点是好的。
想法1:把一些交易打包到区块里作为候选区块,让每个区块投票,如果通过就写入区块链。
不行,因为有的恶意节点一直发布一些含有恶意交易的区块,则一直投票,占用资源。而且有的节点不投票。
想法2:不按账户个数投票,而是按照计算力投票。每个节点都可以产生合法交易放入区块,这些节点就开始试随机数,直到找到H(block header)≤ target,则这个节点有记账权。
唯一产生比特币的途径
coinbase transaction。这个不用指出币的来源,有了记账权的节点(找到了随机数)会有出块奖励。
50BTC->25BTC->12.5BTC,每21万个比特币,奖励就减半。
比特币争夺记账权的过程叫挖矿。争夺记账权的节点叫矿工。
⑼ 比特币挖矿软件使得C盘硬盘空间不够,怎么设置,把文件都移到到其他盘上
可以转移到其他盘的,甚至可以转移到移动硬盘,随身携带。
随着比特币区块链数据容量越来越大,而客户端钱包数据默认安装在C盘,如果C盘不足够大的话,就需要想办法将数据从C盘迁到其他盘。
举例如下:( 注意:需先关闭客户端)
1、找到bitcoin的数据文件夹:
XP---C:\Documents and Settings\username\Application Data\Bitcoin
vista,win7---C:\Users\username\AppData\Roaming\Bitcoin
2、把这个Bitcoin文件夹,复制到你空间比较大的其他盘,比如d盘(为避免操作失误,建议先复制,运行正常后删除C盘,以节省C盘空间);
3、编辑桌面上的Bitcoin快捷方式(如果桌面上没有快捷方式,有两种方法:一种是找到安装文件夹,找到“bitcoin-qt.exe”点右键,选创建快捷方式,可将快捷方式剪切到桌面或任意位置;第二种方法,如是绿色免安装版本,那就找到本安装文件夹,找到“bitcoin-qt.exe”点右键,选创建快捷方式,可将快捷方式剪切到桌面或任意位置。):在快捷方式上点右键,选“属性”,在“目标”栏中输入如下,确认即可:
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -datadir=D:\Bitcoin
(红色即为加上部分,更改的目标位置)
现在,双击桌面上的Bitcoin快捷方式,客户端就启动了,以后所有的数据更新都存在D盘了,C盘空间也就不再占用。这种方法也可以避免重装系统而删掉C盘造成数据重新下载,也可保护钱包文件。