比特幣學(xué)習(xí)之比特幣地址

比特幣地址是一個由數(shù)字和字母組成的字符串,可以與任何想給你比特幣的人分享著瓶。由公鑰(一個同樣由數(shù)字和字母組成的字符串)生成的比特幣地址以數(shù)字“1”開頭半抱。下面是一個比特幣地址的例子:1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy

在上面介紹密鑰的文章中我們介紹了比特幣地址是從公鑰通過一種單向加密的算法得到的获高。也就是我們經(jīng)常說的哈希算法。在比特幣中躬拢,經(jīng)常使用的哈希算法有以 下兩種: SHA(Secure Hash Algorithm)躲履,RIPEMD(the RACE Integrity Primitives Evaluation Message Digest)。特別是 SHA256 和RIPEMD160估灿。

現(xiàn)在就列出生成比特幣地址的公式崇呵,其實(shí)非常簡單。

A = RIPEMD160(SHA256(K))

字母A就代表比特幣地址(adress),字母K代表公鑰(key)馅袁。這種進(jìn)行了兩次哈希加密方式也叫雙哈希加密域慷。這樣就增強(qiáng)了比特幣地址的安全性。 這樣得到的地址其實(shí)并不是我們經(jīng)常看到的比特幣地址犹褒。我們經(jīng)车种希看到的地址是經(jīng)過“Base58Check”編碼的。Base58編碼比Base64編碼少了6個容易混淆的數(shù)字和字母: 0(數(shù)字 0)叠骑、O(大寫字母 o)李皇、l(小寫字母 L)、I(大寫字母i)宙枷,以及“+”和“/”兩個字符掉房。這種編碼格式不僅實(shí)現(xiàn)了數(shù)據(jù)壓縮,保持了易讀性慰丛,還具有錯誤診斷功能卓囚。

圖1


上圖就簡單說明了這個過程。

我們通過一段C++程序來說明一下這個過程诅病,看看是如何從私鑰產(chǎn)生一個Base58Check格式編碼的比特幣地址的哪亿。

#include <bitcoin/bitcoin.hpp>

int main()

{

//1.先得到一個私鑰

bc::ec_secret secret = bc::decode_hash("038109007313a5807b2eccc082c8c3fbb988a973cacf1a7df9ce725c31b14776");

//2.通過私鑰得到公鑰。

bc::ec_point public_key = bc::secret_to_public_key(secret);

std::cout << "Public key: " << bc::encode_hex(public_key) << std::endl;

// 3.創(chuàng)建比特幣地址 通過把公鑰進(jìn)行哈希計(jì)算得到一個哈希值贤笆。

//計(jì)算p2pkh公共密鑰哈希地址

const bc::short_hash hash = bc::bitcoin_short_hash(public_key);

//這個地址(unencoded_address)一共占25字節(jié)蝇棉。其中版本號(1字節(jié)),hash數(shù)據(jù)(20字節(jié))芥永,校驗(yàn)碼(4字節(jié))

bc::data_chunk unencoded_address;//聲明一個地址

unencoded_address.reserve(25);//

unencoded_address.push_back(0);//放入版本號篡殷,當(dāng)前版本號為0

bc::extend_data(unencoded_address, hash);//放入哈希數(shù)據(jù)。這個過程估計(jì)就包括了雙哈希計(jì)算了恤左。

bc::append_checksum(unencoded_address);//放入校驗(yàn)碼贴唇。

const std::string address = bc::encode_base58(unencoded_address);//進(jìn)行base58編碼。得到最終比特幣地址飞袋。

std::cout << "Address: " << address << std::endl;

return 0;

}

大家可以參照下圖(圖2)看上面的代碼。希望大家對比特幣地址有點(diǎn)了解链患。

圖2

大家如果有安裝好了比特幣的編譯環(huán)境巧鸭。可以嘗試編譯一下麻捻。下面是編譯命令和結(jié)果纲仍。供參考。

# Compile the addr.cpp code

$ g++ -o addr addr.cpp $(pkg-config --cflags --libs libbitcoin)

# Run the addr executable

$ ./addr

Public key: 0202a406624211f2abbdc68da3df929f938c3399dd79fac1b51b0e4ad1d26a47aa Address: 1PRTTaJesdNovgne6Ehcdu1fpEdX7913CK

7


區(qū)塊鏈研習(xí)社比特幣源碼研讀班贸毕,black

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郑叠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子明棍,更是在濱河造成了極大的恐慌乡革,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沸版,居然都是意外死亡嘁傀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門视粮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來细办,“玉大人,你說我怎么就攤上這事蕾殴⌒ψ玻” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵钓觉,是天一觀的道長娃殖。 經(jīng)常有香客問我,道長议谷,這世上最難降的妖魔是什么炉爆? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮卧晓,結(jié)果婚禮上芬首,老公的妹妹穿的比我還像新娘。我一直安慰自己逼裆,他們只是感情好郁稍,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胜宇,像睡著了一般耀怜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桐愉,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天财破,我揣著相機(jī)與錄音,去河邊找鬼从诲。 笑死左痢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的系洛。 我是一名探鬼主播俊性,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼描扯!你這毒婦竟也來了定页?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绽诚,失蹤者是張志新(化名)和其女友劉穎典徊,沒想到半個月后杭煎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宫峦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年岔帽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片导绷。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡犀勒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妥曲,到底是詐尸還是另有隱情贾费,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布檐盟,位于F島的核電站褂萧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏葵萎。R本人自食惡果不足惜导犹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羡忘。 院中可真熱鬧谎痢,春花似錦、人聲如沸卷雕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漫雕。三九已至滨嘱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浸间,已是汗流浹背太雨。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留发框,地道東北人躺彬。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像梅惯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仿野,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 〇铣减、序言 貨幣由于其天然屬性決定了其與安全不可分割的聯(lián)系,從最早的金庫脚作、保險柜葫哗、鏢局到后來的ATM機(jī)缔刹、運(yùn)鈔車;從存...
    怒馬2048閱讀 38,727評論 4 79
  • 多么美的夜傲诱搿校镐!它使人類和牲畜擺脫了白天的桎梏,沉浸在和諧的倦怠之中捺典,它獨(dú)特的溫馨的魅力…… 想你的夜鸟廓,道一聲晚安,...
    蕭迪閱讀 188評論 0 0
  • 民以食為天襟己,美食永遠(yuǎn)是生活的主流引谜!隨著生活水平的提高,人們對食的要求也越來越講究了擎浴。不再像以前為了生活而填飽肚子就...
    晨曦_海風(fēng)閱讀 1,062評論 0 6
  • 鄰家有位佳人员咽,智慧與美化身 西施尤憐其貌,才思堪比文君 唇紅齒白贮预,明眸素顏長發(fā)垂肩 靜如天使在側(cè)贝室,一笑即傾君心 不...
    孤獨(dú)的北風(fēng)閱讀 242評論 0 1
  • 《奔跑吧兄弟》第三季最新一期茫藏,鄧超是繼承人误趴,王祖藍(lán)打死都不相信。為什么王祖藍(lán)這么懷疑鄧超是外族人呢务傲?因?yàn)橥踝嫠{(lán)得知...
    蘇蘇家的安迪閱讀 2,060評論 1 3