大家好,这里是了链客区块链技术问答社区。
链客,专为开发者而生,有问必答!
去中心化说起来似乎挺简单,但是不用细想就会发现很多问题:
账本存储在每个节点中,如何保证每个节点中的数据一致,或者说如何防止某些节点的账本被恶意篡改而影响到整个网络的交易?
如果说交易的验证由各个节点完成,那么如何在不把密码泄露给其他节点的前提下,证明自己对某个账户的所有权呢?
去中心化就要求时刻有节点在线,由这些节点去完成记账、验证交易等工作,那么有什么机制能够让节点有动力自发的保持在线去完成这些工作呢?
十年前丢弃含有8000比特币硬盘的投资者起诉垃圾填埋场希望赢得5.57亿美元:金色财经报道,威尔士的一位比特币投资者James Howells十年前将硬盘扔进垃圾桶后不慎丢失了8000个比特币,现在他威胁要起诉负责管理垃圾填埋场的地方议会,并可能使其破产,因为他希望赢得5.57亿美元的法律费用。
纽波特市议会(NCC)多次拒绝了James Howells挖掘垃圾并寻找比特币的请求,Howells正准备起诉市议会,阻止他们在该地进行其他工程。这项诉讼旨在获得4.46亿英镑(约合5.57亿美元)的损失赔偿,这一价值与他丢失的比特币的最高记录价格相符。Howells威胁说,最近宣布破产的伯明翰市政府不会是今年唯一破产的工党议会。
Howells说,10年来,他想尽了一切办法,他们就是不合作,所以现在我们只能走法律途径了。Howells在9月4日致议会的公开信中要求议会允许他在9月18日之前开始垃圾填埋场的挖掘工作。他还要求对议会在整个比特币垃圾填埋场事件中的决定是否合法进行司法审查。[2023/9/8 13:27:31]
对于上面的问题,比特币都给出了很优雅的解决方案,我们一一道来。
狗狗币联创:如果BTC达100万美元可建一座比特币寺庙:金色财经报道,狗狗币联合创始人Billy Markus在回应前微策略MicroStrategy首席执行官Michael Saylor关于现货比特币ETF相关推文时建议,如果比特币达到100万美元,可以由Michael Saylor建造一座比特币寺庙,让加密社区可以在里面向中本聪进行祷告。[2023/8/31 13:08:58]
1.账本验证问题
实际上对于第一个问题,很容易想到解决方法,那就是少数服从多数,如果某个节点的账本数据被篡改了,那么只需要和全网其他节点的数据比对,就必然能发现异常。
比特币全网未确认交易7056笔:金色财经报道,据BTC浏览器数据显示,目前比特币全网未确认交易数为7056笔。全网算力为95.89 EH/s,24小时交易速率为2.44 txs/s。当前全网难度为14.36 T,预计下次难度将下调10.63%至12.84 T,距离调整还剩5天15小时。[2021/7/13 0:46:25]
但问题在于,随着时间的推移,记录的累积,数据量会越来越庞大,记得在13年的时候,笔者下载的比特币钱包,从网络同步下载下来的交易账本数据就已经多达几十GB,如果说要对这么大的数据进行逐一传输、比对,可以说是不现实的。
在介绍比特币的解决方案前,我们先了解一个函数:Hash函数,俗称哈希函数。
关于Hash函数的细节,我们以后再描述,现在我们需要知道就是:一段数据经过Hash函数的运算后,得到一段长度很短的数据,我们称之为摘要数据,可以表示成:
报告:机构资金每周流入4380万美元至灰度比特币信托:Grayscale的新报告显示,该公司看到大量机构资金流入其BTC信托基金,在2020年上半年平均每周流入4380万美元。令人惊讶的是,尽管比特币在2020年前几个月取得了更显著的增长,但这些资金流入大多出现在第二季度。(NewsBTC)[2020/7/18]
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的所有权。
而通过公钥是无法推算出私钥的,因此也不会有泄露私钥的风险。
标签:比特币区块链比特币中国官网联系方式40亿比特币能提现吗比特币最新价格行情走势区块链工程专业学什么区块链存证怎么弄区块链技术发展现状和趋势
随着加密货币市场不断发展并引起全球关注,投资者和爱好者热切期待可能影响价格和市场动态的重大事件。本周,加密社区充满期待,因为计划解锁七个主要代币,释放约1.4亿美元的当前价值.
1900/1/1 0:00:00在FTX倒闭之后,加密货币用户似乎正在将他们的资金转移到他们在链上控制的钱包中。例如,卡尔达诺($ADA)钱包的增长在过去几天加速.
1900/1/1 0:00:00我们身处山寨币世界,无数加密货币争夺霸主地位。因此,区分哪些提供合适的投资机会非常重要。今年七月,有几种硬币吸引了投资者,每种硬币都有独特的潜力.
1900/1/1 0:00:00比特币(BTC)和以太坊(ETH)继续遭受损失,这两种加密货币在新的一周开始时都显示出看跌信号。更广泛的加密货币市场也在苦苦挣扎,比特币和以太币在过去几天分别经历了6%以上的跌幅.
1900/1/1 0:00:00在加密货币世界中,牛市和熊市瞬息万变。尽管目前市场正在下滑,但人们越来越相信,即将到来的加密货币周期在增长和普遍采用方面可以超越过去的所有周期。这种信念不仅仅是出于乐观.
1900/1/1 0:00:00简单来说 8月份,价值约4.95亿美元的代币将被解锁,这可能会影响资产价格。Sandbox将发行3.3255亿个SAND代币,占其流通量的17.19%.
1900/1/1 0:00:00