這篇文章最初發表於 中等的.
比特幣 除了支付之外,它還有許多潛在用途。每個塊都有一個 時間戳 這是加密保護的。通過在交易和區塊中記錄數據,可以向任何外部審計員證明數據自特定日期以來未被篡改。時間戳對於時間敏感的數據特別有用:專利、保險索賠、發票、公證人等。
這通常是用 OP_RETURN. 我們介紹了一種使用比特幣作為時間戳服務器的新穎替代方案,它既是私有的,又沒有開銷。
ECDSA 簽署
在ECDSA 中,隨機數 ķ,稱為隨機數,在簽名時被選擇。 G 是生成點。
r 是x 坐標 R.
H() 是一個哈希函數, 米 是正在簽名的消息,並且 d 是私鑰。
簽名是對 (r, s) 並在區塊鏈上公開。兩個都 ķ 和 d 必須保密。
在k 中嵌入數據
自從 ķ 可以是任意隨機數,我們可以嵌入 數據 其中如下:
j 是另一個隨機選擇的數字 ķ 前。新的 ķ 和以前一樣只是一個隨機數,可用於對消息進行簽名,以相同的方式驗證。
r, 因此 R¹, 作為簽名的一部分在區塊鏈上公開。證明 數據 嵌入其中,證明者必須披露兩者 Ĵ 和 數據 如下:
任何人都可以驗證 R 是根據以下知識創建的 數據 通過驗證等式4 是否成立,因為所有變量(R、J、數據、G)都是公開的。注意 Ĵ 在哈希函數中出現兩次,一次。鑑於它是不可能解決的 R 事後。因此 R 在區塊鏈上 提交 到 數據.
私人的
如果愛麗絲有一些數據要時間戳,她可以花費她自己的一枚硬幣並創建 ķ 使用公式3。外部觀察者只能看到 r 在她的簽名中,並且不知道它是否來自 ķ 使用或不使用等式3 生成。時間戳交易看起來與普通支付交易相同,使其最終成為私有的。
無開銷
如果Alice 沒有任何比特幣,她可以要求Bob 將她的數據打上時間戳到他的簽名中。如果鮑勃無論如何都必須簽署才能花費硬幣,那麼時間戳對他來說沒有任何開銷。 Bob 可以是時間戳服務並為此收取費用。他只回饋愛麗絲 Ĵ不透露 ķ. Alice 使用公式4 來驗證她的數據確實是在 r 在區塊鏈上。
什麼進入數據
通常,只需要提交原始數據的哈希值。數據也可以是根 默克爾樹.
致謝
這個想法來自 這個麻省理工學院的講座,在Schnorr 簽名的上下文中,與此處的ECDSA 簽名相比。
[1] 嚴格來說有兩個對應點/Rs,給定一個 r 在橢圓曲線上。我們可以驗證它們中的任何一個是否使等式4 成立。
觀看:CoinGeek 紐約演講、比特幣智能合約和計算
比特幣新手?查看CoinGeek 的 初學者的比特幣 部分,了解更多關於比特幣(中本聰最初設想)和區塊鏈的終極資源指南。