AlphaCurve Contract最後更新:2026-08-25

TRUST CENTER

信任中心

這一頁寫給資安、法務與採購的審閱者。它不介紹功能,只回答「你們怎麼保護資料、我們的證據在什麼條件下站得住腳」。

本頁只列已經成立的事實,每一項都註明可查證的位置。尚未成立的項目列在最後一節,不會出現在上面任何一節裡。

簽署與證據

證據不必以信任我們為前提

以下每一項都可以由你、對造或第三方獨立驗證,不需要本平台的帳號,也不需要本平台繼續存在。

Email 一次性驗證碼
簽署前,對方須輸入寄至「發起人事先指定」信箱的 6 位數驗證碼。收件地址由發起人填寫,簽署頁只做遮蔽顯示,對方無法變更。驗證碼 10 分鐘有效、連錯 5 次作廢、60 秒才能重寄、單份邀請最多寄 5 次。證明簽署當下對方能收取該信箱郵件,不證明其自然人身分。
可查證位置:domain/signer_identity.go、domain/assurance.go(L2)
簽署第二因子(進階選配,僅個別授權)
在 Email 驗證之上,可要求 Passkey 裝置驗證(FIDO2/WebAuthn)、Google/Microsoft 帳號登入、TWID 行動身分識別,或發送至發起人指定門號的 SMS 簡訊驗證碼,達 L3 多因子。四者皆為個別授權功能,四種方案皆不包含;未獲授權的組織介面與 API 完全不變。TWID 與 SMS 另需該組織自行填入自己的服務憑證(TWID 帳號/EVERY8D API 帳密),簡訊由組織自己的 EVERY8D 帳戶扣點——本平台不持有共用帳號,秘密以 AES-256-GCM 封存且綁定組織識別碼,密文複製到其他組織的資料列上無法開啟。與下方「帳號登入雙因驗證」是不同的東西。
可查證位置:domain/assurance.go(L3)、migration 000048/000052/000056/000063、infra/secretbox/
憑證式數位簽章(L4,進階選配,僅個別授權)
簽署人於 TWID 身分識別中心完成行動身分識別(門號與身分證字號經電信申登資料比對相符)後,由臺灣網路認證(TWCA)簽發簽署憑證,並以該憑證對定稿合約 PDF 完成數位簽章。簽章內嵌於 PDF,任何支援 PDF 簽章驗證的工具都能獨立確認文件自簽署後未經竄改——不需要信任本平台。此為個別授權功能,四種方案皆不包含。上限照樣寫明:它不證明簽署人有權代表其所屬公司為該行為(代表權屬於授權範圍問題,與憑證本身無關),本平台亦不對契約內容之效力作任何認定。
可查證位置:domain/assurance.go(L4)、migration 000057
簽署人稽核軌跡
寄出邀請、驗證通過、首次開啟合約、勾選同意聲明、第二因子驗證、完成簽署——每一步各自記錄時間、來源 IP 與裝置。只能新增,API 不提供修改或刪除路徑,資料庫層另有 append-only 觸發器擋下已寫入簽名列的 UPDATE。
可查證位置:usecase/signing.go、migration 000027(append-only 觸發器)
SHA-256 文件指紋
合約定稿時對內容原文取雜湊並鎖定。證據包內附 contract-content.txt,即取雜湊的那串原文,任何人可自行以 sha256sum 比對。附件另有「合約本文與附件」的組合指紋。
可查證位置:domain/contract.go、domain/bundle.go
RFC 3161 第三方可信時戳
指紋與稽核鏈鏈頭送第三方時戳機構簽發,證明該內容於該時點前已存在。多家機構備援,並記錄實際簽發的那一家。時戳憑證原始檔(.tsr)收在證據包內,可用 openssl 獨立驗證。
可查證位置:infra/tsa/、證據包 timestamps/ 與 chains/
可偵測竄改的雜湊鏈
每筆事件的雜湊含前一筆的雜湊,改動任一筆而不重算後續會立即被偵測。我們據實載明其上限:能重算整條鏈的一方(也就是我們)重算後的鏈看起來正常,因此鏈頭需第三方時戳錨定;證據報告逐段標示「已錨定」或「未錨定」。
可查證位置:domain/merkle.go、證據報告的錨定狀態欄
每日彙總與對外發布
每個業務日結束後,當日簽署彙總為一棵 Merkle 樹,樹根連同自我描述的敘述送往三處:RFC 3161 時戳、Sigstore Rekor 公開透明日誌、OpenTimestamps(最終寫入 Bitcoin 交易)。送出的是 64 字元雜湊與日期,合約內容、姓名、金額皆不在其中。
可查證位置:usecase/merkle_publish.go、infra/rekor/、infra/ots/
獨立驗證(開放原始碼)
contract.alphacurve.io/verify 可將證據包 zip 拖入,於瀏覽器內逐項重算,不上傳任何資料,斷網亦可運作;亦可下載單一 HTML 檔離線使用。證據包內另附 verify.txt,以 sha256sum、openssl、rekor-cli、ots 等標準工具重寫每一步驟。
可查證位置:/verify、public/alphacurve-contract-verifier.html
證據報告與證據包
證據報告可列印,載明簽署歷程、雜湊鏈、時戳與每日彙總,並完整列出 L1–L4 證據等級與各級「證明什麼、不證明什麼」,未達成的等級標示為「尚未提供」而非隱藏。證據包(evidence.zip)為免費、即時、自助下載;對造亦可憑當初的簽署連結重新驗證信箱後自行取得同一份。
可查證位置:usecase/evidence_package.go、domain/evidencepackage.go
簽署完成即寄出副本
簽署完成後,合約 PDF 與證據報告 PDF 以真正的 MIME 附件寄至雙方各自的信箱,不是下載連結。副本因此不依賴本平台繼續存在。信中直接印出兩份附件的 SHA-256 與定稿內容指紋。
可查證位置:usecase/delivery.go、infra/mail/delivery_templates.go

資料與隱私

資料放在哪裡、由誰處理、留多久

以下為目前實際的部署與實作狀況。

資料存放地區
應用程式與資料庫均位於 Google Cloud Platform asia-east1(台灣彰化)。資料庫為 Cloud SQL for PostgreSQL 15,僅透過本機 Cloud SQL Proxy 連線,不對外開放。
可查證位置:docs/deploy.md
子處理者
Google Cloud Platform(主機與資料庫,台灣)、Postmark(郵件遞送)、Cloudflare(DNS 與流量代理)。使用 AI 功能時另有 Anthropic 或 OpenAI(可切換,由平台設定決定)。證據發布相關的第三方服務為 FreeTSA 與 Sigstore 時戳、Sigstore Rekor、OpenTimestamps calendar(opentimestamps.org、eternitywall、catallaxy)——送往這些服務的僅為雜湊值與日期。組織啟用 OAuth 簽署驗證時,另有 Google 或 Microsoft 身分提供者;啟用 TWID 行動身分識別或憑證式數位簽章時,另有 TWID 身分識別中心與臺灣網路認證(TWCA),且該組織須使用自己的 TWID 帳號憑證。
可查證位置:config/config.go、infra/ 各子套件
資料保存期限
預設保存期為 15 年,對應民法第 125 條的一般請求權時效——保存證據的正當理由是其目的尚未消滅,而該目的以請求權可否行使為界。平台管理者可調整此設定,範圍 1 至 50 年。
可查證位置:domain/policy.go(DefaultRetentionYears)
保存期是承諾,不是自動刪除機制
必須明確說明:本系統目前沒有任何自動刪除證據的機制。將保存期設為 N 年不會使資料在 N 年後被移除,它改變的是我們對外聲明保存多久。我們把這一點寫在程式碼的設定說明裡,也寫在這裡,因為管理者若誤以為設定即刪除,會在被要求刪除資料的當下才發現落差。
可查證位置:domain/policy.go(「A COMMITMENT, NOT A MECHANISM」)
已簽署證據不因單方要求刪除
已完成簽署的紀錄係雙方共同之證據。若因任一方要求即刪除,等同讓其中一方單方面銷毀對方的證據。此原則寫在對方簽署時所同意的聲明中,且同意聲明採簽署當下的原文快照,日後修改文字不會改寫他人已同意過的內容。
可查證位置:domain/signing.go(ConsentVersion 快照)
簽署證據的外鍵保護
與簽署證據相關的外鍵一律 ON DELETE RESTRICT:合約或邀請一旦帶有簽署證據,資料庫層即拒絕刪除。
可查證位置:migrations(signature 相關外鍵)

基礎架構與存取

傳輸、儲存與生產環境存取

僅列可查證的項目。未列出者見最後一節。

傳輸加密
對外一律 HTTPS(TLS)。後端與前端行程僅監聽內部埠,不直接對外。
可查證位置:docs/deploy.md(nginx 轉發架構)
靜態加密
資料庫為 Google Cloud SQL,靜態資料由 GCP 平台層加密(Google 預設對所有 Cloud SQL 資料靜態加密)。
可查證位置:Cloud SQL 平台行為,docs/deploy.md
生產環境存取控制
生產主機僅接受金鑰認證的 SSH,部署以專用 deploy 帳號進行。防火牆規則僅允許單一轉發主機 IP(/32)連入應用埠,其餘來源一律拒絕。部署憑證存放於 GitHub Secrets,不落地於任何開發者機器。
可查證位置:docs/deploy.md(contract-allow-nginx 防火牆規則)
帳號登入雙因驗證(使用者自選開啟)
使用者可於個人設定自行開啟:登入時先輸入密碼,再完成第二步——輸入寄至帳號信箱的 6 位數驗證碼,或登入與帳號信箱一致的 Google/Microsoft 帳號(方式可自選;IdP 方式隨時可退回信箱驗證碼,不會被鎖在門外)。挑戰為單次使用、驗證碼連錯 5 次即鎖定,開啟與關閉皆須重新輸入密碼。目前為選用而非全面強制。此為「登入本平台」的保護,與上方「簽署第二因子」是不同的兩件事。
可查證位置:migration 000054/000055、handler/auth.go(MVP-39)
資料庫結構變更的可重複性
資料庫 migration 內嵌於後端執行檔,啟動時自動套用,並有測試確保編號連續、可重跑、且不會與既有資料衝突。修正既有內容一律採條件式寫法,不覆蓋管理者已做的編輯。
可查證位置:migrations/contiguity_test.go、migration 000034 的條件式慣例

法規與設計說明

台灣電子簽章法相關設計

說明本系統的設計對應到哪一種簽章概念,以及它的界線。

預設屬一般電子簽章之設計
預設的對外簽署係依《電子簽章法》一般電子簽章之概念設計,以簽署意思表示、Email 驗證、文件指紋與稽核軌跡建立證據鏈。另提供憑證式數位簽章選配(L4,僅個別授權):簽署人經 TWID 行動身分識別後,由 TWCA 簽發簽署憑證並對合約 PDF 完成數位簽章。
可查證位置:landing 法律效力章、domain/assurance.go、domain/certified.go
不替法院作法律定性
《電子簽章法》第 6 條就「符合法定條件的數位簽章」給予推定為本人親自簽名或蓋章的效果。即使使用憑證式簽章選配,本系統的報告與文案也只陳述提供了哪些證據(誰驗證了身分、誰簽發了憑證、簽章蓋在哪份文件上),不宣稱「具推定效果」或「絕對有效」——法律定性由法院為之。預設的一般電子簽署則提供主張「是他簽的」一方所需的證據:Email 驗證紀錄、明確的同意意思表示、文件指紋與完整稽核軌跡。
可查證位置:domain/certified.go(CertifiedDoesNotProve)、domain/assurance.go
公司登記公開資料比對
簽署當下可向經濟部商業司查核統一編號與公司名稱,並將查得結果快照為證據。報告載明「公司登記比對:相符」,而非「代表人已驗證」——登記資料只能證明查詢當時的登記內容,不能證明螢幕前的人即為該自然人,亦不認定其是否有權代表該公司。
可查證位置:infra/gcis/、MVP-35
可信時戳不等同公證
可信時戳由第三方機構簽發,證明內容於該時點已存在,不等同公證。此點於證據報告與說明文件中一致載明。
可查證位置:證據報告效力範圍段

尚未成立

我們現在還沒有的

以下項目常見於同類服務的信任中心。截至本頁最後更新日,它們在本公司尚未成立,因此不出現在上面任何一節。它們一旦成立,會連同可查證的來源一併列出。

  • ISO/IEC 27001 資訊安全管理系統認證——尚未啟動驗證程序。
  • 第三方滲透測試——尚未執行。
  • SOC 2 報告——尚未啟動。
  • 資安白皮書、事件應變政策、弱點管理與安全開發生命週期的正式文件——尚未建立。
  • 災難復原演練與復原時間目標(RTO/RPO)的正式承諾——尚未訂定。
  • 集中式日誌與監控告警——目前僅有行程層級的執行日誌,未建立集中式監控。

審閱過程中若需要上述任何一項的現況說明,或需要就特定控制項提供書面回覆,請來信: [email protected]