【译】Advanced Blockchain Concepts for Beginners
現在許多讀者已經看過我們的編碼教程,關于如何編碼您自己的區塊鏈?,如何編碼您自己的工作證明?,以及如何建立P2P網絡?。?閱讀完這些教程之后,您就會對自己的區塊鏈掌握充滿信心,并且希望在下次見面會時向大家介紹所發現的新知識!
但是,你走到水冷卻器,聽到這樣的談話:
“付款渠道是下一件大事!”
“我對比特幣閃電網絡持懷疑態度。?盡管支付渠道在概念上聽起來很棒,但他們究竟如何在這種網絡規模上解決旅行商問題呢??側鏈是它的位置!“
“你可能是對的。?國家頻道非常酷。?在主鏈和側鏈上保持圖靈的完整性提供了很多功能和擴展靈活性。“
他們究竟在說什么??別擔心!?我們將幫助你。?在本文中,我們將引導您了解高級區塊鏈開發中的所有最新流行詞匯和概念,但將細節保持在可管理的級別。
到這篇文章結束時,您將可以自由參與上面的對話。?這不是一個編碼教程?,因為我們只是在高層展示重要的概念。?但是,我們可能會跟進有關這些想法的編程教程。?本文對程序員和非程序員都有幫助。?我們走吧!
以下是我們將在本文中解決和構建的想法:
- 拜占庭容錯
- 智能合約
- 圖靈的完整性
- 授權證明
- 國家頻道/側鏈
- 等離子體
- 付款渠道
拜占庭容錯
拜占庭容錯(BFT)是區塊鏈從根本上保證安全的原因。?為了簡單起見,假設區塊鏈網絡中有100個節點(目前世界上約有10,500個完整的比特幣節點)。?當一個節點想要篡改最新的區塊并且說其他比特幣用戶給他發了一大堆比特幣時,會發生什么?
該系統需要具有容錯能力,并能夠覆蓋該惡意節點并就區塊鏈的正確狀態達成一致。
這個詞源于“拜占庭將軍問題”。?讓我們快速看看它:
照片來源:?https?:?//www.weusecoins.com/bitcoin-byzantine-generals-problem/在這種情況下,黃色陣營需要協調攻擊中部敵方城市。?但他們需要同意一次攻擊。?要做到這一點,營地需要秘密派遣信使穿過敵城,告訴另一個陣營什么時候進攻。
接收陣營不僅需要接收信息,還需要發回信使,以便發送陣營知道接收陣營已收到信息。?接收陣營需要知道發送陣營得到了接收陣營得到原始消息的消息。?你可以看到這個循環永遠持續下去!
拋出另一個皺紋:如果有一個叛徒營故意不發送信使,或者向信使發送錯誤信息呢?
在電腦出現之前,這個“拜占庭將軍問題”無法解決。?幸運的是,今天我們有計算機和分布式系統。?區塊鏈中拜占庭將軍問題的解決方案是工作證明。
我們的工作證明教程深入討論了這個問題,但最好的解釋可能來自中本聰本人?。?如果上面的陣營開始接收不同意的消息,他們依靠執行工作證明。?工作證明十分復雜,需要大量的計算能力。?一旦一個陣營解決了工作證明,它會將結果廣播給其他陣營。?這條消息現在被一系列消息所接受,競爭消息被其他陣營放棄。
如果解決陣營篡改數據,哈希鏈將被其他陣營迅速識別為錯誤,并拒絕接受下一個解決陣營。?這給最初的陣營作弊提供了一個抑制因素,因為他們會浪費一大堆能量來解決工作證明,并且從中受益不大。
想象一下,幾個小時后,營地制作了一連串的消息,每個消息都需要大量的工作量證明。?這意味著大多數難民營必須就這一系列消息達成一致,每個陣營都可以自信地相信最終結果。?這里需要注意的是,工作證明不關心消息本身,只是節點同意最終消息?。?這個大多數網絡的共識保持安全,并提供拜占庭將軍問題的解決方案,導致拜占庭容錯?。
智能合約和圖靈完整性
在我們回到談論信任機制之前,讓我們快速切換。?我們將定義什么是“智能合約”。?第一塊被普及的區塊鏈顯然是比特幣區塊鏈。?但比特幣的功能非常有限。?它所能做的只是記錄交易信息。?只有跟蹤Alice發送Bob 1比特幣的事實才有用。
如果我們想要更豐富的邏輯呢??如果不是愛麗絲只是簡單地發送鮑勃1比特幣,我們可以用邏輯編程來說明:“愛麗絲和鮑勃放置了一個體育賭注。?如果克里夫蘭騎士隊在季后賽系列賽中輸給多倫多猛龍隊,從Alice的錢包里拿出1個比特幣并將其轉移到Bob的“。
這種功能有多棒??我們可以按照邏輯進行編程,讓它坐在區塊鏈上,鮑勃可以安心地休息,知道他可以安全地下注,如果猛龍隊擊敗騎士,愛麗絲將被迫支付1比特幣,愛麗絲可以安心地休息,知道她永遠不需要付錢。
這正是以太坊所在。?你可以把它看作是一個可編程的比特幣。?智能合約是擺在以太坊區塊鏈上的小編程功能。?您通過調用合約(或函數)地址來調用智能合約,并且您發送它的參數將根據函數的邏輯產生確定性結果。
示例以太坊智能合約功能如下所示:
這個函數做一個簡單的檢查來將標記從Alice轉移到Bob。?函數簽名需要Bob的錢包地址和一個傳輸量。?require聲明確保愛麗絲有足夠的以太(以太坊的貨幣)給鮑勃。?然后,該函數從Alice的錢包中扣除該金額,并將相同的金額添加到Bob的錢包中。
相當直接向前??這是一個最簡單的智能合約。?但是,創建醫療保健應用程序(我們在珊瑚健康公司做的)在制作??收藏的數字資產類游戲如Cryptokitties方面存在著智能合約的可能性。
圖靈完整性
當人們說以太坊是“圖靈完成”時,這意味著以太坊區塊鏈上提供了全功能的編程語言。?我們上面寫的代碼是用一種名為Solidity的語言編寫的,它是以太坊特定的智能合約語言。
相比之下,比特幣區塊鏈不是圖靈完整的,因為它幾乎沒有數據操作的能力。?它沒有能力讓用戶部署else或goto語句。?這有點簡化,但只要你聽到有人說“Turing complete”,你就可以快速檢查數據變化,內存變化和if/else語句是否有功能。?如果有的話,那通常意味著什么。
現在我們已經解決了其中的一些定義,讓我們回到區塊鏈的信任考慮。
授權證明書(DPOS)
我希望你成為下一個證人見證證明!如果您想深入了解關于證券的詳細信息,請查看我們詳細的POS帖子?。?簡而言之,雖然工作證明是保證區塊鏈安全的有效機制,并提供了一種不可信的共識范式,但由于解決哈希問題所需的所有計算能力,它非常耗能。?此外,雖然這意味著分散,但實際上,隨著礦工整合,大規模采礦設備消耗更多的獲獎塊,?集中度更高。
授權證明(DPOS)旨在解決此問題。?Dan Larimer最初設想的不是用硬件來解決散列問題,而是建議網絡中的人員投票給“證人”。?這些證人負責保證網絡的安全,并且這些證人中的每一個都將一些數字貨幣存入托管。
將更多資金托管的證人有更大的機會挖掘(或扼殺)下一個街區。?這里的激勵機制很好。?只有少數證人,他們得到報酬成為證人,所以他們被激勵不會作弊。?如果他們做了欺騙并被抓住,他們不僅被投票贊成下一個熱切期待的證人,而且他們失去了托管中的所有資金。
許多人認為這是區塊鏈的未來。?它維護網絡安全并允許可擴展性。?最大的批評是,由于較小的持有人沒有機會成為證人,因此它非常支持那些擁有更多資金的人。?但現實情況是,小型玩家也不希望參加工作證明,因為在家里從自己的筆記本電腦中挖掘已不再是現實。?較小的球員會被擁有大量采礦鉆臺的較大球員淘汰。?STEEM和EOS是DPOS區塊鏈的例子。?甚至以太坊正在通過其卡斯帕項目轉向POS。
國家頻道/側鏈
到目前為止,我們一直在談論全有或全無的方法。?純粹的分權與中央服務器,工作證明與證明權益證明。?就像生活中的其他一切一樣,混合創意可能會優于二元創意。?區塊鏈開發人員正在很快意識到這一點。
正如我們所談到的,寫入區塊鏈是緩慢而昂貴的。?這是因為整個網絡中的每個節點都需要驗證整個區塊鏈以及它包含的所有數據。?在區塊鏈上執行大型智能合約可能會非常昂貴,而且像在區塊鏈上存儲圖像這樣的操作在經濟上是不可行的。
如果我們能夠以更集中的方式運行繁重的計算,比如在單個服務器上運行,然后定期將結果集成到主要區塊鏈中以供后人使用。?在并行服務器運行繁重的計算時,我們暫時暴露了一些漏洞,但我們獲得了巨大的好處,因為我們不必在鏈上運行計算,只需存儲結果以供將來驗證。?這是Truebit背后的一般前提。?我們不會涉及到Truebit的所有細節,但有一個挑戰者的概念,他們檢查所做的計算是否具有高保真度。
這就是國家渠道的核心。?想象一下,我們想玩一個星際爭霸的游戲,并且有一個智能合約,向贏家支付1個ETH。?每個參加者每次有一個狂熱者殺死一個小狗時,或者當一個指揮中心升級為軌道指揮時,都必須在主要的以太坊網絡上寫信,這是荒謬的。?天然氣成本(以太坊天然氣,不是Starcraft天然氣)和每筆交易的時間都是過高的。
相反,如果游戲是在自己的“頻道”中播放呢??每次玩家進行移動時,游戲狀態都由每位玩家簽名。?在神族選手拿出剩下的蟲族部隊并強制gg的史詩般的戰斗結束后,游戲的最終狀態(Protoss獲勝)被發送到主鏈上的智能合約。?這個中立的智能合約,稱為法官,等待一段時間,看看蟲族玩家是否對結果提出異議。?如果蟲族玩家沒有,神族玩家將獲得1 ETH。
不必記錄主鏈上游戲過程中發生的成千上萬的交易,所有交易都是通過鏈條完成的,只有最終狀態記錄在鏈中。
同樣,?側鏈是與主鏈平行運行的獨立區塊鏈。?該術語通常用于與主鏈的貨幣掛鉤的另一種貨幣。?例如,與星際爭霸的主題保持一致,比如說我們有一個名為Minerals的游戲幣(哦,等等,我們這么做!)。?我們可以讓玩家在他們的Ether(或ETH)掛鉤游戲中購買更多的礦物質。?所以我們在主鏈上預留了一些ETH,并且把500礦物質稱為1 ETH。
然后,玩家可以在游戲中花費他們的500顆礦物質,不過他們希望。?鑒于礦產可以花費和賺取的速度很快,礦產交易只能發生在側鏈上。
真正很酷的是這個架構是分形的。?然后,我們可以擁有礦物鏈的側鏈來代表另一個稀缺的游戲內資產。?然后,我們可以制作稀缺的游戲資產的側鏈,等等。?我們可以擁有多少側鏈和側鏈沒有限制!
Plasma是Ethereum的一個項目,它使用這個側鏈概念。?它鼓勵交易發生在側鏈(或兒童鏈)上。?一個權威管理著每個兒童連鎖店。?如果當局開始惡意行動,那么子鏈上的任何人都可以退出子鏈并收回主鏈上的固定資產。?它處于開發的早期階段,但在處理以太坊的一些可伸縮性問題方面顯示出很大的承諾。
付款渠道
最后,我們將討論付款渠道。?他們是國家渠道和側鏈的延伸。?假設愛麗絲想要發送Bob 1比特幣,但速度和交易成本對他們來說很重要,所以他們想要將這筆交易鏈接起來。
他們在他們之間開辟了一條叫做“支付渠道”的溝通渠道。?1)Alice向Bob發送1比特幣。?事實證明,愛麗絲只欠鮑勃0.5比特幣,所以2)鮑勃送回愛麗絲0.5比特幣。?然后鮑勃帶上愛麗絲周末度假。?愛麗絲拿起標簽,以便3)鮑勃償還愛麗絲另一個0.1比特幣。
我們沒有在主鏈上記錄這3個單獨的交易,而是將支付渠道的最終狀態記錄到主鏈中。
支付渠道的另一個關鍵思想是,Alice和Bob不需要在他們每次想要交易時在他們之間直接打開一個渠道。
Alice可以通過Pete傳遞訪問Bob,后者擁有與Alice和Bob打開的支付通道。
從理論上可以想象,當您擁有豐富的參與者網絡時,支付渠道的想法確實變得強大。?每個節點都可以訪問每個其他節點而不直接連接到它們。?系統能夠確定兩個想要連接的節點之間的最快路徑。
照片來源:?http?:?//forklog.net/bitcoin-lightning-meetup-in-kyiv-what-will-happen-to-bitcoin-after-lightning-network/有很多支付渠道的評論家。?找到未連接節點之間最快的路徑并不是一件簡單的事情。?這是一個經典的“旅行推銷員”問題?,幾十年來一直由頂尖的計算機科學家進行研究。?批評人士認為,像比特幣閃電和以太坊雷電這樣的支付渠道在實踐中會像預期的那樣工作,因為旅行推銷員的問題很復雜。?您的關鍵是要知道這些項目和區塊鏈可伸縮性問題的潛在解決方案存在。?業內許多最聰明的人都在積極努力,以實現這一目標。
https://medium.com/@mycoralhealth/advanced-blockchain-concepts-for-beginners-32887202afad
總結
以上是生活随笔為你收集整理的【译】Advanced Blockchain Concepts for Beginners的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知识图谱学习小组学习大纲
- 下一篇: 【译】ICO 2.0 — The Adv