什么是加密貨幣支付通道
目前TON完全缺乏開(kāi)發(fā)人員社區(qū),而Fift(TON的智能合約語(yǔ)言)與通用語(yǔ)言的底層方法大不相同。
項(xiàng)目競(jìng)賽是吸引新開(kāi)發(fā)人員和建立社區(qū)的好方法,也可以解決缺少文檔和案例的問(wèn)題。我們決定從比賽的角度總結(jié)比賽期間和比賽后發(fā)生的所有事情。
技術(shù)文檔缺乏
(FunC)沒(méi)有funC(類(lèi)似于C的智能合約語(yǔ)言)的文檔。 這是一個(gè)問(wèn)題,因?yàn)榇蠖鄶?shù)TON競(jìng)賽任務(wù)都要求您編寫(xiě)智能合約。 FunC —是將使用的主要語(yǔ)言,可用于編寫(xiě)智能合約。
使用它比使用Fift要容易得多。 但是由于缺乏相關(guān)技術(shù)文檔(根本沒(méi)有文檔),每個(gè)人都需要去分析并嘗試?yán)斫馐褂胒unC。
crypto/smartcontract
其實(shí)并沒(méi)有那么難,但是需要花上幾天的時(shí)間去學(xué)習(xí)就可以毫無(wú)困難地開(kāi)始使用funC編寫(xiě)了。
(基本知識(shí))使用funC編寫(xiě)智能合約時(shí)-您需要了解如何部署和編譯智能合約以及如何使用自變量調(diào)用函數(shù)-基礎(chǔ)知識(shí)。有趣的是,沒(méi)有關(guān)于此的任何詳細(xì)信息,也沒(méi)有完整的步驟案例。
我們感謝TON給出的一個(gè)小小的指導(dǎo)方針,它確實(shí)幫助了我們,但它仍然是相當(dāng)具有挑戰(zhàn)性的。
關(guān)于競(jìng)賽任務(wù)
我們要突出顯示5個(gè)任務(wù)中的兩個(gè)。異步支付通道和同步支付通道。 那么什么是支付通道?
支付通道-一種在鏈外(區(qū)塊鏈之外)在2個(gè)交易方之間發(fā)送交易的方法,以使其更快、更便宜、更個(gè)性化。雙方在區(qū)塊鏈上都有自己的帳戶(hù)。
此外還有一個(gè)特殊的智能合約,可以在支付通道開(kāi)放時(shí)存儲(chǔ)兩方的存款。您可以彼此之間以您存入的金額發(fā)送交易。
當(dāng)您需要提款時(shí)-您將使用特殊數(shù)據(jù)調(diào)用智能合約,這將在下面討論。
代理商A和代理商B向智能合約發(fā)送硬幣,進(jìn)行存款以在它們之間建立支付通道。
打開(kāi)付款通道時(shí)-您需要從雙方將資金存入智能合約。
A向B發(fā)送交易并將付款通道的狀態(tài)從(a,b)變更為新的
如果付款通道已打開(kāi)-您可以開(kāi)始以每秒超過(guò)10萬(wàn)筆交易的速度相互發(fā)送交易。
重要的是要了解所有事情都是在鏈下發(fā)生的,有一天您將需要與交易對(duì)方達(dá)成協(xié)議并從智能合約中提取資金。
(在同步支付通道上從A到B的練下交易的可視化表示)
我們假設(shè)各方都可以作弊以撤回所有資金。 因此各方都需要證明自己要提取的款項(xiàng)屬于他們。
為了證明這一點(diǎn)-他們將需要發(fā)送每個(gè)伙伴的簽名,以正確證明狀態(tài)(sum A,sum B和其他一些信息)。如果我們?cè)谡務(wù)撏街Ц锻ǖ?我們有一個(gè)狀態(tài)。
A無(wú)法連續(xù)向B發(fā)送多個(gè)交易。每個(gè)新?tīng)顟B(tài)都需要雙方(A和B)的簽名。 因此當(dāng)A向B發(fā)送交易時(shí),A需要?jiǎng)?chuàng)建一個(gè)狀態(tài),該狀態(tài)將更改屬于A和B的金額,使用私鑰對(duì)該狀態(tài)進(jìn)行簽名,然后將新的狀態(tài)和簽名發(fā)送給B。此狀態(tài)并將簽名發(fā)送回A。
僅在確認(rèn)交易狀態(tài)之后。 之后A不能在B之前發(fā)送另一筆交易。 A需要等待B創(chuàng)建新?tīng)顟B(tài)。 因此它稱(chēng)為同步通道。
(在異步支付渠道上從A到B的鏈下交易的可視化表示)
在異步支付通道中,每個(gè)交易對(duì)手都有自己的狀態(tài)組。每個(gè)狀態(tài)包括A從B接收的數(shù)量,A發(fā)送給B的事務(wù)數(shù)量,B發(fā)送給A的數(shù)量,B發(fā)送給A的事務(wù)數(shù)量。
在這種情況下,A和B無(wú)需等待確認(rèn) 他們只需要發(fā)送一個(gè)已簽名狀態(tài)。
這兩個(gè)通道中最困難的部分是提款過(guò)程。智能合約需要檢查各方是否提供了正確的數(shù)據(jù)以提取資金。
我們需要檢查狀態(tài)的簽名,而且狀態(tài)是最新的。 可能是各方之間的沖突,并且智能合約需要根據(jù)規(guī)則(最新?tīng)顟B(tài))進(jìn)行解決。 必須防止將相同的數(shù)據(jù)發(fā)送到不同的支付通道,并且如果參與者之一不提供任何信息,我們也需要解決這種情況。
所有這些都必須用funC編寫(xiě)并經(jīng)過(guò)充分測(cè)試以確保安全。聽(tīng)起來(lái)很有挑戰(zhàn)性。
解決方案和競(jìng)爭(zhēng)對(duì)手
大多數(shù)提交內(nèi)容都是多簽名錢(qián)包和DNS解析器。 但是其中有幾個(gè)具有支付通道。 顯然支付通道是最復(fù)雜的任務(wù),因此解決方案將更少,并且提供這些解決方案的大多數(shù)團(tuán)隊(duì)將比其他團(tuán)隊(duì)更強(qiáng)大。
下一步是什么?
目前大約有10至20個(gè)具有足夠技能和知識(shí)的團(tuán)隊(duì)可以開(kāi)始構(gòu)建TON的基礎(chǔ)架構(gòu)。 我們認(rèn)為大多數(shù)成功的ETH解決方案將由這些團(tuán)隊(duì)轉(zhuǎn)移到TON。TON競(jìng)賽確實(shí)可以改變與TON合作的團(tuán)隊(duì)數(shù)量,從而改變了現(xiàn)狀。