比特币中的区块、账户验证和记账

大家好,这里是了链客区块链技术问答社区。

链客,专为开发者而生,有问必答!

去中心化说起来似乎挺简单,但是不用细想就会发现很多问题:

账本存储在每个节点中,如何保证每个节点中的数据一致,或者说如何防止某些节点的账本被恶意篡改而影响到整个网络的交易?

如果说交易的验证由各个节点完成,那么如何在不把密码泄露给其他节点的前提下,证明自己对某个账户的所有权呢?

去中心化就要求时刻有节点在线,由这些节点去完成记账、验证交易等工作,那么有什么机制能够让节点有动力自发的保持在线去完成这些工作呢?

瑞士比特币投资应用RELAI完成250万瑞士法郎的A轮融资:金色财经报道,瑞士比特币投资应用RELAI宣布完成250万瑞士法郎(约合277.8万美元)的A轮融资,本轮融资由瑞士风险投资公司Redalpine领投,Polytech Ventures、Fulgur Ventures,以及ACE&Company参投。[2021/6/17 23:42:33]

对于上面的问题,比特币都给出了很优雅的解决方案,我们一一道来。

1.账本验证问题

实际上对于第一个问题,很容易想到解决方法,那就是少数服从多数,如果某个节点的账本数据被篡改了,那么只需要和全网其他节点的数据比对,就必然能发现异常。

Blockstream 面向美国之外的合格投资者推出比特币挖矿代币:据官方消息,比特币技术研发机构Blockstream宣布面向美国之外的合格投资者推出基于LiquidNetwork的证券型比特币挖矿代币BlockstreamMiningNote(BMN),旨在提供一个比传统实体挖矿设施更为灵活的交易型挖矿代币以及扩大投资者对比特币挖矿活动的访问机会,与此同时,由BMN开采的比特币会先被冷存储,之后会在三年期末交付给代币持有者。

首笔约1500万美元的BMN将于4月7日开始销售,该产品的最低投资额约为20万欧元(约合24万美元)。投资者可以通过在二级市场上交易BMN(取决于市场流动性)来轻松调整其对比特币挖矿的敞口。Blockstream计划在7月9日之前启动针对BMN的比特币挖矿。Blockstream的挖矿设施目前位于美国乔治亚州和加拿大魁北克[2021/3/31 19:31:39]

但问题在于,随着时间的推移,记录的累积,数据量会越来越庞大,记得在13年的时候,笔者下载的比特币钱包,从网络同步下载下来的交易账本数据就已经多达几十GB,如果说要对这么大的数据进行逐一传输、比对,可以说是不现实的。

目前比特币储备风险较低 风险/回报比率仍具吸引力:根据Glassnode最近的报告,虽然BTC在二月份表现不佳,加密市场情绪明显受到了影响,但BTC继续受到全球投资者的关注。自3月初以来,市场基本面显示,BTC正缓慢脱离短期熊市反弹。报告指出,比特币的储备风险(Reserve Risk)在图表上呈现出较低的水平,这一发现表明,当前比特币投资具备有吸引力的风险/回报比率。储备风险被定义为在当前市场价格上的持币所导致的递延支出。通俗地说,当投资者对市场的信心很高,但价格仍然很低时,资产的吸引力就会增加。储备风险目前处于较低水平,这表明,与进入市场的风险相比,持有当前估值的比特币具有盈利潜力。(AMBCrypto)[2020/3/6]

在介绍比特币的解决方案前,我们先了解一个函数:Hash函数,俗称哈希函数。

声音 | 澳本聪:很多出售区块链解决方案的人根本不懂比特币:澳本聪(Dr Craig S Wright)刚刚推文称,我发现,有成千上万的伪科学拥护者出售“区块链解决方案”,但没有人真的有头绪。他们从不认真研究比特币,只是带着固有的信念的滤镜和傲慢来看待它。[2019/1/1]

关于Hash函数的细节,我们以后再描述,现在我们需要知道就是:一段数据经过Hash函数的运算后,得到一段长度很短的数据,我们称之为摘要数据,可以表示成:

Hash(原始数据)=摘要数据

而Hash函数有以下三个特点:

同样的原始数据,经过同一个Hash函数,总是能得到相同的摘要数据;

原始信息的任何微小的修改,通过Hash函数后,得到的摘要数据会面目全非;

不可逆运算,即:拥有摘要数据,无法逆向反推出原始数据。

比特币的做法是,交易账本数据按照时间分块存储,每一块只存储10分钟的交易账本数据,这每个存储单元即称之为“区块”。而每一个区块的头部会记录这一数据块的序号、时间和Hash摘要数据。

比较巧妙的地方在于,区块头部中的Hash摘要数据是由上一个区块的摘要数据和本区块的交易账本数据叠加后经过Hash函数得到的,即:

第n块的Hash值=Hash(第n-1块的Hash值+第n块的账本数据)

可以看到,虽然每一个区块内的交易账本数据是独立的,但是区块头部的Hash值却是依赖于上一区块的Hash值,从而形成了一条链式的结构。这想必也就是“区块链”名字的由来。

链上的任何一个区块中的数据受到的篡改,都将反映到最新的一个区块的Hash值上,因此,要想验证某个节点的账本数据是否正确,只需要比对最新一个区块的Hash值即可。

2.账户所有权的证明

如果我要通过某个账户给另一个账户转账,必然需要证明我对此账户的所有权。对于中心化的货币系统,我们只需要向银行出示密码即可,但是对于去中心化的系统,如果我们也通过出示密码给其他节点,来证明我们对账户的所有权,那么我们的密码也就泄露给了其他节点。

事实上这是一个现代密码学中比较基础的问题,说白了就是如何在不暴露自己私钥的前提下,自证身份,也有很成熟的解决方法:利用非对称加密算法。关于算法的细节,计划在后面单独说说现代密码学的一些基础算法,这里我们就用类比的方法描述一下。

首先我们来确定要解决的问题:

A要从账户X中转账一笔钱给账户Y,就需要向全网广播一条消息,网络中的其他节点收到消息后,要有方法能够验证广播这条消息的人,确实拥有账户X的所有权。同时,消息中不能包含账户X的密码,否则就意味着账户的控制权泄露给了全网的用户。

解决方法是这样的:

由A向全网发布广播,广播的消息中需要包括:

①原始交易信息

②原始交易信息经过Hash算法后得到的一条摘要信息

③签名

前两条很好理解,关于签名,我们可以这么理解:

有这么个签名函数,输入是打款账户的私钥和②摘要信息,而输出就是③签名,即:

签名=sign(私钥,交易信息摘要)

网络中其他节点收到广播后需要验证A是否有权将账户X中的钱转出去,验证步骤如下:

广播中①原始交易信息中,有打款者的账户地址,这个地址其实就相当于公钥。

相对应于签名函数,还有个校验函数,输入是③签名和公钥,输出则是摘要信息,即:

交易信息摘要=verify(签名,公钥)

只需要比对verify函数算出的交易信息摘要与广播中的②交易信息摘要相吻合,那么就认为广播这条消息的人,拥有正确的私钥,即拥有账户X的所有权。

而通过公钥是无法推算出私钥的,因此也不会有泄露私钥的风险。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

DOGE这是购买以太坊的最佳日期!

以太坊的平均月投资回报率表明夏季,尤其是第三季度,可能不是投资者积累或持有ETH的最佳时机。相反,第四季度末或第一季度初是历史上更合适的时期。 以太坊分析 有关于领先的山寨币ETH的新分析.

中币下载耕耘熊市,收获牛市

起床就看到一条快讯: 彭博社:与去年11月加密高峰相比,加密领域七位亿万富翁总共损失约1140亿美元。熊市的利润乃至本金回吐真的挺吓人.

ICP这两种加密货币有很大的机会?

正在等待加密货币机会的对冲基金经理的意见引起了人们的关注。在这种情况下,他们正在转向哪些加密货币就变得很清楚了。也为投资者寻找方向提供了答案.

[0:31ms0-1:432ms