Now blogging with Ghost

Yes, I am just a casual blogger. I published my first article on Medium in July 2019 and it was about Ethereum Foundation’s Devcon V Scholars Program. After that, I continue to write when nice ideas pop up, like once a few months.

I chose Medium to start with because it seems to be the easiest platform for blogging beginners. But after I published my second article, I started to want a blog that looks more personalized. I understand that Medium is a great tool especially about gaining new readers naturally, but I still have this urge to create my…


#hacktoberfest2020

Hacktoberfest 2020 wrapped up last weekend. It’s been the first one we’ve done here at Jina (c’mon, we were only born this year), but it certainly won’t be our last!

Hacktoberfest isn’t just about the glamor, prestige and adoration of the masses that comes with contributing to open source. You can also get a T-shirt for your contributions, or have a tree planted in your name. We’re hoping quite a few of our readers managed to hit their Hacktoberfest target and can show off their T-shirt (or sapling) with pride. 👕 🌳

Contribute to Hacktoberfest and get a tree (note…


Jina AI’s First Hackathon Experience

Since Jina was introduced to the public in April 2020, we’ve made a lot of progress on product development. Now, in October 2020, our v0.7.0 release is on the horizon.

But apart from all of this, what’s definitely worth a mention is we also kicked off our first hackathon, Jina X, in September, just 5 months after our project launch.

Let me walk you through it! 💛

Jina 🔍 Community

Jina AI is an open source company with a fairly young product. Right from the get go, one of our goals has been to engage closely with the developer community in this early…


Jina Events

We ❤ open source. Contribute to Jina!

The 2020 Hacktoberfest is starting and this year Jina is joining in!

About Hacktoberfest

Hacktoberfest is a month-long (Oct 1 to Oct 31) event, celebrating open source software and open communities. Participants can get a Hacktoberfest T-shirt if they successfully make 4 valid pull requests (Updated: PRs have to be merged, approved by a maintainer OR labelled as hacktoberfest-accepted) to any Github hosted open source projects that have also opted in with putting #hacktoberfest in their topics. Most importantly, it’s free and open for everyone. All you need to attend is your GitHub account and then register at the official website.

About Jina

Jina


Jina Events

Coming soon on Oct 1, 2020

Every day at Jina AI, we are working our best to live by open source principles, to continuously improve the user experience of Jina, and to introduce it to ever more developers.

On Oct 1, 2020 our Open Source Evangelist, Alex Cureton-Griffiths, will give a talk about how Jina works, demos, examples use cases, and how you, as developers, can use it for your own projects. In addition, our AI Engineer, Joan Fontanals Martínez, will join the talk for further technical discussions.

Jina is an open-source framework that provides an easier way to build neural search on the cloud. Whether…


Not a software developer #1

How much time do you need to build a personal website with a blog module?

I’ve been having this idea in mind for several weeks — building my personal website.

But having another full-time job, you get to plan your time well before you kick-off a side project. Otherwise you might feel like you would never see the end of it.

Now, the question is how? From completely drag & drop solutions to hand-craft the HTML pages line by line, you will have to pick a way.

After some research, I concluded my expectation as below:

  • No drag & drop

A Setup Guide

The article explains how to install and set up Manjaro KDE on your Apple MacBook Pro (Early 2015) Retina 13". If you are a Linux newbie and want to try Manjaro too, this guide is for you!

My First Linux “Work”

Installation

First of all, it’s recommended to use the stable version from Manjaro. You can download the image file at its official website, and can create a bootable USB stick from that. If you never did this before, there is a step by step guide here on the website. It is pretty understandable.

After you create the bootable USB and connect it to your…


是的,我可以去日本參加Devcon5了! 🚀

我之前從沒參加過開發者大會,所以這篇文章不會著墨太多在開發者大會的內容,而是想簡單介紹Ethereum開發者大會所提供的獎學金計畫(Scholars Program)。

英文版本:Devcon5 Scholars Program — The Beginning

是的,我要去參加Devcon5了!

身為一個重度網路使用者,每天早上還沒清醒就是在床上滑個五分鐘的手機,看看天氣,看看郵件訊息。那天早上起床,看到一封新的郵件,開頭是[Devcon 5],腦袋頓時清醒:


Ethereum Yellow Paper Reading Note #1

https://www.flickr.com/photos/ethereumclassic/37724003875

首先,身為一個麻瓜,我先說說我為什麼要虐待(誤)自己。其實這一切都來自於,當時我一念之下,參加了乙太坊開發者大會獎學金計畫,然後屏雀中選後的發展…

有興趣的人們直接可以參考我之前的文章。

乙太坊來歷

比特幣的成功證明了區塊鍊技術在加密貨幣方面的可應用性,但是區塊鍊技術可以被應用在更廣泛的領域。

比特幣白皮書問世的五年之後,乙太坊(Ethereum)的創造者 Vitalik Buterin(很多人又稱他為V神)在2013年11月時首次發表了乙太坊白皮書(Ethereum White Paper),全名「乙太坊:新一代的智慧合約與去中心化應用平台」(Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform)。

什麼是乙太坊黃皮書?

前面所提到的乙太坊白皮書,是一篇偏行銷以及商業導向的計畫報告書。除了長度較為精簡,也沒有過於深入解釋其演算法以及技術架構。

但乙太坊黃皮書就不一樣了。

乙太坊黃皮書(Ethereum Yellow Paper)的全名是「乙太坊:一個安全的、去中心化的通用交易帳本」(Ethereum: A Secure Decentralized Generalized Transaction Ledger)。這個論文的作者是Dr. Gavin Wood,是乙太坊的共同創辦者,也是後來的Parity Technologies的創辦者。

相較於白皮書,乙太坊黃皮書就是將白皮書的更探討其技術層面的版本。是一篇就算是電腦科學專業出身的人都要讀上好幾遍才漸漸懂了的一篇論文。基本上,他就是一篇技術導向論文。乙太坊黃皮書提及了乙太坊被創立的背景,也嚴謹地解釋了乙太坊的運作機制。

乙太坊的目標

創造乙太坊這個平台最重要的目的之一是想要促成使用者之間的交易,尤其針對因為在地理、政治等因素之下使用者之間無法彼此信任的前提。(Ethereum Yellow Paper Byzantium Verion)

為了達成這個目的,乙太坊項目的宗旨是建立一個通用化的科技,這個科技能夠提供軟體開發者一個計算框架,稱作可信任的物件消息傳遞計算框架(a trustful object messaging compute framwork)。在此框架之下,開發者可使用一種新的計算樣式來開發各種應用軟體。

簡單來說,乙太坊是一個可以被用來開發應用軟體的平台。

區塊鍊範式

與比特幣相似的是,乙太坊是一個具體可實現的的區塊鍊範式,但乙太坊並非是以加密貨幣應用為主的區塊鍊。

我們可以將乙太坊的整體看作為一個基於交易的狀態機(a transaction-based state machine)。每當交易產生,然後被執行,狀態(state)就被改變。這裡的交易不一定要是金錢的轉移,它可以是任何能被電腦所有效地代表的事物

之所以叫做區塊鍊,是因為這些所謂的交易(transaction)會被蒐集成區塊(block)。就如同比特幣一般,乙太坊的區塊鍊也會使用雜湊(hash,哈希)演算法加密後形成鍊(chain)的狀態。

然而,這個產生區塊所形成的鍊的過程,一樣需要需要節點(node)來投入運算資源,也需要獎勵來激勵這種貢獻。有言,這個過程類似於礦工開採礦產,因此被廣泛地稱為採礦(Mining)

在乙太坊系統中,也有內建的加密貨幣以作為激勵採礦的獎勵,就是所謂的乙太幣(Ether,ETH)

乙太坊黃皮書之要素概念

根據乙太坊黃皮書,可以概括出了解乙太坊這個平台所需要知道的概念:

  • 乙太幣(Ether, ETH)
  • 狀態(world state or state)
  • 交易(transaction)
  • 區塊(block)
  • 燃料(gas)
  • 交易執行(transaction execution)
  • 合約建立(contract creation)
  • 虛擬狀態機(Ethereum Virtual Machine, EVM)
  • 挖礦(mining)
  • 工作證明(proof-of-work)
  • 延展性(scalability)

然而,下一篇文章中我將會詳細一點解釋這些概念。

一些感想

總括來說,乙太坊黃皮書詳細的解釋了乙太坊區塊鍊的技術結構,還有各種概念。

我們可以看出,乙太坊致力於發展一個可以基於區塊鍊基礎架構來開發應用軟體的平台。因此,這也使得乙太坊有很大潛力成為一個具有影響力的應用軟體生態圈(ecosytem),同時也是社群(community)。

然而,在文中也有特別提及這樣的典型區塊鍊的一個很大的限制 — 延展性(scalability)。因此若要讓乙太坊生態圈能永續的發展,延展性勢必成為乙太坊技術上一個很重要的挑戰與課題。

值得注意的是,目前的乙太坊區塊鍊(Ethereum 1.0)還不是最終版本,致力於解決延展性以及能源消耗問題的Ethereum 2.0已經在測試階段了。

就看在今年的開發者研討會Devcon5,我們還會得到甚麼樣的新消息吧。

參考資料

乙太坊黃皮書(Ethereum Yellow Paper, Gavin Wood)

乙太坊黃皮書中文版(Ethereum Yellow Paper Chinese Version 譯者:崔广斌、高天露、riversyang)

乙太坊黃皮書重寫版(Beigepaper: An Ethereum Technical Specification, Micah Dameron)


寫給科技麻瓜的比特幣白皮書懶人包

其實網路上關於比特幣和區塊鍊的文章已經很多,然而我寫此文章的目的是希望讓非資訊技術背景的麻瓜們也能理解「比特幣白皮書」的概括重點內容並能引起興趣。文章中關於比特幣的內容僅根據「比特幣白皮書」所描述,並且盡量不使用複雜的專有名詞,而以簡單易懂的敘述方式取代之,如有任何建議還請不吝指教。

背景介紹

2008年,中本聰(Satoshi Nakamoto)在網路上發表了一篇名為「比特幣:一種點對點的電子現金交易系統」的論文,英文原文為 Bitcoin: A Peer-to-Peer Electronic Cash System,現在也被稱為「比特幣白皮書」。

其實中本聰到底是誰?雖然網路上有諸多猜測,但目前並沒有一個確切的說法。

在中本聰的論文中,他提出了一種可以實現點對點(P2P, peer-to-peer)交易的電子現金交易系統「比特幣」(Bitcoin)。換句話說,這是一種不需要第三方金融機構作為中間人的交易系統。

比特幣白皮書中所提到的實現比特幣這個交易系統的技術,則是現在大家所知的區塊鍊技術。

為什麼我們需要比特幣?

在傳統的金融交易體系中,進行交易時我們都需要可信任的銀行作為第三方金融機構,以防止金融詐騙。同樣的狀況也適用於現今的電子貨幣,由於受款人無法有效驗證付款人是否重複支付這個電子貨幣,為了避免這種雙重支付(double spending problem)的問題,我們即需要一個中介機構來擔任可信任的中間人。

這樣的運行模式,也被稱為是一種以信任為基礎的交易模式(trust-based model)。

然而,這種依賴第三方機構的交易方式,往往需要使用者支付中間人手續費用。在此情況下,任何金額微小的交易都將因為提高的交易成本而受到限制。實際上,即使有可信任的中間人,也很難完全杜絕重複付款這類的金融詐騙。

比特幣即是中本聰所提出的解決方案。

比特幣基本特性

根據白皮書,比特幣有以下的基本特性:

  1. 比特幣是加密數位貨幣:使用雜湊演算法(hash)和默克爾樹(merkle tree)方式加密
  2. 可短時間內實現點對點(P2P)交易:不須透過銀行作為中間人來驗證交易
  3. 去中心化控制:使用分散式伺服器來確保交易系統難以被攻擊者掌控
  4. 低廉的交易成本:無中介機構處理費,實現大量小額交易
  5. 交易的不可逆性:惡意攻擊者很難竄改或是偽造貨幣紀錄
  6. 隱私保護:比特幣的結構設計能讓擁有或是交易貨幣的人保持匿名

比特幣交易系統機制

(一)公開的交易內容

數位交易中,唯一能避免同一個貨幣被雙重支付的方法是需要一次檢查所有的交易,以次判定哪一個交易是最早發生的。

在比特幣的點對點交易當中,因為沒有了可信的第三方機構來驗證,需要其他的機制來避免重複付款以保障收款人。在比特幣的交易機制中,每一筆交易都會被公開宣告(publicly announced),以此來判定交易的時間順序。

當然,若是需要判定時間,交易資訊上必須要有可信的時間戳記。可是,如何能保證這個時間戳記不被竄改呢?

在比特幣的資料結構下,多筆交易(item)會形成一個區塊(block)。首先區塊會被雜湊演算法(hash,又譯為哈西)加密處理,然後時間戳記伺服器(timestamp server)會在此雜湊(hash)中加上時間戳記並將他公開廣播到網路上。

重要的是,每一個時間戳記都包含了上一個時間戳記在這個區塊的雜湊中,因此形成了一條鍊的結構。這樣的結構下,每當有新的區塊包含時間戳記加入時,都加強(reinforce)了之前的區塊使他們難以被竄改(tampering)。

PSWU

Developer Relations @ Jina AI | From Taiwan | Living in Germany | Passionate for Blockchain & Machine Learning | pswu.dev

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store