| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 浅谈分布式账本OpenLedger 的特性及场景应用|《超话区块链》回顾 -> 正文阅读 |
|
[区块链]浅谈分布式账本OpenLedger 的特性及场景应用|《超话区块链》回顾 |
?什么是分布式账本?分布式账本的设计、规划及典型应用场景又是怎样的呢?基于社区近期开发者遇到的此类问题,我将分享一些个人对分布式账本OpenLedger的经验,希望可以给大家一些借鉴与参考。 什么是分布式账本,它与区块链有何关系?账本,是用来记录权益变化的一种技术。账本的应用十分广泛,它可用于个人、家庭、企业以及银行记录客户借贷。下面我将通过生活实例介绍不同类型账本的特点。 第一,是个人的账本,它是最简单的一种记账方式,主要用于记录个人的收入开支。 第二,是家庭的账本,相比于个人账本,在多人共同记账时,我们需要关注每一笔账的收入与支出对象是哪位家庭成员。另外,家庭账本还需要关注多个家庭成员同时收入和支出的情况,避免出现记账错乱的问题。 第三,是企业账本,相比家庭账本,企业的账本更为复杂,需要增加账期和科目的属性。账期可以帮助企业统计一段时间内账户权益的变化,例如财年。 第四,是银行的账本,银行账本需增加权益主体,即交易发起人。银行账本不是记录自己的收支,而是用于记录用户存款、贷款、转账交易记录,因此银行记账的主体是用户。个人用户可以自己发起交易,银行负责记账,企业用户的多个会计、出纳等可以发起同一个账户的交易。 以上的四种类型被称为中心化的记账方式,记账主体是单一的。那什么是分布式账本呢?
以信贷资产证券化为例,银行给购房者做抵押贷款的业务,将钱借给购房者,此时银行与购房者会形成借贷关系。 由于住房贷款的还款期限较长,贷款利息又比较低。如果银行将同样的贷款与企业合作,或是通过信用卡的形式借贷,这种合作方式收益回报率更高。 因此,贷款银行更希望能够把贷款快速收回且获得高回报率。通过资产证券化业务,贷款银行原本30年才能回收的贷款本息,现在一个月内即可收回。 贷款银行首先需要将贷款打包,通过信托公司把它包装成证券,再通过证券公司将它卖给不同的投资人或投资机构。 待上述流程完成,贷款银行基本可把款项收回,同时,贷款银行也需支付一定的费用,此时借款人会持续按照贷款合同还款。 还款的本金和利息需回报给证券投资人,借款人在后续30年持续还本金和利息给贷款银行,贷款银行将收到的款转给托管银行,托管银行再按照一定的计算方式支付给托管机构,托管机构将证券本息计算以后再支付给证券投资人。 这就是其中的业务关系,每个机构都有自己的IT系统,业务之间无法互通会导致效率低,可能需要几天时间才能完成资金和信息的流转。 然而,采用OpenLedger分布式账本技术,可以将资金和证券相关的账本进行统一记录,可以做到实时地传递信息,提高流转的速度,提高业务的效率。 除此之外,采用分布式账本技术也能实现金融的穿透式监管,能很好地识别中间流程所存在的潜在风险。 分布式账本对技术提出了以下要求:
??OpenLedger背景及特性介绍我们将账本所涉及到的对象进行抽象分离,可以分为以下5类:
基于对上述概念的了解,我们得以更好地理解OpenLedger的设计思路。首先,我们的底层选用FISCO BCOS区块链平台,并使用不同的开源项目作为技术支撑。 中间的OpenLedger主要构成有账本、账户、权益、组织等核心组件以及这种分布式账本的治理体系,比如合约治理、权限管理等。我们可以通过账本来支撑不同的业务。 OpenLedger设计与规划职责分离 个人和组织之间有职责的划分,用户如果需要使用分布式账本,可通过分布式账本中的某个组织进行开户,开户的条件是开户的组织与个人之间需存在业务关系,这样的组织简称为KYC。 开户过后,我们在分布式账本上就会有账号,账号的所有人可能是组织,也可能是自然人,负责帮助他开户的组织是该账户的KYC组织。KYC组织会记录账户所有人的基本信息,这些信息是不共享的。目前,我们的设计是不允许其他企业去访问和修改用户资料。 双重签名 联盟链不向终端用户直接提供区块链服务,通常采用私钥托管的方式,即将私钥托管给向其提供业务的企业。这种设计方式相当于将私钥委托给某一个业务方去管理和使用,私钥所发生的的签名也是由业务方发起的。 组织可能会不经允许用你的私钥私自发起业务,用户权益无法在账本上得到体现。因此我们设计了双重签名机制,用户始终能保管个人的私钥,并且能直接用私钥发起交易,签名后提交给某个业务方,业务方用它接入区块链时在私钥上进行二次签名,把交易提交给区块链。 区块链会验证业务方的签名,检查其是否是联盟中所允许的参与组织,通过后再把用户签名后的交易提交给智能合约,根据用户签名进行检验,看最开始的签名是否为我们所认可的用户。 只有通过这样两次签名和两次验签的操作,才会执行相应的智能合约。借助双重签名机制,能够保证用户账户不会被第三方不经授权就使用,保护用户链上的权益。 台账 记账之后经常需要查账,查账的条件是非常复杂的,区块链的数据结构一般采用的是默克尔树结构,账户中的数据可能分散在多个区块链的区块中。如果需要查询数据,可能需要调用很多次查询交易或者是区块数据的方式,才能最终获得想要的数据。整个流程非常繁琐,效率偏低。 我们借助FISCO BCOS的CRUD预编译合约,将整个账户变化的历史以二维表的方式进行记录。当我们查询的时候,数据库C类查询条件就能方便地获得查询结果,并且可以基于账户计算。 ??OpenLedger典型应用场景信贷资产证券化 权益有两种,一种就是资金权益,一种是证券权益。 借款人需要将钱先给借款银行,借款银行划拨给托管银行,托管银行收到钱后,计算相关税费、本息等,并本息支付到托管机构,托管机构再支付给投资人,由此完成资金的流转。 后者则是证券的流转过程,贷款银行将贷款打包出售给信托公司,信托公司将贷款设计成证券,证券公司负责把它销售给投资人。这样会产生证券的流转。 如果应用OpenLedger技术来处理,只需设计资金和证券两类权益。分别由这两个组织来担任权益账本的托管人,进行账本的维护。 其他机构只需开设一个账户,权益如果是个人,直接由个人来发起转账交易,权益如果是机构,则由机构的业务员来操作机构的账户,发起权益的流转。 对职责分离强需求的业务场景 正如上述所提到的,个人可以是账户的所有人,直接维护自己的账户,用私钥发起签名来进行权益的流转;也可以是某个组织,代表组织进行转账业务。它可能是资金托管或者贷款银行,主要负责把收到的钱及时从托管账户转到资金保管银行的账户。 投资人开户直接与证券公司发生业务,因此需要通过证券公司来代理,证券公司会维护投资人的个人信息,个人信息在OpenLedger中是无法被其他组织所访问的,只能通过账户来发生业务。 一旦投资人的资料丢失,在传统区块链中这个账户就无法继续使用,但是在OpenLedger分布式账本中,它可以通过账户体系的设置,进行私钥重置,用户仍然可以使用原来的账户,而权益也不会丢失。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:24:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |