Art of the STATE — 論狀態

Art of the STATE — 論狀態

這篇要來說說state。

不是要說國家,不是要談政治。如果你略懂blockchain跟我一樣,你很可能也聽說過這一個詞,state。稱之為「狀態」也許可以,但似乎,原文還是傳神點?

state這個概念,在我略懂區塊鏈後,感到這是一個很神妙的東西。很多區塊鏈的東西,可以很技術面討論,也可以拉到概念面,讓許多非技術的人也能感受。這是因為,區塊鏈是一項非常與現實連結的技術,並不是那種埋在深深的機器碼內的神演算法什麼的,簡言之,接地氣嘛!

我這篇就來說說我對於state的理解,如果有觀念怪怪或技術比喻錯誤的,請不用客氣指正一下。關於難度請放心,我是能說出什麼技術晦澀的言論?不會的,不會的。

但是如果你還是看不懂,那…. 說真的也不要怪伯父伯母啦,畢竟他們也不希望這樣的。LOL….

另外也預告一下,下周會有一篇與人合作的文章,就比較從技術觀點來談state了。我這一篇的想法,其實已經有大半年了,都差點忘記了,趕緊趁 幣價高漲 還記得來寫一寫。

time-3222267_640.jpg

什麼是state?

複習一下區塊鏈基本常識:區塊鏈其實就是一本大帳本,透過各節點共同維護一本單一的帳本。帳本的一致性如何取得?那就是透過所謂的共識機制(consensus mechanism),你常常聽到的POW、POS等。這裡出現另一個字,consensus,這跟我們要談的state非常有關係,或者你可以說,state是consensus達成後的結果。

講簡單一點,什麼是state?

這個大帳本裡面有許多資料欄位,隨著時間的推移,這些資料內容不斷變化。可以說,state就是某特定時間點的帳本內容快照,所以state可以說是時間的函數:state(t),t = 0, 1, 2, 3…. 時間理論上是連續的,但在機器系統裡是間斷地,例如以Steem blockchain為例,每3秒一個區塊,就可以當成是每一期的時間。

敲桌敲桌!再簡單一點!

那就舉例吧!以你最熟悉的Steem為例。某特定時間時,所有steem帳戶的所有上鏈資料,例如你的SP, Steem, SBD, post generation, rewards claimed, SP delegated … 這些都是構成這個時間點的state的內容。

好吧,然後呢?

假設我們現在是在 t = 2,那麼,state(2)的內容,將是以 state(1) 為基礎,透過區塊鏈目前的rules,來完成對於 state(2) 的計算。又難啦?這麼說吧!t = 0 時我打你一巴掌,t = 1 時你回我一巴掌同時罵我媽媽,t = 2 時我踢你肚子。假設這系統的規則是:有人首次打你一巴掌則你回打兼罵娘,有人罵你媽則你踢他肚,那麼就會是上面這樣的結果。大致上來說,就是一種連環反應。現實中很好理解,你打我我才打你,我不可能從 t0 跳到 t2,意思是我還沒”認知”到你罵我娘時,不會直接踢你…

那跟區塊鏈有毛關係啊?

BTC其實是一種基於UTXO的stateless的區塊鏈,但我們且不去管這件事,假裝它是好了。那麼這本大帳本記錄的就是各個帳戶的當時餘額,這是一切的關鍵,這些餘額必須是永遠加總一致,沒有雙花問題的。這樣的單純關於金額的鏈比較單純。但如果要進一步到Steem這種互動多的鏈,那事情就複雜起來了。你的財產總值,會隨著你獎勵進來增加,隨你轉帳出去減少;你分配獎勵的權力,來自於你把財產鎖定多少(SP),以及你是否把你這份權力讓渡出去(delegation)… 所以,state中的金錢變量,透過時間前後,會有很多複雜的相關性,而數位的區塊鏈系統,是一定得確定所有state中的變數之後,才能繼續往下走。所以,設計上勢必要簡化,方便系統的運作。

Steem的設計

所以,獎勵如何設計才會比較單純?我直接講結論吧:7天後才結算獎勵,獎勵要去主動Claim才入帳,Power Up後想拿出來要等一周才能開始拿出來,Delegation解除後得等上7天,權力才會返回帳戶。這些,都是為了簡化state的計算,同時還能保有這種點讚內容打賞的特性。如果沒有這樣設計,原本只需要處理單一幣的一致性問題,會變成要處理太多變量之間的衝突矛盾問題 …. 唉呀,這部分還真難講….

為何需要DPOS?

共識機制優劣什麼的,這裡不討論,我也討論不動。要說的是結果,DPOS可以到3秒一個塊,意思是每3秒就可以重新更新state。對於Steem這種社交式互動多的鏈來說,至關重要。否則,如果要1小時才能確認state,那麼你Power up的SP,要等1小時才有影響力,你寫的文章,要等1小時才能開始接受點讚…. 那鬼才玩這個吧?

課後作業

好吧,老師講得有點心虛了,似乎沒講得太清楚… 所以趕緊出作業來假裝一下我很懂。…. 咳咳,…. 好!同學們回去可以想一下,現實生活中的state是什麼?其實並沒有,或是這概念不一樣。因為這世界的實際運作,並沒有共識機制這種邏輯。虛擬世界為什麼需要共識機制?那是因為需要去構築一個世界的基礎,才能變成是「一個世界」。現實生活本來就是一個世界,受到物理法則,人間常識,文化習慣,法規運作等法則來約束,所以沒辦法直接對應到虛世界的這一套。但是,如果你去思考這裏面的共通性,其實是有很多可以想的空間喔!


老師等一下要開會,那我就先走了啊….. 草草下課,不敢多留

holiday-1569608_640.jpg

images - pixabay


This page is synchronized from the post: ‘Art of the STATE — 論狀態’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×