比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

謝晗劍:CKB,版本控制與區塊鏈演進_CKB

Author:

Time:1900/1/1 0:00:00

Git讓生活變得更加有趣,我希望CKB也可以做到這一點。

原文標題:《CKB,版本控制與區塊鏈演進》撰文:謝晗劍,Nervos首席架構師,秘猿科技首席執行官,前以太坊核心研發團隊成員

我是Linus的粉絲。他創造了一個隨處可見的開源操作系統,與人合著了一本我非常喜歡的書,還建立了一個幾乎每個開發者每天都在使用的分布式版本控制系統。

我在見到Git的那一刻就開始用上了Git,并被它的速度和優雅所吸引。開發者用版本控制系統來管理源代碼,這樣他們就可以隨時掌握代碼的更新情況,與朋友和同事共享修改,在出現新錯誤時回滾到之前沒有bug的版本等等。Git讓生活變得更加有趣,我希望CKB也可以做到這一點。

CKB是Git

我們在創建CKB和Cell模型的過程受到了Git的啟發。Git的出現是出于Linus對Linux內核開發方便的渴望,人們無論何時想要組織一些東西,從注釋到博客文章,到圖片,都可以使用它。它是一個具有極好歷史跟蹤功能支持的知識庫。

Git知識庫被稱為「存儲庫」,在內部維護著一個不可變的只可追加的對象數據庫。Git中的基本存儲單元是Blob。每個blob都會被哈希,并且該blob哈希會被用作引用blob的標識符。工作了幾個小時之后,您創建了一些新文件并修改了一些現有文件,然后將所有更改提交到存儲庫中,將新的提交同步給同事們,便收工了。

以太坊自合并以來流通量已減少超17.8萬枚:金色財經報道,據ultrasound.money數據顯示,以太坊自合并以來流通量已減少超17.8萬枚,當前的7日年化通縮率為1.05%。[2023/5/7 14:48:06]

一個提交是Git中的基本歷史點,存儲庫歷史由一系列提交組成,這些提交包括從存儲庫的起源到最近的更新。提交是某個特定時間的存儲庫版本,包括版本元數據,如作者、時間戳、上一個提交和對blobtree的引用。就像區塊頭通過寫下礦機地址、時間戳、父塊哈希和交易merkletree的根來為區塊鏈的每次更新保存元數據一樣。您和您的同事們通過擴展git存儲庫的歷史來獲得報酬,就像礦工通過擴展區塊的歷史來獲得區塊獎勵一樣。

Git存儲庫也可以有Fork。人們在不同的分支上工作,但是哪個分支是「正確的」是由存儲庫維護者決定的,而不是通過共識。Git是一個沒有共識的分布式系統,依賴于特殊的點對點通信進行數據交換。

Git和區塊鏈之間有著相似之處,這也意味著我們應該更謹慎地將Git的想法融入到區塊鏈中,而不應該將相互沖突的設計選擇引入到區塊鏈中,這樣區塊鏈或智能合約開發者就可以享受到Git的一些已被證明的優點。這就是CKB內在的真實樣子:一個擁有真正的p2p網絡、全球共識和增強blob的唯一大型Git庫,由一群匿名者不斷進行更新。

跨鏈DeFi協議Umee推出機構借貸DAO UDX:10月15日消息,跨鏈DeFi協議Umee推出機構借貸DAO UDX,將以抵押定期貸款的形式向以加密貨幣為重點的機構提供可定制的債務融資。作為貸款承銷商,UDX將通過貸款發行費、場外交易費等產生收入。[2022/10/15 14:28:12]

這不是一個區塊鏈

按照你喜歡的方式給Cell命名

Git和CKB的核心都是數據對象和哈希引用。哈希引用是一個對象的固有名稱,是你可以揮舞的魔杖,提取出數據的價值。如果你知道一個對象的名字,你就可以通過引用它,從而獲得它的力量。在CKB上,智能合約的代碼和用戶數據是分離的,所以哈希引用可以讓你直接命名一段代碼或用戶數據,讓它們成為系統中的一級對象。這種精細的顆粒度創造了一個靈活而強大的編程模式。下面是一些例子。

重用代碼/數據

因為cell是可引用的存儲單元,所以在CKB上重用代碼/數據很容易。假設在cell0xbeef#1中存儲了一些共享代碼/數據,要重用它,首先需要加載cell0xbeef#1作為交易依賴項,然后使用ckb_load_cell_data系統調用從它那里讀取數據,如默認的鎖定腳本所示。一旦將cell0xbeef#1中的數據加載到VM內存中,那么就可以根據您的需要,將其視為代碼或數據使用。通過這種方式,CKB就類似于一個代碼和數據共享庫,供運行在上面的智能合約使用。如果我們能通過組合現有的安全樂高積木來構建一個智能合約,是不是很酷?而不需要從GitHub上的某個地方復制代碼,并且一次又一次地部署相同的代碼,這既浪費了時間,也浪費了鏈上的空間。一項對以太坊合約的分析中表明,95%~99%的合約都是重復的。

CleanSpark哈希率超過3EH/s,公司創下13.25 BTC的日產量高點:金色財經報道,上市比特幣礦企CleanSpark宣布,該公司的算力已正式超過3 EH/s。Cleanspark指出,該公司的算力在不到一年的時間里增長了三倍,目前該公司擁有31000個ASIC采礦設備。Cleanspark的每日產量最高為13.25 個比特幣。

Cleanspark周二發布的最新消息是,該公司透露它以折扣價收購了數千臺ASIC礦機。當時該公司表示,加密冬天提供了“前所未有的機會”,并且在8月的第一周,它宣布收購一個容量高達 86 兆瓦 (MW) 的即插即用挖礦設施。大量其他比特幣挖礦業務也在2022年擴大和增長。

Applied Digital最近透露,在獲得1500 萬美元貸款以繼續擴張后,它在北達科他州獲得了一塊采礦設施的土地。區塊鏈電力解決方案公司Validus Power宣布,該公司正在加拿大建設更多數據中心。[2022/9/1 13:01:21]

Ethereum上重復最多的智能合約

無懼依賴刪除

在上面的代碼/數據重用例子中,你不需要擔心有人修改存儲在依賴cell中的代碼/數據,因為cell是不可變的,也就是說,沒有人有辦法修改它。但是如果依賴cell的所有者直接將其從CKB中刪除呢?那會不會讓我的智能合約無法使用呢?

北京城市副中心印發元宇宙三年行動計劃:8月24日消息,《北京城市副中心元宇宙創新發展行動計劃(2022-2024年)》近日印發,力爭通過3年的努力,將城市副中心打造成為以文旅內容為特色的元宇宙應用示范區:元宇宙技術創新應用能力明顯提升,培育、引進100家以上元宇宙生態鏈企業,落地建成30項以上“元宇宙+”典型應用場景項目。(新京報)[2022/8/24 12:45:33]

在Ethereum上的確是這樣的。如果你在這個領域待的時間足夠長,你可能會知道2017年關于2.8億美元的意外事故。整個悲劇是由Ethereum上一個智能合約的意外刪除引發的,這個合約被許多其他智能合約使用。這次刪除導致所有依賴它的智能合約都功能失調,所有存儲在這些智能合約中的資產都被凍結。

而在CKB上,這樣的意外并不會造成什么影響,因為任何保存代碼副本的人都可以在鏈上再次部署相同的代碼,代碼哈希的引用仍然有效。我們只需使用新的依賴cell來構造交易即可。沒有人會因此受到損失,一切都仍將正常運轉。

從依賴刪除中恢復

實際上,我們甚至可以有意地利用這一點來實現代碼的「先使用后部署」。假設您想使用一個新的自定義鎖定腳本來保護你的cell。與通常的先部署后使用流程不同,您可以在不進行部署的情況下使用它。只需要將新的鎖定腳本的代碼哈希放入celllock中,那么這些cell就會被新的lock保護,且立即生效。

數字人民幣線上繳退稅在金華落地:金色財經報道,金華市試點使用數字人民幣以來,稅務部門積極探索實施數字人民幣在繳稅場景方面的應用,聯合人民銀行及負責數字人民幣運營的各家商業銀行,不斷豐富繳稅渠道,通過使用數字人民幣賬戶簽訂繳稅協議或銀行端查詢繳稅方式,成功實現數字人民幣繳納各項稅費業務。

近日,婺城區稅務局聯合市建行,成功解鎖全市首筆數字人民幣退稅業務,納稅人只要選定數字錢包作為退稅賬戶,通過稅務、國庫、銀行三方搭建的退稅通道,即可將稅款直接退至數字錢包賬戶。(金華日報)[2022/7/3 1:47:48]

實際鎖定腳本代碼的部署可以延遲到您想要解鎖這些cell之時。如果想要解鎖,首先需要在鏈上部署腳本代碼,然后像往常一樣發送另一個交易來解鎖這些cell。在cell被解鎖之后,您可以刪除部署的代碼并索回被占用的CKByte,以減少不必要的存儲成本。先使用后部署的額外好處是更好的隱私性:在你解鎖之前,沒有人知道這個新鎖的邏輯是什么。

進化的CKB

在了解了CKB和Git之間的相似性及其優點之后,我們來探討一個更有趣的問題:如果CKB是一個git庫,我們可以用CKB來管理CKB的代碼嗎?

是的!這就是為什么一些CKB核心功能,如交易簽名驗證和NervosDAO都是以智能合約形式實現的原因。以交易簽名驗證為例——這是幾乎所有區塊鏈的核心功能,并且是用原生語言硬編碼的。

為了升級區塊鏈,人們必須在大多數節點上分發和部署新的軟件版本,這需要大量的協調工作。對于CKB來說,交易簽名驗證可以和其它智能合約一樣,通過在鏈上部署新版本來進行升級。這讓CKB具備了Tezos提出的長期可升級性。

我們還可以做到更好。在CKB上,每個用戶都擁有自己的數據,所以一份合約更像是用戶和CKB之間的兩方協議,個人可以做出獨立的選擇。如果你通過代碼哈希來使用合約,這意味著「我同意了這個特定版本的合約」。你不必擔心有一天開發者會升級合約代碼,因為新合約的代碼哈希是不一樣的,你的lock/type仍然會引用舊的合約而不是新的合約。新版本部署后,會與系統中的舊版本共存。如果您通過其代碼哈希使用系統合約,那么新版本對您不會造成影響,您可以自主決定是否升級。如果答案是yes,那么你可以更新所有cell以使用新版本。如果是no,則什么都不需要做,繼續使用舊版本。

這對那些可能不經常在線的持有者來說是一個友好的保證,因為他們可以保證在創建時附加在他們cell上的合約不會被更改。人們的資產將始終按照他們鎖定時指定的方式進行鎖定。這是對SoV用戶的終極保證,也是CKB資產不同于其它區塊鏈上資產的原因。這和比特幣通過「只遵循軟分叉」的方式來為持有者提供保障是一樣的。唯一的缺點是,當進行安全升級時,您需要承擔「太晚」的風險。因此,為了方便起見,有些人可能還是喜歡一直使用最新的版本,因為他們相信開發團隊,不需要操心去審核合約和手動升級,在這種情況下,他們會使用typeid來引用合約。大致來說,typeid就類似于Git中的HEAD,一個可更新的引用總是指向當前的版本。通過提供這兩種選項我們將選擇合適升級策略的權利還給了用戶。有選擇總是好的。我們可以有不同的選擇,沒有人會被強迫升級。

系統腳本升級

從長遠來看,CKB將越來越抽象化、模塊化,更多的核心功能將會在鏈上智能合約中被提取和實現。在其完整的形態下,我們應該可以無需通過軟/硬分叉就能升級CKB。這其中缺失的一環是,我們,即社區如何決定升級系統合約與否,或者說CKB的治理模式是什么?更準確地說,是我們如何決定升級一個系統合約的typeid。

今天,CKB使用的是和比特幣一樣的鏈下治理模式,我們仍然依賴于軟/硬分叉。為了讓使用其typeid引用的人啟用新版本的系統腳本,需要硬分叉來更新typeid引用以指向最新版本,因為代碼cell是被一個可解鎖的lock鎖定_(https://explorer.nervos.org/address/ckb1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhzeqga,檢查一下它的代碼哈希)_。不使用核心團隊控制的多簽簽名鎖是一個有意的選擇,因為系統腳本的升級應該遵循社區制定的治理決策。

正如我們在定位白皮書中所說的那樣,雖然目前有很多有趣的建議,但我們還沒有看到一個切實可行的治理模式。一旦我們找到了合適的治理模式,我們就可以用「治理鎖」來代替不可解鎖的鎖,讓系統智能合約在征得社區同意的情況下進行升級,比如投票的結果。在此之前,我們會暫時堅持不完善的鏈下治理模式,但CKB治理和演進的脊梁已經存在。

來源鏈接:謝晗劍

以太坊

以太坊

開放的分布式區塊鏈應用平臺,通過其專屬加密貨幣Ether以太幣提供去中心化的虛擬機,處理點對點合約。允許任何人建立和使用通過區塊鏈技術運行的去中心化應用,沒有任何欺詐、審查、第三方監管。以太坊的概念首次在2013至2014年由維塔利克·布特林VitalikButerin受比特幣啟發后提出,旨在共同構建一個更全球化、更自由、更可靠的互聯網。以太坊EthereumETHERCERCERC20ERC721ERC以太坊查看更多Nervos

Tags:CKBCELLCELQQQnervosckbecell幣價格CeloLaunchqqq幣卡券在哪里查看

比特幣最新價格
幣圈小蝶:炒幣交易系統對一個投資者的重要性_FUND

?交易系統幾個核心內涵 1、心態核心 在交易系統沒有出現可交易時機時,心態如何擺正,并且做到行與心合一,是保證交易系統能夠發揮作用的首要條件.

1900/1/1 0:00:00
算法穩定幣只是空中樓閣,抵押穩定幣才有長久價值_MITH

制定一個經濟體的貨幣政策,不亞于在錯綜復雜的地形里駕駛一臺高速前進的汽車,即使裝備了最先進的自動駕駛系統,也需要警察和防護人員在機器犯傻時人為參與.

1900/1/1 0:00:00
《正點財經》報道比特幣創歷史新高,普通人如何參與這波挖礦紅利_OIN

12月17日,CCTV-2《正點財經》欄目報道比特幣創歷史新高,報道稱,北京時間今天比特幣價格首次突破2.1萬美元關口,徹底從三年的熊市中復蘇并創下歷史新高.

1900/1/1 0:00:00
比特大陸大分拆啟動:詹克團回歸 吳忌寒攜 B 池小鹿現金退出(比特大陸系列 26)_區塊鏈

吳說區塊鏈從多名知情人士處獨家獲悉,12月16日晚,詹克團與吳忌寒正式達成協議,協議結果暫為詹克團抵押股份,從比特大陸借出6億美金,收購吳忌寒方面股份.

1900/1/1 0:00:00
加密企業如何跨越文化鴻溝?淺談中 美加密貨幣信息差_OIN

律動BlockBeats消息,12月19日,Coindesk采訪了MulticoinCapital的執行董事MableJiang.

1900/1/1 0:00:00
OKEx關于NEAR杠桿交易、余幣寶及永續合約正式上線的公告_SDT

尊敬的OKEx用戶: OKEx將于2020年12月21日18:00(HKT)在網頁端、APP端及API正式上線NEAR杠桿交易、余幣寶及NEARUSDT永續合約.

1900/1/1 0:00:00
ads