跳至主要內容

指南

如何給文件加時間戳記,證明它在某日期已存在?

計算文件的密碼學雜湊,再將雜湊發佈到您無法控制的帶日期紀錄中:公開區塊鏈上的交易,或時間戳記機構簽署的憑據。日後持有相同文件的人可以重新計算雜湊,與帶日期的紀錄比對,證明該內容至遲在該日期已經存在,而無需公開內容。時間戳記只證明某日期已存在,不證明誰寫的、誰同意過,也不證明內容真實。

更新於2026年10月3日

什麼是密碼學雜湊

密碼學雜湊是從文件計算出的定長指紋:相同輸入總會產生相同輸出,改動單個字元會產生完全不同的指紋。它是單向的,不能從雜湊恢復原文;用當今電腦尋找雜湊相同的兩個不同文件,在實際中不可行。

最常見的是 SHA-256 和 Keccak-256。SHA-256 是 Bitcoin 和多數時間戳記機構採用的常用標準。Keccak-256 廣泛用於 Ethereum 及 Polygon 等兼容鏈,也是 TrustChain 錨定已簽署協議時使用的雜湊。兩者均生成 64 位十六進位字元串,都適用於時間戳記;只須記下用了哪一種。

  1. 每次輸入同一文件,得到同一指紋
  2. 改動一個字元,整個指紋都會變化
  3. 無法由指紋反推出正文
  4. 無論文件是一行還是一GB,指紋長度相同

為什麼公開雜湊能證明某日期已存在

關鍵就在於發佈雜湊,而不是文件。雜湊不透露內容,可以公開保存;而事後構造一個恰好匹配指定雜湊的文件,在實際中不可行,因此帶日期的公開雜湊紀錄能表明該確切內容至遲在那天已存在。

證據的力度來自紀錄,而非雜湊本身。在您自己的筆記本里寫下雜湊證明不了什麼,因為筆記本和日期由您控制。Bitcoin 或 Polygon 區塊中的雜湊,或時間戳記機構簽署憑據中的雜湊,則由您無法控制且許多人共同觀察的系統確定日期。

逐位元組保存原始檔案。只有日後能提供雜湊等於已發佈值的文件,證明才有效;重新保存的 PDF、重新輸入的文本或帶修訂痕跡的文件會得到不同雜湊。把確切文件保存在多處,並記下所用雜湊算法及發佈位置。

時間戳記不能證明什麼

時間戳記證明特定位元組在某日期或之前已存在。它不證明其他內容,甚至不證明文件寫於當天:一月寫好、三月錨定的文本,得到的是三月的時間戳記。人們常從時間戳記額外推斷三件它無法證明的事;本指南每種方法都如此,包括 Polygon 錨定或機構簽署憑據。

  1. 誰寫的。任何人都能對任何文件計算雜湊,包括從別人那裡複製的文件。區塊或憑據中的雜湊既不識別作者,也不識別發佈者,除非另有身分步驟把某人與該行為關聯起來。
  2. 是否達成一致。帶時間戳記的合同草稿只說明草稿存在過,不說明另一方看過、接受或簽署。達成協議需要雙方同意同一文本的紀錄。
  3. 是否真實。發票、聲明或主張的雜湊,不能說明其中內容是否準確。它是位元組的指紋,不是事實查核。

公開區塊鏈錨定:Polygon 和 Bitcoin

區塊鏈錨定把雜湊放入公開鏈的交易,包含它的區塊提供日期。在 Polygon 或 Ethereum 上,雜湊寫入交易資料或合約事件。在 Bitcoin 上,常用 OpenTimestamps:一個免費的開放協議,把許多雜湊匯成一棵默克爾樹,用一筆 Bitcoin 交易提交根值,並提供一份供您保留的小型證明文件。

優點是獨立性和持久性。證明持續有效不需要某家公司繼續營業,任何人都能在公開區塊瀏覽器查找交易;區塊確認並被後續區塊覆蓋後,紀錄改動可被發現:任何修改都會被運作網路的所有人看到。

弱點是精度和身分。區塊時間戳記由網路設置,是近似值而非精確值:Bitcoin 可能偏差一小時或更多,因此應視為日期證明而非分鐘證明。OpenTimestamps 證明完全確認可能需要數小時,且交易 ID 或證明文件須自行保留。最重要的是,交易不識別任何人:它只顯示某錢包在某時間發佈了雜湊,不說明誰寫了或同意了文件。

時間戳記機構與公證人

時間戳記機構是一個伺服器,將您的雜湊與當前時間一起簽署並返回憑據。常用標準是 RFC 3161,歐洲 eIDAS 框架還定義了由受監管服務商提供的合格版本。您提交的是雜湊,而非文件,因此機構不會獲知內容。

優點:精確時間、廣泛認可的格式,以及許多文件和程式碼簽署工具的內置支持。弱點:您須信任機構的時鐘、密鑰管理及持續存在,日後檢查憑據還需要能理解該格式的軟體。如果機構簽名密鑰洩露,其簽發的每份憑據都會變得可疑。

公證人是人工替代方案。公證人驗證身分、見證簽名並在登記簿記下日期。這與雜湊是不同類型的證據,也是本列表中唯一能說明誰在現場的方法。限制在於費用、預約,以及公證人通常見證紙質簽署而非數位檔案的位元組:除非同時對文件計算雜湊,否則經公證的紙件與編輯過的數字副本仍可能不同。

為什麼發電子郵件給自己的證明力較弱

把文件發電子郵件給自己是常見土辦法,但有三個弱點。郵箱由您控制,可以刪除電子郵件,再以修改後的附件重建。電子郵件頭日期是純文本,收信過程中或導出後都可能被改。內容還完整保存在郵箱中,既不私密也不緊湊。

它唯一的優點是電子郵件服務商伺服器上的接收時間戳記,不由您控制。這比沒有稍好,但服務商並未見證任何事,其日誌也不是為證據設計的,幾年後也不會幫您調取伺服器紀錄。如果想同樣簡單卻能實際證明日期,可以計算文件雜湊,再用 OpenTimestamps 標記:只需一條指令,公開時間紀錄服務免費。

TrustChain 的定位

單純時間戳記只回答一個問題:這些位元組至遲在這天是否已存在。TrustChain 面向另一個問題:經驗證的雙方是否同意這份確切文本,以及何時同意。雙方通過 Sumsub 用帶照片的身分證件和自拍完成一次身分驗證,簽署同一份最終文本;雙方都有帳號後還可進行端對端加密聊天。未經驗證的帳號不能簽名。

簽署時,TrustChain 為每個身分已驗證帳號的簽名寫入帶時間戳記的審計條目。瀏覽器和應用程式無法編輯,這是單靠雜湊無法提供的部分。錨定是可選的:它計算已簽署紀錄的 Keccak-256 指紋,並寫入 Polygon 主網交易,公開確定日期。Free 方案($0,無需銀行卡,每月 1 份協議和 3 次 AI Advisor 請求)中,額外協議或 Polygon 錨定每次各一次性收取 $1,錨定還需身分已驗證。Pro 每月 $19,含 20 份協議和 20 次錨定;Elite 每月 $49,兩項各 100。方案按月,可隨時取消。

若錨定,寫入鏈上的是指紋、內部紀錄 ID 和兩個空錢包欄位,絕不包含正文、姓名或郵箱。協議正文保存在 TrustChain 伺服器,以便計算指紋及提供紀錄、證書和 PDF,所有方案下都免費。聊天端對端加密,TrustChain 無法讀取訊息。公開連結無需帳號,顯示紀錄狀態及已錨定時的指紋,絕不顯示雙方身分;只有 Elite 方案建立的協議才顯示標題。已錨定時,任何區塊瀏覽器都可獨立於 TrustChain 查核 Polygon 交易。TrustChain 在 Polygon 主網上的智能合約是 0x649Bc303d15E173D95B4d379e163868b03cf5Fec。

這些都不改變時間戳記的本質。錨定指紋及其日期可在任何地方查核;協議能否執行取決於雙方所在地和約定內容,TrustChain 對此不作聲稱。

手動操作

選擇一種雜湊函數並紀錄下來。以下步驟用於您自行計算雜湊的文件;TrustChain 指紋還涵蓋內部紀錄和帳號 ID,因此不會與單純正文的雜湊匹配。各主流操作系統都自帶 SHA-256 工具。Keccak-256 是 TrustChain 及 Ethereum 兼容鏈使用的函數,需要一段簡短指令碼,因為 OpenSSL 等指令行工具的 sha3-256 選項屬於 NIST SHA-3,填充方式不同,結果也不同於 Keccak-256。

在線雜湊計算器方便,但有兩點要注意。貼上或上傳的任何內容都會離開您的電腦,切勿用於不願公開的文件;完全在瀏覽器內運作的工具更好,粗略檢查辦法是在計算前斷網,看它是否仍能運作。陌生網站也可能把算法標錯,因此依賴結果前,至少用本地指令交叉核對一次。

得到雜湊後,將其發佈到帶日期且您無法控制的地方:OpenTimestamps 證明、時間戳記機構憑據,或公開鏈交易。隨後保存確切原始檔案,並記下算法、雜湊和發佈位置。

日後檢查時,對同一文件運作相同指令,比對兩個 64 位字元串;0x 前綴和字母大小寫無關,其餘字元必須全部一致。若不同,說明文件變了,或使用了不同算法或編碼;常見原因是重新保存 PDF、轉換換行符或末尾新增換行。若雜湊已鏈上錨定,在區塊瀏覽器打開交易,在資料中找到雜湊,再用同樣方式比對。

  1. macOS 上的 SHA-256:shasum -a 256 agreement.pdf
  2. Linux 上的 SHA-256:sha256sum agreement.pdf
  3. Windows(PowerShell)上的 SHA-256:Get-FileHash agreement.pdf -Algorithm SHA256
  4. 使用 Python 的 Keccak-256(先執行 pip install pycryptodome):python3 -c "from Crypto.Hash import keccak; print(keccak.new(digest_bits=256, data=open('agreement.txt','rb').read()).hexdigest())"
  5. 使用 Node.js 的 Keccak-256(先執行 npm install ethers):node -e "const {ethers}=require('ethers'); console.log(ethers.keccak256(require('fs').readFileSync('agreement.txt')))"

接下來常問的問題

時間戳記能證明文件作者嗎?

不證明。雜湊識別的是位元組,不是人;任何人都能對不是自己寫的文件計算雜湊。TrustChain 回答相鄰的問題:誰簽署了。雙方簽署前須用帶照片的身分證件和自拍驗證身分,未經驗證的帳號不能簽名,因此紀錄中的簽名來自已驗證身分。但這仍不能說明最初是誰寫下文本。

使用 TrustChain 將協議錨定到 Polygon 要多少錢?

Free 方案($0,無需銀行卡)每月包含 1 份協議;額外 Polygon 錨定每次一次性收取 $1,且需身分已驗證。Pro 每月 $19,包含 20 份協議和 20 次錨定;Elite 每月 $49,兩項各 100。方案按月,可隨時取消。錨定是可選的:每份已簽署協議都有瀏覽器和應用程式不能編輯的帶時間戳記審計條目,錨定才增加 Keccak-256 指紋;您自己的紀錄、證書和 PDF 在所有方案下都免費。

協議正文儲存在區塊鏈上嗎?

不存。若選擇錨定,寫入鏈上的是 Keccak-256 指紋、內部紀錄 ID 和兩個空錢包欄位,絕不包含正文、姓名或郵箱。協議正文儲存在 TrustChain 伺服器上,以便計算指紋及向雙方提供紀錄、證書和 PDF。協商聊天採用端對端加密,TrustChain 無法讀取訊息。指紋還涵蓋內部紀錄和帳號 ID,因此無法單憑正文重新計算。

沒有帳號能驗證 TrustChain 時間戳記嗎?

能。公開連結無需帳號即可打開,顯示紀錄狀態,以及已錨定時的指紋,絕不顯示雙方身分;標題僅在 Elite 方案下建立的協議上顯示。若紀錄已錨定,Polygon 交易可在任何區塊瀏覽器獨立於 TrustChain 查核。TrustChain 在 Polygon 主網上的智能合約是 0x649Bc303d15E173D95B4d379e163868b03cf5Fec。

時間戳記能讓協議在法律上更有力嗎?

TrustChain 不作這項聲稱。時間戳記表明文本至遲在某日期存在;TrustChain 紀錄再說明哪些已驗證帳號在何時簽署,僅此而已。錨定指紋及其日期可在任何地方查核;協議能否執行取決於雙方所在地和約定內容,TrustChain 對此不作聲稱。如果這對您重要,應咨詢在您所在地執業的律師。

新的身分驗證目前暫停。以前已通過驗證者仍可簽署;未通過者須等驗證恢復。起草、閱讀、分享連結和查找紀錄均可正常使用。

Free 方案每月包含 1 份協議:雙方各經 Sumsub 身分驗證、帶日期的簽名紀錄和公開連結。無需銀行卡。

繼續閱讀