banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.

DAC意义和特点

从比特币的发展我们就可以看出,DAC 在自由竞争的市场上远远比任何传统的企业或者机构,抑或是某个人有着更多的天然优势。因为人们会发现,与这种由三个定律武装起来的 DAC 进行交易和合作,相比与那些完全由着贪婪天性的人类交易,要令人感到安全得多。而通过块链结构组成的 DAC 似乎具有着无比崇高的道德伦理,你会发现:

它们是自治 的 —— 一旦启动上路,它们就不再需要(或听从)它们的创造者。

它们是分布式 的 —— 没有中心控制点或者可被攻击的弱点。

它们是透明 的 —— 账簿和商业规则可被所有人审查。

它们是保密 的 —— 客户信息被安全地(且不可能被侵入)施加保护。

它们是可信任 的 —— 因为与它们的合作不依赖于信任。

它们是受托人 —— 唯一地忠实于客户和股东的利益。

它们是自我监管 的 —— 如同机器人,它们遵守自己的规则。

它们是不可侵蚀 的 —— 没有人能威逼利诱它们。

它们是独立自主 的 —— 在它们的数字环境中,它们不需要受到监管。

总的来讲,这说明:

DAC 不需要监管,不要试图监管它们,而且令人放心的是,也监管不了。

一个 DAC 可以被引入这个世界并且扩散至任何能够让它提供服务的地方。如果它能很好地适应所处的环境,它将可以生存下去,否则,将会被这个世界所终结。它的创造者也许可以通过良好的维护和防护,在一定程度上提高它的生存几率。但是创建者终将和它切割开来,让它持续暴露于真实世界的危险之中。

DAC 也不可以凌驾于市场规律之上。如果一个 DAC 不为市场提供可信赖的价值,它将被丢弃并因被无视而走向死亡。如果它发布的社会化合约和它提供的服务没有使它成为一个在市场环境中令人满意的商业伙伴,那么它将必然会凋零。

最终,一个 DAC 的生存依赖于其他 DAC 自愿与其合作的意愿。DAC 和人一样,会发展出信誉。核心定律确保了一旦获得信誉就可以期望持续。历史写满了那些开始打着诸如 “我们就是大众”,“不邪恶” 等高尚道德旗号的人类组织,最终因难以抗拒威逼利诱而走向腐化和衰亡的老套故事。一个不可侵蚀的 DAC 伦理也有可能一开始就是坏的,但它们不会被腐化。

如同之前的工业革命和互联网革命,DAC 革命将会为给予其最少限制的管辖区域带来巨大的利益。潜在的监管者将会无法阻止真正的自由市场来使用和开发它

DAC 未来

为什么我们需要 DAC?

因为 “中心化导致腐化,彻底的中心化导致彻底的腐化。” 最终,为获取彻底的不可侵蚀性,开发者必须乐于放手让 DAC 自控。如果保留任何的人工中心化的控制,都会最终被利用而损害 DAC 股东,DAC 需要被自由地信任。

比特币是目前全球第一个被证明成功的 DAC。在这之前从来没有什么 DAC 像比特币这样在全球范围内吸引这么多人力物力参与,不仅产生了巨大影响,同时给予所有参与者以巨大回报。

比特币获得的空前影响,证明全球性的 DAC 是一条完全可以走通的道路。而 DAC 将绝不会仅仅运用在货币或者与货币相关的方面,它将可以应用在我们虚拟社会和现实社会中的许多领域。我们可以预见,就在不远的将来,DAC 化将有可能对整个互联网乃至人类社会产生深远的影响。在十多年前,我们正忙于将许多商业模式进行网络化,也许就在这几年,我们又会将许多商业模型 DAC 化。

对于 DAC,互联网中几乎所有的商业模型都可以 DAC 化,在这里可以举几个简单的例子。

从域名币(Namecoin),到比特股(BitShares)和其他的 “秘密实体” 已经获得了很多这样的特点,尽管其中一些(实体)可能还没完全意识到。只有当软件能做一些有用的事情的时候,能够彻底诚实和不受情绪影响的软件的技术才是有价值的。如果我们使用货币的形式来实现它,我们将发明更好的货币。如果我们使用一个公司的形式来实现它,我们能够发明几乎所有的东西。一个 DAC 是一个可以以很多种方式运作的公司,如同那些由砖头和人组成的公司一样真实。

它可以通过出售股份集资并且支付红利。

它可以通过抵押股份借款并且支付利息。

它可以通过为客户提供有价值的服务而获利。

它可以通过送股给 “人”(自然的或人造的)获得资源或服务。

它可以通过开放互联网 API 使得对其产品和服务的访问自动化。

它可以根据市场反馈来调整商业流程。

它可以用转股来(公平地)奖励或惩罚其他 “人” 的表现。

因为一个 DAC 提供了忠实的有价值的服务,因为它产生了可以以其股份的形式被保存和转让的真实财富。但也必须知道 DAC 的局限性,一个独立自主的 DAC 没有办法在不依赖于外力的情况下接受、持有或移交物理商品或法币。一个开源的 DAC 无法保守秘密。它可以安全地为他人保有加密数据,但却无法为自己存一把私钥。因此,一个 DAC 不能拥有自己的装满块链资产的加密钱包。

下面给出了想象中未来十年内可能会出现的 DAC。自然,在 DAC 的领域里,公司名将以 DAC 而不是 LTD(有限公司)结尾,因为人们将会想知道他们是否是在跟一个绝对诚信的公司做生意。它们的共同点就是都利用了 DAC 巨大的诚信竞争优势。

Reputable Monikers,DAC 管理名称权益。

Robo Courier,DAC 安全的电子捷运快递。

TradeBitShares,DAC 自动提供的银行和经纪服务。

Unmanned Escrow,DAC 根据条件转移所有权的中介服务。

Virtual Ventures,DAC 一个 “众包” 的风险投资公司。

Autonomous Arbitrators,DAC 不可侵蚀的仲裁服务。

DAC Installers R Us,DAC 可信赖的基于共识的 DAC 更新的自动安装

目前的区块链行业大致分化出三个阵营,A 阵营是无币区块链,B 阵营是有币但不 IC0 区块链,C 阵营是有币也 C0 区块链,每个阵营的观点和信仰也不同。A 阵营相信 “分布式记账技术”,以 BAT 等公司为代表,认为坚持区块链本源定义,把这种技术应用在行业产业中;

B 阵营相信 “通证经济”,相信区块链创造的激励制度,币应该是被 “挖” 出来的,而不是用来融资的,最大的代表就是比特币;

C 阵营相信 “未来生态价值”,通过层层出售代币的方式获取利益,赚未来生态的钱。

事实有真假,观点无对错,在区块链没有走到终局的今天,每种观点都有合理性和可能性。在我个人看来,我目前倾向于相信 A 阵营,无币区块链可能是未来的核心,用分布式记账技术解决 更多的公共事务和行业问题,发币不一定是必要条件。

什么是伪需求? 不需要用区块链就能解决的问题,用区块链去解决,都是伪需求。 比如说溯源技术。 溯源项目有三个要点:1) 实物造假;2) 实物到标签;3) 标签到数据。

区块链技术解决的只是信息世界的问题,物理世界的缺憾却没有被弥补,所以溯源技术仍然无法 落地。

区块链的创业方向,是帮助现有产业提供技术工具,区块链是 T 外包商,例如帮助银行解决国际汇款问题,帮助房产交易中心解决彼此不信任问题等等,帮助他们提高效率,而不 是去革命干掉他们。

区块链创业者们,应该至少了解这三样东西:

第一,对技术了解,知道区块链技术的底层原理。

第二,对金融了解,知道风险和便捷性的辩证关系。

第三,对商业了解,知道商业的本质和应用场景。

区块链也是一样,当这种新的底层技术扑面而来时,人们翘首以盼,热切期待。媒体的宣杨,舆论的渲染,技术主义者的鼓吹,加上群众们的呼喊,使其远远超出它所能实际承载 的价值,大家共同把区块链送上狂热的快车道,推到泡沫狂欢的兴奋点。

世界上还有很多技术都有价值,时代不仅有区块链,还有人工智能还有云计算,还有大数据,还有新能源,还有很多很多全新的科技,这些都蕴藏着千亿万亿的机会。要始终相信我们可以踏准时 代的节拍。

激荡十年,同时说明了两件事情:

第一,区块链是这个时代的巨大机遇,有心人们曾经栽下的一棵小树,在未来会盛开成一簇美丽的花。

第二,时代是公平的,科技的浪潮里有许多澎湃的浪花,区块链是其中之一,但区块链并不唯 1

区块链参与者的角色

在 “区块链到底是怎么运行的” 一文中,我们构建了一个中心化记账的模型,这个模型可以对应到如今央行 - 商业银行的模式上;而数字货币的运行则通常是靠社区自治的,所谓社区自治,是指用户、维护者、开发者三种角色共同决定数字货币的发展,也就对应了上一篇文章中,我们所讲到 的 “共识”。

我们先来看看数字货币,通常具有下面几个特点。

  1. 1. 总量透明公开。数字货币的发行是在项目创建之初,是白皮书事先就规定好了的,白皮书通常是一个区块链项目公开发布的一种阐述性文档,其中简述了项目的宗旨和愿景以及设计蓝图。 在白皮书中,这个项目总共发行多少数字货币,投资者、用户、矿工能够获得多少也都是事先分配好的。数字货币的总量也分为两种,一种是总量设上限的,另外一种是不设上限的。

  2. 2. 数字货币缓慢释放。数字货币在分配好不同角色的额度之后,往往不是一下子就能发行完毕的,通常在矿工的那部分是需要靠 “挖” 才能出来的,这也就是前面我们所说的挖矿,挖矿为数 字货币的缓慢释放提供了一种方法。

  3. 3. 代码执行规则。由于我们在白皮书中规定好了总量和数字货币释放的机制,白皮书的内容会成为整个社区的基础共识,所以在项目的主网上线之后,数字货币的释放不再是人为控制,而是 在代码层面体现,代码将负责控制数字货币的释放,这里去除了人为操作的因素。基本上,所有公有区块链项目都会具备以上特性,可见数字货币和区块链的关系十分紧密。另外,在区块链领域,一个项目的开始运营,就伴随着一个新的数字货币的产生,这个数字货币会成为这个项目的基础代币,也有可能会派生出其他货币。

与区块链的其他应用类型不同的是,数字货币这种资产天然具有较好的流动性,所以在所有权上更为敏感。比方说,如果 “你的信用卡被盗了” 和 “化”“不可篡改” 的特性相较于其他,就显得更具有划时代的意 义。

虚拟资产一般包括有金融资产、游戏代币、数字版权、域名、

用户流量等。由于虚拟资产不需要与实体资产进行挂钩,所以在对应到区块链上更为方便。它具体的应用形式在供应链金融、票据市场都有所体现。

  1. 1. 电子货币 近年来,现金使用的频度降低,很多人首选使用电子支付。电子货币和数字货币一样都是无形的,但是电子货币其实就是将法币电子化,例如第三方支付平台,银行卡电子现金,银行大小额支付系 统等等。它只是以电子的方式记录了原来法币的账目,从本质上来说,它们仍然需要在多个中心化系统中进行稽核、对账,“电子” 本身并没有成为金融的一部分。

  2. 2. 虚拟货币 在 2017 年区块链投机狂热的时候,“虚拟货币” 这个词基本是用来指区块链项目的基础代币,这样的叫法大多源自于圈外投机者。其实不然,虚拟货币所指代的概念远比电子货币以及数字货币都要更 加广泛。虚拟货币通常是由非金融机构发行的非实体货币,大致分为三类。第一类比如游戏代币,通常不与实体经济发生联系。例如在《王者荣耀》这款游戏中,如果你想要得到新的道具,就必须有足够的游戏代币(钻石和点券),这种虚拟货币还有个特征就是封闭性,即只能在这款游戏中使用。

第二类是积分类,它可以与实体经济发生联系,比如常旅客积分,超市礼品卡,这种虚拟货币也有个特征叫做单向性,即只能流入,而不能流出。第三类自然就是我们主要讲的数字货币(加密货币)了,比特币便是其中典型。综合来看,与法币的 “有形” 对应,虚拟货币更多地体现在它的 “虚拟无形” 上,随着互联网的发展,虚拟货币本身也在逐渐发展,从而诞生了更多新的模式与机遇。

  1. 1. 数字货币 数字货币一般是指公有区块链平台底下的基础代币,该代币被记录在由密码学保证的一套公开账本上,与传统货币不同的是,由于去中心化以及可编程等特性,此种货币具有可自定义行为的属性。 在比特币中,我们可以定义多重签名交易来实现真正意义上的 “由多人共同掌管的机构型账户”。比如,在元界上,用户可以自定义交易的行为,例如在转账时可以指定代币的一个锁定期,并且指 定解锁条件;而在比特股中,这种行为更被强化为具有衍生品特性的货币,这在传统货币领域是不。与数字货币对应的,还有数字资产这个概念,

数字货币发行,很容易变成非法集资。如何有效界定这两种行为?

  1. 1. 看团队背景

  2. 2. 看项目白皮书,长期规划

  3. 3. 内定期信息披露的内容

什么是数字货币钱包 数字货币钱包是最贴近用户的区块链程序,数字货币钱包会可以帮你管理数字货币私钥,发送交易,可以显示你的交易历史记录。从用户功能的角度,数字货币钱包比较接近我们日常使用的钱 包,它帮助你管理纸币、硬币、信用卡借记卡。

数字货币钱包作为数字货币的载体, 从技术角度来看,数字货币钱包分为三种类型。

  1. 1. 全节点钱包。全节点钱包是指官方发行的一种数字货币钱包版本,这个版本包含了完整的功能需求,挖矿、发送交易、查询交易记录、管理私钥。

  2. 2.SPV 轻钱包(Simplifed Payment Verifcation)。轻钱包为了用户体验,牺牲了全节点的部分功能,属于全节点钱包的简化版,如挖矿功能、查询交易功能就没有。

  3. 3. 中心化资产托管钱包。这种钱包其实是第三方服务商帮助你打理你的数字货币,找一个中介托管你的数字货币,比较典型的有 blockchain.info。

附录:

OK 国际站:【www.okex.com】

火币网国际站:【www.huobi.pro】

币安:【www.binance.com】

中比特国际站:【www.zb.com】

中比特海外版:【www.exx.com】

比特儿海外版:【www.gate.io】

比特时代海外版:【www.aex.com】

元宝网海外版:【www.bcex.ca】

聚币海外版:【www.coinegg.com】

云币海外版:【www.big.one】

币久网海外版:【www.cex.com】

币赢网:【www.coinw.com】 kex:【www.kex.com】 国外交易平台 Bitfnex:【www.bitfnex.com】 B 网:【www.bittrex.com】 R 网:【www.rightbtc.com】 P 网:【www.poloniex.com】 L 网:【liqui.io】 H 网:【hashtoken.co】 CEO:【www.bite.ceo】

BTBT:【www.btbt.top】 HitBTC:【hitbtc.com】 bithumb:【www.bithumb.com】 coincheck:【coincheck.com/cn/】 bit-z:【www.bit-z.com 】 去中心化交易平台 以德:【etherdelta.com】 比特股:【bitshares.org/wallet/#】 场外交易平台 local:【localbitcoins.com/zh-cn】 可盈可乐:【www.coincola.com/】 比特币世界【www.bitcoinworld.com/】 元宝场外交易【www.otc789.com/】 电脑看行情网站 非小号:【www.feixiaohao.com】 手机看行情软件:mytoken,aicoin 比特币、区块链新闻网站 金色财经:【www.jinse.com】 巴比特:【www.8btc.com】 bitcoin86:【www.bitcoin86.com

最主流区块链项目有哪些?#

于比特币项目已经为大家所熟知,所以在这里,我就简单介绍一下参数,不再过多介绍。总体来看,比特币的市值和交易量远远超过其他区块链项目。比特币的发布时间为 2009 年 1 月 9 号,预计它的挖矿可以一直持续到 2140 年,发行总量收敛到 2100 万。比特币的出块时间是 10 分钟,

出块时间是指全网平均产生一个区块的时间间隔。比特币是所有数字资产的始祖,这带来的效果就是:比特币的公众认可度非常高,纵然面临着矿池中心化 (关于矿池中心化的问题会在后面的 “深入区块链技术” 部分内讲解)的问题,但是公众依然非常信任比特币这种资产。

比特币曾经面临过区块容量不足的问题,但随着隔离见证(关于隔离见证的问题,也会在后面 “深入区块链技术” 的部分进行讲解)的生效,网络拥堵的问题缓解了很多。具体细节我们留到 “比特币专题” 中再做详细叙述。

  1. 1. 以太坊 以太坊是一个区块链应用平台,它的极大创新在于它提供了智能合约这种可以自定义业务逻辑的工具,智能合约是一种可编程的合约,合约是由用户编写并且部署到区块链上的。 以太坊的优势是为全世界的开发者们提供了一种开发工具,这种工具让所有人都能释放出巨大的创造力,所以基本上可以看成:只要是有一定技术基础的开发者,通过智能合约可以随时为以太坊贡 献内容。这形成了一种良性循环,开发者使用智能合约的发现的问题提交给以太坊开发者社区,社区改进智能合约的缺陷,新的开发者基于智能合约开发多样性的工具包,这种核心开发者与社区互动 的良性循环是以太坊生态最重要的一部分。以太坊的口号是 “世界计算机”,从这句口号里,可见它野心的大小。在 2016 年的时候,以太坊的市值大约是比特币的十分之一,在 2017 年,这个数字已经达到四分之一。

以太坊在 2014 年开始众筹,2015 年 3 月份正式运行,它采取的共识机制是 PoW,但根据核心团队公布的方案,后期会逐渐迁移到 PoS 共识算法。以太坊的总发行量是:6000 万 +1872 万 / 年, 目前的区块时间是 12 秒。同时我们从以太坊社区可以看到,以太坊绝大部分开发流程和智能合约都已经形成行业标准,比如常见的 ERC20 代币标准,ERC725 身份标准。 而 ERC20 代币标准,则为智能合约指明了主要的业务方向:数字资产,有的叫智能资产,它们的含义差不多。以太坊 2017 价格大幅上涨,最直接的原因就是:ERC20 代币成为事实意义上的区块链标准资产

  1. 1. 瑞波币 瑞波币(Ripple)是一个比较另类的区块链项目,因为从本质上来说,它更像是一种支付结算协议,瑞波币不需要挖矿,它是通过一种叫 “Open Coin” 的算法,提供瑞波协议共识来达到记账的目 的。

瑞波币旨在为全球跨境机构提供了高效率的支付过程,提供较好的全球支付体验。因为涉及了机构之间的资产转移,瑞波币被设计成需要准入许可才能进入瑞波的支付网络,这一点有些像我们所说 的联盟链。

瑞波团队掌握了一半以上的瑞波币,所以瑞波币面临的币价被操纵的问题很严重。如果你是一个技术极客,那么你可以略过该项目。如果你想创建一个有关支付结算的区块链项目,那么一定要研究瑞波币。

  1. 1. 莱特币 如果我们仔细观察,会发现比特币的 Logo 颜色为金色,而莱特币的 Logo 的颜色为银色。一金一银,相信你应该明白莱特币的定位了。莱特币在技术上仅仅把比特币的挖矿算法修改成了 Scrypt 算法,Scrypt 算法是一个可参数化、可配置的挖矿算法,不过它依然没有防住专业矿机的出现。它的其他核心代码几乎与比特币保持一致。莱特币的崛起得益于良好的市场运作,从提供的功能来看,莱特币与比特币没有区别。那么说,为什么还要有莱特币呢?是这样的,比特币扩容之争的核心焦点在是否使用 “隔离见证” 的方法,我们其实知道,“隔离见证” 虽然在比特币社区提出,但是第一个应用的地方是莱特币,相信你能看出这里的逻辑,即:莱特币作为比特币的先行者,它会替代比特币做一些具有实验性质的试运行。

  2. 2. 比特现金 目前比特现金市值排名基本在 Top5 左右,与比特币相比,比特现金仅仅是从区块容量上高于比特币,其他技术上的区别并不是很大。

image

比特币全球节点图,图来自网络) 全节点与 SPV 简化支付验证客户端之间的交互模式,更接近半中心化的拓扑结构,也就是 SPV 节点可以随机选择一个全节点进行连接,这个全节点会成为 SPV 节点的代理,帮助 SPV 节点广播交 易。 节点发现 节点发现是任何区块链节点接入区块链 P2P 网络的第一步。这与你孤身一人去陌生地方旅游一样,如果没有地图和导航,那你只能拽附近的人问路,“拽附近的人问路” 的这个动作就可以理解成节点 发现。节点发现可分为初始节点发现,和启动后节点发现。初始节点发现就是说你的全节点是刚下载的,第一次运行,什么节点数据都没有。启动后发现表示正在运行的钱包已经能跟随网络动态维护可用 节点。

  1. 1. 初始节点发现 在比特币网络中,初始节点发现一共有两种方式。第一种叫做 DNS-seed,又称 DNS 种子节点,DNS 就是中心化域名查询服务,比特币的社区维护者会维护一些域名。 比如 seed.bitcoin.sipa.be 这个域名就是由比特币的核心开发者 Sipa 维护的,如果我们通过 nslookup 会发现大约二十多个 A 纪录的 IPv4 主机地址。

我们通过 nc 命令尝试连接域名下的某个主机的 8333 端口会发现连接成功,运行结构如下。 chenhao@chenhaodeMacBook-Pro ~ nc -nvv 149.202.179.35 8333 found 0 associations found 1 connections: 1: fags=82<CONNECTED,PREFERRED> outif en0 src 192.168.1.104 port 62125 ds 149.202.179.35 port 8333 rank info not available TCP aux info available Connection to 149.202.179.35 port 8333 [tcp/*] succeeded!

好的,到目前为止我们已经手动做了一遍初始节点发现的工作,这些操作是由比特币的代码完成的。第二种方式就是,代码中硬编码( hard-code )了一些地址,这些地址我们称之为种子节点 (seed-node),当所有的种子节点全部失效时,全节点会尝试连接这些种子节点。用在以太坊中,思路也大致相同,也是在代码中硬编码(hard-code)了一些种子节点做类似的工作。

  1. 1. 启动后节点发现 在 Bitcoin 的网络中,一个节点可以将自己维护的对等节点列表 (peer list) 发送给临近节点,所以在初始节点发现之后,你的节点要做的第一件事情就是向对方要列表:“快把你的节点列表给我复制一份。” 所以在每次需要发送协议消息的时候,它会花费固定的时间尝试和已存的节点列表中的节点建立链接,如果有任何一个节点在超时之前可以连接上,就不用去 DNS seed 获取地址,一般来说,这种 可能性很小,尤其是全节点数目非常多的情况下。而在以太坊网络中,也会维护类似的一个节点列表 (NodeTable) ,但是这个节点列表与比特币的简单维护不同,它采用了 P2P 网络协议中一个成熟的算法,叫做 Kademlia 网络,简称 KAD 网络。它使用了 DHT 来定位资源,全称 Distributed Hash Table ,中文名为分布式哈希表。KAD 网络会维护一个路由表,用于快速定位目标节点。由于 KAD 网络基于 UDP 通信协议,所以以太坊节点的节点发现是基于 UDP 的,如果找到节点以后,数据交互又会切换到 TCP 协议上。

  2. 2. 黑名单与长连接 公有区块链面临的网络环境是非常开放的,任何人只要下载好钱包,打开运行就进入了这个 P2P 网络,这也会带来被攻击的可能。所以在比特币的代码中,会有一段去控制逻辑,你可以手动将你认为可疑的节点移除并加入禁止列表,同时去配置可信的节点。当然,以上并不属于客户端的标准协议的一部分,任何人都可以实现属于自己的 P2P 网络层。以太坊上有针对账户进行的黑名单处理,但是这属于业务层。我没有找到很详尽的资料,所以你有兴趣的话,可以自己尝试一下。不过总的来说,黑名单我们也可以通过操作系统的防火墙去处理,这并不算一个特别棘手的问题。

局域网穿透 前面我们说到了区块链的 P2P 网络结构是一种全分布式的拓扑结构。但是,如今我们的网络环境是由局域网和互联网组成的。也就是说,当你在局域网运行一个区块链节点,在公网是发现不了的, 公网上的节点只能被动接受连接,并不能主动发起连接。如果这个局域网是你可以控制的,那么很好说,咱们只需要在 VPC 网络中配置路由,将公网 IP 和端口映射到局域网中你的 IP 和端口即可。 这个条件是非常苛刻的,那么到底有没有一种方案可以自行建立映射呢?答案是:有,就是 NAT 技术和 UPnP 协议。NAT 技术非常常见,这里使用的是源 NAT,简而言之就是替换 TCP 报文中的源地址并映射到内网地址。

UPnP 是通用即插即用(Universal Plug and Play)的缩写,它主要用于设备的智能互联互通,所有在网络上的设备马上就能知道有新设备加入。这些设备彼此之间能互相通信,更能直接使用或者控制它,一切都不需要人工设置。有关 UPnP 的资料比较多,这里就不赘述了,你可以自行搜索相关的信息。比特币和以太坊均使用了 UPnP 协议作为局域网穿透工具,只要局域网中的路由设备支持 NAT 网关功能、支持 UPnP 协议,即可将你的区块链节点自动映射到公网上。

节点交互协议 一旦节点建立连接以后,节点之间的交互是遵循一些特定的命令,这些命令写在消息的头部,消息体写的则是消息内容。命令分为两种,一种是请求命令,一种是数据交互命令。

节点连接完成要做的第一件事情叫做握手操作。这一点在比特币和以太坊上的流程是差不多的,就是相互问候一下,提供一些简要信息。比如先交换一下版本号,看看是否兼容。只是以太坊为握手过程提供了对称加密,而比特币没有。握手完毕之后,无论交互什么信息,都是需要保持长连接的,在比特币上有 PING/PONG 这两种类型的消息,这很明显就是用于保持节点之间长连接的心跳而设计的;而在以太坊的设计中,将 PING/PONG 协议移到了节点发现的过程中。请求命令一般分为发起者请求,比如比特币中的 getaddr 命令是为了获取对方的可用节点列表,inv 命令则提供了数据传输,消息体中会包含一个数据向量。

我们说区块链最重要的功能就是同步区块链,而同步区块恰巧是最考验 P2P 网络能力的。区块同步方式分为两种,第一种叫做 HeaderFirst,它提供了区块头先同步,同步完成以后再从其他节点获得 区块体。第二种叫做 BlockFirst,这种区块同步的方式比较简单粗暴,就是从其他节点获取区块必须是完整的。第一种方案提供了较好的交互过程,减轻了网络负担。这两种同步方式会直接体现在节点交互协议上,他们使用的命令逻辑完全不同。

区块链的 P2P 网络结构与节点交互过程,一般 P2P 网络技术要解决两个主要问题,第一是资源定位,第二是资源获取,这一篇文章也是主要围绕这两点展开,其中节点发现和局域网穿透是属于资源定位问题,节点交互协议是属于资源获取问题。比特币和以太坊为例进行分享,虽然区块链项目比较多,但是他们要做的事情大多是类似的,比如以太坊是改进版的实现,而比特币使用了简单版实现。

image

矿池作为一个中心节点,可以被矿工连接,而在比特币全网来看,矿池节点本质上也只是一个全节点,它与其他全节点一起组成了比特币的点对点网络,特殊的地方仅仅在于它可以产生新的区块

把 CAP 做一个可视化处理,就构建出来一个三角形分布,我们可以得到下图:

image

PoW、PoS 型公链偏好 AP 特性,于是 TPS 有限。联盟链以及 DPoS 型共识偏好比较均匀,可以达到可观的 TPS。传统数据中心往往不考虑 P 在第二层语义上的问题,更不考虑拜占庭容错问题,所以他们拥有更好的 TPS,但是在网络分区和出现拜占庭错误的时候,表现得不尽如人意。这些共识机制在不同场景中可以有不同的选择,不存在适用所有场景的的共识机制。 业界的 可选方案之一:Sharding 分片 好了,我们在上文讨论了 CAP 定理对区块链的影响,那么业界也还是使出了浑身解数来尽可能地提升 TPS。目前一共有两种正在讨论的方案,分别是 Sharding 分片技术和闪电网络。闪电网络旨在解决比特币微小额支付的实时性问题,其中的算法是比特币 TPS 扩展的一种方案,这部分的详细内容我们留到比特币专题再进行讲解。这两种方案不涉及修改共识机制。如果我们修改为 DPoS 共识机制、DAG 共识算法

也可以提升 TPS,不过不在本篇的讨论范围。DAG 共识机制我们在后续文章进行深入讨论。分片技术是一种安装传统数据库分片的扩展,主要思路是将数据库分成多个分区(碎片)并将分区放置在不同的服务器上。

在区块链场景下,全网的节点相当于于分布式数据库中的不同服务器,这时候我们可以将交易分成不同的部分,然后每个记账节点只需要验证交易的一部分即可,而不必验证完整的交易性。 这带来的好处是就是并行化处理,记账节点之间相当于是协作关系,而不再是单纯的独立关系。随着网络的增长,这种协作关系也可以随之扩展,这种扩展也叫做水平扩容。分片技术有以下优势:首先是 TPS 可以从十几笔提升至少两个数量级,也就是千笔每秒,这不但对应用友好,也提升了用户体验;其次 TPS 的提升可以带来更多应用,这些应用在共识的激励下可以水平扩展区块链的性能,形成一种良性循环

萨博提出的是智能合约的概念,以及我们举的例子,都是广义的智能合约概念。智能合约具有多种实践形式,而在区块领域所说的智能合约概念,我们其实是指 Blockchain-based 这种形式。 在萨博的智能合约概念中提到了开放式网络,而我们知道开放式网络的基本要求就是拜占庭容错,通过前面文章的讲解我们知道,区块链天然具有拜占庭容错特性。所以如果在区块链上实践智能合 约这个概念,两者会非常契合,天造地设。

首先实践了智能合约这一概念的是比特币,比特币脚本(bitcoin script)包含了 5 种标准交易脚本,这些脚本的功能不仅仅提供了普通单人支付的情况,它还提供了多方共同签名支付的脚本,叫做多重签名支付,多重签名支付可以看成是萨博语义下的智能合约。除了比特币,发扬光大智能合约这个概念的区块链项目就是以太坊了,下面,我重点来介绍一下以

太坊项目。#

以太坊及其发展历史 以太坊 Ethereum 项目的目标是打造一个去中心化的新一代互联网应用平台,这个平台称作 Dapp 平台。这些 Dapp 基于以太坊智能合约虚拟机开发、编译、部署,并且可以自定义业务逻辑,部署后全网 可见且自动执行,理想情况下不存在宕机、审查、欺诈、第三方干预的情况。

2013 年底以太坊的创始人 Vitalik 在比特币开发者社区提出了可以运行图灵完备(Turingcomplete)形式的应用,但这一思想并没有得到比特币社区的支持 2014 年,Vitalik 带着自己的想法,宣布以太坊项目正式成立,2014 年上半年开始筹集资金,聚拢一些早期开发者,同年 7 月份进行了为期 42 天的 ICO,共筹集了超过 1800 万美元的比特币。

2015 年 7 月,第一个版本的以太坊发布,主网正式上线,这一阶段 Bug 和设计缺陷较多,多是开发者在使用。

2016 年以太坊发布第二个大版本 Homestead,用户逐渐多了起来,同期也吸纳了不少 Dapp 开发者。

2016 年 6 月,以太坊上发生了著名的黑天鹅事件 ——TheDAO 事件,这打开了 ICO 市场,同时也造成了以太坊社区分叉,形成了以太坊和以太坊经典两个代币。

2017 年 4 月,ICO 风靡中国,ERC20 提供了低成本方便高效的资金募集方式,为 ICO 提供了极大的便利,趁着数字货币牛市,以太坊的价格涨幅达十多倍,2018 年 1 月以太坊价格突破 1000 美元。

以太坊的核心概念#

以太坊核心概念包括:智能合约虚拟机 EVM 和 Solidity 编程语言、账户模型、以太币和 Gas,交易和消息。

  1. 1. 智能合约虚拟机 EVM 和 Solidity 编程语言 以太坊的核心概念首先是智能合约。 智能合约包含两部分,一部分是开发语言,主要以 Solidity 为主,Solidity 与 Javascript 语言在使用上十分接近,这极大地降低了 Dapp 开发人员的学习成本。Dapp 开发者编写好代码以后,使用 Solidity 编译成十六进制字节码,然后部署到 EVM 上,也就是把合约广播到全网,等矿工打包后后就形成了常年运行的 Dapp 了。另一部分就是 EVM。 EVM 是以太坊智能合约虚拟机,我们可以等价理解它为 Javascript、Python 等脚本语言的执行引擎。它是一个轻量级的虚拟机隔离环境,它并不提供访问本地网络、进程、文件系统的功能,它更像是一个封闭的容器,这个容器里面装了一个正在运行 Dapp,可以看成是无法和外界交互的 Docker Container。 Dapp 在运行过程中,可以被请求或其他事件触发,然后执行相应的逻辑,这些请求和事件是由以太坊上的交易产生的,不是来自本地操作系统的事件。Dapp 运行过程中,每次状态发生变化,则意味着全网同步更新,大家的计算结果都是一致的,这有两个特性:

  2. 2. 所有 Dapp 的计算结果经过全网共识,一旦确认过几乎无法被伪造和篡改;

  3. 3. 由于必须经过全网共识,所以这限制了整个网络的容量。

  4. 4. 账户模型 以太坊并没有采用 UTXO 模型,也不同于银行账户,它是由以太坊开发者设计了自己的账户模型。以太坊上的账户有两种类型,第一类叫做合约账户 CA(Contracts Accounts),第二类叫做外部账 户 EOA(Externally Owned Accounts)。

简单理解就是:CA 是智能合约代码用的账户,EOA 是人用的账户;所以 CA 可以存储并执行智能合约代码,它的智能被 EOA 激活,它也不保存和存储私钥,合约账户可以调用其他合约。EOA 则是人们直接控制的账户,可以存储以太币,可以发送交易到合约账户,触发既定的逻辑。EOA 账户由公钥标识,由对应的私钥控制。当合约账户被调用时,存储其中的智能合约可以在矿工处的虚拟机中自动执行,并消耗 Gas,如果 Gas 不足则会触发 “Out of Gas” 异常,被终止执行。无论是 CA 还是 EOA,在以太坊内部都被看做状态对象(state objects),意思就是说这些账户都有自己的状态,EOA 具有以太币余额的状态,而 CA 除了余额,还多了合约存储状态。

  1. 1. 以太币和 Gas Gas 是执行智能合约操作的燃料,智能合约的每一个步骤都会消耗 Gas,Gas 是由以太坊的平台代币以太币转化而来,最小单位是 wei,1ETH 相当于 10 的 18 次方 wei。以太币可以通过 PoW 挖矿而产生,目前以太坊主要通过 GPU 挖矿。挖出一个块可以换得 5 个以太币,并且还有一定的交易费、以及叔伯块的奖励。今年 4 月 6 日爆出著名矿机芯片厂商比特大陆已经开发出针对以太坊的 ASIC 专业矿机,相比 GPU 的效率提升 2.5 倍。

  2. 2. 交易和消息 以太坊上的交易与比特币中的 UTXO 交易不同,它是指 EOA 账户将一个经过签名的数据包发送到另外一个账户的过程,这个过程产生的账户状态变化将被存储到以太坊区块链上。以太坊上除了交易还有消息这个概念消息指一个合约账户调用其他合约账户的过程,可以类比函数调用过程。所以以太坊上的 Dapp 如果被触发,有两种可能,第一种是交易触发,第二种是消息触发。这两种的区别在于前者是 EOA 发起的,后者只能是其他合约账户发起的。状态对象的状态变化被以太坊共识机制的记录下来,交易和消息驱动着状态的变化,

于是,在一个开放式的网络中构建一个全球共享的 Dapp 变得十分方便。以太坊上智能合约具有全网准实时同步、准确执行、去中心化运行、较低的人为干预风险等特性,EVM 和 Solidity 为全球开发者提供了较低的进入门槛。

与比特币的主要区别 以太坊项目又被称作区块链 2.0 项目,这里 2.0 就是指智能合约。那么以太坊与比特币相比,到底智能在那里呢?我们具体来看看。

与比特币相比,以太坊首先不是一个单纯的数字货币项目,它可以提供全世界无差别的区块链智能合约应用平台,这个平台基于我们前面文章所介绍的区块链四大核心技术要素,即 P2P 网络、共识 机制、账户模型、加密模块。除了以上的四个技术要素,以太坊还推出了 EVM—— 以太坊智能合约虚拟机,并且,它还推出了自己的智能合约语言 Solidity。于是,区块链的开发者因为智能合约的出现开始分为两类

第一类是公链底层开发者,主要是以

C++ 和 Go 语言为主的全节点开发者,他们需要对区块链各个技术模块有很深的理解。第二类是智能合约开发者,也就是应用开发者,这类开发者对区块链的运行原理不需要理解很深,只需要会编写 Solidity,了解规范即可。

除了以太坊智能合约这个概念以外,它还设计了下面的内容。

  1. 1. 研究并实现了自己的 PoW 挖矿算法 ——ETHASH,这是一个内存困难型的挖矿算法。

  2. 2. 叔伯块激励机制,降低了挖矿中心化的趋势。 取消了 UTXO 模型,采用了账户模型和世界状态,提供了数据结构的可塑性。

  3. 3. 设计了 Gas 机制,避免程序死循环消耗全网资源的情况出现。 研究并实现了自己的 PoS 共识算法 ——Casper,可防止 Noth

参考链接:

  1. 1.EOS.IO 技术白皮书

  2. 2.https://github.com/EOSIO/eos/wiki

  3. 3.https://steemit.com/cn/@niking/iota

  4. 4.https://docs.iota.org/introduction

  5. 5.https://whycardano.com/cn/

  6. 6.https://iohk.io/blog/ouroboros-at-crypto-2017/

小蚁 NEO

  1. 1. 简介 我们以前讲到过,NEO 的前身是小蚁,小蚁最早在 20 简介 我们以前讲到过,NEO 的前身是小蚁,小蚁最早在 2015 年发起,它在 2017 年中正式更名为 NEO。 NEO 项目一共经历过两次 ICO,第一次 ICO 是项目创立,第二次 ICO 是项目更名后的品牌升级。可以说通过 NEO 项目的起起落落见证了整个国内区块链项目的发展。在重做了市值管理和社区建设后,NEO 成为了市值 TOP10 区块链项目之一

数字资产:数字资产是以电子数据的形式存在的可编程控制的资产,NEO 在底层也直接支持类似 ERC20 的 Token 机制,所以用户可以在 NEO 上自行注册登记资产、交易和流转。它也通 过数字身份解决与实体资产的映射关系,用户通过正规的数字身份所注册登记的资产受到法律的保护。

数字身份:数字身份是指以电子数据形式存在的个人、组织、事物的身份信息,NEO 将实现一套兼容 X.509 的数字身份标准以及支持 Web Of Trust 式的点对点的证书签发模式。 智能合约:NEO 上的智能合约与以太坊不同,叫做 NeoContract。这套智能合约体系的最大特 C#、Java 等主流编程语言,所以开发者可以在熟悉的 IDE 环境(Visual Studio、Eclipse 等)中进行智能合约的开发、调试、编译。NEO 的通用轻量级虚拟机 Neo VM 具有高确定性、高并发性、高扩展性等优点。

  1. 1. 技术特点 NEO 采用了 PBFT 类的共识算法。NEO 的修改版为 dBFT 共识算法,这里 d 为 Delegated,就是代理人的意思。所有的 PBFT 类算法都有个特性,就是通信复杂度是节点数量的平方次,例如 7 个节点出一次块至少通信 72 次,对网络带宽要求很高。所以记账节点一般不会很多,它带来的优势就是 TPS 较高,并且不会分叉。自成一派的智能合约体系。这里降低了智能合约开发者的局限性,不必使用 Solidity 语言开发。

C# 技术生态。NEO 的主要实现都是 C# 语言编写的,得益于.Net Core 的开源,NEO 的技术生态也在一直扩张。Token 体系。提供了等价于以太坊 ERC20 的 NEP-5 Token 体系。

元界 Metaverse

  1. 1. 简介 元界是我所主导的一个开源区块链项目,项目于 2016 年 8 月发起,经过了 5 个月开发和测试,于 2017 年 2 月份上线。 元界是一个关注社会和商业需求的区块链项目,目标是构建以数字资产(Metavase Smart Token)和数字身份 (Avatar) 为基础新型区块链生态,这种生态会为人类社会带来深刻的变革。 除了数字资产和数字身份两个概念,我们还提出了 BISC 内置智能合约和 BaaS 区块链即服务的概念,并把数字身份作了延伸,提出了 Oracle 价值中介(此 Oracle 非彼 Oracle)。 总体思路是总结人与人、人与资产之间的关系,把总结后的通用需求抽象成模型,然后做到区块链底层供使用者方便使用,这种方式我们叫做 BISC(Buit-in Smart Contract)内置智能合约,它可以 降低商业应用在开发和使用过程中的技术风险。 通过 BISC,元界提供了数字资产 MST、数字身份 Avatar、Oracle 以及资产交易的功能,这一切都是围绕资产和人来展开的。数字资产 MST 可以让人们获得区块链带来的点对点操作资产的优势,数字身份 Avatar 体现了人与人、人与资产之间的关系。 它可以连接到 MST 上,通过 Avatar 任何人都可以成为 Oracle,Oracle 可以帮助人们构建不可篡改的去中心化信誉系统,资产交易可以为 MST 解决基础的流动性需求。 人们将区块链作为基础服务植入 IT 系统中的过程叫做 BaaS(Blockchain As A Service),BaaS 是一种快速、方便构建区块链应用的方式。

  2. 2. 技术特点 延续并扩展了 UTXO 模型,一切皆 UTXO 为资产和身份带来了良好的安全性。内置 BISC,没有为用户提供自己编写智能合约的功能,提高了安全性,降低了多样性。 PoW 挖矿,与以太坊的 PoW 挖矿算法兼容。内置了数字身份,提供了基于数字身份的域名系统,可以连接到数字资产上。

默认提供 HD 类型的主私钥账户体系。 块上限是 1MB,但出块速度是 33 秒,所以 TPS 大约是比特币的 18 倍。提供等价于 ERC20 的 MST Token 体系。

比原链 Bytom

  1. 1. 简介 比原链是一种多元的资产交互协议。简单来理解也是做数字资产的,不过换了种说法,理念稍不同。比原链认为在区块链上存在两种不同形态资产。
  • 比特资产:是指区块链上原生的数字货币、数字资产,例如比特币、以太币;

  • 原子资产:对应到现实世界的资产,例如权证、权益、股息、债券、情报资讯、预测信息等。 人们可以通过比原链进行对上述两种资产进行登记、交换、对赌、甚至基于合约的更具复杂性的交互操作。目的是连通原子世界与比特世界,促进资产在两个世界间的交互和流转。

  • 比原链采用三层架构。

  1. 1. 应用层对移动终端等多终端友好,方便开发者便捷开发出资产管理应用;

  2. 2. 合约层采用创世合约和控制合约进行资产的发行和管理,在底层支持扩展的 UTXO 模型 BUTXO, 对虚拟机做了优化,采用自省机制以防止图灵完备中的死状态;

  3. 3. 数据层使用分布式账本技术,实现资产的发行、花费、交换等操作。

  4. 4. 技术特点 共识算法是 PoW,属于忠实的比特币 PoW 党。 挖矿算法采用对人工智能 ASIC 芯片友好型算法,在哈希过程中引入矩阵和卷积计算,使得矿机在闲置或被淘汰后,可用于 AI 硬件加速服务,从而产生额外的社会效益。 兼容比特币 UTXO 模型。默认提供了基于 HD 的主私钥账户体系。加密模块提供了基于国密 SM2、SM3 标准算法。植入了隔离见证设计。本体网络 Ontology Network

本体网络是一个主打构建分布式信任体系的区块链项目,支持多链、多系统融合的协议网络,不同的链和不同的系统都可以通过本体的信任协议进行协作。 本体包含独立的分布式账本、P2P 网络协议、模块化的共识协议组,模块化的智能合约机制几个主要模块。

本体的产品形式是 ONTO,ONTO 是基于本体的综合客户端产品、区块链搜索引擎和区块链体系的入口。

ONTO 将帮助用户实现包括数字身份管理、数字资产管理、分布式数据交换等综合性功能,ONTO 可以将数字身份与现实身份进行映射关联,用户可以利用这款产品建立自己的数字身份和多维的身份画像,通过密码学算法实现隐私保护。

本体主要提供了以下三种协议。

  1. 1. 提供分布式身份管理框架 (ONT ID),一个基于 W3C 的 DID 规范构建的去中心化的身份标 识协议。

  2. 2. 提供分布式数据交易协议 (ONT DATA ),用于构建去中心化数据交易应用框架。

  3. 3. 提供了信用评分协议(ONT Scores),支持建立开发不同的声誉评价逻辑,提供评级授权与审计功能。 支撑这些协议的是 ONT 公链,以及 ONT 区块链高性能可定制化框架。

  4. 4. 技术特点 基于账户模型,并保留 UTXO 模型。共识算法采用 VBFT,它是结合 PoS、VRF (Verifable Random Function) 和 BFT 的全新共识算法。模块化的智能合约,提供 WASM 和 NEO VM 两种。

公链的三大件数字身份,数字资产,智能合约。其实映生产资料,价值,生产关系。通过生产关系进行生产资料的重组与搭配,创造价值。

超级账本由 Linux 基金会主持,宗旨是构建一个面向企业应用场景的开源分布式账本技术平台。因为企业应用场景的多样性,所以超级账本包含了不只一个项目,它是由多个项目组成的。一共 9 个项目,其中 5 个是主要的技术框架,其他 4 个是辅助性工具。

它的主要技术框架分别是下面的 5 种。 1.Hyperledger Fabric :没有中文名,暂译【纺布克】,是 IBM 提供的,超级账本第一个项目。 纺布克旨在用模块化架构作为开发区块链程序或解决方案的基础,允许一些组件 —— 例如共识算法 和成员管理变成即插即用的服务。

2.Hyperledger Sawtooth:中文名【锯齿湖】,Intel 提供,是超级账本第二个项目。 锯齿湖是一个可以创建、部署和运行分布式账本的模块化平台,基于硬件依赖的 PoET 共识,可以面向大型分布 式验证器群,同时也比较低功耗。

3.Hyperledger Iroha:没有中文名,暂译【伊路哈】,由 Soramitsu 提供。 伊路哈是为了将分布 式账本技术简单容易地与基础架构型项目集成而设计的一个区块链框架。

4.Hyperledger Burrow:没有中文名,暂译【掘地者】,由 Monax 提供。 掘地者提供了一个模块化的区块链客户端,提供了权限管理的智能合约虚拟机,它部分建立在以太坊虚拟机 (EVM)规范的基础上。

5.Hyperledger Indy:没有中文名,暂译【因迪】。 因迪是特别为去中心化的身份而建立的一种分布式账本。它提供了基于区块链或者其它分布式账本互操作来创建和使用独立数字身份的工具、 代码库和可以重用的组件。

联盟链的困境 超级账本系列技术框架很好地诠释了分布式账本技术走到极致是什么样子的。这里也可以看出,几乎所有的超级账本项目都是技术主导,技术的强大也让他们忽视了市场的真实

需求。 联盟链是少数节点之间的活动,它往往退化成微观经济中的博弈,所以利用联盟链构建少数节点之间的协作系统不是一个技术问题,而是变成了如何构造一个稳定的微观经济模型使得协作者可以达成帕累托改进,在这里,技术变成了次要的。

再好的技术工具如果不结合有效的激励和反馈机制,那么联盟链的应用落地过程似乎变得异常艰难,它很可能最后沦落为普通的分布式系统,这个分布式系统仍然是中心化的。,为什么我们不用已经成熟的技术框架,非要用联盟链技术框架呢?这就是我认为联盟链最大的困境,它是一杆加农炮,但是并没有人来我们这杆加农炮告诉可以解决什么问题

参考引用:

  1. 1.https://www.slideshare.net/ormium/architecture-of-the-hyperledger-blockchain-fabricchristian-cachin-ibm-research-zurich

  2. 2.http://thesecretlivesofdata.com/raft/

  3. 3.https://intelledger.github.io/introduction.html#proof-of-elapsed-time-poet

  4. 4.https://github.com/hyperledger/burrow

  5. 5.https://github.com/hyperledger/iroha

  6. 6.https://github.com/hyperledger/indy-plenum/blob/master/docs/main.md

  7. 7.https://wiki.hyperledger.org/projects/indy

  8. 8.https://github.com/hyperledger/indy-node

  9. 9.https://www.hyperledger.org/wp-content/uploads/2018/01/Hyperledger_Sawtooth_FAQ.pdf

  10. 10.https://medium.com/kokster/understanding-hyperledger-sawtooth-proof-of-elapsed-timee0c303577ec1

  11. 11.https://www.hyperledger.org/wpcontent/uploads/2017/08/Hyperledger_Arch_WG_Paper_1_Consensus.pdf

  12. 12.http://blockchaindev.org/archives/08-on-limitation-of-private-chain.html

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.