2008 年中本聰提出 bitcoin 的概念。
2009 年專案上線。
所有 coin 由 mining 產生,一共 2100 萬枚。通過調整 difficulty, 確保每隔10min 產生新的 block。
pow + chaining,使得修改交易記錄基本不可能。
bitcoin 由四部分組成:
leaf node: hash(data block)
non-leaf node: hash(children nodes)
hash tree 的優點:高效、安全地驗證資料內容。
確定乙個葉子節點是否屬於一棵二叉樹:o(log(# leaf nodes))。
hash list: o(# leaf nodes)。
uses:確定資料 undamaged,unaltered,not fake。git/mercurial 使用了 merkle tree。
mathematical algorithm: 將任意長度的資料轉換為固定長度的位元字串。
one-way function: message->hash 很容易, 但 hash->message 很難,幾乎不可能。
輸入資料:message。
輸出資料:hash value (hash,message digest,digest)
理想的 cryptographic hash function 具有 5 個性質:
1. deterministic,確定性/唯一性。相同的輸入總會得到相同的 hash。
2. 可以很快計算出任一給定 message 的 hash value。
3. 從 hash value 反推出 message 是不可行的。除了嘗試所有可能的 message(暴力破解)。
4. 如果 message 有了很小的變化,那麼 hash value 會有很大的變化(雪崩效應,這一點與 simhash 相反)。
5. 找到具有相同的 hash value 的 兩個不同的 message 是不可行的。
cryptographic hash function 也可用於快速查詢,不過成本比較高。
cryptographic hash function 的安全級別有以下幾個性質:
1. pre-image resistence
從 hash value 找出 message 很難。
2. second pre-image resistence
給定 m1,很難找到乙個不同的 m2,滿足 hash(m1) = hash(m2)。
3. collision resistence
很難找到兩個不同的 m1、m2,滿足 hash(m1) = hash(m2)。
要求 hash value 的長度是 pre-image resistence 需要的兩倍。不然會在 birthday attack 中發生碰撞。
public key cryptography
在 public channel 上安全地交換 cryptographic key。
和 rsa 一樣,是一種 public key encryption algo。
public key -> sha256 -> ripemd160 -> public key hash -> base58check encode
Actvity啟動過程涉及到的資料結構
taskrecord 記錄activiyt棧的資訊,持有乙個arraylist和activitytask activityrecord 記錄activiyt的資訊,持有乙個activityinfo activitystack 持有乙個taskrecord的list arraylistmtaskhis...
discuz涉及到的問題
其中 設定創始人 config global.php 修改 config admincp founder 1,511314 其中門戶管理中同步登陸 在discuz panel修改 construct將tbl common admincp session表中的 errorcount置為 1 panel...
專案管理涉及到的文件
業務聯絡函 業務需求說明書 立項報告 立項評審報告 專案實施方案 專案組通訊錄 專案計畫與執 況跟蹤 需求規格說明書 系統介面規格說明書 總體設計 系統建設整體解決方案 軟體配置管理計畫 軟體質量保證計畫 編碼規範 源 sit測試報告和測試用例 uat測試報告和測試用例 效能測試方案與報告 上線實施...