eth簽名信息
『壹』 如何創建和簽署以太坊交易
交易
區塊鏈交易的行為遵循不同的規則集
由於公共區塊鏈分布式和無需許可的性質,任何人都可以簽署交易並將其廣播到網路。
根據區塊鏈的不同,交易者將被收取一定的交易費用,交易費用取決於用戶的需求而不是交易中資產的價值。
區塊鏈交易無需任何中央機構的驗證。僅需使用與其區塊鏈相對應的數字簽名演算法(DSA)使用私鑰對其進行簽名。
一旦一筆交易被簽名,廣播到網路中並被挖掘到網路中成功的區塊中,就無法恢復交易。
以太坊交易的數據結構:交易0.1個ETH
{
'nonce':'0x00', // 十進制:0
'gasLimit': '0x5208', //十進制: 21000
'gasPrice': '0x3b9aca00', //十進制1,000,000,000
'to': '' ,//發送地址
'value': '0x16345785d8a0000',//100000000000000000 ,10^17
'data': '0x', // 空數據的十進製表示
'chainId': 1 // 區塊鏈網路ID
}這些數據與交易內容無關,與交易的執行方式有關,這是由於在以太坊中發送交易中,您必須定義一些其他參數來告訴礦工如何處理您的交易。交易數據結構有2個屬性設計"gas": "gasPrice","gasLimit"。
"gasPrice": 單位為Gwei, 為 1/1000個eth,表示交易費用
"gasLimit": 交易允許使用的最大gas費用。
這2個值通常由錢包提供商自動填寫。
除此之外還需要指定在哪個以太坊網路上執行交易(chainId): 1表示以太坊主網。
在開發時,通常會在本地以及測試網路上進行測試,通過測試網路發放的測試ETH進行交易以避免經濟損失。在測試完成後再進入主網交易。
另外,如果需要提交一些其它數據,可以用"data"和"nonce"作為事務的一部分附加。
A nonce(僅使用1次的數字)是以太坊網路用於跟蹤交易的數值,有助於避免網路中的雙重支出以及重放攻擊。
- const ethers = require('ethers')
- const signer = new ethers.Wallet('錢包地址')
- signer.signTransaction({
- 'nonce':'0x00', // 十進制:0
- 'gasLimit': '0x5208', //十進制: 21000
- 'gasPrice': '0x3b9aca00', //十進制1,000,000,000
- 'to': '' ,//發送地址
- 'value': '0x16345785d8a0000',//100000000000000000 ,10^17
- 'data': '0x', // 空數據的十進製表示
- 'chainId': 1 // 區塊鏈網路ID
- })
- .then(console.log)
以太坊交易結構
以太坊交易簽名
以太坊交易會涉及ECDSA演算法,以Javascript代碼為例,使用流行的ethers.js來調用ECDSA演算法進行交易簽名。
可以使用在線使用程序Composer將已簽名的交易傳遞到以太坊網路。這種做法被稱為」離線簽名「。離線簽名對於諸如狀態通道之類的應用程序特別有用,這些通道是跟蹤兩個帳戶之間余額的智能合約,並且在提交已簽名的交易後就可以轉移資金。離線簽名也是去中心化交易所(DEXes)中的一種常見做法。
也可以使用在線錢包通過以太坊賬戶創建簽名驗證和廣播。
使用Portis,您可以簽署交易以與加油站網路(GSN)進行交互。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
『貳』 以太坊(ETH)爆發,生態那些項目最值得關注
以太坊(ETH)爆發時,生態中最值得關注的幾個項目:
1. SSV(Secure Stakeout Vaults)
- 簡介:SSV是一個以太坊質押生態中的重要項目,旨在通過分片簽名私鑰的技術創新,提高質押過程的安全性和去中心化程度。
- 核心價值:SSV將簽名私鑰拆分為多個部分,分別由不同的節點操作員管理,從而避免了單一節點或操作員掌握完整私鑰的風險。這種設計不僅保護了質押者的資產安全,還提高了節點的穩定性和抗風險能力。
- 發展前景:隨著以太坊質押生態的不斷發展,SSV的技術優勢將逐漸顯現,有望吸引更多質押者選擇其作為質押解決方案。此外,SSV的技術還可以擴展到其他POS公鏈,具有廣闊的應用前景。
2. Ethfi
- 簡介:Ethfi是一個專注於以太坊金融生態的項目,提供多種金融產品和服務,以滿足用戶對資產管理和增值的需求。
- 核心價值:Ethfi通過整合以太坊生態中的優質資產和資源,為用戶提供高效、便捷、安全的金融服務。其產品和服務涵蓋了借貸、交易、資產管理等多個領域,為用戶提供了全方位的金融解決方案。
- 發展前景:隨著以太坊生態的不斷繁榮,Ethfi有望吸引更多用戶關注和使用其產品和服務。同時,Ethfi也在不斷探索和創新,以提供更多元化、更個性化的金融服務,滿足用戶不斷變化的需求。
3. Optimism(OP)
- 簡介:Optimism是以太坊上的一個二層擴展解決方案,旨在通過樂觀滾存技術提高以太坊的交易速度和吞吐量。
- 核心價值:Optimism通過構建一個與以太坊主網兼容的二層網路,實現了交易的快速確認和低成本執行。這為用戶提供了更加流暢和高效的交易體驗,同時也促進了以太坊生態的繁榮和發展。
- 發展前景:隨著以太坊生態的不斷擴大和用戶對交易速度、吞吐量等需求的不斷提高,Optimism等二層擴展解決方案將扮演越來越重要的角色。未來,Optimism有望與更多項目和生態進行深度融合,共同推動以太坊生態的持續發展。
4. ENS(Ethereum Name Service)
- 簡介:ENS是一個基於以太坊的去中心化域名系統,允許用戶將人類可讀的名稱(如網址)映射到以太坊地址上。
- 核心價值:ENS為用戶提供了一個簡單、直觀的方式來識別和訪問以太坊上的資源和賬戶。這降低了用戶的使用門檻,提高了以太坊生態的易用性和普及度。
- 發展前景:隨著以太坊生態的不斷發展和用戶對去中心化應用的需求不斷增加,ENS有望成為一個重要的基礎設施項目。未來,ENS可能會進一步擴展其功能和應用場景,為用戶提供更多元化、更便捷的服務。
綜上所述,SSV、Ethfi、Optimism和ENS是以太坊生態中最值得關注的幾個項目。它們各自具有獨特的核心價值和發展前景,共同推動了以太坊生態的繁榮和發展。在以太坊爆發的背景下,這些項目有望獲得更多關注和支持,實現更加廣闊的發展。
(註:以上圖片為SSV相關技術對比圖,展示了SSV與其他質押方式的異同點。)
『叄』 以太坊web3.sendRawTransaction離線簽名交易
工作中需要復現短地址攻擊和the重入攻擊,重入攻擊可以直接通過eth.sendTransaction和remix來發送交易,但是短地址攻擊由於錢包和remix這些都對input做了長度檢測,無法通過這些方式來復現,只能通過發離線簽名交易來實現。
1.環境依賴:nodejs , keythereum , ethereumjs-common , ethereumjs-tx 。
2.進入Node控制台,獲取相應賬戶私鑰。
3.簽名交易,進入Node,這里注意nonce問題,需要Nonce是實際可執行的nonce,Nonce不對會發送交易失敗,關於如何獲取input data網路比較多就不詳述了。
4.遇到的坑,網路出來的步驟是有問題的或者過時了,當時是參考的這篇文章, https://www.freebuf.com/articles/blockchain-articles/199903.html
,在控制台通過eth.sendRawTransaction發送簽名好的交易,我遇到了這個錯誤 ** sendRawTransaction invalid sender **