🔥 Gate 廣場活動|#发帖赢Launchpad新币KDK 🔥
KDK|Gate Launchpad 最新一期明星代幣
以前想參與? 先質押 USDT
這次不一樣 👉 發帖就有機會直接拿 KDK!
🎁 Gate 廣場專屬福利:總獎勵 2,000 KDK 等你瓜分
🚀 Launchpad 明星項目,走勢潛力,值得期待 👀
📅 活動時間
2025/12/19 12:00 – 12/30 24:00(UTC+8)
📌 怎麼參與?
在 Gate 廣場發帖(文字、圖文、分析、觀點都行)
內容和 KDK 上線價格預測/KDK 項目看法/Gate Launchpad 機制理解相關
帖子加上任一話題:#发帖赢Launchpad新币KDK 或 #PostToWinLaunchpadKDK
🏆 獎勵設定(共 2,000 KDK)
🥇 第 1 名:400 KDK
🥈 前 5 名:200 KDK / 人(共 1,000 KDK)
🥉 前 15 名:40 KDK / 人(共 600 KDK)
📄 注意事項
內容需原創,拒絕抄襲、洗稿、灌水
獲獎者需完成 Gate 廣場身份認證
獎勵發放時間以官方公告為準
Gate 保留本次活動的最終解釋權
Solidity極簡入門|第二十八講:Hash
我最近在重新學 solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(程式設計大佬可以另找教程),每周更新 1-3 講。
所有代碼和教程開源在 github:github.com/AmazingAng/WTFSolidity
哈希函數(hash function)是一個密碼學概念,它可以將任意長度的消息轉換為一個固定長度的值,這個值也稱作哈希(hash)。 這一講,我們簡單介紹一下哈希函數及在 solidity 的應用
Hash 的性質
一個好的哈希函數應該具有以下幾個特性:
單向性:從輸入的消息到它的哈希的正向運算簡單且唯一確定,而反過來非常難,只能靠暴力枚舉。
靈敏性:輸入的消息改變一點對它的哈希改變很大。
高效性:從輸入的消息到哈希的運算高效。
均一性:每個哈希值被取到的概率應該基本相等。
抗碰撞性:弱抗碰撞性:給定一個消息 x,找到另一個消息 x’使得 hash(x) = hash(x’) 是困難的。
強抗碰撞性:找到任意 x 和 x’,使得 hash(x) = hash(x’) 是困難的。
Hash 的應用
生成數據唯一標識
加密簽名
安全加密
Keccak256
Keccak256 函數是 solidity 中最常用的哈希函數,用法非常簡單:
生成數據唯一標識
我們可以利用 keccak256 來生成一些數據的唯一標識。 比如我們有幾個不同類型的數據:uint,string,address,我們可以先用 abi.encodePacked 方法將他們打包編碼,然後再用 keccak256 來生成唯一標識:
弱抗碰撞性
我們用 keccak256 演示一下之前講到的弱抗碰撞性,即給定一個消息 x,找到另一個消息 x’使得 hash(x) = hash(x’) 是困難的。
我們給定一個消息 0xAA,試圖去找另一個消息,使得它們的哈希值相等:
大家可以試個 10 次,看看能不能幸運的碰撞上。
強抗碰撞性
我們用 keccak256 演示一下之前講到的強抗碰撞性,即找到任意不同的 x 和 x’,使得 hash(x) = hash(x’) 是困難的。
我們構造一個函數 strong,接收兩個不同的 string 參數 string1 和 string2,然後判斷它們的哈希是否相同:
大家可以試個 10 次,看看能不能幸運的碰撞上。
總結
這一講,我們介紹了什麼是哈希函數,以及如何使用 solidity 最常用的哈希函數 keccak256。