㈠ 5、以太坊名詞解析
詳解參見: 私鑰、公鑰、地址
以太坊的密鑰與比特幣作用相同[相當於你在工商、招商、建設等銀行設置的密碼]
以太坊將明文 密鑰 通過 [混入用戶自己設置的密碼] 加密演算法生成的一種JSON格式的字元串,並以文件格式存儲,以達到保存密鑰的作用。
一系列的由12、15、18、21等不同數量的單詞構成。
作用跟Keystore相同,就是給腦子不好使的同學們用的
'JSON是啥...' '這一長串的括弧加數字是什麼鬼...' '我輸入了密碼為什麼出來了這些東西... 你們的錢包APP是不是有問題啊 ...'
舉個花生:
大白話時間:
所有交易都包含以下組件:
㈡ 比特幣使用教程
比特幣是一種建立在全球網路上的貨幣。
比特幣是一種沒有央行參與發行的,總量固定的數字貨幣。
比特幣建立在全球的P2P網路上。
全球無數的P2P節點全天候的在維護著比特幣的網路。
英文:bitcoin 貨幣符號: 英文縮寫:BTC或 XBT。
維基網路對比特幣的介紹:
Bitcoin與傳統貨幣不同,比特幣運行機制不依賴中央銀行、政府、企業的支持或者信用擔保,而是依賴對等網路中種子文件達成的網路協議,去中心化、自我完善的貨幣體制,理論上確保了任何人、機構、或政府都不可能操控比特幣的貨幣總量,或者製造通貨膨脹。它的貨幣總量按照設計預定的速率逐步增加,增加速度逐步放緩,並最終在2140年達到2100萬個的極限。
為什麼要使用比特幣?
全球交易暢通無阻。
比特幣費用低廉。
比特幣易於攜帶,在全球范圍內交易暢通無阻,全世界很多地方都接受比特幣。
去中心化。
比特幣的發行由整個P2P網路完成,不受任何組織和個人控制,是一個完全去中心化的貨幣系統。
比特幣的發行數量是固定的,不會因通脹而貶值,就像黃金一樣。
如何使用比特幣錢包?
我們從三個方面來說明這個問題。
一:什麼是比特幣錢包?
簡單來說,比特幣錢包可以讓你和整個世界進行交易。利用比特幣錢包中生成的比特幣地址你可以接收來自他人的比特幣,你也可以將你帳戶上的比特幣轉到他人的比特幣地址上面。比特幣地址就像銀行卡號一樣,你只有知道別人的比特幣地址才能進行比特幣轉賬。比特幣錢包中保存著你自己的所有比特幣地址和私鑰信息。
二:什麼是比特幣地址和私鑰?
比特幣地址和私鑰是成對出現的,他們的關系就像銀行卡號和密碼。比特幣地址就像銀行卡號一樣用來記錄你在該地址上存有多少比特幣。你可以隨意的生成比特幣地址來存放比特幣。每個比特幣地址在生成時,都會有一個相對應的該地址的私鑰被生成出來。這個私鑰可以證明你對該地址上的比特幣具有所有權。我們可以簡單的把比特幣地址理解成為銀行卡號,該地址的私鑰理解成為所對應銀行卡號的密碼。只有你在知道銀行密碼的情況下才能使用銀行卡號上的錢。所以,在使用比特幣錢包時請保存好你的地址和私鑰。
三:比特幣地址和私鑰的格式
比特幣地址是一段由數學演算法生成的二十七到三十四位長度的字元串,一般以數字「1」或者「3」開頭。每個比特幣地址都對應著一個比特幣私鑰。比特幣私鑰亦是由一串字元組成,一般以數字「5」開頭。私鑰保證了你對該比特幣地址上比特幣的所有權。比特幣私鑰有不同的格式,詳細資料讀者可參見下面的基礎教學內容。
請注意
比特幣的私鑰可以生成該私鑰對應的比特幣地址,但是比特幣地址不能計算出該地址所對應的私鑰。因此,假如你忘記了私鑰而只記得比特幣地址,那麼該地址上的比特幣便不屬於你了。所以,一定要備份好比特幣錢包,保護好私鑰。如何生成比特幣地址和私鑰呢?你可以用比特幣錢包來生成任意數量的地址和私鑰。當然,也有離線生成比特幣地址和私鑰的比特幣錢包工具(關於錢包的概念詳見後面的基礎教學)。
比特幣錢包的種類有哪些?
比特幣常用的錢包有三種:軟體錢包、手機錢包、在線錢包。
軟體錢包:通常指可以在本地機子上運行的比特幣客戶端。使用軟體錢包是最安全的保護你比特幣的方式。
手機錢包:只裝在手機上的比特幣錢包,用手機錢包你可以隨時隨地的使用比特幣。
在線網路錢包:讓你可以在任何地方使用比特幣,在線服務提供商幫助你保護你的比特幣安全。但是值得注意的是,你要仔細謹慎的選擇你的在線錢包提供商。
常用軟體錢包介紹:
①Bitcoin-Qt:
是最早的比特幣客戶端,比特幣初期的骨幹網路就是建立在它上面的。它提供了最高級別的安全性,隱私性和穩定性。然而,它具有的功能並不多。
②Multibit:
是一個輕量級的客戶端。Multibit專注於便捷和易用。它與網路同步是在幾分鍾內就可以使用。Multibit還支持多語言。對於非技術用戶,這是一個不錯的選擇。
③Electrum:
和Multibit類似,Electrum是一款基於SPV原理的比特幣錢包軟體客戶端,它能在幾分鍾之內完成同步。不同的是Electrum採用了和Bitcoin-qt和Multibit不同錢包的找零機制,所有的比特幣私鑰都由安全密碼種子生成,因此他的安全性更高。Electrum適合對比特幣技術原理已經有一定了解的玩家使用。
④Armory:
Armory客戶端是運行於Bitcoin-Qt客戶端之上的高級比特幣客戶端,為高級用戶提供了更多的擴展功能,其中包括了很多關於備份和加密的功能,以及非常安全的線下冷存儲。和Electrum一樣,Armory適合對比特幣有一定了解的用戶使用。
常用的手機錢包介紹:
Bitcoin Wallet:
Bitcoin Wallet可以在Googleandroid商店找到。它是一個輕量級的移動客戶端,支持Android和黑莓系統。這個客戶端並不需要在線才能工作。它支持QR碼(二維碼)掃描和NFC(近距離無線通信)。
常用的在線錢包介紹:
①Blockchain:
Blockchain是最早的比特幣在線錢包提供商,它提供的功能最多,也非常可靠。您可以用它在全球免費付款。它支持在手機上或個電腦上使用。
②P2PBUCKS:
提示:為保證安全,Blockchain.info在線錢包的用戶請使用GoogleAuthenticator或Yubikey等雙因子認證方式登陸。 並定時從Blockchain上下載自己的錢包備份到本地電腦。
我是在 完美生活 衛星號上看到這篇文章哦,詳細的你可以去關注一下:funinusa
㈢ 【以太坊易錯概念】nonce, 公私鑰和地址,BASE64/BASE58,
以太坊里的nonce有兩種意思,一個是proof of work nonce,一個是account nonce。
在智能合約里,nonce的值代表的是該合約創建的合約數量。只有當一個合約創建另一個合約的時候才會增加nonce的值。但是當一個合約調用另一個合約中的method時 nonce的值是不變的。
在以太坊中nonce的值可以這樣來獲取(其實也就是屬於一個賬戶的交易數量):
但是這個方法只能獲取交易once的值。目前是沒有內置方法來訪問contract中的nonce值的
通過橢圓曲線演算法生成鑰匙對(公鑰和私鑰),以太坊採用的是secp256k1曲線,
公鑰採用uncompressed模式,生成的私鑰為長度32位元組的16進制字串,公鑰為長度64的公鑰字串。公鑰04開頭。
把公鑰去掉04,剩下的進行keccak-256的哈希,得到長度64位元組的16進制字串,丟掉前面24個,拿後40個,再加上"0x",即為以太坊地址。
整個過程可以歸納為:
2)有些網關或系統只能使用ASCII字元。Base64就是用來將非ASCII字元的數據轉換成ASCII字元的一種方法,而且base64特別適合在http,mime協議下快速傳輸數據。Base64使用【字母azAZ數字09和+/】這64個字元編碼。原理是將3個位元組轉換成4個位元組(3 X 8) = 24 = (4 X 6)
當剩下的字元數量不足3個位元組時,則應使用0進行填充,相應的,輸出字元則使用'='佔位,因此編碼後輸出的文本末尾可能會出現1至2個'='。
1)Base58是用於Bitcoin中使用的一種獨特的編碼方式,主要用於產生Bitcoin的錢包地址。相比Base64,Base58不使用數字"0",字母大寫"O",字母大寫"I",和字母小寫"l",以及"+"和"/"符號。
Base58Check是一種常用在比特幣中的Base58編碼格式,增加了錯誤校驗碼來檢查數據在轉錄中出現的錯誤。 校驗碼長4個位元組,添加到需要編碼的數據之後。校驗碼是從需要編碼的數據的哈希值中得到的,所以可以用來檢測並避免轉錄和輸入中產生的錯誤。使用 Base58check編碼格式時,編碼軟體會計算原始數據的校驗碼並和結果數據中自帶的校驗碼進行對比。二者不匹配則表明有錯誤產生,那麼這個 Base58Check格式的數據就是無效的。例如,一個錯誤比特幣地址就不會被錢包認為是有效的地址,否則這種錯誤會造成資金的丟失。
為了使用Base58Check編碼格式對數據(數字)進行編碼,首先我們要對數據添加一個稱作「版本位元組」的前綴,這個前綴用來明確需要編碼的數 據的類型。例如,比特幣地址的前綴是0(十六進制是0x00),而對私鑰編碼時前綴是128(十六進制是0x80)。 表4-1會列出一些常見版本的前綴。
接下來,我們計算「雙哈希」校驗碼,意味著要對之前的結果(前綴和數據)運行兩次SHA256哈希演算法:
checksum = SHA256(SHA256(prefix+data))
在產生的長32個位元組的哈希值(兩次哈希運算)中,我們只取前4個位元組。這4個位元組就作為校驗碼。校驗碼會添加到數據之後。
結果由三部分組成:前綴、數據和校驗碼。這個結果採用之前描述的Base58字母表編碼。下圖描述了Base58Check編碼的過程。
相同:
1) 哈希演算法、Merkle樹、公鑰密碼演算法
https://blog.csdn.net/s_lisheng/article/details/77937202?from=singlemessage
2)全新的 SHA-3 加密標准 —— Keccak
https://blog.csdn.net/renq_654321/article/details/79797428
3)在線加密演算法
http://tools.jb51.net/password/hash_md5_sha
4)比特幣地址生成演算法詳解
https://www.cnblogs.com/zhaoweiwei/p/address.html
5)Base58Check編碼實現示例
https://blog.csdn.net/QQ604666459/article/details/82419527
6) 比特幣交易中的簽名與驗證
https://www.jianshu.com/p/a21b7d72532f
㈣ 2.在以太坊中,為了得到唯一的公鑰,對私鑰應用哪種演算法
在以太坊中,為了得到唯一的公鑰,對私鑰應用演算法:
1、生成一個隨機的私鑰(32位元組)。
2、通過私鑰生成公鑰(64位元組)。
3、通過公鑰得到地址(20位元組)。
㈤ 以太坊怎麼根據地址獲取私鑰
安裝metamask metamask是可以安裝在瀏覽器上的擴展程序,可以在進行安裝。建議在安裝在虛擬機中
以太坊的私鑰生成是通過secp256k1橢圓曲線演算法生成的,secp256k1是一個橢圓曲線演算法,同比特幣。公鑰推導地址和比特幣相比,在私鑰生成公鑰這一步其實是一樣的,區別在公鑰推導地
以太坊錢包地址就是你的銀行卡號,倘若你把地址忘了,可以用私鑰、助記詞、keystore+密碼,導入錢包找回。首先注冊登錄bitz,找到資產下面的以太坊,點擊充值,這時候就能獲取充值地址了。然後把錢包里的以太坊直接充到這個地址就行了。
㈥ 什麼是合約地址
使用Solidity程序語言,由一組代碼(合約的函數)和數據(合約的狀態)組成,比如在以太坊上發ERC20的幣就是創建了一個合約賬戶。這種生成的地址就是合約地址,是沒有私鑰的。
以太坊的賬戶有兩種:
一種是個人用戶使用以太坊錢包生成的外部賬戶,由公鑰和私鑰組成。
另一種是合約賬戶。合約位於以太坊區塊鏈上的一個特殊地址。
外部地址:
外部地址就是現在電腦連接的伺服器的IP和埠,不同埠提供不同的服務,前面的那個是協議。不是說你瀏覽器連得那個,包含但不限於。瀏覽器的埠默認80。
其他的一些運行軟體也會連接遠程伺服器獲取或者提交數據。根據後面的PID號可以追蹤到具體的軟體。打開任務管理器,勾選PID欄,埠就是對應PID的軟體連接的。
㈦ 區塊鏈錢包的重要性
現在越來越多的人開始參與到區塊鏈項目中,了解並參與到其中的人相信都會使用區塊鏈錢包,這里的「錢包」指的是一個虛擬的,用來儲存和使用虛擬貨幣的工具。
錢包主要分為冷錢包和熱錢包,這其中包含私鑰,公鑰和助劑詞,接下來為大家詳細一一講解一下他們的區別與作用。
冷錢包: 冷錢包指的是不聯網的錢包,將數字貨幣進行離線儲存的錢包。使用者在一台離線的錢包上面生成數字貨幣地址和私鑰,再將其保存起來。 冷錢包集 數字貨幣 存儲、多重交易密碼設置、發布最新行情與資訊、提供硬分叉解決方案等功能於一身,能有效防止黑客竊取。
熱錢包: 熱錢包指的是需要聯網上線使用的錢包,在使用上更加方便,但現在網路比較復雜,釣魚網站較多,有風險,因此在使用錢包或者交易所時,最好在設置不同密碼,且開啟二次認證,以確保自己的資產安全。
綜上相比之下冷錢包比熱錢包更加安全。
私鑰: 私鑰是一串由隨機演算法生成的數據,它可以通過非對稱加密演算法算出公鑰,公鑰可以再算出幣的地址。私鑰是非常重要的,作為密碼,除了地址的所有者之外,都被隱藏。區塊鏈資產實際在區塊鏈上,所有者實際只擁有私鑰,並通過私鑰對區塊鏈的資產擁有絕對控制權,因此,區塊鏈資產安全的核心問題在於私鑰的存儲,擁有者需做好安全保管。和傳統的用戶名、密碼形式相比,使用公鑰和私鑰交易最大的優點在於提高了數據傳遞的安全性和完整性,因為兩者——對應的關系,用戶基本不用擔心數據在傳遞過程中被黑客中途截取或修改的可能性。同時,也因為私鑰加密必須由它生成的公鑰解密,發送者也不用擔心數據被他人偽造。
公鑰: 公鑰是和私鑰成對出現的,和私鑰一起組成一個密鑰對,保存在錢包中。公鑰由私鑰生成,但是無法通過公鑰倒推得到私鑰。公鑰能夠通過一系列演算法運算得到錢包的地址,因此可以作為擁有這個錢包地址的憑證。
助記詞: 助記詞是利用固定演算法,將私鑰轉換成十多個常見的英文單詞。助記詞和私鑰是互通的,可以相互轉換,它只是作為區塊鏈數字錢包私鑰的友好格式。
Keystore :主要在以太坊錢包 App 中比較常見(比特幣類似以太坊 Keystore 機制的是:BIP38),是把私鑰通過錢包密碼再加密得來的,與助記詞不同,一般可保存為文本或 JSON 格式存儲。換句話說,Keystore 需要用錢包密碼解密後才等同於私鑰。因此,Keystore 需要配合錢包密碼來使用,才能導入錢包。當黑客盜取 Keystore 後,在沒有密碼的情況下, 有可能通過暴力破解 Keystore 密碼解開 Keystore,所以建議使用者在設置密碼時稍微復雜些,比如帶上特殊字元,至少 8 位以上,並安全存儲。
綜上:錢包的作用就是保護我們我私鑰,私鑰就是控制資產的全部許可權,只有擁有私鑰的人才可以使用這個賬戶里的虛擬貨幣。在使用錢包的過程中切記不要將自己錢包的私鑰、助記詞、Keystore等信息透露給其他人,這些信息都是可以直接竊取你數字資產的重要信息。
使用錢包注意事項:
1、私鑰和助記詞做好備份,除了在手機上最好手寫一份保存。
2、不要輕易點擊未知網站。
3、不要截屏或者拍照保存。
總之重中之重保存好自己的私鑰。
㈧ Zether 基於賬戶模型的隱私合約
Zether是以太坊上第一個基於賬戶模型的智能合約方案,提供保密性(隱藏交易金額)和匿名性(發送者和接收者地址),於2019提出。
Zether由ZSC (Zether Smart Contract) 和 ZTH (Zether token) 實運扮芹現旁畢。 Zether可缺姿以看作為以太坊上部署的智能合約ZSC, 代幣為ZTH,地址是Elgamal 公鑰。
目前存在的匿名支付方案,像Zcash, Monero都是採用UTXO模型,採用同態承諾隱藏交易中的金額。Zether則利用Elgamal的一種變體形式加密,並附加一個證明,保證交易的有效性。
假如Alice 想要和Zether交互,首先需創建Elgamal密鑰對 , 並發起一個交易向 存部分 ether 。 ZSC 然後創建一個賬戶 , 余額為存款的金額的ZTH。之後,Alice 可以向其它的Zether賬戶秘密發送ZTH.。為了隱藏Alice 的賬戶,Alice 選擇一些Zether賬戶作為匿名集,其它人只能看到是匿名集中的某個賬戶在轉賬。 Alice 同時能將她的ZTH轉成ether.
Zether思路比較簡單,更多細節見參考。
https://medium.com/@loveshharchandani/notes-on-zether-towards-privacy-in-a-smart-contract-world-6c4333f975d
https://crypto.stanford.e/~buenz/papers/zether.pdf
https://ethresear.ch/t/zether-the-first-privacy-mechanism-designed-for-ethereum/5029