比特币系统要解决的两个主要问题
① 请问比特币是为什么而存在的就火是为了解决取暖问题而被发掘的,那么比特币又是为了解决什么问题而被创
比特币是一种以“电子货币”为目的开发的虚拟产品,然而其天然性质决定了它不能成为货币。在部分地区,你可以把它看做一支能直接支付的股票。
表面上看,比特币基于特殊的算法和密码学原理保证专有化的没有发行者的全球性货币,其数量是有限的而不能被随意增发。然而除了专有化这一点外,其它特征并不符合货币的要求。
首先是“没有发行者”,这一点被视为“电子货币”自由的象征,然而从比特币发展的状况来看,这种自由的代价是巨大的,以至于没有任何地区敢于实施完全的比特币交易,批准流通的也屈指可数。当我们持有传统货币时,国家级别信用对它的价值提供保障,在时局稳定时,你手中的人民币、美元、欧元等货币价值也相对稳定,其基本购买力是有保障的。缺乏这种信用保证的比特币价值波动比历史上任何一种商品都大,几年前还一文不值,一度曾到达了几千美元一枚。变动的因素众多,前期是知名度,参与的人越多价值越高,然后黑客的影响、交易网站的关闭让其暴跌,再后来国家的政策又成为主要影响。讽刺的是比特币正因为自由而受国家影响最大的,今天中国央行发个通知,它就暴跌35%,明天德国同一兑换,它又暴涨50%。这样的涨跌,谁会把它当货币用?今天你支付了几百,然后看着它暴涨欲哭无泪,明天你买了几千,暴跌了上天台排队。
其次,它的有限性表示经济大国永远不会把它作为主要货币,也许现在希腊会想拿它救急,但美国绝对不会给它任何挑战美元地位的机会。数量有限,国家就不能实行它的货币政策,缓慢而稳定的通货膨胀是刺激经济发展的重要保障,比特币现在的开采速度已经大大放缓,到了某天还会无法发行,那还有个卵用。再说上限是2100万个,够谁用,难道每次支付要输入0.000000001比特币?
所以,综上,比特币是一种虚拟商品,价值波动极大,风险和收益并存,你可以把它当股票来玩。
② 你怎么知道买的比特币是真的呢
我大脑中一直有这样一个问题:如果拿比特币当钱的话,我们怎么知道这个比特币是真实的呢?就像如何鉴别钞票的真伪一样。
虽然说,比特币从技术上解决了最重要的两个问题,让大家对其信任度非常高,如下:
如果确实回忆不起这两个特点的人可以好好去回顾下之前的课程了,课程链接可通过关注上方公众号,在菜单“基础课程”那里可以找到。
但是,这里有个非常关键的问题很多人没搞清楚: 鉴别钞票真伪的时候我们已经拿到这个钞票了,但是我们在提“比特币是否为真的?”这个问题的时候,我们有拿到这个比特币吗?
毕竟比特币是一种虚拟货币,是个看不太懂又摸不着的玩意儿,所以把很多人绕得云里雾里的,甚至都不知道自己买的是不是比特币,到底有多少比特币。我没说错吧?
比如我在某交易所买了一点比特币,大家看下交易流水:
这些是比特币吗?虽然我们基本知道比特币是一个采用数学加密算法产生的虚拟货币,是一串字符或者说是一个utxo结构( 参考前期utxo课程 ),那么上面这“一串字符”是否是我的比特币呢?
好,仔细想了想,这么多条记录可能是交易明细之类的东西,这能理解。但是,我的比特币交易数量在哪里?我有多少比特币怎么看?
我有时候也被交易所给搞糊涂了,比如我只能通过卖出时的数值才知道自己拥有多少比特币:
看见红色框框没,只有在卖出时我才大概知道我有多少比特币,大部分情况下都是一脸懵逼的表情。
通过上面的截图,大家可以发现一个很严重的问题:
当然,这是我很久前的一个困惑,后来光顾着学习,有些忘记了。在我的处女课《 如何从零入门区块链技术 》里,当然有个人提了这么一个问题: 我怎么知道自己买的比特币是真的?
当然只能草草作答,直到今天才得空进行全面展开。
这个问题的关键在于:
在上周 数字货币投资小密圈 里我对交易所的内容进行了一个阐述,举一个简单的例子:
假设你在某交易所的账号里有5000美元和3个比特币。你相用580美元/比特币的价格买两个比特币,这时交易所帮你找到交易对手并促成交易。现在,你的账号里有5个比特币和3840美元。
值得注意的是,当你在交易所完成上述交易的时候, 区块链上并不会记任何交易。交易所不需要在区块链里把比特币从一个地址转到另一个地址。 交易所只是修改了和你的合约,交易前,它说“我们日后会还给你5000美元和3个比特币。”交易完成后,它说“我们日后会还给你3840美元和5个比特币。”所以,交易前后,比特币并没有真正在区块链中移动,只是你和银行的合约变化了而已。对于你的交易对手而言,也是如此。
就是说,在我们通过交易所买卖比特币时,其实我们手里还什么都没有,交易所只是给我们用“笔”记录了一笔账而已。
那么,要想确保自己买到的比特币没问题,首要的也是最重要的一点:
如何正规,这里不深入阐述了,在数字货币小密圈里我会深入展开。
但是,购买还只是第一步。而我们绝大部分人,目前也仅停留在这一步,毕竟我们购买的比特币数目不太多,没那么兴师动众的。所以,就这样把“比特币”扔在交易所的账户里躺着,其实,那些我们能看到的字符只有交易记录和明文数字,与我们理解的比特币还差很远。
由于放得太久,或许有一天,我们都有点遗忘了:这玩意儿是我的比特币?
如果我们持有“比特币”数据较多,或者是喜欢钻研的人,我们就要进行到第二步:提取比特币。因为只有提取比特币,交易所才会把刚才第一步记录的账进行兑现,将真实的比特币给你。就如同,平时我们在银行存的钱只是数字,只有提取的时候,银行才会把真正的钞票给我们一样。
所以为了提取,要么你自己有一个钱包,要么你在另外一个交易所有一个收款地址。为了演示,我在OkCoin上注册了一个,并将比特币转到了对应的收款地址上。
虽然,在转账完成后,本文第二个图显示可用BTC为零了,大致可以确定交易发生后,交易所已经兑现了承诺,将比特币转到了我指定的收款地址上。但是,仍然一脸懵逼: 比特币去哪里了?我怎么确认转账真的发生了?
同样地,在OKCoin上我依然只能通过卖出时的可用BTC来确认此次转账的发生,仅此而已。前文提的问题,如果验证它的真伪,这个问题还是没解决。
到这里,就进入了本文要介绍的关键所在,在验证真伪之前,先要问自己一个问题:
什么是真的?什么是假的?
回顾一下,比特币解决的第一个关键问题“货币伪造”,是如何做到的?这里需要大家回顾一下以前的基础课程细节,在关于 utxo那节课 中,提到了比特币里非常重要的数据结构utxo。
仔细学习后,我们应该知道,“1个比特币”的概念是不存在的,utxo结构将货币从诞生(铸币)到花费的所有记录都连接了起来,从而保证了货币无法伪造。关于确认货币真伪的问题,最后归结为:
如何查询这些信息呢?讲了这么多,卖了这么多关子,神秘的面纱就要揭开,也是本文要告诉大家的:
比如,我在提取所有比特币到OKCoin上后,当时使用的收款地址时:。
于是,我通过blockchain.info进行了查询,结果如图:
上面有多笔交易的转账记录,基本展现了一个utxo的面貌,在这里可以查到很多信息,比如:
刚开始进去搜索的时候,可能有些迷茫,但是慢慢结合自己之前的学习,你能发现很多有意思的现象,也能理解得更深入。如果你能看懂一些规律,你或许就能明白了,我之前在一个课程里为什么说“ 比特币其实不是匿名的 ”。
比如上图,转给我收款地址的一个地址是: 。这个地址我理解应该是交易所的地址,就是说我在提币的时候,交易所通过这个地址将指定数目的比特币转了出去。
但是,这个地址有故事:
更多信息,请大家自行搜索。
通过本文详尽的介绍,大家应该知道如何辨别你比特币的真伪了吧?
如果没有,请赶紧复习前期基础课程,来我千聊课程里听听我的语音解答也是不错的选择哟:
③ 在区块链中,双花问题是什么问题呢
什么是双花问题呢?
双花问题,简单讲就是一笔钱能被花两次三次很多次。为什么双花问题会成为比特币系统里面一个这么重要的问题呢?
原因就在于:比特币,是虚拟货币,它是虚拟的,通过代码形式呈现出来的,是可以被复制下来的。一旦被攻破了代码漏洞,那么就可以循环使用同一笔比特币,这样一来,比特币这种“钱”就会变得很鸡肋。
我们想一下,要是一笔钱可以花很多次,你有500块钱,你去买一件500块钱的衣服,还能循环使用,再去买一双500块钱的鞋,这样一来,钱还能叫钱吗?
所以,中本聪在设定比特币系统的时候,他所有的技术手段基本上都是围绕着解决
“双花问题”的,来保护比特币作为一种货币,它自身的一个支付手段职能。
其实,这个双花问题在我们现在的中心化世界里面根本不是问题,因为有银行,钱的交易结算都是通过银行,很安全,有问题直接找银行。
但是,在去中心化世界里面呢,没有银行这样一个中心机构,还必须保证一笔钱只能花一次,怎么样实现在去中心化的前提下,杜绝“双花问题”呢,这是一个难题。
这里插一句,中本聪为什么如此执着的追求“去中心化”呢,自找烦恼吗?不是,他希望能够通过去中心化,来解决一些社会问题,其中最主要的问题就是:因为权力机构过量发行货币造成的通货膨胀。
所以,我们总结一下他的逻辑:中心化的货币增发导致通货膨胀——所以我们要实现去中心化——去中心化要面临很多问题,最大的问题是双花问题——所以我们要解决双花问题——怎么解决双花问题?
这里,中本聪就引入了UTXO和“时间戳”概念,依靠这两种手段来解决双花问题。
④ 比特币如何防止篡改
比特币网络主要会通过以下两种技术保证用户签发的交易和历史上发生的交易不会被攻击者篡改:
非对称加密可以保证攻击者无法伪造账户所有者的签名;
共识算法可以保证网络中的历史交易不会被攻击者替换;
- 非对称加密算法3是目前广泛应用的加密技术,TLS 证书和电子签名等场景都使用了非对称的加密算法保证安全。非对称加密算法同时包含一个公钥(Public Key)和一个私钥(Secret Key),使用私钥加密的数据只能用公钥解密,而使用公钥解密的数据也只能用私钥解密。
- 1使用如下所示的代码可以计算在无限长的时间中,攻击者持有 51% 算力时,改写历史 0 ~ 9 个区块的概率9:
- #include
- #include
- double attackerSuccessProbability(double q, int z) {
- double p = 1.0 - q;
- double lambda = z * (q / p);
- double sum = 1.0;
- int i, k;
- for (k = 0; k <= z; k++) {
- double poisson = exp(-lambda);
- for (i = 1; i <= k; i++)
- poisson *= lambda / i;
- sum -= poisson * (1 - pow(q / p, z - k));
- }
- return sum;
- }
- int main() {
- for (int i = 0; i < 10; i++) {
- printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));
- }
- return 0;
- }
- 通过上述的计算我们会发现,在无限长的时间中,占有全网算力的节点能够发起 51% 攻击修改历史的概率是 100%;但是在有限长的时间中,因为比特币中的算力是相对动态的,比特币网络的节点也在避免出现单节点占有 51% 以上算力的情况,所以想要篡改比特币的历史还是比较困难的,不过在一些小众的、算力没有保证的一些区块链网络中,51% 攻击还是极其常见的10。
- 防范 51% 攻击方法也很简单,在多数的区块链网络中,刚刚加入区块链网络中的交易都是未确认的,只要这些区块后面追加了数量足够的区块,区块中的交易才会被确认。比特币中的交易确认数就是 6 个,而比特币平均 10 分钟生成一个块,所以一次交易的确认时间大概为 60 分钟,这也是为了保证安全性不得不做出的牺牲。不过,这种增加确认数的做法也不能保证 100% 的安全,我们也只能在不影响用户体验的情况下,尽可能增加攻击者的成本。
- 研究比特币这样的区块链技术还是非常有趣的,作为一个分布式的数据库,它也会遇到分布式系统经常会遇到的问题,例如节点不可靠等问题;同时作为一个金融系统和账本,它也会面对更加复杂的交易确认和验证场景。比特币网络的设计非常有趣,它是技术和金融两个交叉领域结合后的产物,非常值得我们花时间研究背后的原理。
- 比特币并不能 100% 防止交易和数据的篡改,文中提到的两种技术都只能从一定概率上保证安全,而降低攻击者成功的可能性也是安全领域需要面对的永恒问题。我们可以换一个更严谨的方式阐述今天的问题 — 比特币使用了哪些技术来增加攻击者的成本、降低交易被篡改的概率:
比特币使用了非对称加密算法,保证攻击者在有限时间内无法伪造账户所有者的签名;
比特币使用了工作量证明的共识算法并引入了记账的激励,保证网络中的历史交易不会被攻击者快速替换;
- 通过上述的两种方式,比特币才能保证历史的交易不会被篡改和所有账户中资金的安全。
非对称加密
图 4 - 51% 攻击
总结
⑤ 比特币挖矿是解决什么问题的
题主你好:
在很早期,比特币算力难度非常低时,还可以使用计算机依照算法进行大量的运算来“开采”比特币。
在用户“开采”比特币时,需要用电脑搜寻64位的数字就行,然后通过反 复解谜与其他淘金者相互竞争,为比特币网络提供所需的数字,如果用户的电脑成功地创造出一组数字,那么就将会获得区块所奖励的比特币。但是由于比特币价值不断升高,目前比特币挖矿的用户数量非常庞大,有上百万的专业矿机在同时挖矿,而每10分钟产出的比特币又十分有限,形成了千万人抢1个区块的情况出现,所以,如果你用个人电脑单独挖矿,有可能一整年也抢不到一个区块,在这种情况下,人们就想出了一种组队挖矿的方法,于是矿池(mining pool)诞生了。在中币上有很多的用户就是在挖矿后玩的。
望题主采纳。
⑥ 比特币面临的问题有哪些
最大的障碍就是大家都持有比特币,像人民币一样,大家都有才能交易,我有你没有,那是交易不成的,不过现在有了OKEx,比特币之间的交易变得简单了,相信也会越来越多的人尝试拥有。只是时间问题了。
⑦ 比特币对中央银行货币发行制度提出了哪些挑战
主要有两点:一是比特币的发行权问题,而是发行量问题。
比特币显现出互联网时代新货币形态的萌芽,并不意味着其一定能够成功。
只要国家的边界没有消失、还需政府的权威支撑社会交易,“最后贷款人”的央行仍然存在,则真正去中心化的虚拟货币就不可能占据主流地位。对于监管者来说,比特币只有变成“好孩子”并避免风险失控,才能获得虚拟货币试验的空间,否则,比特币只能成为货币体系变革的乌托邦式失败案例。
比特币具有价值是因为它作为货币形式的一种是有用的。比特币具有货币的数学特性(持久性,可携带性,可互换性,稀缺性,可分割性和易识别性)而非依赖于物理特性(比如黄金和白银)或中央权力机构的信任(比如法定货币)。简而言之,比特币是由数学支持的。有了这些特性,一种货币形式要具有价值所需要的就是信任和使用。对比特币而言,这可以从它日益增长的用户,商家和初创企业基数上得到体现。同所有货币一样,比特币的价值直接来自于愿意接受它作为支付方式的人们,这也是唯一的来源。
⑧ 区块链技术现存问题有哪些
1.性能问题
体积问题
区块链对数据备份的要求对存储空间提出挑战。区块链要求在一笔交易达成后向全网广播,系统内每个节点都要进行数据备份。
以比特币为例,自创世区块至今的区块数据已经超过 60GB,并且区块链数据量还在不断增加,这将给比特币核心客户端的运行带来很大挑战。
处理速度问题
比特币区块链目前最高每秒处理 6.67 笔交易,一次确认时间大约为 10 分钟,容易造成大量交易的堵塞延迟,可能会限制小额多次交易和对时间敏感度较高交易的应用。
尽管目前有了一些克服手段,但全面解决交易效率的方法仍然亟待发掘 。
耗能过高
第三,挖矿过程中的算力并不产生额外的实际社会价值,还会浪费大量的电子资源,随着比特币的日益普及,区块链逐渐成为高耗能的资本密集型行业。
2.中心化问题
节点的不平等
第一,理论上,分布式网络中每个节点应当被平等对待,但是为了挖矿获得回报,各节点可能会增加算力进行硬件竞赛,从而导致节点的不平等,破坏区块链记账权的随机性。
产业化、规模化挖矿产生了矿池
理论上如果矿池通过共谋掌握 51% 以上的算力进行系统供给,就可以实现双重支付,实际过程中尽管其成本远超收益,但不能否认合谋供给存在的可能性。
3.隐私安全问题
私钥容易被窃取
第一,目前区块链采用的是非对称密钥机制,尽管具有很高的安全性,但是私钥保存在用户本地,容易被黑客窃取。
区块链数据的透明性容易造成隐私泄露
公有链中每个参与者都可以获得完整的数据备份,整个系统是公开透明的,比特币通过隔断交易地址和持有人真实身份的关联保护隐私。
当区块链需要承载更多的业务时,节点如何验证信息执行命令就需要更多的考虑。
4.升级和激励问题
公有链中参与节点的数量庞大
无论是升级还是修复错误都无法关闭系统集中进行,可能需要考虑放松去中心化的问题。
各个节点之间存在着竞争博弈
要求激励相容机制的完善,如何使去中心化系统中的自利节点能够自发开展区块数据验证及记账工作,并设计合理的惩罚函数抑制非理性竞争,是区块链面临的另一挑战。
⑨ 比特币机制研究
现今世界的电子支付系统已经十分发达,我们平时的各种消费基本上在支付宝和微信上都可以轻松解决。但是无论是支付宝、微信,其实本质上都依赖于一个中心化的金融系统,即使在大多数情况这个系统运行得很好,但是由于信任模型的存在,还是会存在着仲裁纠纷,有仲裁纠纷就意味着不存在 不可撤销的交易 ,这样对于 不可撤销的服务 来说,一定比例的欺诈是不可避免的。在比特币出来之前,不存在一个 不引入中心化的可信任方 就能解决在通信通道上支付的方案。
比特币的强大之处就在于:它是一个基于密码学原理而不是依赖于中心化机构的电子支付系统,它能够允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在数学计算上的不可撤销将保护 提供不可撤销服务 的商家不被欺诈,而用来保护买家的 程序化合约机制 也比较容易实现。
假设网络中有A, B ,C三个人。
A付给B 1比特币 ,B付给C 2比特币 ,C付给A 3比特币 。
如下图所示:
为了刺激比特币系统中的用户进行记账,记账是有奖励的。奖励来源主要有两方面:
比特币中每一笔交易都会有手续费,手续费会给记账者
记账会有打包区块的奖励,中本聪在08年设计的方案是: 每10分钟打一个包,每打一个包奖励50个比特币,每4年单次打包的奖励数减半,即4年后每打一个包奖励25个比特币,再过四年后就奖励12.5个比特币... 这样我们其实可以算出比特币的总量:
要说明打包的记录以谁为准的问题,我们需要引入一个知名的 拜占庭将军问题 (Byzantine failures)。拜占庭将军问题是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。
假设有9个互相远离的将军包围了拜占庭帝国,除非有5个及以上的将军一起攻打,拜占庭帝国才能被打下来。而这9个将军之间是互不信任的,他们并不知道这其中是否有叛徒,那么如何通过远距离协商来让他们赢取战斗呢?
口头协议有3个默认规则:
1.每个信息都能够被准确接收
2.接收者知道是谁发送给他的
3.谁没有发送消息大家都知道
4.接受者不知道转发信息的转发者是谁
将军们遵循口头规则的话,那就是下面的场景:将军1对其他8个将军发送了信息,然后将军2~9将消息进行转达(广播),每个将军都是消息的接受者和转发者,这样一轮下来,总共就会有9×8=72次发送。这样将军就可以根据自己手中的信息,选择多数人的投票结果行动即可,这个时候即便有间谍,因为少数服从多数的原则,只要大部分将军同意攻打拜占庭,自己就去行动。
这个方案有很多缺点:
1.首先是发送量大,9个将军之间要发送72次,随着节点数的增加,工作量呈现几何增长。
2.再者是无法找出谁是叛徒,因为是口头协议,接受者不知道转发信息的转发者是谁,每个将军手里的数据仅仅只是一个数量的对比:
这里我们假设有3个叛徒,在一种最极端的情况下即叛徒转发信息时总是篡改为“不进攻”,那么我们最坏的结果就如上图所示。将军1根据手里的信息可以推出要进攻的结论,却无法获知将军里面谁是叛徒。
这样我们就有了方案二:书面协议。
书面协议即将军在接受到信息后可以进行签字,并且大家都能够识别出这个签字是否是本人,换种说法就是如果有人篡改签字大家可以知道。书面协议相对比口头协议就是增加了一个认证机制,所有的消息都有记录。一旦发现有人所给出的信息不一致,就是追查间谍。
有了书面协议,那么将军1手里的信息就是这样的:
可以很明显得看出,在最坏的一种情况——叛徒总是转发“不进攻”的消息之下,将军7、8、9是团队里的叛徒。
这个方案解决了口头协议里历史信息不可追溯的问题,但是在发送量方面并没有做到任何改进。
在我们的示例中,比特币系统里的每个用户发起了一笔交易,都会通过自己的私钥进行签名,用数学公式表示就是:
所以之前的区块就变成了这样:
这样每一笔交易都由交易发起者通过私钥进行数字签名,由于私钥是不公开的,所以交易信息也就无法被伪造了。
如书面协议末尾所说的那样,书面协议未能解决信息交流过多的问题。当比特币系统中存在上千万节点的时候,如果要互相广播验证,请求响应的次数那将是一个非常庞大的数字,显然势必会造成网络拥堵、节点处理变慢。为了解决这个问题,中本聪干脆让整个10分钟出一个区块,这个区块由谁来打包发出呢?这里就采用了工作量证明机制(PoW)。工作量证明,说白了就是解一个数学题,谁先解出来数学题,谁就能有打包区块的权力。换在拜占庭将军的例子中就是,谁先做出数学题,谁就成为将军们里面的总司令,其他将军听从他发号的命令。
首先,矿工会将区块头所占用的128字节的字符串进行两次sha256求值,即:
这样求得一个值Hash,将其与目标值相比对,如果符合条件,则视为工作量证明成功。
工作量证明成功的条件写在了区块链头部的 难度数 字段,它要求了最后进行两次sha256运算的Hash值必须小于定下的目标值;如果不是的话,那就改变区块头的 随机数 (nonce),通过一次次地重复计算检验,直到符合条件为止。
此外, 比特币有自己的一套难度控制系统,使得比特币系统要在全网不同的算力条件下,都保持10分钟生成一个区块的速率。这也就意味着:难度值必须根据全网算力的变化进行调整。难度调整的策略是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。
PoW其实在比特币中是做了以下的三件事情。
这样可以防止一台高性能机器同时跑上万个节点,因为每完成一个工作都要有足够的算力。
有经济奖励就会加速整个系统的去中心化,也鼓励大家不要去作恶,要积极地按照协议本来的执行方式去执行。(所以说,无币区块链其实是不可行的,无币区块链一定导致中心化。)
也就是说,每个节点都不能以自身硬件条件去控制出快速度。现在的比特币上平均10分钟出一个块,性能再好的机器也无法打破这个规则,这就能够保证 区块链是可以收敛到共同的主链上的 ,也就是我们所说的共识。
综上,共识只是PoW三个作用中的一点,事实上PoW设计的作用有点至少有这么三种。
默克尔树的概念其实很简单,如图所示
这样,我们区块的结构就大致完整了,这里分成了区块头和区块体两部分。
区块链的每个节点,都保存着区块链从创世到现在的每一区块,即每一笔交易都被保存在节点上,现在已经有几百个GB了。
每当比特币系统中有一笔新的交易生成,就会将新交易广播到所有的节点。每个节点都把新交易收集起来,并生成对应的默克尔根,拼接完区块头后,就开始调整区块头里的随机数值,然后就开始算数学题
将算出的result和网络中的目标值进行比对,如果是结果是小于的话,就全网广播答案。其他矿工收到了这个信息后,就会立马放下手里的运算,开始下一个区块的计算。
举个例子,当前A节点在挖38936个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第38936个区块(前一个区块为38935)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。
整个流程就像下一张图所展示的这样:
简单来说,双花问题是一笔钱重复花了两次。具体来讲,双花问题可分为两种情况:
1.同一笔钱被多次使用;
2.一笔钱只被使用过一次,但是通过黑客攻击或造假等方式,将这笔钱复制了一份,再次使用。
在我们生活的数字系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,为了解决双花问题,日常生活中是依赖于第三方的信任机构的。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统,比特币通过UTXO、时间戳等技术的整合来解决双花问题。
UTXO的英文全称是 unspent transaction outputs ,意为 未使用的交易输出 。UTXO是一种有别于传统记账方式的新的记账模型。
银行里传统的记账方式是基于账户的,主要是记录某个用户的账户余额。而UTXO的交易方式,是基于交易本身的,甚至没有账户的概念。在UTXO的记账机制里,除了货币发行外,所有的资金来源都必须来自于前面某一个或几个交易。任何一笔的交易总量必须等于交易输出总量。UTXO的记账机制使得比特币网络中的每一笔转账,都能够追溯到它前面一笔交易。
比特币的挖矿节点获得新区块的挖矿奖励,比如 12.5 个比特币,这时,它的钱包地址得到的就是一个 UTXO,即这个新区块的币基交易(也称创币交易)的输出。币基交易是一个特殊的交易,它没有输入,只有输出。
当甲要把一笔比特币转给乙时,这个过程是把甲的钱包地址中之前的一个 UTXO,用私钥进行签名,发送到乙的地址。这个过程是一个新的交易,而乙得到的是一个新的 UTXO。
这就是为什么有人说在这个世界上根本没有比特币,只有 UTXO,你的地址中的比特币是指没花掉的交易输出。
以Alice向Bob进行转账的过程举例的话:
UTXO 与我们熟悉的账户概念的差别很大。我们日常接触最多的是账户,比如,我在银行开设一个账户,账户里的余额就是我的钱。
但在比特币网络中没有账户的概念,你可以有多个钱包地址,每个钱包地址中都有着多个 UTXO,你的钱是所有这些地址中的 UTXO 加起来的总和。
中本聪发明比特币的目标是创建一个点对点的电子现金,UTXO 的设计正可以看成是借鉴了现金的思路:我们可能在这个口袋里装点现金,在那个柜子角落里放点现金,在这种情况下不存在一个账户,你放在各处的现金加起来就是你所有的钱。
采用 UTXO 设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:
⑩ 比特币面临的问题和未来的发展方向是怎么样的
面对的问题有监管问题,交易平台问题,交易风险问题,交易者身份,合法性。
未来的发展,首先,在世界经济发展良好的大背景下,人们的收入较前几年有了可观的提升。因此人们手中也拥有了更多的闲置资金,对投资理财的需求也有了很大的提升,然而在当今世界金融投资市场上存在着理财渠道和水平供需不匹配的情况。
供给水平满足不了日益增长的投资理财需求,尤其是在世界通用的虚拟市场上,这类虚拟产品投资品更为匮乏。因此,比特币的出现极大地弥补了世界金融投资市场产品的空白。所以比特币在未来发展中会更加具备虚拟市场投资品的职能。
其次,比特币也扮演者金融市场动荡的保值品角色。当今世界经济的绝对值虽随着生产力的进步在持续增长,但世界金融市场也越发动荡,所以保值品功能的存在给比特币带来了巨大市场。
比特币的总数有限恒定,大约只有2100万个,其自身的总量有限导致了其与人类不断扩大的价值产出之间难以满足和匹配,因而比特币身为通缩性货币,其有限性可使得它成为金融市场动荡的保值品。
此外,比特币也能够作为一类应用更为广泛的交换媒介而存在。自比特币出现并发行以来,越来越多的国家开始认可其存在的价值,确定比特币作为国际虚拟货币的地位并开始重视它所产生的影响。
由于比特币具有去中心化的特性,以及其不存在政府监管、做虚假账日可能性在内的诸多优点,均使得比特币较其他金融产品交易而言有机会发展得更为广泛,因而比特币在未来金融市场发展中能够成为更具认可度的交易媒介。