繪制比特幣交易原理思維導圖
Ⅰ 硬核干貨!比特幣狗狗幣等原理是什麼
比特幣和狗狗幣的原理其實就是,不同類型的挖掘選擇只是所用軟體不同而已。難道虛擬貨幣的挖掘聽起來比一般意義上的挖礦復雜得多,其實這也不難理解,虛擬貨幣挖掘簡單的說就是讓顯卡進行數學運算,按照計算量的百分比來分配虛擬貨幣。在金融市場中,虛擬貨幣是如何生存的?數字貨幣從誕生之日起,就有好幾種要素支撐著其生態鏈,而它們不能進行開采交易和支付。獲得虛擬貨幣的途徑也離不開挖礦。
使用加密貨幣進行交易的任何商店都不需要交稅,也不需要大量的資金管理費用。國際流通十分便利,是世界各地老百姓、商戶十分歡迎的貨幣交易方式。沒有中央銀行的控制,數量有限,能夠完全抵禦通脹壓力。使普通百姓的財富保值、增值。
Ⅱ 比特幣虛擬貨幣支付系統工作原理結構圖
一旦你在電腦或手機上安裝一個比特幣錢包,它會生成你的第一個比特幣地址,並且在你需要的任何時候都可以生成更多的地址。你可以將你的地址告訴你的朋友們,他們便能夠通過這個地址向你支付比特幣,反之亦然。事實上,這跟電子郵件的運作方式是非常相似的,除了比特幣地址應該只被使用一次。
Ⅲ 簡述比特幣的運行原理。
比特幣是一種網路虛擬貨幣,數量很有限,類似於我們以前玩的Q幣。可以兌換成大多數國家的貨幣,你也可以用比特幣購買一些虛擬物品,比如網路游戲當中的裝備等。只要軟體接受支付,你也可以使用比特幣購買現實生活中的物品。
從技術上講,比特幣(BitCoin)是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。與其他貨幣不同,比特幣不依靠特定貨幣機構發行,它是依據特定演算法,通過大量的計算產生。
Ⅳ 誰知道比特幣是什麼它是怎麼運作的
比特幣是一種P2P形式的虛擬的加密數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。與所有的貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生。
比特幣及其眾多衍生品被稱為加密貨幣。 該系統使用了加密技術來生成新幣,以及進行轉帳驗證。 加密序列有以下幾個目的:使交易幾乎不可能被偽造;使貨幣銀行或貨幣錢包可作為數據輕松轉移;驗證比特幣從一個用戶轉移到另一個用戶。
在比特幣被使用之前,必須先由系統生成或挖礦得到新幣。 這些區塊的編碼和解碼過程需要大量的算力,那些成功生成新區塊的用戶將獲得一些比特幣或一部分交易費用作為獎勵。
這樣一來,將比特幣從一位用戶轉移到另一位用戶的同樣過程中,在同等基礎上也為貢獻給比特幣網路的更多算力創造了需求,從而生成出可供使用的新幣。
(4)繪制比特幣交易原理思維導圖擴展閱讀:
比特幣的作用
比特幣就像現實中的金幣一樣:它們具有價值,也可以像金幣一樣用於交易。 可以透過比特幣進行投資——買入加密貨幣並從其價格波動中獲利。 每天都有新的地方將比特幣列入支付方式。
比特幣沒有一個正式價格。 比特幣的價格是根據人們願意支付的價格來確定的。比特幣的價格通常以一枚比特幣的花費來表示。 但是,交易所一般會允許以任何金額購買,即可以購買少於一枚比特幣。 Libertex 的價格指數就是即時查看比特幣價格的優質資源。
參考資料來源:網路-比特幣
Ⅳ 小白如何了解比特幣
多去比特幣新聞網看比特幣新聞,以及行情,技術
比特幣的誕生
比特幣的誕生應該算在2008年的11月1號的那一天,一個化名為「中本聰」的人在網上發表了一篇論文。 在這篇論文里,他詳細的描述了一種嶄新的貨幣體系,他將之命名為「比特幣」。
隨後,次年的1月3日,首個比特幣程序在中本聰的手裡誕生,與之一起誕生的是最早挖礦所得的50個比特幣。在那之後他開始逐漸淡出,直到徹底的消失。
人們至今也沒找出這個叫中本聰的人的真實身份,即使如今的運營商、互聯網巨頭與政府已將人們在網路上的行跡牢牢掌握在了手裡。
他在發言時會經常切換美式和英式英語,他隨機在全天不同的時間上線,以隱瞞自己的國籍和時區;他隱藏自己的ip地址,加密自己的郵件,故意偽造一些寫作和發言風格來混淆視聽;此外他還是一名造詣頗深的密碼學專家,對了,他發表論文的地方就叫做 "密碼學郵件列表"。
所以比特幣從誕生時起就帶上了一種黑客精神:對抗任何勢力所強加的審查。
當然我們也可以這么看: 如果一個發明了匿名貨幣系統的黑客,卻連自我身份都不能匿名的話,那整件事會變成一個笑話。
但是所幸,中本聰沒讓我們失望。
1. 什麼是貨幣
我發現要講清楚什麼是比特幣,這一節是無論如何也跑不了的了。我不是什麼經濟領域的專家,我只能很粗淺且只能在很直觀的意義上講述這個問題。(不過就標題所表達出來的本文主旨而言,似乎也足夠了)
高中的課本里有講過(還記得嗎?) , 貨幣是儲存價值的媒介,一種東西要成為貨幣,最重要的,他必須滿足:
1) 稀缺性。
這就是為什麼黃金可以而沙子不能被當作貨幣的原因。稀缺性可以理解為獲得它的難度,越是稀缺要獲得它就越難。 一個直觀的認識是這樣的:假設你一個月的薪水是5000元,它意味著人民幣的稀缺程度恰好到了這樣一個度,即你要付出一個月的勞動才能獲得5000個一元。 你不會同意以5000粒沙子來支付你的薪水,是因為與其通過勞動一個月來獲得它,你大可以去沙灘走一圈就輕輕鬆鬆地得到了。
那麼現在的金融系統是如何保證貨幣的稀缺性的呢?控制發行。貨幣的發行是被牢牢掌握在中央銀行手中的,這樣貨幣的發行量才能做到可控(所以你現在知道了,私自印鈔是違法的)。回到剛剛那個例子, 你同意以5000元來支付你一個月的薪水,是因為人民幣發行量剛好到了這個度。如果此時的人民幣發行量翻倍了,稀缺度相應降低, 這時候你就應該要求以1萬元來支付你的薪水了(但市場的響應往往不會這么快,在這期間你的財富其實是被剝奪了--你的勞動本該獲得一萬元卻只得到5000元的回報)。
2)交易性
貨幣存在的目的當然是為了交易。就像很多人告訴你的那樣,錢是用來花的,不是用來帶進棺材的。所以除了滿足稀缺性以外,一種東西它越是方便交易,那麼他就越符合理想貨幣的標准。所以在貨幣史上,銀元代替了貝殼,紙幣代替了銀元,數字貨幣正逐漸取代紙幣。
這里所說的「交易」,是指財產從一方轉移到另一方,即一方的財產減少相應的另一方增多。對實物貨幣來說,它發生得非常自然,甲要給100元乙,當100元鈔票從甲的手裡轉移到乙的手裡的那一瞬間,交易完成了,甲的財產減去了100元而乙的財產增加了100元,這個過程中沒有第三方的參與,完全是甲和乙之間的私密行為;然而當交易發生在數字貨幣層面上時,就沒這么簡單了,甲要給100元給乙,如何確保交易完成了呢?假設甲和乙在各自的電腦上記錄了自己的財富數額的話,那麼如何確保乙在給自己增加了100元的時候甲如實地給自己減去了100元呢?這個時候我們不得不要引入第三方了--我們稱之為「銀行」的那個傢伙。 當甲要轉移100元給乙時,他不是直接給乙而是給銀行, 「請把我的100元轉給乙」 ,於是銀行在甲的帳目上扣掉100元,再在乙的帳目上加上這100元。(我們假設它慷慨地不收取任何交易費)
以上所說的就是現代貨幣系統的一個粗廓模型,這個模型最大的弊端在於:人們不得不去信任一個中心系統。
數字貨幣的交易必須依賴銀行,而一個人的銀行賬號可能會被審查、限制甚至是剝奪。當一方想要給另一方轉移自己的財富時,銀行可以收取高昂的費用或者直接拒絕(比如你試試匯一筆錢給美國的親戚)。
貨幣的發行必須依賴中央銀行。好吧,這已經是一個廣為人知的秘密了:貨幣一直在貶值,或者說貨幣一直在超額發行(想想20年前的100塊跟現在的100塊)。 我引用兩段話, 一段是凱恩斯說的, 「通過連續的通貨膨脹過程,政府可以秘密地、不為人知地沒收公民財富的一部分。用這種辦法可以任意剝奪人民的財富,在使多數人貧窮的過程中,卻使少數人暴富。」, 另一段,出自哈耶克, 「政府無法克制濫發貨幣的沖動」。
那麼有沒有可能設計出一套貨幣系統,在這個系統里我們不需要一個中心機構,不用被迫去信任任何的第三方, 使貨幣的發行透明可控,貨幣的交易私密而安全呢?
你猜?
2. 什麼是比特幣
所以我們現在可以回答到了,比特幣是一個發行去中心化和交易去中心化的電子貨幣系統。在這個系統里,貨幣的發行量是透明且可預期的,貨幣的交易利用整個網路的協同合作來保證交易的安全。
下面我將逐步拆解比特幣的原理。需要注意的是,比特幣作為一個已經實際在使用的產品,它本身有著非常豐富的細節。本篇目的是向沒有技術背景的讀者講述比特幣的基本原理,因此並不會涉及到這些細節。比如說錢包的地址其實並不是公鑰,而是公鑰的二次哈希值; 區塊鏈的難度要求並不是簡單的把所有區塊鏈的內容做一次哈希運算;等等。但是為了敘述的簡潔性,在不影響對基本原理的講解下這些都做了簡化處理,希望大家能夠理解。
2.0. 比特幣網路 -- 由眾多運行著比特幣程序的節點組成
比特幣是一個由眾多平等的節點組成的網路。
一個節點就是一個比特幣程序,任何能夠連上網和具有一定計算能力的機器都能運行這個程序 -- 所以你家裡的電腦也可以作為比特幣網路里的節點:)
節點之間是可以互相通訊的,同時比特幣有一套機制可以讓一個節點向其他所有節點發出消息,這個行為被稱為「廣播」。
2.1. 區塊鏈 -- 一個公共的賬簿
我們先回到銀行的例子。銀行最基本的功能,無非是維護一個賬簿,而這個賬簿只需如實記錄每一筆交易而已。比如X年X月X日,王小明轉了30塊錢給張大毛;Y年Y月Y日,張大毛轉了12塊錢給李小豆,諸如此類。 根據這個賬簿我們可以查到一個人的所有交易記錄,因而也就能推算出這個人此刻的賬戶余額為多少。比如李小豆從建銀行帳號開始,轉進的交易合計500元,轉出的交易合計300元,那麼可以算出此時李小豆賬戶余額一定是200元。
維護好這個賬簿,並且作為唯一的維護者(只有銀行才有權力查看和修改), 銀行作為一個交易中心的職責就完成了。
比特幣也有賬簿,但是與銀行不同的是,這個賬簿是公開的,任何人可以去查看和審核它。
這個賬簿被稱為"區塊鏈"。你可以把區塊鏈想像成一個小冊子,冊子的每一頁寫滿了交易信息,並且不斷有新的頁加入進來。
2.2 錢包 ---由一對公鑰和私鑰構成的的賬戶
上面一小節,解釋了什麼是比特幣的賬簿。這一小節將解釋這個賬簿里資金的歸屬權問題,亦即比特幣的帳戶系統。
比特幣里的帳戶跟銀行的帳戶有本質的區別。
在銀行賬戶下,銀行記錄下了該賬戶所有者的身份信息(回想一下你去銀行開戶時提交的資料:照片、身份證、電話號碼、家庭住址....),因而只要你能向銀行證明你的身份,你也就獲得了你名下財產的所有權。在這種模型下,銀行扮演了一個全知全能的上帝角色:他知曉現實人們的財富信息。我們除了祈禱上帝不要把我們的信息泄露出去或者利用它干壞事以外,別無他法。
在比特幣的世界裡,並沒有銀行這樣一個機構,它不會強制人們暴露自己的身份以換取資金的安全。比特幣的帳戶只是簡單的由兩串數字構成,分別被稱為「公鑰」和「私鑰」,除此之外再無其他。
這個兩個數字所具有的數學特性 -一個被私鑰加密過的數據只能通過公鑰來解開,所謂的非對稱加密-使它們能夠完美的實現一個帳戶(比特幣世界裡被稱為錢包)需要的功能。
我們把公鑰作為帳戶地址 --在比特幣世界裡也稱錢包地址 --它類似於銀行系統里的帳號,就是當你告訴別人「請給我的帳號打300塊錢」時,需要告訴別人的那一串數字。對銀行來說,它是「招商銀行6214850200251100」,對比特幣而言,它是「 」。
私鑰,是證明錢包所有權的*唯一*憑證,你通過證明你是該錢包的私鑰持有者來獲得該錢包的所有權。注意,和銀行賬號的密碼不同的是,你丟失了密碼還可以通過證實自己的身份來找回,但你一旦丟失了密鑰那這個錢包里的資金就再也找不回了。
因為公鑰和私鑰所具備的非對稱加密的美妙特性,錢包的所有者並不需要通過出示私鑰來證明自己持有它。他只需要出示一段用私鑰加密過的文字,驗證者能用公鑰(即錢包地址)解開這段文字即能證明。
那麼怎麼生成一對這樣的數字呢?
相比於銀行開戶的繁瑣手續,你唯一需要的只是一個實現了該功能的數學軟體。
感謝數學。
2.3 區塊 --- 有難度要求的賬簿頁
前面提到,區塊鏈就是一個賬簿,一個區塊就是這個賬簿里固定大小的一頁。(比特幣規定區塊大小不超過1M,而一筆交易大約250位元組大小,因此一個區塊平均能寫下4000筆左右交易。)
區塊鏈是公共的,每個人都可以下載,驗算和查看區塊鏈里的交易信息。同時每個人也都可以向區塊鏈增加區塊,只是我們需要一種機制來防止壞人們通過提交大量的區塊來拖垮整個網路。這個機制的核心在於我們要使區塊的構造變得有代價,代價大到不可能在短時間內構造出大量的區塊。
比特幣要求,新的區塊必須使區塊鏈具有某種特徵的哈希值才能被允許加入。 哈希值是一種數學運算(感謝數學!),你可以簡單理解為對數據的摘要,不同的數據有不同的哈希值,即使兩個數據只相差一個位元組,他們對應的哈希值也會截然不同。
比特幣通過「要求區塊鏈的哈希值具有某種特徵」來控制構造區塊的難度,這個特徵其實就是要求哈希值開頭的幾位數字為0. 比方說當前比特幣要求哈希值前4位必須位0,我們用P表示當前的區塊鏈,用B表示當前構造的區塊,那麼P+B的哈希值前4位必須為0該區塊B才能被允許加入區塊鏈中。 這里要注意三點, 1. 要構造出這樣一個區塊沒有捷徑,必須通過大量的計算,一遍一遍的往B里放隨機數直到P+B的哈希值滿足要求為止。2. 哈希值前面為0的位數越多,要構造出這個區塊的難度就越大。
好了,我們現在有了控制區塊構造難度的工具了,那麼比特幣通過什麼樣的規則來控制難度呢?
比特幣規定區塊鏈應保持在平均每兩周時間增加2016個區塊(也就是平均10分鍾一個)的速度上。 也就是說,每增加2016個區塊,系統就會算出產生這2016個區塊的時間,如果它小於兩周那麼就提高接下來2016個區塊的難度(比如從要求哈希值前3個必須為0提高到前4個為0), 如果它大於兩周就降低難度(比如從要求4個0降低到3個0), 這樣從長遠來看,就使區塊鏈平均以每10分鍾一個的速度增加了。
也因此可以推論,區塊鏈的難度要求與全網構造區塊的算力成正相關關系。也就是說,參與構造區塊的算力增加那麼難度要求就會提高,相反則會降低,這樣才能使區塊鏈以固定的速度增加。
上面提到,讓構造區塊變得有難度,是為了防止被壞人攻擊。同時,它還有一個作用是防止壞人們將一筆錢花兩次(所謂雙花問題)。 我們看如下一個比特幣的應用場景:
小張要用比特幣在小李那裡網購一個商品,
1) 小李用數學軟體生成好一個比特幣錢包,並將該錢包地址(公鑰)告訴小張。
2) 小張選取了自己一個有足夠余額的錢包,並用這個錢包的私鑰簽發了一筆交易(該交易把一部分比特幣發到小李的錢包地址上),然後把交易廣播給全網路。
3)網路中的一些節點把該交易收納到當前正在構造的區塊中。 第一個成功構造出合法區塊的節點把該區塊廣播給全網路,得到全網路的認可被加到區塊鏈上。
4) 小李發現區塊鏈上已經有一個區塊包含了指向自己錢包地址的交易,並且交易金額正確。 小李隨即給小張發貨。
5)小張發現小李已經發貨,這時他開始重新構造一筆交易,試圖把剛剛發給小李的錢發到自己另外的一個錢包里。這個時候他不能再把這筆交易廣播出去了,因為網路中的其它節點會發現該交易是不合法(花掉一筆已經花掉的錢)而直接拒絕掉, 小李只能自己構造一個包含了該交易的區塊,並且試圖說服網路中的其它節點他的這個節點才是合法而剛剛那個(包含發給小李交易的區塊)是不合法的, 這樣就能實現他一筆錢花兩次的目的。
比特幣規定當區塊鏈發生分叉時(即出現了兩個或以上互斥的合法區塊)時,應該追隨最長的那條。 那意味著小張要實現自己雙花目的,他必須在產生了小李那個區塊後,馬上構造出兩個區塊來,才能說服其他節點跟隨自己的這條鏈。 要達到這個目的,當前時間內他必須擁有(或者接近擁有了)全網51%的算力, 才能搶在其他所有節點之前構造出兩個區塊出來。
2.4 礦工 --- 通過挖礦來爭奪記賬權的區塊鏈維護者們
前一節我們講到,區塊鏈的難度實際上是對區塊鏈的保護,這個難度要求越高區塊鏈就越免於被壞人攻擊。換個方式表述就是,全網構造區塊的算力保障了區塊鏈的安全,全網的算力越高,那麼壞人們獲得全網51%算力的難度就越大,因此越不容易被攻擊。
那麼我們如何激勵節點們貢獻出自己的cpu跟電力來提高全網的算力呢? 答案是區塊獎勵。
比特幣規定,成功構造出合法區塊的節點會獲得一部分比特幣作為獎勵,這部分比特幣是系統生成的,他類似於淘金業里的挖礦,通過辛勤的勞動增加了黃金(比特幣)的流通總量,因此構造區塊的過程被稱為「挖礦」,企圖通過挖礦來獲得區塊獎勵的節點被稱為「礦工」。
挖礦的意義:
1) 它激勵節點們貢獻出算力來保護網路
2) 它實現了一種公平的方式發行比特幣,因為不存在一個中央發行機構。
除了區塊獎勵外,交易者還可以通過額外支付一筆交易費給礦工們來鼓勵他們將自己的交易收納到它的區塊里。這樣當區塊獎勵趨於0時(比特幣總量2100萬枚,意味著越到後面區塊獎勵會越少), 因為有交易費的存在,礦工們也會繼續維護整個網路。值得注意的是這里的交易費跟銀行轉賬費有所不同,銀行的轉賬費是由銀行自上而下規定的,比特幣的交易費是由使用者自由設置自下而上競爭的結果(如果當前交易數量很多而你給的交易費太低的話,可能不會被礦工們收取。)
亦即,礦工成功挖到區塊時,他將獲得 1)區塊獎勵 2)該區塊內所有交易的交易費。
2.5 總結
比特幣的核心是一個公共的賬簿--區塊鏈,每個人都可以核算查看這個賬簿里的交易信息。這個賬簿里不會記錄任何真實世界裡的個人信息,比特幣保護了使用者的隱私。
通過非對稱加密,用戶可以不用出示密鑰就可以證實自己是該密鑰的持有者。因此提供了一個安全的不用信賴任何第三方(對比銀行,你必須信賴它不把你的賬號密碼泄漏出去)的方式發起一筆交易。
因為比特幣是開放的,意味著任何人都可以攻擊比特幣網路。通過控制區塊的難度,使比特幣網路免疫於大部分的攻擊除非攻擊者獲取了接近全網51%的算力。而礦工們是比特幣網路的保護者,比特幣通過區塊獎勵和交易費的方式激勵他們貢獻出自己的cpu,組成巨大的算力屏障,使得任何組織或個人想要發起51%算力攻擊都成為不可能。
Ⅵ 風靡全球的「比特幣」到底是如何製造出來的
比特幣屬於虛擬數字貨幣。這是由開放源碼(計算方法公開)P2P軟體通過大量計算,利用整個網路的分布式資料庫進行交易確認而產生的。擁有交易快捷,不可偽造等特點,具有明顯的“去中心化”特徵。
一台涉及比特幣發行的電腦被稱為“挖礦節點”,而另一台電腦則被稱為挖礦。其中,其最核心的“區塊鏈”技術被採用。每一個參與挖礦的礦工節點都會收集在網路上發生但沒有被證實的交易,並將其納入新的塊鎖。這塊將和前面所有的塊連在一起,形成一條鏈子。每一個節點都會添加一個新的隨機調整數,然後計算上一個區塊鏈SHA-256的散列。若低於設定的具體目標,則視為成功。若達不到目標,則節點將改變隨機調整的數量,並反復嘗試。
至於購買比特幣,你只需知道,每個人都會使用計算資源來計算,而不需要依賴央行等貨幣發行機構。
你們怎麼看呢?
Ⅶ 比特幣源碼研讀一:橢圓曲線在比特幣密碼中的加密原理
參加比特幣源碼研讀班後首次寫作,看到前輩black寫的有關密鑰,地址寫的很好了,就選了他沒有寫的橢圓曲線,斗膽寫這一篇。
在密碼學上有兩種加密方式,分別是對稱密鑰加密和非對稱密鑰加密。
對稱加密:加密和解密使用的同樣的密鑰。
非對稱加密:加密和解密是使用的不同的密鑰。
二戰中圖靈破解德軍的恩尼格碼應該就是用的對稱加密,因為他的加密和解密是同一個密鑰。比特幣的加密是非對稱加密,而且用的是破解難度較大的橢圓曲線加密,簡稱ECC。
非對稱加密的通用原理就是用一個難以解決的數學難題做到加密效果,比如RSA加密演算法。RSA加密演算法是用求解一個極大整數的因數的難題做到加密效果的。就是說兩個極大數相乘,得到乘積很容易,但是反過來算數一個極大整數是由哪兩個數乘積算出來的就非常困難。
下面簡要介紹一下橢圓曲線加密演算法ECC。
首先橢圓曲線的通式是這個樣子的:
一般簡化為這個樣子:
()發公式必須吐槽一下,太麻煩了。)
其中
這樣做就排除了帶有奇點的橢圓曲線,可以理解為所有的點都有一條切線。
圖像有幾種,下面列舉幾個:[1]
橢圓曲線其實跟橢圓關系不大,也不像圓錐曲線那樣,是有圓錐的物理模型為基礎的。在計算橢圓曲線的周長時,需要用到橢圓積分,而橢圓曲線的簡化通式:
,周長公式在變換後有一項是這樣的:,平方之後兩者基本一樣。
我們大體了解了橢圓曲線,就會有一個疑問,這個東西怎麼加密的呢?也就是說橢圓曲線是基於怎樣的數學難題呢?在此之前還得了解一些最少必要知識:橢圓曲線加法,離散型橢圓曲線。
橢圓曲線加法
數學家門從普通的代數運算中,抽象出了加群(也叫阿貝爾群或交換群),使得在加群中,實數的演算法和橢圓曲線的演算法得到統一。
數學中的「群」是一個由我們定義了一種二元運算的集合,二元運算我們稱之為「加法」,並用符號「+」來表示。為了讓一個集合G成為群,必須定義加法運算並使之具有以下四個特性:
1. 封閉性:如果a和b是集合G中的元素,那麼(a + b)也是集合G中的元素。
2. 結合律:(a + b) + c = a + (b + c);
3. 存在單位元0,使得a + 0 = 0 + a =a;
4. 每個元素都有逆元,即:對於任意a,存在b,使得a + b = 0.
如果我們增加第5個條件:
5. 交換律: a + b = b + a
那麼,稱這個群為阿貝爾群。[1]
運演算法則:任意取橢圓曲線上兩點P、Q (若P、Q兩點重合,則做P點的切線)做直線交於橢圓曲線的另一點R』,過R』做y軸的平行線交於R。我們規定P+Q=R。(如圖)[2]
特別的,當P和Q重合時,P+Q=P+P=2P,對於共線的三點,P,Q,R』有P+Q+R』=0∞.
這里的0∞不是實數意義的0,而是指的無窮遠點(這里的無窮遠點就不細說了,你可以理解為這個點非常遙遠,遙遠到兩條平行線都在這一點相交了。具體介紹可以看參考文獻[2])。
注意這里的R與R』之間的區別,P+Q=R,R並沒有與P,Q共線,是R』與P,Q共線,不要搞錯了。
法則詳解:
這里的+不是實數中普通的加法,而是從普通加法中抽象出來的加法,他具備普通加法的一些性質,但具體的運演算法則顯然與普通加法不同。
根據這個法則,可以知道橢圓曲線無窮遠點O∞與橢圓曲線上一點P的連線交於P』,過P』作y軸的平行線交於P,所以有無窮遠點 O∞+ P = P 。這樣,無窮遠點 O∞的作用與普通加法中零的作用相當(0+2=2),我們把無窮遠點 O∞ 稱為零元。同時我們把P』稱為P的負元(簡稱,負P;記作,-P)。(參見下圖)
離散型橢圓曲線
上面給出的很好看的橢圓曲線是在實數域上的連續曲線,這個是不能用來加密的,原因我沒有細究,但一定是連續曲線上的運算太簡單。真正用於加密的橢圓曲線是離散型的。要想有一個離散型的橢圓曲線,先得有一個有限域。
域:在抽象代數中,域(Field)之一種可進行加、減、乘、除運算的代數結構。它是從普通實數的運算中抽像出來的。這一點與阿貝爾群很類似。只不過多了乘法,和與乘法相關的分配率。
域有如下性質[3]:
1.在加法和乘法上封閉,即域里的兩個數相加或相乘的結果也在這個域中。
2.加法和乘法符合結合律,交換率,分配率。
3.存在加法單位,也可以叫做零元。即存在元素0,對於有限域內所有的元素a,有a+0=a。
4.存在乘法單位,也可以叫做單位元。即存在元素1,對於有限域內所有的元素a,有1*a=a。
5.存在加法逆元,即對於有限域中所有的元素a,都存在a+(-a)=0.
6.存在乘法逆元,即對於有限域中所有的元素a,都存在a*=0.
在掌握了這些知識後,我們將橢圓曲線離散化。我們給出一個有限域Fp,這個域只有有限個元素。Fp中只有p(p為素數)個元素0,1,2 …… p-2,p-1;
Fp 的加法(a+b)法則是 a+b≡c (mod p);它的意思是同餘,即(a+b)÷p的余數與c÷p的余數相同。
Fp 的乘法(a×b)法則是 a×b≡c (mod p);
Fp 的除法(a÷b)法則是 a/b≡c (mod p);即 a×b∧-1≡c (mod p);(也是一個0到p-1之間的整數,但滿足b×b∧-1≡1 (mod p);
Fp 的單位元是1,零元是 0(這里的0就不是無窮遠點了,而是真正的實數0)。
下面我們就試著把
這條曲線定義在Fp上:
選擇兩個滿足下列條件的小於p(p為素數)的非負整數a、b,且a,b滿足
則滿足下列方程的所有點(x,y),再加上無窮遠點O∞ ,構成一條橢圓曲線。
其中 x,y屬於0到p-1間的整數,並將這條橢圓曲線記為Ep(a,b)。
圖是我手畫的,大家湊合看哈。不得不說,p取7時,別看只有10個點,但計算量還是很大的。
Fp上的橢圓曲線同樣有加法,法則如下:
1. 無窮遠點 O∞是零元,有O∞+ O∞= O∞,O∞+P=P
2. P(x,y)的負元是 (x,-y),有P+(-P)= O∞
3. P(x1,y1),Q(x2,y2)的和R(x3,y3) 有如下關系:
x3≡-x1-x2(mod p)
y3≡k(x1-x3)-y1(mod p)
其中若P=Q 則 k=(3+a)/2y1 若P≠Q,則k=(y2-y1)/(x2-x1)
通過這些法則,就可以進行離散型橢圓曲線的計算。
例:根據我畫的圖,(1,1)中的點P(2,4),求2P。
解:把點帶入公式k=(3*x∧2+a)/2y1
有(3*2∧2+1)/2*4=6(mod 7).
(注意,有些小夥伴可能算出13/8,這是不對的,這里是模數算數,就像鍾表一樣,過了12點又回到1點,所以在模為7的世界裡,13=6,8=1).
x=6*6-2-2=4(mod 7)
y=6*(2-4)-4=2 (mod 7)
所以2P的坐標為(2,4)
那橢圓曲線上有什麼難題呢?在模數足夠大的情況下,上面這個計算過程的逆運算就足夠難。
給出如下等式:
K=kG (其中 K,G為Ep(a,b)上的點,k為小於n(n是點G的階)的整數)不難發現,給定k和G,根據加法法則,計算K很容易;但給定K和G,求k就相對困難了。
這就是橢圓曲線加密演算法採用的難題。我們把點G稱為基點(base point),k稱為私鑰,K稱為公鑰。
現在我們描述一個利用橢圓曲線進行加密通信的過程[2]:
1、用戶A選定一條橢圓曲線Ep(a,b),並取橢圓曲線上一點,作為基點G。
2、用戶A選擇一個私鑰k,並生成公鑰K=kG。
3、用戶A將Ep(a,b)和點K,G傳給用戶B。
4、用戶B接到信息後 ,將待傳輸的明文編碼到Ep(a,b)上一點M(編碼方法很多,這里不作討論),並產生一個隨機整數r(r<n)。
5、用戶B計算點C1=M+rK;C2=rG。
6、用戶B將C1、C2傳給用戶A。
7、用戶A接到信息後,計算C1-kC2,結果就是點M。因為
C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
再對點M進行解碼就可以得到明文。
整個過程如下圖所示:
密碼學中,描述一條Fp上的橢圓曲線,常用到六個參量:
T=(p,a,b,G,n,h),p 、a 、b 用來確定一條橢圓曲線,G為基點,n為點G的階,h 是橢圓曲線上所有點的個數m與n相除的整數部分
這幾個參量取值的選擇,直接影響了加密的安全性。參量值一般要求滿足以下幾個條件:
1、p 當然越大越安全,但越大,計算速度會變慢,200位左右可以滿足一般安全要求;
2、p≠n×h;
3、pt≠1 (mod n),1≤t<20;
4、4a3+27b2≠0 (mod p);
5、n 為素數;
6、h≤4。
200位位的一個數字,那得多大?而且還是素數,所以這種方式是非常安全的。而且再一次交易中,區塊被記錄下來只有10分鍾的時間,也就是說要想解決這個難題必須在10分鍾以內。即便有技術能夠在10分鍾以內破解了現在這個難度的加密演算法,比特幣社區還可以予以反制,提高破解難度。所以比特幣交易很安全,除非自己丟掉密鑰,否則不存在被破解可能。
第一次寫一個完全陌生的數學領域的知識,也許我有錯誤的地方,也許有沒講明白的地方,留言討論吧。總之寫完後對比特比系統的安全性表示很放心。
參考文獻
[1] 橢圓曲線密碼學簡介
[2] 什麼是橢圓曲線加密(ECC)
[3] 域(數學)維基網路
區塊鏈研習社源碼研讀班 高若翔
Ⅷ 比特幣原理
比特幣交易平台的盈利方式是手續費,也有其它的增值收費模式。
比特幣(Bitcoin)是一種基於去中心化,採用點對點網路與共識主動性,開放源代碼,以區塊鏈作為底層技術的虛擬加密貨幣。
由中本聰在2008年提出,2009年誕生,與其他虛擬貨幣最大的不同,是其總數量非常有限,具有的稀缺性。
與所有的貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。
Ⅸ 【區塊鏈思維導圖】002:比特幣
在這里,傑Sir為你送出第002張區塊鏈思維導圖:002比特幣~
下面是比特幣的相關內容簡述:
比特幣(英語:Bitcoin)是一種去中心化,非普遍全球可支付的電子加密貨幣。比特幣由中本聰(又譯中本哲史)(化名)於2009年1月3日,基於無國界的對等網路,用共識主動性開源軟體發明創立。截至目前2018年2月12日,比特幣是目前市場總值最高的加密貨幣。【1】
為什麼會產生比特幣這種加密貨幣呢?或者說,比特幣為什麼會廣受大眾的歡迎,從極客圈的潮流玩意逐漸走進普通人的日常生活投資之中??
有觀點認為,比特幣的問世是人們憎恨商品經濟中國家主權貨幣超發、以及貨幣政策干預、嚮往禮物經濟中社區共識貨幣自主的結果。相信大家都會對於「通貨膨脹」的問題深有感觸吧?
查閱資料可得:通貨膨脹,一般定義為:在信用貨幣制度下,流通中的貨幣數量超過經濟實際需要而引起的貨幣貶值和物價水平全面而持續的上漲--用更通俗的語言來說就是:在一段給定的時間內,給定經濟體中的物價水平普遍持續增長,從而造成貨幣購買力的持續下降。【2】
在中國,我們可以用個形象的例子來說明:在改革開放之初的1980年左右,「萬元戶」都是很厲害的富翁了;而過了30多年後的今天,估計要到億萬資產的級別才能算得上「富翁」了吧?? 而這上千萬倍的差距變化,背後就是因為貨幣超發而造成的貨幣貶值大問題 。
中本聰對於這種「通貨膨脹」類的問題可謂是深惡痛絕的。於是,他提出了自己解決問題的方法論: 基於對技術的信仰和自由貨幣主義的信念,提出了區塊鏈技術系統;並且以區塊鏈技術為依託,創造了比特幣 。
有趣的是,中本聰創造了比特幣系統的第一個區塊,即「創世區塊」,並附有一句「The Times 03/Jan/2009 Chancellor on brink of second lout for banks」(2009年1月3日,財政大臣正處於實施第二輪銀行緊急援助的邊緣),而這句是當天泰晤士報的頭版文章標題。
至此,人們自主發行貨幣系統的大膽嘗試開始啟動,而一旦啟動了的試驗車輪,便很難被阻擋下來。後來,比特幣歷經了不斷的迭代發展,也產生了許許多多的硬分叉幣種。
資料顯示:
當然,比特幣的發展也並不是一帆風順的,黑客們會攻擊比特幣的交易網站;而很多的犯罪組織也會利用比特幣進行非法的交易;甚至很多人至今認為比特幣是一種「龐氏騙局」。
另外,名人大咖們對於比特幣的褒貶也是不一的,資料顯示:
諾貝爾經濟學得主保羅·克魯曼,認為「比特幣是邪惡的」,發表了若干對於比特幣的看法。
美銀美林利率與外匯研究全球主管David Woo 認為「比特幣能夠成為電子商務的一種主要支付方式,並且成為傳統貨幣交易的有力競爭者」。。。【3】
比特幣到底是如何呢?每個人都會有自己不同的看法。不過,傑Sir覺得: 對於不清楚的新事物,在我們輕易地做下判斷之前,不如先主動去學習去了解它吧。而學習比特幣,先去了解比特幣的白皮書就是一種很好的方法論 。
傑Sir在之前的文章裡面也曾經寫到過比特幣的官方白皮書解讀,歡迎大家查看:
題目:【說數字貨幣】比特幣白皮書解讀
鏈接: https://mp.weixin.qq.com/s?__biz=MzU1MTA2NDM1NA==&mid=2247483713&idx=1&sn=&chksm=5c761a#rd
總的來說,一個新的時代已經到來,區塊鏈、比特幣等新事物,必將會在未來展現出它們巨大的能量!我們都是時代的幸運兒與見證者,大家趕緊去學習、去了解區塊鏈的世界吧!!!
註:
【1】摘自維基網路:比特幣
【2】摘自網路:通貨膨脹
【3】摘自維基網路:比特幣
Ⅹ 比特幣價格十年漲幅超1000萬倍,比特幣的原理和作用分別是什麼
自2009年比特幣誕生以來,2010年購買比特幣時的第一個價格約為0.0025美元。以27000美元的價格計算,比特幣誕生以來的漲價幅度已經達到1080萬倍!也就是說,1元人民幣的原始投資可以購買61.3個比特幣,當前頭寸價值為1080萬元人民幣。即使比特幣實現了如此驚人的增長,花旗銀行最近也宣布了30萬美元的目標價格,這是目前價格的11倍!
雖然集中交易也有許多致命的缺點。世界上現有的貨幣和銀行100%是由國家中央銀行發行或放棄的,普通人不能參與貨幣和銀行的發行或中央銀行賬戶。如果央行持續發行貨幣白銀,將不斷稀釋人們手中的貨幣白銀,降低貨幣白銀的購買力。這一點也不令人震驚。世界上有些國家也發生過這種情況。以辛巴威為例,近年來,政府大量發行貨幣和白銀,導致辛巴威經濟崩潰,最終不得不將美元引入當地合法貨幣和白銀。經濟學家們正在考慮在辛巴威取代比特幣。