Skip to content

Instantly share code, notes, and snippets.

@diyism
Last active October 29, 2023 03:15
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diyism/3b8bf356d7c65b99775516fe617c83e6 to your computer and use it in GitHub Desktop.
Save diyism/3b8bf356d7c65b99775516fe617c83e6 to your computer and use it in GitHub Desktop.
blockchain ramble

区块链漫谈


前言

    作为一个普通程序员 或者说 普通的IT从业者,如何掌握 新技术和新思维,我认为最重要的还是勇敢, 智力的本质是勇敢, 勇敢地闯入无人之地.
    可能有很多同学对区块链的理解比我更深更广, 但是为了提高自己的认识, 我积极地收集资料准备了这次演讲,
    但是后面都是我一家之言, 谬误之处还请大家海涵, 希望抛砖引玉可以把 区块链兴趣小组搞起来.

    解释一个名词, 分布式共识货币, 或简称分布式货币, 也就是流行的"数字货币"/"加密货币",
    但我觉得这些称呼都没有抓住要点, 所以我更愿意称呼"分布式货币".
    
    然后问一个问题, 有多少人买过分布式货币, 再问有多少人使用独立的钱包(不是交易市场的钱包),
    有没有人使用脑密钱包(就是没有钱包,需要的时候拿出自己脑袋里的密钥用javascript签名一下金额和接收地址就通过API广播出去)
    
    看来普及区块链任重而道远啊, 下面就让我们一起来探索一下区块链和分布式货币的世界

背景

    IT行业:
    1994 雅虎,1998 谷歌, 2002 bitTorrent/kademlia/dht, 2008 app store, 2009 比特币
    web1.0: 网络中心化, 内容中心化,   雅虎是代表
    web2.0: 网络中心化, 内容分布式,   谷歌搜索, 苹果应用市场 是代表
    web3.0: 网络分布式, 内容分布式,   bittorrent, tor, tox, zerotier, ipfs/ipns/libp2p, maidsafe
    宏观上看, 区块链属于web 3.0, 区块链大佬里搞出parity substrate的Gavin Wood也一直把区块链相关技术称为web 3.0

    人类组织方式:
    人类组织方式的第一次创新在2771年以前(-753), 罗穆路斯带领三千多名追随者建立了罗马。
    他将国家权力分为三部分:国王(1),元老院(100)和公民大会(3000).
    公民大会没有立法权,但可以否决国王和元老院制定的政策, 这是最早的"议决分离", "议"代表智慧, "决"代表平权,
    公民大会的表决权重是按财产比重计算的, 这个很像区块链共识算法里的PoS.
    650年后凯撒家族掌权, 打破了议决分离的原则, 元老院被削弱, 公民大会扩大化, 财产权重原则也放弃了, 罗马走向衰落.
    再1791年以后英国的光荣革命才继续把代议制系统发扬广大, 截至2017年, 全球167个国家里76个代议制处于主导地位.
    
    再321年以后, 2009年人类迎来组织方式的第二次创新, 比特币在人类历史上第一次实现了无中枢结构的中枢功能系统,
    成员无中枢, 信息有中枢.

9种功能创新及特色:

  1. consensus ledger(proof of work): bitcoin, bitcion cash, ethereum

     PoW, 共识存储 和 造币 放在一起, 竞算耗时耗电, 俗称 挖矿
     不可篡改存储/区块链: 区块楼,区块楼高度,最后6层盖棺定论(集体共谋篡改历史账本都不可能), 
     算力难度自动调整(每2016块,约14天),确保某个时间点之前记录不可篡改, 越高的板子越厚, 所以才有信心不设置finalize检查点逻辑
     
     2018.11 证明中本聪设置的这个2016块才自动调整一次难度非常英明, 能通过算力成本来避免分裂,
     bitcoin cash认为这是一个bug/缺陷, 把难度调整算法改成了根据前144个块的难度每个新块都自动调整难度,
     导致bitcoin cash分裂成bch abc和bch sv的时候, 任何一方只要硬挺过60个块就能避免被对方干掉了, 算力表决原则失效了
    
  2. smart contract: ethereum, bitcoin omnilayer(usd tether), bitcoin cash wormhole

     bitcoin在2011年就有p2sh(pay to script hash), 实现3人到15人控制的帐号
     
     ethereum实现了完整的图灵计算机, 可以写任何合约脚本, 超越15人, 人类历史上第一次真正实现了集体财产的民主管理,
     这是非常了不起的, 但是后来他们玩砸了, 写DAO(Dcententralize Autonomous Oganization)脚本的时候搞出了漏洞,
     集资的以太币都被黑客转走了, 然后开发组反过来要去硬分叉ethereum代码来把钱转回来.
     觉得还不如像比特币一样搞简单点, 只把15人扩展成支持最多10000人的集体钱包, 足够适用很多需求了
     
     bitcoin omnilayer, 即BTC交易额写0, 带上BTC交易费, 在交易备注里写染色币的交易信息), 共识安全性依赖比特币
    
  3. peercoin, qtum: PoS, proof of stake

     peercoin,  币越多+币龄越长 则越容易造币, 币龄竞赛让区块链越来越惰性, nothing at stake/out of stake攻击风险, 加检查点
     qtum(上海魅联)去掉了币年龄竞赛, 共识算法mPoS把造币分散到500个块之后的10个块能缓解问题(相当于造币抵押只被冻结20个小时)
     衡量时间流逝是直接依赖NTP服务, 每16秒所有人同时挖一次矿, 有可能多人同时挖到, 区块链出现分叉, 一个分叉压不倒另一个分叉
    
  4. eos/steem/bitshares: dpos-bft委托权益证明, Daniel Larimer, 还包括tron, cardano, neo

     投票选举21个造币者专门造币/打包区块(有重选机制,但因为占有比例不变基本上也没有变化),
     dpos跟pos一样也需要设置检查点, 每100 blocks from 21 producers来防范NaS攻击,
     但是bitcoin军备竞赛的结果是只有13家造币成功率高于1/1000, 所以事实上eos的造币权分布性接近于bitcoin, 
     但是安全性上因为需要检查点逻辑 以及 没有造币者长尾 还是比bitcoin差很多
    
  5. on-chain governance: Tezos(stake), Qtum(stake and contract), Aeternity(prediction market), Dash(stake master)

     bitcoin, ethereum等都是 基金会,核心开发组 或 矿池联盟 对节点算法版本说了算,
     链上治理则是直接把测试版/预发版 或其哈希 写到区块链里 等大部分人完成手工投票后 整个网络自动完成切换,
     目前真正做到的应该只有tezos币
     
     从最终结果看, 各币的分布性: dash, bitcoin, bitcoin cash, tezos 这4个的去中心化 程度最高,
     依次前100帐号占有率 15%, 20%, 25%, 30%,
     比特币分布性:
     0.1到1个币的占比特币总量4%(230万地址),
     1到1000个币的占有55.1%(70万地址),
     超过1000币的占有40%(2000地址, 含交易所及赌场资产证明),
     真正在玩的是中间的70万地址,
     跟真实的人类社会查不多, 2017年1%人口占据全球总财富的50.1%,
     差不多5000万人超过100万美元, 全集中到上海的话两倍上海人口,
     公司里有市区房子的同事也都在这5000万人里
    
     tezos 用的是 lpos (流动代理权重投票造币), 是对 eos/steem/bitshares 的dpos(代理权重投票) 的改进, 
     tezos目前好像投票出来 400多个造币者, 最大可以支持 80000个造币者
    
  6. zero knowledge proof: monero(bulletproofs), zcash(zk proof), dash(coin join, 不能算zk)

     门罗币用到最多技术:
     环签名(ring signatures), 隐藏发送者
     隐形地址(stealth addresses), 支付密钥+查看密钥, 隐藏接收者
     环机密交易(ring confidential transactions/bulletproofs) + 佩德森承诺(Pedersen Commitments), 隐藏交易金额
     大蒜路由(Kovri I2P, 是TOR洋葱路由的改进, 从Circuit Switching到Packet Switching), 隐藏网络流量
     monero的接收者无法看到发送者的地址和余额, zcash的接收者可以看到发送者地址看不到发送者余额
    
  7. DAG(directed acyclic graph): nano, iota, byteball

     nano 发币(没有造币) 完全中心化, 共识算法是 DAG+dPoS
     iota, byteball 发币也完全中心化, 共识算法也含中心化的validator和witness
    
  8. 联盟链: ripple, stellar: fba联邦拜占庭协议, 少数授权的确定在线的节点负责生成区块, hashgraph

     大多 发币中心化, 人工发币,
     共识算法是多中心系统而不是分布式系统, 如果能把授权和销权搞成链上逻辑, 就也是分布式系统了
     hashgraph(sdk闭源, 联盟链, 需要身份认证, 安全性需要2/3节点在线且忠于算法, DAG+gossip broadcast(流言广播)+aBFT(异步拜占庭投票))
    
  9. stable coins: usd tether(法币不足额抵押), trueusd(法币等额抵押), dai(分布式货币超额抵押)

     usd tether的 发币(没有造币) 是完全中心化的, 共识算法安全性依赖比特币
    
  10. 有可能proof of human work么?

     先不说复杂的, 比如 根据 程序员 对开源代码库 的贡献 来造币
     先说简单的, 算法能否生成只有人类才能解决的难题?
     2016年论文cryptographic code obfuscation, 2000年就被数学家证明不可行
     idnow自动检测, face++自动活体检测, 用crazytalk之类都可以伪装他人面部表情
    

传统金融政治商业:

  1. masterCard, visaCard:

     2018.1 全面封杀关联分布式货币交易的发卡机构, 借记卡也不行
    
  2. payoneer, n26, revolut

     payoneer可以获得收款IBAN(International Bank Account Number 国际银行账户号码) 进行收款,
     国内护照可以办理, 国内可以收到借记卡, 支付宝可以绑定该卡买淘宝上的东西,
     但有各种限制, 比如美元只能收机构汇入(欧元可以收个人和机构汇入), 不是完整银行帐号
     
     N26和revolut都获得了欧洲央行的银行牌照是完整的银行帐号, 前者可以用国内护照申请到帐号正常收款付款, 但转运公司不敢把卡转寄国内,
     后者要欧洲驾照或护照才行
    
     revolut是内置分布式货币交易的,仍然获得欧洲央行牌照, 可见欧洲对分布式货币友好得多
    
  3. gov:

     日本, 2017.3 Virtual Currency Act, 承认比特币等为合法货币, 按货币/外币征税,
     英国/欧盟, 按货币/外币 征税
         消费税带在商品里, 由商家缴纳, 关键是所得税计算非常复杂, 比特币价格大起大落, 很难计算
     德国, 2013.6 按股票 征税, 持有超过1年售出则免税
     美国, 按财产 征税, 增值税之类, 不知道贬值有没有退税
     澳洲, 买东西则免税, 交易则按股票收税
     中国, 2017.9 所有比特币交易所完成清退关闭
     
     blockchain is not the bubble, it's the pin
    
  4. R3CVE联盟链, 包括花旗银行/中国平安银行/纽约梅隆银行在内的50多家银行机构, 跨国跨机构结算

  5. liberland, 一块7平方公里河边冲积地, 未被周边两国克罗地亚和塞尔维亚声明为领土, 妄图成为真正的数字民主国家

投机,交易和保存:

  1. centralized: okex, binance, btcchina, huobi, coinbene 都是中国人的, 欧洲有个kraken

  2. semi-centralized: localbitcoins, coincola, otcbtc, 场外交易所(抵押分布式货币 不抵押法币)

  3. distributed: bisq, TLSNotary+P2SH

     https通讯握手时, 浏览器需要用银行网站的公钥加密自己的临时公钥发给网站然后建立起安全连接,
     TLSNotary浏览器插件这个临时公钥不由银行用户(买方)生成, 而由bisq市场上交易双方共同挑选的仲裁者生成,
     然后银行用户请求转帐详情页面, 收到银行网站用仲裁者的临时公钥加密的html, TLSNotary插件用买方的临时私钥再加密一遍这个密文发给仲裁者,
     仲裁者收到密文后把临时私钥发给买方以便可以继续操作并退出登录银行网站并把临时公钥发给仲裁者,
     然后仲裁者的自动程序就可以用买方的临时公钥以及自己最开始的那个临时私钥以及网站的公钥解密三重加密的转账详情页面,
     并自动发出P2SH(三取二公钥比特币地址)交易签名, 自动转帐比特币给买方
     
     但是纯正的分布式交易所的最大问题是, 银行网页结构字眼等可能发生变化而无法自动完成交易, 还是需要仲裁者人工介入,
     导致其相对于 场外交易所 的最大优势荡然无存, 所以还不如场外交易所流行,
     当然也有可能是因为bitsquare运营不善而导致
    
  4. lenharo-google-authenticator2

     修改版带密码保护的google authenticator, 用来保护gmail, 交易市场帐号
     https://sourceforge.net/projects/anti-dns-pollution-php/files/lenharo-google-authenticator2.apk/download
    
  5. brainwallet, 12 words, 五言绝句

     用来保护比特币
     李笑来: 人类历史上第一次彻底保证了私有财产神圣不可侵犯
    
  6. 自建迷你对冲基金(相当于向自己借钱/借币):

     比特币池+法币池+利润币池,
     上涨期 从欧元池借钱买币, 涨了卖币还钱余币为赚,
     下跌期 从比特币池借币卖出, 跌了买币还币余钱再买币余币为赚, 著名的做空者Mark Dow这样干了2018一整年
     比特币的 上涨期 和 下跌期 都长达9个月到15个月, 有时上涨期比下跌期更长, 有时下跌期比上涨期更长,
     这个只适合长线操作, 短线操作 某一侧的池子很快就短缺了(任一侧少于30%都要停止操作),
     但是平均13个月的周期才可以操作一次, 盈利6倍到16倍
    
     资产停留在 法币帐号 或 USDT 或 交易市场 里时间要尽量短, 风险在这几个地方更大, 比特币脑密钱包有你自己强大的大脑在保证其安全性
     
     如果比特币长期升值的预期成立, 则"套期保值"即"无杠杆做空"(sell short)在 山顶期非常适合,
     即使再继续暴涨也不会爆仓, 因为强平倍率在正无穷, "价格翻倍则 裕留金/准备金/保证金(margin) 比特币减半"但法币价值保持不变,
     剩下的风险就是 "交易平台" 本身的风险, 与 不靠谱的法币帐号 风险相同, 如果能实现智能合约 期货交易的话 风险就远小于 法币帐号了
     "做多"(buy long)的风险则 大得多, 即使无杠杆 "价格跌一半则 裕留金margin 就爆仓/强平/归零了"
    
     但我我的投资建议没有参考价值, 其他章节可以参考, 这一章节就不要看了, 否则上天台的时候不要拉上我
    

群体决策,社会, 开源社区:

  1. 共识算法与社会制度的映射

     PoW: 原始社会 很快变成  军阀统治
     PoS: 如果第一名超过第二名2倍就立即演变成独裁统治, 币龄竞赛让区块链越来越惰性, qtum去掉了币年龄竞赛,
          qtum量子链(上海魅联)的mPoS把造币分散到500个块之前的10个块能缓解问题(相当于造币抵押被冻结了20个小时)
     DPoS: 封建制, 投票者相当于家奴, 可以换主子但都得不到好处
     LPoS: 代议制, 股权分红
     FBA/DAG: 君主立宪
     平权民主政治 还没有 no democracy
     智慧功勋政治 还没有 no meritocracy
    
  2. 大教堂与集市, stigmergy(印记效应), 智慧功勋政治:

     Eric Steven Raymond在1997年写过一篇文章"大教堂与市集":
     以linux和他自己的fetchmail为例说明市集模式的开源项目在调试,设计和开发上都是并发而更有效率的,
     但是必须有一个minimal viable的可以运行的程序, 和 一个眼光敏锐的主持人来甄别好的设计/开发/调试.
     可以看成一个由看门人维持meritocracy的分布式系统(不是 平权共识, 也不是 meritocracy共识)
    
     Bridgewater, Ray Dalio, group decision making:
     有没有meritocracy共识系统呢, 太阳底下无新事, 算法辅助的民主决策机制在世界最大对冲基金公司"桥水"已经实行十几年了.
     辅助系统的原则: radical transparency(绝对透明), idea meritocracy(决策绩点), believability weighted(可信任权重)
     内部1500人日常就是针对各种投资idea在公司内部进行斗争
     评价不是一阶的,不能从一个idea的直接即刻的结果对它做出评判
     可以说Ray Dalio玩"风险保护"深入骨髓了,他TED视频里说创建"桥水"8年时(34岁)因为个人决策失误亏惨了,得跟他爸借4000元养家,
     猜测这就是他搞这套算法来运营hedge fund(对冲基金,护篱投资)的原因
    
     stigmergy(印记效应), ant/bee society的启示:
     蚁后只负责产卵, 并不指挥整个蚁群, 那蚂蚁社会是怎么组织细致的分工并完成庞大复杂蚁巢工程的呢?
     信息素对路径进行投票达成共识, "基础协议+信息叠加+个体适应", 非接触式合作或称"谐作"
     法国生物学家Pierre-Paul Grassé于1959年提出了stigmergy(印记效应)来解释社会性昆虫的这种群体自组织的现象.
     我觉得这个给使用算法实现更智能的群体决策提供了理论支持.
     甚至猜测人类大脑也是这样决策的, 不同区域通过广播信号遗留的印记效应投票来达成最终的决策.
    

DIY学习:

  1. p2p通信: 自己玩可以直接用wireguard
  2. 广播: 自己玩可以直接用weavework mesh(gossip broadcast protocol)
  3. 共识算法: qtum的mPoS最简单, 应该可以用php写着玩, 或者PoD(proof of domain, 根据DNS的TXT记录来自动分发货币)
  4. 造币方式: 自己玩mPoS应该比较简单, 每16秒所有人都只挖一次, 然后等待下一个16秒再挖
  5. 教程: https://github.com/liuchengxu/blockchain-tutorial/blob/master/content/part-1/basic-prototype.md
  6. 开发库: parity substrate(web 3.0, Gavin Wood, 共识算法PBFT看起来是联盟链, 公司名字"Parity Tech"平等科技, substrate地基), 国内chain33
  7. 基础数据库: levelDB(kv db, secondary index), coreos boltdb(https://github.com/asdine/storm), CockroachDB

未来的方向

  1. OurGI.com, blockchain for group intelligence, meritocracy/智慧功绩政治
  2. poos, Proof of open source: power(投票权额), ballot/coin(投票/货币), ticket(普通用户年费)
  3. stackDAO alchemy(Matan Field),bitsquare DAO(Manfred Karrer)
  4. DAO database(DAOql, DAO sql), 共识数据库
  5. Hotstuff BFT(LibraBFT), 把区块链和BFT步骤融合来减少通讯复杂度, scalable BFT(https://github.com/hot-stuff/libhotstuff)
  6. gosig共识协议 结合了Algorand,ByzCoin,HoneyBadgerBFT三者的优点: https://github.com/sarah21cn/BlockChainTechnology/blob/master/Research/Gosig/Gosig%E5%85%B1%E8%AF%86%E8%AE%BA%E6%96%87%E8%A7%A3%E8%AF%BB.md 还有: http://jintang.zone/2018/10/21/Gosig%20-%20%E5%8C%BA%E5%9D%97%E9%93%BE%E5%85%B1%E8%AF%86%E7%AE%97%E6%B3%95.html 还有python源码: https://github.com/gauravagarwaltal/consensus_gosig
  7. SBFT(scalable bft): https://github.com/vmware/concord-bft
  8. taiwan amis IBFT(Istanbul BFT quorum): https://github.com/ConsenSys/quorum/tree/master/consensus/istanbul IBFT共识协议理论上最多100个验证器参与共识
  9. avalanche snowman consensus: 理论上最多1300个验证器参与共识
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment