麻将胡了2

EKT多鏈技術丨區塊鏈裏的精密元件
发布时间:2024-01-29 05:32:15

  前言:數學在人類文明的發展中起着很是重要的做用。牛頓當年經過數學計算預見了發射人造天體的可能性;愛因斯坦相對論的質能公式從數學論證的角度預示了原子能時代的來臨;正是麥克斯韋方程先從數學上論證了電磁波,後來纔會有電磁波聲光信息傳遞技術的發展;電子數字計算機的誕生和發展更是在數學理論的指導下進行的。數學也是區塊鏈發展的前提基礎,是區塊鏈行業將來發展的核心保障。若是說區塊鏈中各類巧妙、完美設計的規則是其

  前言:數學在人類文明的發展中起着很是重要的做用。牛頓當年經過數學計算預見了發射人造天體的可能性;愛因斯坦相對論的質能公式從數學論證的角度預示了原子能時代的來臨;正是麥克斯韋方程先從數學上論證了電磁波,後來纔會有電磁波聲光信息傳遞技術的發展;電子數字計算機的誕生和發展更是在數學理論的指導下進行的。數學也是區塊鏈發展的前提基礎,是區塊鏈行業將來發展的核心保障。若是說區塊鏈中各類巧妙、完美設計的規則是其靈魂,那麼深深滲透其中的數學思想則是血液,從而支撐整個區塊鏈體系信任機制的創建。本文將淺析區塊鏈世界裏應用到的前沿數學理論,並以此嘗試描述區塊鏈世界的數學秩序。程序員

  數學一直是人類文明發展的主要文化力量,同時人類文化的發展又極大地影響了數學的進步;並且,數學仍是一種藝術,所以,數學不但具備科學價值,還具備文化和經濟的價值。數據庫

  走進一個機房,在服務器排成的一道道牆之間,聽着風扇的鼓譟,彷佛能嗅出0和1在CPU和內存之間不間斷的流動。從算籌算盤,到今天的計算機,咱們用做計算的工具終於開始量到質的飛躍。計算機能作的事情愈來愈多,甚至超越了它們的製造者。上個世紀末,深藍憑藉史無前例的搜索和判斷棋局的能力,成爲第一臺打敗人類國際象棋世界冠軍的計算機,但它的勝利仍然仰仗於人類大師賦予的豐富國際象棋知識;而僅僅十餘年後,Watson卻已經能憑藉本身的算法,先「理解」問題,而後有的放矢地在海量的數據庫中尋找關聯的答案。久而久之,工具將必在更多的方面超越它的製造者。而這一切,都來源於愈來愈精巧的計算。安全

  在紐曼教授的數理邏輯課上,圖靈第一次聽到希爾伯特的可斷定性問題以及哥德爾不完備性定理。那是1935年的春天,他剛剛完成在劍橋國王學院的四年本科學習,以優異的成績被選爲學院研究員,正準備在數學界大顯身手,數理邏輯天然而然吸引了他的興趣。圖靈清楚地意識到,解決可斷定性問題的關鍵,在於對「機械計算」的嚴格定義。考究希爾伯特的原意,這個詞大概意味着「依照必定的有限的步驟,無需計算者的靈感就能完成的計算」,這在沒有電子計算機的當時,算是至關有想象力又不失準確的定義。但圖靈的想法更爲單純。什麼是「機械計算」?機械計算就是一臺機器能夠完成的計算,這就是圖靈的回答。網絡

  圖靈機的一大優勢,就是它的簡單。只要給出狀態轉移表,任何一我的均可以模擬一臺圖靈機的計算。對工程師而言,在現實中用機械建造一臺圖靈機也並不是什麼難事。對於程序員來講,寫一個模擬圖靈機的簡單程序更是不在話下。app

  沒有根基也許能夠建一座小屋,但絕對不能造一座堅固的大廈——Eng.Isidor Goldreich框架

  密碼學做爲一門古老的學科,有着悠久而奇妙的歷史。它用於保護軍事和外交通訊可追溯到幾千年前文字剛剛產生的上古時期。幾千年來,密碼學一直在不斷地向前發展。從凱撒密碼開始,人們在發展新密碼學算法的時候也在孜孜不倦的破解已有的密碼學算法,由於對於破解者來講,密碼難度越高,意味着其背後守護的祕密價值就越大。SHA家族的五個算法,分別是SHA-一、SHA-22四、SHA-25六、SHA-384,和SHA-512,後幾個通常也能夠統稱爲SHA-2,由美國國家安全局(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈;是美國的政府標準。也是衆多互聯網和電子產品的密鑰門神。哈希函數具備一個單向性,任何的東西進去,出來都是一串隨機數。這跟黑洞很像,黑洞任意輸進去,出來的都是隨機數。非對稱加密算法須要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,若是用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;若是用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。密碼學構成了區塊鏈的根基,關於密碼學的更多探究,讀者也能夠翻閱我以前的文章。分佈式

  阿里巴巴知道打開藏着財寶的山洞的咒語。強盜抓住他,讓他說出咒語。若是阿里巴巴說出咒語,就會由於沒有利用價值而被殺死。若是阿里巴巴堅持不說,強盜不會相信他真的掌握咒語,也會殺死他。但阿里巴巴想了一個好辦法,他對強盜說:「大家離我一箭之地,用弓箭指着我,大家舉起右手我就念咒語打開石門,舉起左手我就念咒語關上石門,若是我作不到或逃跑,大家就用弓箭射死我。」故事中的阿里巴巴的遭遇並不鮮見。現實中最主要的緣由就是怕信息被盜用。由於現實中大量的祕密被用來鑑別用戶的身份,若是披露了某個祕密給對方,一般意味着對方有能力冒充你的身份。所以,雖然直接把祕密提供給對方是最簡單的驗證方式,可是大部分狀況下都不能這樣作。

  零知識證實過程有兩個參與方,一方叫證實者,一方叫驗證者。證實者掌握着某個祕密,他想讓驗證者相信他掌握着祕密,可是又不想泄漏這個祕密給驗證者。

  雙方按照一個協議,經過一系列交互,最終驗證者會得出一個明確的結論,證實者是或不掌握這個祕密。整個協議有三個要點:

  在計算機領域,通常作法是把原始問題映射到NP問題。驗證者只要驗證證實者給出的NP問題的解便可,這個計算量需求不大。若是某人掌握祕密,能解原始問題,那麼轉換一下就能夠解對應的NP問題。若是不掌握祕密,繞過原始問題,直接暴力求解NP問題,通常能夠認爲是不可能的。零知識證實實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採起的一系列步驟。證實者向驗證者證實並使其相信本身知道或擁有某一消息,但證實過程不能向驗證者泄漏任何關於被證實消息的信息。大量事實證實,零知識證實在密碼學中很是有用。若是可以將零知識證實用於區塊鏈驗證,將能夠有效解決隱私相關的許多問題。

  形式化驗證是用邏輯來驗證程序的可靠性,就是把一段程序用邏輯的方法證實一遍,證實它能獲得預期的結果,沒有bug。通常這類研究主要應用於昂貴的航天器材的操做系統、危險的醫療設備的程序之中。由於航天器材、醫療設備牽扯到人的生命,若是操做系統出現錯誤,那麼很危險,又不能用測試一遍一遍的測,因此用形式化驗證來作。好比美國航天局NASA就會僱傭大批形式化驗證的專家來驗證他們操做系統的正確性。

  智能合約安全性是很是重要的。以前,我也寫過關於以太坊字節碼中常見安全問題的文章,可是像這樣的大概檢測只是浮於表面。理想狀況下,咱們想要保證咱們的智能合約可以100%的正確。形式化驗證(Formal verification)讓咱們能夠確保某種錯誤的狀態不會發生。形式化方法簡單的說就是用數學工具進行定義、開發和驗證(specification, development and verification)。數學家們認爲,不論硬件仍是軟件工程,就像世間萬物同樣,全部的學問同樣,歸根結底是數學問題。「一個不懂數學的工程師不是一個好工程師」。若是全部的設計開發都可以按照嚴格的數學方法進行,那麼開發出來的系統就會像數學自己同樣的完美:軟件不會出錯,硬件永遠正常。

  在有了形式化的spec的狀況下,那麼能夠Verification就大體能夠分爲「手算」和「機算」兩種了,由於高明的數學家的「手算」未必就比純自動化的「機算」差。舉個例子,全自動化的Verification裏面有一個叫作「Model Checking」的方法,就是窮舉系統運行過程當中所能達到的全部狀態(States),這個建模,也就是寫Spec的時候也須要很是高明的技巧,實質上就是 「機器定理證實」。1954年,Martin Davis第一次用機器證實了一個定理:「兩個偶數相加仍是偶數」,不過在更早以前,圖靈就已經經過一個著名的「停機問題」證實了圖靈完備的機器的不可解問題。

  EVM(Ethereum Virtual Machine)實際上是一個很好的理想化目標,其功能需求明確,實現簡單,並且最重要的,也是涉及金錢的事物。將來有人可以按照IC設計的方案,從硬件(好比說ASIC)到OS(好比專用micro kernel),再到EVM,作一個完整的基於形式化方法開發的產品,那就完美了。

  在區塊鏈裏,區塊打包完成後,經過共識機制解決了分佈式帳本結構下達成一致並抗攻擊的問題,它解決了去中心化基礎上的節點間互信問題,是保障區塊鏈系統持續安全運行的關鍵。基於分佈式網絡中各節點的信任基礎不一樣,能夠分爲工做量證實機制、拜占庭容錯機制等,它們在節點進出進制、抗攻擊性等方面各有優點。以工做量證實機制爲例來講明共識機制的原理。達成共識須要必定的標準和規則,達到標準就能夠獲取記帳權,同時這個標準或者規則是不能低成本實現的,不然記帳的權威性和安全性容易受到挑戰。

  基於數學難度的計算工做量證實機制簡單理解就是一份證實,用來確認你作過必定量的工做。由於監測工做的整個過程一般是極爲低效的,而經過對工做的結果進行認證來證實完成了相應的工做量,則是一種很是高效的方式。好比現實生活中的畢業證、駕駛證等等,也是經過檢驗結果的方式(經過相關的考試)所取得的證實。工做量證實解決了徹底去中心化、節點自由進出的狀況下,記帳權的確認問題。

  咱們EKT的多鏈,則採用了更進一步的基於委任權益證實的新方案,從新設計了一個保障每一個合約都能正常運行的公鏈,擁有現成框架,且不可分割的多鏈構架。這一創新極大程度上簡化了架構,下降了數據處理壓力,確保一條鏈上流量激增不會影響到另外一條鏈的效率,在鏈上進行的任何業務都不會收到其餘業務干擾,有效實現了資源隔離。

  其實EKT在設計時考慮的一個大的問題是,每一套數學邏輯證實的系統給下,都不會完美的解決全部問題。EKT 則提供了一套底層的區塊鏈機制,其餘的區塊鏈項目能夠很容易的基於 EKT 的主鏈代碼部署一套本身的主鏈,而後按照需求作一些定製化的設定,好比選擇共識機制等。在EKT上編寫的區塊鏈項目將無需過於擔憂安全性問題,由於每個接口都是很是簡單而且在許多條並行主鏈上部署和運行的。部署主鏈時能夠靈活的發行本身主鏈的代幣以及選擇共識算法。新部署的主鏈也能夠加入到 EKT 多鏈技術的整個生態,共享 EKT 生態的用戶資源,代幣也能夠和EKT 主幣以及其餘主鏈的代幣進行交換和流通。它的中心思想就是設計一個社區的機制,讓開發者能夠輕易的開發一個能夠承載DAPP的主鏈,其餘的交給EKT來處理,EKT 的「區塊鏈生態上開發、運行、管理和交易去中心化應用及應用內資產的平臺,已經逐漸成爲一種愈來愈廣的需求。讓數字世界的內容資產化,內容生產者能夠與內容消費者創建一致的價值體系,是構建這一類型平臺的核心。因此,這一點對全部其餘搭建在區塊鏈上的應用和產品都是同樣的。好比我要是在區塊鏈上作了一個Minecraft遊戲,那麼任何人也能夠在Minecraft遊戲上開發新的遊戲。只要接入區塊鏈,全部的遊戲、全部的dapp 就自然擁有了這種潛在的擴展能力和開放性。

  默認就是擁有這種擴展能力的,這也是dapp 最天然的開放理念。若是有人不但願有這種開放性的話,他徹底能夠經過本身搭建私有服務器的中心化的方式來作。區塊鏈平臺會爲全部的應用統一提供這種開放性和可擴展性。在EKT中,堅持了這樣一個理念,一個貨幣系統中不須要圖靈完備的開發語言,不一樣的應用間儘量實現隔離的原則。所以咱們在設計的時候,把token的處理和DApp的處理分開了,也就是說在EKT上存在兩種類型的鏈:token鏈和DApp鏈。

  EKT的DApp鏈是供不一樣開發者開發DApp的一條鏈。咱們從智能合約開發語言、數據存儲、效率三個方面進行了優化。EKT的DApp鏈基本上能夠實現與如今的互聯網應用相同甚至更快的開發速度,可實現的功能性也與互聯網應用沒有太大差別,最重要的是,咱們能夠實現大部分事件的1秒執行和確認,安全性要求比較高的事件能夠實現3秒的確認。

  目前區塊鏈生態上開發、管理和交易的去中心化應用及應用內資產的平臺就應該以該行業中開發者和用戶的需求做爲項目初期版本的設計出發點。如今咱們所能看到的主要技術也都基於這一出發點,爲這個目標服務。EK

  一鏈一主幣EKT多鏈技術丨區塊鏈裏的精密元件,多鏈多共識」的機制爲後來的區塊鏈項目開發提供了很大的便利,可使用於任何區塊鏈適用的應用場景。咱們推出的多鏈只能是一個最低的標準,就是說,你能夠認爲一個產品最小化的版本是須要包括哪些功能的,而後你能夠在上面衍生其餘新的功能和新的玩法,若是你只有這些最小化的功能,那這個產品確定就沒什麼意思了。

  以上就是我對區塊鏈數學思惟的一些思考,和一些在設計EKT的多鏈多共識時對建設多鏈底層的考慮。歡迎你們提出疑問,共同探討。