동향

Crypto B2B 시스템 소개 및 관점

Crypto B2B 시스템 소개 관점

박노필, nohpill_park@yahoo.com

Oklahoma State University, Computer Sicnece

 

Key words

Blockchain, crypto B2B, crypto currency, decentralized network

 

1. 개요

 

이 보고서에서 소개할 Crypto System의 개념은 Ethereum 기반 블록 체인에 B2B 시스템을 배포하는 것입니다. 이 시스템을 Crypto B2B System이라고합니다.

 

Crypto B2B 개념은 private internal 블록 체인이 아닌 open public 블록 체인에 배포함으로써 기존 B2B 시스템과 차별화되므로 더 넓은 시장을 대상으로합니다. 또한, 일반 규모의 거래를 위한 기본 블록 체인 외에 IOTA와 같은 블록 체인을 개발하거나 사용함으로써 소액 거래 비용 문제를 해결하고 기본 블록 체인과 보조 블록 체인간에 전환할 수있는 새로운 트랜잭션 인터페이스를 제공합니다. 오프라인 빅데이터 분석 모듈을 추가하여 자동화된 주기적 방식 또는 주문형으로 블록 체인에서 분석을 다운로드하고 수행하며, 결과는 해당 원장을 유지하기 위해 선택적인 방식으로 블록에 다시 연결됩니다. 또한 필요에 따라 선택된 거래 그룹에서 익명성과 프라이버시를 제공하기 위해 암호화 된 로그인 및 query 기능을 제공합니다.

 

Public 블록 체인 네트워크의 B2B 시스템을위한 플랫폼은 현재 B2B 시스템이 자체 private 블록 체인 내에서만 배포되기 때문에 더 넓은 시장을 열 것입니다. Public 블록 체인의 플랫폼은 서비스에 대한 구독 기반 액세스를 도입하여 시스템의 접근성을 더욱 널리 알릴 것입니다. 고객의 관점에서 이 시스템은 비용효율성을 제공하며 기술적 세부 사항 및 유지 관리 번거로움이 없습니다. B2B 서비스 기능은 backend 클라우드에서 제공됩니다.

 

Public 클라우드 기반 B2B 서비스는 민감한 거래에 대한 익명성과 프라이버시를 보장해야합니다. 이는 전체 데이터를 암호화하는 대신 로그인 및 query를 암호화하여 실현할 수 있습니다. 전체 데이터를 암호화하는 것은 오늘날의 데이터 볼륨에 이상적인 옵션이 아니므로 이 시스템은 고객의 로그인 및 query를 역방향 방식으로 식별하는 데 사용할 수있는 일부 민감한 데이터와 함께 로그인 및 query를 암호화 할 것을 제안합니다. 암호화된 로그인 및 query 실행의 또 다른 기대 이점은 신원에 민감한 트랜잭션과 계산이 블록 체인에 머무르는 on/off-블록 체인간에 균형 잡힌 방식으로 계산 부하를 관리 할 수 ??있다는 것입니다. 이 기술은 궁극적으로 기본 블록 체인 기술의 전체 비용과 성능을 최적화합니다.

B2B의 또 다른 중요한 문제는 블록 체인 네트워크를 통한 트랜잭션 전송 비용입니다. B2B 서비스를 수행하기위한 기능의 크기와 비용은 소액 결제에서 대규모 거래에 이르기까지 광범위 할 수 있습니다. 현재 IOTA는 알려져 있지만 아직 시기상조입니다. 이상적인 솔루션은 트랜잭션이 특정 임계 값에 대해 마이크로 또는 일반 / 대형 트랜잭션으로 처리되는 인터페이스를 통해 1 차 블록 체인과 2 차 블록 체인 간의 트랜잭션의 원활한 context switch입니다. 임계 값은 전체 네트워크 성능 및 비용을 최적화하도록 설정됩니다.

 

제안된 B2B 시스템은 public 블록 체인에 배치 될 예정이므로 관심 및 관심 거래를 추적하고 예측하기 위해 블록 체인에서 분석을 관리하고 수행할 수있는 것이 바람직합니다. 관심과 우려가있는 B2B 거래에 대한 원장은 예측 및 최적화를 위한 분석을 위해 검색 및 정렬되어야합니다. Hadoop과 유사한 빅 데이터 도구에서 다양하고 풍부한 분석 기능을 사용할 수 있습니다. 분석 결과는 필요에 따라 블록에 다시 연결되거나 분석의 특성에 따라 내부용으로 보관될 수도 있습니다.

 

 

2. CRYPTO B2B 관점

공개 네트워크에서 블록 체인 기술을 사용하여 B2B를 실행하는 방법을 소개하고 정의 하면서 내부 / 사설 네트워크보다 정보를 더 기밀로 유지하고 더 적은 비용으로 거래를 더 빠르게 수행 할 수 있습니다. B2B의 기본 기능이 포함 된 샘플 B2B 계약이 자세히 설명되어 있습니다. 장점과 단점도 조사됩니다.

블록 체인 기술을 사용하는 공용 네트워크에서 실행되는 B2B 모델은 데이터를 이전보다 더 안전하게 유지하면서 Crypto B2B로 정의 할 수 있습니다. Cryptocurrency 라는 용어 는 통화 생성 및 지불 확인에 암호화 기술을 사용하는 것을 의미합니다. 동일한 암호화 프로세스를 사용하여 B2B 모델에서 결제 / 거래를 수행 할 수 있으므로 중개 기관 (은행, 서비스 제공 업체)을 제거하여 프로세스를 훨씬 더 빠르게 만들 수 있으므로 비용 / 수수료는 이전에 비해 아주 일부에 불과합니다.

블록 체인은 특히 암호 화폐를 위해 만들어진 정교한 알고리즘입니다. 전자 현금 이동을 관리하는 분산 데이터 구조를 구동합니다. 중앙 은행 또는 정부 지원의 관리 역할을 대체합니다. 블록 체인은 가상 코인의 저장소이자 배포자입니다.

암호 화폐는 운반되거나 취급되지 않지만 블록 체인 덕분에 거래, 증식 및 기능을합니다.

최근 블록 체인은 유권자 사기, 디지털 개인 ID, dApp, 스마트 계약, 저작권 통제 등을 방지하는 암호 화폐 이외의 많은 이유를 발견했습니다.

B2B 회사의 경우 돈을 옮기고 입금을 받고 거래를 완료하는 등 가상 은행이 될 수 있습니다. 이것은 귀하의 비즈니스가 규제, 모니터링, 업무 시간 및 기타 제한을받는 온라인 뱅킹과 다릅니다.

효율적인 공급망 : 블록 체인은 네트워크의 모든 구성원에게 열려 있습니다. 이 '공유 버전의 이벤트'는 공급망 효율성을 개선하고 다자간 협업을 개선하며 예외 또는 분쟁이 발생할 때 해결 프로세스를 간소화합니다.

영업 프로세스 개선 : B2B 영업 관계가 지속되고 있으며 수명이 길며 일반적으로 기존 B2C 영업보다 더 긴 영업주기가 필요합니다. 신뢰는 B2B 판매 성공에 필수적이며 블록 체인 기술은 암호 화폐에서 신뢰가 유지되는 것과 같은 방식으로 더 낮은 비용으로 신뢰할 수있는 관계를 생성하는 방법을 나타냅니다.

용이성과 속도 : 중개자를 제거하는 것은 블록 체인 기술의 중요한 측면입니다. 이 오픈 액세스 시스템을 통해 "블록 체인의 가치 제안은 거래에서 중개자를 제거하여 보다 자율적인 유형의 참여를 가능하게 한다는 것입니다." 금융 거래의 속도를 높이는 블록 체인은 은행, 신용 카드 처리 및 확인을 대체합니다. 이는 B2B 공급 업체 및 고객의 비용을 절감합니다.

안전 및 보안 : 블록 체인은 주요 정보를 확인하고 신뢰를 구축하는 더 빠르고 안전한 방법입니다. 이것은 당신이 중개자, 기관 또는 권위자를 다루지 않는 시스템인 신뢰의 새로운 아키텍처입니다.

실질적인 절감 : 소매 또는 온라인의 B2B 판매자는 블록 체인 거래로 약속한 비용 절감이 필요합니다.

– 첫째, 근본적으로 거래 속도를 높이고 고객 지불을 공급 업체로 즉시 이동합니다.    

– 둘째, 이 속도는 공급망을 통해 다시 파급되어 고객 만족으로 이어집니다.    

– 셋째, 유통 및 물류를 용이하게하여 라인의 효율성을 높입니다.    

– 그리고 넷째, 블록 체인은 신용 카드 프로세서 및 기타 가맹점 서비스를 우회하여 서비스 가격을 반영하는 오버헤드를 줄입니다.    

 

B2B BlockChain 으로 이동하는 이점

B2B를 블록 체인 모델로 이동하면 다음과 같은 이점이 있습니다.

– 거래는 안전하게 저장됩니다    

모든 유효한 거래는 블록으로 구성됩니다. 그런 다음 블록이 체인에 추가되어 지울 수없고 투명한 트랜잭션 기록을 제공합니다.

– 훨씬 빠른 처리    

유효한 경우 거래는 이더리움 네트워크에서 평균 20-30 초의 승인 시간을 가지며 [2]  은행이나 다른 중개 서비스와 달리 훨씬 더 긴 시간 간격이 걸립니다.

– B2B 거래에 관련된 중개자 제거 (은행, 서비스 제공 업체)

거래의 유효성을 관리하는 금융 기관이 없습니다. 제 3 자의 필요성 제거.

– 공급 업체 비용 절감    

– 유지 보수 비용    

– 효과적인 공급망    

블록 체인에서 트랜잭션을 읽기위한 API를 작성하면 공급망을 항상 효율적으로 추적 할 수 있습니다.

– 결제 로그 및 원장 로그는 공용 네트워크에 저장됩니다.    

 

B2B BlockChain 으로 이동하는 단점

B2B가 현재 내부 / 개인 서버가 아닌 블록 체인으로 이동할 때 발생할 수있는 몇 가지 잠재적인 단점이 아래에 자세히 설명되어 있습니다. 

아직 Ethereum 네트워크에는 그러한 옵션이 없기 때문에 기업이 대출을 할 수 없습니다. 구매자는 거래를 하기 위해 자신의 계좌에 필요한 금액을 가지고 있어야합니다. 구매자는 자신의 계정에 부족한 자금으로 구매 및 주문할 수 없으며, 반대로 이는 금융 기관의 대출을 사용하여 블록 체인 외부에서 수행 될 수 있습니다.

 

블록 체인 자체를 변경해야하므로 이에 대한 해결책이 제시 될 수 없습니다.

– 대부분의 노드가 죽으면 정보가 손실되어 51 %의 공격이 발생할 수 있습니다.    

– 퍼블릭 블록 체인을 사용하는 경우 네트워크에 액세스 할 수있는 모든 사람이 트랜잭션을 볼 수 있습니다. 이 단점을 극복하기 위해 프라이빗 블록 체인을 사용할 수 있습니다.

– 거래를 되돌릴 수 없음 [1]    

블록에 포함 된 거래는 되돌릴 수 없습니다. 지불을 취소하는 유일한 방법은 수신자가 다른 거래에서 금액을 송금인에게 돌려주는 것입니다. 두 거래 모두에서 발생한 수수료 (가스)는 손실됩니다.

– 전체 블록 체인 저장    

퍼블릭 블록 체인을 사용하는 경우 대부분의 블록 체인 데이터가 구매자와 무관하더라도 구매자는 전체 블록 체인을 저장해야하므로 더 많은 데이터를 저장할 필요성이 높아집니다.

 

Solidity에서 B2B 기본 기능

Smart contract에 추가 할 수있는 기능과 구매자 / 판매자와 이러한 기능의 상호 작용에 대한 모든 기본 기능을 자세히 살펴 봅니다. 샘플 계약의 기능을 개선하는 방법도 설명되어 있습니다.

B2B 트랜잭션의 변수

– 상품의 이름    

– 주문 번호    

– 송장 번호    

– 상품 수    

– 구매자 / 판매자 이름 / 주소    

– 단가

– 구매 / 배송 날짜    

 

B2B 계약의 기본 기능

위에서 언급 한 변수를 고려하여 smart contract에 다음 기능을 정의 할 수 있습니다.

1. Constructor :                  

– Syntax : constructor () public    

계약은 판매자 / 제조업체가 블록 체인에 업로드 / 생성합니다. 모든 구매자 / 소매 업체는 필요한 상품을 주문하기 위해 계약을 호출할 수 있어야합니다. 계약이 블록 체인에 성공적으로 업로드되면 판매자 정보가 공개되고 블록 체인에 영구적으로 업데이트됩니다.             

2. Send order :                  

– Syntax : function sendOrder (string, int)    

이 함수는 구매자 / 소매 업체가 호출하며 주문 이름을 문자열로, 상품 수를 정수 매개 변수로 사용합니다. 거래가 블록 체인에 업로드되면 판매자 / 제조업체에게 주문을 알리는 이벤트가 트리거됩니다. 구매자가 이 함수를 호출하는 사람이라는 검증이 완료되면, 날짜까지 구매자가 수행 한 모든 주문의 배열 인 orderseq 변수가 업데이트됩니다. OrderSent는 결제가 블록 체인에 완료되면 emitter가 됩니다.

3. Send price :                  

– Syntax : function sendPrice (string, int)는 double을 반환합니다.    

제조업체가 주문을 받으면 이 기능을 호출하여 상품의 수량을 확인하고주문을 택배로 보내면 배송비를 포함한 총 주문 금액을 구매자에게 반환 할 수 있습니다. 구매자에게 총 주문 가격을 전송하는 이벤트가 트리거 될 수 있습니다.

4. Send payment :                  

– Syntax : function sendSafePay (int)    

판매자가 위의 기능에서와 같이 총 가격이 업데이트되면 구매자는 이전의 주문 번호를 함수에 대한 인수로 사용하여 해당 주문의 지불을 확인하고 보낼 수 있으므로 판매자는 보낸 가격이 올바른지 여부를 알 수 있습니다.

5. Send order to courier:                  

– Syntax : 함수 sendOrderToCourier (int) public은 날짜를 반환합니다.    

구매자 / 제조업체로부터 지불이 수신되면 판매자는 택배 서비스에 녹색 표시등을 제공하여 구매자 주소로 주문을 보낼 수 있습니다. 배송 업체는 주문의 예상 배송일을 반환할 것으로 예상됩니다.

6. Send invoice:                  

– Syntax : function sendInvoice (int)    

그런 다음 판매자는 주문 번호, 택배로부터 받은 예상 배송일, 송장 번호, 상품 번호, 상품 이름, 판매자 및 구매자의 주소 포함하여 특정 주문의 모든 세부 정보가 포함 된 송장을 보낼 수 있습니다.

7. Query Order:                  

– Syntax : function queryOrder (int) public returns Order    

이 함수는 주문 번호가 인수로 주어진 주문을 반환합니다. 잘못된 주문 번호가 제공되면 프롬프트 화면에 오류 메시지가 표시됩니다.  기능은 공개 될 수 있으며 누구나 구매자 / 판매자의 주소 또는 배송 날짜와 같은 일부 기밀 정보를 기대하는 주문 세부 정보를 볼 수 있습니다.  판매자 / 구매자 / 택배가 이 함수를 호출하면 예외없이 모든 세부 정보가 표시됩니다. 주문은 주문 정보와 관련된 모든 세부 정보 포함하는 구조체 유형입니다.

8. Order delivered:                  

택배사가 해당 주소로 주문을 배달하면 이벤트가 트리거되어 구매자 또는 구매자와 판매자 모두에게 주문이 구매자의 주소로 배달되었음을 알릴 수 있습니다. Smart contract에는 구매자에서 판매자 및 택배로 지불을 분할하는 세부 정보가 포함될 수 있습니다.

제안 된 개선 사항 : 더 효율적으로 할 수있는 가능한 업그레이드를 위의 기본 기능 계약에 추가 할 수 있습니다 .

- 주문의 세부 사항을 제한, 즉 주문 번호는 구매자 / 판매자 / 택배 이외의 다른 사람이 조회되는 경우 , 단지 비기밀 사항이 표시되어야합니다 ( 예를 들어, 주소, 전화 번호를 표시 할 수 없습니다).    

– 모든 구매자 / 판매자 / 택배가 동일한 형식을 따르는 경우, 판매자는 새로운 구매자가 있을 때마다 블록 체인에 새로운 smart contract를 변경하거나 업로드하지 않고도 여러 구매자를 가질 수 있습니다.    

– 주문에 대해 구매자가 받은 금액을 판매자와 택배로 분할하는 기능을 포함하여 구매자로부터 지불이 수신되면 지불이 분할되어 판매자와 택배에게 개별적으로 전송됩니다.   

 다음 다이어그램은 암호화 b2b의 흐름을 (1 ~ 8 + 9, 10) 보여줍니다.

 



 

 

3. 결론

제안 된 Crypto B2B의 모델과 기본 기술은Crypto Pharmaceutical / Medical Systems 및 Crypto Consumer Networks와 같은 다른 시스템에 쉽게 확장 및 적용 할 수 있습니다. Crypto Pharmaceutical / Medical System은 B2B 또는 하이브리드 B2B / C 시스템이 아닌 제약 / 의료 당국을 중심으로 한 네트워크인 B2C (Business to Consumer) 시스템이 될 것입니다. 제약 / 의료 부문에서는 환자의 데이터를 보호하기 위해 환자의 익명 성과 프라이버시를 보장하는 것이 절실히 요구됩니다. Crypto Consumer Networks는 소비자 데이터의 품질을 개선하는 것을 목표로 할 것입니다. 여기서 암호화된 신원 기능은 소비자 피드백 및 설문 조사의 익명의 비공개이지만 더 진지한 제출을 기반으로 소비자 행동 공개를 식별하고 예측함으로써 시스템을 사전에 촉진합니다. 결론적으로, 이 문서에서 언급 한 바와 같이, Crypto B2B와 그 잠재적인 확장은 암호 화폐 시장에서 주목 성공에 대한 높은 기대와 함께 시장과 기술적 요구를 적시에 적극적으로 해결할 것입니다.

 

References

[1] Morgen E. Peck, “Blockchains: How They Work and Why They’ll Change the World”, https://spectrum.ieee.org/computing/networks/blockchains-how-they-work-and-why-theyll-change-the-world

[2] Dejan Vuji?i?, Dijana Jagodi?, Siniša Ranđi?, “Blockchain technology, bitcoin, and Ethereum: A brief overview”, https://ieeexplore.ieee.org/document/8345547/

 

 

 



Appendix

A Crypto B2B Demo

 

Opening Ethereum wallet:

  1. Click on Contracts button located in the top right screen and click on DEPLOY NEW CONTRACT:

  2. Copy the entire contract in the SOLIDTY CONTRACT SOURCE CODE section:


 


  1. After copying the entire contract in the provided space, any errors in the contract are displayed on the right side of the code as shown:


 


  1. Select the contract from the dropdown:


 


  1. After selecting the contract, scroll down to click on DEPLOY:


 


  1. Enter the password of the account that is being used to upload the smart contract and click on SEND TRANSACTION:


 


  1. The home page of the application is opened which also shows the status of the current smart contract in the blockchain:


 


  1. Once the contract is uploaded to the blockchain, click on the contract to go that contracts page:


 


  1. To the right side, we can see all the functions that are made public in the contract in the dropdown:


 


  1. Before any of the functions are put to use, make sure that the “Watch contract events” is checked, so that it enables us to see all the events happening in the smart contracts with respect to how the functions are being called:


 


  1. The first function that needs to be called from buyer’s perspective is “Place order”, any of the other functions can also be called at this point, but since there is no data as of now in the smart contract, the data received will be empty:


 


  1. Once “Place Order” function is selected, the list of the arguments needed to process the function are displayed:


 


  1. Fill in all the arguments needed as shown:


 


  1. The Buyer – 12.71 ETHER is the name given to that address in the Ethereum application. Click on Execute and then provide the password o prompt:


 


  1. Click on “SEND TRANSACTION” processes the function:


 


  1. Wait till the transaction is uploaded to the blockchain, If uploaded successfully an event should display detailing the earlier transaction:


 


  1. Any number of orders can be placed , the next step in the flowchart is for the seller that was mentioned in the earlier transaction to respond to the buyer acknowledging that he received the order:


 


  1. Note that only the seller address that was mentioned while placing order can call this function for that order number, i.e. if another address tried to access this function with this order number nothing would change and an Invalid query access event is also output as shown:Notice that the buyer is calling this function, where in the seller is the only one that can call this function.


 


  1. Notice that there is no change being done to the order and no event being displayed:


 


  1. This time, we try to execute the function with seller address:


 


  1. Enter the password on prompt and click on SEND TRANSACTION:


 


  1. After the transaction is uploaded to the blockchain an event is displayed as shown: This event confirms that the seller was the correct one which was given while placing the order.


 


  1. The next stop in the flow of the B2B would be where the seller would send the order details to an appropriate courier address:


 


  1. After entering the password prompt and clicking SEND TRANSACTION, another event is displayed that the courier has received the order:


 


  1. After the order is sent to courier, the courier and seller can request the buyer details by using the Query function, Note that only the appropriate buyer/seller/courier can request details about their order. A courier address cannot see the details of an order for which he is not the courier of.


 


  1. After going through the details of the buyer, both the seller and courier update payment of the order as shown:


 


  1. Seller updating the payment details:


 


  1. Courier updating the payment details:


 


  1. After both the seller and courier update the price the buyer can decide to cancel the order or go ahead and send the payment so that order is started processing, Once the payment is received from the buyer, the courier updates the estimated delivery date and invoice number as shown: The estimated delivery date can be queried by buyer/seller/courier of that order.


 


  1. Finally, once the order is received to the buyer, the buyer can close the order: