BTSucn獨(dú)角獸錢包(以下簡(jiǎn)稱BTS )正在建立一個(gè)包含數(shù)字資產(chǎn)、數(shù)字身份和數(shù)字社交的區(qū)塊鏈生態(tài)圈。在區(qū)塊鏈技術(shù)蓬勃發(fā)展的今天,BTS不僅僅是一個(gè)數(shù)字錢包,更是一個(gè)數(shù)字資產(chǎn)的交易區(qū)紐、一個(gè)數(shù)字經(jīng)濟(jì)時(shí)代的價(jià)值路由器、一種身份ID與社交工具。BTS將一站式的保障用戶通訊、資產(chǎn)、交易和身份驗(yàn)證的各個(gè)環(huán)節(jié)的安全隱私,同時(shí)把支付、轉(zhuǎn)賬、社交、活動(dòng)等一系列的行為聚合在BTS的落地應(yīng)用中。
依托區(qū)塊鏈技術(shù),順應(yīng)市場(chǎng)發(fā)展潮流, BTS為全球各地的用戶們提供了革命性的分布式數(shù)字金融服務(wù),希望通過BTS助力各個(gè)國(guó)家、各個(gè)地區(qū)的金融市場(chǎng)革新,打破傳統(tǒng)電子錢包的交易壁壘,同時(shí)促進(jìn)數(shù)字資產(chǎn)新生態(tài)的技術(shù)變革。BTS意圖服務(wù)于未來的“加密數(shù)字經(jīng)濟(jì)社會(huì)”, 在未來的一到兩年內(nèi),預(yù)計(jì)可從此領(lǐng)域獲得超過3千萬的參與用戶,激活百億規(guī)模的數(shù)字資產(chǎn)。
BTSucn的使命和愿景
BTS致力于為大眾提供一個(gè)安全、便捷、高效、穩(wěn)定的數(shù)字資產(chǎn)平臺(tái),打造一個(gè)全方位的數(shù)字錢包新生態(tài)。通過打通數(shù)字貨幣與實(shí)體世界的連接,讓每一個(gè)人隨時(shí)隨地便捷的使用你的數(shù)字資產(chǎn),豐富區(qū)塊鏈技術(shù)和數(shù)字貨幣的應(yīng)用場(chǎng)景,推動(dòng)其服務(wù)于商業(yè)進(jìn)步和社會(huì)發(fā)展。BTS 將充分落地應(yīng)用于線上、線下商城、數(shù)字錢包、電子支付、數(shù)字資產(chǎn)交易所等各領(lǐng)域行業(yè),讓資產(chǎn)流通更加順暢。BTS希望打造未來的數(shù)字資產(chǎn)支付寶,為企業(yè)提供了快速部署高效區(qū)塊鏈解決方案的服務(wù),同時(shí)實(shí)現(xiàn)對(duì)比特幣、以太幣、各種代幣及企業(yè)自己數(shù)字代幣的一站式管理、簡(jiǎn)單方便的完成數(shù)字貨幣的交易和兌換,實(shí)現(xiàn)數(shù)字貨幣和實(shí)體世界的無縫連接,讓你的數(shù)字貨幣應(yīng)用于各種交易消費(fèi)場(chǎng)景,真正激活你的數(shù)字資產(chǎn)。
BTSucn的目標(biāo)用戶
最近幾年,關(guān)于區(qū)塊鏈技術(shù)的關(guān)注和媒體報(bào)道在迅速擴(kuò)大。隨著對(duì)區(qū)塊鏈技術(shù)的未來價(jià)值的認(rèn)知增長(zhǎng),被認(rèn)為是潛在數(shù)字資產(chǎn)投資的人群也在不斷擴(kuò)展。而有些對(duì)區(qū)塊鏈有興趣的人,卻因?yàn)榇蟛糠謪^(qū)塊鏈產(chǎn)品參與的高技術(shù)壁壘而望而卻步。如果說代幣的產(chǎn)生(因此投資)是最為區(qū)塊鏈技術(shù)最常見的用例,其重要的作用是讓越來越多的人能夠投資數(shù)字資產(chǎn)。BTS 的投資工具將吸引經(jīng)驗(yàn)豐富的加密資產(chǎn)、數(shù)字資產(chǎn)以及區(qū)塊鏈項(xiàng)目的投資者到我們的平臺(tái)。
與此同時(shí), BTS的社交網(wǎng)絡(luò)工具和信息產(chǎn)品將降低潛在用戶的進(jìn)入壁壘,并將新的投資資金運(yùn)用于區(qū)塊鏈產(chǎn)業(yè)。區(qū)塊鏈行業(yè)和BTS的潛在發(fā)展群體是那些對(duì)區(qū)塊鏈技術(shù)感興趣,但目前缺乏投資工具入門區(qū)塊鏈經(jīng)濟(jì)圈的尚末開拓的用戶, BTS提供的高性能投資工具將鼓勵(lì)更多的人進(jìn)入?yún)^(qū)塊鏈?zhǔn)袌?chǎng)。
上面的圖表形象地展示了以上討論的各種用戶群體,顯示了數(shù)字資產(chǎn)和區(qū)塊鏈項(xiàng)目投資的可擴(kuò)展性以及其存在的巨大市場(chǎng)潛力:
· 核心用戶-全部積蓄都投資于數(shù)字資產(chǎn)的用戶 ,基于多種類型的投資工具進(jìn)行投資。
· 業(yè)余愛好者-將大部分積蓄投資于數(shù)字資產(chǎn)的用戶。
· 潛力用戶-通過對(duì)的渠道獲得投資工具從而投資數(shù)字資產(chǎn)的用戶。
· 非用戶群-基本不會(huì)考慮投資數(shù)字資產(chǎn)的用戶。
BTSucn的技術(shù)優(yōu)勢(shì)
1. BTSucn石墨烯底層技術(shù)
BTS是一種涵蓋社群、交易和應(yīng)用三種方案的開源分布式區(qū)塊鏈系統(tǒng)。其處于時(shí)代尖端的先進(jìn)技術(shù)為BTS區(qū)塊鏈錢包帶來了具有基于DPOS共識(shí)機(jī)制的石墨烯底層架構(gòu)的性能優(yōu)勢(shì)。
石墨烯( Graphene )是一-個(gè)區(qū)塊鏈工具組,采用的是DPOS的共識(shí)機(jī)制。其生成一個(gè)區(qū)塊鏈區(qū)塊的速度大約為1.5s。 這石墨烯技術(shù)使得基于這架構(gòu)上開發(fā)的應(yīng)用軟件擁有更高的交易吞吐量。石墨烯技術(shù)的高并發(fā)處理能力是比特幣的工作證明系統(tǒng)和ETH的POS證明無法做到的。
1.1 BTS石墨烯數(shù)據(jù)索引
BTS基于石墨烯架構(gòu)上引入了Google的核心引擎工程師。采用了甲骨文索引工具的重點(diǎn)標(biāo)簽和單片化排序技術(shù),以循環(huán)矩陣00記賬技術(shù)為基礎(chǔ),開放式的為BTS用戶們提供自主開啟新鏈和憑證投票機(jī)制。
1.2 極快的轉(zhuǎn)賬速度
石墨烯的平均確認(rèn)時(shí)間是1.5秒,出塊時(shí)間是3秒,所有的延遲僅僅只是來源于用戶的網(wǎng)絡(luò)帶寬,而不是數(shù)據(jù)處理本身,所以它的性能是非常強(qiáng)大的。我們對(duì)比一下:
比特幣是10分鐘出塊,以太坊大約是1分鐘;確認(rèn)時(shí)間上比特幣是1小時(shí),以太坊是十幾分鐘,石墨烯只需要秒級(jí)的時(shí)間。
1.3高吞吐量
石墨烯的吞吐量現(xiàn)在實(shí)測(cè)大約是3300筆每秒,理論上可以到10萬次,甚至可以擴(kuò)展到百萬次,比如按照EOS的規(guī)劃就可以達(dá)到百萬次。對(duì)比一下: 比特幣大約每秒七筆,以太坊每秒三四十筆,這完全不是一個(gè)數(shù)量級(jí)。 在真正解決實(shí)際問題時(shí),很明顯每秒幾筆是不符合要求的,石墨烯的每秒3000多筆基本上已經(jīng)趕上了VISA的處理能力,已經(jīng)算-一個(gè)工業(yè)級(jí)的區(qū)塊鏈產(chǎn)品。
1.4多重簽名認(rèn)證
石墨烯上的多重簽名功能是非常強(qiáng)大、完備及容易操作的。它可以設(shè)定兩個(gè)參數(shù):首先它可以設(shè)置百分比,每個(gè)人占多少百分比,無論多少人都可以隨便設(shè)。第二個(gè)是閾值,就是超過多少個(gè)簽名就可以生效。
假設(shè)說現(xiàn)在想做-一個(gè)7個(gè)人的理事會(huì)管理,有這樣一些要求:任何2個(gè)人出事都不能影響資金的使用;至少3個(gè)人同意才可以動(dòng)用資金;非核心成員至少4個(gè)人同意才能動(dòng)用資金。這些條件設(shè)置好之后,可以很快的算出每個(gè)人的占比,這個(gè)多重簽名認(rèn)證功能就設(shè)置完成了。
2. BTSucn網(wǎng)絡(luò)層
BTS區(qū)塊鏈的網(wǎng)絡(luò)是一一個(gè)由全節(jié)點(diǎn)組成的分布式網(wǎng)絡(luò),網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)處于同等與對(duì)等的權(quán)力;節(jié)點(diǎn)們互相點(diǎn)對(duì)點(diǎn)連接之余也可以獨(dú)立完成區(qū)央數(shù)據(jù)和交易驗(yàn)證的能力。這樣的點(diǎn)對(duì)點(diǎn)連接P2P網(wǎng)絡(luò)層( Peer -to-peer network )是區(qū)塊鏈數(shù)據(jù)層上的最重要的基礎(chǔ);實(shí)現(xiàn)了節(jié)點(diǎn)在網(wǎng)絡(luò)中互相通訊、互相連接、與互相確認(rèn)數(shù)據(jù)正確有效性的底層機(jī)制,支撐著BTS區(qū)塊鏈系統(tǒng)高效穩(wěn)定的工作。
3. DPOS共識(shí)機(jī)制
共識(shí)是指系統(tǒng)節(jié)點(diǎn)達(dá)成一致的過程,分布式系統(tǒng)的一致性體現(xiàn)在三個(gè)方面:
◆終止: 所有進(jìn)程以有限的步數(shù)結(jié)束并選擇一一個(gè)值 ,并且算法不會(huì)無限執(zhí)行。
◆協(xié)議: 所有流程必須同意相同的價(jià)值。
◆有效性: 輸出由輸入規(guī)則根據(jù)系統(tǒng)規(guī)則生成,輸出合法。
共識(shí)機(jī)制是區(qū)塊鏈的靈魂。共識(shí)機(jī)制的設(shè)計(jì)決定了公共鏈?zhǔn)欠衲軌蚪⑼晟频募?lì)機(jī)制,鼓勵(lì)更多的節(jié)點(diǎn)參與,并增加系統(tǒng)的分散性。在大多數(shù)公共鏈中,節(jié)點(diǎn)數(shù)與傳輸速率負(fù)相關(guān)。節(jié)點(diǎn)數(shù)量和系統(tǒng)性能之間的平衡是共識(shí)機(jī)制需要考慮的另一個(gè)因素。區(qū)塊鏈公共鏈接的常用共識(shí)機(jī)制包括POW , POS , DPOS , BFT和具有各種機(jī)制的共識(shí)機(jī)制。
BTS矩陣技術(shù)基于DPOS共識(shí)機(jī)制。這是-種保護(hù)加密貨幣網(wǎng)絡(luò)的新方法,試圖解決比特幣的傳統(tǒng)工作證明系統(tǒng)以及對(duì)等幣和NXT的股權(quán)認(rèn)證系統(tǒng)的問題。DPOS共識(shí)最初是由BitShares 社區(qū)提出的。它與POS共識(shí)之間的主要區(qū)別在于節(jié)點(diǎn)選擇了幾個(gè)代理,這些代理由代理進(jìn)行驗(yàn)證和計(jì)費(fèi)。與POS相比, DPOS可以大大提高選舉效率,并以犧牲-些權(quán)力下放功能為代價(jià)實(shí)現(xiàn)績(jī)效改進(jìn)。
該機(jī)制由證人和受托人組成,證人負(fù)責(zé)該區(qū)塊的包裝,受托人負(fù)責(zé)修改系統(tǒng)參數(shù)。委托權(quán)益證書通過使用證人(正式稱為代表)減輕了集中化的潛在負(fù)面影響。共有N名證人簽署了這些區(qū)塊,并在每次使用網(wǎng)絡(luò)投票時(shí)投票。通過使用分散的投票流程,DPOS旨在比同類系統(tǒng)更民主。DPOS 不是消除對(duì)所有信任的需要,而是采取保護(hù)措施來確保代表網(wǎng)絡(luò)信任簽名塊的人正確地執(zhí)行此操作。此外,簽名的每個(gè)塊必須驗(yàn)證其前面的塊是否由受信任節(jié)點(diǎn)簽名。DPOS 消除了在確認(rèn)事務(wù)之前等待一定數(shù)量的不可信節(jié)點(diǎn)驗(yàn)證事務(wù)的需要。
4. 去中心化的系統(tǒng)管理
作為一個(gè)去中心化性質(zhì)的平臺(tái), BTS由完全透明的去中心化自治體系支撐其管理架構(gòu)。這結(jié)構(gòu)讓每個(gè)通證持有者清晰了解公鏈基礎(chǔ)內(nèi)的全部技術(shù)構(gòu)建和價(jià)值流轉(zhuǎn)、充分體現(xiàn)區(qū)塊鏈的公信價(jià)值。BTS 內(nèi)的所有決策均以通證持有方的公投決策為依據(jù),所有技術(shù)更新均由社區(qū)公示。這完全去中心化的管理體系將完全避免了傳統(tǒng)機(jī)構(gòu)的中心化管理弊端。為中心化管理層專權(quán),篡改資料和獨(dú)自決策集團(tuán)走向等問題提供了優(yōu)良及無信任風(fēng)險(xiǎn)的解決方案。
為保障BTS價(jià)值的公允性和流通順暢、防止形成區(qū)塊鏈歷史中的大戶控盤和暗箱操作的情況發(fā)生, BTS不但由以上提及的技術(shù)特點(diǎn)作為支撐從根源上去中心化自治管理、更從諸個(gè)全球核心金融機(jī)構(gòu)中聘請(qǐng)金融審計(jì)、分析、投資等從業(yè)人員加入金融監(jiān)管理事會(huì),從金融角度提供專業(yè)的監(jiān)管和指導(dǎo)工作。同時(shí), BTS區(qū)塊鏈上的數(shù)字資產(chǎn)交易平臺(tái)具有高度行業(yè)前瞻性,已配套推出多項(xiàng)創(chuàng)新金融服務(wù)。
5. 可信電子身份
基于區(qū)塊鏈的極高安全性能, BTS區(qū)塊鏈實(shí)現(xiàn)了讓用戶們擁有一個(gè)可以全鏈暢通無阻的可信電子身份。此電子身份可以讓用戶們?cè)?BTS生態(tài)體系中的所有平臺(tái)組員登錄及享用它們提供的服務(wù)。實(shí)現(xiàn)這個(gè)技術(shù)的背后是-一個(gè)劃時(shí)代的信用體系,去中心化的數(shù)據(jù)真實(shí)性極可能強(qiáng)化了人、組織、機(jī)構(gòu)、平臺(tái)與政府之間多方互不認(rèn)識(shí)卻準(zhǔn)確的信任評(píng)估。因?yàn)殡娮由矸蒎^定著個(gè)人信息,背景,信用,社會(huì)關(guān)系,資產(chǎn)權(quán)等詳細(xì)資料。
6. 數(shù)據(jù)上鏈
數(shù)據(jù)上鏈,代表了數(shù)據(jù)從現(xiàn)實(shí)中上傳到區(qū)塊鏈上的過程。雖然區(qū)塊鏈擁有了去中心化儲(chǔ)存方式和理論上完全不可篡改的數(shù)據(jù)存儲(chǔ),但若那首次上傳的用戶資料已經(jīng)是個(gè)錯(cuò)誤的信息呢? 為這個(gè)數(shù)據(jù)上鏈的資料可信度提供解決方案是BTS研發(fā)團(tuán)隊(duì)的其中一項(xiàng)重要立案。經(jīng)團(tuán)隊(duì)們研發(fā)總結(jié)出來的解決方案為: 與第三方認(rèn)證機(jī)構(gòu)進(jìn)行對(duì)接,進(jìn)行初步資料認(rèn)證是這時(shí)間點(diǎn)上解決這個(gè)問題的最佳方案。我們深刻的認(rèn)識(shí)到,雖然去中心化是未來的趨勢(shì),不過像政府這樣的一個(gè)權(quán)威中心化信任機(jī)構(gòu)還是不可替代的;這并不矛盾,區(qū)塊鏈的誕生不是為了取代這些權(quán)威信任機(jī)構(gòu),而是為它們補(bǔ)充及提供解決方案。
· 數(shù)字簽名技術(shù):假設(shè)第三方權(quán)威信任機(jī)構(gòu)比如銀行及公安系統(tǒng)是可信的,那么當(dāng)用戶以數(shù)字簽名技術(shù)通過第三方認(rèn)證后,這第三方信任機(jī)構(gòu)將為這個(gè)用戶資料背書,將用戶資料上傳至區(qū)塊鏈上,允許所有人士對(duì)這用戶公開的簽名進(jìn)行核實(shí)。
· 源數(shù)據(jù)可信驗(yàn)證: BTS區(qū)塊鏈研發(fā)團(tuán)隊(duì)提供了一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)。上鏈組件。當(dāng)數(shù)據(jù)所有方確認(rèn)這些用戶資料是真實(shí)的,那用戶本人需對(duì)這些數(shù)據(jù)進(jìn)行私加密并簽名其他區(qū)塊鏈組件可以調(diào)用代理記賬合約并把數(shù)據(jù)綁定到數(shù)據(jù)所有方的賬號(hào)
BTSucn的總體架構(gòu)設(shè)計(jì)
1. 總體架構(gòu)
BTS的整體架構(gòu)分為三層:核心層、服務(wù)層、應(yīng)用層。架構(gòu)圖如下:
1.1核心層
由區(qū)塊鏈節(jié)點(diǎn)與消息網(wǎng)絡(luò)組成的區(qū)塊鏈部分實(shí)現(xiàn)交易數(shù)據(jù)的廣播,經(jīng)由礦工打包交易錄入?yún)^(qū)塊鏈。其中采用B+支付通道技術(shù),提前開通支付通道,實(shí)現(xiàn)快速交易。為BTS服務(wù)提供數(shù)據(jù)存儲(chǔ)。
1.2服務(wù)層
該層針對(duì)業(yè)務(wù)場(chǎng)景,采用MVC架構(gòu),分離處理客戶端與B段商戶業(yè)務(wù):針對(duì)錢包客戶端,提供對(duì)應(yīng)的API接口;針對(duì)B端商戶應(yīng)用,提供集成SDK,方便第三方對(duì)接調(diào)用。針對(duì)BTS部分,該層提供對(duì)應(yīng)的處理邏輯,承載應(yīng)用層BTS的讀寫與核心層數(shù)據(jù)集群的交互。
1.3應(yīng)用層
該層向終端用戶提供基于分布式賬本的應(yīng)用服務(wù),如幣種數(shù)字資產(chǎn)的錢包、交易、第三方應(yīng)用對(duì)接SDK寫入交易等。
2. 層級(jí)架構(gòu)
BTS的層級(jí)架構(gòu)共有5個(gè)等級(jí),具體內(nèi)容如下圖所示:
◆用戶端:該層重點(diǎn)是移動(dòng)端,支持iOS/Android系統(tǒng),接入客服系統(tǒng)。
◆用戶端API :該層依據(jù)不同業(yè)務(wù)類型使用TCP協(xié)議、HTTP 協(xié)議,為移動(dòng)端提供ioS/Android開發(fā)SDK,H5頁(yè)面,提供WebSocket接口。
◆接入層:該層主要保護(hù)海量用戶連接、攻擊防護(hù),整流海量連接成少量TCP連接與邏輯層通訊。
◆邏輯層:該層負(fù)責(zé)BTS系統(tǒng)的核心邏輯實(shí)現(xiàn),例如:群聊、單聊、朋友圈、等等。
◆存儲(chǔ)層:該層負(fù)責(zé)緩存或存儲(chǔ)BTS系統(tǒng)相關(guān)數(shù)據(jù),主要包括用戶狀態(tài)、消息數(shù)據(jù)、文件數(shù)據(jù)等。
3. BTSucn的數(shù)據(jù)模型與存儲(chǔ)
3.1交易結(jié)構(gòu)
狀態(tài)是BTS中信息的原子單位。狀態(tài)不會(huì)改變:要么是流通(“未被花費(fèi)”) 狀態(tài),要么是不再有效的被消費(fèi)(“已被花費(fèi)”) 狀態(tài)。交易會(huì)消費(fèi)0個(gè)或多個(gè)狀態(tài)(輸入) ,并創(chuàng)造0個(gè)或多個(gè)新狀態(tài)(輸出)。由于狀態(tài)不能在創(chuàng)造它的交易之外存在,所以狀態(tài)的被消費(fèi)與否,可以通過創(chuàng)造它的交易的標(biāo)識(shí)符以及它在交易輸出列表中的索引來鑒別。交易由下列組件構(gòu)成:
◆輸入引用:指向交易消費(fèi)的狀態(tài)的( hash,輸出索引)對(duì)。
◆輸出狀態(tài):每個(gè)狀態(tài)自己為新狀態(tài)、為定義了它所允許的轉(zhuǎn)換功能的合約、并最終為狀態(tài)指定了公證人。
◆附件:交易指定了一個(gè)經(jīng)排序的zip文件的hash值列表。每個(gè)zip文件會(huì)未交易包含代碼、數(shù)據(jù)、證書或者輔助文檔。合約代碼在檢查交易的有效性時(shí)有權(quán)限使用附件的內(nèi)容。
◆指令:一個(gè)輸入狀態(tài)允許有多 個(gè)輸出狀態(tài)。例如, -種資產(chǎn)可以被發(fā)行、被轉(zhuǎn)移給賬本上的新的所有者,或者在被所有者贖回之后從賬本上退出、不再需要被追蹤。一條指令本質(zhì)上是傳遞給合約的一個(gè)參數(shù),指定了比從被校驗(yàn)狀態(tài)可獲得的更多的所需信息(比如來自諭示服務(wù)的數(shù)據(jù))。每條指令有一個(gè)關(guān)聯(lián)的公鑰列表。與狀態(tài)類似,指令都是對(duì)象圖。
◆簽名: 交易所需簽名的集合等價(jià)于所有指令的公鑰的并集。
◆類型:交易可以是普通類型交易 ,也可以是變更公證人的交易。針對(duì)每種交易類型的驗(yàn)證規(guī)則不同。
◆時(shí)間戳:如果被提供,那么一個(gè)時(shí)間戳定義了該筆交易可被認(rèn)為已發(fā)生的時(shí)間范圍。
由于簽名被添加在交易的末尾,而交易是由用于簽名的hash來識(shí)別的,所以簽名的延展性不會(huì)成為一個(gè)問題。絕不會(huì)需要用hash來識(shí)別包括簽名信息在內(nèi)的交易。簽名可以以并行的方式被生成和檢查,它們也不會(huì)直接暴露給合約代碼。實(shí)際上,臺(tái)約會(huì)檢查指令指定的公鑰集合是否恰當(dāng),因?yàn)橹挥挟?dāng)每一條指令 列出的每一個(gè)公鑰都有一個(gè)相匹配的簽名時(shí),交易才會(huì)是有效的。公鑰的結(jié)構(gòu)是不透明的。這樣一來,算法的靈活性就得到了保留:新的簽名算法在部署時(shí)不需要調(diào)整智能合約本身的代碼。
在上圖中,我們可以看到一個(gè)現(xiàn)金發(fā)行交易的例子。交易(左下)包含了0個(gè)輸入,和一個(gè)輸出,即新發(fā)行的現(xiàn)金狀態(tài)?,F(xiàn)金狀態(tài)(右上擴(kuò)展顯示)包含了一些重要信息:
1 )被發(fā)行的現(xiàn)金的細(xì)節(jié)——總量、 貨幣、發(fā)行方、所有者等等
2 )合約代碼,其verify0函數(shù)負(fù)責(zé)對(duì)該發(fā)行交易和未來消費(fèi)該狀態(tài)的交易進(jìn)行校驗(yàn)
3) 一個(gè)包含了重要法律條文的文件的hash ,該文件為這個(gè)狀態(tài)及其合約代碼的行為提供了基本法律監(jiān)管環(huán)境。
該交易還包含了一條指令,指明了該交易的目的是發(fā)行現(xiàn)金。指令還指定了一個(gè)公鑰。現(xiàn)金狀態(tài)的校驗(yàn)函數(shù)負(fù)責(zé)檢查指令指定的公鑰屬于交易的參與方,這些參與方需要提供自己的簽名使得該交易有效。在這個(gè)例子中,則意味著verify()函數(shù)必須檢查確認(rèn)指令指定了一個(gè)與現(xiàn)金狀態(tài)的發(fā)行者相對(duì)應(yīng)的公鑰。
BTS錢包框架負(fù)責(zé)檢查交易已經(jīng)被所有指令列出的公鑰所簽名。這樣一來, verify()函數(shù)只需要確保所有需要簽名的參與方都已經(jīng)被指令所指定,而框架則負(fù)責(zé)確保交易已經(jīng)被指令列出的所有參與方簽名。
3.2復(fù)合密鑰
術(shù)語(yǔ)“公鑰”在上面的描述中實(shí)際上指的是一種復(fù)合密鑰。復(fù)合密鑰是一種樹,其樹葉是附帶了算法標(biāo)識(shí)符的常規(guī)密碼學(xué)公鑰。樹中的節(jié)點(diǎn)同時(shí)指定了它每個(gè)子節(jié)點(diǎn)的權(quán)重和它必須達(dá)到的加權(quán)閾值。一個(gè)簽名集合的有效性可以通過這樣的方式確認(rèn):從底往上行經(jīng)這棵樹,對(duì)其中所有具有有效簽名的密鑰的權(quán)重求和,并與閾值相比較。通過使用權(quán)重和閾值,可以編碼多種多樣的情況,包括使用AND和OR的布爾表達(dá)式。
復(fù)合密鑰可用在多種場(chǎng)景。例如,資產(chǎn)可以在一個(gè)2取2復(fù)合密鑰的控制之下: 一個(gè)密鑰屬于-一個(gè)用戶,另一個(gè)密鑰屬于一個(gè)獨(dú)立的風(fēng)險(xiǎn)分析系統(tǒng)。當(dāng)交易顯得可疑,比如在一個(gè)很短的時(shí)間窗口內(nèi)轉(zhuǎn)移了太多價(jià)值時(shí),風(fēng)險(xiǎn)分析系統(tǒng)將拒絕對(duì)交易簽名。另一個(gè)例子涉及到將合作結(jié)構(gòu)編碼到密鑰中,允許CFO可以獨(dú)自簽名一筆大額交易,但其下屬卻需要共同簽署完成。復(fù)合密鑰對(duì)于公證處也十分有用。
一個(gè)分布式公證處的每個(gè)參與者由樹的一片葉表示,特定的閾值設(shè)定可以使得在部分參與者離線或拒絕簽名的情況下,整個(gè)團(tuán)體的簽名仍然有效。雖然在文獻(xiàn)中已有可以精確地產(chǎn)生復(fù)合密鑰和簽名的閾值簽名方案,但為了允許使用不同算法來混合密鑰,我們選擇了一種低空間效率的顯式形式。這樣一來,在逐步淘汰舊算法和采用新算法的過程當(dāng)中,就不必要求團(tuán)體中的所有參與者同時(shí)進(jìn)行升級(jí)。
3.3時(shí)間戳
交易時(shí)間戳指定了一個(gè)時(shí)間窗口,可以斷定交易的發(fā)生時(shí)間是在這個(gè)窗口之中。時(shí)間戳以窗口形式表示的原因是,在分布式系統(tǒng)中并不存在確切的時(shí)間點(diǎn),而只有大量的沒有共時(shí)性的時(shí)鐘。這不僅是受到物理法則的影響,還由于共享交易的本性一一尤其是如果對(duì)交易的簽名需要多人授權(quán)的話,構(gòu)造聯(lián)合交易的過程可能會(huì)持續(xù)幾小時(shí)或幾天。
值得注意的是,交易時(shí)間戳的目的,是為了滿足智能合約代碼的邏輯強(qiáng)制性,而向合約代碼傳達(dá)交易在時(shí)間軸上的位置。雖然同樣的時(shí)間戳可能還會(huì)被用于其它目的,比如監(jiān)管報(bào)告或者用戶界面上的事件排序,然而并沒有要求像那樣的方式使用時(shí)間戳,并且盡管會(huì)與其他參與者觀察到的時(shí)間不能精確匹配,使用本地觀察到的時(shí)間戳有時(shí)候是更好的選擇?;蛘撸绻枰獣r(shí)間軸上一個(gè)精確的點(diǎn)并且這個(gè)點(diǎn)必須被多個(gè)參與者認(rèn)同,那么可以約定使用時(shí)間窗口的中間點(diǎn)。盡管這樣不會(huì)精確地對(duì)應(yīng)某個(gè)事件(如鍵擊或者口頭協(xié)議) , 這一方法仍然會(huì)有用。
時(shí)間戳窗口可以是開放的,用于傳達(dá)某個(gè)交易的發(fā)生早于一個(gè)特定時(shí)間或晚于一個(gè)特定時(shí)間,但具體早或者晚多久并不重要。時(shí)間戳由公證服務(wù)執(zhí)行檢查。由于公證服務(wù)的參與者們本身也沒有精確同步的時(shí)鐘,所以一筆在給定時(shí)間窗口的邊界提交的交易在被提交的瞬間是否被認(rèn)為有效也是不可預(yù)料的。然而,從其它觀察者的角度而言,公證處的簽名是決定性的。
如果一筆交易擁有公證處的簽名,則該交易就被假定已在給定的時(shí)間內(nèi)發(fā)生。為了在交易處于單個(gè)參與者的完全控制下時(shí)可以使用相對(duì)較窄的時(shí)間窗口,公證處被期望與美國(guó)海軍天文臺(tái)的原子鐘進(jìn)行同步。該原子鐘的精確饋送可以從GPS衛(wèi)星獲得。
注意, BTS錢包所使用的Java時(shí)間軸是以UTC時(shí)間表示,閏秒被包含在一天的最后1000秒中,因此每一天都準(zhǔn)確包含86400秒。需要投入特別的關(guān)注以確保GPS中閏秒計(jì)數(shù)器的變化被正確處理,使其可以與Java時(shí)間保持同步。在設(shè)置交易的時(shí)間窗口時(shí),必須留心處理用戶與公證服務(wù)之間、公證服務(wù)內(nèi)部消息傳遞的網(wǎng)絡(luò)傳播的延時(shí)。
3.4附件與合約字節(jié)碼
交易可以擁有若干數(shù)量的附件,并通過文件hash來識(shí)別附件。先前未出現(xiàn)過的新附件的保存和傳送獨(dú)立于交易數(shù)據(jù),并且只能通過標(biāo)準(zhǔn)的解析流獲取。
附件是一系列zip文件,且不能被合約代碼單獨(dú)引用。zip 包中的文件被一起折疊在單個(gè)邏輯文件系統(tǒng)中,重復(fù)的文件只在第一次被提到時(shí)解析。這一做法并非巧合,這正是Java類路徑所使用的機(jī)制。
BTS錢包中的智能合約使用由The Java Virtual Machine Specification SE 8 Edition規(guī)定的JVM字節(jié)碼來定義, 一些小的差別會(huì)在后續(xù)章節(jié)描述。一個(gè)合約只是簡(jiǎn)單的一個(gè)實(shí)現(xiàn)了Contract 接口的類,而Contract接口轉(zhuǎn)而暴露單個(gè)叫verify的函數(shù)。verify函數(shù)被傳入一個(gè)交易,如果該交易被認(rèn)為無效則拋出一個(gè)異常;否則函數(shù)返回,不帶任何結(jié)果。被使用的verify函數(shù)的集合是每個(gè)狀態(tài)指定的合約的并集。BTS 錢包規(guī)范中內(nèi)嵌了Java 規(guī)范,可以使得開發(fā)者編寫多種不同語(yǔ)言的代碼、使用經(jīng)過良好開發(fā)的工具鏈,并復(fù)用已由Java和其它JVM兼容語(yǔ)言編寫的代碼。Java 標(biāo)準(zhǔn)制定了一個(gè)全面的類型系統(tǒng)用于表示通用業(yè)務(wù)數(shù)據(jù):時(shí)間和日歷處理通過JSR310規(guī)范 的一個(gè)實(shí)現(xiàn)提供,十進(jìn)制計(jì)算既可以使用可移植浮點(diǎn)算法也可以使用提供的bignum庫(kù),等等。這些庫(kù)經(jīng)過商業(yè)Java社區(qū)多年的精心設(shè)計(jì),將功能基于這資源具有顯著意義。
合約字節(jié)碼也可以定義自己的狀態(tài)可以是任意對(duì)象圖。由于JVM類并不是一種方便從非JVM平臺(tái)進(jìn)行協(xié)作的形式,所以可使用的類型被做了限制,并且提供了一個(gè)標(biāo)準(zhǔn)化的進(jìn)制編碼方案。狀態(tài)可以用一個(gè)小的標(biāo)準(zhǔn)化注釋集合來給它的屬性添加標(biāo)簽。這些將有利于控制狀態(tài)被序列化成JSON和XML (分別使用JSR 367和JSR222 )的方式,有利于表達(dá)靜態(tài)驗(yàn)證約束( JSR349 ) , 有利于控制狀態(tài)被插入到關(guān)系型數(shù)據(jù)庫(kù)的方式( JSR338)。
附件也可能會(huì)包含提供給合約代碼的數(shù)據(jù)文件。這些文件和字節(jié)碼文件可以在同一個(gè)zip包中,也可以在另一個(gè)必須提供給被驗(yàn)證交易的zip包中。這類數(shù)據(jù)文件的例子可能包括貨幣類型定義、時(shí)區(qū)數(shù)據(jù)和公共假期日歷。任何公共信息都可能以這樣的方式被引用。附件是特意為那些在賬本上會(huì)被許多參與者反復(fù)使用的數(shù)據(jù)而設(shè)的。
數(shù)據(jù)文件被合約代碼通過API獲取,這些API與獲取類路徑上的文件時(shí)所用的API相同。平臺(tái)對(duì)附件可包含的數(shù)據(jù)的種類和大小做了強(qiáng)制約束,以避免人為地在全局賬本上放置不合適的文件(視頻、PPT 等等)。
注意,是由交易的創(chuàng)建者選擇被附加的文件。因此,狀態(tài)對(duì)自己樂意接受的數(shù)據(jù)設(shè)置限制是一種典型做法。附件提供數(shù)據(jù),但不對(duì)數(shù)據(jù)做驗(yàn)證,所以當(dāng)存在有人會(huì)通過提供惡意數(shù)據(jù)來獲取經(jīng)濟(jì)利益的風(fēng)險(xiǎn)時(shí),必須有一個(gè)約束機(jī)制能夠防止這樣的事情發(fā)生。這根植在狀態(tài)自己內(nèi)部編碼的合約約束里:一個(gè)狀態(tài)不能僅僅只指定一個(gè)實(shí)現(xiàn)了Contract 接口的類,還應(yīng)當(dāng)對(duì)提供給它的zip/jar文件設(shè)置約束。而這約束反過來漢可以被用于確保合約對(duì)數(shù)據(jù)可靠性進(jìn)行檢查一或直接檢查數(shù)據(jù)的 hash,或要求數(shù)據(jù)被可信賴的第三方簽名。
3.5 硬分叉、規(guī)范與爭(zhēng)議解決
不同的分布式賬本系統(tǒng)通常在底層政治理念和技術(shù)選擇上有所不同。以太坊項(xiàng)目最初承諾是可以實(shí)現(xiàn)”代碼即律法”的“不可停止的應(yīng)用”。在一個(gè)重要的智能合約被黑客攻擊之后,由于缺少這段程序意圖做什么的非代碼形式的說明書,出現(xiàn)了關(guān)于發(fā)生的事件到底能不能被描述成黑客攻擊的爭(zhēng)論。分歧最終導(dǎo)致了社區(qū)內(nèi)部的分裂。
因?yàn)锽TS錢包合約都是簡(jiǎn)單的zip文件,所以它很容易就能包含描述合約實(shí)際意圖的PDF或其它格式的文檔。并沒有要求必須使用這個(gè)機(jī)制,也沒有要求這些文檔具有法律效力。盡管如此,在金融應(yīng)用案例中,如果發(fā)生了分歧,那么把他們包含的法律意義上的合同比包含的軟件實(shí)現(xiàn)更為重要。
編寫一個(gè)不可升級(jí)的合約在技術(shù)上是可能的。如果這種合約管理一種只存在于賬本上的資產(chǎn),比如加密貨幣,那么這可以提供一種近似的”代碼即律法”。我們把關(guān)于這個(gè)理念所蘊(yùn)含的智慧的討論留給政治學(xué)者和reddit。平臺(tái)日志在BTS錢包中沒有和區(qū)塊鏈的”硬分叉”直接等價(jià)的機(jī)制,所以放棄問題交易鏈或欺詐交易鏈的唯一方法是在帶外就拋棄一個(gè)完整的交易子圖達(dá)成一致意見。 既然不存在一個(gè)全局的可見性,這個(gè)一致的達(dá)成就不需要包括網(wǎng)絡(luò)上的所有參與者:只需要包括那些可能已經(jīng)接收并處理相關(guān)交易的參與者。缺少全局可見性的另-方面后果是沒有單個(gè)點(diǎn)準(zhǔn)確記錄了誰(shuí)見過哪筆交易。確定那些必須就拋棄一個(gè)子圖達(dá)成一致意見的實(shí)體的集合,就意味著需要關(guān)聯(lián)節(jié)點(diǎn)的活動(dòng)日志。
BTS錢包節(jié)點(diǎn)用日志記錄了充分的信息,可以確保這樣的關(guān)聯(lián)可以實(shí)現(xiàn)。平臺(tái)定義了一個(gè)任何人可用的流來協(xié)助這個(gè)過程。還提供了一個(gè)能生成”調(diào)查請(qǐng)求”并發(fā)送到一個(gè)種子節(jié)點(diǎn)的工具。流通知節(jié)點(diǎn)管理員,要求一個(gè)決策,并且充足的信息被傳遞到這個(gè)節(jié)點(diǎn),用于嘗試說服管理員進(jìn)行參與(如一個(gè)簽署的法庭指令)。如果管理員通過節(jié)點(diǎn)瀏覽器接受了這個(gè)請(qǐng)求,則交易鏈中后續(xù)的跳轉(zhuǎn)被返回。這個(gè)工具以這樣的方式半自動(dòng)地抓取網(wǎng)絡(luò),找到所有會(huì)被提議的回滾操作所影響的參與者。平臺(tái)不參與認(rèn)定什么類型的交易回滾是正當(dāng)?shù)?,在定位必須同意的參與方之外,只對(duì)實(shí)現(xiàn)回滾操作提供最小的支持。
一旦涉及到的參與者被確認(rèn),至少有兩種策略可以修改賬本。一種是使用簡(jiǎn)單修正數(shù)據(jù)庫(kù)的交易擴(kuò)展交易鏈,使其符合預(yù)期的現(xiàn)實(shí)。為了使這個(gè)方法成為可能,編寫的智能合約必須在提交的簽名達(dá)到充分的閾值時(shí)能夠于正常業(yè)務(wù)邏輯之外被任意修改。這個(gè)策略簡(jiǎn)單,在狀態(tài)包含的參與方數(shù)量較少且都沒有在賬本上遺留有害信息的動(dòng)機(jī)時(shí)最為有意義。
對(duì)于由盜竊或詐騙產(chǎn)生的資產(chǎn)狀態(tài),其包含的參與者會(huì)反抗所有以上述方法進(jìn)行修補(bǔ)的嘗試,因?yàn)樗麄兛梢栽谫~本出錯(cuò)后、恢復(fù)到實(shí)際狀態(tài)前的這段時(shí)間差里從現(xiàn)實(shí)世界獲取利益。針對(duì)這種情況,需要使用一種更復(fù)雜的方法,即除去不合作參與者之外的所有參與者都同意將相關(guān)狀態(tài)標(biāo)記為不再被消費(fèi)或已被花費(fèi)。這本質(zhì)上是一種受限形式的數(shù)據(jù)庫(kù)回滾。
BTS錢包的落地應(yīng)用與功能特性
1. 商城接入
基于區(qū)塊鏈底層技術(shù)的BTS錢包,可以應(yīng)用于線上、線下的消費(fèi)購(gòu)物以及與區(qū)塊鏈技術(shù)完美融合的商城模塊,讓區(qū)塊鏈技術(shù)的優(yōu)勢(shì),服務(wù)于消費(fèi)購(gòu)物實(shí)際交易場(chǎng)景,幫消費(fèi)者實(shí)現(xiàn)實(shí)現(xiàn)增值購(gòu)物的夢(mèng)想。BTS 錢包作為一個(gè)以用戶為向?qū)У腄app ,將以完整的區(qū)塊技術(shù)接入外部購(gòu)物商城,不同于一般的區(qū)塊項(xiàng)目, BTS錢包接入的商店必須滿足一定的條件,達(dá)到一定的信用基準(zhǔn)。
BTS 錢包系統(tǒng)將滿足如下標(biāo)準(zhǔn):
功能標(biāo)準(zhǔn):
◆支持多語(yǔ)言 UTF-8;支持多模板,可自由切換或編輯模板
◆支持在線支付接口, call center接口、短信與郵件營(yíng)銷接口、其他第三方接口等
◆可網(wǎng)站上支持使用第三方交易平臺(tái)
◆在線定購(gòu), 支持注冊(cè)用戶在線購(gòu)買商品
◆在線支付,支持注冊(cè)用戶在第三方支付平臺(tái)在線支付
◆數(shù)據(jù)庫(kù)備份功能
速度標(biāo)準(zhǔn):
BTS錢包已經(jīng)充分考慮數(shù)據(jù)吞吐量和儲(chǔ)存量的問題,錢包運(yùn)行的速度經(jīng)過開發(fā)嚴(yán)格的內(nèi)測(cè),TPS達(dá)到千級(jí),滿足用戶的使用體驗(yàn)。
存儲(chǔ)能量與性能標(biāo)準(zhǔn):
存儲(chǔ)量大并且性能穩(wěn)定是BTS 錢包的一大優(yōu)勢(shì)之一。BTS 錢包支持海量的交易數(shù)據(jù)、用戶數(shù)據(jù)、用戶行為數(shù)據(jù)的存儲(chǔ),無限擴(kuò)展的吞吐量和極高的并發(fā)。可以支撐每秒至少1000以上的并發(fā)交易處理,每秒2000以上的并發(fā)讀寫操作。解決了傳統(tǒng)電子商務(wù)平臺(tái)存在的大容量的關(guān)鍵數(shù)據(jù)存儲(chǔ)的問題,并且具備極高的穩(wěn)定性,甚至在部分服務(wù)器硬件故障的情況下也能保證系統(tǒng)對(duì)外不停止服務(wù),不會(huì)引起數(shù)據(jù)丟失與不完整。
2. 去中心化的交易平臺(tái)
自加密貨幣推出以來,其巨大的潛力吸引了全世界數(shù)百萬交易所的興趣,傳統(tǒng)的中心化交易平臺(tái)已無法適應(yīng)區(qū)塊鏈技術(shù)的高速發(fā)展?;趨^(qū)塊鏈公開及透明的特性,加密貨幣市場(chǎng)迫切需求一個(gè)完全去中心化的交易平臺(tái)。去中心化加密貨幣交易平臺(tái)需為廣大用戶們提供一個(gè)透明且能接受大眾檢驗(yàn)的交易平臺(tái),因此BTS錢包將同時(shí)應(yīng)用于具有交易所特性的去中心化交易平臺(tái)。
BTS錢包的高性能、豐富的鏈上配套功能以及海量的鏈上數(shù)據(jù)都為其大規(guī)模商用打下了扎實(shí)的基礎(chǔ)。BTS 錢包為數(shù)據(jù)經(jīng)濟(jì)搭建了一系列完善的基礎(chǔ)設(shè)施,使得很多商業(yè)應(yīng)用都能基于BTS錢包為用戶提供優(yōu)質(zhì)的產(chǎn)品和服務(wù)。
BTS錢包將為大中小型企業(yè)們提供與以往中心化交易所全然不同的解決方案。數(shù)字資產(chǎn)交易雙方可以在保護(hù)隱私和遏制造假等優(yōu)點(diǎn)的基礎(chǔ)上直接進(jìn)行點(diǎn)對(duì)點(diǎn)的交易和交換。結(jié)合BTS錢包的全網(wǎng)共識(shí)管理系統(tǒng)、去中心化交易和鏈上信息加速等特點(diǎn),為互聯(lián)網(wǎng)金融領(lǐng)域的貸款、消費(fèi)金融、銀行等企業(yè)們有效解決網(wǎng)絡(luò)擁堵和交易授信問題。
3. BTS錢包的優(yōu)勢(shì)
BTS錢包支付網(wǎng)絡(luò),一種基于多 重簽名的分層通道支付網(wǎng)絡(luò),使用的是現(xiàn)有成熟技術(shù),原理簡(jiǎn)單、設(shè)計(jì)簡(jiǎn)潔,基于BTS支付網(wǎng)絡(luò)可以方便可靠的實(shí)現(xiàn)了秒速零手續(xù)費(fèi)的收發(fā)數(shù)字貨幣。BTS支付網(wǎng)絡(luò)基于BTS支付技術(shù),綜合運(yùn)用了2-of-2多重簽名、鎖定時(shí)間交易、交易構(gòu)造延后廣播等技術(shù),可以在不需信任的情況,實(shí)現(xiàn)區(qū)塊鏈資產(chǎn)的零手續(xù)費(fèi)秒速轉(zhuǎn)移。
BTS支付網(wǎng)絡(luò)的優(yōu)勢(shì)在于:
◆底層技術(shù)成熟: BTS支付網(wǎng)絡(luò)的底層技術(shù)是基于成熟的多重簽名技術(shù)、時(shí)間戳交易技術(shù)和交易冷簽名技術(shù)等技術(shù)建立起來的BTS支付通道。
◆兼容性好:支持絕大部分主流幣種,甚至像以太坊這種已經(jīng)較久沒有核心維護(hù)更新的幣種,只要是數(shù)字貨幣,一般均可以支持實(shí)施 BTS支付網(wǎng)絡(luò),且可以實(shí)現(xiàn)跨鏈跨幣種支付,不需要核心錢包做任何調(diào)整。
◆靈活應(yīng)用:可將BTS支付網(wǎng)絡(luò)技術(shù)集成到目標(biāo)幣的核心錢包中。
◆安全且簡(jiǎn)潔: BTS支付網(wǎng)絡(luò)使用的底層技術(shù)已經(jīng)大規(guī)模應(yīng)用,足夠安全,且BTS I支付網(wǎng)絡(luò)的設(shè)計(jì)簡(jiǎn)潔,應(yīng)用落地性高。
評(píng)論
查看更多