還是搞不懂區塊鏈?沒關係,至少要會玩DApp!

最早聽到區塊鏈是在玩Bitcoin挖礦時代,幾年過去了,聽到越來越多關鍵字「虛擬貨幣(Cryptocurrency)」、「ICO」、「智慧型合約(Smart…

還是搞不懂區塊鏈?沒關係,至少要會玩DApp!
“ DApp = frontend + contracts “ reference from ethereum.stackexchange.com

最早聽到區塊鏈是在玩Bitcoin挖礦時代,幾年過去了,聽到越來越多關鍵字「虛擬貨幣(Cryptocurrency)」、「ICO」、「智慧型合約(Smart Contract)」,區塊鏈的技術日新月異,到底技術圈在熱什麼?跟我們這些沒有碰過比特幣或是區塊鏈技術的人,到底會有什麼關係呢?

好消息是,以上那些詞你都不知道沒關係!但你至少要知道什麼是DApp。

前幾天最近很火的CryptoKittes——用以太幣養貓,以7,000萬美元完成了A輪的融資⋯⋯區區一隻又醜又虛擬的小貓咪可以以~340 萬台幣的價格成交。但確實,還是有許多人不知道怎麼玩。看完這系列的文章,你會了解:

  1. DApp 是什麼樣的概念呢?
  2. 中心化 vs 去中心化的世界觀
  3. 玩DApp之前,要做好什麼準備?
  4. 還有什麼DApp好玩?
  5. 我不想花錢,只想體驗一下怎辦?
完全不會想收藏的但本人還是買了4隻

不管未來的阿貓啊狗,至少要讓大家不・再・錯・過!

DApp 全名為 「Decentralized Application 」

就是去中心化的應用。

DApp = frontend + contracts。也就是以一個網頁或手機的前端介面(frontend),搭配一個以區塊鏈技術實作的智慧型合約(contract)。

不禁讓人想到App這個詞開始爆紅的時候,你一定也被家裏長輩都會問著個詞是什麼意思吧。我們熟悉的 App = frontend + server,也就是以一個網頁或手機的前端介面(frontend),搭配一個中心化的伺服器(server)。以往我們熟知的Facebook、Instagram、任何網路遊戲和手遊,都是這樣的架構下創造出來的。

“ App = frontend + server “ reference from Client–server model wikipedia.org

這會是兩個世界觀,下面來舉個生活化的例子。

App不好嗎?為何要有DApp

就以Facebook為例子,以使用的角度來探討,若改成「完全去中心化」會變成什麼樣子吧。

首先,現今已有數以億計的使用者,在沒有付錢的情況下瘋狂的使用Facebook。而Facebook的服務是用中心化的伺服器,因此業者必須承擔了使用者的流量、每筆Po文和照片的儲存空間。

網站營運成本:Facebook付錢。

流量成本每日超過百萬,那Facebook豈不是虧爆了嗎?當然不能,所以Facebook必須想辦法賺錢。隨著時間演化出有個主流的賺錢方式,廣告商付錢給Facebook,把廣告頁面推到想要的使用者眼前。

Facebook利用使用者資料和曝光機會,賺取廣告商錢。

那麼我們使用者的?只要有可以上網的手機或電腦,加上一點點電力,就可以享用所有功能。

使用者的成本近乎為 0。

但使用者有一些風險,由於Facebook擁有這些中心化的伺服器:

任何資料包含Po文、照片、朋友資料(即數位資產)為Facebook擁有,若有天Facebook倒閉後,沒有業者有義務要備份這些資料,你將一無所有。

另一個先不討論個資的問題,很可能在不知情的情況下被做不正當的廣告用途⋯( 近日發生的5,000 萬名用戶的私人資訊外洩事件)

想像一個去中心化的Facebook呢?

這時候沒有單一業者或是個人擁有這個資料庫和服務。

假設有個功能和Facebook一模一樣的DApp,在區塊鏈上執行任何修改資料的行為(Po文、上傳照片或修改感情狀態),使用者都需要付錢,執行每段程式碼上都有代價,每個運算都有標價 —— 而這個錢就叫做Gas(燃料費)。

營運成本,使用者付費,為自己任何一筆資料更新付出Gas。

因為這時沒有人擁有這個資料庫,只有一個公定的加密演算法,誰驗證了資料的正確性,誰就能得到的獎賞。做這些事來維護這個資料的人,就叫礦工(Miner)。

Gas的作用,就是給區塊鏈上俗稱的礦工,作為獎勵。礦工們利用自己機器的運算能力,驗證完資料後寫入一個不可修改的區塊,並且得到使用者付出的 Gas 錢,也就是 Proof of work 的機制。

礦工付出運算能力,賺取使用者為了修改資料付出的費用。
而任何人都可以當礦工

看似簡單的概念,只要信任「加密技術和演算法」,就不用信任「任何單位」來持有所有資料。

有了這個觀念之後,你就會理解到為何玩 DApp 的過程中,每個步驟都要被坑錢 XD(Gas)。不是因為他們是強盜,而是這個去中心化世界的運作方式就是如此。

但也請記住,DApps 不一定要完全取代所有的中心化的服務架構,同一個服務應用,也可以並行交錯使用。

什麼用途適合做去中心化?

區塊鏈技術的特性就是:

任何過去的紀錄都是無法篡改的

若用一個用區塊鏈做的帳本,來紀錄 A 擁有多少顆虛擬貨幣,B 擁有多少顆。然後只提供一種功能,就是「修改帳本」。
將 A 紀錄修改少 50 個,同時將 B 的紀錄修改多 50 個,
礦工確認完合法後,就完成了比特幣的一筆新的交易紀錄。

利用區塊鏈的這個特性,這些數字有他的意義,於是「數位資產」就產生了,這就是比特幣(Bitcoin)。

後來一位比特幣的專欄作家,想到了利用區塊鏈上一個功能——「寫程式碼」,搖身一變,變成可以寫在這區塊鏈上的遊戲規則。從此以後開啟 DApp 的應用的一片天。只要規則寫好(Smart Contract),任何人都無法違背遊戲規則。因此可以透過設計好的規則,去定義、去產生『數位資產』,虛擬貨幣也是這樣產生的。

然而規則設計好之後,不得任意修改。

說了這麼多,下篇將進入玩DApp之前要做的準備。若你期待這類的文章,還請大家以「👏+10」支持,有錯誤的地方請多多指教,感謝!


最後⋯⋯不要懷疑

除了區塊貓,有個區塊草泥馬也只是剛好而已:

https://www.cryptoalpaca.pet/welcome/

[1] 補充:根據科技應用的生命週期(Technology adoption life cycle)現在還算超早期,擁有10個比特幣以上的位址僅佔0.69%(148,282個),實際應用更是小於這個比例。

Innovators 中的 Innovator

請以「👏」支持,感謝!

Read more

掌握幣圈脈動,告別 FOMO 的資訊自動化流程嘗試

掌握幣圈脈動,告別 FOMO 的資訊自動化流程嘗試

幣圈訊息瞬息萬變,是否常常覺得很 FOMO 呢? 常常一個小時不看新聞就可能錯過了新的趨勢或是有用的消息。因此,我嘗試打造一條「獲取資訊自動化流程」。我希望透過以下幾個步驟,將「從 RSS 收集內容 → 摘要與翻譯 → 儲存 → 在發文時快速取得重點資訊」的流程自動化或半自動化,讓我在想要發佈 Twitter (X) 貼文時,能有即時且經過整理過的資訊可供參考。 整體流程概述 目標流程:RSS → Apify → OpenAI → Airtable → Chrome Extension → 快速分享 * 取得 RSS 新聞來源:定期自動抓取最新文章列表。 * 解析並擷取內文(Apify):從原始頁面擷取重點文字段落。 * 整理與生成摘要(OpenAI):運用 AI 將冗長文章化為精簡摘要。 * 儲存到 Airtable:將標題、連結、摘要等資訊結構化存放,方便後續查詢。 * Chrome

最常見的 Git 工作流程 - GitHub Flow

一種簡單的工作流程,適用於快速開發和持續部署的小型專案。 流程 1. 始終從 Main 分支創建功能分支:bashCopy codegit checkout main git checkout -b feature/my-feature 2. 在功能分支中開發,並隨時提交: git add . git commit -m "Implement feature" 3. 開發完成後推送到遠端 git push origin feature/my-feature 4. 發起 Pull Request 並進行代碼審查: * 在 GitHub 上創建 Pull Request。 * 通過代碼審查(Code Review)。 5. 審核完成後合併到

測試驅動開發 (TDD) 與單元測試、整合測試的概念簡述

在現代軟體開發中,測試已成為不可或缺的一部分。不僅能幫助開發者捕捉錯誤,還能促進代碼的模組化和可維護性。本文將深入探討單元測試、整合測試的區別,以及測試驅動開發 (TDD) 的核心流程和實踐技巧,幫助你快速掌握測試的精髓。 也許 AI 程式碼生成工具,最能快速優化寫測試的開發時間。多少來學習一點測試相關的知識。 * 理解單元測試 (Unit Test) 和整合測試 (Integration Test) 的區別。 * 熟悉測試驅動開發 (TDD) 的概念。 單元測試 vs 整合測試 * 單元測試: * 適合測試邏輯簡單且內部不依賴外部資源的功能,例如算法、數據處理函式等。 * 主要用於開發階段,快速檢查某段程式碼的邏輯。 * 整合測試: * 適合測試業務邏輯需要依賴外部模組(例如資料庫、第三方 API)時的交互行為。 * 用於確認系統內部的協作是否無誤,通常在測試環境下執行。 特徵單元測試 (Unit Test)整合測試 (Integration Test)測試範圍單個模組或函式多個模組或系統的整合依賴性獨立,不依賴其他模組或外部資源需要依

PM 加速開發:ChatGPT 到 Cursor 再到 Windsurf 的體驗比較

我是技術背景出身的產品經理,十年前曾是一名寫 Objective-C 的 iOS 工程師。近年來,我利用零碎時間,結合 AI 工具,進行產品發想與概念驗證,並打造一些功能型網站。自 2024 年 6 月起,我的體驗大致可分為三個階段,以下是我的學習與心得分享。 第一階段:ChatGPT 助力,但流程繁瑣 最早是用 ChatGPT 協助產 Code,我一筆一筆貼到我的程式碼下。我要詢問怎麼改動的話,也要將程式碼貼回 ChatGPT,在大量的複製貼上等待的過程,非常慢跟耗時,瀏覽器也會隨著大量的文檔開始變慢。這時候,我從不會到能做出一個聊天機器人網頁,大概花一個禮拜。我也是在這個階段學會了如何用 Vercel 快速部署架站,還有基本的 Git 指令。遇到一點問題常常會卡關很久,要邊做邊學。 第二階段:Claude 加速開發流程 Claude