《夜.典範人物語錄.阿里山森林中等待的野宴》
* 人唯一的引導,就是他的良心。—-丘吉爾
* 最輝煌的時刻消逝得最快!—-丘吉爾
* 勇氣是能站起來侃侃而談。勇氣也是能坐下來靜靜傾聽。—-丘吉爾
* 你有敵人嗎?很好,那表示你擁有自己所堅持的價值觀。—-丘吉爾
* 一句謊言需要無數更大的謊言來遮掩。—-丘吉爾
* 偉大的事情很簡單,而且大多數都可以被凝結成一個簡單的單詞:自由; 公正; 榮譽; 責任; 仁慈; 希望。—-丘吉爾
* 種子必須仔細地挑選,也必須撒在良好的土壤上,加上小心周到地照料。—-丘吉爾
* 就死後的名聲而言,惟一的盾牌,就是廉潔的行為和真摯的感情。—-丘吉爾
* 勇氣,是人類最重要的一種特質,倘若有了勇氣,人類其他的特質自然也就具備了。你若想嘗試一下勇者的滋味,一定要像個真正的勇者一樣,豁出全部的力量行動。這時你的恐懼心理,將會為勇猛果敢所取代。—-丘吉爾
* 在(尼羅河上的戰爭)中,邱吉爾寫下英國政治中的某些陰暗面、殖民主義的可憎面目。他最感憤怒的是,英軍怎麼可以對馬赫迪的陵墓和遺骨做出極其侮辱的行為。在他的筆下,勝利的英軍不僅卑劣、野蠻、慘無人道,也對當地人民造成莫大侮辱。而且他批評的不只是手段,還包括戰爭的必要性。
他在後來出版的書中寫了一段話:「戰爭是為了懲罰一些苦行僧、一些善良的人,戰爭是罪惡的行徑。」並且批評不該對人們宣傳英國進入蘇丹是為了把人民從獨裁者的枷鎖下解放出來,「你這個解放者太不受歡迎了,你們所有的說法都是偽善。」
這是一個二十四歲年輕人的巨大成就。他不是歷史學家,卻有歷史學家的訓練,邏輯精確、素材豐富。歷史學家不會上戰場,他們對戰爭的解釋是二手貨。
在寫作「尼羅河上的戰爭」過程中,邱吉爾的人生也因此走到一個十字路口;他曾經以大英帝國為榮。在印度服役時,他有點同情當地民眾的起義反抗,可是還沒有對大英帝國有如此強烈的批判。到了這場蘇丹戰爭時,他已忍無可忍了。
當邱吉爾從以祖國為榮到以祖國為恥,差不多就是他告別從軍之路的時候了。他決定要和大英帝國的殖民部隊劃清界線,離開部隊結束他的軍旅生活。
他的正義感,讓他沒有辦法再接受這些屠殺事件。我們從來不知道,如果沒有這場蘇丹的戰爭,他可能會一直留在軍隊裡。
每一個人,可能在年輕的時候都會碰到這樣一個關口,跨過了,你從此將成為不一樣的人。
你可以選擇挺住良心,揭露堂堂文明的英國人如何對待已經死去的反對派領袖,把他的腦袋從軀體上砍下來,士兵用手把玩他的骷髏頭, 一路從蘇丹至埃及︙︙將其陵墓夷為平地⋯⋯
你也可以選擇遮掩,從此熟悉妥協的味道,此生再無正義感的糾結。
邱吉爾選擇了良心。
他放棄父親生前唯一認為他會做的事,他淋漓盡致抒發了內心誠實的見解,拒絕當偽善者,並且勇敢結束了軍旅生涯。當時的他並不全然知道自己的下一步在那裡,但是他知道自己必須站在誠實的一方。
而「拒絕偽善」,從此貫穿了邱吉爾的一生。——-陳文茜《文茜説世紀典範人物》
* 回首南非被俘擄、逃獄的往事,邱吉爾曾寫下幾段話:
「一八九五年到一九○○年之間,是我一生最豐富多彩的一段時間。回首往事,我真誠的感謝至高無上的上帝,賦予了我生存的機會。我所經歷的每一天可能都是危險的日子,但也是好日子,使我一天比一天好,我的生活充滿了坎坷,充滿了危險,我時時感覺到變幻無常,但
我同時感覺到我內心充滿了希望。」
「來吧!世界上所有年輕人,現在最需要你們去填補被戰爭奪取的一代人的空缺,你們不能失去一分一秒,你們一定要在生命之戰中找到自己的位置。」
「一個人的二十歲到二十五歲,都是你們大顯身手的時期,不要安於現狀,即使你有顯赫的家庭。承擔起你們的責任,世界是你們的,機會是你們的,不要只想繼承你前輩的遺產,請重新舉起光榮的旗幟,向你的人生挺進。如果你的前方有敵人,就進攻打敗他們,絕對不能向失敗低頭。」
在那段時間、他二十六歲之前,歷練出了後來我們所看到領導二次世界大戰、在英國那場戰爭中頑強抵抗希特勒的邱吉爾。
這段史實很重要,因為他一步入政壇的時候,已經是戰地英雄了, 他很快就當選。他不必像一般年輕的國會議員,要依靠那些元老提拔,保守黨反而還要依靠他才能贏得大選。
這正中邱吉爾的下懷。
二十六歲時,他首次當選了下議院議員,邁出他從政生涯成功的第一步。
貴族子弟被俘虜卻沒有被殺,勇敢的逃獄過程勇氣十足,成為他從政的資本,讓他毫不猶豫的站上政治舞台,成為後來所有人認識的邱吉爾。—-陳文茜《文茜説世紀典範人物》
* 當張伯倫到德國和希特勒達成協議時,邱吉爾召集一群保守黨名人開會,勸他們聯名致函張伯倫,要求他不要破壞捷克的安全,不要放棄捷克。可是與會者都不願意簽名。
根據參與這個午餐會的前首相阿斯奎斯的女兒後來回憶,邱吉爾的眼裡飽含淚水,他已經預見了未來的戰爭。
因為在那幾年,他比任何人都認真研究希特勒。
張伯倫在德國會議結束後回到英國,舉國上下歡喜若狂的歡迎他, 認為他帶來了時代的和平。沒有人支持邱吉爾,整個英國都認為張伯倫是偉大的。是的,他丟掉了捷克,但換取了英國的安全。
而「多嘴」的邱吉爾在那個時刻又說了一段實話:
我們在歷史上經過歐洲軍事遭受破壞的一個可怕階段,那就是第一次世界大戰。有一天如果我們被納粹控制、落入他的勢力範圍、受到他的指使,所有的人才會知道,我們今天所謂的“和平”是什麼意思。
他提出嚴厲的警告:
現在歐洲的平衡被打亂了,不要以為這件事會就此結束,這不過是遞給我們的苦酒的第一口,我們正在喝下第一口苦酒,現在你們只是嚐嚐味道罷了,除非我們振作,恢復我們的戰鬥活力,英國才能像往日一樣站起來,為保衛自由而戰!
他特別與一個資深的下議院議員交換,要求上台演說(其實他自己也很資深,只是他被擺在後座冷凍起來),那場演說一針見血、痛快淋漓,後來常常被引述。
但是當時在下議院響應的人不僅寥寥無幾,甚至好幾次被打斷,噓聲不斷,讓邱吉爾差點講不下去。
才不過半年左右,希特勒的軍隊就開進布拉格,捷克、斯洛伐克都被占領,義大利也占領了阿爾巴尼亞。這是一九三九年的春夏之交。小氣鬼張伯倫在他的日記裡這麼寫道:「戰爭的可能性越大,邱吉爾進入政府的機會就越多。」
他想的不是歐洲和平、英國可能面臨戰爭,也沒有預見二次世界大戰的可能性,他只想到不可以讓邱吉爾進入政府,那個滔滔不絕的傢伙有機會奪了他的光彩。
到了一九三九年九月一日,德國進攻波蘭,第二次世界大戰全面爆發,開始對猶太人的全面屠殺。
那天,英國才知道大事不妙,連張伯倫都知道!在德軍進軍波蘭的當天晚上,張伯倫請大政敵邱吉爾到首相官邸面談。
張伯倫問邱吉爾:「你願意進入政府,成為戰時內閣閣員嗎?」
這時就是考驗了,如果邱吉爾和張伯倫同樣小氣,就會拒絕,讓張伯倫難看。不過歷史人物跟小氣鬼的差別就在這裡,邱吉爾同意了。
隔兩天,一九三九年的九月三日上午,英國對德宣戰,下午法國對德宣戰。邱吉爾又回到他海軍大臣的內閣閣員職位上。
一九四○年四月四日,張伯倫還異想天開的說:我對勝利的信心比剛開始增加十倍,因為我並不認為德國敢挑戰我們的軍隊。
就在他大言不慚宣布能夠以冷靜沉著的心情面對所有局勢,而且英國已經有所準備之後的第五天,納粹向丹麥和挪威發動進攻,而且迅速占領這兩個國家。
波蘭、捷克斯洛伐克這些中歐國家,英國人不是那麼看得起,也覺得跟自己沒有關係,可是打到挪威與丹麥,他們就覺得息息相關,因為某一個程度上,他們是同樣高尚富有的歐洲國家,那種心情是完全不一樣的。
所以當丹麥與挪威這兩個國家淪陷以後,澈底打消英國和法國人對德國的幻想,也激起全英國朝野上下對張伯倫的極大憤慨。
當時有一位英國歷史學家寫道,英國民眾譴責身居高位的人物,遷怒於張伯倫,在整個下議院,不管是哪一黨的議員都非常憤怒,敵意的浪潮完全對準張伯倫。
其中一名國會議員說:「現任政府,你們在這裡生活太久了,也做不出什麼好事,你們滾蛋吧!讓我們和你們從此一刀兩斷,看在上帝的面子,請你走吧。」 —-陳文茜《文茜説世紀典範人物》
——-圖片:阿里山山豬亮野宴。我在14年前偶遇的原住民朋友。2009年八八風災,山豬亮以一個發電機充電手機向我求救,後來我們通報救援單位,國軍把他們全村救出來。從此念舊的他,年年送原住民香腸年節禮盒,太客氣了。
封鎖期間,樂觀、沒有客人上門的他,自Hi擺了一桌空空的野宴。拍照給我,問:文茜姐,何時光臨?
同時也有2部Youtube影片,追蹤數超過2,300的網紅瑪啡因樂團Maffine,也在其Youtube影片中提到,2019年,好樂團與瑪啡因一起合作發行〈我們一樣可惜 Full Band ver.〉、於台北及台中 Legacy 演出「我們一樣__。」專場並發行現場實錄數位專輯,更一起參與台南甘噪祭的演出。超過半年的工作期之後,現在的好樂團與瑪啡因仍然時常提起這一段充實又快樂的時光,這段友誼之愛......是不會...
林函潔曾經 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] Tornado Cash 實例解析
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Tornado Cash 是一個使用 zk-SNARKs 建立的 Dapp,它實現了匿名的代幣交易,這篇文章就用一些程式碼片段,來分享它是怎麼運作的。
本文為 Tornado Cash 研究系列的 Part 3,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:
Part 1:Merkle Tree in JavaScript
Part 2:ZKP 與智能合約的開發入門
Special thanks to C.C. Liang for review and enlightenment.
我們知道在以太坊上的交易紀錄都是公開的,你可以在 etherscan 上看到某個地址的所有歷史交易紀錄,當然地址是合約的話也是一樣。
也許創建一個新的錢包和地址就好了?假設一個情境是 Alice 想要匿名傳送 1 ETH 給 Bob,Alice 原本的錢包是 A,但她不想讓 A 地址傳給 Bob 的交易紀錄被看到,所以 Alice 創建另一個錢包 B,顯然 B 錢包是空的,Alice 必須把 A 錢包的 1 ETH 傳到 B 錢包,再用 B 錢包的地址傳給 Bob。
但問題就在於,只要追蹤 B 錢包的地址,就能看到 B 的歷史交易紀錄中 A 錢包曾經打幣給 B 錢包,於是到頭來交易還是被追蹤到了。
Tornado Cash 的解決方案,簡單來說,它是一份合約,當你要匿名傳送代幣時,就把一定數量的幣丟進合約裡 (Deposit),此時你會拿到一個 note,長得像這樣:
tornado-eth-0.1-5-0x3863c2e16abc85d72b64d78c68fca5936db2501832e26345226efdfb2bc45804977f167d86b711bb6b4095ddaa646ec93f0a93ac4884a66c1d881f4fc985
note 就是一串字串,擁有這字串的人,就能提領 (Withdraw) 剛剛傳入合約的代幣。握有 note 就代表擁有提款的權利,所以 note 一旦被別人知道,別人就可以把錢給提走。
其中,後面那段亂碼,本篇文章就以「秘密」來稱呼,這個秘密是由 secret 與 nullifier 組成,而這兩個都是在鏈下隨機產生的亂數。
因此 Tornado 的合約基本上會有兩個函式:
Deposit
Withdraw
有興趣的人可以先到 Dapp 上先玩一次看看,使用 Goerli 測試網,這裡可以領 Goerli 的代幣:https://goerli-faucet.slock.it/
Deposit
我們就從 Deposit 開始說起,簡單來說, Deposit 是將資料儲存到合約的 Merkle Tree 上。
剛剛提到的秘密,它是在鏈下產生,由 secret 跟 nullifier 組成,合在一起之後也稱作 preimage,因為我們要對這個 preimage 進行 hash,就會成為 commitment。
合約中 Deposit 如下:
deposit 除了傳送代幣到合約之外,需填入一個參數 _commitment。
我們對 preimage 使用 Pedersen 作為 hash function 加密後產生 commitment,以偽代碼表示如下:
const preimage = secret + nullifier;const commitment = pedersenHash(preimage);
這個 commitment 會成為 Merkle Tree 的葉子,所以合約中的 _insert(commitment) 來自 MerkleTreeWithHistory.sol 的合約,將我們的資料插入 Merkle Tree,然後回傳一個 index 給你,告訴你這個 commitment 在 Merkle Tree 上的位置,最後一起發布成公開的 Deposit 事件。
我們知道 MerkleTree 是將一大筆資料兩兩做雜湊後產生一個唯一值 root,這個 root 就是合約上所儲存的歷史資料。
root 的特性就是只要底下的資料一有更動,就會重新產生新的 root。
所以只要一有用戶 deposit ,就會插入新的葉子到 Merkle Tree 上,於是就會產生新的 root,所以在合約中有一個陣列是用來儲存所有的 root 的 roots:
bytes32[ROOT_HISTORY_SIZE] public roots;
roots 是用來紀錄每個 deposit 的歷史,每一次 deposit 都會創造新的 root,而所有 root 都會被儲存進 roots 裡,於是當你要提領的時候,就要證明你的 commitment 所算出的 root 曾經出現在 roots 裡,代表曾經有 deposit 的動作,因此才可以進行提領。
Withdraw
在 Deposit 之前 Tornado Cash 就會在鏈下產生秘密後交給使用者,擁有這個秘密的人等於擁有提款的權利。
提領的時候,秘密會在鏈下計算後產生 proof,proof 是 withdraw 需要的參數,所以只要確保這個 proof 能夠被驗證,那麼代幣的接收地址 (recipient) 就可以隨便我們填,只要不填上當初拿來 deposit 用的地址,基本上就做到匿名交易的效果了。
也就是說,產生這個 proof 並提交給合約,能夠證明此人知道秘密,但卻不告訴合約秘密本身是什麼。
function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant;
我們可以清楚看到 withdraw 函式裡沒有接收有關秘密的任何資訊作為參數,也就是秘密不會與合約有所接觸,也不會暴露在 etherscan 上。
回顧 ZKP 所帶來的效果:
鏈下計算
隱藏秘密
在 Tornado Cash 的例子中,我們用秘密來產生證明,完成的鏈下計算包括:
將秘密 hash 成 commitment
算出 Merkle Tree 的 root。
以下是簡化後的 withdraw.circom:
template Withdraw(levels) { signal input root; signal input nullifierHash;
signal private input nullifier; signal private input secret; signal private input pathElements[levels]; signal private input pathIndices[levels];
component hasher = CommitmentHasher(); // Pedersen hasher.nullifier <== nullifier; hasher.secret <== secret; hasher.nullifierHash === nullifierHash;
component tree = MerkleTreeChecker(levels); // MiMC tree.leaf <== hasher.commitment; tree.root <== root; for (var i = 0; i < levels; i++) { tree.pathElements[i] <== pathElements[i]; tree.pathIndices[i] <== pathIndices[i]; }}
component main = Withdraw(20);
從上述代碼就可以看出這份 circuit 的 private 變數有:
secret
nullifier
pathElements
pathIndices
而 public 變數有:
root
nullifierHash
如同我們一開始說過的,秘密就是指 secret 與 nullifier。這裡進行的鏈下計算就是對 secret 與 nullifier 雜湊成 commitment。而使用的 hash function 叫做 Pedersen。
在進行 Merkle Tree 的計算之前,我們還檢查了 nullifier 雜湊後的 nullifierHash 跟 public 變數 nullifierHash 是不是一樣的。
hasher.nullifierHash === nullifierHash;
接下來,開始計算 Merkle Proof,用意是確認經過雜湊後的 commitment 有沒有出現在 Merkle Tree 上,所以我們的 private input 還有 pathElements 與 pathIndices(詳情參考 Part 1 Merkle Tree in JavaScript),讓它跑一趟 Merkle Proof 的計算,最後就能夠算出一個 root,再確認計算後的 root 與我們的 public 變數 root 是否一樣。
tree.root <== root;
於是我們就能產生一個 ZKP 的證明 — 證明 private 變數:secret, nullifier, pathElements, pathIndices 可以計算出 public 變數:root 與 nullifierHash。
把這個證明提交給合約,合約透過 Verifier 驗證 proof 是否正確,以及必須事先確認:
public 變數 root 有在合約的 roots 裡面。
public 變數 nullifierHash 在合約中是第一次出現。
以下附上完整的 withdraw 原始碼:
必須注意 ZKP 是向合約證明使用者填入的 secret 和 nullifier 可以計算出某個 root,但無法保證這個 root 曾經在合約的 roots 歷史上。
所以合約的 withdraw 中,除了 verifyProof 之外,還要事先檢查 ZKP 算出來的 root 是不是真的在歷史上發生過,所以需要 isKnownRoot 的檢查:
function isKnownRoot(bytes32 _root) public view returns(bool)
必須先檢查 isKnownRoot 後才能進行 verifyProof。
經過 verifyProof 驗證成功後,合約就開始進行提款的動作,也就會將代幣傳到 recipient 的地址,最後拋出 Withdrawal 的事件。
nullifier 與 nullifierHash
為什麼我們的秘密不是只有 secret 還要額外加一個 nullifier?
簡單來說,這是為了防止已經提領過的 note 又再提領一次,也就是所謂的 double spend。
require(!nullifierHashes[_nullifierHash], "The note has been already spent");
可以看到 withdraw 需要填入參數 nullifierHash,跟 isKnownRoot 一樣的狀況,我們需要對電路的 public 變數先經過一層檢查之後,才能帶入到 verifyProof 裡面。
nullifierHash 可以理解為這個 note 的 id,但它不會連結到 deposit,因此可以用來紀錄這個 note 是否已經被提領過。
所以當 verifyProof 驗證成功之後,我們要紀錄 nullifierHash 已完成提領:
nullifierHashes[_nullifierHash] = true;
有關為什麼需要事先檢查 public 變數後,才能帶入 verifyProof ,可以參考 Part 2:ZKP 與智能合約的開發入門 提到的 publicSignals 的部分。
附上 Tornado Cash 的架構圖:
簡化版的 tornado-core
tornado-core 的程式碼很簡潔漂亮,所以我模仿該專案自己實作一遍:
simple-tornado:https://github.com/chnejohnson/simple-tornado
這份專案只完成了 tornado-core 的核心部分,不一樣的是我的開發環境使用 hardhat 與 ethers 寫成,而 circom 與 snarkjs 使用官方當前的版本,合約用 0.7.0,測試使用 Typescript 。
比起兩年前的 tornado-core ,simple-tornado 使用的技術更新,可能更適合初學者理解這份專案,但是它有 bug…我在 issues 的地方有紀錄說明。
在開發的過程中,我的順序是先從最小單位的 MiMC hash function 開始玩,發現必須 javascript 算一次 hash、solidity 算一次、circom 再算一次,確保這三個語言對同一個值算出同樣的 hash 之後,才能放心去做更複雜的 Merkle Tree。
總結
我們可以看到 Tornado Cash 簡單的兩個函式:Deposit 與 Withdraw,透過將代幣送入合約後再提領到另一個地址的流程,應用 ZKP 達成匿名的交易。
除了斷開 Deposit 與 Withdraw 的地址關聯性之外,Tornado Cash 還有做了一層「藏樹於林」的隱私防護,這部份的解釋就請參考 ZKP 讀書會 Tornado Cash。
網路上很多關於 ZKP 的文章或專案都是在 2019 年後出產的,經過許多人對這項技術的嘗試,讓我們對 ZKP 有了更清晰的理解,如今兩年後,開發工具也變得更加成熟,期待未來在 web 隱私議題上能看到更多 ZKP 大放異彩的應用。
原始碼
tornado-core
simple-tornado
參考資料
ZKP 讀書會 Tornado Cash
Tornado Privacy Solution Cryptographic Review
Tornado Cash 實例解析 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
林函潔曾經 在 守望家園.改變金門-董森堡 Facebook 的最佳解答
#蚊子空間在哪裏 #番外篇|被故意遺忘的瑰寶 – 雙乳山坑道
你有聽過或走過雙乳山坑道嗎?它是金門在國共冷戰時期第一個列名古蹟的戰地工事,深具戰地文化資產價值且極有潛力成為金門獨有觀光資源的地方,本次的 #蚊子空間番外篇 要來談的不是那些浪擲公帑的區域,而是要來聊聊「雙乳山坑道」,這處被故意遺忘的蒙塵瑰寶。
雙乳山坑道位於金門蜂腰地帶,2015年時金門戰地史蹟學會出版《尋找金門老營區》一書時,就曾經呼籲金門縣政府與金管處聯手保護經營此處景點,做為金門的戰地史蹟新景區,未料2018年金湖鎮公所進行司法大道工程時,竟然發生承商挖斷坑道的意外。
在雙乳山坑道爆發遭挖斷的事件後,媒體爭相報導此樁憾事,時任縣長的陳福海急忙宣佈原訂於雙乳山的「行政園區」停案,縣府行政大樓將於原址重建,試圖擺脫「行政園區」未來在施工後可能破壞史蹟的責任。未料,楊鎮浯縣長上任後縣府還是將「行政園區」轉規劃為「藝文特區」。
在2018年友人舉發挖斷坑道的狀況後,森堡急函陳情信至文化部長信箱,當時文化部文資局的局長施國隆、副局長邱建發還二度來訪金門,並親抵雙乳山坑道會勘,其後對於此坑道的戰略地位、歷史價值、工藝技法讚不絕口,最終雙乳山通過文資審查,成為金門在冷戰時期第一個列名古蹟的戰地工事,但是雙乳山坑道通過文資審查後卻閒置至今,絲毫不見文化與觀光單位善加利用,遲至今日,依然未見主管機關對其有古蹟修復或再利用計畫相關的擬定,我們看到的只有引來爭議的藝文特區先期規劃。
就長期帶領國內外媒體去走訪此處坑道的森堡認為,以雙乳山坑道南北分治(乳北營區劃歸金門縣政府、乳南劃歸金管處)目前的現況,其實有待二個單位統合經營。坑道內部僅需簡單的清潔即可,部份地方則需結構加強和坍塌補灌。坑道參訪可先行進行導覽解說人員培訓,再採高價收費制度、輔以完備的保險計劃,並以小群(30人以下)限時限額帶入深度導覽,以原汁原味的方式呈現坑道特色,相信坑道必可成為地區全新的觀光景點。
營區或史蹟活化一直都有好大喜功、大興土木的迷思,那耗資了四千八百多萬的工程經費的太武發電廠就是鐵錚錚的例子,但事實上如何深化在地故事與特色,讓我們這些珍貴且迷人的戰地遺產獲得妥善的發揮利用,才是金門急需經營的重點,不要只想成為誰的誰,我們應該要成為我們的我們,別讓眾多的朋友笑著金門是捧著金飯碗乞丐。
🌐 延伸閱讀:森堡於記者時期所寫作的雙乳山坑道專題報導,當時森堡即建議行政園區遷址他地:
https://www.kmdn.gov.tw/1117/1271/1272/256286/
——
附註說明:雙乳山區域曾在經濟部委辦台大的金門地下水資源調查中,研究團隊認為當地是金門西半島重要的地下水資源保護區。此外,雙乳山自古以來也是金門島中央的重要林區,更是瓊林村蔡氏開基龍脈等重要價值,無奈在失當的都市計畫中,卻將這片重要的丘陵低地林帶劃為機關用地。
🌐 延伸閱讀:報導者|金門水井普查:缺水隱憂、水質劣化都是自己造成 https://www.twreporter.org/a/kinmen-water-resoure
——
「蚊子空間在哪裏?我有話想講」由此去:https://forms.gle/pDTvhU31NVPLMMHW8
林函潔曾經 在 瑪啡因樂團Maffine Youtube 的最讚貼文
2019年,好樂團與瑪啡因一起合作發行〈我們一樣可惜 Full Band ver.〉、於台北及台中 Legacy 演出「我們一樣__。」專場並發行現場實錄數位專輯,更一起參與台南甘噪祭的演出。超過半年的工作期之後,現在的好樂團與瑪啡因仍然時常提起這一段充實又快樂的時光,這段友誼之愛......是不會錯的!
說到〈愛錯〉......兩團在去年的演出現場曾經一起 cover 這首歌,當初就說好演出一週年之時要釋出。時間過得好快,這首隱藏版歌曲即刻發佈!
P.S. 此曲並未收錄於《Live in Legacy 好樂團 x 瑪啡因 : 我們一樣__。》數位專輯中
-----------------------------------------------------------------------------------------------
▌《Live in Legacy 好樂團 x 瑪啡因:我們一樣__。》專輯
► 2019.5.22 數位發行
● Spotify - https://reurl.cc/ALRD3
● KKBOX - https://reurl.cc/9L5yd
● Apple Music - https://reurl.cc/r41n4
● 網易雲 - https://reurl.cc/a8N7Z
我也想為我所愛的負責啊!
而溫暖脆弱的你,能繼續堅持下去嗎?
我們一樣可惜,我們一樣 __。
2018年5月,好樂團於瑪啡因《我就這樣在這裡等著》EP 發片場,首度合作演出,以 Full Band 形式重新詮釋好樂團的創作曲〈我們一樣可惜〉。雙主唱各具特色的聲線,加以不同樂器交織的聲響,被賦予不同面貌的〈我們一樣可惜〉,在演出後獲得了許多迴響。帶著愉快的合作經驗與默契,好樂團與瑪啡因決定將這個版本紀錄下來,同時也悄悄構思起另一場合作度更高的演出⋯⋯
2019年2月22日,《好樂團 x 瑪啡因:「我們一樣__。」》企劃專場,於 Legacy Taipei 正式舉行。
這不是一場兩個樂團的共同演出,而是「一個團隊」的專場演出。從演出主視覺的延續、曲目流程的精心安排、舞台佈置與造型設計,直到行銷規劃等細節,在在可見好樂團與瑪啡因作為單一團隊的合作默契。在這場演出,除了能從兩團獨自的曲目中,聆聽到個別的初始風格外,更能在重新編曲的合作曲目中,感受到兩團在音樂展演上不同過往的現場魅力。
如果可以,我們願與脆弱卻溫暖的你,在更多的聲響中面對遺憾;
如果可以,我們願將最為珍貴的現場時刻,毫無保留的完整紀錄。
在 Legacy 創下完售佳績後,好樂團與瑪啡因合作發行《Live in Legacy 好樂團 x 瑪啡因:我們一樣__。》數位專輯,將現場發光的餘溫保存下來。
這一次,不論是否親臨現場,
當樂音響起時,請與好樂團、瑪啡因一起說出,我們一樣__。
-----------------------------------------------------------------------------------------------
▌瑪啡因 x 好樂團 - 愛錯(原唱:李心潔)
當雨滴落在窗口 等你一起過來
你低頭不語 我不想現在面對
我們選擇愛情 還是愛情選擇我們
當時愛的勇氣 都跑到那裡去
還記得你要帶我去的天堂
如今只剩下天邊一絲彩霞
日落的這一刻 我的心沒太陽
還有什麼理由 還有什麼結果 要我否認你的錯
輸了你的承諾 輸了你的曾經 說過要一直愛我
---
詞曲 Lyrics & Composed:張震嶽 ayal komod
編曲 Arranged:瑪啡因 Maffine、好樂團 GoodBand
錄音 Recording / 混音 Mixing:神崎森 MORIMAGIC
錄音室 Recording Studio:金音俱樂部 Gold Sound Club
【瑪啡因 Maffine】
主唱 Vocal / 木吉他 Acoustic Guitar:謝孟庭
電吉他 Electric Guitar:褚士銘
合成器 Synthesizer / 豎笛 Clarinet:黃瀞嫻
電貝斯 Bass:陳冠豪
爵士鼓 Drum:吳姵蓁
【好樂團 GoodBand】
主唱 Vocal:許瓊文
木吉他 Acoustic Guitar:張子慶
-----------------------------------------------------------------------------------------------
▌《好樂團 x 瑪啡因:「我們一樣__。」》Live in Legacy Taipei
現場統籌 / 舞台總監:王玟沂
Legacy 企劃:Lily
音響工程師:Andy(F.O.H)、小八(Monitor)、奕夫(Stage)
燈光:小宋
舞台 / 燈光 / 音響工程:Legacy Taipei
VJ:阿浮
視覺設計:何昀芳
動態影像設計:曹仲
靜態攝影:莊永鴻、苗嘉澍
動態攝影:李炎、賴宥廷、鄔鶴鴻、呂啟明
現場錄音:神崎森
造型:楊景雯
妝髮:金沚函、洪振揚
場佈:黃彥、李佳衡、于庭幼
湖中女神:溫達、黃評
周邊販售:吳亭諺、洪婕寧、周子勻
現場執行:王首仁
器材支援:林子彧
---
特別感謝:Charles 老師、Michael 老師、小樂
#瑪啡因 #好樂團 #愛錯
林函潔曾經 在 tizzybacvideo Youtube 的最佳貼文
#TB20 #鐵之貝克2.0
時間並不是線性的。
我失去了你的行蹤。
所以我只好一個人在這個宇宙裡,用我自己的方式繼續戰鬥,
因為除此之外,我也不知道還能做些甚麼。
我如此孤單地戰鬥,常常有孤單到想哭的時候,
那時,我就會抬頭望著天空,大聲地唱著這首歌,
覺得你還存在在某個平行時空裡面,
只是還找不到路回來而已,
那些一閃而過的星光,就是你給我的回應。
Tizzy Bac在十年前寫下中文團名歌曲〈鐵之貝克〉,從此奠定了一個時代,十年之後,Tizzy Bac再次寫下進化版的〈鐵之貝克2.0〉,標示著樂團下一步的來臨。〈鐵之貝克2.0〉以復古舞曲風格,挑戰樂團既有路線,與合成器名師蛋的合作,更為此首歌曲增添獨特風味,加以與〈鐵之貝克〉動畫MV導演龔爰的再次攜手,MV耗時半年多才完成總共一百多顆鏡頭,除了跳舞的鏡頭是由Motion Capture完成之外,角色的的骨架以及表情系統,都是量身打造而成;並保留Bass手哲毓先前取樣之音檔,一場Tizzy Bac的星戰旅程,就在眼前。
══════════════════════
【鐵之貝克2.0】
詞曲 / 陳惠婷
Do you copy that?
偌大的宇宙 誰能聽到我
I’m still waiting here
直到再能夠 握住你的手
Would you stop the time
那年的煙火 還綻放在心中
Please do call me back
當你不經意 也想起的時候
在你不存在的時空
我依然(我只好)拼命地戰鬥
只為了證明這顆心
證明那熾熱的曾經
當我又孤單地戰鬥
孤單到想哭的時候
我會大聲唱這首歌
唱著我從沒忘記過
(我會大聲唱這首歌
彷彿你從沒有離開過)
Will you still be there?
每當閉上眼 想念的時候
Please give me a sign
當我抬起頭 仰望著星空
只是我再也 不能留下什麼
其實也不曾真正證明什麼
當時間的潮水 沖刷僅剩的所有
══════════════════════
【 音樂製作團隊 】
詞 Lyricist:陳惠婷
曲 Composer:陳惠婷
編曲 Arranger: Tizzy Bac、林揮斌
製作人 Producer:Tizzy Bac
配唱製作人 Vocal Producer:林揮斌
演唱 Vocal:陳惠婷
鋼琴 Piano : 陳惠婷
鼓 Drum:林前源
貝斯 Bass:許哲毓
合成器 Synthesizers:林揮斌,蘇玠亘
和聲編寫 Background Vocal Arrangement:陳思函
錄音工程師 Recording Engineer:林揮斌
錄音工作室 Recording Studio:112F Studio
混音工程師 Mixing Engineer:Paul Norris
混音工作室 Mixing Studio:Metropolis Studio
母帶後期製作工程師 Mastering Engineer:John Davis
母帶後期製作錄音室 Mastering Studio:Metropolis Studios
══════════════════════
【 動畫製作團隊 】
Client:相知音樂 / Tizzy Bac
Production:RICK3D Studio
Director:龔爰 Kung Yuan
Concept Art:毅峰 Evan Lee
Storyboard:龔爰 Kung Yuan / Chien Chou Lin
Modeling / Textureing:龔爰 Kung Yuan / 宋允揚 Patrick Song / 黃柏壬 Huang Boren / 易鴻耀Tom Yi / 佟紹魁 Shaokuei Tong
Animation / Lighting:龔爰 Kung Yuan
Motion Capture:夢想動畫 Moonshine
Mocap人員:羅志豪 Chih Hao Lo / 邱子杭 Viktor Chiu / 陳威丞 Will Chen
棚內管理人員:李佳錚 Nero Lee
Mocap演員 : 陳惠婷 Huiting Chen / 林前源 Chien Yuan Lin
Render Farm:夢想動畫 Moonshine
算圖農場RD人員:林坤靜 Kun Ching Lin / 凌倫明 Sai Ling / 周俞丞Joe Chou
VFX:龔爰 Kung Yuan / 短波組影像 Shortwave Film / 張書賢 Sushi Chang / 蘇宏修 Hung Hsiu Su
UI Artist:劉聖賢 Liu Sheng Hsien / 呉冠瑩 Wu Kuan Ying
Compositing:龔爰 Kung Yuan
Subtitle:毛麒雅 Mao Chi Ya
Special Thanks:目子拾參 Muzixiii Studio / 林家齊 Chia Chi Lin / 李走狗 Woody Yeh /
林以潔 Yi Jie Lin / 黃威迪 Huang Wei Ti
Tizzy Bac:陳惠婷 Huiting Chen / 林前源 Chien Yuan Lin / 許哲毓 Hsu Che Yu
══════════════════════
數位收聽平台
▶https://Between.lnk.to/TBIB20