首页 > 娱乐前沿 > 产经
区块链5大关键技术
梁子 2016-04-23 12:50:20

比特币区块链的关键核心技术,包括採用Hashcash演算法来进行工作量证明,让区块链中的各节点有机会参与验证,达到公正性,且交易过程採用椭圆曲线数位签章演算法来确保交易安全,并在每笔交易与每个区块中使用多次Hash函数以及Merkle Tree,不只是为了节省储存空间,更重要的是藉由将前一个区块的Hash值加入新区块中,让每个区块环环相扣,也因此做到所谓的可追蹤且不可窜改的特性,同时也使用时间戳来确保区块序列,以下便依序解释这些关键技术。0K9我酷网

关键技术 1採用工作量证明达到去中心化及公正性0K9我酷网

首先,最关键的便其工作量证明机制(Proof of Work,POW),这是一个可以让每个参与的节点可共同参与交易验证的方式,来实现一个能多方共同维护的单一系统,并共享同一份记录交易的帐本,以形成一个基于零信任基础,却能实现去中心化的P2P网路系统。0K9我酷网

工作量证明是让任一运算节点,花费时间和运算资源来计算出一组数学公式的结果,且要完成一次有效的工作量证明,需经过一连串地尝试与失败。不过,一旦这个数值被算出来后,其他参与节点也可用相关的数学公式,便能很容易去验证这个值是否有效。0K9我酷网

比特币区块链採用Hashcash演算法(杂凑现金演算法)作为工作量证明,让各节点经由POW计算来产生每一个有效的新区块,再经由其他节点验证并接受。0K9我酷网

进行POW计算的过程也被称作挖矿,很多人用解一道数学题、或是解一个数独来形容,不过,怎样才是真的算出一个有效的新区块,这些节点到底在算什幺?0K9我酷网

由于每个区块中Block Header会包含许多固定的值,其中只有Nonce值为一随机值,因此每个节点进行POW计算时要算的就是,藉由不断替换这个Nonce值,来让这个区块的Block Header Hash值,小于一个被设定好的难度目标值(Difficulty Target),至于为什幺要小于这个目标值,则是因为这个难度值意味着每个区块在理论上应该要被产生完成。0K9我酷网

这里提到的难度值(Difficulty)是指,节点要运算出低于困难度目标值的Hash值,平均需花多久时间,也就是平均要完成一次POW的时间。而比特币区块链目前设定为,大约每10分钟会有节点成功算出新的区块,不过这10分钟只是基于理论值,实际每个新区块产生的时间,有可能只需要17秒(第407062个区块的实际产生时间),也有可能需要20分钟以上(第407068个区块的实际产生时间)。0K9我酷网

Difficulty可动态调整,目前每产生2016个区块会调整一次难度,以每10分钟产生一区块估算,大约是每两周会调整一次Difficulty。 由于POW具有一定的难度,因此无法预期哪个运算节点可以最快算出新区块,藉此来确保交易验证的公正性。0K9我酷网

关键技术 2每笔交易採椭圆曲线数位签章演算法加密0K9我酷网

比特币区块链便採用椭圆曲线数位签章演算法(ECDSA),与另一种RSA演算法,都属于公开金钥加密演算法(Public Key Cryptography),公开金钥加密技术在1970年代被发明,也称为双金钥密码安全系统,每个使用者会拥有公开金钥(Public Key)与私密金钥(Private Key)这两把钥匙,公开金钥可让其他人知道,而私密金钥则只有本人知道。当A要传送一笔讯息或交易给B时,需使用B的公开金钥来将这份交易加密,而这这个加密过的讯息或交易,只有使用B的私密金钥才能解开。0K9我酷网

在比特币区块链中,比特币区块链便採用椭圆曲线数位签章演算法,每一个比特币区块链中的节点使用者,会同时拥有这两把金钥,以及一次性使用的比特币位址(Address),公开金钥可让区块链网络中的其他人知道,而私密金钥则须自行保管,可用来接收货币、进行电子签章或是发送货币,而Address就像电子邮件一样可用来当作存取比特币的地址,使用者可重複取得新的Address,且可以在离线状态下产生,不过,每个Address只能使用一次。0K9我酷网

在比特币区块链中,每一枚电子货币被视为一串数位签章,使用者要进行比特币交易时,必须将前一笔交易以及收款方的公开金钥经由Hash产生数位签章,加到电子货币那串数位签章的后方。0K9我酷网

RSA加密演算法是一种非对称的加密演算法,利用两个质数作为加密与解密用的两把钥匙,金钥长度约在40个位元到1024位元。不过比特币所採用的ECDSA能算出更短的金钥长度,也就是能够使用相对较少的资源,做到与RSA相同的安全性。在ECDSA演算法中,由私密金钥算出公开金钥很容易,但要从公开金钥推回私密金钥却很困难。0K9我酷网

关键技术 3Hashcash演算法及多种Hash函数确保资料不被窜改0K9我酷网

前面提到比特币区块链採用Hashcash演算法来进行工作量证明,Hashcash可将任意长度的资料经由Hash函数转换为一组固定长度的代码,原理是基于一种密码学上的单向杂凑函数 (One Way Hash Function),这种函数很容易被验证,但是却很难破解,还回推出原本的值。先前Hashcash演算法也被用来做阻挡垃圾邮件的机制。0K9我酷网

常使用的单向杂凑函数包括MD5、SHA-1、SHA-256、SHA-384及SHA-512等,MD5的Hash值长度为128位元,虽然广为使用,但因长度不够较容易破解,SHA-1的Hash值长度有160位元,虽比MD5好但仍然不够安全,因此美国国家安全局(NSA)又提出多种更複杂的SHA-2演算法,包括224、256、384、512位元长度的Hash值算法。0K9我酷网

Hashcash最早在1997年由Adam Back提出,并于2002 正式发表一篇描述杂凑现金系统的论文。比特币区块链採用Hashcash来建立一套几乎无法被窜改的电子现金系统,每个区块的Block Header都会被Hash成一串很难被回推的代码后,放进下一个区块中,来确保区块的正确性。0K9我酷网

关键技术 4经由Merkle Tree将大量讯息缩短成一个Hash值0K9我酷网

在比特币区块链中,每笔交易产生后,都已经被Hash成一段代码才广播给各节点,不过这样做还不够,因为在各节点的区块中,可能包含数百笔到数千笔的交易,因此,为节省储存空间并减少资源耗费,比特币区块链的设计原理採用Merkle Tree机制,让这些数百到数千笔的交易Hash值,经由两两一组形成一个新Hash值的方式,不断重複进行,直到最后产生一组最终的Hash值,也就是Merkle Tree Root,这个最终的Hash值便会被记录到Block Header中,只有32 Bytes的大小。Merkle Tree机制可大幅减少资料传输量与运算资源消耗,验证时,只需验证这个Merkle Tree的Root值即可。0K9我酷网

关键技术 5用时间戳伺服器(Timestamp Server)确保区块序列0K9我酷网

比特币採用时间戳伺服器机制(Timestamp Server),将每个区块Hash后加上一个时间戳(Timestamp)并发布出去,这个时间戳用来证明资料在特定时间的有效性,每一个时间戳章会与前一个戳章一起进行Hash,这个Hash值会在与下一个时间戳章进行Hash,因此而形成一个用来确保区块序列的链条。0K9我酷网

?0K9我酷网

【相关报导请参考「区块链」专题】0K9我酷网

上一篇  下一篇

I 相关 / Other

区块到底是什幺?

每个区块的Block Header都会包含一组Previous Block Hash值,这是将前一个区块的Block Header进行Hash Function而得到的值,因此每个区块之间,都会藉由这个无形的链条与先前的区块环环相扣。 区块链(Blockchain)

全力拼转型!英特尔推区块链开发平台Sawtooth Lake

【快讯】陈水扁声请停止审判 高院裁准全球最大半导体制造商英特尔日前一方面宣布全球将裁员1万2000人,表态将投资更多在“成长”的领域,区块链(Blockchain)正是其一项。看好Fintech网络金融的发展,英特尔推出区块

G20峰会逢9月台风季,杭州将组织核心区块防洪排涝演练

澎湃新闻(www.thepaper.cn)4月14日从浙江省防汛抗旱指挥部成员会议暨全省防汛工作视频会议上获悉,杭州市及其萧山区周密分析9月G20峰会期间不同等级强度降雨的防洪排涝情况,已研究制定应急保障方案。9月4日至5日,

你可能不知道,杭州的这个区块很有国际范!确实方便!

导语 我们都知道杭州作为世界历史文化名城是举世公认的,但是它还不是现代意义上的世界名城,那么作为现代意

台中高分子医材大楼动土 补足台湾关键技术缺口

台中高分子医材大楼动土 补足台湾关键技术缺口记者赵晓慧/台北报道财团法人塑胶中心规画兴建的“高分子医

I 热点 / Hot