比特幣公鑰多少位數
❶ 比特幣公鑰怎麼查看
支持比特幣協議的應用都可以正確把這段字元串轉換成比特幣的私鑰,再轉換出公鑰,再得到一個地址,如果該地址上面有對應的比特幣,就可以使用這個私鑰花費上面的比特幣。
❷ 比特幣的私鑰和公鑰是有總數量限制嗎
使用上沒有總量限制,理論上是有限制。看公鑰有多少位了,做個簡單的高中排列組合就可在算出來數量了(是個天文數字);一個公鑰都是選取的非常好的隨機數生成器在足夠長的公鑰限制下,理論上是出現重復公鑰是不可能的。
下面是截取的專業書籍中對不同長度密鑰的計算比較
❸ 比特幣私匙的位數是多少
18點20分00秒 之前處於解密狀態,永久解密或許可以在解密狀態的時候備份錢包。(具體沒試過,你可以試一下)
❹ 比特幣私鑰多少位
比特幣
私鑰
是一個256位的
隨機數
,通過SHA-256演算法產生
❺ 比特幣的數字簽名是什麼
比特幣的數字簽名,就是只有比特幣轉賬的轉出方生成的,一段防偽造的字元串。通過驗證該數字串,一方面證明該交易是轉出方發起的,另一方面證明交易信息在傳輸中沒有被更改。
數字簽名通過數字摘要技術把交易信息縮短成固定長度的字元串。舉個栗子,牛牛發起一筆比特幣轉賬,需要先將該交易進行數字摘要,縮短成一段字元串,然後用自己的私鑰對摘要進行加密,形成數字簽名。完成後,牛牛需要將原文(交易信息)和數字簽名一起廣播給礦工,礦工用牛牛的公鑰進行驗證,如果驗證成功,說明該筆交易確實是牛牛發出的,且信息未被更改。
同時,數字簽名加密的私鑰和解密的公鑰不一致,採用非對稱加密技術。看起來好復雜,其實轉賬只需要你輸入私鑰就瞬間完成啦!
❻ 比特幣如何算出來的
要想了解bitcoin的技術原理,首先需要了解兩個重要的密碼技術: HASH碼:將一個長字元串轉換成固定長度的字元串,並且其轉換不可逆,即不太可能從HASH碼猜出原字元串。bitcoin協議里使用的主要是SHA256。
公鑰體系:對應一個公鑰和私鑰,在應用中自己保留私鑰,並公開公鑰。當甲向乙傳遞信息時,可使用甲的私鑰加密信息,乙可用甲的公鑰進行解密,這樣可確保第三方無法冒充甲發送信息;同時,甲向乙傳遞信息時,用乙的公鑰加密後發給乙,乙再用自己的私鑰進行解密,這樣可確保第三者無法偷聽兩人之間的通信。最常見的公鑰體系為RSA,但bitcoin協議里使用的是lliptic Curve Digital Signature Algorithm。 和現金、銀行賬戶的區別? bitcoin為電子貨幣,單位為BTC。在這篇文章里也用來指代整個bitcoin系統。 和在銀行開立賬戶一樣,bitcoin里的對應概念為地址。每個人都可以有1個或若干個bitcoin地址,該地址用來付賬和收錢。每個地址都是一串以1開頭的字元串,比如我有兩個bitcoin賬戶,和。一個bitcoin賬戶由一對公鑰和私鑰唯一確定,要保存賬戶,只需要保存好私鑰文件即可。 和銀行賬戶不一樣的地方在於,銀行會保存所有的交易記錄和維護各個賬戶的賬面余額,而bitcoin的交易記錄則由整個P2P網路通過事先約定的協議共同維護。 我的賬戶地址里到底有多少錢? 雖然使用bitcoin的軟體可以看到當前賬戶的余額,但和銀行不一樣,並沒有一個地方維護每個地址的賬面余額。它只能通過所有歷史交易記錄去實時推算賬戶余額。 我如何付賬? 當我從地址A向對方的地址B付賬時,付賬額為e,此時雙方將向各個網路節點公告交易信息,告訴地址A向地址B付賬,付賬額為e。為了防止有第三方偽造該交易信息,該交易信息將使用地址A的私鑰進行加密,此時接受到該交易信息的網路節點可以使用地址A的公鑰進行驗證該交易信息的確由A發出。當然交易軟體會幫我們做這些事情,我們只需要在軟體中輸入相關參數即可。 網路節點後收到交易信息後會做什麼? 這個是整個bitcoin系統里最重要的部分,需要詳細闡述。為了簡單起見,這里只使用目前已經實現的bitcoin協議,在當前版本中,每個網路節點都會通過同步保存所有的交易信息。 歷史上發生過的所有交易信息分為兩類,一類為"驗證過"的交易信息,即已經被驗證過的交易信息,它保存在一連串的「blocks」裡面。每個"block"的信息為前一個"bock"的ID(每個block的ID為該block的HASH碼的HASH碼)和新增的交易信息(參見一個實際的block)。另外一類指那些還"未驗證"的交易信息,上面剛剛付賬的交易信息就屬於此類。 當一個網路節點接收到新的未驗證的交易信息之後(可能不止一條),由於該節點保存了歷史上所有的交易信息,它可以推算中在當時每個地址的賬面余額,從而可以推算出該交易信息是否有效,即付款的賬戶里是否有足夠余額。在剔除掉無效的交易信息後,它首先取出最後一個"block"的ID,然後將這些未驗證的交易信息和該ID組合在一起,再加上一個驗證碼,形成一個新的「block」。 上面構建一個新的block需要大量的計算工作,因為它需要計算驗證碼,使得上面的組合成為一個block,即該block的HASH碼的HASH碼的前若干位為1。目前需要前13位為1(大致如此,不確定具體方式),此意味著如果通過枚舉法生成block的話,平均枚舉次數為16^13次。使用CPU資源生成block被稱為「挖金礦」,因為生產該block將得到一定的獎勵,該獎勵信息已經被包含在這個block裡面。 當一個網路節點生成一個新的block時,它將廣播給其它的網路節點。但這個網路block並不一定會被網路接受,因為有可能有別的網路節點更早生產出了block,只有最早產生的那個block或者後續block最多的那個block有效,其餘block不再作為下一個block的初始block。 對方如何確認支付成功? 當該筆支付信息分發到網路節點後,網路節點開始計算該交易是否有效(即賬戶余額是否足夠支付),並試圖生成包含該筆交易信息的blocks。當累計有6個blocks(1個直接blocks和5個後續blocks)包含該筆交易信息時,該交易信息被認為「驗證過」,從而該交易被正式確認,對方可確認支付成功。 一個可能的問題為,我將地址A裡面的余額都支付給地址B,同時又支付給地址C,如果只驗證單比交易都是有效的。此時,我的作弊的方式為在真相大白之前產生6個僅包括B的block發給B,以及產生6個僅包含C的block發給C。由於我產生block所需要的CPU時間非常長,與全網路相比,我這樣作弊成功的概率微乎其微。 網路節點生產block的動機是什麼? 從上面描述可以看出,為了讓交易信息有效,需要網路節點生成1個和5個後續block包含該交易信息,並且這樣的block生成非常耗費CPU。那怎麼樣讓其它網路節點盡快幫忙生產block呢?答案很簡單,協議規定對生產出block的地址獎勵BTC,以及交易雙方承諾的手續費。目前生產出一個block的獎勵為50BTC,未來每隔四年減半,比如2013年到2016年之間獎勵為25BTC。 交易是匿名的嗎? 是,也不是。所有BITCOIN的交易都是可見的,我們可以查到每個賬戶的所有交易記錄,比如我的。但與銀行貨幣體系不一樣的地方在於,每個人的賬戶本身是匿名的,並且每個人可以開很多個賬戶。總的說來,所謂的匿名性沒有宣稱的那麼好。 但bitcoin用來做黑市交易的還有一個好處,它無法凍結。即便警方追蹤到了某個bitcoin地址,除非根據網路地址追蹤到交易所使用的電腦,否則還是毫無辦法。 如何保證bitcoin不貶值? 一般來說,在交易活動相當的情況下,貨幣的價值反比於貨幣的發行量。不像傳統貨幣市場,央行可以決定貨幣發行量,bitcoin里沒有一個中央的發行機構。只有通過生產block,才能獲得一定數量的BTC貨幣。所以bitcoin貨幣新增量決定於: 1、生產block的速度:bitcoin的協議里規定了生產block的難度固定在平均2016個每兩個星期,大約10分鍾生產一個。CPU速度每18個月速度加倍的摩爾定律,並不會加快生產block的速度。 2、生產block的獎勵數量:目前每生產一個block獎勵50BTC,每四年減半,2013年開始獎勵25BTC,2017年開始獎勵額為12.5BTC。 綜合上面兩個因素,bitcoin貨幣發行速度並不由網路節點中任何單個節點所控制,其協議使得貨幣的存量是事先已知的,並且最高存量只有2100萬BTC
❼ 每個比特幣都有一個不一樣的私鑰嗎
每個人的比特別錢包中有多個比特幣地址,每個比特幣地址代表一定數量的比特幣。而比特幣地址是通過一個公鑰通過哈希(RPIEMD+SHA)生成的,這個公鑰又是由私鑰通過橢圓曲線(ECC)生成的。私鑰保存在比特幣錢包中,不應泄露出去。而公鑰在付款交易時,需要和比特幣地址一起,通過交易記錄公開發布,由區塊鏈系統驗證付款交易的有效性。
❽ 如何生成bitcoin 地址長度不一樣
1.首先你要知道公鑰和私鑰的概念(已經懂的不用看這部分了)
公鑰私鑰是現代密碼學分支非對稱性加密裡面的名詞,通常都是用公鑰加密信息,用私鑰解密信息,為什麼要這樣? 因為你看電視劇的時候,發電報那種都是對稱性加密,這種加密方式缺點是顯而易見的,如果被人知道了密鑰和加密方法,於是按照加密方法反著來就能解密。 一直到非對稱性加密這種情況才有所改觀,公鑰就是可以對全世界公開的密鑰,比如你和google通訊,用google給的1024位的公鑰加密,送到google那裡只有他有對應的私鑰,只有他能解密,於是就保證了通訊安全
2.比特幣主要用了ECDSA,也就是橢圓曲線簽名演算法,這個演算法有兩個特性,注意這兩點對下面至關重要
a.只要知道私鑰,可以算出相應的公鑰;
b.你用私鑰簽名過的東西,可以用公鑰算一下是不是你簽的;
3.知識准備完了,下面開始講比特幣的交易,比特幣其實沒有錢包,只有交易賬單,整個比特幣就是一大堆交易賬單
比如:
賬單1 從A轉到B 轉了XXX比特幣
賬單2 從B轉到C和D 轉了XXX比特幣
賬單3 從C轉到E 轉了XXX比特幣
。。。。任何人只要下載了客戶端都能接收到從比特幣成立那一天起的所有賬單,所以,只要把所有賬單都下載全了自然知道每個賬戶上應該剩多少錢(這里仔細思考下)
4.比特幣的賬戶,就是剛才講的一段公鑰
5.下面我開始貼一個比特幣的賬單,這里是核心部分了!!! 每個賬單都是一段數據,你簽完了以後會發送到全網,把數據結構逆向成易懂的中文解釋如下:
FROM(誰發送的,包括兩部分)
Previous tx: 你要花的這筆錢的那個賬單的id, 也就是說,你花的任何一筆錢都應該有人轉給你過,需要出示那個賬單的id
scriptSig: 你對這筆交易的簽名,就是把單子用你的私鑰做hash,只有你能做這個hash
TO(誰接受,包括兩部分)
Value: 要發多少
scriptPubKey: 對方的公鑰,比特幣賬戶就是一段公鑰
6.等你簽完單子以後,開始往全網發送,怎麼發呢? 比特幣通訊沒那麼復雜,你可以類比成IRC頻道,但和普通的「IRC」不同的是,任何一個客戶端都是一台「IRC」伺服器,當你啟動客戶端的時候,會接收到周圍的有公網IP的客戶端地址,就是「伺服器」列表,這個列表也不斷的刷新,都是其他的比特幣用戶,於是你在這個「IRC」喊一句話的時候,周圍的人會聽到,進而擴散的全世界。
7.把簽單發送到全世界以後,所有收到這個單子的客戶端會效驗你這個單子對不對,比如會效驗你的簽名,是不是你發的,會效驗你是否有那麼多錢(根據歷史交易可以推算出你有多少錢可以花)
如果這個交易大家算過沒問題了,基本上就算轉賬成功了。
8.實際上現在對方已經接受了比特幣,但是要想花的話,他得有那個地址(公鑰)對應的私鑰。於是他就能填下一個單子的 FROM頭部,Previous tx就是剛才這筆交易的序號,scriptSig填用他私鑰簽名過的hash
如此往復。。。