EOS柚子幣簡介、網址及交易平臺

買賣虛擬貨幣
摘要: EOS 軟體引入一種新的區塊鏈架構設計,它使得去中心化的應用可以橫向和縱向的擴充套件。 這透過構建一個仿作業系統的方式來實現,在它之上可以構建應用程式。 該軟體提供帳戶、身份驗證、資料庫、非同步通訊和跨越數百個 CPU 核心或叢集的應用程式排程。 由此產生的技術是一種區塊鏈架構,它可以擴充套件至每秒處理百萬級交易,消除使用者的手續費,並且允許快速和輕鬆的部署去中心化的應用。背景區塊鏈技術是透過 2008 年誕生的比特幣貨幣得以被認知,自從那之後企業家和開發者就不斷的嘗試推廣這一技術,以便在單一的區塊鏈平臺上支援更為廣泛的應用程式。而一些區塊鏈平臺努力的支援可運作的去中心化應用,具體的應用比如 BitShares 去中心化交易所 (2014) 和 Steem 社交媒體平臺 (2016) 已經成為每天被成千上萬活躍使用者重度使用的區塊鏈。 他們能做到這些,是透過效能的提升達到每秒處理上千交易,消除手續費和提供堪比已經存在的中心化服務的使用者體驗。已存在的區塊鏈平臺承擔著大量的交易費和有限的可計算能力,這都阻礙了區塊鏈技術的大面積應用。區塊鏈應用的要求
為了贏得廣泛的應用,構建在區塊鏈之上的應用需要一個靈活性足以滿足以下要求的平臺:支援成百上千的使用者像 Ebay、Uber、AirBnB 和 Facebook 這樣企業,他們需要區塊鏈技術能處理每日數以千萬的活躍使用者。 在某些情況下,除非使用者群體達到一個極龐大的量級否則應用並無用武之地,因此一個可以處理極其龐大使用者的平臺是至關重要的。免費的使用一個可以免費供使用者使用的區塊鏈平臺或許將贏得更為廣泛的使用。 開發者和企業可以制訂有效的貨幣化戰略。簡單升級和 bug 修復
企業構建區塊鏈基礎的應用需要能夠為應用增加新特性的靈活性。所有非同凡響的軟體都會受到 bug 的影響,即便是經過了最嚴格意義上的驗證。這個平臺必須具有足夠的魯棒性以便應對不可避免出現的 bug。低延時一個好的使用者體驗需要延時時間在數秒內就能收到可靠的反饋。 高延時會阻礙使用者,並且會讓構建在區塊鏈上的應用比已有的非區塊鏈應用缺乏競爭力。時序效能一些應用因為順序依賴關係的執行步驟而不能使用併發演算法實現。 比如交易所就需要足夠的時序效能來處理很高的交易量,因此高時序效能處理的平臺是必須的。
併發效能大型可擴充套件應用需要將工作量分配到多 CPU 和計算機之上。共識演算法 (DPOS)EOS 軟體使用唯一能滿足區塊鏈之上應用效能需求的去中心化共識演算法,委託股權證明 (DPOS)。EOS 軟體使得區塊準確的每 3 秒生成一個並且在任何時間點都只有一個被授權的生產者來生成區塊。 如果一個區塊在規定時間之內未被生產出來則這一區塊將被跳過。 當一個或多個區塊被跳過發生時,在區塊鏈中會有一個 6 秒及以上的間隔。在 EOS 軟體中,區塊透過 21 名生產者輪流產生。 在每一輪的開始時,21 個唯一的區塊生產者被選出。 獲票最高的前 20 名自動在沒輪被選中,剩餘的一個生產者透過得票比例選出。 被選中的生產者透過從區塊取到的時間作為偽隨機數來打亂其順序。 打亂順序是為確保這些生產者與其他生產者保持均衡的連通性。
如果一個生產者錯過了一個區塊並且在過去的 24 小時內沒有生產任何的區塊,那麼它將被從候選中移除,直到它在區塊鏈中通知它要開始再次生產區塊的意圖。 這樣透過最小化區塊丟失數量(因被證實不可靠的節點不作為導致)來確保網路操作的穩定性。在一般情況下,一個 DPOS 區塊鏈不會經歷任何的分叉,因為區塊生產者是透過合作而非競爭的方式來生產區塊。 即便真的出現了分叉,共識也將自動的切換到最長的鏈上。 之所以會這樣運作,是因為區塊新增到一個區塊鏈分叉的速率與公用同一共識的區塊生產者比例是相關的。 換句話說,具有更多生產者的區塊鏈分叉會比擁有較少生產的那一個條增長的速度更快。 而且,沒有一個生產者會同時在兩個分叉上同時生產區塊。 如果一個區塊生產者被抓到做這樣的事兒,那麼這個生產者將很可能被投票投出。 這些雙重生產行為對應密碼學憑證可以用來自動的刪除這些濫用者。交易確認通常 DPOS 區塊鏈 100% 會有區塊生產者參與。一個交易從廣播開始後平均 1.5 秒就可以 99.9% 被認為是確認了。在一些特殊情況下例外,軟體出現 bug,網路擁塞,或一個惡意的區塊生產者製造了兩個或更多的分叉。 為了確保一個交易絕對是不可逆的,一個節點可以選擇等待 21 個區塊生產者中的 15 個給出確認。 基於通常的 EOS 軟體配置,在一般情況下這需要平均 45 秒的時間。 預設情況下,所有的節點將認為當 21 個生產者中有 15 個給出確認後這一區塊就是不可逆的了,並且不管長度如何都不會切換到沒有這一區塊的分叉。在分叉開始的 9 秒內,一個節點就可以警告使用者他們極可能正處於分叉中。 在連續丟失 2 個區塊後,有 95% 的概率可以確認一個節點處於分叉中。 在連續丟失 3 個區塊後就有 99% 的概率確認。 可以透過節點丟失、近期參與比率和其他引數來構建魯棒性預測模型,從而快速的警告操作者出現了問題。
對於這種警告的反應完全取決於商業交易的性質,但最簡單的做法就是等待 15/21 的確認直到警告消失。股權證明的交易 (TaPoS)EOS 軟體需要每一個交易包含最近一個區塊頭的雜湊值。這個雜湊值有兩個目的:· 防止不包含區塊引用的交易在分叉時重放發生;和· 通知網路對應的使用者和他們的股份當前在某個具體的分叉上。隨著時間的推移,所有的使用者直接確認區塊鏈,在這一鏈條上難以偽造假的鏈條,因為假的鏈條根本無法從合法鏈條上遷移交易。
帳戶EOS 軟體允許所有的帳戶使用一個唯一的人類可讀的名稱來索引,長度在 2 到 32 個字元之間。 這個名稱由帳戶建立者自己選擇。 所有的帳戶必須在建立時用極少的帳戶餘額來注資,從而覆蓋儲存帳戶資訊的成本。 帳戶名稱也支援名稱空間,比如 @domain 這個帳戶的擁有者是唯一可以建立 @user.domain 帳戶的人。在一個去中心化的場景中,應用開發者將會為新使用者註冊成本買單。 Traditional businesses already spend significant sums of money per customer they acquire in the form of advertising, free services, etc. 比起來,資助一個新的區塊鏈帳戶的花費簡直微不足道。 值得慶幸的是,對一個已經在另一個應用註冊過的使用者並不需要再建立新的帳戶。訊息 & 處理每個帳戶可以傳送結構化的訊息給其他的帳戶,並且可以定義指令碼來處理他們接收到的訊息。 EOS 軟體給每個帳戶提供了只有自己的訊息處理指令碼能訪問的私有資料庫。 訊息處理指令碼同樣可以給其他帳戶傳送訊息。 訊息和自動化的訊息處理的結合決定了 EOS 如何定義智慧合約的。基於角色的許可權管理
許可權管理涉及判定一條訊息是否被正確的授權。 許可權管理最簡單的形式就是檢查一個交易包含必須的簽名,但這意味著必須的簽名是已知的。 一般情況下,權威必然是獨立的個體或者個體組成的群體,並且是被劃分開的。 EOS 軟體提供了宣告式的許可權管理系統,透過管理誰可以在什麼時間做什麼來給使用者細力度和高維度的控制。授權和許可權管理被標準化和脫離應用的商業邏輯是不可取的。 這使得管理許可權的工具得以被開發,既滿足常規的需求又為效能最佳化提供了重要的可能性。每一個帳戶可以被任何權重組合的其他帳戶和私鑰管控。 這建立了分層級的權利結構,這反映了現實中的許可權分配方式,並且讓多使用者共同管理資產變得從未如此簡單。 多使用者控制是安全最大的貢獻者,並且,當使用者使用得當,它可以極大的消除因被黑而導致被盜竊的風險。舉個例子,可以指定一個金鑰給一個使用者的社交媒體賬號,同時另一個金鑰訪問交易所。 甚至可以給其他帳戶許可權來代表自己而無需分配給他們金鑰。命名的許可權級別在 EOS 軟體中,帳戶可以定義命名的許可權級別,每一個是由更高階別的命名許可權派生而來。 每一個命名的許可權級別定義了一個權威;一個權威是多重簽名閾值校驗,它包含金鑰和/或其他帳戶的命名許可權級別。 打個比方,一個帳戶的“朋友”許可權級別可以被設定為由該帳戶的任何一個朋友無差別的控制。
另一個例子在 Steem 區塊鏈中,它包含三個硬編碼的命名許可權級別:擁有,活躍和發帖。 發帖許可權就只能進行如投票和發帖的社交活動,而活躍許可權可以做除了變更擁有之外的所有的事情。 擁有許可權的意思是冷儲存並且有能力做任何事。命名的訊息處理群組EOS 軟體允許每個帳戶將他們自己的訊息組織到一個命名和巢狀的群組中。 這個命名的訊息處理群組可以在其他帳戶配置他們許可權級別時被引用。最高階別的訊息處理群組是帳戶名稱,最低階別的是一個帳戶接收到的單獨的訊息型別。 這些群組可以被這樣的方式引用: @accountname.groupa.subgroupb.MessageType.在這樣的模型之下,交易所合約可以透過將掛單的建立和取消分組,從而與充值提現分離開。 交易所合約的這樣分組對使用者而言帶來了方便。許可權對映
EOS 軟體允許每個帳戶定義從任意帳戶的一個命名的訊息處理群組與自己的命名的許可權級別之間建立對映。 舉個例子,一個帳戶所有者可以將自己社交媒體應用與自己的“朋友”許可權群組建立對映。 有了這個對映,任何朋友可以以這一帳戶的身份在這一帳戶的社交媒體上發帖。 儘管他們將以帳戶所有者的身份發帖,他們仍然使用自己的金鑰來簽名訊息。 這意味著總是可以辨識出是哪一個朋友在以何種方式使用帳戶。評估許可權當 @alice 以 "Action" 型別傳送一條訊息給 @bob 時,EOS 軟體首先會檢查 @alice 是否為 @bob.groupa.subgroup.Action 定義過許可權對映。 如果什麼都沒有找到,緊接著檢查 @bob.groupa.subgroup 對映,然後是 @bob.groupa,最後 @bob 將被檢查。 如果都沒有找到,那麼假定對映為命名的許可權群組 @alice.active。

一旦一個對映被識別,則透過閾值多簽名流程驗證簽名權威,並且關聯權威與命名的許可權。 如果失敗了,則躍遷至父許可權,直至擁有者許可權,@alice.owner。

預設許可權群組

所有其他的全新群組派生自“活動”群組。

許可權並行評估

許可權評估過程是“只讀”的,並且透過交易對許可權的變更在一個區塊結束之前不會起作用。 這意味著對所有的交易對應的金鑰和許可權評估可以被並行執行。 此外,這意味著一個快速的許可權驗證是可行的,它無需啟動會引起回滾需求的高成本的應用邏輯。 最後,這意味著交易許可權可以被評估即便接收到等待的交易,並且之後無需再重新評估。

從各方面考慮,許可權驗證佔據了驗證交易計算量的很大比例。 讓其只讀和普遍的併發處理將會使得效能有一個質的飛躍。

當從訊息日誌中重新生成確定性狀態時不再需要重複的許可權驗證。 事實是一個交易如果被包含近了一個被認為不存在問題的區塊時它就有足夠的理由跳過這 步這將極大減少因為區塊鏈增長拉去過去記錄時的計算量。

帶強制性延時的訊息

時間是安全中的一個關鍵組成部分。 在大多數情況下,一個私鑰在沒有被使用前都無從知曉它是否被偷竊。 當人們有需要金鑰的應用在每天聯網使用的電腦上執行時,基於時間的安全會更為重要。 EOS 軟體讓應用開發者可以指明訊息必須在被加到一個區塊之前等待最小的時間間隙。

使用者可以在訊息廣播出去後透過郵件或者文字訊息的形式收到通知。 如果他們沒有授權,那麼他們可以使用帳戶恢復流程來恢復帳戶,並收回訊息。

這個必須的延時由操作敏感性決定。 為一杯咖啡付款可以沒有任何的延時,幾秒之內就不可逆了,而購買一個房子也許需要 72 消失的結算期。 轉移整個帳戶到一個新的控制可能需要長達 30 天。 具體的延時選擇由開發者和使用者自己來做選擇。

恢復被盜竊的金鑰

EOS 軟體提供給使用者一種找回自己失竊金鑰控制權的方式。 一個帳戶的所有者可以使用過去 30 天任何活躍的擁有者金鑰與事先指定的合作者帳戶給出的批准來重置自己帳戶的金鑰。 帳戶的恢復合作者在沒有所有人幫助的情況下無法重置帳戶的控制權。

駭客嘗試進行恢復流程是無意義的,因為他們已經“控制”了帳戶。 此外,就算他們真的進行這一流程,恢復合作者也會詢問身份證明和多因素認證 (手機和郵件)。 這會讓駭客脫作出讓步或者無功而返。

這一流程與簡單的多重簽名有很大差異。 在多重簽名中,另一個公司要參與所有轉賬的執行,但在恢復流程中,它卻只在恢復時才起作用對每天的轉賬無從干預。 這大大的降低了參與者的成本和法律責任。

應用程式的確定性並行執行

區塊鏈共識取決於確定性 (可重現的) 的行為。 這意味著所有的平行計算必須是不能互斥或者具有其他鎖特性的。 沒有了鎖就必須有一些方式可以確保所有的帳戶只可以讀取和寫入他們自己的私有資料庫。 這也意味著每個帳戶處理訊息是順序的,而併發只能在帳戶層面進行。

每個帳戶的狀態由且只由傳送給它的訊息決定。 進度表由區塊生產者輸出並且會被確定性的執行,但是生成進度表的過程卻不一定是確定性的。 這意味著區塊生產者可以使用併發演算法來排程交易。

並行執行的一方面意味著當一個指令碼生成了一個新的訊息,它不會立即被髮送,而被安排在下一個輪訓中傳送。 不能立馬發出的原因是接受者可能在另一個執行緒中活躍的變更自己的狀態。

最小化通訊延遲

延遲是一個帳戶從發出一條訊息給另一個帳戶,直到收到迴應的這段時間。 我們的目標是在一個單獨的區塊中包含兩個帳戶交換訊息的來去資訊,而不用在每條訊息間等待 3 秒鐘。 為了做到這一點,EOS 軟體將每個區塊劃分為迴圈。 每個迴圈劃分為執行緒,每個執行緒包含了交易的一個列表。 每一個交易包含了待傳送的訊息集合。 這個結構可以被視覺化為一個樹,其中互動層彼此並行,各自被順序的執行。
區塊
迴圈 (順序)
執行緒 (並行)
交易 (順序)
訊息 (順序)
接受者和被通知帳戶 (並行)
在一個迴圈中生成的交易可以在後續的任何一個迴圈或者區塊中被髮送。 區塊生產者會持續不斷的向區塊中新增迴圈直到最大的牆上時間到了或者沒有更多的新交易要傳送。

可以對一個區塊使用靜態分析來驗證同一個迴圈內不存在兩個執行緒包含同一帳戶下對交易的變更。 只要保持不變一個區塊就可以並行的執行所有的執行緒。

只讀訊息的處理

有些帳戶可以在傳遞/失敗的基礎上處理訊息而不修改內部狀態。 如果是這樣的話,那麼這些處理程式可以並行執行,只要只有一個特定的帳戶的只讀訊息處理程式包含在一個或多個執行緒在一個特定的週期。

多帳戶的原子化交易

有時我們需要確保訊息自動的被多個賬戶傳遞和接收。 在這種情況下,訊息會被放在同一個交易內,賬戶會被分配到同一個執行緒,並且訊息被順序的新增。 這種情況對效能是不理想的,當使用者使用涉及到“賬單”時,他們將在交易內以賬戶唯一索引被列入其中。

基於效能和成本原因最好減少涉及兩個或多個重度帳戶的原子性操作。

區塊鏈狀態的部分評估

擴充套件區塊鏈技術使得元件化成為必要。每個人不應該執行所有的事務,尤其是當其只需要執行應用的一個小的子集。

一個交易所應用開發者執行一個完整節點位的是為其使用者展現所有的狀態。 這個交易所應用沒有與社交網路建立關聯的必要性。 EOS 軟體允許任何的完整節點選擇應用的任何子集來執行。 傳遞給其他應用的訊息可以被安全的忽略掉,因為應用程式的狀態完全由傳遞給它的訊息派生。

這與其他帳戶的溝通有一些重要的影響。 最重要的是,不能假定其他帳戶的狀態可以在同一臺機器上訪問。 這也意味著,雖然很容易啟用“鎖”來允許一個帳戶同步呼叫另一個帳戶,如果其他帳戶不駐留在記憶體中,這種設計模式就會出現問題。

所有賬戶帳戶間的狀態通訊必須透過包含在區塊鏈中的訊息進行。

自主最優排程

EOS 軟體並不能為區塊生產生者為任何其他帳戶送達的任何資訊負責。 每個區塊生產者要對計算的發雜讀和處理一個訊息的時間自己進行主觀上的預測。 這同時適用於使用者生成的和指令碼自動生成的交易。

然而,每個單獨的區塊生產者要透過自己的演算法來計算資源的消耗。 當一個區塊生產者斷定一個交易或者帳戶消耗了不相稱的大量的計算資源時,他們可以在生成自己的區塊時拒絕該交易;但是,如果其他區塊生產者認為交易是有效的,他們就仍需要處理交易。

一般而言,只要一個區塊生產者認為交易在資源使用限度內是有效的,那麼其他區塊生產者就也要接受,但可能交易傳遞給生產者就要花費 1 分鐘。

在某些情況下,生產者可以建立包含可接受範圍之外的數量級的塊。 在這種情況下,下一個區塊生產者可能會選擇拒絕區塊和束縛將被第三個生產者打破。 這和因為區塊過大導致的網路延時沒什麼打不同。 社羣會注意到模式的異常並最終會將票從流氓生產者哪裡刪掉。

這種對計算成本的主觀評估將區塊鏈從必須精確和確定的預測一些東西要花多長時間來執行這一問題中解放出來。 有了這一設計就不需要精確的數指令,將極大的增加最佳化的可能性又不必打破共識。

Token 模型與資源使用

· 頻寬和日誌儲存 (磁碟);
· 計算與計算儲備 (中央處理器);
· 狀態儲存 (記憶體)。

頻寬和計算有兩部分,瞬時使用和長期使用。 一個區塊鏈維持著所有訊息的日誌,這些日誌最終由完全節點儲存和下載。 透過訊息日誌可以重現所有應用的狀態。

可計算債務是一個必須透過訊息日誌重新構建狀態的計算結果。 如果可計算債務增長變得臃腫則有必要透過快照方式記錄區塊鏈狀態,並丟棄區塊鏈歷史。 如果可計算債務增長過快,則它需要花費 6 個月時間來重放等值與 1 年的交易。 這很不可取,因此,可計算債務需要被細心的管理。

區塊鏈狀態儲存是透過訪問應用邏輯獲取的資訊。 它包括諸如掛單和賬戶餘額等資訊。 如果狀態從未被應用讀取則它不會被儲存。 比如,部落格釋出的內容和評論如未被應用邏輯讀取則他們就不應該儲存在區塊鏈狀態中。 同時,釋出的內容/評論的存在、投票的數量和其他屬性要作為區塊鏈狀態的部分被儲存下來。

區塊生產者對外發布她們可用的頻寬,計算能力和狀態。 EOS 允許帳戶按比例消耗一個 3 天對賭合約中的可用資源。 舉個例子,如果一個基於 EOS 的區塊鏈啟動了,一個帳戶持有所有 token 發行總量的 1%,那麼帳號就具有使用 1% 狀態儲存空間的能力。

客觀與主觀的度量

如前所述,檢測計算使用的效能和最佳化的影響很大;因此,所有資源的使用限制,最終都是主觀的,執行依靠個人的演算法和區塊生產者進行估計。

也就是說,有一些事情是微不足道的客觀衡量。 傳送的訊息數和儲存在內部資料庫中的資料的大小是便宜的客觀衡量。 的 EOS 軟體讓區塊生產者採用相同的演算法應對客觀的量,但可以在主觀量上選擇採用更嚴格的主觀測量演算法。

接收方付費

傳統上來說,企業為辦公場地、計算力和其他為了執行企業而需要的成本買單。 客戶從企業購買具體的產品,產品銷售產生的利潤來蓋過企業運作的成本。 類似的,沒有哪個網站要求來訪者為蓋過運作成本而支付。 因此,去中心化應用也不應該強制使用者因為使用了區塊鏈而直接為區塊鏈支付。

委託能力

A holder of tokens on a blockchain launched adopting the EOS software who may not have an immediate need to consume all or part of the available bandwidth, can give or rent such unconsumed bandwidth to others; the block producers running EOS software on such blockchain will recognize this delegation of capacity and allocate bandwidth accordingly.

分離交易成本與 Token 價值

EOS 軟體的一個主要優點就是應用可用的頻寬完全獨立於 token 的價格。 If an application owner holds a relevant number of tokens on a blockchain adopting EOS software, then the application can run indefinitely within a fixed state and bandwidth usage. In such case, developers and users are unaffected from any price volatility in the token market and therefore not reliant on a price feed. In other words, a blockchain that adopts the EOS software enables block producers to naturally increase bandwidth, computation, and storage available per token independent of the token's value.

A blockchain using EOS software also awards block producers tokens every time they produce a block. Token 的值將影響其能購買的頻寬、儲存和計算資源;這一模型會自然的利用 token 值的上漲來增加網路的效能。

狀態儲存成本

由於頻寬和計算資源可以被委託,因此應用的狀態儲存需要應用程式的開發者持有 token 直到狀態被刪除。 如果狀態永遠不會被刪除那麼 token 實質上從流通中被抹除。

每一個使用者帳戶需要一個確定數量的儲存;因此每一個帳戶必須保持一個最小的餘額。隨著網路儲存能力的不斷提升,餘額的最小余額需求將會下降。

塊獎勵

EOS 軟體可以配置限定生產者回報的上限從而確保 token 的每年增長比例不會超過 5%。

社羣效益應用

In addition to electing block producers, pursuant to a blockchain based on the EOS software, users can elect 3 community benefit applications also known as smart contracts. 這三個應用將接收至多一個按照配置百分比對應的 token 年供應量減去每年提供給區塊生產者的 token 量。 這些智慧合約將按照每個應用接收到的 token 持有者的票的比例對應的 token。 這些應用或者智慧合約可以被 token 持有者選出的新的應用或智慧合約所替代。

治理

治理是人們在主觀問題上達成共識的過程,而這無法完全用軟體演算法來捕獲。 An EOS software-based blockchain implements a governance process that efficiently directs the existing influence of block producers. 沒有了定義好的治理流程,之前的區塊鏈依賴臨時的、非正式和常常充滿爭議的方式治理,直接導致不可預知的結果。

A blockchain based on the EOS software recognizes that power originates with the token holders who delegate that power to the block producers. 區塊生產者被授予有限的檢查權威來凍結帳戶,升級有缺陷的應用程式,對底層協議提出硬分叉的改進建議。

Embedded into the EOS software is the election of block producers. 在對區塊鏈沒有做任何變更之前他們必須認可它。 如果區塊生產者拒絕 token 持有者所預期的變更他們就會被投出。 如果區塊生產者未經 token 持有者的授權作出變更,其他的非生產、完整驗證 (交易所等) 會拒絕這些變更。

凍結帳戶

有時一個智慧合約的行為處於一種一場或不可預測的狀態並且無法按照預期執行;另一些時候一個應用或帳戶也許發現了一個可以銷燬不可想像數量資源的漏洞。 當這些問題不可避免的發生時,區塊生產者有能力來扭轉這一局面。

所有區塊鏈上的區塊生產者都有能力來決定哪些交易被加到區塊中,這給了他們凍結帳戶的能力。 A blockchain using EOS software formalizes this authority by subjecting the process of freezing an account to a 17/21 vote of active producers. 如果生產者濫用權利他們會被投出,而對應凍結帳戶就將解凍。

更改帳戶程式碼

When all else fails and an "unstoppable application" acts in an unpredictable manner, a blockchain using EOS software allows the block producers to replace the account's code without hard forking the entire blockchain. 與凍結一個帳戶類似,更改帳戶程式碼需要 17/21 這樣的生產者票形。

憲法

EOS 應用使得區塊鏈建立了一個點對點的服務條款協議或者繫結使用者到一個合約,這都需要使用者對其簽名,簡稱“憲法”。 憲法的內容定義了僅僅依靠程式碼無法在使用者間履行的義務,同時透過建立管轄權和可選的法律來解決相互間的爭端。 每個在網路廣播的交易都必須將憲法的雜湊值作為簽名的一部分,從而顯性的將簽名者繫結在合約中。

憲法還定義了人類可讀意圖的原始碼協議。 這個意圖是用來識別錯誤和功能之間的差異,當錯誤發生時,引導社羣對什麼是適當或不當修復。

升級協議 & 憲法

The EOS software defines a process by which the protocol as defined by the canonical source code and its constitution, can be updated using the following process:

· 區塊生產者對憲法提出改建意見並獲得 17/21 批准。
· 區塊生產者持續 17/21 品準連續 30 天。
· 所有使用者需要使用新的憲法來做簽名。
· 區塊生產透過變更程式碼的方式來影響憲法並且提交一個 git 記錄的雜湊值。
· 區塊生產者持續 17/21 品準連續 30 天。
· 7 天后改為會起影響的程式碼,給所有完整節點 1 周時間在確認原始碼後進行升級。
· 所有未升級到最新程式碼的節點被自動關掉。

按照 EOS 的預設配置,新增新特性升級區塊鏈的流程需要 2 到 3 個月,而修復一般的 bug 不需要更改憲法需要 1 到 2 個月時間。

緊急變更

區塊生產者可以推薦軟體的變更當 bug 是傷害性 bug 或安全溢位影響使用者使用的。 一般來說,這可能是對憲法的加速更新,引進新的功能或修復無害的錯誤。

指令碼 & 虛擬機器

EOS 首先會是一個平臺用於協同使用者間認證訊息的傳遞。 指令碼語言和虛擬機器的具體實現與 EOS 技術的設計是分離的。 任何語言或者虛擬主機,只要確定並適合沙盒,帶有足夠的執行效率均可以和 EOS 軟體 API 對接。

模式定義的訊息

所以使用者間傳送的訊息都是透過模式定義定義出來的,它是區塊鏈共識狀態的一部分。 這個模式允許訊息在二進位制與 JSON 格式之間無縫的轉換。

模式定義的資料庫

資料庫狀態也是透過類似的模式來定義。 這是為了確保所有應用儲存的資料是可以轉化為人類可讀的 JSON 但儲存和控制時使用高效的二進位制。

分離授權與應用

To maximize parallelization opportunities and minimize the computational debt associated with regenerating application state from the transaction log, EOS software separates validation logic into three sections:

驗證訊息是否內部一致;
驗證所有前提條件是否有效;
修改應用程式狀態。
驗證訊息的內部一致性是隻讀的並且無需訪問區塊鏈狀態。 這意味著它可以以最大併發來執行。 驗證前提條件,比如需要的餘額數,是隻讀的因此也可以受益與平行計算。 只有更改應用狀態時需要寫入許可權並且必須順序的執行每個應用。

身份認證是一個驗證訊息可被使用的只讀過程。 應用程式實際上在發揮作用。 同一時間兩者都需要被計算,然而一旦訊息被包含進區塊它就不再需要進行訊息驗證的操作了。

虛擬機器獨立架構

It is the intention of the EOS software-based blockchain that multiple virtual machines can be supported and new virtual machines added over time as necessary. 因此,本文並不討論任何特定的語言或者虛擬機器。 That said, there are two virtual machines that are currently being evaluated for use with an EOS software-based blockchain.

Web 組建 (WASM)

網路組建是一種為了構建高效能的 web 應用而新興的 web 標準。 只需要進行少量的更改 Web 組建就可以被製作為確定性的和沙盒化的。 Web 組建的好處是它有著廣泛的產業支援並且它可以讓智慧合約使用熟知的語言進行開發,比如 C 或 C++。

以太訪開發者已經開始更改 Web 組建來提供合適的沙盒與確定性在他們的以太訪式 Web 組建 (WASM)。 這種方式讓 EOS 很容易的與之適配和對接。

以太訪虛擬機器 (EVM)

這個虛擬機器已經被眾多已有的智慧合約所採用並且可以透過適配應用與 EOS 區塊鏈中。 It is conceivable that EVM contracts could be run within their own sandbox inside an EOS software-based blockchain and that with some adaptation EVM contracts could communicate with other EOS software blockchain applications.

跨鏈通訊

EOS 軟體被設計為跨區塊鏈通訊友好的。 這是透過生成訊息存在證明與訊息時序證明變的簡單而實現的。 這些證明與應用架構設計相結合,即圍繞訊息細節的跨鏈傳輸和有效性驗證時隱藏應用程式開發者的架構設計。

用於輕客戶端的 Merkle 證明 (LCV)

如果客戶端不需要處理所有的交易會讓多區塊鏈間的整合更為輕鬆。 畢竟,一個交易所只需要關心交易所的入賬和出賬,別無他求。 如果交易所鏈條可以使用資金的輕量 merkle 證明,而不必非要完全依賴對它區塊生產者的信任會是一個不錯的主意。 至少一個鏈的區塊生產者在與其他區塊鏈同步時更樂意保持儘可能小的開銷。

LCV 的目標能產生相對輕量存在性證明,使得任何追蹤相對輕量資料集的人可以驗證其有效性。 在這種情況下,目的是為了證明一個特定的交易是包含在一個特定的區塊中,區塊包含在一個特定的區塊鏈的已驗證歷史中。

比特幣支援透過全節點的完整記錄獲取每年 4MB 大小的區塊頭資訊來驗證交易。 每秒 10 個交易,一個有效的證明需要 512 個位元組。 這對於有 10 分鐘間隔的區塊鏈沒有問題,但是對於 3 秒間隔區塊鏈就顯得不那麼“輕量”了。

EOS 軟體使得任何一個人只要他擁有包含交易所對應區塊之後的隨意一個不可逆的區塊頭,他就可以進行輕量證明。 使用下面展示的雜湊鏈結構就可以使用少於 1024 位元組的大小來完成任意交易的存在性證明。 如果假設校驗節點在過去幾天內所有的區塊頭一直增長 (2MB 的資料),那麼驗證這些交易將只需要 200 位元組就夠了。

將生產的區塊與恰當的雜湊鏈做關聯使得開銷增幅很小,這意味著沒有理由不使用這種方式來生成區塊。

當需要驗證其他鏈時,有譬如 時間/ 空間/ 頻寬 的多樣化最佳化可以做。 追蹤全部區塊頭 (420 MB/年) 將保持證明體積的輕巧。 只追蹤最近的頭可以提供最小長期儲存和證明大小來獲得。 另外,一個區塊鏈可以使用懶惰的評估方法,即它記住過去證明的中間值雜湊。 新證明只需要包含指向已知稀疏樹的連結。 確切的方法將取決於那些包含對 Merkle 證明引用的交易所在的外部區塊的比例。

一定密度的聯絡後,將變得更為高效,一個鏈會包含另一個鏈整個區塊的歷史和消除證據一起,這樣就不需要通訊便可以驗證了。 出於效能原因,應最小化的跨鏈證明的頻率。

跨鏈通訊的延時

當與外部區塊鏈進行通訊時,區塊生產者必須等待直到 100% 確信一個交易已經被另一個區塊鏈確認為不可逆後才會接收它成為一個有效的輸入。 Using an EOS software-based blockchain and DPOS with 3 second blocks and 21 producers, this takes approximately 45 seconds. If a chain's block producers do not wait for irreversibility it would be like an exchange accepting a deposit that was later reversed and could impact the validity of the blockchain's consensus.

完備性證明

當使用來自外部區塊鏈的 Merkle 證明時,在已知所有交易均已驗證和已知沒有交易被跳過或遺忘之間有一個重要的差異。 雖然不可能證明所有最近的交易是已知的,但有沒有間隙的交易歷史是可以被證明的。 EOS 軟體在每個使用者的每個傳遞的訊息上分配了一個序列號。 一個用於可以使用這些序列號來證明所有的訊息由某個特定帳戶處理,只需要看它是否是按序執行的。

總結

EOS 軟體是從證明概念的經驗和最佳實踐設計而來,它代表了區塊鏈技術的重要進步。 該軟體是全球可擴充套件區塊鏈社會偉大藍圖中的一部分,它將應用去中心化並得以輕鬆的釋出和治理。


網址:


交易平臺   注:各大交易所均可交易

幣安網

火幣全球站 :
Bibox :
KuCoin :
位元兒海外版 :
BCEX :
幣蛋 :
FCoin :

風險提示:數字貨幣投資具有極大的風險,請在嘗試投資前確定自己承受以上風險的能力。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;