⑴ 智能合約是什麼
智能合約(Smart Contract),是一段部署在區塊鏈上的代碼,一旦某個事件觸發合約中的條款,代碼就會自動執行。用人話來講就是:智能合約是一份基於密碼學這種高科技上面的數字化合同,與傳統的紙質合同的差異就是: 自動售貨機相當於智能合約,售貨員相當於紙質合同。
舉個簡單的例子你就明白了:
假設甲向乙借了一大筆錢,雖然打了白紙黑字的借條。但是到期後,甲以各種理由拒絕還款,此時乙想要拿回借款只能起訴。智能合約就能解決這種問題,如果甲乙雙方在借款前把借款金額、還款時間、對方綁定銀行卡信息等打包進合約中。到了約定還款日,借款會自動劃到乙的賬戶里,即使甲不想還也沒辦法。
來源:千氪財經
⑵ DeFi是什麼,怎麼學習
去中心化金融(英語:Decentralized finance,俗稱DeFi)是一種基於區塊鏈的金融,它不依賴券商、交易所或銀行等金融機構提供金融工具,而是利用區塊鏈上的智能合約(例如以太坊)進行金融活動。
DeFi 圍繞著去中心化應用程序(也稱為DApp)展開,這些應用程序在稱為區塊鏈的分布式賬本上執行金融功能,這項技術最初由比特幣流行,此後得到了更廣泛的應用。
交易不是通過集中式中介機構(如加密貨幣交易所或華爾街的傳統證券交易所)進行,而是在參與者之間直接進行,由智能合約程序進行調解。這些智能合約程序或 DeFi 協議通常使用開源運行由開發人員社區構建和維護的軟體。
DApps 通常通過支持Web3 的瀏覽器擴展或應用程序訪問,例如MetaMask,它允許用戶通過數字錢包直接與以太坊區塊鏈交互。
許多這些 DApp 可以互操作以創建復雜的金融服務。例如,stablecoin持有者可以借類似資產USD硬幣或DAI到流動池在借/借貸協議等AAVE,並允許其他人通過沉積自己抵押借貸那些數字資產,通常超過的量貸款。
該協議根據資產的即時需求自動調整利率。一些 DApp 通過區塊鏈預言機獲取外部(鏈外)數據,例如資產價格。
此外,Aave 還推出了「閃貸」,即任意金額的無抵押貸款,可在單個區塊鏈交易中取出並證明償還。雖然閃電貸可以有合法用途,例如套利、抵押品掉期、自我清算和平倉杠桿頭寸,但 DeFi 平台的多種漏洞利用閃電貸來操縱加密貨幣現貨價格。
另一個 DeFi 協議是Uniswap,它是一個在以太坊區塊鏈上運行的去中心化交易所或 DEX。Uniswap 允許交易在以太坊區塊鏈上發行的數百種不同的ERC20代幣。
Uniswap 不是使用中心化交易所來填寫訂單,而是鼓勵用戶形成流動性池,以換取交易者在流動性池內外交換代幣所賺取的交易費用的一部分。
這些流動性池允許用戶以完全去中心化的方式從一種代幣切換到另一種代幣,同時保持對其資金的控制。同時,鼓勵流動性提供者為交易所產生的部分費用存入代幣。
在匯集他們的代幣後,流動性提供者可能會保持完全被動,因為智能合約會根據當前市場價格自動調整流動性提供邏輯。
因此,DEX 由基於數學公式的自動做市商提供支持,從而可以通過考慮協議中存在的流動性來估計兩種資產之間的匯率。
由於沒有中心化方運行 Uniswap(平台最終由其用戶管理),並且任何開發團隊都可以利用開源軟體,因此沒有實體來檢查使用該平台的人的身份以遵守KYC/AML規定。目前尚不清楚監管機構將對 Uniswap 等平台的合法性採取什麼立場。
歷史
該stablecoin基於借貸平台,MakerDAO,貸記作為第一個獲得大量使用的 DeFi 應用程序。
它允許用戶借用Dai,這是平台與美元掛鉤的原生代幣。通過一套智能合約上復仇blockchain,支配貸款,還款和清算流程,MakerDAO旨在維持穩定價值戴在一個分散的和自主的方式。
2020 年 6 月,Compound Finance 開始在其平台上獎勵加密貨幣的貸方和借方,除了向貸方支付典型的利息外,還提供一種稱為 COMP 代幣的新加密貨幣單位,該代幣用於 Compound 平台的治理,但也可交易關於交流。
其他平台也紛紛效仿,推出了被稱為「收益耕作」或「流動性挖礦」的現象,投機者在一個平台的不同池之間和不同平台之間積極轉移加密貨幣資產,以最大限度地提高其總收益,其中不僅包括利息和費用,還包括還有作為獎勵收到的額外代幣的價值。
2020 年 7 月,《華盛頓郵報》撰寫了一篇關於去中心化金融的入門讀物,其中包括有關高產農業、投資回報和所涉及風險的詳細信息。
2020 年 9 月,彭博社表示,就價格變化而言,DeFi佔加密貨幣市場的三分之二,DeFi 抵押品水平已達到 90 億美元。復仇看到在2020年開發商的上升歸因於DEFI的興趣增加。
2020 年 9 月,彭博社表示,就價格變化而言,DeFi佔加密貨幣市場的三分之二,DeFi 抵押品水平已達到 90 億美元。復仇看到在2020年開發商的上升歸因於DEFI的興趣增加。
DeFi 吸引了大型加密貨幣風險投資家,如Andreessen Horowitz、 Bain Capital Ventures和Michael Novogratz。
⑶ 以太坊的智能合約
智能合約是運行在計算機裡面的,用於保證讓參與方執行承諾的代碼,般情況下,普通合約上記錄了甲方與乙方各方面的關系條款,並通常是通過法律強制執行或保護的,而「智能合約」則是用密碼或密鑰來執行關系。以更加直接的角度來理解的話,即「智能合約」的程序內容將同-開始大家一起設定好的那樣百分百執行,並且零差錯。
舉個例子,以太坊用戶可以使用智能合約在特定日期向朋友發送10個以太幣。在這種情況下,用戶可以操作創建一個合約,然後將程序推人該合約中進行特殊計算,以便它能夠執行所需的命令。而以太坊就是專門把精力集中在這件事上的這么一個平台。
比特幣是第一個支持「智能契約」的資源幣種,因為網路的價值在於把價值或數據從一個點或人轉移到另一個點或人身上。節點網路只在滿足某些條件時才會進行驗證,但是,比特幣僅限於貨幣用例。相反,以大坊取代了比特幣那種帶有不小限制性的編程語言,取而代之的是一種允許開發人員編寫自己程序的語言。以太坊允許開發人員編寫他們自己的「智能契約」,即「自主代理」或「自治代理」,正如ETH白皮書所稱的那樣。該編程語言是「圖靈完備」語言,這意味著它支持一組更廣泛的計算指令。智能合約能做些什麼呢?
1.「多簽名」賬戶功能,只有在一定比例的人同意時才能使用資金。這個功能經常用在與眾籌或募捐類似的活動中。
2.管理用戶之間所簽訂的協議。例如,一方從另一方購買保險服務3.為其他合同提供實用程序。
4.存儲有關應用程序的信息,如「域注冊信息」或「會員信息記錄」。概念有時候比較晦澀,我們舉一個募捐的智能合約的例子來幫助理解:假設我們想向全網用戶發起募捐,那就可以先定義一個智能賬戶,它有三個狀態:當前募捐總量,捐款目標和被捐贈人的地址,然後給它定義兩個函數:接收募捐函數和捐款函數。
接收募捐函數每次收到發過來的轉賬請求,先核對下發送者是否有足夠多的錢(EVM會提供發送請求者的地址,程序可以通過地址獲取到該人當前的區塊鏈財務狀況),然後每次募捐麗數調用時,都會比較下當前募捐總量跟捐款目標的比較,如果超過目標,就把當前收到的捐款全部發送到指定的被捐款人地址,否則的話,就只更新當前募捐總量狀態值。
捐款函數將所有捐款發送到保存的被捐贈人地址,並且將當前捐款總量清零。每一個想要募捐的人,用自己的ETH地址向該智能賬戶發起一筆轉賬,並且指明了要調用接受其募捐函數。於是我們就有一個募捐智能合約了,人們可以往裡面捐款,達到限額後錢會自動發送到指定賬戶,全世界的礦工都在為這個合約進行計算和擔保,不再需要人去盯著看有沒有被挪用,這就是智能合約的魅力所在。
⑷ 「官方」搭建Web3:Filecoin與以太坊攜手共進
這是Protocol Labs創始人Juan Benet在EthCC 2021上的演講概要,查看完整內容:
https://www.bilibili.com/video/BV1eb4y1r7E1
Filecoin網路是面向生態的,它與Protocol Labs搭建模塊化解決方案的傾向是一致的。因為它本來就是設計給其他人使用,所以Filecoin在Web3領域的其他棧、應用和生態里如魚得水。自從其在2020年10月的啟動開始,Filecoin已經增長到超過8 exbibytes的可用存儲空間,有超過400個項目進入了這個生態。以太坊就是一個能持續證明其可協作性和共同利益的生態系統。
Filecoin + 以太坊
>>>>Filecoin和以太坊虛擬機(EVM)
Filecoin生態意識到網路支持智能合約的好處。最初,開發者社區相信架設在以太坊和Filecoin之間的橋服務足夠在Filecoin上支持智能合約了。不過,通過橋來使用智能合約是很笨重的方式,相比於直接在以太坊實現智能合約的功能和可組合性更是不足。有一個提議是在Filecoin上加入以太坊虛擬機(EVM),從而在存儲層啟用對智能合約的支持,以及為這兩個生態的結合提供更多機會。
>>>>開發者工具和資源
Fleek:讓用戶能為去中心化網路架設網站、存儲和分發文件及開發dapp。Fleek可以讓每一個人(從專業的開發者到日常的互聯網用戶)更容易以去中心化的方式創建app和存儲文件,從而加速去中心化網路的採用率。Fleek可以在Filecoin上進行自動化存檔,並通過ENS(以太坊域名服務)這樣的應用來利用以太坊的生態系統。
https://fleek.co/
Web3.Storage:是一個讓開發者在Filecoin去中心化存儲網路上存取數據的簡單介面。Web3.Storage為開發者(包括以太坊dapp開發者)提供了搭建應用的簡單方式,這些應用可以帶有冗餘的去中心化的存儲以及安全的內容定址數據。
http://web3.storage/
PowerLoom:以去中心化的方式將鏈上和鏈下數據聚合起來以生成帶有密碼學證明的快照。它旨在通過一個豐富的節點和利益相關者生態系統(他們被激勵參與到協議里)來搭建信任,並按需提供洞見。PowerLoom特別適用於以太坊DeFi這樣的生態,這類系統是非常復雜的,而且需要基於驗證的信任。
https://powerloom.io/
>>>>DeFi應用
SecuredFinance(https://secured-finance.com/)是一個綜合平台,整合了基於智能合約的點對點固定利率貸款、抵押品管理服務、貨幣間交易和其他類型的利率產品。Secured Finance的協議是去中心化的點對點金融協議,提供了由以太坊智能合約賦能的區塊鏈上的中後台銀行業務。Secured Finance可以滿足Filecoin網路內的需求,它提供的解決方案能夠滿足Filecoin存儲提供者對FIL貸款的強烈需求。
>>>>數據市場
OceanProtocol(https://t.co/misApE3ggc?amp=1)是一個在Filecoin上搭建的數據市場。Ocean的數據token(data tokens)是以太坊ERC-20 token,可以輕易地用於發布和消費數據服務。如果你有1個數據token,你可以訪問一個特定的數據服務。Ocean market是一個專門為數據服務的去中心化交易所,它分叉了一個Balancer AMM(自動化做市商)來降低gas成本。在這個市場中,用戶可以對數據進行發布、購買、銷售、消費和stake操作。
通過Filecoin,用戶可以利用Ocean來發起自己的Filecoin數據市場,或創建一個Filecoin dataDAO或指數基金。通過Ocean Protocol的工具和Filecoin的去中心化存儲資料庫,我們正見證新生的開放數據經濟。
>>>>視頻應用
LivePeer:是一個去中心化的在線視頻流媒體基礎設施,由以太坊區塊鏈確保安全性。將Filecoin和IPFS結合提供存儲和內容分發功能後,去中心化視頻應用就成為可能了。
https://livepeer.org/
Voodfy:正為私有的視頻架設服務提供去中心化工具。這是一個多功能的安全流媒體解決方案,讓用戶能完全控制自己的內容,這包括了訪問權的設定以及變現的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.
https://voodfy.com/
VideoCoin:正搭建一個能可靠地創建、存儲和交易基於視頻的NFT解決方案,它可以繞過在以太坊上存儲實際內容時固有的復雜性和費用。VideoCoin正將其去中心化視頻處理網路與Filecoin整合起來,以搭建首個專門為創建和交易視頻NFT服務的平台。這個平台是新生的全球數字收藏品市場急需的一部分。
https://videocoin.io/
>>>>NFT
nft.storage(http://nft.storage/)是一個由Protocol Labs實驗室和Pinata支持的服務,它專門為存儲NFT數據而設計。
nft.storage讓開發者通過內容定址和去中心化存儲來保護其NFT資產和相關的元數據,確保所有的NFT遵循最佳實踐以實現長期的可訪問性。
未來的使用場景
隨著Filecoin和Ethereum生態系統的成長和重疊,會出現更多的新生用例和開發者機會。一些可以進行創新的用例包括:
>>>>可組合的DeFIL
將存儲和Defi的世界結合可以產生一些機會。人們可以將市場訂單(如要價、出價和交易)帶到一個去中心化交易所上,以觀察市場是如何評判這些訂單的價值的。通過這樣的能力,生態系統可以開始想像硬體期貨(hardware futures)和時空期貨(spacetime futures)等的出現。
>>>>數據豐富的NFT
NFT將會越來越復雜,而Web3社區需要 探索 採用數據豐富(data-rich)的NFT的方式。VideoCoin已經將其視頻處理引擎與Filecoin連接起來,以結合以太坊對NFT的支持能力及Filecoin的存儲能力。像VideoCoin這樣的工具可以用來創建一類新型的NFT,如短電影、視頻片段和完整長度的專題特寫。
>>>>按觀看次數支付的媒體
通過在Filecoin上存儲的信息,我們可以利用以太坊的token支持能力去創建由token保護的頁面和媒體(文章、電影和音樂等)。我們可以復制Web2時代的按觀看次數支付模式,而無需復制數據和廣告模型。
這只是一個開始!Filecoin和以太坊生態有長期的協作 歷史 和機會,未來可期。
⑸ Zether 基於賬戶模型的隱私合約
Zether是以太坊上第一個基於賬戶模型的智能合約方案,提供保密性(隱藏交易金額)和匿名性(發送者和接收者地址),於2019提出。
Zether由ZSC (Zether Smart Contract) 和 ZTH (Zether token) 實運扮芹現旁畢。 Zether可缺姿以看作為以太坊上部署的智能合約ZSC, 代幣為ZTH,地址是Elgamal 公鑰。
目前存在的匿名支付方案,像Zcash, Monero都是採用UTXO模型,採用同態承諾隱藏交易中的金額。Zether則利用Elgamal的一種變體形式加密,並附加一個證明,保證交易的有效性。
假如Alice 想要和Zether交互,首先需創建Elgamal密鑰對 , 並發起一個交易向 存部分 ether 。 ZSC 然後創建一個賬戶 , 余額為存款的金額的ZTH。之後,Alice 可以向其它的Zether賬戶秘密發送ZTH.。為了隱藏Alice 的賬戶,Alice 選擇一些Zether賬戶作為匿名集,其它人只能看到是匿名集中的某個賬戶在轉賬。 Alice 同時能將她的ZTH轉成ether.
Zether思路比較簡單,更多細節見參考。
https://medium.com/@loveshharchandani/notes-on-zether-towards-privacy-in-a-smart-contract-world-6c4333f975d
https://crypto.stanford.e/~buenz/papers/zether.pdf
https://ethresear.ch/t/zether-the-first-privacy-mechanism-designed-for-ethereum/5029
⑹ 以太坊智能合約開發:讓合約接受轉賬
在以太坊智能合約開發中,通常會有向合約地址進行轉賬的需求,那麼有幾種向合約地址進行轉賬的方式呢?
有三種方式:
部署合約時轉賬
調用合約提供的方法
直接向合約地址進行轉賬
但有一個問題,以太坊的智能合約默認是拒絕來自任何地址的轉賬,那麼如何讓合約能夠支持接收轉賬呢?
1、部署轉賬
在進行合約開發時,如果想要在部署時,直接向該合約進行轉賬,只需要給構造函數中添加payable修飾符。
示例:
2、執行合約轉賬
執行合約轉賬,則需要給你需要支持轉賬功能的方法添加payable修飾符
示例:
3、直接轉賬
支持直接轉賬,需要藉助後備函數(fallback function),只需要為後備函數添加 payable 修飾符
示例: