区块链技术漫谈

blockchain_tech.gif

2008年8月,bitcoin.org域名被注册,两个月后比特币白皮书出现在网络上,次年1月比特币的第一个版本公开发布。从白皮书描述(只有12页,真的很简洁)来看,比特币的设计目的是用于解决电子货币的信任中心化、匿名问题,而在这之前,非对称加密、p2p网络技术均已经很成熟,电子货币领域的研究也有一定积累,中本聪在此基础上创造性地提出工作量证明算法,用计算机真实不可伪造的计算能力解决节点共识问题,并用blockchain这种特殊的数据结构保证交易不可篡改,使这一领域的研究前进一大步。08年是美国发生次贷危机的一年,比特币的出现,可以说让研究者们对于推动金融去中心化有了更多的辩护理由,比特币背后的技术也吸引了更多人对于不同领域去中心化的探索。

比特币在论坛发布的前几个月,吸引了一批对加密货币感兴趣的人常驻论坛讨论。2009年10月论坛成员NewLibertyStandard提出建立一个可以买卖比特币的网站的想法,并提供了根据电费账单得出的一个美元到比特币的汇率(1$=1309.03btc),首次将比特币价值与法币价值挂钩。2010年5月,程序员Laszlo Hanyecz用10000BTC买了一个价值25美元的披萨,比特币首次在现实生活中流通。2010年7月,比特币交易网站MT.GOX 于日本上线,开辟了比特币的黄金炒作时代,让更多的人了解到比特币。俄罗斯程序员Vitalik Buterin是比特币源码维护者之一,2013年,他认识到比特币的技术不仅仅可以用于电子货币,还可以应用到更广泛的领域。然而在当前的比特币源码基础上改造以满足可编程的需求,存在诸多技术上的限制,且想法在社区推行遇到不可抗拒的阻力。因此Buterin脱离了社区,于2015年推出了可编程的区块链平台Ethereum。Ethereum的出现,很大程度上释放了区块链技术的潜能。

区块链从一开始要解决的问题之一是信任中心化,那么中心化到底存在什么问题?我认为主要有以下几点:一是数据可篡改,这在多方合作运营模式下需要很高的信任成本;二是数据不透明,只属于中心化服务提供者,甚至都不属于个人(腾讯声明用户的昵称头像属于腾讯的);三是数据无隐私保护,一旦泄露任何人都可以利用。互联网缔造者伯纳斯.李认为互联网发展至今,存在三个致命问题:个人信息泄露、虚假信息泛滥、政治营销的透明度。这三个问题或多或少都与中心化有关系。区块链是如何解决这些问题的呢?从技术层面来看,区块链软件主要有三个模块:数据加密模块、数据传输模块、数据共识模块。

数据加密模块使用非对称加解密算法,实现匿名性。区块链里没有真实账号身份,有的仅仅是一个逻辑账户,由一串公钥字符串表示。公钥通过RSA算法生成并对外公布,私钥由所有者控制。数据可通过公钥加密存储在区块链系统里,只有私钥所有人本人能解密。

数据传输模块输基于P2P网络实现,每个节点既充当服务端的角色,又充当客户端的角色。节点会维护网络中的存活节点列表,生产数据时向这些节点广播,同时向任意节点提供数据查询服务。

数据共识模块,解决多个节点之间针对同一份数据的读写,即使存在冲突的情况下如何达成一致的共识的问题。由于分布式系统环境复杂,节点之间通过消息或者远程调用进行通信,存在网络延迟、节点宕机甚至故意作恶节点的情况,如何让每个节点维护一份相同的数据是一个非常棘手的问题。在比特币诞生之前,有很多研究此类问题的算法,其中比较有名的场景是拜占庭将军问题。总结这类算法的特点,基本上是根据网络中是否存在恶意节点分成两类:非拜占庭容错算法,认为所有节点都是诚实的,容忍部分节点宕机;拜占庭容错算法,在上面的基础上又强化了一步,即使网络中存在作恶节点,但只要网络中诚实节点足够多,那么最终系统能达成共识,排除作恶节点。去中心化系统里所有节点的地位都是平等的,比特币之前的这些共识算法正是基于此种原则设计。中本聪共识算法的设计逃离了这一思维框架,在平等中引入了稍许的不平等,让计算能力高的节点更有可能决定主导权。节点面临冲突时,通过判断经过特殊设计的存储结构的属性来解决。这个存储结构即链表,属性即链表的长度,链表出现冲突(分叉)时,节点保留链长度最长那条链的数据,其他的则经过一段时间确认后丢弃。为了提高篡改数据的难度,链表中的每个节点除了存储本身的数据,还存储了包含了父节点的部分数据,以及本身节点所有数据的哈希值。通过链表的形式,所有的节点数据形成了一个有因果关系、相互关联的整体,如果要对某个节点中的数据做修改,那么需要同时修改这个节点后的所有数据,除非数据篡改者的计算能力超过这个网络的50%,否则无法达成目的。

这三个基础模块是区块链1.0的主要支撑模块,Buterin的以太坊引入了可编程模块(所谓的智能合约),使区块链技术走向了2.0。智能合约是存储在区块链上带有特殊指令的账户,向这个账户进行指定的操作,可触发提前编写好的程序指令。这些指令是公开的,任何人都可以阅读以确定其真实性,由于区块链的不可篡改性,指令一旦部署,就会严格根据条件执行,不存在反悔的情况。这种通过机器合约的形式,替代了以往通过人的信用担保形式,真正解决了信任问题。

区块链3.0的技术发展方向,目前看主要集中于DAPP的开发。去中心化永不宕机的应用,确实很有吸引力,微信搜索”blockex“关注我,后续推送有意思的产品和技术探索!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容