該項(xiàng)目目標(biāo)是實(shí)現(xiàn)一個(gè)最小的可運(yùn)行版本的類似bitcoin的blockchain。
目的:
1. 闡述bitcoin的機(jī)制
2. 熟悉相關(guān)知識(shí)點(diǎn)
github地址:bitcoinlitelite
橢圓加密算法 crypto/key.go
貼上一篇介紹:橢圓加密算法
在blockchain中,該算法主要用于公鑰和私鑰。當(dāng)各個(gè)節(jié)點(diǎn)接受到數(shù)據(jù)的時(shí)候,需要拿出該transaction的owner的公鑰,對(duì)交易內(nèi)容進(jìn)行驗(yàn)證,驗(yàn)證成功則說(shuō)明的的確確是該owner發(fā)起的交易。
所以目前程序里面的邏輯是:
1. 用戶初始化的時(shí)候,分配給該用戶一個(gè)公鑰和私鑰。bitcoin里面一個(gè)私鑰對(duì)應(yīng)著多個(gè)公鑰,并且是base58編碼,golang原生并不是(或者我沒(méi)看到,誰(shuí)給解答下),所以暫時(shí)就一個(gè)公鑰一個(gè)私鑰。后期會(huì)考慮用上?secp256k1?方案。
2. 用戶簽名的時(shí)候,用私鑰簽名,驗(yàn)證的時(shí)候,用的是公鑰驗(yàn)證。因?yàn)椴煌挠脩羰遣粫?huì)擁有對(duì)方的私鑰的。