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