Re: [问题] 完全去中心化是否真的必要?

楼主: DarkerDuck (達克鴨)   2018-02-26 16:17:00
其实越研究最近对于区块链效率的额外改进方案,越会觉得中本聪的区块链真的是神解
对于全球性金流系统而言,最重要的是可用性和共识安全性。
比特币将可用性的优点体现在不分时间地点、都可以和任何人有比特币钱包进行交易
在共识安全性上,因为有全网共识,避免了双花和撤销交易的可能性,甚至比信用卡安全。
而依照CAP理论,所有的效率的改进方案几乎都会损害到区块链货币的可用性和安全性。
什么是CAP理论呢?它是对于分布式资料系统的一种限制,你无法同时满足以下三点特性:
Consistency: 一致性 (所有节点在同一时间具有相同的数据)
区块链系统当然要有同样的数据资料,并且用PoW或PoS得到唯一有效的共识。
这是对于交易系统的安全性基本需求。
Availability: 可用性 (保证所有类型请求都可以在时限内获得回应)
对于全球金流系统可用性当然是最重要,
任何使用者可以跟使用互联网一样,在任何时间、将所拥有的资金、转到任一地址。
Partition tolerance: 分隔容忍 (切割成子系统不会影响系统的继续运作)
中本聪的区块链系统基本上已经把一致性和可用性推到极限。
所以你今天要用比特币就一定要联网和区块链同步,大家共识必须一致。没有子系统。
实际上区块链系统在不拥塞的状态下根本完美得不得了,一般交易零确认快如闪电。
不信的可以去用零钱玩SatoshiDice,送出交易三秒内就会被侦测到完成一局。
有赢钱三秒内自己的钱包就会收到,根本是real-time的体验。
连博弈网站都敢这样搞,bitpay和coinbase也这样玩很久,代表小额零确认交易非常安全。
所以我一直认为增进区块链容量和效率的技术,才是全球金流系统真正该发展的方向。
那再来看看对于区块链效率的额外改进方案,是否真的是万灵丹,
可以在不影响一致性和可用性下改进金流系统的效率。
先以已经可以用的Payment channel来看,
它的原理就是Alice和Bob先把自己一部分的资金锁到通道内,然后互相只交换未确认交易
只有最后要结束通道的时候,才把最后一次的结算交易丢给矿工做确认和结算。
那这样就大幅减低了矿工负担了,增加扩容可能性。因为资金先被锁住也不会被双花。
但问题是这极大幅度削弱了区块链货币的可用性,你的资金被锁住了。
本来比特币可以随时随地可以转给任何人,但现在被锁住只能转给特定人。
为了解决这个问题,所以后来又搞了一个极端复杂的金流网络,光白皮书就吓死人。
https://lightning.network/lightning-network-paper.pdf
BTC的闪电网络,在ETH也有一个差不多一样的实作叫做Raiden雷电网络。
把on-chain fee推高,让Core一直狂推,把大家都赶到这个网络内,全部都连在一起。
那这样可用性不就变高了吗??
好像很合理。但问题是它的可用性和本来的区块链系统相比脆弱非常多。
首先你要发交易当然还是要锁钱,重点是和你连线的Payment Hub不能离线,连自己也是。
实际上只要金流的路径中任何一个节点突然离线了,你的交易就会失败。
因此这些Payment Hub必定会是非常专业化的,才会闲著没事24小时开着永不断线。
但区块链系统大家都可以随时上线和离线,但你仍然是永远可以使用。
更不要说路由问题,要去中化作routing一直是资讯科学里难解的问题。
现在的Internet实际上是用非常中心化的方式去做routing,
就几个骨干ISP在网络交换中心做路由,甚至很多部分还是要靠人工设定的。
之前就有发生台湾网络交换中心隔壁机房失火,台湾就大断网的事件。
而目前闪电网络仍然是靠直接全网广播所有节点路由资讯,来寻找最佳的金流路径。
然后说这种方式可以解决本来区块链系统的扩容问题,这我真的笑了。
区块炼的扩容瓶颈在于通讯瓶宽,你每发一笔交易就要全网广播到所有矿工节点。
结果现在变成更新路由资讯也要全网广播,一个hop广播一次。
可以预见的是,闪电网络系统的频宽扩容问题甚至会比本来区块链系统更为严重。
再来是闪电网络和一般stateless routing不一样,可不像一般通讯封包丢了就算了。
每个路径都还有收支平衡、金流宽度、交易状态等问题,挖靠,根本大爆炸。
更不要说收款也必须在线这极大幅度影响可用性的问题。
要转大额款项更是不可能的任务。
可以想见的是闪电网络它的可用性必定远远不如于原本的区块链金流系统。
那么假如我们把区块链系统切割成一个一个的子系统,是否就可以扩容了呢??
那这其实就是sharding和plasma的目标。
https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding/
shard可以把会互相交易的同一个DApp丢到同一个shard内。
shard内的交易只让该shard的随机validator去确认有效性,
然后写state root和tx group root到main chain上。
plasma则使用子区块链,同样把同样会互相交易的DApp丢到这个子区块链。
但其实这两个方案适合的是DApp的应用,一个DApp本来就只需要服务部分人,
而不是全部人,所以把DApp丢到shard内,或是plasma的子区块链内,非常适合
因此这两个方案只有ETH在研发,BTC根本没在推这两个方案。
但是全球金流网络这个应用是要服务所有人,要分割子系统就必定会导致延迟。
譬如每一国都有自己自己的shard或是plasma子区块炼。
但是比特币相比于法币最大的优点就是无国界金流,结果变成所有跨国金流都有高延迟。
以shard来说就需要cross-shard communication,仍然是影响到原本金流系统的可用性。
当然也不排除后来有个比中本聪更神的人来解决这个问题XD。
所以有些系统干脆对于去中心化的一致性妥协,譬如IOTA,他必须靠COO来维持共识。
结果变成瓶仅卡在COO,拿掉COO理论上可以很快,但如何维持安全性共识仍然有挑战。
既然中本聪已经发明这么好的东西,我认为金流系统把区块链推到极限才是主要目标。
譬如Graphene可以把区块链系统的通讯瓶宽效率搞到逼近于IOTA。
而weak-block可大幅强化零确认交易的安全性,本来就跟闪电网络一样快。
off-chain或是第二层的方案当然也可以同步研发,对于高频交易或特定应用很有用。
但直接把区块链系统直接盖掉反而弊大于利。
作者: allen139443 ( ∩ д ∩ )   2018-02-26 16:34:00
首推
作者: tcn1john (momo)   2018-02-26 16:37:00
再推
作者: freshego (哈比控)   2018-02-26 16:38:00
作者: poorviv (na)   2018-02-26 16:46:00
作者: Fice (Fice)   2018-02-26 16:52:00
作者: kugwa (kugwa)   2018-02-26 16:56:00
好多技术只听过没时间研究 感谢板大做整理
作者: ahaha777 (出门左转)   2018-02-26 16:59:00
作者: ProtectChu56 (Eric P. Chu)   2018-02-26 17:10:00
我想版大需要自m文XD
作者: brain1472000 (Danny Wei)   2018-02-26 17:28:00
作者: ssnopra (provia不要開口~不要回 )   2018-02-26 17:28:00
作者: ketao (ketao)   2018-02-26 17:40:00
作者: EthereumPTT (以太批踢踢)   2018-02-26 17:41:00
感觉ETH发展会比较好
作者: unojazz (Uno是一的意思)   2018-02-26 18:19:00
作者: CCben (new man)   2018-02-26 18:27:00
专业文整理
作者: camellala (茸硬抬名器)   2018-02-26 18:43:00
谢谢板主专业解说,每次看板主的文章就是在提升自己的知识层次
作者: berry383838 (BAN-DON)   2018-02-26 19:06:00
版主威猛
作者: sss910278 (daniel88)   2018-02-26 19:09:00
上一次听到CAP是大二修数据库的时候xDDD
作者: rmp4rmp4bear (天然呆)   2018-02-26 19:36:00
如果不是BCH可以改动难度,我大BCH为唯一正统
作者: davidchen329 (懶豬爵士)   2018-02-26 20:12:00
版主威
作者: camellala (茸硬抬名器)   2018-02-26 20:18:00
如果BCH能由PoW改成PoS,会更好
作者: jackshyu (老板一杯柠檬汁XD)   2018-02-26 20:35:00
推长知识文
作者: tsl3333 (我们都寂寞)   2018-02-26 20:40:00
专业长知识
作者: evilplayer (孤伶刀 八荒无尽)   2018-02-26 23:04:00
推推~~
作者: timwu (Tim Wu)   2018-02-26 23:17:00
详细解说给推,聊点想法,sharding不算L2, core & EVM都要改phase2可能要fork才能上,我归类为L1, 再来 channel routing我也觉得太复杂,所以我都只推简化版uRaiden, 只给eth 因为BTC script能力不够啊, 讲到跨国交易, 把猫猫嫩模都在L2处理掉 主链就不会塞啦,POS也有加速效果 只是团队很少强调,eth fan最自豪的 现在都还没加速的超塞主链一天处理的交易
作者: martin77 (martin77)   2018-02-26 23:28:00
长知识了
作者: timwu (Tim Wu)   2018-02-26 23:28:00
数超过其他所有币种包含BTC的总和.
作者: treck (荒野中的一匹狼)   2018-02-26 23:34:00
推推 感谢解说
作者: coldcolour (Ghost的呢喃)   2018-02-27 01:51:00
作者: sdtty (龙井裘德洛)   2018-02-27 07:40:00
所以ripple才是最强的...
作者: wukeepo (Keepostark)   2018-02-27 08:17:00
好强喔
楼主: DarkerDuck (達克鴨)   2018-02-27 11:07:00
Ripple并无法达成trustless去中心化共识而且实际上Ripple的官方具有冻结帐号的权利当然假如你不在意这两点,Ripple交易速度的确更快只是这种东西和传统银行金流系统并无太大的差别
作者: steven01942 (萧邦)   2018-02-27 13:43:00
LTC现在就走在如此的路线上?
作者: goldflower (金色小黄花)   2018-02-27 13:54:00
推个 这篇好多关键字让人survey
作者: john371911 (醬廖)   2018-02-28 00:05:00
推。graphene 还有什么关键字查?有没有易读的中文资料?
楼主: DarkerDuck (達克鴨)   2018-02-28 00:19:00
https://people.cs.umass.edu/~gbiss/graphene.pdf这是论文,和闪电网络相比,基本原理简单非常多只是数学验证collision机率对于一般人比较困难我用白话讲就是区块链系统的区块传播不再包含所有交易,只需要包含这些交易的filter表所以区块大小可以极大幅度缩小,达到逼近O(1)剩下的扩容瓶颈就会主要是交易的通讯瓶宽我一直觉得区块链系统才是简洁的金流解决方案对于金流系统而言,复杂度太高根本是"大灾难"https://bitcoin.org/bitcoin.pdf中本聪的比特币论文也不到十页而已http://chainb.com/?P=Cont&id=6550 中文新闻研究结果指出可以让区块小到 "一个封包"
作者: rmp4rmp4bear (天然呆)   2018-02-28 01:14:00
觉得好像dna, 区块组成的长链用蜁转的收束方式可以大幅减少空间
楼主: DarkerDuck (達克鴨)   2018-02-28 01:17:00
其实这个技术不会缩小区块链大小但可以极大幅度降低扩容后,孤立块的产生这样矿工就更愿意把区块上限调高
作者: rmp4rmp4bear (天然呆)   2018-02-28 01:18:00
只是现在在把每个块只留能完整还原所有资讯的片段阶段了改
楼主: DarkerDuck (達克鴨)   2018-02-28 01:19:00
其实还有其他分布式的区块链储存以及UTXO查询技术但是Core全当作没这回事,区块链就是废,LN就是棒棒棒一些比较旧的区块链可以产生UTXO后砍掉,并分散储存最近Core才刚把零确认交易这个超有用特性几乎废掉说啥零确认交易不安全,RBF默认开启才能避免交易卡死结果BCH有人悬赏1000美金看有没有人可双花零确认交易到现在也没看到那些Core专家双花成功,笑死人
作者: a2935373 (...)   2018-02-28 02:03:00
LN一定要online这点真的太北七了...
作者: sdtty (龙井裘德洛)   2018-02-28 17:04:00
如果core那么鸟 为何矿工算力没有站出来反抗呢? 一直想不透
作者: qxxrbull (XPEC)   2018-02-28 17:08:00
话说零确认交易没有办法成功做出double spending的原因是什么? 我印象中不是实作还是要2确认才算不会被翻盘吗
楼主: DarkerDuck (達克鴨)   2018-02-28 17:29:00
矿工本身就唯利是图,已经做出BCH这个后备方案就好了反正挖矿算法都是一样的,哪个获利多就挖哪个假如BCH的价格是BTC的十分之一,当然算力也是十分之一零确认交易当然有机会可以double spend但是你要和够多算力的矿工配合不然依照BCH本身的共识规则,你双花交易根本传不出去初版的BTC是禁止双花交易在网络中被转传的结果被Core改掉,说这样有助于fee market现在BCH又把这垃圾功能拿掉,所以根本不怕双花
作者: kugwa (kugwa)   2018-02-28 17:35:00
禁止双花交易在网络中被转传意思是mempool里是否允许双花的交易存在吗*不允许
楼主: DarkerDuck (達克鴨)   2018-02-28 17:38:00
当然不允许,你双花交易会被视为conflict transaction不光是进不了mempool,连转传出去都没办法不过后来Core加了一个option flag叫做RBF让更高手续费的交易可以取代原来mempool的交易说这样有助于fee market,也能避免交易卡在mempool现在更是直接当作默认值,所以BTC已经没有安全的零确认交易了,这项本来中本聪有提到的特性被毁灭不过Core当然可高兴了,这样LN的交易速度就没人可比了
作者: kugwa (kugwa)   2018-02-28 22:10:00
我知道RBF是为了解决卡交易的情况但我也同意板大说的 没有transaction replacement的话 零确认交易就会很安全请问板大认为在disable RBF的情况下 要怎么避免卡交易的情况发生呢是用policy解吗 例如mempool里太老的交易优先权会升高

Links booklink

Contact Us: admin [ a t ] ucptt.com