Zano

作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/zano.md

Zano扎諾 評論

以下是Zano的白皮書:https://zano.org/downloads/zano_wp.pdf

Zano的白皮書是非常高質量的文件。可能是我看過的所有區塊鏈項目中最好的白皮書。圖表很好,解釋也很清楚。準確地傳達你的工作對於其他人能夠審查它並給出有用的建議至關重要。這是Zano的閃光之處。

這裏有一個關於PoW/PoS混合協議不可行的一般證明:Pow_pos_hybrid.md

隱私和賄賂 #

一般來說,股權證明類型的機制很容易受到賄賂的影響 proof_of_stake 在Zano中做到這一點的最佳方法是付錢給驗證者,讓他們把所有的錢轉移到一個不同的地址,並向你出售他們現在空的私鑰的副本,而這個私鑰在幾個小時前還是有效的。

在Zano中,驗證者被隱藏在一個加密協議後面,所以我們無法知道誰是驗證者。因此,該機制不能刪除任何存款,以懲罰出售其舊私鑰的驗證者。

如果攻擊者買下了頂部區塊和最近一個檢查點之間歷史上某一點的大部分股權證明私鑰,那麼我們就可以進入攻擊的第二階段了。

分叉選擇規則 #


扎諾的分叉選擇規則並不是一個着眼於單一歷史的累積權重函數。它是一個比較2個備選歷史,並選擇一個的函數。它是一個有4個輸入的函數。

weight(P1, P2, H1, H2) = (P1 + H1) * P1*H1/(P2*H2)

把它全部乘出來。

weight(P1, P2, H1, H2) = (P1*P1*H1 + P1*H1*H1) /(P2*H2)

在實踐中,我們總是在比較一方與另一方的重量。

weight2 = (P2*P2*H2 + P2*H2*H2)/(P1*H1)

如果第1方贏了,那就意味着->

(p1 + h1) * p1 * h1 / (p2 * h2) > (p2 + h2) * p2 * h2 / (p1 * h1)

簡化爲->

(p1 + h1) * (p1 * h1)^2 > (p2 + h2) * (p2 * h2)^2

簡化爲->

weight(P, H) = (P + H) * (P * H)^2

這不是扎諾的確切的分叉選擇規則。這是一個簡化,讓你對他們使用的分叉選擇規則有一個大致的概念。

因此,讓我們假設攻擊者有2/3的股權控制權,並計算出他們需要多少算力來控制。分叉2是攻擊者的一方。

P2 = 2*P1

爲了簡單起見,非攻擊者一方的分叉有正常的參與量和hashrate。P1 = 1, H1 = 1

(1 + 1) * (1 * 1)^2 = (2+h2) * (2 * h2)^2
-> 2 = 8 * h2^2 + 4 * h2^3
-> 1 = 2 * h2^2(2 + h2

由於H2是正數,所以只有一個解決方案。H2=0.451(我用wolfram alpha來計算)這意味着一個控制了2倍於主鏈的股權的攻擊者只需要控制45%的hashrate就可以控制區塊鏈。

45% < 51%,所以攻擊這個協議與標準PoW相比更便宜。

接下來讓我們看看一個擁有90%股權控制權的攻擊者需要多少算力。

P2 = 9 P1 = 1 H2 = ?H1 = 1

(p1 + h1) * (p1 * h1)^2 = (p2 + h2) * (p2 * h2)^2

2 * 1 = (9 + h2) * 81 * h2 * h2

H2 = 0.052

因此,如果一個攻擊者控制了90%的股權,他只需要控制5.2%的算力就可以控制區塊鏈了。

這裏的實際結果應該是20%,而不是5%。問題在於,我使用的是估計值,而不是實際的分叉選擇規則。

鑑於區塊鏈攻擊的現狀,得出更現實的結論 #


儘管從嚴格的博弈論意義上講,扎諾的PoW+PoS比PoW要弱,但目前看來,它仍可能是一個更好的解決方案。

因爲如果有人開始做這些PoW/PoS混合賄賂攻擊,有很多其他區塊鏈比Zano更容易被攻擊,所以我們會有足夠的警告,在那個時間點切換到PoW。Zano優秀的分叉選擇規則意味着你仍然需要大量的PoW 算力,即使你已經賄賂了幾乎所有的PoS參與者。

而在那之前,Zano的PoS方面給予了很好的保護,使其免受hashrate租賃攻擊。