你好,我是不羈,一名程序員,帶你玩轉EOS智能合約開發。如果你對EOS智能合約感興趣,歡迎關注我的專欄。
簡介:昨天發表了一篇《關于Fibos項目的淺見》,引起了大家的討論,不羈非常感謝大家的支持。從昨天的討論中,不羈也意識到了昨天文中表達不清楚的地方,所以今天特意再補一篇文章,把那些模糊的地方表達清楚。
Fibos是什么
首先澄清的一點是,Fibos是一個獨立的鏈,它并不是
所宣傳中的EOS的側鏈;它利用
了EOS的源碼
,加入Fibjs這個javascript虛擬機(
就是解釋并運行javascript代碼的東西),形成的產物。
Fibjs所添加的Fibjs這個虛擬機部分,不會影響到共識協議層,它只是對EOS源碼中的合約的執行層做了修改,我畫了一張圖EOS網絡和Fibos網絡中BP節點執行合約的對比圖,供大家參考:
合約的執行是各個出塊節點的工作。
可以看到,右側Fibos網絡的Js智能合約
運行在Fibjs虛擬機
中的,通過Js和C++的連接層
調用到原本的C++接口。
Fibos項目主要的工作就在連接層
這塊兒,就是把js
的接口與C++
接口綁定起來。
被bancor
算法神化的IBO
先說說ICO
,項目集資方發行一種新的token,投資人可以用現有的主流貨幣(一般是BTC
或者ETH
)按照一定的比例兌換token,這個比例是由項目集資方事先定好的,并公布出來。為了刺激投資人盡快投資,一般會設計成階梯形變化的兌換比例,投資的越早,兌換比例越高。比如某個項目的募資比例設計是這樣的:前1000ETH,1ETH可以兌換10Token,之后的1000-3000ETH
,1ETH只能兌換8Token,再之后的3000-5000ETH
,兌換比例為1:6,募集5000ETH
結束。
當ICO結束后,有時候,投資人可能要等一段時間才能拿到token,有時候投資人可以立即拿到Token,完全看集資方是怎么設定的。不過拿到了Token本身并沒有什么價值,要等著新的Token上交易所了,才可以交易,才有價值。
那么IBO
是什么呢?它相比ICO
有兩個不同:
IBO的兌換比例也是越早參與的,可得的兌換比例越高;只不過這個兌換比例不是階梯性變化的,是根據
bancor算法
動態調整的,bancor算法形成的兌換比例變化曲線更為平滑一些。比如Fibos項目,用戶可以隨時用EOS兌換成FO,當剩余FO量越少,兌換比例也越低,這個變化是很平滑的第二個不同是,IBO模式下,投資者可以立即得到新Token,并且可以自由地與投資的原有貨幣進行兌換。比如Fibos項目,用戶兌換完FO之后,可以隨時再兌換為EOS,只不過,因為兌換比例是動態調整的,在兌換回去之后,已經不是原來的比例了,你可能賺了,也可能虧了。
IBO模式,相比于ICO,提高了token的流動性,新發行的token,從參與IBO的那一刻起就變成流動的了。
這對于投資者來說,是有一定的好處的,如果看著苗頭不對,可以隨時兌換回原有貨幣。
然而,對于集資方來說,如果集資方想割韭菜,仍然很方便。以Fibos為例,如果它想割韭菜,它只需要在市場比較熱的時候,把大量的FO兌換成EOS就可以了,這會導致FO兌換EOS的比例大跌,等到投資人想撤回的時候,只能以較低的比例兌換為EOS了。
所以IBO,并沒有那么什么神奇,只不過是一種流動性更高的融資方式,它和ICO一樣,對項目方集資方沒有任何約束力。
Fibos的跨鏈轉賬是怎么回事
Fibos的IBO過程,因為是一個EOS和FO相互過程,而EOS和FO屬于不同的網絡,那它是怎么兌換的呢?
這就是Fibos文檔中所說的跨鏈轉賬
了。不過這里的跨鏈,并不是Fibos和EOS網絡上協議層的跨鏈,它采用給賬戶記賬的方式實現轉賬。也就是,它的這種方式僅適用于資產兌換,與側鏈和主鏈的網絡層通信實現跨鏈轉賬不是一碼事,這與我們前面說的Fibos不是EOS的側鏈
這一觀點是一致的。
好,我們看看Fibos的IBO過程到底如何實現的:
- 首先,Fibos在EOS網絡創建了一個賬號叫做:
fiboscouncil
。投資人轉賬的EOS資金都是進到這里的,轉賬的時候,在memo里填上在Fibos網絡
中的賬號(也就是用FO錢包創建的FO賬號) - 有一點需要明確,
Fibos官方
可以從EOS網絡檢測到fiboscouncil
已經有多少EOS了,也可以檢測到它所有的入賬記錄。 - 每當Fibos官方在檢測到
EOS網絡上fiboscouncil賬戶
有資金轉進來了,并且交易的memo里填寫了FO賬號
,Fibos官方
便給你的FO賬號
發放等量的fEOS
,這里的fEOS
我給的叫法,Fibos官方
把這個也叫做EOS
,其實它已經不是原來的EOS
了;它是Fibos網絡
中的EOS,并不是EOS網絡
中的EOS
,你把真正的EOS
轉給了fiboscouncil
賬戶,Fibos官方
就給發放了等量的Fibos網絡
中的EOS(后面我會把它叫做fEOS
),它能不能兌換成EOS網絡
中的EOS
token,只能由Fibos官方
說了算,沒有任何約束保證。 - 然后你就可以用FO錢包把
fEOS
兌換成FO了,它們都是在Fibos網絡
中的代幣,這個兌換就是同網兌換了。Fibos網絡
中的兌換合約
知道FO的總量和當前的余量,同時也知道有已經有多少fEOS
參與兌換了,所以兌換合約
就很容易利用bancor算法
計算出當前的兌換比例,從而完成兌換。 - 這個過程之后,EOS網絡上
fiboscouncil
賬戶里的EOS增加了,這個賬號屬于Fibos
官方,它可以隨時支配這個賬戶里的資產;另外,用戶在EOS
網絡中的EOS減少了,在Fibos網絡
中增加了相應數量的FO
。
上面就是所謂的IBO的過程。
在IBO過程中,用戶也可以隨時把FO
兌換為EOS
,方法正是與上面的過程相反的,簡單的描述就是:
- 通過
FO
錢包把FO
兌換為fEOS
- 通過
FO
錢包把fEOS
轉給fiboscouncil
賬號,這個賬號與上面的EOS網絡中的fiboscouncil
賬號不同,這個是Fibos網絡
中的,只不過名字與EOS網絡
中的一樣。Fibos官方
檢測到Fibos網絡中的fiboscouncil
賬號進來了fEOS
,就知道有人想轉出了,并且用戶的EOS網絡
賬號就在memo里,于是Fibos
官方就用EOS網絡中的fiboscouncil
賬號,向用戶的EOS網絡賬號
轉入EOS- 至此就換成了
FO
兌換為EOS
的全過程。
相比你會發現,整個過程的中心就是fiboscouncil
賬號,FO網絡和EOS網絡各一個fiboscouncil
賬號,名稱相同;所謂跨鏈轉賬,不過是這兩個賬號相互倒騰的結果。讓我們來進一步簡化上面的描述:
-
EOS
兌換為FO
的過程是,用戶把EOS
轉給EOS網絡中的fiboscouncil
賬號,然后Fibos網絡中的fiboscouncil
賬號給用戶發放fEOS
,而后用戶用FO
錢包就可以在Fibos網絡
中把fEOS
兌換成FO
-
FO
兌換為EOS
的過程是,用戶使用FO錢包
把FO
兌換成fEOS
,然后把fEOS
轉給Fibos網絡中的fiboscouncil
賬號,然后EOS網絡中的fiboscouncil
賬號向用戶發送EOS
兌換時的注意事項
不管FO到底怎么樣,都會有人想要去玩一玩,如果你也要玩,一定要分清楚FO錢包
里的EOS
到底是什么。
上面把FO錢包
中的EOS叫做fEOS
,因為它不是真正的EOS,然而FO錢包
卻把它叫做EOS
。
這很容易讓人誤解,以為FO錢包
里的EOS
是真正的EOS
,于是就有人直接把FO錢包
里的fEOS
轉移到交易所的EOS
地址了。造成了資產丟失。
正確的做法是要嚴格按照Fibos
官方給的方法做,收款方填寫fiboscouncil
賬號,memo里填寫你的EOS網絡里的賬號
,這樣Fibos
官方才能從它EOS網絡中的fiboscouncil
轉出EOS給你:
結語
本文有點偏技術,可能讀起來有點燒腦,我自己在寫這篇文章也花了九牛二虎之力,差不多用了5個多小時。
其實邏輯貌似并不復雜,可能我個人的語言能力還有待提高。
如果你能讀懂,我非常欣慰,功夫沒有白費。如果沒有讀懂,也不怪你,說明我還要加緊修煉表達能力。
感謝你的閱讀!我最近有個項目要忙,可能要停更一周左右。一周之后,給大家一個小小的驚喜,敬請期待。