首页 快讯 科威特国民银行推出RippleNet支持的跨境支付服务

科威特国民银行推出RippleNet支持的跨境支付服务

来源: Tokenpost
2018/12/27 16:45
科威特国民银行(NBK)宣布推出由Ripple的区块链技术支持的跨境支付服务。该服务目前允许汇款到约旦,并将很快为更多国家增加服务。

扫一扫,关注区块链在线

区块链数字货币新闻、区块链项目信息、区块链技术分享就在 区块链在线

热门话题 更多
  • 比特大陆固件居然存在大量漏洞?

    虽说比特大陆目前运营比较艰难,亏损惨重,许多部门都面临着裁员。但屋漏偏逢连夜雨,它的旗舰产品现在出现了一个固件漏洞。 几周前,比特币核心开发James Hilliard发现比特大陆的S15的固件漏洞。Twitter用户00whiterabbit后来根据Hilliard的发现深入研究了漏洞代码。上周,Hilliard的Twitter账户上分享了一段视频,证明该漏洞代码有效。 Hilliard提出会披露比特大陆的漏洞,但希望一个条件能被满足:比特大陆必须遵守GNU通用公共许可证(GNU General Public License,简称GNU GPL)并进行固件开源。 Hilliard说,“比特币大陆固件中存在着很多漏洞,修复比特大陆的漏洞会对比特币网络的发展非常重要。” 漏洞 Hilliard以提出BIP91而在社区内享有一定声誉。几周前,他在审核比特大陆支持站点上的固件更新文件里发现了这个漏洞。虽然细节尚未披露,但他在该公司存储的最强大的SHA256矿机S15的固件中发现了这一漏洞。Hilliard认为,几乎可以肯定,比特大陆的所有矿机都或多或少地存在同样的漏洞。 “我也很确定固件中还有很多其他漏洞,”他补充道。“在安全性方面,设计的非常糟糕。” 该漏洞允许用户对计算机进行直接的源码访问——这样做很危险。理论上,只需要通过控制矿工的IP地址远程就可以操作,这意味着可以对矿机进行重新编程。这么做可以把挖到的BTC转移到另一个比特币地址,或者让矿机完全停止工作。同时,硬件本身也可以被完全不同的其他硬件替换(如Braiins OS或Dragonmintfirmware)。 然而,实际上根本不可能远程操控这些机器。首先,只要矿机有适当的防火墙或强大的用户名和密码保护,它就不能被攻破。其次,如果不能访问固件的源代码,就很难创建兼容的定制固件。因此,这种特定的风险可能也不是主要问题。但问题是,Hilliard认为,比特大陆的固件漏洞百出。 事实上,这已经不是第一次在比特大陆的固件中发现漏洞了。2017年初,一位匿名的安全工程师发现,几乎所有的蚂蚁矿机都可以在远程被关闭。之前的这一漏洞被称为“Antbleed”,因为它很可能会破坏比特币网络离线时的一半哈希算力。可以这么说,这不仅是蚂蚁矿机所有者的问题,也会对整个比特币网络造成一定的安全风险。 开源许可证 Hilliard和00whiterabbit还没有公布这个漏洞代码,但他们正在研发一个最终将发布的版本。两人愿意向比特大陆披露漏洞,让硬件生产商修复固件以及漏洞。但有一个前提,即比特大陆必须遵守GNU GPL。 比特大陆的固件是建立在Linux操作系统和cgminer:这是一个由Hilliard和其他工程师一同开发的开源挖矿软件。Linux和cgminer都是根据GNU GPL授权的。这种广泛使用的开源许可允许任何人都能自由地运行、研究、共享并修改代码——当然生成的软件本身也是免费的。 “因此,比特大陆的固件也应该是开源的,”Hilliard解释说。但比特大陆似乎并不关心是否遵循版权法。不幸的是,在比特币网络上使用闭源固件并不是一件好事,因为像Antbleed这样的事件可能隐藏其中。这是一种过于中心化的风险。 目前尚不清楚这家矿业巨头为何违反GNU GPL。Hilliard怀疑这“可能是为了防止用户过度使用他们的矿机,并降低相应成本”。其他人则表示,比特大陆可能更倾向于将固件源代码关闭,因为这会让攻击者更难找到漏洞。 到目前为止,比特大陆还没有对这个漏洞发表任何评论,它的固件仍然是闭源的。因此,没有理由相信该公司现在会改变现有方式——尽管Hilliard仍然希望比特大陆能遵守GPU GPL,并鼓励用户提交一个要求开放源代码的请求。 Hilliard说,“之前,可能是因为社区施压,比特大陆曾一度公开过代码。” 我们联系了比特大陆,询问了下该公司对Hilliard发现的漏洞了解多少,以及是否有修复该漏洞、是否有意向遵守GNU GPL的计划。作为回应,比特大陆的发言人发表了以下声明: “我们非常感谢开源社区发现了矿机固件潜在的漏洞,我们正在积极调查此事。我们将继续采取必要的措施,为蚂蚁矿机的用户提供最好、最安全的挖矿体验。” 更多数字货币信息:www.xixiaoche.cn/news
    2019-02-23 18:58 1385
  • 许可区块链解决方案的五个挑战以及解决问题的工具和协议

    实现许可的区块链解决方案既有趣又具有挑战性。每天,主流媒体上都有新文章声称,区块链技术将如何改变行业,但现实并没有那么迷人。区块链给已经建立的企业业务流程带来了巨大的价值,但是大多数被许可的区块链实现都没有通过试点阶段。在最初的兴奋之后,大多数团队意识到,要将新的Web3技术集成到现有的企业堆栈中,大规模实现许可的区块链应用程序需要大量的技术技能和基础设施构建。 在过去的一年里,Invector Labs的团队已经接触到了高度复杂的区块链场景,每个场景都有自己的一组基础设施挑战。在与经历过几次软件革命的技术人员分享我们的经验时,他们中的许多人将web应用程序的实现与Netscape早期的web应用程序或Oracle以及IBM DB2早期的数据库系统的实现相提并论。在这些实例中,这些技术的真实应用程序的用例比相应的基础设施发展得更快。这种动态与云计算或移动计算等最近的转型技术运动形成了鲜明对比,在这些技术运动中,基础设施从一开始就非常稳固。 获得许可的区块链解决方案的真正挑战是什么?从标识、数据存储、集成或消息传递等核心基础设施领域,到部署和管理智能合约的流程;获得许可的区块链应用程序要求开发人员在适当的位置设置正确的构建块,以提高效率。在Invector Labs,我们很幸运地试验了许多新的区块链协议或工具,我们经常使用这些协议或工具来解决许可的区块链实现所面临的挑战。不幸的是,根据底层的区块链堆栈,这些工具和技术看起来完全不同。 通往任何获得许可的区块链应用程序的道路都要从两个基本决定开始: 第一个问题的答案将决定区块链应用程序的核心开发堆栈。目前,像Hyperledger Fabric、Quorum或Parity这样的以太坊变体是区块链解决方案的主要选择,此外还有像R3 Corda或Hyperledger Sawtooth也有一定的吸引力。至少在纸面上,像Dfinity或Hashgraph这样的即将出现的堆栈似乎非常适合获得许可的区块链解决方案,但它们在实践中尚未得到证明。 第二个问题的答案将决定许可的区块链应用程序的核心基础结构。提供和维护内部区块链网络远非一件容易的事情,而且最受许可的区块链堆栈也不能很好地与Docker或Kubernetes等平台集成。区块链即服务 (BaaS)平台,如azure BaaS、Kaleido或最近AWS提供的服务,可以真正地简化区块链网络的供应和管理,允许开发人员专注于构建dApp,而不是基础设施。 下图说明了上述两个问题的决策过程。 获得许可的区块链应用程序的真正挑战 选择一个区块链平台和相应的运行时只是旅程的开始。任何经过许可的区块链解决方案,只要比经过美化的数据库更复杂,就会遇到底层平台无法直接解决的大量基础设施挑战。让我们来探索其中的一些。 集成 如果您在许可的区块链应用程序中使用智能合约,那么您可能会面临与API的脱链系统通信的挑战。Oracle是处理外部通信的区块链架构的组件。然而,实施Oracle是一项高度发展的工作。我们发现有几个技术在这方面很有帮助: ·Chainlink: Chainlink提供了一个简单的编程模型,可以将比特币或以太坊智能合约与外部输入连接起来。该框架还避免了依赖“集中的Oracle”作为单一故障点。 ·Rhombus: Rhombus是Oracle竞赛的最新参与者,它为以太坊智能合约与外部数据系统的连接提供了一个非常优雅的模型。Rhombus支持基于激活模式(如计划或按需)以及推或拉数据访问模式的不同Oracle架构。 ·Oraclize: Oraclize专注于将API和数据系统连接到不同的区块链,如Ethereum、EOS、Hyperledger Fabric或BlockApps。Oraclize的编程模型并不像其他替代方案那样丰富,但它通过对不同区块链的强大支持来弥补这一点。 数据访问 被许可的区块链对信息的书写很有帮助,但对信息的阅读却没什么帮助。大多数经过许可的区块链解决方案都需要与区块链中记录的数据交互,但是这些数据很难访问,而且非常难以理解。以下是一些帮助应对这一挑战的协议: ·图表: 图表提供了一种机制,用于将Ethereum智能契合约处理的数据公开为GraphQL端点。这允许外部应用程序使用熟悉的GraphQL syntaxs查询区块链数据。 数据隐私 许多获得许可的区块链场景在受监管的行业中运行,这些行业具有很强的数据隐私约束。因此,保护和加强对链上数据的访问控制是获得许可的区块链解决方案的关键要求。下面,我列出了一些我们发现在这方面有帮助的技术: · Quorum: Quorum区块链使用零知识证明的形式为私有事务提供本地支持。 · Aztec:最近宣布的Aztec协议在以太坊智能合约中提供了零知识隐私的可靠实现。 数据存储 区块链并不是存储大量数据的最佳工具。获得许可的区块链解决方案通常需要外部数据存储。不幸的是,许多适合公共区块链的分散化存储解决方案并不适用于许可的区块链场景。以下是这方面的一些解决方案: ·BigchainDB:  BigchainDB为事务的存储和查询提供了一个经过优化的分散式数据库模型。可以使用MongoDB查询语言来查询BigchainDB中的数据,MongoDB查询语言支持丰富的数据访问交互。 ·IPFS专用网: IPFS是区块链应用最流行的存储系统,但通常被视为区块链的公共解决方案。但是,IPFS支持将通信限制到一组已知节点的私有网络的配置。 ·AWS量子账本: 我们对即将发布的AWS量子账本数据库非常感兴趣。在许多获得许可的区块链场景中,没有共识的不变性概念当然是切实可行的,如果没有ese,量子账本也可以成为私有分散式应用程序的补充存储模型。 身份 在许可的区块链解决方案网络中参与者的身份相对来说是众所周知的。因此,许多复杂的协商共识计算协议在这些场景中是多余的。此外,大多数企业已经拥有了它们希望在许可的区块链解决方案中利用的用户目录。下面列出的技术有助于处理许可的区块链解决方案中的标识: ·uPort: uPort一直在稳步构建一系列用于管理分散式应用中的身份协议和解决方案。当前堆栈与以太坊智能合约兼容,可以在许可的区块链应用程序中使用 ·Azure BaaS: Azure团队出色地扩展了不同区块链的核心协议,以利用Azure Active Directory身份。最近的一个例子是在以太坊应用程序中实现了权威验证协商共识协议。 在消息传递、测试、版本控制和许多其他领域,区块链应用程序的许可还面临着更多的挑战。本文中列出的协议和工具是我们在现实世界实现中发现的最有效解决方案,但是在不久的将来,可能会有大量即将出现的技术堆栈。 更多区块链信息:www.xixiaoche.cn/news
    2019-02-23 17:49 1173
  • 从摩根币到与贵重金属挂钩,稳定币会是下一个企业区块链工具吗?

    随着价格波动成为许多公司,包括企业,进入密码和区块链领域的症结之一,许多人把稳定币看作是一个进入的机会。 通过利用区块链及加密货币,将它们与固定价格捆绑在资产上;从其他货币到石油,甚至到现在的黄金或最贵重的钯等贵金属;企业开始意识到区块链在企业中的新用途。 最近,摩根大通(JP Morgan)出人意料地宣布他们将推出自己的稳定币(stablecoin),以解决他们作为重要金融服务的一个问题,即客户和贷款人之间的支付问题,以及将跨境支付或企业债务发行服务转移到区块链上。这让很多人感到惊讶。 委内瑞拉还推出了与石油价格挂钩的稳定币(stablecoin)-Petro, 以帮助这个正经历严重恶性通胀和经济受损的国家。 看起来,尽管许多企业都在关注区块链以其透明、去中心化和不可变的特性在效率方面的潜力,但另一波企业正寻求加密货币和稳定货币来支撑自己的企业。 一种与钯挂钩的稳定币 Nornickel (Norilsk Nickel)被吹捧为全球最大的钯生产商,同时也是镍、铂和铜的最大生产商之一。该公司很快将以一种与贵金属挂钩的稳定合金的形式,利用区块链技术。 Nornickel表示,现在是时候开发一种虚拟资产了,它既能在波动非常大的加密货币市场上提供价格稳定所需的好处,又能为矿业公司自身带来额外的好处。 该公司相信,这将是发展整个数字经济的第一步,区块链企业的好处可以扩大,而不仅仅是提供其著名的透明度。 俄罗斯当地媒体报道说,早在去年10月,Nornickel就有在2019年上半年推出稳定币(stablecoin)的计划。他们现在已经确认推出与他们所开采的金属挂钩的稳定币(stablecoin)。该公司相信,通过推出这项服务,他们将能够向市场提供一种比其他知名加密货币波动性更小的加密资产,并提供与实际价值更明显的联系。 与价值挂钩的货币在稳定的市场中有一种趋势,但这个市场已经足够成熟,能够区分和看穿之前的大量炒作。 监管机构正在慢慢迎头赶上,对于Nornickel来说,他们相信不受监管的加密货币将被清除。例如,稳定币(stablecoins)可以提供廉价融资,对这家矿业公司来说,他们可以利用它来吸引新的投资者群体。 其他稳定币(stablecoins),如摩根大通硬币,开始显示出被监管和控制的稳定的数字货币的潜力。 摩根大通硬币 摩根大通发行硬币的消息让很多人产生了分歧,但事实证明,即便是在加密货币领域中最大的诋毁者,比如杰米·戴蒙(Jamie Dimon),也能看到区块链及其相关技术对商业的价值。 JPM硬币的目的是利用新兴技术,这种技术可能在多方面进行帮助,首先是帮助跨境支付。 区块链技术、分布式账簿、加密货币以及稳定币可以通过多种方式为企业带来巨大的利益,很明显,大公司已经开始参与进来。 促进企业发展 在区块链技术上的稳定币(stablecoin)可以提供更多的灵活性,并通过为更多的金融流动性提供足够的空间来防范地缘政治问题。 更重要的是,摩根大通(JP Morgan)和Norilsk Nickel等大公司也认识到,区块链企业将推动企业向前发展,而那些没有参与的企业将落后。 “Norilsk Nickel公司正在积极试验这种新型的发展数字经济的条件,而且很明显,这项技术能提供的不仅仅是简单的透明度,而这种透明度总是与区块链的使用联系在一起。” “对任何企业来说,跟上不断变化的世界的步伐都是很重要的,虽然现在判断一个加密货币在未来会得到多大程度的采用还为时过早,但很明显,这种技术将会继续存在。” 更多数字货币信息:www.xixiaoche.cn/news
    2019-02-23 17:17 1228
  • 区块链和人工智能在医疗技术中非常流行,但它能解决债务问题吗?

    医学领域是技术最先进的领域之一,它使用高科技的机器、设备和方法来帮助全球人民保持健康。因此,像区块链和人工智能这样的技术也大举进入医学领域就不足为奇了。 这些技术可以渗透到很多领域,其是在分析和操纵大量个人和私人医疗数据方面。然而,并非医疗领域的所有部门都采用了更有效的方法,这就造成了该领域的差异。 当外科医生使用机器人进行小型手术时,英国的国家卫生服务部门直到2019年初才被禁止使用传真技术。令人惊讶的是,这种过时的技术在去年还在用于数据的分发和与患者的交流。 在美国,医疗债务是一个巨大的问题,不仅是医疗程序的费用,还有医生和医院之间、保险公司和病人的实际发票和分散的数据。 收费 美国医疗债务问题高达760亿美元,几乎影响了4300万个公民,其中部分原因是当涉及到从个人手中收取资金时人们感到混乱。 很多时候,者并不知道自己欠了多少钱,因为健康数据并没有集中在不同的组织中传递。它可能导致患者在不知不觉中陷入债务中,让医疗机构赔钱,让保险公司陷入两难境地。 Collectly公司首席执行官列文?布鲁蒂安(Levon Brutyan)解释了医疗债务收集中面临的问题。Collectly正利用人工智能,研究区块链,试图组织和集中医疗债务数据。 Brutyan说:“健康数据并没有集中在不同的组织中传递,这是医疗保健领域的一个大问题,并且对医疗债务产生了巨大的影响,”“它为保险公司和提供者创造了额外的管理费用,反过来,也给患者带来了额外的开销。最终的结果是,许多账单被拖欠,许多人不知不觉地陷入债务中。” “很难估计确切的数字,但我给你举个例子。美国医疗保健债务目前高达760亿美元。部分原因是病人不知道他们要付多少钱以及他们什么时候该付钱。” Brutyan认为这是一个严重的问题,但可以通过利用人工智能等先进技术来解决,比如用人工智能,来分析和传播数据,以及用区块链来存储数据。 “就数据而言,在一个月内与6万多名患者合作后,我们收集了2500名供应商的超过1200万美元的未付发票。这使得患者账单的收缴率从行业平均8%-12%提高到50%-75%,具体取决于实践类型。从本质上讲,这是及时有效地集中和分发数据的结果。” 技术澄清 医疗债务数据的不清晰可能会导致医疗费用的积压,从而影响医疗专业人员,但也会对那些对自己负债水平不明智的患者进行回击,以免为时已晚。 对更精确数据的需求肯定有助于精简这一进程,因为说巨额债务问题很容易,只是因为程序的代价。保险公司和医疗从业者之间的混淆常常会导致账单模糊不清、令人费解,而这又进一步受到患者缺乏技术理解的影响。 “问题是,病人不知道他们最终将支付多少费用,””Brutyan补充说。“第二个最大的问题是,每当病人收到账单时,这些账单都不清楚,病人根本不理解。因此,利用人工智能来学习健康计划,并为病人对他们的账单的问题提供即时的答案,这非常有帮助。” “通过整合所有主要的医疗账单软件,创建数据驱动的、病人账单软件,让患者了解他们欠了什么,为什么欠了债,保险公司为什么不承担这些费用,以及如何与供应商结算余额。” 利用人工智能来分析和传递清晰易懂的数据,允许患者只接收他们需要的事实,并以清晰的模式推理为什么一个特定的数字是一个数字,让患者有一条偿还债务的途径。 这种水平的技术是为了简化和提高当今社会的效率水平,但即使像处理过时和复杂的数据这样的进步,仍然可以用其他技术做更多的事情。 进入区块链 当谈到数据以及如何更好地利用和理解数据时,区块链变得越来越重要,特别是与其他新兴技术(如人工智能和物联网)结合使用。 医疗实践中的很多计费数据都包含私人信息,因此区块链的引入不仅有助于保持这些数据的安全性,而且只对需要查看这些数据的各方可用。 区块链可以存储这些数据,这些数据对人工智能机制来说是可用的,但是不允许人工智能获取它不需要的信息,从而保证了隐私。然而,它也可以在这样的系统中做更多的事情,Brutyan解释说。 “像我们的人工智能平台和区块链的结合可能会让患者获得更深刻的见解。他们可以获得对真实医疗成本的独特理解,同时能够完全控制谁能获得患者数据,更重要的是,他们得到了精确的服务,确切的成本,保险公司的补偿是多少,以及“真实的”余额是多少。 “医疗行业正淹没在患者的医疗记录和复杂的账单流程中。区块链和人工智能的采用和实现可以使业界走到一起,以确定可以使用何种级别的协作。 “健康信息、支付记录、保健服务和保险政策的共同数据库将意味着管理时间的减少和花在服务上的时间的增加。整个计费链将完全透明到最小的细节和所有相关方都可以访问。” 用例 随着区块链和人工智能技术在医疗保健等重要领域进入了一个更加试验性的阶段,处理其中一些较小但意义重大的方面可能是有意义的。人工智能和区块链能够帮助医学研究和医疗保健的其他方面,这一事实令人兴奋,但可能还有很长的路要走。 然而,简单地分析、储存和整理这些新兴技术的数据,并将其直接有效地呈现给患者,以减缓医疗债务的恶化,这一简单的事实,似乎是一个可以实现的目标。 更多区块链信息:www.xixiaoche.cn/news
    2019-02-23 13:56 1290
  • 跨区块链原子互换(Atomic swap)

    Atomic swap:不经由第三方完成的安全可靠的跨区块链交易 因为加密货币交易所不时传出被骇客攻击、被冻结、甚至卷款倒闭的事情,人们开始意识到把钱放在交易所的大金库其实是不太安全的,也有一些去中心化交易所的方案被提出来,试着在保障使用者资产安全的前提下交易。 然而,这些基于以太坊智慧合约实现的去中心化交易所,都有一个最大的局限,就是它们只能交易Ether本身和存在以太坊主链上的token,比起传统交易所能处理Bitcoin, Ethereum, Monero, Zcash…之间的各种币/币交易,去中心化交易所的功能显得阳春许多。 因为区块链创造的安全交易机制,作用范围终究只限于同一条链上,目前要做跨链交易就只能把钱交由第三方保管,完成互换后再发还给拥有者。所以我们想试着找到一个方法,能够达成 只要双方互相约定,就能安全的达成跨链的资产交易 这乍看之下好像很简单,就是一手交钱一手交货嘛。但实际上,我们在日常生活中之所以能实现所谓的付钱取货,其实仰赖了很多东西,比方说信任,比方说法律,比方说监视器和防盗门。而场景一旦换到网路世界,事情就变得没那么单纯。 比方说小时候玩的线上游戏吧,有些人会用点数卡序号去跟其他玩家换游戏币,但永远都存在一个无解的问题:先给点数还是先给币?我怎么知道如果先给了对方会不会直接跑掉? 加密货币交易也有同样的问题,当你的交易对手是某个网路上不具名的人,你们要如何相信彼此能完成一笔交易而不被对方骗?或者说,怎么保证只要对方只要拿了我的钱就一定会给我货? 交易的原子性 所谓的原子性(Atomic) 指的是一笔交易应该像原子一样,被视为最小的,不可再分割(虽然原子好像可以) 的单位。也就是说,我给你钱你给我货这两件事情呢,必须要同时发生,否则就同时不发生。 为了创造这样的特性,我们会用上一些区块链的神奇黑魔法,以Bitcoin来说是杂凑函数和时间锁;至于Ethereum的话就是智慧合约。 交易的过程大致上是这样子的,假设我和一位匿名网友达成共识,要用我持有的10 BTC交换他的100 ETH。首先我们需要知道彼此的收付款地址,为了后续说明方便,这里假设它们分别是: BTC_in  BTC_out  ETH_in  ETH_out 再来,为了完成这笔交易,我需要为这笔交易创造一个秘密,具体来说会是一段只有我自己知道的字串,并算出这个秘密的杂凑值。 这里我选用的秘密是:早安我的朋友 接着,我发送一笔交易,将我的10 BTC从BTC_out转出到一个特殊的暂存位置( P2SH ),并且规定这笔钱有两种方式可以转走:一种是如果出示那个可以被Hash变成46f34 …8f4的秘密,就把钱交给BTC_in;另一种是如果钱放了两个小时还没被领走,那BTC_out就可以把钱领回去。 对方也要做类似的事情,把100 ETH 从ETH_out 转到暂存的智慧合约,规定只要ETH_in 向合约出示能变成46f34…8f4 的正确秘密就可以把钱领走,否则一小时后ETH_out 可以把钱拿回去。 等这些设定都完成了之后,我就可以对合约说「早安我的朋友」,然后把对方的100 ETH 领走,同时因为区块链资料是公开的,对方看得到我用来领钱的秘密,当然也就来把我的10 BTC 拿走,交易就算顺利完成啦。 这里有两个值得注意的小细节,第一个是领钱的规则,并不是任何知道秘密的人都可以领,要是指定的交易对手说出秘密才可以。这是因为区块链上的资讯人人可见,所以当我在广播交易的同时,所有人都会看到早安我的朋友,甚至有可能抢先在我的交易被确认之前,用同个秘密去把钱偷走,所以不能只认秘密,要同时限制收款人才行。 第二个是两人的提款时限是不一样的,因为即便双方都用同一组杂凑,一开始却只有我单方面知道秘密,所以当前面的设置完成之后,什么时候执行交易的主动权握在我手上。若是两边的时限一样,我就可以在到期前不久打出领ETH 的指令,并趁对方来得及反应之前把本来的BTC 抽走。所以通常对方会把时限订得比拥有秘密的人设定的时限再早一点,确保就算被压死线也还有足够的时间拿到应得的钱。 所以说,整个换手的过程,就是我选了一支密码学钥匙,并构造了一个可以被这支钥匙解开的锁。基于神奇的数学魔法,锁是没办法回推钥匙的形状的。所以我安心的把自己的钱锁起来,并给对方一个一模一样的锁,对方也安心的把他的钱用这个锁给锁起来,因为他知道,只要我亮出钥匙来取他的钱,他绝对可以用同一把钥匙拿走我的钱。 不同区块链上的两笔交易,用同一个杂凑锁,产生了关联 于是跨链交易的原子性就得到了保证,只有可能两边都给对方钱,否则就是两边都取回本来的钱,(理论上) 绝对不会有某一方拿了就跑的情况。而且更重要的是,这整个过程完全没有第三方介入,虽然也需要把钱暂时锁定,但这和放进交易所的大金库有着根本的不同。藉由区块链本身的锁定机制,钱的控制权还是在拥有者手上,不会没事就被盗。 拒绝付款攻击 原子互换保证了两个相依的交易会同时发生或同时不发生,却不保证交易会发生,所以它仍然存在着一些待解的问题。这和第三方托管的场外交易有点类似,因为交易从设置到完成并不是及时的,所以我们一定要为彼此保留一个缓冲的时间,让付款流程可以被完成,但这个时间差有被利用的可能。 因为设置好的交易不见得会被执行,对于有心人来说,这就成了绝佳的套利机会。我可以找人假意提出交易,待对手锁定资产之后,自己不急着按下同意付款的按钮,而是好整以暇的盯盘,一旦发现市场上的汇率出现波动,就立刻完成交易,并同时在另一边以市价对冲,套取中间的价差。而如果时间到还没有出现套利的机会,就拒绝付款,再找人发起交易,重复攻击。 以BTC:ETH = 1:10,锁定时间2小时/1小时为例,攻击者有1 小时的机会可以故意拖延。如果是双方都锁定,在这段时间内汇率变成1:9,本来的BTC 方可以零风险套走10% 利润。 我们假设有交易的意思表示就代表对当前的汇率满意,也就是被攻击的人心胸宽大不计较中间的汇差,这仍然会造成些许损失。首先是机会成本,尽管当事人给了一段缓冲期,但他本来不预期会被锁定到最后一刻,这段时间如果有更好的交易机会出现,这笔钱也没办法参与,潜在的获利即是损失。 再来是区块链的使用成本,虽然交易前的设置阶段还没有真的转帐,但是对于处理它的矿工而言,这仍然是一笔交易,也要收取一定数量的手续费,所以如果对方根本没有诚意跟你做交易,其实这手续费就是白花了。 面对这些潜在的道德危机,完全去中心化的原子互换技术上还无法克服,在人人自危的情况下,愿意和陌生人使用这种交易方式的人势必很少。固然有些变通方法,比方说缩短锁定期,但伴随而来的却是不方便和失窃风险。至于其他的解决方案,比方说建立外源的评价系统,或者用支付通道之类的第二层架构,则又会带来程度不一的中心化。这可能也算是某种易用性与安全性与去中心化的三难吧。 更多区块链信息:www.xixiaoche.cn/news
    2019-02-23 13:45 1151
  • 可验证随机函数VRF与Algorand的共识算法

    共识机制一直是区块链领域最重要的议题之一,从比特币的PoW开始,不断的有人在改进现有的共识机制,目标无非是为了让区块链效能继续优化,并且在速度、安全性以及去中心化三者之间达成平衡。 其中PoS(Proof of Stake)并不是一个新的观念,其核心思想就是利用持有货币的数量而非运算资源来分配使用者在区块链上的权力,持有货币越多者越有机会生产区块。但实际实作的方法中也存在诸多挑战,例如如何公正选出委员会(Committee)或是下一个区块产生者(Leader)等等。比较有名的PoS模型有Snow White(NXT)、Ouroboros Praos(Cardano)、还有Algorand等等,今天就来介绍一下相对较新的Algorand演算法。 Algorand: A Pure PoS Consensus Protocol 提出Algorand演算法的是一位图灵奖的得主Silvio Micali,可以在网路上许多他介绍Algorand的影片中发现,他十分坚持相较于其他现有的实践方法,Algorand实现的PoS是真正公平的Pure Proof of Stake。因为在他的设计中,货币的持有者不需要把某数量的货币抵押出去(会有一段时间不能使用),或是代理(delegate)给其他人来参与PoS共识机制,而是只要自己钱包里面拥有balance就可以一同参与这个共识机制。 除了这个看似能防止中心化的设计之外,Algorand真正创新的突破在于结合VRF( Verifiable Random Function )的Leader以及Committee抽签( cryptographic sortition )、防止重要节点遭到恶意使用者攻击的Participant Replacement机制、以及他们快速在Committee中形成共识的拜占庭共识演算法BA*,以下就来一一介绍。 Verifiable Random Function(VRF) 在Algorand中最重要的一个机制就是引入了VRF — Verifiable Random Function,中文是可验证随机函数。简单的说,VRF能够由私钥( SK )以及讯息( X )产生一组可验证的伪随机 (pseudorandom) 乱数Y以及证明?。任何人都可以透过Verify函数来检验这个随机字串是否真的是该公钥对应私钥持有者,依照规定使用Evaluate函数所产生,而不是自己乱掰的。更详细一点的VRF三个函示描述如下(from this post ): · Keygen(r) → (VK, SK). On a random input, the key generation algorithm produces a verification key VK and a secret key SK pair. · Evaluate(SK, X) → (Y, ?) . The evaluation algorithm takes as input the secret key SK , a message X and produces a pseudorandom output string Y and a proof ? . · Verify(VK, X, Y, ?) → 0/1 . The verification algorithm takes as input the verification key VK , the message X , the output Y, and the proof ? . It outputs 1 if and only if it verifies that Y is the output produced by the evaluation algorithm on inputs SK and X . 为什么我们需要这么一个大家自己产生,却又要可以被验证的随机字串产生器呢?这是因为在Algorand的拜占庭演算法中,虽然也存在着每一轮不同的区块生产者(称为Leader)以及验证委员会(Committee, Verifiers),但并不是用「公开选举」的方式来选的,而是透过每个使用者自己对奖的方式来看看自己是不是下一轮的Leader。他们称之为C ryptographic Sortition,这背后的逻辑便是仰赖VRF的原理。 C ryptographic Sortition 无论是在何种BFT的共识机制中,都是由Leader以及Committee来完成区块的发布以及共识决议。例如EOS的dPoS BFT是固定21个BP轮流担任Leader以及投票者、Zilliqa透过PoW加入Committee进行PBFT共识算法。这些比较直观的拜占庭共识演算法都有一个共同特征,就是大家都可以看到下一个区块的Leader是谁,以及负责协议共识的Committee是谁。这造成了一个可能的风险,就是这些区块生产者以及Committee成员容易成为DDOS或是贿赂的目标。 Algorand为了解决这种潜在的风险,利用VRF来掩盖Leader Selection的步骤。可以想像成:一般的BFT在每一轮开始时公平公开选出Leader以及Committee,Algorand则是像在每一轮开始时公布中奖号码,每个使用者都可以自己拿自己的票根对奖,中奖的人即可成为下一轮的Leader(或是Committee Verifier),但在中奖者自己表明身分前,没有人知道谁中奖,也就是没有人能预测下一轮的Leader以及Committee。当然中奖与否并不是口说无凭,中奖者需要出示中奖证明,而这个证明是大家都可以验证的,这正是我们刚刚说到的VRF。 在每一个新区块要产生前,每一个使用者都可以透过Sortition()函示,由自己的私钥配合新一轮的开奖讯息(上述的X),一起通过VRF中的Evaluate()函示输出一组伪随机字串,若刚好幸运符合某些规定,则有资格成为Leader或是委员会的成员(机率与持有货币成正比)。若发现自己是Leader,该使用者就会准备好要发布的区块,附上自己确实中奖的Proof一起广播出去。同理,后面会提到的共识过程中,每一个需要Committee决议投票的步骤开始前,每一个节点也都先对奖看看自己是否幸运被抽中进入委员会,是的话就把自己的投票(或是其他要协议的值)随着Proof一起广播出去。 Sortition()函示,其中return的π为proof,j为weight,即一个使用者可能被选中多次 (想像一共要随机选出1000人的committee,而一位用者拥有全网20%的货币,那他当然应该被选中很多次,因此该使用者在Committee中将会有较高的权重) 细心的你可能会注意到,这种自己在家对奖的模式让很多人同时成为Leader呢?答案是会的,可能会有多个节点都符合条件成为Leader,但最后大家可以规定简单的经过hash来排序,决定出Prioroty最高的那个leader,并只帮忙广播它的区块。 Participant Replacement 上述的设计对安全性有很大的帮助,由于没有人能预测参与下一轮共识的成员,所以恶意节点无法事前锁定要攻击的对象。当一个恶意节点知道某人是这一轮的Leader时,代表这个讯息已经散布到网路之中,该Leader想要广播的区块已经让网路上的其他节点知道,因此已经可以「功臣身退」 ,现在才要攻击它一切都太晚了。同理,在后面所有的共识过程中,在每一个成员广播出自己决议的同时,投出那一票的瞬间,他们就已经达成了自己此步骤身为委员会成员的义务,而下一个步骤中,又会有新的委员会出现,生生不息的继续完成每一轮的共识。 这就是所谓的Participant Replacement,每一个共识步骤(每个round的每个step)的决议成员都不同且彼此独立,使得恶意使用者无法有效率的攻击这个网路。 小结一下VRF部分,Algorand在每一个区块leader的产生到共识的每一个决议步骤,都不是事先选择好,而是当下发现自己有权利参与的节点,在参与共识的同时附上Proof来广播。这不同于一些BFT模型是节点广播区块之后等待某些已知使用者回复签章,而是Locally收集网路上的各种签章投票,在帮助gossiping的同时自己运行自己的共识演算法。接着,我们就来看看核心的共识是如何达成的。 BA - Byzantine Agreement BA* 下图是整个BA Procedure的pseudocode。Algorand所使用的BA演算法一共分为两个阶段,在第一个阶段称为Reduction,一共会经历两个步骤(steps),把共识问题简化为二选一选择题:同意一个Block Hash或是Empty Block Hash。第二个阶段则是输出共识的结果,可能是一个Block Hash代表大家同意该区块,也有可能是Empty Block。 BA*还会Output这个共识结果属于Final或是Tentative,Final代表BA确定与足够多人达成共识,该区块不可能被反驳或是为Fork;而Tentative代表可能因为Partition或是网路异步,有其他节点们对另一个Block达成Tentative Consensus。 以下我们就来分层组装这个BA里面的运作模式。 Voting 从最简单的voting开始。以下的pseudocode描述了在每一轮(round)的每一个步骤(step),一个使用者都要使用刚刚介绍得Sortition()函示来检验自己是否有权(以及多少权重)参与共识的投票。 如果j>0 表示自己有权参与此步骤的共识协议,因此会把自己同意的value透过Gossiping的方式广播出去。 Counting Votes 这里的T与τ分别为两个参数,T代表了该步骤需要多少比例的委员投票,τ则表示该步骤所选出的委员数量。所以T × τ 就是某个值要在这个步骤达成共识所需的总投票数。一旦有某个值value所得票数超过T × τ,CountVotes就会回传该value。 Reduction 如上面所说,Reduction()是BA*的第一阶段,透过两个步骤将共识问题简化到要嘛选hblock,要嘛选empty_hash的二选一选择题。 第一个步骤中,这个Committee member会投票自己原先支持的hblock,并且等着接收其他成员的投票,看看是否有某个block hash的得票数超过threshold( T · τ )。有的话就在第二步中投票给该hash,若是没有收到任何hash超过threshold,则投给empty_hash。 Binary BA 接着我们来看BA*的第二阶段,也就是BinaryBA。这个函示会回传一个Consensus,也就是一个新区块的共识结果。由于上一步中Reduction()已经确保了最多只会有一个不为empty_hash的famous block hash,接着就只要在这个最有名的block_hash与empty_hash之间做出选择。大致的逻辑跟前面类似,投票之后便透过CountVotes()来等待该步骤的投票结果。 可以看到程序中在自己达成consensus之后,会继续广播往后三个step对该值(r)的投票讯息 (看到step < s < step+3的回圈)。这是为了让其他可能处于不同step的诚实节点,也能收到我对于这个block_hash或empty_hash的投票。否则若是大家异步,很有可能一部分的诚实节点在step 1收集到足够的投票达成共识,但是剩余的节点在step1没有成功收集票数,而已经进行到step2或之后,因此一直无法收集足够的票数。 Strong Synchrony & Weak Synchrony 而在Weak Synchrony的情况下,可能发生不同诚实节点取得不同Consensus的情况。例如一个节点A在step1就收集了block_hash足够的投票,但其他所有诚实节点都没有收集到足够的票数,因此进行到下一个step并且再次TIMEOUT,所以大家都改投empty_string,因此其他节点在比较后面的步骤中对empty_string达成共识。 这种事情是一般BFT中不常见的,因为通常不会容许一个节点对两个不同的value签名。但由于Algorand的投票是有阶段性的,一个节点可能在不同的阶段发出不同的投票,因此会发生这种看似荒谬的事件。在这种情况下,所有节点都是诚实的但却没有达到完全一致的协议,所以Algorand才需要设计FINAL以及TENTATIVE来描述一个consensus的状态。 若是在Strong Synchrony的情况下,大部分的使用者会在step 1就达成共识,投票给相同的block_hash,这时他们会再进行标记为FINAL的Committee Vote,其他节点若是在BA*最后阶段收到足够多的Final Vote,就会标记这次达成决议的区块为FINAL,即可以保证其Finality。 反之在刚刚介绍的Weak Synchrony中,由于只有少数人-节点A在第一轮达成共识,进行CommitteeVote(FINAL, block_hash),最终BA*无法收集足够的Final votes,因此会标记该block为TENTATIVE。Tentative翻成中文就是暂时、犹豫的,也就是告诉我们对于该区块的Finality无法保证,我们必须等到网路回复正常(Strong Synchrony),并看到这个block之后出现下一个FINAL Block时,才能确保一切不可能被回溯。 这全部合起来就是Algorand的BA共识演算法,对每个区块的共识,会在这个区块在网路中广播的同时就一边进行。除了这个快速的共识演算法外,Algorand也设计了从Partition中恢复的Recovery机制,使的节点明显确定网路Partition发生时,可以直接进入Recovery模式等待网路复原,再一起重新同步。不必像个傻B一样一直做白工。 Committee Size 在Algorand的设计当中每次投票的过程都由不同的Committee负责,很明显的,要求Committee越庞大代表了越公平、安全,却势必会提高沟通造成的延迟。Algorand在他们的实作中选择把出事机率控制在5*10^-9 以下,由下图中可以看到,假设80%节点是诚实的,Committee需要2000个成员才够大。 Implementation and Evaluation 最后附上原Paper中实作的结果与评估。 由于整个演算法中不同步骤的安全性或效能接不相同,因此Algorand对于T, τ这两个参数会因是在普通阶段(step)或是FINAL有所不同。下图为Algorand实现自己的演算法时所用的参数,都是相对保守的参数。 最后附上一些实验结果。此为一个VM上运行50个节点(运行100 ~ 1000个VM)进行Algorand共识的实验结果,可以发现几乎是维持在Constant。 另一个有趣的实验结果是不同比例的恶意节点对共识速度造成的影响。可以看出在预设的比例之下,其运行效能不太受到影响。 后记 大概是这样,写这篇文章的宗旨是自己虽然口口声声说PoS很棒,但是对它的运作细节还是很不熟悉的,刚好因为最近读DEXON又看到Algorand这个关键字,才下定决心好好认真深入一点。 个人认为Algorand最有趣的部分应该在这篇文章的前半段VRF与Participant Replacement,看到这些聪明的密码学应用确实很有启发性,希望我未来也可以有时间比较深入了解其他PoS共识机制,真的是很酷很有趣但又真的很难懂阿! 更多区块链信息:www.xixiaoche.cn/news
    2019-02-23 13:33 1119
  • 以太坊交易费的经济学模型

    这篇文章会介绍近期以太坊社群对「交易费模型」的讨论,主要参照自Vitalik 的一场演讲影片,和论坛上的文章''First and second-price auctions and improved transaction-fee markets'',探讨区块链交易的外部性,以及目前的手续费竞标模式存在的问题,和可能的改善方案。 背景知识 以太坊使用“gas” 做为计算手续费的单位,使用者在送出交易时,除了从帐户中扣除转帐金额(msg.value),还要支付gasUsed * gasPrice 的使用费。 根据每笔交易内容不同,手续费也会不同,计算主要有两个考量:计算量、存储量。因为区块链上的交易需要由每个节点重新执行过作为验证,并占用每个节点的硬碟空间,所以越复杂,使用越多容量的交易需要付越多钱。 详细的价格可以参考这份表格。 区块链的交易成本和利益 利益: 对于每一笔区块链上被打包(确认)的交易,它提供了发送者私人利益(private benefit),也就是发送者「希望」交易被确认的理由,因为他想转钱给别人、因为他想买东西、因为他要玩区块链养猫? 等等理由。总之,交易被确认对发送者是有好处的。 成本: 交易的成本分成两部分,一个是内部成本(private cost),一个是外部成本(social cost)。内部成本比较直观,就是发送者付出的手续费,目前手续费是由打包交易的矿工赚走,但也有其他模型正在被考虑,下面会提。至于外部成本的部分,是本文主要想探讨的重点:什么是一笔区块链的外部成本?由谁承担?首先想到的是挖矿消耗的电费,但其实那和交易的关系并不大,而是与挖矿收益和矿工间的零和竞争有关。 实际上,一笔交易的外部成本承受者非常多元。对于每个运行全节点的电脑,这笔交易如果需要纪录状态,比方说产生一只新的猫,就会占用一些硬碟空间;对于区块链网路本身,越多的交易代表节点需要更多时间验证,网路广播效率越慢;甚至连区块链服务提供者,比方说区块链浏览器Etherscan,也承受了交易的外部成本。 收税: 基于区块链交易存在外部成本,且我们无法准确的把钱分配给承担者,收税是很顺理成章的作法。庇古税(Pigouvian Tax)就是藉由对污染(外部成本制造)者课税,以改变市场均衡的方法。在区块链的领域,我们没有政府做为收税的执行者,所以藉由限制区块大小以及手续费竞标的方法,达到类似收污染税的效果。 区块大小的意义 除了有形的计算资源,打包交易的另一个成本即是增大的区块。而更大的区块通常代表着更高的频宽需求、单位时间内需要验证更多笔交易,门槛增高,有能力运行节点的设备数量变少,去中心化程度和安全性相对减少。也就是说,允许更多交易的成本会使整个区块链系统更脆弱。然而,我们也不会为了提高安全性而把区块限制在非常小,因为那会使得手续费竞标变得太过激烈,让整个系统的实用性降低。 为了决定区块大小,我们考虑每增加一单位(比方说一笔交易)的边际成本,如图。当区块非常小的时候,大部分的设备,包括智慧型手机,都有能力运行一个全节点。此时,增加区块大小所牺牲的边际安全性(或边际去中心化性)很高,但同时提升的边际系统可用性也高。 当区块大小膨涨到一个程度,已经没有手机跑得动节点之后,边际成本变低,因为大部分的个人电脑都可以承担比手机大很多的计算量要求,而边际可用性以中等速度提升。 当区块大小增加到普通电脑(笔电&桌机)无法负荷的时候,边际成本再度变高,因为整个网路的节点数会快速下降,只剩下专业设备能运行节点,中心化程度大增,系统付出的安全成本将大于增加的可用性。 考虑实际的案例,如果比特币的区块大小变成50KB,或以太坊gas limit 变成100000,几乎所有的手机,甚至IoT 设备都能运行全节点,但是手续费会高到吓人,只有巨额交易愿意承受。一般人根本不愿意付钱使用,即使手机能跑节点也没什么意义。 反过来说,区块大小10GB 的比特币,或gas limit 10T 的以太坊,若要维持本来的区块时间,势必会导致严重的中心化,变成类似POA 那种称不上区块链的伪物,或EOS 那种由超级节点构成的容易被垄断操纵的系统。 手续费模型 第一价格拍卖 目前的比特币和以太坊采用第一价格拍卖(first price auction),发送者可以自行决定愿意付的手续费,如果交易成功被打包,手续费将从发送者帐户扣除。由于协议限制矿工只能打包固定量的交易,因此矿工会优先处理手续费高的交易。然而,这样的模型对使用者并不直觉,他们心里或许有一个价格,但是为了降低成本,他们会想要出一个刚好能被打包,但不要太高的手续费,也就造成一种不必要的烦恼:猜测最低手续费。 第二价格拍卖 一种改善的方法是采取第二价格拍卖(second price auction),对于所有被打包的交易,不收取他们最开始出的手续费,而是以被打包的交易中手续费最低者的出价为准,对所有人收一样的钱。这样的好处是使用者可以尽情出价,他只要出一个「手续费比这个价格高我就宁愿不要交易」的价格就好。然而,这样的模型却存在明显的漏洞。如图左所示,矿工的手续费是底下那个灰色长方形的面积,也就是交易笔数×最低成交价的金额。矿工可以透过假造一些高价交易的方式,来提高长方形的面积,使得图右中的面积扣掉深色长方形(手续费会回到矿工身上)之后还比图左的大。矿工可以操纵价格,还会让系统效率降低。 手续费价格自动化 为了解决第二价格拍卖中矿工过大的权利,一个由协议自动决定价格的方式被提出。协议决定价格的概念类似于挖矿难度,是根据先前的状态(previous state)自动决定下一个状态的机制,因为它是写死在系统协议里的,任何人都能检验数值是否合法,矿工不容易操纵,或者应该说,矿工比较没有经济上的理由操纵,因为不合法的高收益会被其他节点否认,刻意制造低收益则对自己不利。 目前提出的公式是,将一个区块的gas 使用量锚定在gas limit 的50%,当前一区块打包的交易高于50% 就涨价,低于50% 就降价。透过以价制量,而不是硬上限的方式,让区块的长期趋势维持在半满的状态。 区块链的储存空间定价 目前,以太坊的储存空间也是透过支付gas 购买的,由于这些购买的空间,在使用者不主动释放的情况下,会永久性地占用节点电脑的硬碟,甚至珍贵的记忆体空间,需要用超级高的价格来避免系统被垃圾资料压垮。现在,做一次加法需要支付2 gas,宣告一个变数却要支付20000 gas,价差高达一万倍!不过,即使已经用超高价避免垃圾攻击,如果考虑到系统的长远发展,似乎再高的收费也无法缓解空间无限膨胀的恐惧。 一个潜在的替代方案是:不再提供永久性的储存空间,改以「租赁」的方式让使用者存放资料,这样,收费想必可以便宜很多。这乍看是个很合理的做法,就像使用任何的云端主机一样,你如果要一直用就要持续付钱,使用者便会自觉清掉用不掉的垃圾档案。但是在以太坊智慧合约的情境,非永久的储存空间会为DApp 开发者带来沉重的负担。 当合约签订后,合作关系进展到一半时,当初记载款项的变数居然被释放了,这么可怕的事情是绝对不允许的,但为了避免这个情况,又需要多更多的工程和条件控制来确保储存空间活到它不再被需要。而如果,你的系统是供不特定人使用,比方说ERC20 Token,还要担心涌入的人潮会自动占用更多空间,加速租金被耗尽。开发DApp 已经不容易,还要规划能一边运作一边维持租金的收费模式,简直是工程师的噩梦。 一个稍微减轻工程师恐惧的方法是:不要在租金耗尽的时候彻底删除资料,而是让它「睡着」。把数值从state trie 中暂时移除,让合约不能直接存取数值,但如果任何使用者想要/愿意,他可以提供钱和该数值过去存在的证明,重新「唤醒」这个变数,让合约继续被使用。 不过,这样的模式仍然比过去买断制的空间使用权来得麻烦不少,在实装前可能还需要很大幅度的调整,或者永远不会有上线的一天。 更多数字货币信息:www.xixiaoche.cn/news
    2019-02-23 13:06 1206
  • 企业该选择公有链、私有链还是联盟链?

    区块链一开始问世是以比特币之姿,公开透明、公平竞争。随后世界开始探索如何把区块链用在各种场景,许多人就想到,也许不需要全世界人的参与,也不需要挖矿,我们只需要用到区块链去信任、可追溯的特性,透过较少节点达到拜占庭将军容错,于是私有链就诞生了。 但私有链仍是中心化,难以维持去中心化的优势:共识决。因此又有了为企业体联盟而生的联盟链(consortium blockchain)。 公有链 公有链向全世界任何人公开,所有人都可访问,发送、接收、认证交易。所有人都能参与其中共识过程的区块链——共识过程决定哪个区块可被添加到区块链中,也因此公有链「通常」被认为是完全去中心化的。 · 特色:不可篡改,匿名公开,技术门槛低,是真正的去中心化。每个参与者可以看到所有的帐户余额和其所有的交易活动。 · 缺点:分散式治理仰赖共识决,更新迭代慢、自行开发的话,目前技术发展框架,初期建置成本高昂。若企业直接采用公有链,则会受限于扩容问题、以及企业需求无法满足(通常会以侧链妥协,但侧链则容易陷入中心化疑虑)。 · 举例:比特币、以太坊。 私有链 私有链是完全私有的区块链,指写入权限仅限于在一个组织手里的区块链。读取权限或者对外开放,或者被一定程度地进行了限制。整个网络由成员机构共同维护,网络接入一般通过成员机构的网关节点接入,共识过程由预先选好的节点控制。这类区块链被认为是「部分去中心化」。 · 特点:交易速度快,保护隐私,交易成本极低;仍保有不可篡改性。 · 缺点:由于完全中心化的特性,私有链是的代币(若有发行的话)价格是可以被操作的,代码也是可以修改的,集中风险较大。 · 在近年因为企业对区块链的探索与需求,发展出了在这两种区块链的混合,有一种区块链称为联盟链,保有私有链的隐私性,又能维持多节点共识治理的特性。 联盟联 联盟链适合于机构间的交易、结算或清算等B2B 场景。例如在银行间进行支付、结算、清算的系统就可以采用联盟链的形式,将各家银行的网关节点作为记帐节点。 通常情况下,外部观察者可以查询,但是不可交易,联盟链是指其共识过程受到预选节点控制的区块链;区块链或许允许每个人都可读取,区块的Root Hash及其API (应用程式接口)对外公开,API可允许外界用来作有限次数的查询和获取区块链状态的资讯。这些区块链可视为「部分去中心化」。 联盟链与私链类似,其开放程度和去中心化程度是有所限制的,其读写权、记帐权由组织决定。与私有链最大的不同在于,联盟链是为一个联盟,比如一个行业服务的;而私链则是为一个组织,比如一家公司内部服务。 区块链目前正在四个方面进行技术性的优化。 一是共识算法,正在由低频低效向高频高效转变; 二是治理方式,从链上处理到链上链下协同; 三是服务分片,由全员周知到范围通知; 四是组织架构,从单一链条到多链组合。 究竟联盟链的优势在哪里,该企业或组织该如何挑选适合自己商业模式的区块链开发方式,接下来进行比较。 公、私有区块链有共同之处? 首先,两者都是分散的「对等」网络,其中「每个参与者」都负责维护数字签名交易的共享,并在每个节点附加分类帐的副本,而两者都通过称为共识的协议保持副本同步。 即使某些参与者怀有恶意,两者都对帐本的不可改变性提供了一定程度上的保证。 也就是说,从区块链本身架构和主要属性的角度提供了,我们在无论公、私区块链或其他公共分布式帐本平台下理解的特点与内容(如去信任、不可篡改、去除中介、效率提升,只是规模上的不同)。 不过这也导致了一个有趣的问题,即:是什么特性把他们区别开来。 简单提出一个答案,区别主要在于谁被允许参与网络、执行共识协议和维护共享分类帐。这样的解释是部分正确的,但除了要求认证和授权访问区块链之外,还要了解私有分布式分类帐平台的潜力。 因此,要区别链的公私有性,简单理解的话就是内部参与节点与外部观察者的访问权限区分。但这样去区分会出现的问题是,实际上链的治理与参与者的能见透明度,该怎么去制定会根据采用者的需求不同而有所权衡,实际上的影响这个平衡因素则在文章后半会提出。 企业的需求 本篇文章后段会分析企业该如何选择适合自己的链种。在讨论链之前,必须先让我们先从典型的企业客户需求开始。 1. 保密性(Confidentiality) 保密性是确保只有参与特定交易的实体才具有该部分的知识和访问权限的特性。一个企业中,在潜在竞争者参与的联盟网络中,必须在同伴之间启用区块链通道,而这些通道对于联盟的所有成员都不可见。使用密码学或零知识证明(zero-knowledge-proof)方案可以在参与节点彼此之间保持数据机密性。只需了解联盟中同行之间需要透明的交易。在许多区块链平台上实现此要求非常困难,因为它们多数已经写定了交易执行架构,其中网络的每个成员在网络的区块中执行交易以同步其状态。一些私有和许可制区块链解决方案(如Hyperledger)可以实现利用不同架构(执行顺序验证)的机密性、以内建本地端支持创建私有通道,并在共享区块链基础架构上。 2. 吞吐量(through-put) 吞吐量是按时间段处理的交易数量的度量标准。在区块链结构中是每秒写入到区块链上的速度。目前运行在关联数据库或分布式数据库构建的解决方案,已经可以实现每秒数万个事务(交易)的吞吐量(Visa的TPS:22000),而区块链有较多的节点需要同步势必会妥协到效率的表现。但有些人可能会认为,倘若能建立信任、不变性等相比,较低的性能是可被妥协的在这方面,具有私有性质的大多数公有区块链都处于完全不同的境界。与大多数公有区块链相比,私人区块链提供了数量级更高的吞吐量,因为他们的共识设计不必包括对矿工的激励(Incentives),且区块链上成员的身份是已知的,激励因此可能丧失可信度,私链的可扩展性侧重于吞吐量而不是节点数量。 3. 终局性(finality) 在区块链结构中,终局性指的是对所有的块一旦被提交到区块链就不会被撤销的结构完整的确定性难度。当用户进行交易时,他们希望在交易完成后确信交易不能随意更改或撤消。 终局性决定了企业必须等待多长时间才能得到保证的结果,因为用区块链写的交易是不可逆转的,或企业提交的事务不会成为孤儿块(orphaned block)。 这也是商业的重要考量标准。像许多业务流程一样,如果区块链网络需要跟传统业务流仇等待一个小时。大多数公共区块链使用基于随机的的算法来选择节点以提出新块,这将会十分耗时。 因此,大多数私有区块链都采用基于投票的共识算法。当大多数节点投票时,该块就可以被最终确定。在公链上,由于共识需要更多的信息交换,它几乎直接的限制了终局扩展性。对于私有区块链而言,这通常不是一个大问题,因为与一般公有链环境相比,参与者数量低了几个数量级,并且部署在具有低延迟和保证吞吐量的WAN中。 联盟链介绍– 以Hyperledger为例 Hyperledger  (超级帐本)是一个旨在推动区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起该项目,成员包括金融,银行,物联网,供应链,制造和科技行业的领头羊。 基本上各领域世界知名的企业或区块链新创公司都是Hyperledger的成员之一: · 区块链新创:  ConsenSys ,  Digital Asset ,  R3 , Onchain · 知名科技公司:Cisco ,  Fujitsu ,  Hitachi ,  IBM ,  Intel ,  NEC ,  NTT DATA ,  Red Hat ,  VMware ) · 知名金融企业:ABN AMRO ,  ANZ Bank ,  BNY Mellon ,  CLS Group ,  CME Group , the  Depository Trust & Clearing Corporation  (DTCC) Linux基金会的超级账本项目,希望创建一个软体开发人员和公司社区会面和协调的环境,以构建区块链框架。它是一个基础设施,通常采用Hyperledger进行联盟或私有链开发的相关项目,都是无币的、产业级的应用。 HyperLedger Fabric 是什么? Linux基金会在2015年创立了HyperLedger Fabric是一个许可制(Permissioned)的区块链架构(blockchain infrastructure)。其由IBM和Digital Asset最初贡献给Hyperledger项目。 以推进跨行业的区块链技术为目标,Fabric并没有制定单一的区块链标准,而是鼓励一种合作的方式,通过社区开源的方式开发区块链技术,并随着时间的推移采用关键标准。 HyperLedger Fabric是HyperLedger上的区块链项目之一,就如同其它区块链技术一样,它有一个账本,使用智能合约,并且是一个由参与者管理他们的交易的系统。 HyperLedger Fabric组织的成员必须通过注册才能访问,因此是私有的许可制联盟链。可以通过一个Membership Service Provider(MSP, 即成员服务提供者)来注册。 HyperLedger Fabric还提供了几个可插拔的组件。账本数据可以以多种格式存储,一致的机制可以被转换和输出,并且支持不同的MSPs。 HyperLedger Fabric也提供了创建通道(channel)的能力,允许一组参与者创建一个单独的共同维护的交易账本。对于有些参与者可能是竞争对手的网络来说,这是一个特别重要的选择,他们不希望自己的每笔交易都能被透明。举个简单的例子,某间联盟链里的参与者只想向其中一间公司提供交易资讯,他们的价格不愿被其他成员看见。 共享帐本 HyperLedger Fabric底下有分出两大子系统,包括:世界状态(world state)和事务日志(transaction log)。 每个参与者都有一份帐本的副本到他们所属的每一个HyperLedger Fabric的网络上。 首先,世界状态(world state)组件描述了总帐的状态,它是总帐本的数据库。 世界状态使程序可以轻松获取目前帐本状态的当前值,而不必通过遍览整个事务日志来计算它们。默认情况下,Ledger状态表示为Key-Value对,Hyperledger Fabric在这方面提供了一定程度灵活性:世界状态可以经常变化,因为可以创建、更新和删除状态。 其次,有一个区块链,一个记录决定世界状态的所有变化的事务日志。事务在块附加到区块链中的块内收集,使您能够了解是什么事务(交易)导致当前世界状态的更改历史记录。区块链数据结构与世界状态非常不同,因为一旦编写,就无法修改。它是一个不可变的块序列,每个块都包含一组有序事务。 智能合约 HyperLedger Fabric的智能契约是用Chaincode编写的,并且当应用进程需要与帐本进行交互时,被应用进程外部的应用进程调用。在大多数情况下, Chaincode只与总帐的数据库组件交互,例如世界状态(查询它),而不会与事务日志互动。 Chaincode可以用几种编程语言实现,目前支持的chaincode编写的是GO语言,在今后的发行版中将会逐步添加Java和其它语言的支持。 隐私 根据网络的需要,企业对企业(B2B)网络的参与者可能对他们所共享的信息非常敏感。对其他网络来说,隐私不会成为首要关注的问题。 HyperLedger Fabric支持需要将隐私(使用信道)作为关键操作需求的网络,同时也是相对开放的网络。 共识 事务必须按照它们发生的顺序写在帐本上,即使它们可能是网络中不同的参与者生成的。要做到这一点,必须创建事务的顺序,并且必须在帐本中创建一种拒绝错误事务(或恶意的)的方法。 共识机制是一个经过彻底研究的计算机科学领域,目前有很多方法可以实现它,每一个都有不同的权衡。例如,PBFT(拜占庭式容错)可以为文档副本提供一种机制,使其能够相互通讯,进而保持每个副本的一致性,即使是在出现「节点腐败」的情况下。 或者,在比特币中,PoW(Proof-of-work)是通过一个名为「挖矿」的过程来实现的,在这个过程中,竞争的计算机竞争解决一个加密难题,该难题定义了所有流程随后构建的顺序。 HyperLedger Fabric的设计使得网络启动者可以自行选择一种最能代表参与者之间关系的共识机制。就像隐私一样,需要有一系列的需求;从人际关系高度结构化的网络到更加对等的网络。 关于HyperLedger Fabric共识机制,它目前包括SOLO和Kafka,并将很快扩展到SBFT(简化的拜占庭式容错)。 企业该选那种链? 总归而言,而隐私则可透过设定参与者(节点)的加入权限是否须经认证分成许可制(Permissioned)以及非许可制、开放式(Permissionless),链的透明程度、以及加入可否是否向公众开放则是以公、私有链去区分。介于公、私链之间,为因应企业合盟的需求定义出了联盟链。 目前有四种常见的建构链的方式,下图以信任是否建立、依赖与参与网络的节点本身的公信力为横轴,纵轴则是结点能否保持匿名的程度来定量。例如:左上的示例为比特币的区块链、右上则可能是未来的以太坊(非许可制)、左下则为Hyperledger Fabric、右下可能是未来会出现符合企业需求客制出的私有链(如:JP Morgans的Quorom),企业可以以自己的需求去选择自己该往以下四种中的那一种方向去开发、导入: 更多区块链信息:www.xixiaoche.cn/news
    2019-02-23 12:50 1386
# 币种 价格¥ 涨幅
# 币种 价格¥ 涨幅
# 币种 价格¥ 成交额¥
  • 1 BTC/比特币 42,494.02 302.75亿
  • 2 USDT/泰达币 6.46 182.21亿
  • 3 ETH/以太坊 3,219.53 146.48亿
  • 4 EOS/柚子 70.33 81.77亿
  • 5 BCH/比特现金 5,568.76 29.32亿
  • 6 LTC/莱特币 628.10 22.90亿
  • 7 XRP/瑞波币 3.53 20.68亿
  • 8 TRX/波场 0.2891 17.39亿
比特币多空调查

今日比特币行情,你怎么看?

看涨37%
盘整17%
看跌47%
  • 看涨
  • 盘整
  • 看跌
投票 您已经投过票了

每日15:00投票数据自动清零

?
扫二维码

扫一扫,关注微信公众号

乐点娱乐