比特幣計算腳本
1. 知道私鑰怎麼提幣
有了私鑰,我們就可以使用橢圓曲線乘法這個單向加密函數產生一個公鑰(K)。
有了公鑰(K),我們就可以使用一個單向加密哈希函數生成比特幣地址(A)。
H3
私鑰
私鑰就是一個隨機選出的數字而已。一個比特幣地址中的所有資金的控製取決於相應私鑰的所有權和控制權。在比特幣交易中,私鑰用於生成支付比特幣所必需的簽名以證明資金的所有權。私鑰必須始終保持機密,因為一旦被泄露給第三方,相當於該私鑰保護之下的比特幣也拱手相讓了。私鑰還必須進行備份,以防意外丟失,因為私鑰一旦丟失就難以復原,其所保護的比特幣也將永遠丟失。
比特幣私鑰只是一個數字。你可以用硬幣、鉛筆和紙來隨機生成你的私鑰:擲硬幣256次,用紙和筆記錄正反面並轉換為0和1,隨機得到的256位二進制數字可作為比特幣錢包的私鑰。該私鑰可進一步生成公鑰。
H3
公鑰
通過橢圓曲線演算法可以從私鑰計算得到公鑰,這是不可逆轉的過程:K = k * G。其中k是私鑰,G是被稱為生成點的常數點,而K是所得公鑰。其反向運算,被稱為「尋找離散對數」——已知公鑰K來求出私鑰k——是非常困難的,就像去試驗所有可能的k值,即暴力搜索。
H3
比特幣地址
比特幣地址是一個由數字和字母組成的字元串,可以與任何想給你比特幣的人分享。由公鑰(一個同樣由數字和字母組成的字元串)生成的比特幣地址以數字「1」開頭。下面是一個比特幣地址的例子:
在交易中,比特幣地址通常以收款方出現。如果把比特幣交易比作一張支票,比特幣地址就是收款人,也就是我們要寫入收款人一欄的內容。一張支票的收款人可能是某個銀行賬戶,也可能是某個公司、機構,甚至是現金支票。支票不需要指定一個特定的賬戶,而是用一個普通的名字作為收款人,這使它成為一種相當靈活的支付工具。與此類似,比特幣地址的使用也使比特幣交易變得很靈活。比特幣地址可以代表一對公鑰和私鑰的所有者,也可以代表其它東西,比如「P2SH
(Pay-to-Script-Hash)」付款腳本。
2. 什麼是以太坊系統
以太坊項目借鑒了比特幣區塊鏈的技術,對它的應用范圍進行了擴展。如果說比特幣是利用區塊鏈技術的專用計算器,那麼以太坊就是利用區塊鏈技術的通用計算機。簡單地講,以太坊 = 區塊鏈 + 智能合約。
與比特幣相比,以太坊最大的不同點是:它可以支持更加強大的腳本語言(用技術語言講就是圖靈完備的腳本語言),允許開發者在上面開發任意應用,實現任意智能合約,這也是以太坊的最強大之處。作為平台,以太坊可以類比於蘋果的應用商店,任何開發者都可以在上面開發應用,並出售給用戶。每一類金融合約都可以程序代碼的形式寫成智能合約。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
3. 比特幣行情軟體何時能像炒股軟體那樣可以編寫公式
虛擬貨幣不會像股票那樣編寫公式的,比特幣已經破產請謹慎,可以支持本國的中華幣
4. electrum如何把btc轉干凈
electrum如何把btc轉干凈:
1、傳統地址
1開頭的地址,被稱為傳統地址(LegacyAddress)。這就是最原始的比特幣地址,比如:創世地址:,屬於中本聰。該地址內初始50個BTC,後來,比特幣愛好者不斷往該地址轉入BTC,以表達對中本聰的敬意,寫文章這一刻,BTC余額:68.13424603個。
1開頭的地址,採用P2PKH,P2PKH(Pay-to-PubkeyHash),支付公鑰哈希,即比特幣交易輸入輸出腳本,採用公鑰及公鑰哈希。
1開頭的傳統地址,上線至今,一直被支持,我們可以從它發送BTC到下面介紹的多簽地址和隔離見證地址。
2、多簽地址
3開頭的地址,比如。2012年的比特幣改進提案中,新增P2SH的地址。
P2SH(Pay-to-Script-Hash),支付腳本哈希,即比特幣交易輸入輸出腳本,採用贖回腳本及贖回腳本哈希。其地址結構類似於P2PKH,但它支持比傳統地址更復雜的功能。P2SH腳本函數最常用於multisig地址,這些地址可以指定多重數字簽名來授權事務。舉個例子:某個3開頭的地址由三人控制,其中,任意兩人同意,便可發起轉賬。
5. 什麼是腳本挖礦
比特幣的核心原理是「區塊鏈」,每一個區塊對應一個帳單,將所有的區塊鏈接起來就是區塊鏈,任何交易信息和轉賬記錄都記錄在區塊鏈中。要注意的是區塊鏈存在於整個互聯網中,所以任何比特幣持有者都不擔心比特幣遭受損失。
每隔一個時間點,比特幣系統會在系統節點上生成一個隨機代碼,互聯網中的所有計算機都可以去尋找此代碼,誰找到此代碼,就會產生一個區塊,隨即得到一個比特幣,這個過程就是人們常說的挖礦。
比特幣挖礦。
就是用於賺取比特幣的電腦,這類電腦一般有專業的挖礦晶元,多採用燒顯卡的方式工作,耗電量較大。用戶用個人計算機下載軟體然後運行特定演算法,與遠方伺服器通訊後可得到相應比特幣,是獲取比特幣的方式之一。
據最新的外媒報道,隨著數字貨幣呈現不斷上漲的趨勢,為了獲取更多的數字貨幣。黑客入侵網站植入挖礦腳本後利用用戶的CPU挖掘數字貨幣的做法越來越流行。其相關數據統計,目前已有2,496家運行過時軟體的網站遭到黑客植入惡意代碼,並利用訪問者CPU挖掘。非法植入惡意挖礦腳本已成為了黑產的常見途徑。
6. 4. 比特幣的密鑰、地址和錢包 - 精通比特幣筆記
比特幣的所有權是通過密鑰、比特幣地址和數字簽名共同確定的。密鑰不存在於比特幣網路中,而是用戶自己保存,或者利用管理私鑰的軟體-錢包來生成及管理。
比特幣的交易必須有有效簽名才會被存儲在區塊中,因此擁有密鑰就擁有對應賬戶中的比特幣。密鑰都是成對出現的,由一個公鑰和一個私鑰組成。公鑰相當於銀行賬號,私鑰就相當於銀行卡密碼。通常情況下密鑰由錢包軟體管理,用戶不直接使用密鑰。
比特幣地址通常是由公鑰計算得來,也可以由比特幣腳本得來。
比特幣私鑰通常是數字,由比特幣系統隨機( 因為演算法的可靠性與隨機性正相關,所以隨機性必須是真隨機,不是偽隨機,因此比特幣系統可以作為隨機源來使用 )生成,然後將私鑰作為輸入,使用橢圓曲線演算法這個單向加密函數生成對應的公鑰,再將公鑰作為輸入,使用單向加密哈希函數生成地址。例如,通過公鑰K得到地址A的計算方式為:
其中SHA256和PIPEMD160被稱為雙哈希或者HASH160,Base58Check是帶有驗證功能的Base58編碼,驗證方式為先計算原始數據(編碼前)的驗證碼,再比較編碼後數據的驗證碼,相同則地址有效,否則無效。而在使用Base58Check編碼前,需要對數據做處理。
處理方式為: 版本前綴 + 雙哈希後的數據 + 校驗碼
其中版本前綴是自定義的,如比特幣私鑰的前綴是0x80,校驗碼是把版本前綴和雙哈希後的數據拼接起來,進行兩次SHA256計算,取前4位元組。得到處理的數據後,再進行Base58編碼,得到最終的結果。
下圖是Base58Check版本前綴和Base58編碼後的結果
密鑰可以採用不同的編碼格式,得到的編碼後結果雖然不同,但密鑰本身沒有任何變化,採用哪種編碼格式,就看情況而論了,最終目的都是方便人們准確無誤的使用和識別密鑰。
下圖是相同私鑰採用不同編碼方式的結果:
公鑰也有很多種格式,不過最重要的是公鑰被分為壓縮格式和非壓縮格式,帶04前綴的公鑰為非壓縮格式的公鑰,而03,02開頭的標識壓縮格式的公鑰。
前面說過,公鑰是橢圓曲線上的一個點,由一對坐標(x, y)表示,再加上前綴,公鑰可以表示為:前綴 x y。
比如一個公鑰的坐標為:
以非壓縮格式為例,公鑰為(略長):
壓縮格式的公鑰可以節省一定的存儲,對於每天成千上萬的比特幣交易記錄來說,這一點點的節省能起到很大效果。
因為橢圓曲線實際上是一個方程(y2 mod p = (x3 + 7)mod P, y2是y的平方,x3是x的立方),而公鑰是橢圓曲線上的一個點,那麼公鑰即為方程的一個解,如果公鑰中只保留x,那麼可以通過解方程得到y,而壓縮公鑰格式有兩個前綴是因為對y2開方,會得到正負兩個解,在素數p階的有限域上使用二進制算術計算橢圓曲線的時候,y坐標或奇或偶,所以用02表示y為奇數,03表示y為偶數。
所以壓縮格式的公鑰可以表示為:前綴x
以上述公鑰的坐標為准,y為奇數為例,公鑰K為:
不知道大家發現沒有,這種壓縮方式存在一個問題,即一個私鑰可以得出兩個公鑰,壓縮和非壓縮公鑰,而這兩個公鑰都對應同一個私鑰,都合法,但生成的比特幣地址卻不相同,這就涉及到錢包軟體的實現方式,是使用壓縮公鑰還是非壓縮公鑰,或者二者皆用,這個問題後面來介紹。
比特幣錢包最主要的功能就是替用戶保管比特幣私鑰,比特幣錢包有很多種,比如非確定性(隨機)錢包,確定性(種子)錢包。所謂的非確定性是指錢包運行時會生成足夠的私鑰(比如100個私鑰),每個私鑰僅會使用一次,這樣私鑰管理就很麻煩。確定性錢包擁有一個公共種子,單向離散方程使用種子生成私鑰,種子足夠回收所有私鑰,所以在錢包創建時,簡單備份下,就可以在錢包之間轉移輸入。
這里要特別介紹下助記碼詞彙。助記碼詞彙是英文單詞序列,在BIP0039中提出。這些序列對應著錢包中的種子,種子可以生成隨機數,隨機數生成私鑰,私鑰生成公鑰,便有了你需要的一切。所以單詞的順序就是錢包的備份,通過助記碼詞彙能重建錢包,這比記下一串隨機數要強的多。
BIP0039定義助記碼和種子的創建過程如下:
另外一種重要的錢包叫做HD錢包。HD錢包提供了隨機(不確定性) 鑰匙有兩個主要的優勢。
第一,樹狀結構可以被用來表達額外的組織含義。比如當一個特定分支的子密鑰被用來接收交易收入並且有另一個分支的子密鑰用來負責支付花費。不同分支的密鑰都可以被用在企業環境中,這就可以支配不同的分支部門,子公司,具體功能以及會計類別。
第二,它可以允許讓使用者去建立一個公共密鑰的序列而不需要訪問相對應的私鑰。這可允許HD錢包在不安全的伺服器中使用或者在每筆交易中發行不同的公共鑰匙。公共鑰匙不需要被預先載入或者提前衍生,但是在伺服器中不具有可用來支付的私鑰。
BIP0038提出了一個通用標准,使用一個口令加密私鑰並使用Base58Check對加密的私鑰進行編碼,這樣加密的私鑰就可以安全地保存在備份介質里,安全地在錢包間傳輸,保持密鑰在任何可能被暴露情況下的安全性。這個加密標准使用了AES,這個標准由NIST建立,並廣泛應用於商業和軍事應用的數據加密。
BIP0038加密方案是: 輸入一個比特幣私鑰,通常使用WIF編碼過,base58chek字元串的前綴「5」。此外BIP0038加密方案需要一個長密碼作為口令,通常由多個單詞或一段復雜的數字字母字元串組成。BIP0038加密方案的結果是一個由base58check編碼過的加密私鑰,前綴為6P。如果你看到一個6P開頭的的密鑰,這就意味著該密鑰是被加密過,並需個口令來轉換(解碼) 該密鑰回到可被用在任何錢包WIF格式的私鑰(前綴為5)。許多錢包APP現在能夠識別BIP0038加密過的私鑰,會要求用戶提供口令解碼並導入密鑰。
最通常使用BIP0038加密的密鑰用例是紙錢包一一張紙張上備份私鑰。只要用戶選擇了強口令,使用BIP0038加密的私鑰的紙錢包就無比的安全,這也是一種很棒的比特幣離線存儲方式(也被稱作「冷存儲」)。
P2SH函數最常見的實現時用於多重簽名地址腳本。顧名思義,底層腳本需要多個簽名來證明所有權,然後才能消費資金。這類似在銀行開設一個聯合賬戶。
你可以通過計算,生成特殊的比特幣地址,例如我需要一個Hello開頭的地址,你可以通過腳本來生成這樣一個地址。但是每增加一個字元,計算量會增加58倍,超過7個字元,需要專門的硬體或者礦機來生成,如果是8~10個字元,那麼計算量將無法想像。