進入p2p網路,為了保護你的比特幣不被別人隨意拿走,那必然就需要個密碼。
而比特幣的密碼那可就厲害了。
每個人先會有一個隨機生成的數,這個數介於0-2的256次方之間,出現的可能比全宇宙中原子的數量還多,所以再頂尖的駭客,也不可能去破譯它,安全『性』極高。
接著出場的是一種叫base58的58進位制演算法。
啥叫58進位制,比如二進位制是0和1,十進位制是1到10,十六進位制實在十進位制的基礎上加上了a-f六個字母。
而58進位制則是包含了數字,小寫英文字母和大寫英文字母。
透過這種演算法把之前所說的那個隨機數變成字串,看起來和那些“神秘程式碼”差不多,但還要複雜上許多。
最終得到的這個字串就是你得私鑰,也就是你的“賬戶密碼”
既然有了密碼,那就還得有賬戶,在私鑰的基礎上,再透過一種橢圓曲線ecpot的演算法算出一個公鑰,這就是你的賬戶了。
最後再在公鑰的基礎上透過演算法算出一個相對較短的字串作為你的地址,你就可以開始交易了。
需要收錢,就把地址告訴對方,想付錢則需要告訴別人你的公鑰和地址,其中公鑰的作用是為了檢驗這地址是不是你的。
而想要從公鑰推算出私鑰那是不可能的事情,數字太龐大了。
“還真是越安全的交易方法越複雜。”聽完比特幣的核心機制,吳斌感慨了一句,接著問“那怎麼解決通貨膨脹問題呢?”
“簡單。”李巖打了個響指,“比特幣的數量是有限的,而這個控制他發行速度和數量的機制,就是所謂的挖礦了。”
“特定演算法?”吳斌問。
“嗯,差不多,既然有了大量交易,那就得有人整理賬簿,在比特幣裡,這個賬簿叫做區塊鏈,其中每一個區塊都對應一個賬單,任何交易資訊和轉賬記錄都記錄在這區塊鏈中。”
“每隔一個時間點,比特幣系統就會在系統節點上生成一個隨機程式碼,網際網路中的所有計算機都可以去尋找此程式碼,誰找到此程式碼,就會產生一個區塊,隨即得到一個比特幣,這個過程就是人們常說的挖礦。”
說到這李巖敲了敲吳斌電腦螢幕上的顯示卡配置,說“而這個演算法,就是要用到顯示卡的地方。”
“將這一區塊的版本號,上一區塊的雜湊值,交易地址,更新的時間以及當前難度與一個隨機數x進行sha256函式運算,而sha256函式可以將任意字串透過加密得出一個64位的16進位制數。”
“最終出來的數如果小於給定的目標值,那就是成功了,並獎勵一個比特幣。”
“哦對了,這個挖出來的比特幣,和你聽說的那種一個就能賣好幾千的可不是同一個‘1’,這個比特幣是基於目前的資料結構,被分割到8個小位數的。”
“所以就是000000001個?”吳斌想了想說。
李巖點點頭“是的,預計到2140年,比特幣將發行2100萬個,名副其實的金山,一座座人人可以挖的金山。”說完李巖突然搖搖頭“可惜啊,這本來是一個挺有意思的數學題,但現在已經被礦場壟斷了,那位創始人想象中的‘去中心化’‘人人平等’‘算力民主’都成了泡沫。”
回憶完,吳斌默默解除安裝了biter,原本他是想著能不能研究出來一個更好的演算法來更快算出結果的。
然而最終他發現所謂的挖礦演算法,聽起來複雜無比,其實就是猜數字,固定而簡單,並不存在什麼可以改進的地方。
能夠在這場所謂“挖礦”的遊戲中取得的方法只有一個,那就是尋找在單位時間內執行最多次演算法的硬體,另外同樣的,在這場看似公平的比賽中想要作弊也非常簡單,那就是誰擁有這樣的硬體數量越多,誰就最有可能先贏得遊戲。
曾經比特幣剛出世的時候,大家的確都能用家用電腦的cpu挖礦。
可惜只要是一件有利益的事,就必定有人才會想出外掛。
2010年的時候,一個硬體工程師發現ad出產的gpu晶片中有一個特定的計算部件,可以加速猜數字的關鍵步驟。
於是多個gpu組裝成的“gpu礦機”迅速淘汰了普通電腦礦機,這也是那幾年為什麼顯示卡不同於電腦其他硬體,價格經常不降反升,而且還老缺貨。
再到後來還出現了更恐怖的fpga礦機,更進一步的剔