天天看點

量子信用區塊鍊(純理論構想)

區塊鍊的本質,是确認信用。

在幾乎所有區塊鍊方案中,資料的更新分為如下幾個步驟:

  1. 各節點獨立記賬到候選區塊
  2. 各節點通過共識機制争奪候選區塊的傳入連結權
  3. 獲得傳入連結權的節點将候選區塊追加到區塊鍊中
  4. N次确認後最終确認傳入連結成功(比特币中N=6)

這是一種事後确認機制,區塊鍊對追加區塊進行最終确認,類似于蓋章。

如果我們将區塊作為信用的集合,每次資料修改作為一筆信用記錄,那麼區塊鍊的機制就是都一組信用的确認——一旦被區塊鍊确認,則這組信用獲得公信力。

從信用流的角度來說,流程如下:

  1. 節點收集無公信力信用
  2. 節點争奪蓋章權
  3. 節點将信用打包蓋章
  4. N次确認後,蓋章最終生效,信用獲得公信力。

顯然,交易過程中的信用并沒有公信力,後選取中的轉賬記錄也沒有公信力,隻有通過共識機制傳入連結,并經過N次确認後,信用才獲得公信力。

是以信用的生命周期為:

  1. 無公信力信用
  2. 已蓋章信用(經過收集和争奪蓋章權後)
  3. 有公信力信用(經過N次确認)

一旦信用成為有公信力信用便不會消失,永遠存在在區塊鍊中。

而所謂的“公信力”,本質上就是一種少數服從多數的原始正義(POS等方案種這個少數和多數由Stake做權重調整)——一般作惡節點比正常節點多,且相信同一個作惡結果,那麼公信力給出的就是這個作惡結果。

區塊鍊不會去管它蓋章的信用到底對不對,它隻保證最後這些信用可以獲得公信力。

而,基于區塊鍊的Oracle機制,本質上也是如此,借用從區塊鍊确認的公信力結果來對有争議資料進行仲裁,而這種仲裁的方式本質上就是采用了區塊鍊上的少數服從多數。

最關鍵的是,公信力在信用生命周期的最後環節中出現。

是否存在一種方案,讓公信力提前出現并在網絡中流通呢?

事後确認公信力與事先産生公信力是兩種不同的模式。

在前者模式下,網絡中流通的信用是可疑的,你并不知道這組資料是對是錯是否有效,隻有在入塊并經過多次确認後才可以真正相信這筆信用。換言之,交易發生的時候的信用都不是可靠的信用,隻有區塊被正式确認後才是可靠信用。

但在後者模式下,網絡中流通的信用是可靠的,你不需要懷疑其真實有效性。

如果真的可以做到後者的話,那就等于是有了一種絕對可信的信用流通物:貨币。這種貨币不用擔心會出現雙花,因為它具有可信的公信力。這就好比一種無法被僞造的貨币,由鑄币廠事先賦予了這種貨币不可更改也不可被複制的貨币真實性。

那麼,下面的問題就是:我們是否可能做到這點?

在經典情況下,這顯然是做不到的,因為這本身就是包括數字貨币與現實貨币在内的所有貨币都要解決的問題。我們就是為了解決雙花等問題而引入了共識機制,而現在又需要這種共識機制給出一個它在生效之前就已經有效的、不存在雙花等問題的貨币,這就本末倒置了。

但是,在量子實體中,這種詭異的事情卻未必是做不到的。

量子實體中存在很多很“反直覺”、“反常識”的東西。其中最根本的要點在于兩個:1、量子混合态;2、量子糾纏态。

量子混合态可以認為是在標明一組基态(一般就是某經典實體量對應的一組基态)後,一個量子态可以處于多基态以一定歸一化比例混合的狀态。

比如,對于1/2自旋的電子,我們看其z分量,其取值隻有兩種:+1/2或-1/2。是以基态就是{|up>,|down>}。我們對電子自旋z分量的測量結果要麼是前者要麼是後者,但在測量之前,電子可能處于這麼一種混合态:Ψ=a|up>+b|down>,其中 |a| ^ 2 + |b| ^ 2 = 1,是為歸一化條件。

也就是說,這樣一種狀态下的電子,有 |a| ^ 2 的機率處于+1/2态,有 |b| ^ 2 的機率處于-1/2态。直到測量發生,量子态坍縮到與測量相關的某一個基态上。

如果我們将這兩個基态替換為雙縫實驗中的左縫和右縫,那量子混合态的意思就是說:在我們測量之前,電子是“同時”從兩條縫中通過的。

這就是著名的量子雙縫實驗。

在量子混合态的基礎上,我們還可以構造出量子糾纏态。比如現在有兩個電子,它們的總自旋為0,進而可以處于如下這種糾纏态上:

Ψ=a|1up>|2down>+b|1down>|2up>

這樣,如果我們對第一個電子測量得到它的自旋z分量是朝上的,那麼第二個電子的自旋z分量必然朝下,反之亦然。但這裡的關鍵是:你在測這兩個電子的任意一個之前,都不知道它到底是朝上還是朝下,但隻要測量了一個,另一個也就随之确定了。甚至于,我們測量的時候到底是測量z分量還是x分量還是y分量?在測量之前沒人知道,但隻要測量了,無論是x分量還是y分量還是z分量,兩個電子的測量值都是等值相反的。

讓我們構造如下這麼一種狀态,其中每一個Ψ都是如上形式的,最多就是a和b的具體指不大相同:

Ω=Ψ1 × Ψ2 × Ψ3 ...

這就是說,有n組電子,每組電子都是一對處于上述糾纏态中的電子對,總自旋為0。下面,我們引入Alice和Bob兩個著名的通訊測試人員,Bob測量這個量子态,得到了一組結果:up,down,down,up,down,up,那麼Bob不用跟Alice說也知道,Alice那邊的結果肯定是down,up,up,down,up,down。這個過程是瞬時的,不需要花費時間,即假如Alice在地球,Bob在波講座40(《星際迷航》中的瓦肯星坐在地,距離地球16.5光年),那麼當Alice測量自己的這批電子并得到結果的同時,注意是同時,Bob手上的電子組的狀态也就确定了下來,和Alice的可以精确比對。

這就是量子通訊的基礎,當需要注意的是:你無法預先知道Alice或者Bob的測量結果是什麼,這是一組真随機值,是以這種方式隻能用于“同時”生成秘鑰,然後Alice用秘鑰加密,通過經典手段發給Bob,Bob用秘鑰解密,這個過程中秘鑰從來都隻在Alice和Bob的手裡,沒人能知道。

對,沒人能知道,因為量子态有一個很牛逼的性質:量子不可克隆原理。

也就是,如果一個對象處于量子态,那麼不存在不通過測量等方式破壞量子态(使其坍縮到經典基态)而将這個量子态複制出來的手段。

這東西怎麼和區塊鍊上的信用聯系起來呢?

假定,A生成了一組如上的量子糾纏态Ω,它可以分解為互相糾纏的兩個量子态,一個在A手上,另一個公開出來,稱為B。

一群人可以通過一些很不花費算力的方式來争取B,因為量子不可克隆原理,隻可能有一個人獲得B,如果有第三方想複制B,那麼注定是不可能的——結果是A和B同時廢棄。

這種方式最直接的應用,就是作為RSMC等智能合約所用的token,因為該token不可複制,是以簽約雙方(或者多方,糾纏态可以多粒子糾纏)的token是無法僞造的,隻能給與,不可複制。在驗證token之前,始終處于糾纏态,而在驗證的時候進行一次測量,完成驗證的同時也銷毀token。

另一種不是作為token而是直接作為coin使用,但這依賴于一項現在還不确定是否可能實作但理論上是可行的技術:量子加密與量子哈希。

假定我們現在手上有一組處于量子混合态的量子比特資料,并可以在不破壞其量子特性(即不造成其量子态坍縮)的情況下對其進行加密或者做哈希,得到了一個量子态,它完全完全有對應輸入量子态決定,且一旦輸入量子态坍縮到确定基态,這個加密量子系統或者哈希量子系統也會跟着坍縮到對應的基态。

一個最簡單的方式是這樣的:

也就是對所有可能的輸入态和資料态,求加密後的輸出,兩者編碼為量子基态後直積構成糾纏态,接着把所有這些糾纏态直和起來,構成一個大的糾纏态。

顯然,這個算符的特點是,對于任意輸入,都可以輸出對應的加密結果:

是以,這個手段在理論上是可以做到的,但實際上做起來可能非常複雜,尤其可能的輸入态非常多,如果沒有好的簡化手段的話,這事就不靠譜了——是以這是理論上可行但實際上未知的一種方法。我們可以實作制備好這個算符,或者通過一定的手段可以批量生成這個算符,進而確定操作可以快速進行。

同樣的,我們還需要建立一個新的算符,用來做區塊:

它的作用,是将連續兩個輸入輸出為一個哈希結果(或者如果使用量子計算門電路的思路,可以輸出為兩個結果,第二個不用,但依然保留資訊,這樣可以降低門電路的散熱損耗)。是以,如果我們有N個輸入,可以使用這個算符依次做哈希,最後輸出一個結果,如:

當這裡輸入1、2、3...都是混合态時,輸出結果也是混合态,是以算符不會導緻量子态坍縮。

最後,我們還差最後一項東西:三量子比特組糾纏。

這個實作比上面的兩量子比特組糾纏要複雜,其目标是三個量子比特組糾纏後,當一個被測量,另外兩個的狀态便跟着一起确定。一個最簡單的方案是這樣的:

其中1、2、3代表第幾個粒子,u表示z分量向上,d表示z分量向下。可以看到,這個量子态測量後,無論該粒子測到的是向上還是向下,另外兩個粒子的自旋方向必然和它相同。

假若上述三點在實際上可以做到,那我們就可以利用它來生成區塊鍊:通過共識算法獲得傳入連結權的節點先生成一個混合态Ω,這是三組量子比特的糾纏态,将其中Ω1與Ω2保留在本地,Ω3放出去。

接着,上一個區塊的哈希标記(也是量子态),與第一個Ω1一起,用H算符作用一下,得到了一個新的區塊哈希标記B。此後每放出一個Ω,就将Ω1餘上一次得到的哈希标記一起用H算符作用,可以一次放出固定量,比如N對,進而得到新的最終的區塊哈希标記B',和每一個Ω2放在一起,完成區塊打包。

注意,此時區塊中的所有量子比特資料都處于未使用狀态,但已經打包成了一個區塊。

放出去的Ω3如果需要使用,則将Ω3與賬簿記錄對應的量子态(從經典資料制備量子态相對而言是簡單的)一起用E算符加密,得到的是一個量子混合态,因為Ω3目前還是量子混合态,最後對這個混合态進行測量。這樣得到的資料便可以進行全網公布。

這樣,當使用方使用Ω3的時候,它并不知道Ω3最終會塌縮成什麼值,是以無法将結果傳播給其它節點。而還是量子态的Ω3無法被複制。使用方隻能得到Ω3與資料d一起加密後的結果,但并不知道密碼。

同時,一旦Ω3被使用,則Ω1與Ω2的狀态确定。在區塊中,Ω2因為被确定、坍縮到經典基态,是以可以被正常讀取,是以大家可以從區塊中獲得加密資料用的密碼,用以驗證交易記錄。

而當區塊中所有Ω2都确定下來後,區塊的哈希标記也就被唯一确認了,不可更改——當然,即便Ω2們沒有被确定下來,量子态下的哈希标記也是無法更改的,隻不過混合态下表示還有Ω2沒有被使用。

如果有人想要攻擊這套系統,Ω3傳遞的過程是無法攻擊的,攻擊的結果隻能是Ω3以及配套的Ω1與Ω2無效,但并不影響正常交易。

Ω3的使用過程也無法攻擊,因為使用者都不知道Ω3最後會生成什麼樣的結果。

唯一可能的攻擊點,是從區塊中獲得Ω2資料,然後使用該Ω2資料對受污染的髒資料做加密,讓人無法區分到底哪一次交易是正确交易。

對此,也有解決方案——理論上的解決方案。

假定,我們有一種非對稱加密算法,需要一組公鑰和私鑰。然後,存在一套算法可以從私鑰推算出公鑰,但并不存在能在可接受時間能從公鑰逆推出私鑰的算法,并且這套從私推共的算法可以被量子化為量子算符A,那麼我們将Ω2用算符A作用以得到新的量子态Ω2'。

該量子态Ω2'在Ω3被使用的時候自然也被坍縮确定下來,進而驗證的時候便可以使用Ω2'去驗證用Ω3加密的資料(Ω3和Ω2是相等的,隻不過存放的位置不同),但他人即便從區塊中獲得了Ω2',也不知道真正的Ω3是什麼。

這種非對稱加密的算法有很多,比如橢圓加密算法,但問題是這種算法以及從私鑰推公鑰的算法是否可以被制備成一種量子算符(實體上就是一種特殊的互相作用手段)。

現在,我們總共需要四個量子算符:非對稱加密算符E、非對稱解密算符D、哈希算符H以及私鑰推公鑰算符A。

假定HEAD這四個算符都有了,那麼上述方案就可以在區塊鍊上構造一個先分發具有公信力的信用後使用該信用進行交易消費的理論上不可被攻破的區塊鍊系統。

這個過程中,量子不可克隆原理保證了秘鑰Ω3傳輸過程中不可複制,量子糾纏特性保證了在交易被最終加密确認下來之前,沒人(包括交易方)知道密碼到底是什麼(公鑰一用即被銷毀,留下的隻有私鑰),區塊鍊保證公鑰分發的合理以及記賬的有效性。

這麼一個系統看上去是不是很美好?

當然,上述一切目前都隻存在于理論中,HEAD這四個算符沒人知道能否造出來——而且,就這個變态要求來看,應該是不大可能被造出來的,哈哈哈哈哈哈哈~~~~

原文釋出時間為:2017.08.13

本文作者:LostAbaddon

本文來源:

簡書

,如需轉載請聯系原作者。

繼續閱讀