比特幣錢包生成演算法
『壹』 比特幣錢包中的比特幣地址怎麼生成
基本上是差不多的,
比特幣
直接通過錢包進行交易的。詳細的可以去CNFOL比特幣網了解下具體怎麼交易,我也說不清楚。
『貳』 比特幣是如何製造的
每隔一個時間點,比特幣系統會在系統節點上生成一個隨機代碼,互聯網中的所有計算機都可以去尋找此代碼,誰找到此代碼,就會產生一個區塊,得到一個比特幣,這個過程就是人們常說的挖礦。
目前一個1個比特幣基於目前的數據結構被分割到8個小數位,也就是0.00000001BTC,礦工們挖到比特幣最小的單位就是0.00000001BTC。
通俗點說,比特幣好比是一座由總量為2100萬個金幣組成的金山,想要得到它,就需要玩家們利用電腦的運算能力,根據現有的演算法計算出一組符合特定規律的數字。
(2)比特幣錢包生成演算法擴展閱讀:
與所有的貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。
P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。
『叄』 比特幣使用哪種演算法來生成比特幣錢包的地址
首先生成私鑰,再由私鑰算出公鑰,再由公鑰經過一系列哈希算出錢包地址。
『肆』 比特幣如何算出來的
要想了解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
『伍』 比特幣使用哪種演算法來生成比特幣錢包的地址
加密演算法,加密演算法,加密演算法。
『陸』 如何生成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
如此往復。。。
『柒』 怎樣創建比特幣錢包
當自己有了一定的比特幣後,自己可以注冊一個比特幣錢包,將自己的比特幣裝入自己的比特幣錢包。
現在我將比特幣錢包的注冊方法按步驟寫下來:
首先打開比特幣錢包注冊地址:「blockchain.info/wallet/new」
紅色方框就是我的比特幣的特址,用它來實現轉帳。
『捌』 比特幣演算法原理
比特幣演算法主要有兩種,分別是橢圓曲線數字簽名演算法和SHA256哈希演算法。
橢圓曲線數字簽名演算法主要運用在比特幣公鑰和私鑰的生成過程中,該演算法是構成比特幣系統的基石。SHA-256哈希演算法主要是運用在比特幣的工作量證明機制中。
比特幣產生的原理是經過復雜的運演算法產生的特解,挖礦就是尋找特解的過程。不過比特幣的總數量只有2100萬個,而且隨著比特幣不斷被挖掘,越往後產生比特幣的難度會增加,可能獲得比特幣的成本要比比特幣本身的價格高。
比特幣的區塊由區塊頭及該區塊所包含的交易列表組成,區塊頭的大小為80位元組,由4位元組的版本號、32位元組的上一個區塊的散列值、32位元組的 Merkle Root Hash、4位元組的時間戳(當前時間)、4位元組的當前難度值、4位元組的隨機數組成。擁有80位元組固定長度的區塊頭,就是用於比特幣工作量證明的輸入字元串。不停的變更區塊頭中的隨機數即 nonce 的數值,並對每次變更後的的區塊頭做雙重 SHA256運算,將結果值與當前網路的目標值做對比,如果小於目標值,則解題成功,工作量證明完成。
比特幣的本質其實是一堆復雜演算法所生成的一組方程組的特解(該解具有唯一性)。比特幣是世界上第一種分布式的虛擬貨幣,其沒有特定的發行中心,比特幣的網路由所有用戶構成,因為沒有中心的存在能夠保證了數據的安全性。
『玖』 比特幣產生原理
什麼是貨幣呢?貨幣就是商品(包括服務)交換的媒介。現在我們通行的貨幣是由有信譽的銀行發行的,基本上是由其信譽來擔保的。只要用的人都認可,那麼我 們就可以用它來交易。貨幣有一定的保值特性,我把我的勞動/服務/所有的商品換成貨幣後,銀行擔保我在日後的某一天,我還可以用它交換會差不多等值的東 西。這個保證的前提是,銀行不會濫發新的貨幣以及大家都信任這一點。
以前,我們用貴金屬做貨幣。因為貴金屬產量不高,貨幣新增加的速度有限,而經濟體在不斷增大,市場需要更多的貨幣來讓商品盡量的流通。有需求就有價 值,從這個意義上來說,貴金屬本身製造別的東西具備的價值是次要的,經濟體需要貨幣來流通商品這個需求才是主要的。而貴金屬產量有限,且曾經流通著的貴金 屬貨幣由於各種原因會退出市場,那麼即使是新造的貴金屬貨幣也有同樣甚至更高的價值。
Bitcoin 為什麼保值,BTC (Bitcoin 的貨幣簡稱)存在於一個龐大的 p2p 網路中。使用 Bitcoin 的群體公認了一種演算法,這種演算法在現今的條件下,每小時只會新產生大約 6 組新的 BTC ,目前一組是 50 個。也就是說,這個世界上,每個小時大約只會產生 300 個 BTC 。這個產量還會由網路自動調整難度來限制產量。你沒辦法通過修改所有人的 Client 的演算法及參數(client 是開源的)來加快貨幣產量。偽造的貨幣會被網路丟棄(除非你可以控制大部分網路節點)。
BTC 本身有什麼價值?
BTC 的價值就是交易渠道本身。一組新製造出來的 BTC 提供了把舊的 BTC 從一個帳戶轉移到另一個帳戶的數學保證。這個安全保證背後的代價是大量的計算力。生產這么一個安全通道是需要消耗大量能源的,所以整個 BTC 用戶群體,獎勵那個造幣者(目前是 50 BTC),,2012年12月份後會變成25BTC,並且每4年減半一次。
簡單說,我的理解就是,現在世界上所有的 BTC 背後都是用運行計算機的能量產生出來的,它們的總價值,(到現在一共有大約 12w 組 BTC 被生產出來,每組 50 個,市場價格大約 7.3 美金一個),應該是少於消耗掉的能源的總市場價值的。不過我想,用於生產 BTC 的能源大都原本就是不用也被浪費掉的資源。
4