What Is ERC-20?

ERC-20 是以太坊上的一種標準協議,用於創建和交換可互操作的代幣。它定義了一組規則和函數,使開發者能夠在以太坊區塊鏈上創建代幣,並在兼容 ERC-20 的錢包和交易所中進行交易。 TL;DR 發行 ERC-20 代幣本身不難,如何讓代幣具有價值跟共識性,讓別人認同其價值、營銷手段跟生態系才是關鍵,在做任何投資和操作一定要 DYOR 跟知道其原理和遊戲規則再進場,畢竟生成一個空氣或土狗代幣不用到 2 分鐘。 定義 ERC-20是以太坊的一種協議(智能合約),用於約定和規範代幣的發行。目前主流代幣都是基於這個協議進行開發的,當然比較早期的代幣沒有,而額外延伸了 Wrapped 的方式,下面會說明 WETH 與 ETH 之間的關係。 WETH vs ETH 作為擁有智能合約實現層的 Ethereum 鏈卻沒有自己的 ERC-20 代幣(token) 而 ETH 卻是作為加密貨幣的存在真的不好進行交易,所以衍伸了打包代幣,其目的都是將貨幣或沒有在這條鏈上發行的代幣進行打包,方便使用 ERC-20 標準進行投資與交易。所以後續看到 wrapped 絕大部分都是為了這個目的,可以透過 DEX 進行交換打包代幣等方式換取。 實現 ERC-20協議規定了代幣必須實現的6個函數,包括totalSupply、balanceOf、allowance、transfer、approve和transferFrom。這些函數定義了代幣的基本屬性和行為,使得開發者可以在以太坊上創建自己的代幣,並且可以方便地與其他應用程序集成。 totalSupply:獲取代幣的總供應量。 balanceOf:獲取指定帳戶的代幣餘額。 allowance:獲取擁有者授權給另一個帳戶的代幣數量。 transfer:從當前帳戶轉移代幣到另一個帳戶。 approve:授權另一個帳戶可以從當前帳戶轉移代幣。 transferFrom:從一個帳戶轉移代幣到另一個帳戶,前提是該帳戶已經得到了擁有者的授權。 但最主要還是實現核心幾個介面就是定義為 ERC-20: There are a few core contracts that implement the behavior specified in the EIP: IERC20: the interface all ERC20 implementations should conform to....

May 12, 2023 Â· Yish

What Is BRC-20?

最近幣圈很火紅的 BRC-20 究竟是什麼東西,帶來了何種價值與改進,Ordinals 協議又是什麼,以及對於未來的預測想法。 TL;DR BRC-20 是基於 Ordinals 協議的代幣標準(由社群定義,非認證),Ordinals 協議是讓 satoshi 有編號序列化(使得 satoshi 可以附加而外資料),而BRC-20 則是產生出一段 payload 寫入到 satoshi 內,這個動作稱為銘文(inscribe)。目前所有協議和標準都為實驗性質,然而被炒作跟各種 fomo 導致目前交易量大增讓 BTC 交易費拉高,進而拖垮 BTC 交易速度。 Ordinals 協議是什麼 由軟體工程師 Casey Rodarmor 於比特幣主網上打造的協議 Ordinals,於今年 1 月 21 日正式亮相。它是一個用於編號比特幣的最小單位 Satoshi 的系統,Satoshi 會依照挖掘和轉移的順序進行編號,故將該協議取名為 Ordinals (序數)。 Ordinals 可以讓用戶透過附加額外資料的方式(除了 JPEG 之外,PDF、影片和音檔內容也可以拿來創建 Ordinals。)使個別 Satoshi 成為獨一無二的 NFT。原文連結 Satoshi 是比特幣的最小單位,為 0.00000001 顆比特幣,也就是說 1 顆比特幣為 1 億顆 Satoshi。 然後發生了一件大事… Updated the gitbook to address common questions and my intentions for the experiment going forward....

May 12, 2023 Â· Yish

Zk Rollups & Optimistic Rollups 零知識證明與樂觀證明

先前在很多文章都有提及以太鏈的解決方案 ZK Rollups 與 Optimistic Rollups 但一直對於這兩個 rollups 的概念都很模糊,趁著邦妮發了一篇快速解釋這個機制也順便深入了解與紀錄。 幣圈高手都不一定會!正在起飛的超難趨勢! Rollups 解決方案 Layer 1: 區塊鏈 Layer 2: Rollups 所處 (擴容解決方案) 一個技術的概念的提出勢必是要解決一個實際存在的需求,rollups 主要是用來解決區塊鏈可擴展性問題,由於每個區塊大小跟處理能力是有限的,在高負載情況下會面對壅塞跟高 gas fee 問題(每個人都希望自己交易能夠先被執行),而 rollups 透過將大量交易 bundle 起來之後再一次提交到主鏈上,在不影響主鏈處理能力情況下提高吞吐量跟降低交易手續費。 Rollups 機制都是在鏈外或鏈下進行計算和處理後再將交易數據提交到鏈上,從而解決交易吞吐與費用問題。 鏈下處理通常指的是將某些計算或交易處理放在與主鏈不同的另一條鏈上。 鏈外處理則是將某些計算或交易處理放在完全獨立的環境中進行處理。 TL;DR ZK Rollups: (鏈外) 在鏈外將大量交易 bundle 一起,並透過零知識證明(特殊算法)計算處理後生成證明(Validity Proof),來證明數據正確性(交易的处理和验证是在本地计算机上使用zk-SNARKs或STARKs等技术生成证明),最後再將證明提交到主鏈上,提高處理效率,降低主鏈負擔,每個人都可以驗證證明正確性。 Optimistic Rollups: (鏈下) 交易提交到鏈下(rollup 鏈)的 Rollups 合約(智能合約)(不是直接提交到主鏈上),將交易 bundle 後使用 hash 代表區塊所有交易,提交 hash 到 rollup 鏈上。合約會有挑戰期,一定時間內如果有人提交證據證明 hash 是錯誤的,合約會 rollback 整塊交易,並按照交易順序重新執行交易,如沒有人提出則認為有效,將所有交易提交到主鏈上。(接受並產生交易塊與證明的人必須先提交保證金進行運算,如果交易正確則獲得獎勵,而被挑戰後確定錯誤則會沒收保證金並且提出挑戰者會獲得獎勵)...

March 14, 2023 Â· Yish

What is oracle(預言機)?

定義 由於區塊鏈世界本身無法調用外部API,是封閉世界,需透過預言機才能知道外部服務和API資料並且加以取用。 預言機本身也是一種智能合約,他的資料都是來自於外部世界的數據和整理過的數據並且寫到鏈上,提供給其他使用的智能合約外部資訊與內容。 智能合約在運行時只能運行已經確定的數值跟內容,無法動態從 API 取得資料處理,預言機則是與外部API取回資料後寫入鏈上,讓其他智能合約調用它取得所需的API資料提供使用。 詳細補充知識點: 区块链是一个确定性的、封闭的系统环境,目前区块链只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。 区块链是确定性的环境,它不允许不确定的事情或因素,智能合约不管何时何地运行都必须是一致的结果,所以虚拟机(VM)不能让智能合约有 network call(网络调用),不然结果就是不确定的。 因为智能合约无法主动去获取链外的数据,只能被动接受数据。 使用情境 即時獲得當前交易對報價或依賴外部服務即時資訊、預測市場或其他即時內容獲得執行合約、DeFi 項目。 比如金融衍生品交易平台、借贷平台、快递追踪/IoT、稳定币、博彩游戏、保险、预测市场等,目前最主要的场景就是 DeFi。 中心化預言機與去中心化預言機 中心化 provable(oraclize) 去中心化 DOS network Chainlink 目前最流行的預言機,以太社群推薦。提供 LINK TOKEN 作為節點獎勵。成為節點條件是必須先提供一定的 LINK TOKEN 作為抵押獎勵來確保資訊正確性,如果惡意竄改則會沒收抵押。 參考 https://zhuanlan.zhihu.com/p/52369816 https://zombit.info/chainlink/ https://chain.link/education/blockchain-oracles https://youtu.be/Tvw9NghXi6U

September 7, 2022 Â· Yish

閃電貸原理與範例

原理 透過以太幣交易原子性,要交易全成功否交易全失敗。 調用智能合約也具有原子性,要全調用成功修改數值,否調用全失敗。 不會出現部份成功部分失敗。 保證在同一交易內歸還本金。 全成功還本付息,失敗則當作此交易沒有存在。 理想狀況 閃電貸借入 100000 USDT DEX A(交易所A) 買 2000@50(2000顆$50 token) DEX B(交易所B) 賣 2000@55(2000顆$55 token) 歸還 100000 USDT + 100 USDT(利息) 獲利 9900 USDT 必須要在同筆交易區塊內完成(透過自己撰寫智能合約並調用合約達到一次交易完成) 攻擊步驟 目的: 攻擊有漏洞的智能合約竊取利益 藉由 dydx 借出 10000ETH 5000ETH 抵押到 compound 借出 112 WBTC 1300ETH 轉入 bZx(主要攻擊的漏洞合約) 透過 5 倍槓桿賣出 ETH 買入 WBTC bZx 為了完成此筆交易,透過 kyber network 協議在 uniswap 內大量拋出 ETH 買 WBTC uniswap WBTC/ETH 交易對池不夠深 -> 價格被拉升 38....

September 7, 2022 Â· Yish

What is ipfs?

困境 目前 web2 都是以中心化服務為基礎設計,舉例為 youtube, google 等網路巨頭所提供之網路服務, 為什麼會要中心化,就是為了體驗的問題,隨時可以拜訪、低延遲等好處,但這也帶來另一個隱憂: 如果中心巨頭服務器斷線或關閉,或遭到監管等問題則完全無法拜訪。 解決方案 ipfs(interplanetary filesystem): 星際檔案系統,有點類似以前的 p2p 跟 BT節點機制,但具備了更多功能。 這邊要特別注意 ipfs 本身與區塊鏈是沒有任何關係的,只是前者又結合了區塊鏈,而後者許多項目為了保持去中心化 思維而大量採用 ipfs 作為檔案儲存媒介。 傳統來說,我們要拜訪一張檔名為 512.png 的檔案,我們會在網址上輸入https://yish.dev/512.png, 這樣我們就能拜訪到這張圖片,而這樣子的行為則被稱為 地址定址(location based addressing) ,一旦服務器失效或網址失聯,則永遠無法拜訪到這張圖片。 但在此之前是不是有其他人拜訪過這張圖片而他電腦不論是緩存或是某地有儲存著備份,但我們卻無法拜訪。 而 ipfs 透過採用 內容定址(content based addressing) 用來解決這樣子的問題。 原本地址定址是需要由你告訴電腦到哪個位置尋找資源,而現在採用內容定址則是告訴它你要什麼資源。 檔案內容都會有一個雜湊值: 例如 hjjsdfh7T124jAAjruuXNnnna14,類似唯一特徵或指紋。 而當你需要下載某個檔案時,只需要詢問網路: 誰有含有這個雜湊值的檔案? 這個雜湊值是每個檔案唯一,也可以進行二次驗證,達到防偽功能。 增加網路可利用性,由於每個檔案都是唯一雜湊,也就是可以刪除重複檔案。 技術細節 實作 每個 ipfs object 含有基礎兩個內容 超過 256kb,切割檔案並且進行連結 也類似檔案系統與資料夾關係 支持檔案版本管理(類似於 git 概念) 當每次提交一個檔案上去時,都會是有一個 commit 動作,告訴 ipfs 你提交哪個檔案版本。 弱勢 當網路提供節點全部失效時則拜訪不到檔案(如同BT種子沒人上傳一樣)...

September 4, 2022 Â· Yish