SafeBox
與包含著從一個地址到另一個地址的交易記錄的一系列塊相反,PascalCoin使用2個組件:SafeBox(包含所有當前帳戶余額)和塊(鏈接在一起形成區(qū)塊鏈)雀监。就像Bitcoin中梳猪,采礦節(jié)點負責創(chuàng)建一個新的塊品腹。當新塊出現(xiàn)的時候,所有節(jié)點都會獨立地更新它們的SafeBox副本癌蚁。作為此任務的一部分唱遭,節(jié)點需要基于區(qū)塊中操作戳寸,更新已存在賬戶的余額(和其他字段),以及創(chuàng)建新的包含全新的PascalCoin帳戶的帳戶段拷泽,這些賬戶將被授予成功挖到新塊的礦工疫鹊。
創(chuàng)世區(qū)塊
在第一個塊被創(chuàng)造之前,第一個編號0的SafeBox(創(chuàng)世SafeBox)被創(chuàng)造司致,其中沒有任何帳戶拆吆。通過工作證明(PoW),其中創(chuàng)世Safebox的hash值作為輸入脂矫,礦工將為區(qū)塊鏈尋找新的塊枣耀。在第一個塊被創(chuàng)建后,一個相應的新版本的SafeBox將被創(chuàng)造庭再,伴隨著包含N個新帳戶的帳戶段捞奕,其中N由協(xié)議定義(N在當前PascalCoin版本2中設置為5)。現(xiàn)在拄轻,礦工們將開始在區(qū)塊鏈的下一個塊中進行處理颅围,以生成下一版本的SafeBox,其中將包括由節(jié)點傳播的新的待處理操作哺眯。
操作
與比特幣和其他加密貨幣類似谷浅,PascalCoin中的塊是交易信息的容器扒俯,被稱為“操作”奶卓。 它們之所以被稱為操作,是因為它們是廣義交易表現(xiàn)撼玄,且不僅僅是在賬戶之間轉移資金夺姑。例如,有操作更改帳戶的密鑰掌猛,更改其名稱或將其標記為待售等等盏浙。最重要的和常見的操作才是在賬戶之間轉賬的交易操作。
帳號
SafeBox本質上是一個帳戶列表荔茬。 賬戶包含資金废膘,擁有者的公鑰,一個獨一無二的名稱和一個類型字段慕蔚。
元素名數(shù)據(jù)類型描述
賬號編號無符號32位用于識別賬戶的序列數(shù)字丐黄,它永遠不會改變。
公開的橢圓曲線密鑰公鑰(類型孔飒,X和Y)(處于66和200字節(jié)之間)這個公鑰相當于賬戶的PIN灌闺。這個值可以被隨時改變艰争,但只有當前公鑰對應的私鑰的所有人才可以執(zhí)行操作
余額無符號64位當前賬戶余額
最新塊無符號32位在區(qū)塊鏈中最后一個修改此賬戶信息的操作所在的塊編號。這個值幫助在渾濁列表中識別出未使用的賬戶
N操作無符號32位一個用于指出基于此賬戶的交易數(shù)的遞增數(shù)字桂对,而且確保了操作訂單獨一無二且因此不會重復
賬戶名RawBytes一個獨一無二且公開的賬戶名稱甩卓。默認是空的。該名稱被PascalCoin64算法編碼蕉斜。
類型單一字符用于區(qū)分不同用途的賬戶逾柿,當二層協(xié)議被建立后它的值將變的非常實用。例如宅此,類型為2的可能為“聊天頻道”保留鹿寻,類型為3的為“在線商店”儲備,等等
帳戶細分
SafeBox中的帳戶按分段分組诽凌,以形成所謂的“帳戶細分”毡熏。每次礦工通過采礦附加到SafeBox時都會生成帳戶段。換句話說侣诵,SafeBox每次都有一個新的塊痢法,用原來的一個新的賬戶段進行擴展正在開采
每個帳戶部分的內容如下:
元素名數(shù)據(jù)類型描述
塊編號無符號32位這相當于塊號塊鏈(見后面部分)。
賬戶數(shù)組N具有帳號的固定數(shù)組(大小N)這是由該塊生成的杜顺。N設置為5在當前的PascalCoin協(xié)議版本财搁,但可能會增加和/或在未來版本中變得動態(tài)。
時間戳無符號32位Unix時間戳生成后 這個值永遠不變
賬戶段哈希值32字節(jié)此塊的哈希值躬络。 它每一個都改變此帳戶中的任何帳戶細分變化(均衡調整或公共EC鍵改變)尖奔。這驗證并確保其完整性這個塊。
塊頭?180字節(jié)這是V2中的新功能穷当。 這個數(shù)據(jù)允許一個節(jié)點重新計算所用的總工作量構建SafeBox而不需要塊提茁。
此外,SafeBox還包含一個校驗和馁菜,該校驗和作為所有“帳戶段”的匯總散列值創(chuàng)建哈希值茴扁。 該值被稱為SafeBox哈希,并在最后一個帳戶之后立即附加SafeBox中的細分汪疮。 下一個塊也必須引用此SafeBox哈希才能生效峭火。
區(qū)塊鏈
就像比特幣一樣,財務數(shù)據(jù)的完整性通過一系列的工作證明來保證塊鏈在一起智嚷。 同樣類似比特幣卖丸,這些塊包含交易列表用于改變財務狀態(tài)。但是盏道,與比特幣不同稍浆,塊不直接引用前一個塊。相反,它引用了之前的SafeBox的哈希值粹湃,通過它傳遞性地鏈接到上一個塊該SafeBox哈希的帳戶段恐仑。如前所述,當?shù)V工贏得工作證明時为鳄,它將發(fā)布其塊裳仆,導致更新的SafeBox將包含一個新的帳戶段N個新帳號。這些新帳戶被分配給被獎勵的礦工的公鑰上孤钦。
塊結構包含以下字段:
元素名數(shù)據(jù)類型描述
塊編號無符號32位由礦工生成的區(qū)塊編號
賬戶密鑰公鑰(類型歧斟,X和Y)(在66和200字節(jié)之間)礦工列出的它自己的公鑰,此公鑰將被分配到該區(qū)塊賬戶中N個新賬戶
獎勵無符號64位礦工獎勵偏形,初始被設置為100Pascal且每四年減半
酬金無符號64位通過挖掘區(qū)塊鏈中本區(qū)塊及相應賬戶段静袖,礦工們搜集到的所有交易費
協(xié)議版本無符號16位協(xié)議版本
可用協(xié)議無符號16位協(xié)議編號,可以使礦工成為本區(qū)塊的擁有者 (為未來協(xié)議升級的適配)
時間戳無符號32位區(qū)塊被創(chuàng)建時的Unix時間戳
適配目標無符號32位礦工在PoW工作中必須獲得的難度水平
隨機數(shù)無符號32位隨機數(shù)俊扭,用于通過礦工以工作證明去獲得要求的結果(例如队橙,散列具有多個前導0位,就像比特幣一樣)
上個SafeBox哈希值32位上一個SafeBox的哈希值萨惑,同樣也被用于創(chuàng)建下一個SafeBox版本
操作的哈希值32位梅克爾樹(Merkle Tree)哈希(見下面)
工作證明32位本塊的哈希值捐康,用于PoW(工作證明)