序
見證了TrueChain的迭代
本文用以介紹公鏈項(xiàng)目-初鏈的基本狀況缠导。分析論證依據(jù)來(lái)源白皮書廉羔,黃皮書,公眾號(hào)文章僻造,Github憋他。并且本文將根據(jù)區(qū)塊鏈的層級(jí)結(jié)構(gòu),從數(shù)據(jù)層髓削,網(wǎng)路層竹挡,共識(shí)層,激勵(lì)層立膛,合約層揪罕,應(yīng)用層逐一針對(duì)初鏈發(fā)展現(xiàn)狀和未來(lái)技術(shù)路線進(jìn)行解讀梯码,旨在表達(dá)的淺顯易懂。分析內(nèi)容包括:核心技術(shù)概括好啰,技術(shù)落地可行性轩娶。申明該文只作為學(xué)習(xí)指導(dǎo),不構(gòu)成任何投資建議框往。
作者視角:經(jīng)寄意蘭舟介紹罢坝,進(jìn)入社區(qū)單純?yōu)榱藬]羊毛,一開始對(duì)TrueChain一無(wú)所知搅窿,固有觀念對(duì)國(guó)內(nèi)項(xiàng)目并不看好嘁酿;伴隨著兩個(gè)月的學(xué)習(xí),親眼看見TrueChain的成長(zhǎng)男应,在技術(shù)上的突破闹司。最開始剛來(lái)的時(shí)候,主網(wǎng)沒(méi)上線沐飘,社區(qū)游桩,公眾號(hào),Github上什么都沒(méi)有耐朴,白皮書的格式都不規(guī)范借卧;到現(xiàn)在社區(qū)活躍度前列的項(xiàng)目,如今TrueChain的公眾號(hào)高產(chǎn)似母豬筛峭,完善了自己的白皮書铐刘,有了自己的黃皮書,也算是看著TrueChain長(zhǎng)大影晓,看到了團(tuán)隊(duì)做實(shí)事的誠(chéng)心镰吵。
個(gè)人成長(zhǎng):如果要評(píng)判一個(gè)事物,還請(qǐng)先真正的走近她, 了解她.
由淺入深
基本介紹
全世界公鏈數(shù)目不計(jì)其數(shù)挂签,可說(shuō)的上來(lái)的也就比特幣疤祭,以太坊,EOS等等...看圖***項(xiàng)目圖
如果我們看白皮書饵婆,除了項(xiàng)目名字不同勺馆,字母簡(jiǎn)稱不同,我們是看不上出他們本質(zhì)上是有什么區(qū)別的侨核。每一個(gè)項(xiàng)目都會(huì)說(shuō)自己是顛覆了生產(chǎn)關(guān)系草穆,打破了互聯(lián)網(wǎng)的固有規(guī)則,會(huì)落地到各行各業(yè)芹关,大家心里都很清楚续挟,最后沉淀下來(lái)的就只有兩三家,我大膽預(yù)測(cè)很可能不會(huì)超過(guò)五家紧卒。老大代表著貨幣體系的應(yīng)用侥衬,老二代表著金融體系的交易合約應(yīng)用,之后都會(huì)代表一個(gè)主流行業(yè)。
按照目前區(qū)塊鏈的層級(jí)劃分:數(shù)據(jù)層,網(wǎng)絡(luò)層,共識(shí)層,激勵(lì)層,合約層,應(yīng)用層.***層級(jí)圖轴总,從層級(jí)圖可看出直颅,所有項(xiàng)目都逃不出這個(gè)框架,下面三層是區(qū)塊鏈的基本組成部分怀樟。對(duì)于投資者功偿,開發(fā)者找到有競(jìng)爭(zhēng)優(yōu)勢(shì)的團(tuán)隊(duì)是最大問(wèn)題,這里面有巨大的信息不對(duì)稱往堡,我們無(wú)法花時(shí)間一個(gè)一個(gè)一去了解械荷,團(tuán)隊(duì)是不是真正的做技術(shù),這里面有時(shí)間成本虑灰。在有限的時(shí)間里吨瞎,看到一個(gè)項(xiàng)目,從層級(jí)出發(fā)是理清思路提高了不少效率穆咐。如果能在網(wǎng)絡(luò)層或者共識(shí)層或者激勵(lì)層有自己的東西颤诀,你就可以選擇繼續(xù)看下去,否則這項(xiàng)目就可以丟了对湃。知道了方法論崖叫,如何落實(shí)呢?我的方法是看黃皮書拍柒,Github代碼心傀,公眾號(hào)推送的團(tuán)隊(duì)進(jìn)度。
按照黃皮書中的介紹拆讯,初鏈團(tuán)隊(duì)在共識(shí)層和合約層走出了自己的創(chuàng)新剧包。
共識(shí)層創(chuàng)新-混合公式算法
目前在分布式系統(tǒng)中,也就是區(qū)塊鏈系統(tǒng)中往果,除了要解決一致性的基本問(wèn)題疆液,還要解決容錯(cuò)性的問(wèn)題。也就是有節(jié)點(diǎn)聯(lián)合起來(lái)故意作惡的問(wèn)題陕贮。
公鏈共識(shí)總的來(lái)說(shuō)有兩個(gè)階段堕油,第一階段:低效率的去中心化解決方案Nakamoto Pow;他們確實(shí)是顛覆性的創(chuàng)造了歷史肮之,從古老的PBFT拜占庭算法投票掉缺,上升到利用哈希算法,它具有隨機(jī)性戈擒,難記算眶明,易驗(yàn)證的特點(diǎn)。這就保證了過(guò)程的安全性筐高,可靠性搜囱。但是在這十年的發(fā)展過(guò)程中丑瞧,也暴露了一些問(wèn)題。首先產(chǎn)生了針對(duì)Hash邏輯運(yùn)算的ASIC礦機(jī)蜀肘,聯(lián)合礦池绊汹,這些產(chǎn)業(yè)都會(huì)讓區(qū)塊鏈走向中心化。綜上傳統(tǒng)的算法效率低扮宠,有中心化的風(fēng)險(xiǎn)西乖。
第二階段:委托協(xié)議階段,DPOS坛增。它雖然提高了效率获雕,但是它委員會(huì)的制度,還不能完美的體現(xiàn)去中心的優(yōu)勢(shì)收捣。
隨即有團(tuán)隊(duì)給出了第三種方案典鸡,混合公式;這可以算是一次嘗試坏晦,也正是TrueChain對(duì)混合共識(shí)算法給出了完整的定義萝玷,和方案,F(xiàn)POW昆婿。
FPOW算法地址:https://github.com/truechain/truechain-fpow
FPOW完成狀態(tài):根據(jù)代碼遞交程度和TrueChain公眾號(hào)的透露球碉,已經(jīng)完成Block數(shù)據(jù)結(jié)構(gòu)的更改,加入了Fruit和Record字段仓蛆,模擬了PBTFT發(fā)出交易包的行為睁冬,并將新的數(shù)據(jù)區(qū)塊打包上鏈。
// Header represents a block header in the Ethereum blockchain.
type Header struct {
ParentHash common.Hash `json:"parentHash" gencodec:"required"`
PointerHash common.Hash `json:"pointerHash" gencodec:"required"`
FruitsHash common.Hash `json:"fruitSetHash" gencodec:"required"`
RecordHash common.Hash
RecordNumber *big.Int
Fruit bool
UncleHash common.Hash `json:"sha3Uncles" gencodec:"required"`
Coinbase common.Address `json:"miner" gencodec:"required"`
Root common.Hash `json:"stateRoot" gencodec:"required"`
TxHash common.Hash `json:"transactionsRoot" gencodec:"required"`
ReceiptHash common.Hash `json:"receiptsRoot" gencodec:"required"`
Bloom Bloom `json:"logsBloom" gencodec:"required"`
Difficulty *big.Int `json:"difficulty" gencodec:"required"`
Number *big.Int `json:"number" gencodec:"required"`
GasLimit uint64 `json:"gasLimit" gencodec:"required"`
GasUsed uint64 `json:"gasUsed" gencodec:"required"`
Time *big.Int `json:"timestamp" gencodec:"required"`
Extra []byte `json:"extraData" gencodec:"required"`
MixDigest common.Hash `json:"mixHash" gencodec:"required"`
Nonce BlockNonce `json:"nonce" gencodec:"required"`
}
// field type overrides for gencodec
type headerMarshaling struct {
Difficulty *hexutil.Big
Number *hexutil.Big
GasLimit hexutil.Uint64
GasUsed hexutil.Uint64
Time *hexutil.Big
Extra hexutil.Bytes
Hash common.Hash `json:"hash"` // adds call to Hash() in MarshalJSON
}
以上代碼就是TrueChain的底層區(qū)塊的數(shù)據(jù)結(jié)構(gòu)看疙,可以清楚看到新增了fruithash
的字段
在這里我還注意到另一個(gè)有趣的地方豆拨,TrueChain用到了Gas字段,著說(shuō)明TrueChain團(tuán)隊(duì)沿用了ETH的結(jié)算方式能庆。我非常認(rèn)同這個(gè)做法施禾,GAS結(jié)算可以說(shuō)一非常聰明的設(shè)計(jì),特別適合更高級(jí)的區(qū)塊鏈架構(gòu)搁胆,GAS的使用和比特幣中的交易費(fèi)的優(yōu)勢(shì)在于:1.通過(guò)限制區(qū)塊GAS的上限來(lái)達(dá)到定義區(qū)塊內(nèi)存大小的作用弥搞。2.平衡了普通轉(zhuǎn)賬交易和復(fù)雜數(shù)據(jù)提交的費(fèi)用問(wèn)題,更加公平渠旁。
完善了選舉制度
不僅僅是在出現(xiàn)錯(cuò)誤攀例,作惡的情況下,會(huì)主動(dòng)剔除節(jié)點(diǎn)顾腊;現(xiàn)在為了加快節(jié)點(diǎn)積極性和流動(dòng)性粤铭。團(tuán)隊(duì)在原來(lái)的基礎(chǔ)上加入時(shí)長(zhǎng)變量,意味著到了固定時(shí)間杂靶,委員會(huì)的身份很更換一次梆惯,這進(jìn)一步加強(qiáng)了去中心化酱鸭,更多節(jié)點(diǎn)有了平等的權(quán)力。
可以看到社區(qū)相當(dāng)活躍加袋,相比于EOS只有大佬,大財(cái)團(tuán)參與節(jié)點(diǎn)競(jìng)選抱既。TrueChain在DAO社區(qū)制度的設(shè)計(jì)上優(yōu)于EOS职烧。最明顯的特征就是有更多的個(gè)人節(jié)點(diǎn)參與進(jìn)來(lái)了。這是一個(gè)社區(qū)健康良好生態(tài)的信號(hào)防泵。如果一個(gè)DAO組織的節(jié)點(diǎn)和礦工都是龐大的資本蚀之,機(jī)構(gòu),最后只會(huì)讓人擔(dān)心和失望捷泞。
根據(jù)我和TrueChain開發(fā)團(tuán)隊(duì)的核實(shí)足删,目前該設(shè)想正在開發(fā)狀態(tài)了。如果能實(shí)現(xiàn)那就已經(jīng)在激勵(lì)層面也就是經(jīng)濟(jì)模型層面超過(guò)了EOS锁右。
引入了數(shù)據(jù)分片和分片事物處理系統(tǒng)
根據(jù)我的理解失受,這個(gè)部分的功能和區(qū)塊時(shí)間戳有關(guān)。如果區(qū)塊記錄的不是當(dāng)前狀態(tài)的時(shí)間就是一個(gè)潛在的漏洞咏瑟。
合約層創(chuàng)新-復(fù)用了ETH的虛擬機(jī)原理TVM
TVM
如同ETH的EVM拂到。就像一臺(tái)計(jì)算機(jī)。
特別之處在于一個(gè)全節(jié)點(diǎn)會(huì)有兩個(gè)虛擬機(jī)码泞,為什么兄旬?因?yàn)镕POW算法的原因。一臺(tái)虛擬機(jī)處理PBFT共識(shí)余寥,一臺(tái)虛擬機(jī)處理POW共識(shí)领铐。
在設(shè)計(jì)之初,TrueChain團(tuán)隊(duì)有在Docker和虛擬機(jī)中選擇宋舷,最終還是選擇了虛擬機(jī)绪撵。目前來(lái)看,這個(gè)決定是正確的祝蝠,最為一條公鏈莲兢,鏈上必定將來(lái)有成百上千的只能合約。如果選擇Docker续膳,那就意味著成百上千的docker改艇,這勢(shì)必會(huì)影響性能,假設(shè)是聯(lián)盟鏈坟岔,那docker就是不二的選擇谒兄。出于當(dāng)下性能的考慮測(cè)和docker尚處在發(fā)展階段,將虛擬機(jī)最為短中期的替代產(chǎn)品的確不錯(cuò)社付。
針對(duì)以太坊的范式修改
結(jié)合目前市場(chǎng)上已有的算力承疲,TrueChain設(shè)計(jì)并改進(jìn)了FPOW邻耕,將SnailChain的協(xié)議進(jìn)行復(fù)用,具體細(xì)節(jié)包括補(bǔ)償機(jī)制燕鸽,非POW開采兄世,講實(shí)話黃皮的這一部分目前沒(méi)有看懂。
但是解決了如下問(wèn)題:
1.地址聯(lián)合挖礦
2.地址自私挖礦
3.允許亂序挖礦
愿景
夢(mèng)想是要有的啊研,不然和咸魚有什么分別御滩。改一下,不然和空氣比有什么分別党远。
作為區(qū)塊鏈的參與公民削解,我很開心能看到TrueChain的努力,TrueChain的腳踏實(shí)地沟娱。
根據(jù)白皮書里的說(shuō)明氛驮,TrueChain會(huì)最先應(yīng)用到數(shù)字廣告行業(yè)。這也是2C端非常熱門的方向济似〗梅希看好TrueChain的未來(lái)
節(jié)點(diǎn)競(jìng)選地址
最后附上節(jié)點(diǎn)競(jìng)選的細(xì)則,希望看到最后的你也能參與進(jìn)來(lái):
https://mp.weixin.qq.com/s/dPiA95KcO5YsEIDRPoX-2w
關(guān)于我
香港城市大學(xué) 多媒體信息碩士
只愛(ài)三件事:擼代碼砰蠢,演講磷脯,健身
現(xiàn)在最為區(qū)塊鏈社區(qū)的一份子,有如何問(wèn)題歡迎微信交流
wechat:Dinocchou
個(gè)人博客:https://rickeeyzhou.github.io/
黃皮書格式勘誤
中文黃皮書勘誤請(qǐng)及時(shí)查正:
1.中文版6.4節(jié)有錯(cuò)別字娩脾,倒數(shù)第四排赵誓,陷入個(gè)人利息的膨脹的陷進(jìn)
2.關(guān)于交易的第五章的markdown文本格式錯(cuò)誤