公鏈設(shè)計(jì)中還有哪些改進(jìn)點(diǎn)需要考慮
考慮到比特幣和以太坊等公鏈不具備的一些轉(zhuǎn)賬交易(Transaction)人性化選項(xiàng),在新的公鏈設(shè)計(jì)中,可以考慮考慮下面的幾個(gè)改進(jìn)點(diǎn):
1. 賬戶注冊(cè)、實(shí)名制、匿名交易
在以太坊和比特幣系統(tǒng)中,Alice轉(zhuǎn)賬給Bob時(shí),區(qū)塊鏈上不一定要有Bob的地址信息。直到收到第一筆轉(zhuǎn)賬金額后,區(qū)塊鏈上才能查閱到該地址信息。這就可能導(dǎo)致一些錯(cuò)誤轉(zhuǎn)賬、黑洞地址等問題。比特幣和以太坊之所以這樣設(shè)計(jì),可能是因?yàn)樗麄兪情_創(chuàng)性的項(xiàng)目,需要考慮到匿名性以支持灰色金融場(chǎng)景。不過(guò)隨著區(qū)塊鏈數(shù)字貨幣的普及,在新的公鏈設(shè)計(jì)中,最終需要考慮正常的使用場(chǎng)景。
引入賬戶注冊(cè)的好處就是,在注冊(cè)賬戶的時(shí)候,可以設(shè)定很多其他功能選項(xiàng),比如:用戶在進(jìn)行轉(zhuǎn)賬的時(shí)候,可以指定【地址注冊(cè)選項(xiàng)】,若目標(biāo)地址未經(jīng)過(guò)注冊(cè)過(guò),是不允許接收轉(zhuǎn)賬額度的,這樣就避免了錯(cuò)誤轉(zhuǎn)賬、黑洞地址。
賬戶注冊(cè)功能還有可能進(jìn)一步發(fā)展,而支持實(shí)名制賬戶,支持實(shí)名制交易。在現(xiàn)實(shí)應(yīng)用場(chǎng)景中,實(shí)名與匿名都有必要性,所以公鏈設(shè)計(jì)中需考慮提供這些選項(xiàng)。讓用戶自己選擇實(shí)名制還是匿名交易。賬戶注冊(cè)未必?fù)p失去中心化特性,這要看賬戶注冊(cè)時(shí)需要綁定什么信息。若用戶選擇實(shí)名制,區(qū)塊鏈可以提供支持,但是用戶也有選擇匿名的自由。
2. 收款方支付礦工費(fèi)用
注冊(cè)賬戶都可開啟【接受做為收款方支付手續(xù)費(fèi)】的功能,默認(rèn)情況下,此項(xiàng)功能是關(guān)閉的。即:Alice給Bob轉(zhuǎn)賬,若Bob開啟了該項(xiàng)功能,則可以由Bob支付手續(xù)費(fèi)。
為了避免付款方可能發(fā)起的惡意攻擊,該項(xiàng)功能會(huì)帶有一個(gè)參數(shù),指定轉(zhuǎn)賬總額度與手續(xù)費(fèi)之間的比率范圍,這樣就避免了Alice給Bob轉(zhuǎn)很少的錢,卻消耗了Bob很多手續(xù)費(fèi)的問題。礦工打包交易入塊之前,就可以根據(jù)實(shí)際情況決定是否接受此交易。
這項(xiàng)功能是非常實(shí)用的,用戶在進(jìn)行以太坊ERC-20Token轉(zhuǎn)賬時(shí)通常會(huì)遇見沒有以太幣就不能進(jìn)行XX-Token的轉(zhuǎn)賬。有了收款方支付手續(xù)費(fèi)的功能后,就方便許多了。
3.交易生效的時(shí)間范圍
比特幣系統(tǒng)提供了NLockTIme和Sequence功能,可以指定某一筆交易在什么時(shí)間之后或者經(jīng)過(guò)多少區(qū)塊之后可進(jìn)入?yún)^(qū)塊,這個(gè)功能為跨鏈原子交易和閃電網(wǎng)絡(luò)都提供了很好的基礎(chǔ)磚塊。以太坊也可以通過(guò)智能合約模擬出這一功能。這是為了“未來(lái)的行為”做支持。區(qū)塊鏈系統(tǒng)還有必要為“當(dāng)下的行為”提供良好的支持。
因?yàn)橛脩粼诎l(fā)送一筆交易后,并不能確定這邊交易要等到什么時(shí)候才能被打包入塊,用戶需等待一段未知時(shí)間,遇到網(wǎng)絡(luò)擁堵的時(shí)候,就更麻煩了。用戶為了取消已經(jīng)發(fā)送出去的交易,甚至不得不重新發(fā)送一筆支付了高額手續(xù)費(fèi)的雙花交易,試圖搶先一步入塊,進(jìn)而達(dá)到取消前一筆交易的目的。這對(duì)用戶非常不友好,所以對(duì)NLockTIme這個(gè)功能做一次推廣就很有必要。用戶可以指定已發(fā)送交易的失效時(shí)間或者區(qū)塊數(shù)量參數(shù),在這個(gè)時(shí)間段之后,用戶可以確切地知道自己發(fā)送的交易是否已經(jīng)生效。若交易沒有生效,則可以重新簽署并再次發(fā)送,而不是茫然地等待著不確定的隨機(jī)時(shí)間。將失效時(shí)間和上塊時(shí)間統(tǒng)一為一個(gè)參數(shù),用戶可以更方便、更確切地控制交易的生效時(shí)間點(diǎn)。
4. 排他交易入塊選項(xiàng)
在編寫以太坊智能合約時(shí),發(fā)現(xiàn)有時(shí)候需要一種特殊的排他交易選項(xiàng):一個(gè)區(qū)塊內(nèi),最多只允許一筆交易的目的地址為該合約地址。之所以這么做,是為了防止礦工作惡,因?yàn)榈V工負(fù)責(zé)打包交易,礦工可以針對(duì)某些合約做特殊監(jiān)控,而且礦工可以分析出交易里的任何參數(shù),很容易通過(guò)操縱交易的入塊順序和一個(gè)區(qū)塊里的同類交易的數(shù)量而獲得預(yù)期之外的收益。若用戶在發(fā)交易的時(shí)候,可以指定交易入塊的排他性,指定交易只能以順序化的方式依次觸發(fā)合約執(zhí)行便利,就能為部分合約設(shè)計(jì)提供便利。
這一功能選項(xiàng)對(duì)于普通轉(zhuǎn)賬也是有用的,讓目標(biāo)地址的轉(zhuǎn)賬記錄更加容易被區(qū)分出來(lái),方便用戶核查賬目。該參數(shù)選項(xiàng)可以由目標(biāo)賬戶設(shè)定,也可由發(fā)起方設(shè)定,或者互相配合設(shè)定。